PO logic
This commit is contained in:
@@ -103,35 +103,64 @@ describe("sales order planning", () => {
|
||||
openPurchaseSupply: 2,
|
||||
},
|
||||
},
|
||||
orderLinkedSupplyByItemId: {
|
||||
"assembly-1": {
|
||||
linkedWorkOrderSupply: 1,
|
||||
linkedPurchaseSupply: 0,
|
||||
},
|
||||
"mfg-1": {
|
||||
linkedWorkOrderSupply: 0,
|
||||
linkedPurchaseSupply: 0,
|
||||
},
|
||||
"buy-1": {
|
||||
linkedWorkOrderSupply: 0,
|
||||
linkedPurchaseSupply: 0,
|
||||
},
|
||||
"buy-2": {
|
||||
linkedWorkOrderSupply: 0,
|
||||
linkedPurchaseSupply: 3,
|
||||
},
|
||||
},
|
||||
lineLinkedSupplyByLineId: {
|
||||
"line-1": {
|
||||
"buy-1": {
|
||||
linkedWorkOrderSupply: 0,
|
||||
linkedPurchaseSupply: 2,
|
||||
},
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
const planning = buildSalesOrderPlanning(snapshot);
|
||||
|
||||
expect(planning.summary.totalBuildQuantity).toBe(6);
|
||||
expect(planning.summary.totalPurchaseQuantity).toBe(10);
|
||||
expect(planning.summary.totalBuildQuantity).toBe(3);
|
||||
expect(planning.summary.totalPurchaseQuantity).toBe(0);
|
||||
|
||||
const assembly = planning.items.find((item) => item.itemId === "assembly-1");
|
||||
const manufacturedChild = planning.items.find((item) => item.itemId === "mfg-1");
|
||||
const purchasedChild = planning.items.find((item) => item.itemId === "buy-1");
|
||||
const rawMaterial = planning.items.find((item) => item.itemId === "buy-2");
|
||||
|
||||
expect(assembly?.recommendedBuildQuantity).toBe(3);
|
||||
expect(assembly?.linkedWorkOrderSupply).toBe(1);
|
||||
expect(assembly?.recommendedBuildQuantity).toBe(2);
|
||||
expect(assembly?.supplyFromStock).toBe(1);
|
||||
expect(assembly?.supplyFromOpenWorkOrders).toBe(1);
|
||||
|
||||
expect(manufacturedChild?.grossDemand).toBe(6);
|
||||
expect(manufacturedChild?.recommendedBuildQuantity).toBe(3);
|
||||
expect(manufacturedChild?.grossDemand).toBe(4);
|
||||
expect(manufacturedChild?.recommendedBuildQuantity).toBe(1);
|
||||
expect(manufacturedChild?.supplyFromStock).toBe(2);
|
||||
expect(manufacturedChild?.supplyFromOpenWorkOrders).toBe(1);
|
||||
|
||||
expect(purchasedChild?.grossDemand).toBe(9);
|
||||
expect(purchasedChild?.recommendedPurchaseQuantity).toBe(1);
|
||||
expect(purchasedChild?.grossDemand).toBe(6);
|
||||
expect(purchasedChild?.linkedPurchaseSupply).toBe(2);
|
||||
expect(purchasedChild?.recommendedPurchaseQuantity).toBe(0);
|
||||
expect(purchasedChild?.supplyFromStock).toBe(3);
|
||||
expect(purchasedChild?.supplyFromOpenPurchaseOrders).toBe(5);
|
||||
expect(purchasedChild?.supplyFromOpenPurchaseOrders).toBe(1);
|
||||
|
||||
expect(rawMaterial?.grossDemand).toBe(12);
|
||||
expect(rawMaterial?.recommendedPurchaseQuantity).toBe(9);
|
||||
expect(rawMaterial?.grossDemand).toBe(4);
|
||||
expect(rawMaterial?.linkedPurchaseSupply).toBe(3);
|
||||
expect(rawMaterial?.recommendedPurchaseQuantity).toBe(0);
|
||||
expect(rawMaterial?.supplyFromStock).toBe(1);
|
||||
expect(rawMaterial?.supplyFromOpenPurchaseOrders).toBe(2);
|
||||
expect(rawMaterial?.supplyFromOpenPurchaseOrders).toBe(0);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user