@@ -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);
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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 ;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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,7 +49,10 @@ 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) {
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user