Merge pull request #22 from root/dev

Raison d'annulation (demandes d'achat)
This commit is contained in:
root
2022-07-06 12:39:33 +02:00
4 changed files with 41 additions and 2 deletions

View File

@@ -26,7 +26,7 @@ import com.axelor.apps.purchase.db.PurchaseOrder;
import com.axelor.auth.db.User; import com.axelor.auth.db.User;
import com.axelor.exception.AxelorException; import com.axelor.exception.AxelorException;
import com.google.inject.persist.Transactional; import com.google.inject.persist.Transactional;
import com.axelor.apps.base.db.CancelReason;
import wslite.json.JSONException; import wslite.json.JSONException;
import java.net.MalformedURLException; import java.net.MalformedURLException;
@@ -112,4 +112,6 @@ public interface PurchaseOrderService {
public void finishPurchaseOrder(PurchaseOrder purchaseOrder); public void finishPurchaseOrder(PurchaseOrder purchaseOrder);
public void cancelPurchaseOrder(PurchaseOrder purchaseOrder); public void cancelPurchaseOrder(PurchaseOrder purchaseOrder);
public void cancelReasonPurchaseOrder(PurchaseOrder purchaseOrder, CancelReason cancelReason, String cancelReasonStr);
} }

View File

@@ -57,7 +57,7 @@ import com.axelor.inject.Beans;
import com.google.common.base.Strings; import com.google.common.base.Strings;
import com.google.inject.Inject; import com.google.inject.Inject;
import com.google.inject.persist.Transactional; import com.google.inject.persist.Transactional;
import com.axelor.apps.base.db.CancelReason;
import wslite.json.JSONException; import wslite.json.JSONException;
import java.lang.invoke.MethodHandles; import java.lang.invoke.MethodHandles;
@@ -528,4 +528,20 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
importationFolderRepository.save(importationFolder); importationFolderRepository.save(importationFolder);
} }
@Override
@Transactional
public void cancelReasonPurchaseOrder(
PurchaseOrder purchaseOrder, CancelReason cancelReason, String cancelReasonStr){
purchaseOrder.setStatusSelect(PurchaseOrderRepository.STATUS_CANCELED);
purchaseOrder.setCancelReason(cancelReason);
if (Strings.isNullOrEmpty(cancelReasonStr)) {
purchaseOrder.setCancelReasonStr(cancelReason.getName());
} else {
purchaseOrder.setCancelReasonStr(cancelReasonStr);
}
purchaseOrderRepo.save(purchaseOrder);
}
} }

View File

@@ -538,4 +538,20 @@ public class PurchaseOrderController {
TraceBackService.trace(response, e); TraceBackService.trace(response, e);
} }
} }
public void cancelReasonPurchaseOrder(ActionRequest request, ActionResponse response) {
try {
PurchaseOrder purchaseOrder = request.getContext().asType(PurchaseOrder.class);
Beans.get(PurchaseOrderService.class)
.cancelReasonPurchaseOrder(
Beans.get(PurchaseOrderRepository.class).find(purchaseOrder.getId()),
purchaseOrder.getCancelReason(),
purchaseOrder.getCancelReasonStr());
response.setFlash(I18n.get("The purchase order was canceled"));
response.setCanClose(true);
} catch (Exception e) {
TraceBackService.trace(response, e);
}
}
} }

View File

@@ -70,6 +70,9 @@
<many-to-one name="importationFolder" ref="ImportationFolder" title="Dossier d'importation" /> <many-to-one name="importationFolder" ref="ImportationFolder" title="Dossier d'importation" />
<many-to-one name="purchaseRequestOrigin" ref="com.axelor.apps.purchase.db.PurchaseRequest" title="Purchase Request" /> <many-to-one name="purchaseRequestOrigin" ref="com.axelor.apps.purchase.db.PurchaseRequest" title="Purchase Request" />
<many-to-one name="cancelReason" title="Cancel reason" ref="com.axelor.apps.base.db.CancelReason"/>
<string name="cancelReasonStr" title="Cancel Reason" large="true"/>
<unique-constraint columns="purchaseOrderSeq,company"/> <unique-constraint columns="purchaseOrderSeq,company"/>
@@ -98,6 +101,8 @@
</extra-code> </extra-code>
<track> <track>
<field name="cancelReason" />
<field name="cancelReasonStr" />
<field name="purchaseOrderSeq" /> <field name="purchaseOrderSeq" />
<field name="supplierPartner" /> <field name="supplierPartner" />
<field name="statusSelect" on="UPDATE"/> <field name="statusSelect" on="UPDATE"/>