Merge pull request #17 from root/dev

Dev
This commit is contained in:
root
2022-06-26 09:26:23 +02:00
4 changed files with 43 additions and 2 deletions

View File

@@ -93,6 +93,9 @@ public class PurchaseRequestServiceImpl implements PurchaseRequestService {
// SOPHAL // SOPHAL
setProjectPurchaseOrder(purchaseOrder, purchaseRequest); setProjectPurchaseOrder(purchaseOrder, purchaseRequest);
purchaseOrder.setNotes(purchaseRequest.getDescription()); purchaseOrder.setNotes(purchaseRequest.getDescription());
// sophal set purchase request
// purchaseOrder.setPurchaseRequest(purchaseRequest.getId());
// sophal
purchaseOrderRepo.save(purchaseOrder); purchaseOrderRepo.save(purchaseOrder);
// SOPHAL // SOPHAL
key = key == null ? purchaseRequest.getId().toString() : key; key = key == null ? purchaseRequest.getId().toString() : key;
@@ -133,6 +136,7 @@ public class PurchaseRequestServiceImpl implements PurchaseRequestService {
} }
purchaseOrder.getPurchaseOrderLineList().addAll(purchaseOrderLineList); purchaseOrder.getPurchaseOrderLineList().addAll(purchaseOrderLineList);
purchaseOrderService.computePurchaseOrder(purchaseOrder); purchaseOrderService.computePurchaseOrder(purchaseOrder);
purchaseOrder.setPurchaseRequestOrigin(purchaseRequest);
purchaseOrderRepo.save(purchaseOrder); purchaseOrderRepo.save(purchaseOrder);
Set<PurchaseOrder> hash_Set = new HashSet<PurchaseOrder>(); Set<PurchaseOrder> hash_Set = new HashSet<PurchaseOrder>();
hash_Set.add(purchaseOrder); hash_Set.add(purchaseOrder);

View File

@@ -69,6 +69,8 @@
<integer name="importationType" selection="importation.folder.type.select" title="Type d'importation" default="1" /> <integer name="importationType" selection="importation.folder.type.select" title="Type d'importation" default="1" />
<many-to-one name="importationFolder" ref="com.axelor.apps.purchase.db.ImportationFolder" title="Dossier d'importation" /> <many-to-one name="importationFolder" ref="com.axelor.apps.purchase.db.ImportationFolder" title="Dossier d'importation" />
<many-to-one name="purchaseRequestOrigin" ref="com.axelor.apps.purchase.db.PurchaseRequest" title="Purchase Request" />
<unique-constraint columns="purchaseOrderSeq,company"/> <unique-constraint columns="purchaseOrderSeq,company"/>
<extra-code> <extra-code>

View File

