@devx-commerce/plugin-gati 0.0.34-beta.72 → 0.0.34-beta.74
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.medusa/server/src/api/admin/generate-invoice/route.js +158 -0
- package/.medusa/server/src/jobs/sync-addless-detail.js +2 -2
- package/.medusa/server/src/jobs/sync-book-list-and-applicable-policy.js +2 -2
- package/.medusa/server/src/jobs/sync-customer-erp.js +13 -4
- package/.medusa/server/src/jobs/sync-item-master.js +2 -2
- package/.medusa/server/src/jobs/sync-labour-chart-master.js +3 -3
- package/.medusa/server/src/jobs/sync-order-request-erp.js +56 -53
- package/.medusa/server/src/jobs/sync-payment-book-master.js +5 -5
- package/.medusa/server/src/jobs/sync-rate-chart-master.js +3 -3
- package/.medusa/server/src/jobs/sync-report-master.js +10 -10
- package/.medusa/server/src/jobs/sync-sale-return-policy-master.js +2 -2
- package/.medusa/server/src/jobs/sync-urd-purchase-erp.js +5 -3
- package/.medusa/server/src/modules/erp/service.js +29 -20
- package/.medusa/server/src/workflows/daily-rate/index.js +6 -1
- package/.medusa/server/src/workflows/daily-rate/steps/update-unfix-order-items-on-gold-rate.js +136 -0
- package/.medusa/server/src/workflows/inward-master/steps/create-order-fulfillment-for-inward.js +97 -14
- package/.medusa/server/src/workflows/inward-master/steps/update-order-item-from-inward.js +211 -0
- package/.medusa/server/src/workflows/inward-master/workflows/create-inward.js +23 -3
- package/.medusa/server/src/workflows/inward-master/workflows/update-inward.js +18 -1
- package/.medusa/server/src/workflows/order-master/steps/process-order-master-from-webhook.js +16 -2
- package/.medusa/server/src/workflows/orders/steps/create-sale-for-order-step.js +218 -0
- package/.medusa/server/src/workflows/orders/steps/index.js +2 -1
- package/.medusa/server/src/workflows/orders/steps/sync-order-to-erp.js +15 -2
- package/.medusa/server/src/workflows/orders/workflows/create-sale-for-order.js +10 -0
- package/.medusa/server/src/workflows/party-master/steps/create-customer-erp.js +15 -2
- package/.medusa/server/src/workflows/sale-master/index.js +12 -1
- package/.medusa/server/src/workflows/sale-master/steps/sync-extended-order-from-sale.js +40 -0
- package/package.json +1 -1
package/.medusa/server/src/workflows/inward-master/steps/create-order-fulfillment-for-inward.js
CHANGED
|
@@ -7,6 +7,7 @@ const core_flows_1 = require("@medusajs/medusa/core-flows");
|
|
|
7
7
|
exports.createOrderFulfillmentForInwardStep = (0, workflows_sdk_1.createStep)("create-order-fulfillment-for-inward", async (inwards, { container }) => {
|
|
8
8
|
const logger = container.resolve("logger");
|
|
9
9
|
const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
|
|
10
|
+
const orderService = container.resolve(utils_1.Modules.ORDER);
|
|
10
11
|
const inventoryModule = container.resolve(utils_1.ModuleRegistrationName.INVENTORY);
|
|
11
12
|
logger.info(`inward-fulfillment: Processing ${inwards.length} inward(s)`);
|
|
12
13
|
for (const inward of inwards) {
|
|
@@ -17,6 +18,7 @@ exports.createOrderFulfillmentForInwardStep = (0, workflows_sdk_1.createStep)("c
|
|
|
17
18
|
entity: "order_master",
|
|
18
19
|
fields: [
|
|
19
20
|
"id",
|
|
21
|
+
"branch_no",
|
|
20
22
|
"order.*",
|
|
21
23
|
"order.items.*",
|
|
22
24
|
"order.shipping_methods.*",
|
|
@@ -27,69 +29,150 @@ exports.createOrderFulfillmentForInwardStep = (0, workflows_sdk_1.createStep)("c
|
|
|
27
29
|
logger.warn(`inward-fulfillment: SKIP jewel_id=${inward.jewel_id}: no order_master for erp_order_id=${inward.erp_order_id}`);
|
|
28
30
|
continue;
|
|
29
31
|
}
|
|
30
|
-
const
|
|
32
|
+
const orderMaster = orderMasters[0];
|
|
33
|
+
const medusaOrder = orderMaster?.order;
|
|
31
34
|
medusaOrderId = medusaOrder?.id;
|
|
32
35
|
if (!medusaOrder?.id) {
|
|
33
36
|
logger.warn(`inward-fulfillment: SKIP jewel_id=${inward.jewel_id}: order_master found but no linked Medusa order (erp_order_id=${inward.erp_order_id})`);
|
|
34
37
|
continue;
|
|
35
38
|
}
|
|
36
|
-
|
|
39
|
+
// Gate on branch match before fulfilling.
|
|
40
|
+
// POS order (branch_no set): inward must be at the same branch.
|
|
41
|
+
// Online order (branch_no null): inward must be at a Self branch.
|
|
42
|
+
const orderBranchNo = orderMaster.branch_no || null;
|
|
43
|
+
if (orderBranchNo !== null) {
|
|
44
|
+
if (inward.branch_no !== orderBranchNo) {
|
|
45
|
+
logger.info(`inward-fulfillment: SKIP jewel_id=${inward.jewel_id}: inward branch=${inward.branch_no} != order branch=${orderBranchNo} — waiting for branch transfer`);
|
|
46
|
+
continue;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
if (inward.branch_name !== "Self") {
|
|
51
|
+
logger.info(`inward-fulfillment: SKIP jewel_id=${inward.jewel_id}: online order but inward branch_name=${inward.branch_name} is not Self`);
|
|
52
|
+
continue;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
logger.info(`inward-fulfillment: Found Medusa order=${medusaOrder.id} status=${medusaOrder.status} items=${medusaOrder.items?.length ?? 0} order_branch=${orderBranchNo ?? "Self(online)"} inward_branch=${inward.branch_no}`);
|
|
37
56
|
const matchingItem = medusaOrder.items?.find((item) => item.variant_sku === inward.inward_sku_no);
|
|
38
57
|
if (!matchingItem) {
|
|
39
58
|
logger.warn(`inward-fulfillment: SKIP jewel_id=${inward.jewel_id}: no item with sku=${inward.inward_sku_no} in order=${medusaOrder.id} -available skus: ${medusaOrder.items?.map((i) => i.variant_sku).join(", ")}`);
|
|
40
59
|
continue;
|
|
41
60
|
}
|
|
61
|
+
// Assign jewel_code / jewel_id to the order item if not already set
|
|
62
|
+
if (!matchingItem.variant_barcode) {
|
|
63
|
+
await orderService.updateOrderLineItems([
|
|
64
|
+
{
|
|
65
|
+
selector: { id: matchingItem.id },
|
|
66
|
+
data: {
|
|
67
|
+
variant_barcode: inward.jewel_code,
|
|
68
|
+
metadata: {
|
|
69
|
+
...(matchingItem.metadata || {}),
|
|
70
|
+
jewel_id: inward.jewel_id,
|
|
71
|
+
},
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
]);
|
|
75
|
+
logger.info(`[inward-fulfillment] Assigned jewel_code=${inward.jewel_code} (jewel_id=${inward.jewel_id}) to item ${matchingItem.id}`);
|
|
76
|
+
}
|
|
42
77
|
logger.info(`inward-fulfillment: Matched item=${matchingItem.id} sku=${inward.inward_sku_no} qty=${matchingItem.quantity} fulfilled=${matchingItem.fulfilled_quantity ?? 0}`);
|
|
78
|
+
// Resolve the stock location for this branch
|
|
43
79
|
const { data: partyMasters } = await query.graph({
|
|
44
80
|
entity: "party_master",
|
|
45
81
|
fields: ["party_no", "mapping_id"],
|
|
46
82
|
filters: { party_no: inward.branch_no },
|
|
47
83
|
});
|
|
48
84
|
const locationId = partyMasters[0]?.mapping_id ?? null;
|
|
49
|
-
|
|
50
|
-
|
|
85
|
+
// If mapping_id is an outlet_ ID, resolve to sloc_ via
|
|
86
|
+
// outlet→store link, then store.default_location_id
|
|
87
|
+
let resolvedLocationId = locationId;
|
|
88
|
+
if (locationId?.startsWith("outlet_")) {
|
|
89
|
+
// Hop 1: outlet → store via the outlet_store link entry point.
|
|
90
|
+
// (link.list({ outlet: {...} }) throws here — a single-key filter
|
|
91
|
+
// can't resolve the link module — so query the link directly.)
|
|
92
|
+
const { data: outletStoreLinks } = await query.graph({
|
|
93
|
+
entity: "outlet_store",
|
|
94
|
+
fields: ["outlet_id", "store_id"],
|
|
95
|
+
filters: { outlet_id: locationId },
|
|
96
|
+
});
|
|
97
|
+
const storeId = outletStoreLinks?.[0]?.store_id;
|
|
98
|
+
if (storeId) {
|
|
99
|
+
// Hop 2: store.default_location_id
|
|
100
|
+
const storeModule = container.resolve(utils_1.Modules.STORE);
|
|
101
|
+
const store = await storeModule.retrieveStore(storeId);
|
|
102
|
+
const slocId = store?.default_location_id ?? null;
|
|
103
|
+
resolvedLocationId = slocId;
|
|
104
|
+
logger.info(`inward-fulfillment: Resolved outlet=${locationId} → store=${storeId} → default_location=${slocId ?? "none"}`);
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
logger.warn(`inward-fulfillment: No store linked to outlet=${locationId} — cannot resolve stock_location`);
|
|
108
|
+
resolvedLocationId = null;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
logger.info(`inward-fulfillment: Location lookup branch_no=${inward.branch_no} mapping_id=${locationId ?? "null"} resolved=${resolvedLocationId ?? "null"}`);
|
|
112
|
+
let invItemId;
|
|
113
|
+
if (resolvedLocationId) {
|
|
51
114
|
const invItems = await inventoryModule.listInventoryItems({
|
|
52
115
|
sku: inward.inward_sku_no,
|
|
53
116
|
});
|
|
54
|
-
|
|
117
|
+
invItemId = invItems[0]?.id;
|
|
55
118
|
if (!invItemId) {
|
|
56
119
|
logger.warn(`inward-fulfillment: No inventory_item found for sku=${inward.inward_sku_no} -skipping inventory ensure`);
|
|
57
120
|
}
|
|
58
121
|
else {
|
|
59
122
|
const levels = await inventoryModule.listInventoryLevels({
|
|
60
123
|
inventory_item_id: invItemId,
|
|
61
|
-
location_id:
|
|
124
|
+
location_id: resolvedLocationId,
|
|
62
125
|
});
|
|
63
126
|
if (!levels.length) {
|
|
64
127
|
await inventoryModule.createInventoryLevels([
|
|
65
128
|
{
|
|
66
129
|
inventory_item_id: invItemId,
|
|
67
|
-
location_id:
|
|
130
|
+
location_id: resolvedLocationId,
|
|
68
131
|
stocked_quantity: 1,
|
|
69
132
|
},
|
|
70
133
|
]);
|
|
71
|
-
logger.info(`inward-fulfillment: Created inventory level inv=${invItemId} loc=${
|
|
134
|
+
logger.info(`inward-fulfillment: Created inventory level inv=${invItemId} loc=${resolvedLocationId}`);
|
|
72
135
|
}
|
|
73
136
|
else if (levels[0].available_quantity < 1) {
|
|
74
|
-
await inventoryModule.adjustInventory(invItemId,
|
|
75
|
-
logger.info(`inward-fulfillment: Adjusted inventory +1 inv=${invItemId} loc=${
|
|
137
|
+
await inventoryModule.adjustInventory(invItemId, resolvedLocationId, 1);
|
|
138
|
+
logger.info(`inward-fulfillment: Adjusted inventory +1 inv=${invItemId} loc=${resolvedLocationId} (was available=${levels[0].available_quantity})`);
|
|
76
139
|
}
|
|
77
140
|
else {
|
|
78
|
-
logger.info(`inward-fulfillment: Inventory OK inv=${invItemId} loc=${
|
|
141
|
+
logger.info(`inward-fulfillment: Inventory OK inv=${invItemId} loc=${resolvedLocationId} available=${levels[0].available_quantity}`);
|
|
79
142
|
}
|
|
80
143
|
}
|
|
81
144
|
}
|
|
145
|
+
// MTO items sell before inventory exists, so the order has no stock
|
|
146
|
+
// reservation. Medusa's createOrderFulfillment requires one — create it
|
|
147
|
+
// now (idempotently) at the resolved location before fulfilling.
|
|
148
|
+
if (resolvedLocationId && invItemId) {
|
|
149
|
+
const existingReservations = await inventoryModule.listReservationItems({
|
|
150
|
+
line_item_id: matchingItem.id,
|
|
151
|
+
});
|
|
152
|
+
if (!existingReservations.length) {
|
|
153
|
+
await inventoryModule.createReservationItems([
|
|
154
|
+
{
|
|
155
|
+
line_item_id: matchingItem.id,
|
|
156
|
+
inventory_item_id: invItemId,
|
|
157
|
+
location_id: resolvedLocationId,
|
|
158
|
+
quantity: 1,
|
|
159
|
+
allow_backorder: true,
|
|
160
|
+
},
|
|
161
|
+
]);
|
|
162
|
+
logger.info(`inward-fulfillment: Created reservation line_item=${matchingItem.id} inv=${invItemId} loc=${resolvedLocationId}`);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
82
165
|
// fulfilled_quantity on the order item is the source of truth -no extra query needed
|
|
83
166
|
if ((matchingItem.fulfilled_quantity ?? 0) >= matchingItem.quantity) {
|
|
84
167
|
logger.warn(`inward-fulfillment: SKIP jewel_id=${inward.jewel_id}: item=${matchingItem.id} already fully fulfilled (${matchingItem.fulfilled_quantity}/${matchingItem.quantity})`);
|
|
85
168
|
continue;
|
|
86
169
|
}
|
|
87
|
-
logger.info(`inward-fulfillment: Creating fulfillment order=${medusaOrder.id} item=${matchingItem.id} location=${
|
|
170
|
+
logger.info(`inward-fulfillment: Creating fulfillment order=${medusaOrder.id} item=${matchingItem.id} location=${resolvedLocationId ?? "none"} jewel_id=${inward.jewel_id}`);
|
|
88
171
|
await (0, core_flows_1.createOrderFulfillmentWorkflow)(container).run({
|
|
89
172
|
input: {
|
|
90
173
|
order_id: medusaOrder.id,
|
|
91
174
|
items: [{ id: matchingItem.id, quantity: 1 }],
|
|
92
|
-
...(
|
|
175
|
+
...(resolvedLocationId ? { location_id: resolvedLocationId } : {}),
|
|
93
176
|
metadata: {
|
|
94
177
|
erp_order_id: inward.erp_order_id,
|
|
95
178
|
jewel_id: inward.jewel_id,
|
|
@@ -110,4 +193,4 @@ exports.createOrderFulfillmentForInwardStep = (0, workflows_sdk_1.createStep)("c
|
|
|
110
193
|
}
|
|
111
194
|
return new workflows_sdk_1.StepResponse(null);
|
|
112
195
|
});
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
196
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW9yZGVyLWZ1bGZpbGxtZW50LWZvci1pbndhcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2lud2FyZC1tYXN0ZXIvc3RlcHMvY3JlYXRlLW9yZGVyLWZ1bGZpbGxtZW50LWZvci1pbndhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBQTZFO0FBQzdFLHFEQUltQztBQUNuQyw0REFBNkU7QUFXaEUsUUFBQSxtQ0FBbUMsR0FBRyxJQUFBLDBCQUFVLEVBQzNELHFDQUFxQyxFQUNyQyxLQUFLLEVBQUUsT0FBK0MsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUU7SUFDdkUsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMzQyxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pFLE1BQU0sWUFBWSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsZUFBTyxDQUFDLEtBQUssQ0FBUSxDQUFDO0lBQzdELE1BQU0sZUFBZSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsOEJBQXNCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFNUUsTUFBTSxDQUFDLElBQUksQ0FBQyxrQ0FBa0MsT0FBTyxDQUFDLE1BQU0sWUFBWSxDQUFDLENBQUM7SUFFMUUsS0FBSyxNQUFNLE1BQU0sSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUM3QixNQUFNLENBQUMsSUFBSSxDQUNULHNDQUFzQyxNQUFNLENBQUMsUUFBUSxRQUFRLE1BQU0sQ0FBQyxhQUFhLGlCQUFpQixNQUFNLENBQUMsWUFBWSxjQUFjLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FDdEosQ0FBQztRQUNGLElBQUksYUFBaUMsQ0FBQztRQUN0QyxJQUFJLENBQUM7WUFDSCxNQUFNLEVBQUUsSUFBSSxFQUFFLFlBQVks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
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.updateOrderItemFromInwardStep = exports.updateOrderItemFromInwardStepId = void 0;
|
|
4
|
+
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
5
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
6
|
+
exports.updateOrderItemFromInwardStepId = "update-order-item-from-inward-step";
|
|
7
|
+
exports.updateOrderItemFromInwardStep = (0, workflows_sdk_1.createStep)(exports.updateOrderItemFromInwardStepId, async (inwards, { container }) => {
|
|
8
|
+
const logger = container.resolve("logger");
|
|
9
|
+
const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
|
|
10
|
+
const orderService = container.resolve(utils_1.Modules.ORDER);
|
|
11
|
+
logger.info(`[InwardPriceUpdate] Processing ${inwards.length} inward(s)...`);
|
|
12
|
+
for (const inward of inwards) {
|
|
13
|
+
try {
|
|
14
|
+
// Query 1: order_master → get Medusa order ID + verify MTO
|
|
15
|
+
const { data: orderMasters } = await query.graph({
|
|
16
|
+
entity: "order_master",
|
|
17
|
+
fields: [
|
|
18
|
+
"id",
|
|
19
|
+
"order.*",
|
|
20
|
+
"order.metadata",
|
|
21
|
+
"order.extended_order.sale_external_id",
|
|
22
|
+
],
|
|
23
|
+
filters: { erp_order_id: inward.erp_order_id },
|
|
24
|
+
});
|
|
25
|
+
if (!orderMasters.length) {
|
|
26
|
+
logger.warn(`[InwardPriceUpdate] No order_master for erp_order_id=${inward.erp_order_id}`);
|
|
27
|
+
continue;
|
|
28
|
+
}
|
|
29
|
+
const linkedOrder = orderMasters[0]?.order;
|
|
30
|
+
const medusaOrderId = linkedOrder?.id;
|
|
31
|
+
if (!medusaOrderId) {
|
|
32
|
+
logger.warn(`[InwardPriceUpdate] No linked Medusa order for erp_order_id=${inward.erp_order_id}`);
|
|
33
|
+
continue;
|
|
34
|
+
}
|
|
35
|
+
if (linkedOrder?.metadata?.cart_order_type !== "make_to_order") {
|
|
36
|
+
logger.info(`[InwardPriceUpdate] Skip non-MTO order=${medusaOrderId}`);
|
|
37
|
+
continue;
|
|
38
|
+
}
|
|
39
|
+
// Once an ERP sale exists for the order, the price is billed and locked
|
|
40
|
+
// — do NOT change it from inward updates. sale_external_id is set on the
|
|
41
|
+
// extended_order at sale creation (create-sale-for-order-step).
|
|
42
|
+
const extOrder = linkedOrder?.extended_order;
|
|
43
|
+
const saleExternalId = (Array.isArray(extOrder) ? extOrder[0] : extOrder)?.sale_external_id;
|
|
44
|
+
if (saleExternalId) {
|
|
45
|
+
logger.info(`[InwardPriceUpdate] Skip order=${medusaOrderId} — sale already created (sale_external_id=${saleExternalId})`);
|
|
46
|
+
continue;
|
|
47
|
+
}
|
|
48
|
+
// Query 2: order → items for SKU matching
|
|
49
|
+
const { data: orders } = await query.graph({
|
|
50
|
+
entity: "order",
|
|
51
|
+
fields: [
|
|
52
|
+
"id",
|
|
53
|
+
"metadata",
|
|
54
|
+
"items.*",
|
|
55
|
+
"items.variant.extended_variant.gross_weight",
|
|
56
|
+
"items.variant.extended_variant.net_weight",
|
|
57
|
+
],
|
|
58
|
+
filters: { id: medusaOrderId },
|
|
59
|
+
});
|
|
60
|
+
const order = orders[0];
|
|
61
|
+
if (!order)
|
|
62
|
+
continue;
|
|
63
|
+
const matchingItem = order.items?.find((item) => item.variant_sku === inward.inward_sku_no);
|
|
64
|
+
if (!matchingItem) {
|
|
65
|
+
logger.warn(`[InwardPriceUpdate] No item sku=${inward.inward_sku_no} in order=${medusaOrderId}`);
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
68
|
+
if (matchingItem.metadata?.is_price_fixed === true) {
|
|
69
|
+
logger.info(`[InwardPriceUpdate] Skip fixed-price item=${matchingItem.id}`);
|
|
70
|
+
continue;
|
|
71
|
+
}
|
|
72
|
+
// Query 3: inward_master → detail lines + extra charges for ERP-computed price
|
|
73
|
+
const { data: inwardMasters } = await query.graph({
|
|
74
|
+
entity: "inward_master",
|
|
75
|
+
fields: [
|
|
76
|
+
"id",
|
|
77
|
+
"jewel_id",
|
|
78
|
+
"gross_weight",
|
|
79
|
+
"net_weight",
|
|
80
|
+
"inward_details.*",
|
|
81
|
+
"inward_extra_charges.*",
|
|
82
|
+
],
|
|
83
|
+
filters: { jewel_id: inward.jewel_id },
|
|
84
|
+
});
|
|
85
|
+
const inwardMaster = inwardMasters[0];
|
|
86
|
+
if (!inwardMaster) {
|
|
87
|
+
logger.warn(`[InwardPriceUpdate] No inward_master for jewel_id=${inward.jewel_id}`);
|
|
88
|
+
continue;
|
|
89
|
+
}
|
|
90
|
+
// Sum ERP-computed amounts across all detail lines:
|
|
91
|
+
// final_amt (if set) or amount, plus cpf, hand, set, loss charges
|
|
92
|
+
const detailTotal = (inwardMaster.inward_details ?? []).reduce((sum, d) => {
|
|
93
|
+
const lineAmt = Number(d.final_amt ?? d.amount ?? 0);
|
|
94
|
+
return (sum +
|
|
95
|
+
lineAmt +
|
|
96
|
+
Number(d.cpf_amt ?? 0) +
|
|
97
|
+
Number(d.hand_amount ?? 0) +
|
|
98
|
+
Number(d.set_amount ?? 0) +
|
|
99
|
+
Number(d.loss_amt ?? 0));
|
|
100
|
+
}, 0);
|
|
101
|
+
const extraTotal = (inwardMaster.inward_extra_charges ?? []).reduce((sum, ec) => sum + Number(ec.amount ?? 0), 0);
|
|
102
|
+
const newUnitPrice = Math.round((detailTotal + extraTotal) * 100) / 100;
|
|
103
|
+
const oldUnitPrice = Number(matchingItem.unit_price || 0);
|
|
104
|
+
// Detect every order-item field driven by the inward, so an inward
|
|
105
|
+
// UPDATE re-syncs them (not just price): unit_price, variant_barcode
|
|
106
|
+
// (jewel_code), metadata.jewel_id, and the actual physical-piece
|
|
107
|
+
// weights (gross/net) — which differ from the catalog/style weight.
|
|
108
|
+
const md = matchingItem.metadata || {};
|
|
109
|
+
const oldBarcode = matchingItem.variant_barcode ?? null;
|
|
110
|
+
const newBarcode = inward.jewel_code ?? null;
|
|
111
|
+
const oldJewelId = md.jewel_id ?? null;
|
|
112
|
+
const newJewelId = inward.jewel_id ?? null;
|
|
113
|
+
// Old weight = previously-synced metadata weight, falling back to the
|
|
114
|
+
// catalog/style variant weight (what was shown before any inward sync)
|
|
115
|
+
// so the first sync's diff reads e.g. 1.697→3.416 instead of —→3.416.
|
|
116
|
+
const evWeight = matchingItem.variant?.extended_variant || {};
|
|
117
|
+
const oldGross = md.gross_weight ?? evWeight.gross_weight ?? null;
|
|
118
|
+
const newGross = inwardMaster.gross_weight ?? null;
|
|
119
|
+
const oldNet = md.net_weight ?? evWeight.net_weight ?? null;
|
|
120
|
+
const newNet = inwardMaster.net_weight ?? null;
|
|
121
|
+
const priceChanged = newUnitPrice !== oldUnitPrice;
|
|
122
|
+
const barcodeChanged = newBarcode != null && newBarcode !== oldBarcode;
|
|
123
|
+
const jewelIdChanged = newJewelId != null && oldJewelId !== newJewelId;
|
|
124
|
+
const grossChanged = newGross != null && Number(oldGross) !== Number(newGross);
|
|
125
|
+
const netChanged = newNet != null && Number(oldNet) !== Number(newNet);
|
|
126
|
+
if (!priceChanged &&
|
|
127
|
+
!barcodeChanged &&
|
|
128
|
+
!jewelIdChanged &&
|
|
129
|
+
!grossChanged &&
|
|
130
|
+
!netChanged) {
|
|
131
|
+
logger.info(`[InwardPriceUpdate] No change item=${matchingItem.id} price=${oldUnitPrice}`);
|
|
132
|
+
continue;
|
|
133
|
+
}
|
|
134
|
+
// Apply only the changed fields in a single line-item update.
|
|
135
|
+
const data = {};
|
|
136
|
+
if (priceChanged)
|
|
137
|
+
data.unit_price = newUnitPrice;
|
|
138
|
+
if (barcodeChanged)
|
|
139
|
+
data.variant_barcode = newBarcode;
|
|
140
|
+
if (jewelIdChanged || grossChanged || netChanged) {
|
|
141
|
+
data.metadata = {
|
|
142
|
+
...md,
|
|
143
|
+
...(jewelIdChanged ? { jewel_id: newJewelId } : {}),
|
|
144
|
+
...(grossChanged ? { gross_weight: newGross } : {}),
|
|
145
|
+
...(netChanged ? { net_weight: newNet } : {}),
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
await orderService.updateOrderLineItems([
|
|
149
|
+
{
|
|
150
|
+
selector: { id: matchingItem.id },
|
|
151
|
+
data,
|
|
152
|
+
},
|
|
153
|
+
]);
|
|
154
|
+
const changeSummary = [
|
|
155
|
+
priceChanged ? `price ${oldUnitPrice}→${newUnitPrice}` : null,
|
|
156
|
+
barcodeChanged ? `barcode ${oldBarcode ?? "—"}→${newBarcode}` : null,
|
|
157
|
+
jewelIdChanged ? `jewel_id ${oldJewelId ?? "—"}→${newJewelId}` : null,
|
|
158
|
+
grossChanged ? `gross_wt ${oldGross ?? "—"}→${newGross}` : null,
|
|
159
|
+
netChanged ? `net_wt ${oldNet ?? "—"}→${newNet}` : null,
|
|
160
|
+
]
|
|
161
|
+
.filter(Boolean)
|
|
162
|
+
.join(", ");
|
|
163
|
+
// Record a committed, visible order-history entry (same API the POS
|
|
164
|
+
// notes route uses) so the inward-driven change shows up in history
|
|
165
|
+
// with old→new values. Non-fatal if it fails.
|
|
166
|
+
try {
|
|
167
|
+
const changeDetails = {
|
|
168
|
+
type: "inward_order_item_update",
|
|
169
|
+
item_id: matchingItem.id,
|
|
170
|
+
sku: inward.inward_sku_no,
|
|
171
|
+
jewel_id: newJewelId,
|
|
172
|
+
...(priceChanged
|
|
173
|
+
? { old_price: oldUnitPrice, new_price: newUnitPrice }
|
|
174
|
+
: {}),
|
|
175
|
+
...(barcodeChanged
|
|
176
|
+
? { old_barcode: oldBarcode, new_barcode: newBarcode }
|
|
177
|
+
: {}),
|
|
178
|
+
...(jewelIdChanged
|
|
179
|
+
? { old_jewel_id: oldJewelId, new_jewel_id: newJewelId }
|
|
180
|
+
: {}),
|
|
181
|
+
...(grossChanged
|
|
182
|
+
? { old_gross_weight: oldGross, new_gross_weight: newGross }
|
|
183
|
+
: {}),
|
|
184
|
+
...(netChanged
|
|
185
|
+
? { old_net_weight: oldNet, new_net_weight: newNet }
|
|
186
|
+
: {}),
|
|
187
|
+
};
|
|
188
|
+
await orderService.registerOrderChange({
|
|
189
|
+
order_id: medusaOrderId,
|
|
190
|
+
created_by: "system",
|
|
191
|
+
confirmed_by: "system",
|
|
192
|
+
change_type: "update_order",
|
|
193
|
+
description: `Inward update: sku=${inward.inward_sku_no} ${changeSummary}`,
|
|
194
|
+
// Mirror the diff onto the change row's metadata so history
|
|
195
|
+
// endpoints can surface old→new without expanding actions.
|
|
196
|
+
metadata: { reason: "inward_order_item_update", ...changeDetails },
|
|
197
|
+
details: changeDetails,
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
catch (changeError) {
|
|
201
|
+
logger.error(`[InwardPriceUpdate] Failed to register order change item=${matchingItem.id}: ${changeError?.message}`);
|
|
202
|
+
}
|
|
203
|
+
logger.info(`[InwardPriceUpdate] item=${matchingItem.id} sku=${inward.inward_sku_no} ${changeSummary} (jewel_id=${newJewelId}, detail=${detailTotal}, extra=${extraTotal})`);
|
|
204
|
+
}
|
|
205
|
+
catch (err) {
|
|
206
|
+
logger.error(`[InwardPriceUpdate] ERROR jewel_id=${inward.jewel_id} erp_order_id=${inward.erp_order_id}: ${err?.message}\n${err?.stack}`);
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
return new workflows_sdk_1.StepResponse(null);
|
|
210
|
+
});
|
|
211
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLW9yZGVyLWl0ZW0tZnJvbS1pbndhcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2lud2FyZC1tYXN0ZXIvc3RlcHMvdXBkYXRlLW9yZGVyLWl0ZW0tZnJvbS1pbndhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBQTZFO0FBQzdFLHFEQUErRTtBQVNsRSxRQUFBLCtCQUErQixHQUMxQyxvQ0FBb0MsQ0FBQztBQUUxQixRQUFBLDZCQUE2QixHQUFHLElBQUEsMEJBQVUsRUFDckQsdUNBQStCLEVBQy9CLEtBQUssRUFBRSxPQUF5QyxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRTtJQUNqRSxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzNDLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakUsTUFBTSxZQUFZLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxlQUFPLENBQUMsS0FBSyxDQUFRLENBQUM7SUFFN0QsTUFBTSxDQUFDLElBQUksQ0FDVCxrQ0FBa0MsT0FBTyxDQUFDLE1BQU0sZUFBZSxDQUNoRSxDQUFDO0lBRUYsS0FBSyxNQUFNLE1BQU0sSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUM7WUFDSCwyREFBMkQ7WUFDM0QsTUFBTSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUM7Z0JBQy9DLE1BQU0sRUFBRSxjQUFjO2dCQUN0QixNQUFNLEVBQUU7b0JBQ04sSUFBSTtvQkFDSixTQUFTO29CQUNULGdCQUFnQjtvQkFDaEIsdUNBQXVDO2lCQUN4QztnQkFDRCxPQUFPLEVBQUUsRUFBRSxZQUFZLEVBQUUsTUFBTSxDQUFDLFlBQVksRUFBRTthQUMvQyxDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUN6QixNQUFNLENBQUMsSUFBSSxDQUNULHdEQUF3RCxNQUFNLENBQUMsWUFBWSxFQUFFLENBQzlFLENBQUM7Z0JBQ0YsU0FBUztZQUNYLENBQUM7WUFFRCxNQUFNLFdBQVcsR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDO1lBQzNDLE1BQU0sYUFBYSxHQUFHLFdBQVcsRUFBRSxFQUFFLENBQUM7WUFDdEMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUNuQixNQUFNLENBQUMsSUFBSSxDQUNULCtEQUErRCxNQUFNLENBQUMsWUFBWSxFQUFFLENBQ3JGLENBQUM7Z0JBQ0YsU0FBUztZQUNYLENBQUM7WUFFRCxJQUFJLFdBQVcsRUFBRSxRQUFRLEVBQUUsZUFBZSxLQUFLLGVBQWUsRUFBRSxDQUFDO2dCQUMvRCxNQUFNLENBQUMsSUFBSSxDQUNULDBDQUEwQyxhQUFhLEVBQUUsQ0FDMUQsQ0FBQztnQkFDRixTQUFTO1lBQ1gsQ0FBQztZQUVELHdFQUF3RTtZQUN4RSx5RUFBeUU7WUFDekUsZ0VBQWdFO1lBQ2hFLE1BQU0sUUFBUSxHQUFJLFdBQW1CLEVBQUUsY0FBYyxDQUFDO1lBQ3RELE1BQU0sY0FBYyxHQUFHLENBQ3JCLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUNqRCxFQUFFLGdCQUFnQixDQUFDO1lBQ3BCLElBQUksY0FBYyxFQUFFLENBQUM7Z0JBQ25CLE1BQU0sQ0FBQyxJQUFJLENBQ1Qsa0NBQWtDLGFBQWEsNkNBQTZDLGNBQWMsR0FBRyxDQUM5RyxDQUFDO2dCQUNGLFNBQVM7WUFDWCxDQUFDO1lBRUQsMENBQTBDO1lBQzFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO2dCQUN6QyxNQUFNLEVBQUUsT0FBTztnQkFDZixNQUFNLEVBQUU7b0JBQ04sSUFBSTtvQkFDSixVQUFVO29CQUNWLFNBQVM7b0JBQ1QsNkNBQTZDO29CQUM3QywyQ0FBMkM7aUJBQzVDO2dCQUNELE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxhQUFhLEVBQUU7YUFDL0IsQ0FBQyxDQUFDO1lBRUgsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3hCLElBQUksQ0FBQyxLQUFLO2dCQUFFLFNBQVM7WUFFckIsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQ3BDLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxLQUFLLE1BQU0sQ0FBQyxhQUFhLENBQ3pELENBQUM7WUFFRixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQ2xCLE1BQU0sQ0FBQyxJQUFJLENBQ1QsbUNBQW1DLE1BQU0sQ0FBQyxhQUFhLGFBQWEsYUFBYSxFQUFFLENBQ3BGLENBQUM7Z0JBQ0YsU0FBUztZQUNYLENBQUM7WUFFRCxJQUFLLFlBQW9CLENBQUMsUUFBUSxFQUFFLGNBQWMsS0FBSyxJQUFJLEVBQUUsQ0FBQztnQkFDNUQsTUFBTSxDQUFDLElBQUksQ0FDVCw2Q0FBNkMsWUFBWSxDQUFDLEVBQUUsRUFBRSxDQUMvRCxDQUFDO2dCQUNGLFNBQVM7WUFDWCxDQUFDO1lBRUQsK0VBQStFO1lBQy9FLE1BQU0sRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO2dCQUNoRCxNQUFNLEVBQUUsZUFBZTtnQkFDdkIsTUFBTSxFQUFFO29CQUNOLElBQUk7b0JBQ0osVUFBVTtvQkFDVixjQUFjO29CQUNkLFlBQVk7b0JBQ1osa0JBQWtCO29CQUNsQix3QkFBd0I7aUJBQ3pCO2dCQUNELE9BQU8sRUFBRSxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFO2FBQ3ZDLENBQUMsQ0FBQztZQUVILE1BQU0sWUFBWSxHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0QyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQ2xCLE1BQU0sQ0FBQyxJQUFJLENBQ1QscURBQXFELE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FDdkUsQ0FBQztnQkFDRixTQUFTO1lBQ1gsQ0FBQztZQUVELG9EQUFvRDtZQUNwRCxrRUFBa0U7WUFDbEUsTUFBTSxXQUFXLEdBQUcsQ0FBQyxZQUFZLENBQUMsY0FBYyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FDNUQsQ0FBQyxHQUFXLEVBQUUsQ0FBTSxFQUFFLEVBQUU7Z0JBQ3RCLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxJQUFJLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQ3JELE9BQU8sQ0FDTCxHQUFHO29CQUNILE9BQU87b0JBQ1AsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDO29CQUN0QixNQUFNLENBQUMsQ0FBQyxDQUFDLFdBQVcsSUFBSSxDQUFDLENBQUM7b0JBQzFCLE1BQU0sQ0FBQyxDQUFDLENBQUMsVUFBVSxJQUFJLENBQUMsQ0FBQztvQkFDekIsTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLENBQ3hCLENBQUM7WUFDSixDQUFDLEVBQ0QsQ0FBQyxDQUNGLENBQUM7WUFFRixNQUFNLFVBQVUsR0FBRyxDQUFDLFlBQVksQ0FBQyxvQkFBb0IsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQ2pFLENBQUMsR0FBVyxFQUFFLEVBQU8sRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxFQUN0RCxDQUFDLENBQ0YsQ0FBQztZQUVGLE1BQU0sWUFBWSxHQUNoQixJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQztZQUNyRCxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLFVBQVUsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUUxRCxtRUFBbUU7WUFDbkUscUVBQXFFO1lBQ3JFLGlFQUFpRTtZQUNqRSxvRUFBb0U7WUFDcEUsTUFBTSxFQUFFLEdBQUksWUFBb0IsQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDO1lBQ2hELE1BQU0sVUFBVSxHQUFJLFlBQW9CLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQztZQUNqRSxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQztZQUM3QyxNQUFNLFVBQVUsR0FBRyxFQUFFLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQztZQUN2QyxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQztZQUMzQyxzRUFBc0U7WUFDdEUsdUVBQXVFO1lBQ3ZFLHNFQUFzRTtZQUN0RSxNQUFNLFFBQVEsR0FDWCxZQUFvQixDQUFDLE9BQU8sRUFBRSxnQkFBZ0IsSUFBSSxFQUFFLENBQUM7WUFDeEQsTUFBTSxRQUFRLEdBQUcsRUFBRSxDQUFDLFlBQVksSUFBSSxRQUFRLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQztZQUNsRSxNQUFNLFFBQVEsR0FBSSxZQUFvQixDQUFDLFlBQVksSUFBSSxJQUFJLENBQUM7WUFDNUQsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDLFVBQVUsSUFBSSxRQUFRLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQztZQUM1RCxNQUFNLE1BQU0sR0FBSSxZQUFvQixDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUM7WUFFeEQsTUFBTSxZQUFZLEdBQUcsWUFBWSxLQUFLLFlBQVksQ0FBQztZQUNuRCxNQUFNLGNBQWMsR0FBRyxVQUFVLElBQUksSUFBSSxJQUFJLFVBQVUsS0FBSyxVQUFVLENBQUM7WUFDdkUsTUFBTSxjQUFjLEdBQUcsVUFBVSxJQUFJLElBQUksSUFBSSxVQUFVLEtBQUssVUFBVSxDQUFDO1lBQ3ZFLE1BQU0sWUFBWSxHQUNoQixRQUFRLElBQUksSUFBSSxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDNUQsTUFBTSxVQUFVLEdBQ2QsTUFBTSxJQUFJLElBQUksSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBRXRELElBQ0UsQ0FBQyxZQUFZO2dCQUNiLENBQUMsY0FBYztnQkFDZixDQUFDLGNBQWM7Z0JBQ2YsQ0FBQyxZQUFZO2dCQUNiLENBQUMsVUFBVSxFQUNYLENBQUM7Z0JBQ0QsTUFBTSxDQUFDLElBQUksQ0FDVCxzQ0FBc0MsWUFBWSxDQUFDLEVBQUUsVUFBVSxZQUFZLEVBQUUsQ0FDOUUsQ0FBQztnQkFDRixTQUFTO1lBQ1gsQ0FBQztZQUVELDhEQUE4RDtZQUM5RCxNQUFNLElBQUksR0FBd0IsRUFBRSxDQUFDO1lBQ3JDLElBQUksWUFBWTtnQkFBRSxJQUFJLENBQUMsVUFBVSxHQUFHLFlBQVksQ0FBQztZQUNqRCxJQUFJLGNBQWM7Z0JBQUUsSUFBSSxDQUFDLGVBQWUsR0FBRyxVQUFVLENBQUM7WUFDdEQsSUFBSSxjQUFjLElBQUksWUFBWSxJQUFJLFVBQVUsRUFBRSxDQUFDO2dCQUNqRCxJQUFJLENBQUMsUUFBUSxHQUFHO29CQUNkLEdBQUcsRUFBRTtvQkFDTCxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUNuRCxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUNuRCxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2lCQUM5QyxDQUFDO1lBQ0osQ0FBQztZQUVELE1BQU0sWUFBWSxDQUFDLG9CQUFvQixDQUFDO2dCQUN0QztvQkFDRSxRQUFRLEVBQUUsRUFBRSxFQUFFLEVBQUUsWUFBWSxDQUFDLEVBQUUsRUFBRTtvQkFDakMsSUFBSTtpQkFDTDthQUNGLENBQUMsQ0FBQztZQUVILE1BQU0sYUFBYSxHQUFHO2dCQUNwQixZQUFZLENBQUMsQ0FBQyxDQUFDLFNBQVMsWUFBWSxJQUFJLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJO2dCQUM3RCxjQUFjLENBQUMsQ0FBQyxDQUFDLFdBQVcsVUFBVSxJQUFJLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSTtnQkFDcEUsY0FBYyxDQUFDLENBQUMsQ0FBQyxZQUFZLFVBQVUsSUFBSSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUk7Z0JBQ3JFLFlBQVksQ0FBQyxDQUFDLENBQUMsWUFBWSxRQUFRLElBQUksR0FBRyxJQUFJLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJO2dCQUMvRCxVQUFVLENBQUMsQ0FBQyxDQUFDLFVBQVUsTUFBTSxJQUFJLEdBQUcsSUFBSSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSTthQUN4RDtpQkFDRSxNQUFNLENBQUMsT0FBTyxDQUFDO2lCQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUVkLG9FQUFvRTtZQUNwRSxvRUFBb0U7WUFDcEUsOENBQThDO1lBQzlDLElBQUksQ0FBQztnQkFDSCxNQUFNLGFBQWEsR0FBRztvQkFDcEIsSUFBSSxFQUFFLDBCQUEwQjtvQkFDaEMsT0FBTyxFQUFFLFlBQVksQ0FBQyxFQUFFO29CQUN4QixHQUFHLEVBQUUsTUFBTSxDQUFDLGFBQWE7b0JBQ3pCLFFBQVEsRUFBRSxVQUFVO29CQUNwQixHQUFHLENBQUMsWUFBWTt3QkFDZCxDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUU7d0JBQ3RELENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQ1AsR0FBRyxDQUFDLGNBQWM7d0JBQ2hCLENBQUMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRTt3QkFDdEQsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDUCxHQUFHLENBQUMsY0FBYzt3QkFDaEIsQ0FBQyxDQUFDLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFO3dCQUN4RCxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUNQLEdBQUcsQ0FBQyxZQUFZO3dCQUNkLENBQUMsQ0FBQyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUU7d0JBQzVELENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQ1AsR0FBRyxDQUFDLFVBQVU7d0JBQ1osQ0FBQyxDQUFDLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFO3dCQUNwRCxDQUFDLENBQUMsRUFBRSxDQUFDO2lCQUNSLENBQUM7Z0JBRUYsTUFBTSxZQUFZLENBQUMsbUJBQW1CLENBQUM7b0JBQ3JDLFFBQVEsRUFBRSxhQUFhO29CQUN2QixVQUFVLEVBQUUsUUFBUTtvQkFDcEIsWUFBWSxFQUFFLFFBQVE7b0JBQ3RCLFdBQVcsRUFBRSxjQUFjO29CQUMzQixXQUFXLEVBQUUsc0JBQXNCLE1BQU0sQ0FBQyxhQUFhLElBQUksYUFBYSxFQUFFO29CQUMxRSw0REFBNEQ7b0JBQzVELDJEQUEyRDtvQkFDM0QsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLDBCQUEwQixFQUFFLEdBQUcsYUFBYSxFQUFFO29CQUNsRSxPQUFPLEVBQUUsYUFBYTtpQkFDdkIsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztZQUFDLE9BQU8sV0FBZ0IsRUFBRSxDQUFDO2dCQUMxQixNQUFNLENBQUMsS0FBSyxDQUNWLDREQUE0RCxZQUFZLENBQUMsRUFBRSxLQUFLLFdBQVcsRUFBRSxPQUFPLEVBQUUsQ0FDdkcsQ0FBQztZQUNKLENBQUM7WUFFRCxNQUFNLENBQUMsSUFBSSxDQUNULDRCQUE0QixZQUFZLENBQUMsRUFBRSxRQUFRLE1BQU0sQ0FBQyxhQUFhLElBQUksYUFBYSxjQUFjLFVBQVUsWUFBWSxXQUFXLFdBQVcsVUFBVSxHQUFHLENBQ2hLLENBQUM7UUFDSixDQUFDO1FBQUMsT0FBTyxHQUFRLEVBQUUsQ0FBQztZQUNsQixNQUFNLENBQUMsS0FBSyxDQUNWLHNDQUFzQyxNQUFNLENBQUMsUUFBUSxpQkFBaUIsTUFBTSxDQUFDLFlBQVksS0FBSyxHQUFHLEVBQUUsT0FBTyxLQUFLLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FDNUgsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxJQUFJLDRCQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDaEMsQ0FBQyxDQUNGLENBQUMifQ==
|
|
@@ -5,6 +5,7 @@ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
|
5
5
|
const core_flows_1 = require("@medusajs/medusa/core-flows");
|
|
6
6
|
const update_extended_variant_batch_1 = require("../../update-extended-variant-from-variant/steps/update-extended-variant-batch");
|
|
7
7
|
const create_order_fulfillment_for_inward_1 = require("../steps/create-order-fulfillment-for-inward");
|
|
8
|
+
const update_order_item_from_inward_1 = require("../steps/update-order-item-from-inward");
|
|
8
9
|
const helper_1 = require("../helper");
|
|
9
10
|
const steps_1 = require("../steps");
|
|
10
11
|
const fetch_inward_master_1 = require("../steps/fetch-inward-master");
|
|
@@ -45,12 +46,14 @@ exports.createInwardMasterWorkflow = (0, workflows_sdk_1.createWorkflow)(exports
|
|
|
45
46
|
const ids = transformedInwardMaster.map((inward) => inward.location_id);
|
|
46
47
|
return [...new Set(ids)]; // Convert to array immediately
|
|
47
48
|
});
|
|
48
|
-
// Get
|
|
49
|
+
// Get ALL branch stock locations so inventory levels are created for every outlet,
|
|
50
|
+
// not just the ones in the current inward batch. This prevents "Inventory level not found"
|
|
51
|
+
// errors during fulfillment when an order is placed at a location that received no inward.
|
|
49
52
|
const { data: partyMasters } = (0, core_flows_1.useQueryGraphStep)({
|
|
50
53
|
entity: "party_master",
|
|
51
54
|
fields: ["*"],
|
|
52
55
|
filters: {
|
|
53
|
-
|
|
56
|
+
is_location: true,
|
|
54
57
|
},
|
|
55
58
|
}).config({
|
|
56
59
|
name: "party-masters",
|
|
@@ -235,13 +238,30 @@ exports.createInwardMasterWorkflow = (0, workflows_sdk_1.createWorkflow)(exports
|
|
|
235
238
|
},
|
|
236
239
|
});
|
|
237
240
|
});
|
|
241
|
+
// Finalize the order-item price/weights from the inward FIRST, while the
|
|
242
|
+
// order is still open, so the fulfillment below snapshots the FINAL price
|
|
243
|
+
// into the versioned order_item (and recomputes order totals / amount due).
|
|
244
|
+
// Running fulfillment first would lock in the old estimate price.
|
|
245
|
+
const inwardsForPriceUpdate = (0, workflows_sdk_1.transform)({ transformedInwardMaster }, ({ transformedInwardMaster }) => transformedInwardMaster
|
|
246
|
+
.filter((i) => i.erp_order_id)
|
|
247
|
+
.map((i) => ({
|
|
248
|
+
jewel_id: i.jewel_id,
|
|
249
|
+
jewel_code: i.jewel_code,
|
|
250
|
+
inward_sku_no: i.inward_sku_no,
|
|
251
|
+
erp_order_id: i.erp_order_id,
|
|
252
|
+
})));
|
|
253
|
+
(0, workflows_sdk_1.when)({ inwardsForPriceUpdate }, ({ inwardsForPriceUpdate }) => inwardsForPriceUpdate.length > 0).then(() => {
|
|
254
|
+
(0, update_order_item_from_inward_1.updateOrderItemFromInwardStep)(inwardsForPriceUpdate);
|
|
255
|
+
});
|
|
238
256
|
const inwardsNeedingFulfillment = (0, workflows_sdk_1.transform)({ transformedInwardMaster }, ({ transformedInwardMaster }) => transformedInwardMaster
|
|
239
257
|
.filter((i) => i.erp_order_id)
|
|
240
258
|
.map((i) => ({
|
|
241
259
|
jewel_id: i.jewel_id,
|
|
260
|
+
jewel_code: i.jewel_code,
|
|
242
261
|
inward_sku_no: i.inward_sku_no,
|
|
243
262
|
erp_order_id: i.erp_order_id,
|
|
244
263
|
branch_no: i.branch_no || i.location_id,
|
|
264
|
+
branch_name: i.branch_name,
|
|
245
265
|
})));
|
|
246
266
|
(0, workflows_sdk_1.when)({ inwardsNeedingFulfillment }, ({ inwardsNeedingFulfillment }) => inwardsNeedingFulfillment.length > 0).then(() => {
|
|
247
267
|
(0, create_order_fulfillment_for_inward_1.createOrderFulfillmentForInwardStep)(inwardsNeedingFulfillment);
|
|
@@ -249,4 +269,4 @@ exports.createInwardMasterWorkflow = (0, workflows_sdk_1.createWorkflow)(exports
|
|
|
249
269
|
const finalResult = (0, workflows_sdk_1.transform)({ createdInwards, extendedVariants }, ({ createdInwards, extendedVariants }) => extendedVariants.length ? createdInwards || [] : []);
|
|
250
270
|
return new workflows_sdk_1.WorkflowResponse(finalResult);
|
|
251
271
|
});
|
|
252
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWlud2FyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvaW53YXJkLW1hc3Rlci93b3JrZmxvd3MvY3JlYXRlLWlud2FyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxRUFLMkM7QUFDM0MsNERBQStFO0FBRy9FLGtJQUFnSTtBQUNoSSxzR0FBbUc7QUFDbkcsc0NBT21CO0FBQ25CLG9DQVFrQjtBQUNsQixzRUFBaUU7QUFFakUscURBQXlEO0FBRTVDLFFBQUEsc0JBQXNCLEdBQUcsZUFBZSxDQUFDO0FBRXpDLFFBQUEsMEJBQTBCLEdBQUcsSUFBQSw4QkFBYyxFQUN0RCw4QkFBc0IsRUFDdEIsQ0FBQyxLQUFrQixFQUFFLEVBQUU7SUFDckIsTUFBTSxVQUFVLEdBQUcsSUFBQSx1Q0FBaUIsRUFBQyxLQUFLLENBQUMsQ0FBQztJQUM1QyxNQUFNLHVCQUF1QixHQUFHLElBQUEseUJBQVMsRUFDdkMsRUFBRSxVQUFVLEVBQUUsRUFDZCxDQUFDLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUEsOEJBQXFCLEVBQUMsSUFBSSxDQUFDLENBQUMsQ0FDMUUsQ0FBQztJQUNGLG9EQUFvRDtJQUNwRCxNQUFNLGNBQWMsR0FBRyxJQUFBLHlCQUFTLEVBQzlCLEVBQUUsdUJBQXVCLEVBQUUsRUFDM0IsQ0FBQyxFQUFFLHVCQUF1QixFQUFFLEVBQUUsRUFBRTtRQUM5QixNQUFNLElBQUksR0FBRyx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN2RSxPQUFPLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsK0JBQStCO0lBQzVELENBQUMsQ0FDRixDQUFD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
|
|
272
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWlud2FyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvaW53YXJkLW1hc3Rlci93b3JrZmxvd3MvY3JlYXRlLWlud2FyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxRUFLMkM7QUFDM0MsNERBQStFO0FBRy9FLGtJQUFnSTtBQUNoSSxzR0FBbUc7QUFDbkcsMEZBQXVGO0FBQ3ZGLHNDQU9tQjtBQUNuQixvQ0FRa0I7QUFDbEIsc0VBQWlFO0FBRWpFLHFEQUF5RDtBQUU1QyxRQUFBLHNCQUFzQixHQUFHLGVBQWUsQ0FBQztBQUV6QyxRQUFBLDBCQUEwQixHQUFHLElBQUEsOEJBQWMsRUFDdEQsOEJBQXNCLEVBQ3RCLENBQUMsS0FBa0IsRUFBRSxFQUFFO0lBQ3JCLE1BQU0sVUFBVSxHQUFHLElBQUEsdUNBQWlCLEVBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUMsTUFBTSx1QkFBdUIsR0FBRyxJQUFBLHlCQUFTLEVBQ3ZDLEVBQUUsVUFBVSxFQUFFLEVBQ2QsQ0FBQyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFBLDhCQUFxQixFQUFDLElBQUksQ0FBQyxDQUFDLENBQzFFLENBQUM7SUFDRixvREFBb0Q7SUFDcEQsTUFBTSxjQUFjLEdBQUcsSUFBQSx5QkFBUyxFQUM5QixFQUFFLHVCQUF1QixFQUFFLEVBQzNCLENBQUMsRUFBRSx1QkFBdUIsRUFBRSxFQUFFLEVBQUU7UUFDOUIsTUFBTSxJQUFJLEdBQUcsdUJBQXVCLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDdkUsT0FBTyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLCtCQUErQjtJQUM1RCxD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
|