feat: Enhance Supply Chain Module with Analytic Move Line Features
- Added support for analytic move lines in InvoiceServiceSupplychainImpl. - Implemented methods to check for missing analytic move lines in PurchaseOrderController and PurchaseRequestController. - Introduced budget distribution line generation in PurchaseOrderController. - Updated SaleOrderController to generate analytic move lines. - Enhanced StockMoveController with budget distribution line generation. - Modified StockMoveLineController to include analytic account and axis handling. - Updated domain models to include references to analytic accounts and axes in Partner, StockLocation, and StockMoveLine. - Created unit tests for StockMoveLineServiceSupplychainImpl to ensure proper functionality of new features. - Added MockQuery class for testing purposes.
This commit is contained in:
@@ -792,28 +792,29 @@ public class ManufOrderStockMoveService {
|
||||
stockConfigService.getProductionVirtualStockLocation(stockConfig);
|
||||
stockMove.setToStockLocation(virtualStockLocation);
|
||||
stockMove.setPartner(manufOrder.getCompany().getPartner());
|
||||
for (BillOfMaterialConsumption billOfMaterialConsumption : manufOrder.getBillOfMaterialConsumptionList()) {
|
||||
StockMoveLine stockMoveLine = stockMoveLineService.createStockMoveLine(
|
||||
billOfMaterialConsumption.getProduct(),
|
||||
billOfMaterialConsumption.getProduct().getName(),
|
||||
billOfMaterialConsumption.getProduct().getDescription(),
|
||||
billOfMaterialConsumption.getRealQty(),
|
||||
BigDecimal.ZERO,
|
||||
BigDecimal.ZERO,
|
||||
billOfMaterialConsumption.getProduct().getUnit(),
|
||||
stockMove,
|
||||
StockMoveLineService.TYPE_OUT_PRODUCTIONS,
|
||||
false,
|
||||
BigDecimal.ZERO);
|
||||
for (BillOfMaterialConsumption billOfMaterialConsumption :
|
||||
manufOrder.getBillOfMaterialConsumptionList()) {
|
||||
StockMoveLine stockMoveLine =
|
||||
stockMoveLineService.createStockMoveLine(
|
||||
billOfMaterialConsumption.getProduct(),
|
||||
billOfMaterialConsumption.getProduct().getName(),
|
||||
billOfMaterialConsumption.getProduct().getDescription(),
|
||||
billOfMaterialConsumption.getRealQty(),
|
||||
BigDecimal.ZERO,
|
||||
BigDecimal.ZERO,
|
||||
billOfMaterialConsumption.getProduct().getUnit(),
|
||||
stockMove,
|
||||
StockMoveLineService.TYPE_OUT_PRODUCTIONS,
|
||||
false,
|
||||
BigDecimal.ZERO);
|
||||
stockMoveLine.setTrackingNumber(billOfMaterialConsumption.getTrackingNumber());
|
||||
stockMove.addStockMoveLineListItem(stockMoveLine);
|
||||
}
|
||||
|
||||
if (stockMove.getStockMoveLineList() != null && !stockMove.getStockMoveLineList().isEmpty()) {
|
||||
stockMoveService.plan(stockMove);
|
||||
manufOrder.addOutStockMoveListItem(stockMove);
|
||||
stockMoveService.plan(stockMove);
|
||||
manufOrder.addOutStockMoveListItem(stockMove);
|
||||
manufOrder.setRealEndDateT(LocalDateTime.now());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -761,25 +761,23 @@ public class ManufOrderController {
|
||||
}
|
||||
|
||||
public void consumeStockMoveTemp(ActionRequest request, ActionResponse response) {
|
||||
try {
|
||||
Context context = request.getContext();
|
||||
List<ManufOrder> manufOrders = new ArrayList<>();
|
||||
if (context.get("id") != null) {
|
||||
Long manufOrderId = (Long) request.getContext().get("id");
|
||||
manufOrders.add(Beans.get(ManufOrderRepository.class).find(manufOrderId));
|
||||
} else if (context.get("_ids") != null) {
|
||||
manufOrders =
|
||||
Beans.get(ManufOrderRepository.class)
|
||||
.all()
|
||||
.filter(
|
||||
"self.id in ?1",
|
||||
context.get("_ids"))
|
||||
.fetch();
|
||||
}
|
||||
for (ManufOrder manufOrder : manufOrders) {
|
||||
Beans.get(ManufOrderStockMoveService.class).createTempStockMove(manufOrder);
|
||||
}
|
||||
response.setReload(true);
|
||||
try {
|
||||
Context context = request.getContext();
|
||||
List<ManufOrder> manufOrders = new ArrayList<>();
|
||||
if (context.get("id") != null) {
|
||||
Long manufOrderId = (Long) request.getContext().get("id");
|
||||
manufOrders.add(Beans.get(ManufOrderRepository.class).find(manufOrderId));
|
||||
} else if (context.get("_ids") != null) {
|
||||
manufOrders =
|
||||
Beans.get(ManufOrderRepository.class)
|
||||
.all()
|
||||
.filter("self.id in ?1", context.get("_ids"))
|
||||
.fetch();
|
||||
}
|
||||
for (ManufOrder manufOrder : manufOrders) {
|
||||
Beans.get(ManufOrderStockMoveService.class).createTempStockMove(manufOrder);
|
||||
}
|
||||
response.setReload(true);
|
||||
} catch (Exception e) {
|
||||
TraceBackService.trace(response, e);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user