@@ -28,9 +28,11 @@ import com.axelor.apps.base.service.PartnerPriceListService;
import com.axelor.apps.base.service.app.AppBaseService; import com.axelor.apps.base.service.app.AppBaseService;
import com.axelor.apps.purchase.db.PurchaseOrder; import com.axelor.apps.purchase.db.PurchaseOrder;
import com.axelor.apps.purchase.db.PurchaseOrderLine; import com.axelor.apps.purchase.db.PurchaseOrderLine;
import com.axelor.apps.purchase.db.PurchaseRequest;
import com.axelor.apps.purchase.db.SupplierCatalog; import com.axelor.apps.purchase.db.SupplierCatalog;
import com.axelor.apps.purchase.db.repo.PurchaseOrderLineRepository; import com.axelor.apps.purchase.db.repo.PurchaseOrderLineRepository;
import com.axelor.apps.purchase.db.repo.PurchaseOrderRepository; import com.axelor.apps.purchase.db.repo.PurchaseOrderRepository;
import com.axelor.apps.purchase.db.repo.PurchaseRequestRepository;
import com.axelor.apps.purchase.service.PurchaseOrderLineService; import com.axelor.apps.purchase.service.PurchaseOrderLineService;
import com.axelor.apps.purchase.service.app.AppPurchaseService; import com.axelor.apps.purchase.service.app.AppPurchaseService;
import com.axelor.apps.stock.service.StockLocationService; import com.axelor.apps.stock.service.StockLocationService;
@@ -39,6 +41,7 @@ import com.axelor.apps.supplychain.service.PurchaseOrderServiceSupplychainImpl;
import com.axelor.apps.suppliermanagement.db.repo.PurchaseOrderSupplierLineRepository; import com.axelor.apps.suppliermanagement.db.repo.PurchaseOrderSupplierLineRepository;
import com.axelor.apps.suppliermanagement.db.PurchaseOrderSupplierLine; import com.axelor.apps.suppliermanagement.db.PurchaseOrderSupplierLine;
import com.axelor.auth.AuthUtils; import com.axelor.auth.AuthUtils;
import com.axelor.db.JPA;
import com.axelor.exception.AxelorException; import com.axelor.exception.AxelorException;
import com.axelor.exception.db.repo.TraceBackRepository; import com.axelor.exception.db.repo.TraceBackRepository;
import com.axelor.i18n.I18n; import com.axelor.i18n.I18n;
@@ -52,6 +55,11 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import java.util.HashSet;
import java.util.Set;
import java.util.stream.Collector;
import java.util.stream.Collectors;
import javax.persistence.Query;
public class PurchaseOrderSupplierService { public class PurchaseOrderSupplierService {
@@ -65,6 +73,8 @@ public class PurchaseOrderSupplierService {
@Inject protected PurchaseOrderRepository poRepo; @Inject protected PurchaseOrderRepository poRepo;
@Inject private PurchaseRequestRepository purchaseRequestRepo;
@Transactional @Transactional
public void generateAllSuppliersRequests(PurchaseOrder purchaseOrder) { public void generateAllSuppliersRequests(PurchaseOrder purchaseOrder) {
@@ -128,13 +138,26 @@ public class PurchaseOrderSupplierService {
Map<Partner, List<PurchaseOrderLine>> purchaseOrderLinesBySupplierPartner = Map<Partner, List<PurchaseOrderLine>> purchaseOrderLinesBySupplierPartner =
this.splitBySupplierPartner(purchaseOrder.getPurchaseOrderLineList()); this.splitBySupplierPartner(purchaseOrder.getPurchaseOrderLineList());
// remove link purchase order purchase request
PurchaseRequest purchaseRequest = Beans.get(PurchaseRequestRepository.class).find(purchaseOrder.getPurchaseRequestOrigin().getId());
Set<PurchaseOrder> po = purchaseRequest.getPurchaseOrderSet().stream().filter((t) -> t.getId() != purchaseOrder.getId()).collect(Collectors.toSet());
purchaseRequest.getPurchaseOrderSet().removeIf((t) -> t.getId() == purchaseOrder.getId());
Set<PurchaseOrder> hash_Set = new HashSet<PurchaseOrder>();
hash_Set.addAll(po);
for (Partner supplierPartner : purchaseOrderLinesBySupplierPartner.keySet()) { for (Partner supplierPartner : purchaseOrderLinesBySupplierPartner.keySet()) {
PurchaseOrder PurchaseOrderNew = this.createPurchaseOrderSophal( PurchaseOrder PurchaseOrderNew = this.createPurchaseOrderSophal(
supplierPartner, purchaseOrderLinesBySupplierPartner.get(supplierPartner), purchaseOrder); supplierPartner, purchaseOrderLinesBySupplierPartner.get(supplierPartner), purchaseOrder);
// sophal
hash_Set.add(PurchaseOrderNew);
createPurchaseOrderSupplierLineTCO(PurchaseOrderNew.getPurchaseOrderLineList() ,purchaseOrderLinesBySupplierPartner.get(supplierPartner)); createPurchaseOrderSupplierLineTCO(PurchaseOrderNew.getPurchaseOrderLineList() ,purchaseOrderLinesBySupplierPartner.get(supplierPartner));
} }
purchaseRequest.setPurchaseOrderSet(hash_Set);
purchaseRequestRepo.save(purchaseRequest);
purchaseOrder.setArchived(true); purchaseOrder.setArchived(true);
poRepo.save(purchaseOrder); poRepo.save(purchaseOrder);
} }
@@ -273,7 +296,9 @@ public class PurchaseOrderSupplierService {
purchaseOrder.setStatusSelect(PurchaseOrderRepository.STATUS_REQUESTED); purchaseOrder.setStatusSelect(PurchaseOrderRepository.STATUS_REQUESTED);
purchaseOrder.setReceiptState(PurchaseOrderRepository.STATE_NOT_RECEIVED); purchaseOrder.setReceiptState(PurchaseOrderRepository.STATE_NOT_RECEIVED);
purchaseOrder.setPurchaseRequestOrigin(parentPurchaseOrder.getPurchaseRequestOrigin());
// copy description from parent po
purchaseOrder.setNotes(parentPurchaseOrder.getNotes());;
poRepo.save(purchaseOrder); poRepo.save(purchaseOrder);
return purchaseOrder; return purchaseOrder;
@@ -304,6 +329,8 @@ public class PurchaseOrderSupplierService {
PurchaseOrderLineNew.setDiscountAmount(purchaseOrderLine.getDiscountAmount()); PurchaseOrderLineNew.setDiscountAmount(purchaseOrderLine.getDiscountAmount());
PurchaseOrderLineNew.setDiscountTypeSelect(purchaseOrderLine.getDiscountTypeSelect()); PurchaseOrderLineNew.setDiscountTypeSelect(purchaseOrderLine.getDiscountTypeSelect());
PurchaseOrderLineNew.setSupplierPartner(purchaseOrderLine.getSupplierPartner()); PurchaseOrderLineNew.setSupplierPartner(purchaseOrderLine.getSupplierPartner());
// set taxline to children
PurchaseOrderLineNew.setTaxLine(purchaseOrderLine.getTaxLine());
return PurchaseOrderLineNew ; return PurchaseOrderLineNew ;
} }

View File

@@ -27,6 +27,7 @@ import com.axelor.inject.Beans;
import com.axelor.rpc.ActionRequest; import com.axelor.rpc.ActionRequest;
import com.axelor.rpc.ActionResponse; import com.axelor.rpc.ActionResponse;
import com.google.inject.Singleton; import com.google.inject.Singleton;
import java.util.List;
@Singleton @Singleton
public class PurchaseOrderController { public class PurchaseOrderController {
@@ -34,7 +35,11 @@ public class PurchaseOrderController {
public void generateSuppliersPurchaseOrder(ActionRequest request, ActionResponse response) { public void generateSuppliersPurchaseOrder(ActionRequest request, ActionResponse response) {
PurchaseOrder purchaseOrder = request.getContext().asType(PurchaseOrder.class); PurchaseOrder purchaseOrder = request.getContext().asType(PurchaseOrder.class);
List<PurchaseOrder> purchaseOrders = Beans.get(PurchaseOrderRepository.class).all()
.filter("self.parentPurchaseOrder = ?1 ", purchaseOrder.getId())
.fetch();
if(purchaseOrders.size() < 1){
try { try {
Beans.get(PurchaseOrderSupplierService.class) Beans.get(PurchaseOrderSupplierService.class)
.generateSuppliersPurchaseOrder( .generateSuppliersPurchaseOrder(
@@ -44,6 +49,9 @@ public class PurchaseOrderController {
} catch (Exception e) { } catch (Exception e) {
TraceBackService.trace(response, e); TraceBackService.trace(response, e);
} }
}else{
response.setFlash("Vous avez deja genere les commandes fournisseurs associees");
}
} }
public void generateSuppliersRequests(ActionRequest request, ActionResponse response) { public void generateSuppliersRequests(ActionRequest request, ActionResponse response) {