@devx-commerce/plugin-gati 0.0.34-beta.73 → 0.0.34-beta.75
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/erp/webhook/config.js +4 -2
- 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 +10 -2
- package/.medusa/server/src/workflows/daily-rate/steps/fetch-gold-rate-step.js +9 -1
- package/.medusa/server/src/workflows/daily-rate/steps/update-unfix-order-items-on-gold-rate.js +308 -0
- package/.medusa/server/src/workflows/inward-master/steps/create-order-fulfillment-for-inward.js +79 -14
- package/.medusa/server/src/workflows/inward-master/steps/update-order-item-from-inward.js +237 -0
- package/.medusa/server/src/workflows/inward-master/workflows/create-inward.js +18 -1
- package/.medusa/server/src/workflows/inward-master/workflows/update-inward.js +17 -1
- package/.medusa/server/src/workflows/orders/steps/create-sale-for-order-step.js +66 -25
- package/.medusa/server/src/workflows/orders/steps/get-today-gold-rate-step.js +13 -7
- package/.medusa/server/src/workflows/orders/utils/apply-gold-rate-price-change.js +49 -0
- package/.medusa/server/src/workflows/party-master/steps/create-customer-erp.js +15 -2
- package/package.json +1 -1
package/.medusa/server/src/workflows/inward-master/steps/create-order-fulfillment-for-inward.js
CHANGED
|
@@ -18,6 +18,7 @@ exports.createOrderFulfillmentForInwardStep = (0, workflows_sdk_1.createStep)("c
|
|
|
18
18
|
entity: "order_master",
|
|
19
19
|
fields: [
|
|
20
20
|
"id",
|
|
21
|
+
"branch_no",
|
|
21
22
|
"order.*",
|
|
22
23
|
"order.items.*",
|
|
23
24
|
"order.shipping_methods.*",
|
|
@@ -28,13 +29,30 @@ exports.createOrderFulfillmentForInwardStep = (0, workflows_sdk_1.createStep)("c
|
|
|
28
29
|
logger.warn(`inward-fulfillment: SKIP jewel_id=${inward.jewel_id}: no order_master for erp_order_id=${inward.erp_order_id}`);
|
|
29
30
|
continue;
|
|
30
31
|
}
|
|
31
|
-
const
|
|
32
|
+
const orderMaster = orderMasters[0];
|
|
33
|
+
const medusaOrder = orderMaster?.order;
|
|
32
34
|
medusaOrderId = medusaOrder?.id;
|
|
33
35
|
if (!medusaOrder?.id) {
|
|
34
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})`);
|
|
35
37
|
continue;
|
|
36
38
|
}
|
|
37
|
-
|
|
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}`);
|
|
38
56
|
const matchingItem = medusaOrder.items?.find((item) => item.variant_sku === inward.inward_sku_no);
|
|
39
57
|
if (!matchingItem) {
|
|
40
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(", ")}`);
|
|
@@ -64,50 +82,97 @@ exports.createOrderFulfillmentForInwardStep = (0, workflows_sdk_1.createStep)("c
|
|
|
64
82
|
filters: { party_no: inward.branch_no },
|
|
65
83
|
});
|
|
66
84
|
const locationId = partyMasters[0]?.mapping_id ?? null;
|
|
67
|
-
|
|
68
|
-
|
|
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) {
|
|
69
114
|
const invItems = await inventoryModule.listInventoryItems({
|
|
70
115
|
sku: inward.inward_sku_no,
|
|
71
116
|
});
|
|
72
|
-
|
|
117
|
+
invItemId = invItems[0]?.id;
|
|
73
118
|
if (!invItemId) {
|
|
74
119
|
logger.warn(`inward-fulfillment: No inventory_item found for sku=${inward.inward_sku_no} -skipping inventory ensure`);
|
|
75
120
|
}
|
|
76
121
|
else {
|
|
77
122
|
const levels = await inventoryModule.listInventoryLevels({
|
|
78
123
|
inventory_item_id: invItemId,
|
|
79
|
-
location_id:
|
|
124
|
+
location_id: resolvedLocationId,
|
|
80
125
|
});
|
|
81
126
|
if (!levels.length) {
|
|
82
127
|
await inventoryModule.createInventoryLevels([
|
|
83
128
|
{
|
|
84
129
|
inventory_item_id: invItemId,
|
|
85
|
-
location_id:
|
|
130
|
+
location_id: resolvedLocationId,
|
|
86
131
|
stocked_quantity: 1,
|
|
87
132
|
},
|
|
88
133
|
]);
|
|
89
|
-
logger.info(`inward-fulfillment: Created inventory level inv=${invItemId} loc=${
|
|
134
|
+
logger.info(`inward-fulfillment: Created inventory level inv=${invItemId} loc=${resolvedLocationId}`);
|
|
90
135
|
}
|
|
91
136
|
else if (levels[0].available_quantity < 1) {
|
|
92
|
-
await inventoryModule.adjustInventory(invItemId,
|
|
93
|
-
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})`);
|
|
94
139
|
}
|
|
95
140
|
else {
|
|
96
|
-
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}`);
|
|
97
142
|
}
|
|
98
143
|
}
|
|
99
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
|
+
}
|
|
100
165
|
// fulfilled_quantity on the order item is the source of truth -no extra query needed
|
|
101
166
|
if ((matchingItem.fulfilled_quantity ?? 0) >= matchingItem.quantity) {
|
|
102
167
|
logger.warn(`inward-fulfillment: SKIP jewel_id=${inward.jewel_id}: item=${matchingItem.id} already fully fulfilled (${matchingItem.fulfilled_quantity}/${matchingItem.quantity})`);
|
|
103
168
|
continue;
|
|
104
169
|
}
|
|
105
|
-
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}`);
|
|
106
171
|
await (0, core_flows_1.createOrderFulfillmentWorkflow)(container).run({
|
|
107
172
|
input: {
|
|
108
173
|
order_id: medusaOrder.id,
|
|
109
174
|
items: [{ id: matchingItem.id, quantity: 1 }],
|
|
110
|
-
...(
|
|
175
|
+
...(resolvedLocationId ? { location_id: resolvedLocationId } : {}),
|
|
111
176
|
metadata: {
|
|
112
177
|
erp_order_id: inward.erp_order_id,
|
|
113
178
|
jewel_id: inward.jewel_id,
|
|
@@ -128,4 +193,4 @@ exports.createOrderFulfillmentForInwardStep = (0, workflows_sdk_1.createStep)("c
|
|
|
128
193
|
}
|
|
129
194
|
return new workflows_sdk_1.StepResponse(null);
|
|
130
195
|
});
|
|
131
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
196
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW9yZGVyLWZ1bGZpbGxtZW50LWZvci1pbndhcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2lud2FyZC1tYXN0ZXIvc3RlcHMvY3JlYXRlLW9yZGVyLWZ1bGZpbGxtZW50LWZvci1pbndhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBQTZFO0FBQzdFLHFEQUltQztBQUNuQyw0REFBNkU7QUFXaEUsUUFBQSxtQ0FBbUMsR0FBRyxJQUFBLDBCQUFVLEVBQzNELHFDQUFxQyxFQUNyQyxLQUFLLEVBQUUsT0FBK0MsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUU7SUFDdkUsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMzQyxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pFLE1BQU0sWUFBWSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsZUFBTyxDQUFDLEtBQUssQ0FBUSxDQUFDO0lBQzdELE1BQU0sZUFBZSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsOEJBQXNCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFNUUsTUFBTSxDQUFDLElBQUksQ0FBQyxrQ0FBa0MsT0FBTyxDQUFDLE1BQU0sWUFBWSxDQUFDLENBQUM7SUFFMUUsS0FBSyxNQUFNLE1BQU0sSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUM3QixNQUFNLENBQUMsSUFBSSxDQUNULHNDQUFzQyxNQUFNLENBQUMsUUFBUSxRQUFRLE1BQU0sQ0FBQyxhQUFhLGlCQUFpQixNQUFNLENBQUMsWUFBWSxjQUFjLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FDdEosQ0FBQztRQUNGLElBQUksYUFBaUMsQ0FBQztRQUN0QyxJQUFJLENBQUM7WUFDSCxNQUFNLEVBQUUsSUFBSSxFQUFFLFlBQVks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
|
|
@@ -0,0 +1,237 @@
|
|
|
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
|
+
const apply_gold_rate_price_change_1 = require("../../orders/utils/apply-gold-rate-price-change");
|
|
7
|
+
exports.updateOrderItemFromInwardStepId = "update-order-item-from-inward-step";
|
|
8
|
+
exports.updateOrderItemFromInwardStep = (0, workflows_sdk_1.createStep)(exports.updateOrderItemFromInwardStepId, async (inwards, { container }) => {
|
|
9
|
+
const logger = container.resolve("logger");
|
|
10
|
+
const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
|
|
11
|
+
const orderService = container.resolve(utils_1.Modules.ORDER);
|
|
12
|
+
logger.info(`[InwardPriceUpdate] Processing ${inwards.length} inward(s)...`);
|
|
13
|
+
for (const inward of inwards) {
|
|
14
|
+
try {
|
|
15
|
+
// Query 1: order_master → get Medusa order ID + verify MTO
|
|
16
|
+
const { data: orderMasters } = await query.graph({
|
|
17
|
+
entity: "order_master",
|
|
18
|
+
fields: [
|
|
19
|
+
"id",
|
|
20
|
+
"order.*",
|
|
21
|
+
"order.metadata",
|
|
22
|
+
"order.extended_order.sale_external_id",
|
|
23
|
+
],
|
|
24
|
+
filters: { erp_order_id: inward.erp_order_id },
|
|
25
|
+
});
|
|
26
|
+
if (!orderMasters.length) {
|
|
27
|
+
logger.warn(`[InwardPriceUpdate] No order_master for erp_order_id=${inward.erp_order_id}`);
|
|
28
|
+
continue;
|
|
29
|
+
}
|
|
30
|
+
const linkedOrder = orderMasters[0]?.order;
|
|
31
|
+
const medusaOrderId = linkedOrder?.id;
|
|
32
|
+
if (!medusaOrderId) {
|
|
33
|
+
logger.warn(`[InwardPriceUpdate] No linked Medusa order for erp_order_id=${inward.erp_order_id}`);
|
|
34
|
+
continue;
|
|
35
|
+
}
|
|
36
|
+
if (linkedOrder?.metadata?.cart_order_type !== "make_to_order") {
|
|
37
|
+
logger.info(`[InwardPriceUpdate] Skip non-MTO order=${medusaOrderId}`);
|
|
38
|
+
continue;
|
|
39
|
+
}
|
|
40
|
+
// Once an ERP sale exists for the order, the price is billed and locked
|
|
41
|
+
// — do NOT change it from inward updates. sale_external_id is set on the
|
|
42
|
+
// extended_order at sale creation (create-sale-for-order-step).
|
|
43
|
+
const extOrder = linkedOrder?.extended_order;
|
|
44
|
+
const saleExternalId = (Array.isArray(extOrder) ? extOrder[0] : extOrder)?.sale_external_id;
|
|
45
|
+
if (saleExternalId) {
|
|
46
|
+
logger.info(`[InwardPriceUpdate] Skip order=${medusaOrderId} — sale already created (sale_external_id=${saleExternalId})`);
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
// Query 2: order → items for SKU matching
|
|
50
|
+
const { data: orders } = await query.graph({
|
|
51
|
+
entity: "order",
|
|
52
|
+
fields: [
|
|
53
|
+
"id",
|
|
54
|
+
"metadata",
|
|
55
|
+
"items.*",
|
|
56
|
+
"items.variant.extended_variant.gross_weight",
|
|
57
|
+
"items.variant.extended_variant.net_weight",
|
|
58
|
+
],
|
|
59
|
+
filters: { id: medusaOrderId },
|
|
60
|
+
});
|
|
61
|
+
const order = orders[0];
|
|
62
|
+
if (!order)
|
|
63
|
+
continue;
|
|
64
|
+
const matchingItem = order.items?.find((item) => item.variant_sku === inward.inward_sku_no);
|
|
65
|
+
if (!matchingItem) {
|
|
66
|
+
logger.warn(`[InwardPriceUpdate] No item sku=${inward.inward_sku_no} in order=${medusaOrderId}`);
|
|
67
|
+
continue;
|
|
68
|
+
}
|
|
69
|
+
if (matchingItem.metadata?.is_price_fixed === true) {
|
|
70
|
+
logger.info(`[InwardPriceUpdate] Skip fixed-price item=${matchingItem.id}`);
|
|
71
|
+
continue;
|
|
72
|
+
}
|
|
73
|
+
// Query 3: inward_master → detail lines + extra charges for ERP-computed price
|
|
74
|
+
const { data: inwardMasters } = await query.graph({
|
|
75
|
+
entity: "inward_master",
|
|
76
|
+
fields: [
|
|
77
|
+
"id",
|
|
78
|
+
"jewel_id",
|
|
79
|
+
"gross_weight",
|
|
80
|
+
"net_weight",
|
|
81
|
+
"inward_details.*",
|
|
82
|
+
"inward_extra_charges.*",
|
|
83
|
+
],
|
|
84
|
+
filters: { jewel_id: inward.jewel_id },
|
|
85
|
+
});
|
|
86
|
+
const inwardMaster = inwardMasters[0];
|
|
87
|
+
if (!inwardMaster) {
|
|
88
|
+
logger.warn(`[InwardPriceUpdate] No inward_master for jewel_id=${inward.jewel_id}`);
|
|
89
|
+
continue;
|
|
90
|
+
}
|
|
91
|
+
// Sum ERP-computed amounts across all detail lines:
|
|
92
|
+
// final_amt (if set) or amount, plus cpf, hand, set, loss charges
|
|
93
|
+
const detailTotal = (inwardMaster.inward_details ?? []).reduce((sum, d) => {
|
|
94
|
+
const lineAmt = Number(d.final_amt ?? d.amount ?? 0);
|
|
95
|
+
return (sum +
|
|
96
|
+
lineAmt +
|
|
97
|
+
Number(d.cpf_amt ?? 0) +
|
|
98
|
+
Number(d.hand_amount ?? 0) +
|
|
99
|
+
Number(d.set_amount ?? 0) +
|
|
100
|
+
Number(d.loss_amt ?? 0));
|
|
101
|
+
}, 0);
|
|
102
|
+
const extraTotal = (inwardMaster.inward_extra_charges ?? []).reduce((sum, ec) => sum + Number(ec.amount ?? 0), 0);
|
|
103
|
+
const newUnitPrice = Math.round((detailTotal + extraTotal) * 100) / 100;
|
|
104
|
+
const oldUnitPrice = Number(matchingItem.unit_price || 0);
|
|
105
|
+
// Detect every order-item field driven by the inward, so an inward
|
|
106
|
+
// UPDATE re-syncs them (not just price): unit_price, variant_barcode
|
|
107
|
+
// (jewel_code), metadata.jewel_id, and the actual physical-piece
|
|
108
|
+
// weights (gross/net) — which differ from the catalog/style weight.
|
|
109
|
+
const md = matchingItem.metadata || {};
|
|
110
|
+
const oldBarcode = matchingItem.variant_barcode ?? null;
|
|
111
|
+
const newBarcode = inward.jewel_code ?? null;
|
|
112
|
+
const oldJewelId = md.jewel_id ?? null;
|
|
113
|
+
const newJewelId = inward.jewel_id ?? null;
|
|
114
|
+
// Old weight = previously-synced metadata weight, falling back to the
|
|
115
|
+
// catalog/style variant weight (what was shown before any inward sync)
|
|
116
|
+
// so the first sync's diff reads e.g. 1.697→3.416 instead of —→3.416.
|
|
117
|
+
const evWeight = matchingItem.variant?.extended_variant || {};
|
|
118
|
+
const oldGross = md.gross_weight ?? evWeight.gross_weight ?? null;
|
|
119
|
+
const newGross = inwardMaster.gross_weight ?? null;
|
|
120
|
+
const oldNet = md.net_weight ?? evWeight.net_weight ?? null;
|
|
121
|
+
const newNet = inwardMaster.net_weight ?? null;
|
|
122
|
+
const priceChanged = newUnitPrice !== oldUnitPrice;
|
|
123
|
+
const barcodeChanged = newBarcode != null && newBarcode !== oldBarcode;
|
|
124
|
+
const jewelIdChanged = newJewelId != null && oldJewelId !== newJewelId;
|
|
125
|
+
const grossChanged = newGross != null && Number(oldGross) !== Number(newGross);
|
|
126
|
+
const netChanged = newNet != null && Number(oldNet) !== Number(newNet);
|
|
127
|
+
if (!priceChanged &&
|
|
128
|
+
!barcodeChanged &&
|
|
129
|
+
!jewelIdChanged &&
|
|
130
|
+
!grossChanged &&
|
|
131
|
+
!netChanged) {
|
|
132
|
+
logger.info(`[InwardPriceUpdate] No change item=${matchingItem.id} price=${oldUnitPrice}`);
|
|
133
|
+
continue;
|
|
134
|
+
}
|
|
135
|
+
// Human summary + structured old→new diff (used by history below).
|
|
136
|
+
const changeSummary = [
|
|
137
|
+
priceChanged ? `price ${oldUnitPrice}→${newUnitPrice}` : null,
|
|
138
|
+
barcodeChanged ? `barcode ${oldBarcode ?? "—"}→${newBarcode}` : null,
|
|
139
|
+
jewelIdChanged ? `jewel_id ${oldJewelId ?? "—"}→${newJewelId}` : null,
|
|
140
|
+
grossChanged ? `gross_wt ${oldGross ?? "—"}→${newGross}` : null,
|
|
141
|
+
netChanged ? `net_wt ${oldNet ?? "—"}→${newNet}` : null,
|
|
142
|
+
]
|
|
143
|
+
.filter(Boolean)
|
|
144
|
+
.join(", ");
|
|
145
|
+
const changeDetails = {
|
|
146
|
+
type: "inward_order_item_update",
|
|
147
|
+
item_id: matchingItem.id,
|
|
148
|
+
sku: inward.inward_sku_no,
|
|
149
|
+
jewel_id: newJewelId,
|
|
150
|
+
...(priceChanged
|
|
151
|
+
? { old_price: oldUnitPrice, new_price: newUnitPrice }
|
|
152
|
+
: {}),
|
|
153
|
+
...(barcodeChanged
|
|
154
|
+
? { old_barcode: oldBarcode, new_barcode: newBarcode }
|
|
155
|
+
: {}),
|
|
156
|
+
...(jewelIdChanged
|
|
157
|
+
? { old_jewel_id: oldJewelId, new_jewel_id: newJewelId }
|
|
158
|
+
: {}),
|
|
159
|
+
...(grossChanged
|
|
160
|
+
? { old_gross_weight: oldGross, new_gross_weight: newGross }
|
|
161
|
+
: {}),
|
|
162
|
+
...(netChanged
|
|
163
|
+
? { old_net_weight: oldNet, new_net_weight: newNet }
|
|
164
|
+
: {}),
|
|
165
|
+
};
|
|
166
|
+
// Non-price fields (barcode, metadata weights/jewel_id) live on the
|
|
167
|
+
// line item — write them directly. The PRICE is applied separately via
|
|
168
|
+
// the confirmed order-change flow below (which versions the order).
|
|
169
|
+
const lineItemData = {};
|
|
170
|
+
if (barcodeChanged)
|
|
171
|
+
lineItemData.variant_barcode = newBarcode;
|
|
172
|
+
if (jewelIdChanged || grossChanged || netChanged) {
|
|
173
|
+
lineItemData.metadata = {
|
|
174
|
+
...md,
|
|
175
|
+
...(jewelIdChanged ? { jewel_id: newJewelId } : {}),
|
|
176
|
+
...(grossChanged ? { gross_weight: newGross } : {}),
|
|
177
|
+
...(netChanged ? { net_weight: newNet } : {}),
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
if (Object.keys(lineItemData).length) {
|
|
181
|
+
await orderService.updateOrderLineItems([
|
|
182
|
+
{ selector: { id: matchingItem.id }, data: lineItemData },
|
|
183
|
+
]);
|
|
184
|
+
}
|
|
185
|
+
if (priceChanged) {
|
|
186
|
+
// Apply the price as a CONFIRMED order change: bumps the order
|
|
187
|
+
// version, upserts the new-version order_item (so the displayed price
|
|
188
|
+
// + totals + summary all update), and records history with the full
|
|
189
|
+
// inward diff in metadata. Non-fatal.
|
|
190
|
+
try {
|
|
191
|
+
await (0, apply_gold_rate_price_change_1.applyGoldRatePriceChange)(orderService, {
|
|
192
|
+
order_id: medusaOrderId,
|
|
193
|
+
items: [
|
|
194
|
+
{
|
|
195
|
+
item_id: matchingItem.id,
|
|
196
|
+
quantity: Number(matchingItem.quantity || 1),
|
|
197
|
+
new_unit_price: newUnitPrice,
|
|
198
|
+
},
|
|
199
|
+
],
|
|
200
|
+
description: `Inward update: sku=${inward.inward_sku_no} ${changeSummary}`,
|
|
201
|
+
history_metadata: {
|
|
202
|
+
reason: "inward_order_item_update",
|
|
203
|
+
...changeDetails,
|
|
204
|
+
},
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
catch (applyErr) {
|
|
208
|
+
logger.error(`[InwardPriceUpdate] Failed to apply price change item=${matchingItem.id}: ${applyErr?.message}`);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
else {
|
|
212
|
+
// Only non-price fields changed — record the diff in history without
|
|
213
|
+
// a version bump (versioning applies to the price ITEM_UPDATE).
|
|
214
|
+
try {
|
|
215
|
+
await orderService.registerOrderChange({
|
|
216
|
+
order_id: medusaOrderId,
|
|
217
|
+
created_by: "system",
|
|
218
|
+
confirmed_by: "system",
|
|
219
|
+
change_type: "update_order",
|
|
220
|
+
description: `Inward update: sku=${inward.inward_sku_no} ${changeSummary}`,
|
|
221
|
+
metadata: { reason: "inward_order_item_update", ...changeDetails },
|
|
222
|
+
details: changeDetails,
|
|
223
|
+
});
|
|
224
|
+
}
|
|
225
|
+
catch (changeError) {
|
|
226
|
+
logger.error(`[InwardPriceUpdate] Failed to register order change item=${matchingItem.id}: ${changeError?.message}`);
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
logger.info(`[InwardPriceUpdate] item=${matchingItem.id} sku=${inward.inward_sku_no} ${changeSummary} (jewel_id=${newJewelId}, detail=${detailTotal}, extra=${extraTotal})`);
|
|
230
|
+
}
|
|
231
|
+
catch (err) {
|
|
232
|
+
logger.error(`[InwardPriceUpdate] ERROR jewel_id=${inward.jewel_id} erp_order_id=${inward.erp_order_id}: ${err?.message}\n${err?.stack}`);
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
return new workflows_sdk_1.StepResponse(null);
|
|
236
|
+
});
|
|
237
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLW9yZGVyLWl0ZW0tZnJvbS1pbndhcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2lud2FyZC1tYXN0ZXIvc3RlcHMvdXBkYXRlLW9yZGVyLWl0ZW0tZnJvbS1pbndhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBQTZFO0FBQzdFLHFEQUErRTtBQUMvRSxrR0FBMkY7QUFTOUUsUUFBQSwrQkFBK0IsR0FDMUMsb0NBQW9DLENBQUM7QUFFMUIsUUFBQSw2QkFBNkIsR0FBRyxJQUFBLDBCQUFVLEVBQ3JELHVDQUErQixFQUMvQixLQUFLLEVBQUUsT0FBeUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUU7SUFDakUsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMzQyxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pFLE1BQU0sWUFBWSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsZUFBTyxDQUFDLEtBQUssQ0FBUSxDQUFDO0lBRTdELE1BQU0sQ0FBQyxJQUFJLENBQ1Qsa0NBQWtDLE9BQU8sQ0FBQyxNQUFNLGVBQWUsQ0FDaEUsQ0FBQztJQUVGLEtBQUssTUFBTSxNQUFNLElBQUksT0FBTyxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDO1lBQ0gsMkRBQTJEO1lBQzNELE1BQU0sRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO2dCQUMvQyxNQUFNLEVBQUUsY0FBYztnQkFDdEIsTUFBTSxFQUFFO29CQUNOLElBQUk7b0JBQ0osU0FBUztvQkFDVCxnQkFBZ0I7b0JBQ2hCLHVDQUF1QztpQkFDeEM7Z0JBQ0QsT0FBTyxFQUFFLEVBQUUsWUFBWSxFQUFFLE1BQU0sQ0FBQyxZQUFZLEVB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
|
|
@@ -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");
|
|
@@ -237,6 +238,21 @@ exports.createInwardMasterWorkflow = (0, workflows_sdk_1.createWorkflow)(exports
|
|
|
237
238
|
},
|
|
238
239
|
});
|
|
239
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
|
+
});
|
|
240
256
|
const inwardsNeedingFulfillment = (0, workflows_sdk_1.transform)({ transformedInwardMaster }, ({ transformedInwardMaster }) => transformedInwardMaster
|
|
241
257
|
.filter((i) => i.erp_order_id)
|
|
242
258
|
.map((i) => ({
|
|
@@ -245,6 +261,7 @@ exports.createInwardMasterWorkflow = (0, workflows_sdk_1.createWorkflow)(exports
|
|
|
245
261
|
inward_sku_no: i.inward_sku_no,
|
|
246
262
|
erp_order_id: i.erp_order_id,
|
|
247
263
|
branch_no: i.branch_no || i.location_id,
|
|
264
|
+
branch_name: i.branch_name,
|
|
248
265
|
})));
|
|
249
266
|
(0, workflows_sdk_1.when)({ inwardsNeedingFulfillment }, ({ inwardsNeedingFulfillment }) => inwardsNeedingFulfillment.length > 0).then(() => {
|
|
250
267
|
(0, create_order_fulfillment_for_inward_1.createOrderFulfillmentForInwardStep)(inwardsNeedingFulfillment);
|
|
@@ -252,4 +269,4 @@ exports.createInwardMasterWorkflow = (0, workflows_sdk_1.createWorkflow)(exports
|
|
|
252
269
|
const finalResult = (0, workflows_sdk_1.transform)({ createdInwards, extendedVariants }, ({ createdInwards, extendedVariants }) => extendedVariants.length ? createdInwards || [] : []);
|
|
253
270
|
return new workflows_sdk_1.WorkflowResponse(finalResult);
|
|
254
271
|
});
|
|
255
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWlud2FyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvaW53YXJkLW1hc3Rlci93b3JrZmxvd3MvY3JlYXRlLWlud2FyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxRUFLMkM7QUFDM0MsNERBQStFO0FBRy9FLGtJQUFnSTtBQUNoSSxzR0FBbUc7QUFDbkcsc0NBT21CO0FBQ25CLG9DQVFrQjtBQUNsQixzRUFBaUU7QUFFakUscURBQXlEO0FBRTVDLFFBQUEsc0JBQXNCLEdBQUcsZUFBZSxDQUFDO0FBRXpDLFFBQUEsMEJBQTBCLEdBQUcsSUFBQSw4QkFBYyxFQUN0RCw4QkFBc0IsRUFDdEIsQ0FBQyxLQUFrQixFQUFFLEVBQUU7SUFDckIsTUFBTSxVQUFVLEdBQUcsSUFBQSx1Q0FBaUIsRUFBQyxLQUFLLENBQUMsQ0FBQztJQUM1QyxNQUFNLHVCQUF1QixHQUFHLElBQUEseUJBQVMsRUFDdkMsRUFBRSxVQUFVLEVBQUUsRUFDZCxDQUFDLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUEsOEJBQXFCLEVBQUMsSUFBSSxDQUFDLENBQUMsQ0FDMUUsQ0FBQztJQUNGLG9EQUFvRDtJQUNwRCxNQUFNLGNBQWMsR0FBRyxJQUFBLHlCQUFTLEVBQzlCLEVBQUUsdUJBQXVCLEVBQUUsRUFDM0IsQ0FBQyxFQUFFLHVCQUF1QixFQUFFLEVBQUUsRUFBRTtRQUM5QixNQUFNLElBQUksR0FBRyx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN2RSxPQUFPLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsK0JBQStCO0lBQzVELENBQUMsQ0FDRixDQUFD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
|
|
272
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWlud2FyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvaW53YXJkLW1hc3Rlci93b3JrZmxvd3MvY3JlYXRlLWlud2FyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxRUFLMkM7QUFDM0MsNERBQStFO0FBRy9FLGtJQUFnSTtBQUNoSSxzR0FBbUc7QUFDbkcsMEZBQXVGO0FBQ3ZGLHNDQU9tQjtBQUNuQixvQ0FRa0I7QUFDbEIsc0VBQWlFO0FBRWpFLHFEQUF5RDtBQUU1QyxRQUFBLHNCQUFzQixHQUFHLGVBQWUsQ0FBQztBQUV6QyxRQUFBLDBCQUEwQixHQUFHLElBQUEsOEJBQWMsRUFDdEQsOEJBQXNCLEVBQ3RCLENBQUMsS0FBa0IsRUFBRSxFQUFFO0lBQ3JCLE1BQU0sVUFBVSxHQUFHLElBQUEsdUNBQWlCLEVBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUMsTUFBTSx1QkFBdUIsR0FBRyxJQUFBLHlCQUFTLEVBQ3ZDLEVBQUUsVUFBVSxFQUFFLEVBQ2QsQ0FBQyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFBLDhCQUFxQixFQUFDLElBQUksQ0FBQyxDQUFDLENBQzFFLENBQUM7SUFDRixvREFBb0Q7SUFDcEQsTUFBTSxjQUFjLEdBQUcsSUFBQSx5QkFBUyxFQUM5QixFQUFFLHVCQUF1QixFQUFFLEVBQzNCLENBQUMsRUFBRSx1QkFBdUIsRUFBRSxFQUFFLEVBQUU7UUFDOUIsTUFBTSxJQUFJLEdBQUcsdUJBQXVCLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDdkUsT0FBTyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLCtCQUErQjtJQUM1RCxD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
|