@things-factory/operato-mms 6.2.102 → 6.2.103
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/dist-server/controllers/index.js +1 -0
- package/dist-server/controllers/index.js.map +1 -0
- package/dist-server/entities/index.js +5 -0
- package/dist-server/entities/index.js.map +1 -0
- package/dist-server/graphql/index.js +11 -0
- package/dist-server/graphql/index.js.map +1 -0
- package/dist-server/graphql/resolvers/index.js +10 -0
- package/dist-server/graphql/resolvers/index.js.map +1 -0
- package/dist-server/graphql/resolvers/interface-with-hub/add-release-order.js +178 -0
- package/dist-server/graphql/resolvers/interface-with-hub/add-release-order.js.map +1 -0
- package/dist-server/graphql/resolvers/interface-with-hub/auto-add-release-order.js +181 -0
- package/dist-server/graphql/resolvers/interface-with-hub/auto-add-release-order.js.map +1 -0
- package/dist-server/graphql/resolvers/interface-with-hub/auto-update-all-marketplace-product-variation-quantity.js +149 -0
- package/dist-server/graphql/resolvers/interface-with-hub/auto-update-all-marketplace-product-variation-quantity.js.map +1 -0
- package/dist-server/graphql/resolvers/interface-with-hub/generate-replenishment-order.js +26 -0
- package/dist-server/graphql/resolvers/interface-with-hub/generate-replenishment-order.js.map +1 -0
- package/dist-server/graphql/resolvers/interface-with-hub/index.js +12 -0
- package/dist-server/graphql/resolvers/interface-with-hub/index.js.map +1 -0
- package/dist-server/graphql/resolvers/interface-with-hub/warehouse-marketplace-products.js +221 -0
- package/dist-server/graphql/resolvers/interface-with-hub/warehouse-marketplace-products.js.map +1 -0
- package/dist-server/graphql/resolvers/shipping-provider/index.js +6 -0
- package/dist-server/graphql/resolvers/shipping-provider/index.js.map +1 -0
- package/dist-server/graphql/resolvers/shipping-provider/shipping-providers.js +32 -0
- package/dist-server/graphql/resolvers/shipping-provider/shipping-providers.js.map +1 -0
- package/dist-server/graphql/resolvers/warehouse-product/auto-link-warehouse-marketplace-product-variations.js +67 -0
- package/dist-server/graphql/resolvers/warehouse-product/auto-link-warehouse-marketplace-product-variations.js.map +1 -0
- package/dist-server/graphql/resolvers/warehouse-product/index.js +6 -0
- package/dist-server/graphql/resolvers/warehouse-product/index.js.map +1 -0
- package/dist-server/graphql/types/index.js +11 -0
- package/dist-server/graphql/types/index.js.map +1 -0
- package/dist-server/graphql/types/interface-with-hub/index.js +29 -0
- package/dist-server/graphql/types/interface-with-hub/index.js.map +1 -0
- package/dist-server/graphql/types/interface-with-hub/new-stock-replenishment.js +32 -0
- package/dist-server/graphql/types/interface-with-hub/new-stock-replenishment.js.map +1 -0
- package/dist-server/graphql/types/interface-with-hub/replenishment-order-product.js +48 -0
- package/dist-server/graphql/types/interface-with-hub/replenishment-order-product.js.map +1 -0
- package/dist-server/graphql/types/interface-with-hub/stock-replenishment-list.js +14 -0
- package/dist-server/graphql/types/interface-with-hub/stock-replenishment-list.js.map +1 -0
- package/dist-server/graphql/types/interface-with-hub/stock-replenishment.js +45 -0
- package/dist-server/graphql/types/interface-with-hub/stock-replenishment.js.map +1 -0
- package/dist-server/graphql/types/interface-with-hub/warehouse-inventory.js +15 -0
- package/dist-server/graphql/types/interface-with-hub/warehouse-inventory.js.map +1 -0
- package/dist-server/graphql/types/interface-with-hub/warehouse-marketplace-product-list.js +12 -0
- package/dist-server/graphql/types/interface-with-hub/warehouse-marketplace-product-list.js.map +1 -0
- package/dist-server/graphql/types/interface-with-hub/warehouse-marketplace-product.js +18 -0
- package/dist-server/graphql/types/interface-with-hub/warehouse-marketplace-product.js.map +1 -0
- package/dist-server/graphql/types/shipping-provider/index.js +10 -0
- package/dist-server/graphql/types/shipping-provider/index.js.map +1 -0
- package/dist-server/graphql/types/shipping-provider/shipping-provider-list.js +11 -0
- package/dist-server/graphql/types/shipping-provider/shipping-provider-list.js.map +1 -0
- package/dist-server/graphql/types/shipping-provider/shipping-provider.js +11 -0
- package/dist-server/graphql/types/shipping-provider/shipping-provider.js.map +1 -0
- package/dist-server/graphql/types/warehouse-product/index.js +11 -0
- package/dist-server/graphql/types/warehouse-product/index.js.map +1 -0
- package/dist-server/graphql/types/warehouse-product/warehouse-product.js +13 -0
- package/dist-server/graphql/types/warehouse-product/warehouse-product.js.map +1 -0
- package/dist-server/index.js +8 -0
- package/dist-server/index.js.map +1 -0
- package/dist-server/middlewares/index.js +4 -0
- package/dist-server/middlewares/index.js.map +1 -0
- package/dist-server/migrations/1599732967233-SeedCommonCode.js +51 -0
- package/dist-server/migrations/1599732967233-SeedCommonCode.js.map +1 -0
- package/dist-server/migrations/1608009991075-SeedUser.js +50 -0
- package/dist-server/migrations/1608009991075-SeedUser.js.map +1 -0
- package/dist-server/migrations/index.js +12 -0
- package/dist-server/migrations/index.js.map +1 -0
- package/dist-server/routers/etrax-router.js +156 -0
- package/dist-server/routers/etrax-router.js.map +1 -0
- package/dist-server/routers/shopify-pos-public-router.js +107 -0
- package/dist-server/routers/shopify-pos-public-router.js.map +1 -0
- package/dist-server/routes.js +10 -0
- package/dist-server/routes.js.map +1 -0
- package/dist-server/tsconfig.tsbuildinfo +1 -0
- package/dist-server/util/interface-helper.js +51 -0
- package/dist-server/util/interface-helper.js.map +1 -0
- package/dist-server/util/no-generator.js +14 -0
- package/dist-server/util/no-generator.js.map +1 -0
- package/package.json +31 -31
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/controllers/index.ts"],"names":[],"mappings":"","sourcesContent":[""]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/entities/index.ts"],"names":[],"mappings":";;;AAAa,QAAA,QAAQ,GAAG,EAAE,CAAA","sourcesContent":["export const entities = []\n\nexport {}\n"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.schema = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const typeDefs = tslib_1.__importStar(require("./types"));
|
|
6
|
+
const resolvers = tslib_1.__importStar(require("./resolvers"));
|
|
7
|
+
exports.schema = {
|
|
8
|
+
typeDefs,
|
|
9
|
+
resolvers
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/graphql/index.ts"],"names":[],"mappings":";;;;AAAA,0DAAmC;AACnC,+DAAwC;AAE3B,QAAA,MAAM,GAAG;IACpB,QAAQ;IACR,SAAS;CACV,CAAA","sourcesContent":["import * as typeDefs from './types'\nimport * as resolvers from './resolvers'\n\nexport const schema = {\n typeDefs,\n resolvers\n}\n"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.mutations = exports.queries = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const InterfaceWithHub = tslib_1.__importStar(require("./interface-with-hub"));
|
|
6
|
+
const WarehouseProduct = tslib_1.__importStar(require("./warehouse-product"));
|
|
7
|
+
const ShippingProviders = tslib_1.__importStar(require("./shipping-provider"));
|
|
8
|
+
exports.queries = [InterfaceWithHub.Query, ShippingProviders.Query];
|
|
9
|
+
exports.mutations = [InterfaceWithHub.Mutation, WarehouseProduct.Mutation];
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/graphql/resolvers/index.ts"],"names":[],"mappings":";;;;AAAA,+EAAwD;AACxD,8EAAuD;AACvD,+EAAwD;AAE3C,QAAA,OAAO,GAAG,CAAC,gBAAgB,CAAC,KAAK,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAA;AAE3D,QAAA,SAAS,GAAG,CAAC,gBAAgB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAA","sourcesContent":["import * as InterfaceWithHub from './interface-with-hub'\nimport * as WarehouseProduct from './warehouse-product'\nimport * as ShippingProviders from './shipping-provider'\n\nexport const queries = [InterfaceWithHub.Query, ShippingProviders.Query]\n\nexport const mutations = [InterfaceWithHub.Mutation, WarehouseProduct.Mutation]\n"]}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addReleaseOrderResolver = void 0;
|
|
4
|
+
const biz_base_1 = require("@things-factory/biz-base");
|
|
5
|
+
const integration_fulfillment_1 = require("@things-factory/integration-fulfillment");
|
|
6
|
+
const marketplace_base_1 = require("@things-factory/marketplace-base");
|
|
7
|
+
const product_base_1 = require("@things-factory/product-base");
|
|
8
|
+
const shell_1 = require("@things-factory/shell");
|
|
9
|
+
exports.addReleaseOrderResolver = {
|
|
10
|
+
async addReleaseOrder(_, { marketplaceOrderIds, warehouseId }, context) {
|
|
11
|
+
const { domain } = context.state;
|
|
12
|
+
const fulfilmentCenter = await integration_fulfillment_1.FulfillmentAPI.getFulfillmentCenter(warehouseId);
|
|
13
|
+
const centerId = fulfilmentCenter.centerId;
|
|
14
|
+
var warehouseDomain = await (0, shell_1.getRepository)(shell_1.Domain).findOne({ where: { subdomain: centerId } });
|
|
15
|
+
var customerBizplaces = await (0, biz_base_1.getCustomerBizplaces)(warehouseDomain);
|
|
16
|
+
const customerBizplaceId = customerBizplaces.find(customerBizplace => customerBizplace.company.domain.id === domain.id).id;
|
|
17
|
+
for (var i = 0; i < marketplaceOrderIds.length; i++) {
|
|
18
|
+
const marketplaceOrderId = marketplaceOrderIds[i];
|
|
19
|
+
const marketplaceOrder = await (0, shell_1.getRepository)(marketplace_base_1.MarketplaceOrder).findOne({
|
|
20
|
+
where: {
|
|
21
|
+
id: marketplaceOrderId
|
|
22
|
+
},
|
|
23
|
+
relations: [
|
|
24
|
+
'marketplaceOrderItems',
|
|
25
|
+
'marketplaceOrderItems.marketplaceProductVariation',
|
|
26
|
+
'marketplaceOrderItems.marketplaceOrderShippingItems',
|
|
27
|
+
'marketplaceOrderItems.marketplaceOrderShippingItems.marketplaceOrderShipping',
|
|
28
|
+
'marketplaceStore'
|
|
29
|
+
]
|
|
30
|
+
});
|
|
31
|
+
const marketplaceOrderItems = marketplaceOrder.marketplaceOrderItems;
|
|
32
|
+
let marketplaceOrderShippings = await (0, shell_1.getRepository)(marketplace_base_1.MarketplaceOrderShipping).find({
|
|
33
|
+
where: { orderNoRef: marketplaceOrder.orderNo, domain: { id: domain.id } },
|
|
34
|
+
order: { subOrderNoRef: 'ASC' },
|
|
35
|
+
relations: [
|
|
36
|
+
'marketplaceOrderShippingItems',
|
|
37
|
+
'marketplaceOrderShippingItems.marketplaceOrderItem',
|
|
38
|
+
'marketplaceOrderShippingItems.product'
|
|
39
|
+
]
|
|
40
|
+
});
|
|
41
|
+
for (let j = 0; j < marketplaceOrderShippings.length; j++) {
|
|
42
|
+
let marketplaceOrderShipping = marketplaceOrderShippings[j];
|
|
43
|
+
let marketplaceOrderShippingItems = marketplaceOrderShipping.marketplaceOrderShippingItems;
|
|
44
|
+
if (!(marketplaceOrderShipping === null || marketplaceOrderShipping === void 0 ? void 0 : marketplaceOrderShipping.releaseOrderId)) {
|
|
45
|
+
const date = new Date();
|
|
46
|
+
const releaseDate = `${date.getFullYear()}-${(date.getMonth() + 1).toString().padStart(2, '0')}-${date
|
|
47
|
+
.getDate()
|
|
48
|
+
.toString()
|
|
49
|
+
.padStart(2, '0')}`;
|
|
50
|
+
var newReleaseOrder = {
|
|
51
|
+
releaseDate,
|
|
52
|
+
type: 'b2c',
|
|
53
|
+
transporter: marketplaceOrder.shippingProvider,
|
|
54
|
+
trackingNo: (marketplaceOrderShipping === null || marketplaceOrderShipping === void 0 ? void 0 : marketplaceOrderShipping.ownTrackingNo)
|
|
55
|
+
? marketplaceOrderShipping.ownTrackingNo
|
|
56
|
+
: marketplaceOrderShipping.trackingNo,
|
|
57
|
+
packingOption: true,
|
|
58
|
+
exportOption: false,
|
|
59
|
+
ownTransport: true,
|
|
60
|
+
courierOption: true,
|
|
61
|
+
collectionOrderNo: marketplaceOrder.orderNo,
|
|
62
|
+
refNo: marketplaceOrder.orderNo,
|
|
63
|
+
refNo2: marketplaceOrderShippings.length > 1 ? marketplaceOrderShipping === null || marketplaceOrderShipping === void 0 ? void 0 : marketplaceOrderShipping.subOrderNoRef : marketplaceOrder.orderNo,
|
|
64
|
+
deliverTo: {
|
|
65
|
+
deliveryAddress1: marketplaceOrderShipping.address1,
|
|
66
|
+
deliveryAddress2: marketplaceOrderShipping.address2,
|
|
67
|
+
deliveryAddress3: marketplaceOrderShipping.address3,
|
|
68
|
+
deliveryAddress4: marketplaceOrderShipping.address4,
|
|
69
|
+
deliveryAddress5: marketplaceOrderShipping.address5,
|
|
70
|
+
attentionTo: marketplaceOrderShipping.attentionTo,
|
|
71
|
+
city: marketplaceOrderShipping.city,
|
|
72
|
+
postalCode: marketplaceOrderShipping.postCode,
|
|
73
|
+
country: marketplaceOrderShipping.country,
|
|
74
|
+
state: marketplaceOrderShipping.state,
|
|
75
|
+
phone1: marketplaceOrderShipping.phone1,
|
|
76
|
+
phone2: (marketplaceOrderShipping === null || marketplaceOrderShipping === void 0 ? void 0 : marketplaceOrderShipping.phone2) ? marketplaceOrderShipping.phone2 : null
|
|
77
|
+
},
|
|
78
|
+
marketplaceOrderStatus: marketplaceOrder.status,
|
|
79
|
+
airwayBill: (marketplaceOrderShipping === null || marketplaceOrderShipping === void 0 ? void 0 : marketplaceOrderShipping.airwayBill) ? marketplaceOrderShipping.airwayBill : null,
|
|
80
|
+
invoice: (marketplaceOrderShipping === null || marketplaceOrderShipping === void 0 ? void 0 : marketplaceOrderShipping.invoice) ? marketplaceOrderShipping.invoice : null,
|
|
81
|
+
orderInventories: marketplaceOrderShippingItems.map(marketplaceOrderShippingItem => {
|
|
82
|
+
return {
|
|
83
|
+
product: {
|
|
84
|
+
sku: marketplaceOrderShippingItem.product.sku
|
|
85
|
+
},
|
|
86
|
+
releaseQty: marketplaceOrderShippingItem.qty
|
|
87
|
+
};
|
|
88
|
+
})
|
|
89
|
+
};
|
|
90
|
+
try {
|
|
91
|
+
var releaseOrder = await integration_fulfillment_1.FulfillmentAPI.createOutboundOrder(fulfilmentCenter, {
|
|
92
|
+
customerBizplaceId,
|
|
93
|
+
releaseOrder: newReleaseOrder
|
|
94
|
+
});
|
|
95
|
+
marketplaceOrderShipping.releaseOrderId = releaseOrder.id;
|
|
96
|
+
marketplaceOrderShipping.fulfillmentCenter = fulfilmentCenter;
|
|
97
|
+
await (0, shell_1.getRepository)(marketplace_base_1.MarketplaceOrderShipping).save(marketplaceOrderShipping);
|
|
98
|
+
if (releaseOrder && (releaseOrder === null || releaseOrder === void 0 ? void 0 : releaseOrder.id)) {
|
|
99
|
+
marketplaceOrder.releaseOrderId = releaseOrder.id;
|
|
100
|
+
marketplaceOrder.fulfillmentCenter = fulfilmentCenter;
|
|
101
|
+
await (0, shell_1.getRepository)(marketplace_base_1.MarketplaceOrder).save(marketplaceOrder);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
catch (e) { }
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
var invoiceProducts = await Promise.all(marketplaceOrderItems.map(async (mi) => {
|
|
108
|
+
let product = await (0, shell_1.getRepository)(product_base_1.Product).findOne({
|
|
109
|
+
where: { domain: { id: domain.id }, sku: mi.marketplaceProductVariation.sku }
|
|
110
|
+
});
|
|
111
|
+
let productBundle;
|
|
112
|
+
if (!product) {
|
|
113
|
+
productBundle = await (0, shell_1.getRepository)(product_base_1.ProductBundle).findOne({
|
|
114
|
+
where: { domain: { id: domain.id }, sku: mi.marketplaceProductVariation.sku }
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
return {
|
|
118
|
+
sku: product ? product.sku : productBundle.sku,
|
|
119
|
+
name: product ? product.name : productBundle.name,
|
|
120
|
+
description: product ? product.description : productBundle.description,
|
|
121
|
+
qty: mi.qty,
|
|
122
|
+
unitPrice: ((mi === null || mi === void 0 ? void 0 : mi.originalPrice) || 0) / mi.qty,
|
|
123
|
+
paidPrice: ((mi === null || mi === void 0 ? void 0 : mi.paidPrice) || 0) / mi.qty,
|
|
124
|
+
discount: (mi === null || mi === void 0 ? void 0 : mi.discount) || 0,
|
|
125
|
+
shippingFeePaidByCustomer: (mi === null || mi === void 0 ? void 0 : mi.shippingFeePaidByCustomer) || 0
|
|
126
|
+
};
|
|
127
|
+
}));
|
|
128
|
+
let newInvoice = {
|
|
129
|
+
invoiceProducts,
|
|
130
|
+
name: '-',
|
|
131
|
+
refNo1: newReleaseOrder.refNo.toString(),
|
|
132
|
+
refNo2: newReleaseOrder.refNo2.toString(),
|
|
133
|
+
issuedOn: new Date(),
|
|
134
|
+
from: marketplaceOrder.marketplaceStore.storeName,
|
|
135
|
+
fromContactPhone: '-',
|
|
136
|
+
fromAddress1: '-',
|
|
137
|
+
fromAddress2: null,
|
|
138
|
+
fromAddress3: null,
|
|
139
|
+
fromAddress4: null,
|
|
140
|
+
fromAddress5: null,
|
|
141
|
+
fromPostcode: null,
|
|
142
|
+
fromCity: null,
|
|
143
|
+
fromState: null,
|
|
144
|
+
fromCountry: null,
|
|
145
|
+
deliverTo: newReleaseOrder.deliverTo.attentionTo || '-',
|
|
146
|
+
deliverToPhone: newReleaseOrder.deliverTo.phone1 || '-',
|
|
147
|
+
deliveryAddress1: newReleaseOrder.deliverTo.deliveryAddress1 || '-',
|
|
148
|
+
deliveryAddress2: newReleaseOrder.deliverTo.deliveryAddress2,
|
|
149
|
+
deliveryAddress3: newReleaseOrder.deliverTo.deliveryAddress3,
|
|
150
|
+
deliveryAddress4: newReleaseOrder.deliverTo.deliveryAddress4,
|
|
151
|
+
deliveryAddress5: newReleaseOrder.deliverTo.deliveryAddress5,
|
|
152
|
+
deliveryPostcode: newReleaseOrder.deliverTo.postalCode || '-',
|
|
153
|
+
deliveryCity: newReleaseOrder.deliverTo.city || '-',
|
|
154
|
+
deliveryState: newReleaseOrder.deliverTo.state || '-',
|
|
155
|
+
deliveryCountry: newReleaseOrder.deliverTo.country || '-',
|
|
156
|
+
billTo: newReleaseOrder.deliverTo.attentionTo || '-',
|
|
157
|
+
billToPhone: newReleaseOrder.deliverTo.phone1 || '-',
|
|
158
|
+
billingAddress1: newReleaseOrder.deliverTo.billingAddress || newReleaseOrder.deliverTo.deliveryAddress1 || '-',
|
|
159
|
+
billingAddress2: null,
|
|
160
|
+
billingAddress3: null,
|
|
161
|
+
billingAddress4: null,
|
|
162
|
+
billingAddress5: null,
|
|
163
|
+
billingPostcode: '-',
|
|
164
|
+
billingCity: '-',
|
|
165
|
+
billingState: '-',
|
|
166
|
+
billingCountry: '-'
|
|
167
|
+
};
|
|
168
|
+
try {
|
|
169
|
+
await integration_fulfillment_1.FulfillmentAPI.createSalesInvoice(fulfilmentCenter, {
|
|
170
|
+
customerBizplaceId,
|
|
171
|
+
invoice: newInvoice
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
catch (e) { }
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
};
|
|
178
|
+
//# sourceMappingURL=add-release-order.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"add-release-order.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/interface-with-hub/add-release-order.ts"],"names":[],"mappings":"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","sourcesContent":["import { Bizplace, getCustomerBizplaces } from '@things-factory/biz-base'\nimport { FulfillmentAPI, FulfillmentCenter } from '@things-factory/integration-fulfillment'\nimport {\n MarketplaceOrder,\n MarketplaceOrderItem,\n MarketplaceOrderShipping,\n MarketplaceOrderShippingItem\n} from '@things-factory/marketplace-base'\nimport { Product, ProductBundle } from '@things-factory/product-base'\nimport { Domain, getRepository } from '@things-factory/shell'\n\nexport const addReleaseOrderResolver = {\n async addReleaseOrder(\n _: void,\n { marketplaceOrderIds, warehouseId }: { marketplaceOrderIds: any; warehouseId: string },\n context: any\n ): Promise<void> {\n const { domain } = context.state\n\n const fulfilmentCenter: FulfillmentCenter = await FulfillmentAPI.getFulfillmentCenter(warehouseId)\n const centerId: string = fulfilmentCenter.centerId\n\n var warehouseDomain: Domain = await getRepository(Domain).findOne({ where: { subdomain: centerId } })\n var customerBizplaces: Bizplace[] = await getCustomerBizplaces(warehouseDomain)\n\n const customerBizplaceId: string = customerBizplaces.find(\n customerBizplace => customerBizplace.company.domain.id === domain.id\n ).id\n\n for (var i = 0; i < marketplaceOrderIds.length; i++) {\n const marketplaceOrderId = marketplaceOrderIds[i]\n\n const marketplaceOrder: MarketplaceOrder = await getRepository(MarketplaceOrder).findOne({\n where: {\n id: marketplaceOrderId\n },\n relations: [\n 'marketplaceOrderItems',\n 'marketplaceOrderItems.marketplaceProductVariation',\n 'marketplaceOrderItems.marketplaceOrderShippingItems',\n 'marketplaceOrderItems.marketplaceOrderShippingItems.marketplaceOrderShipping',\n 'marketplaceStore'\n ]\n })\n\n const marketplaceOrderItems: MarketplaceOrderItem[] = marketplaceOrder.marketplaceOrderItems\n\n let marketplaceOrderShippings: MarketplaceOrderShipping[] = await getRepository(MarketplaceOrderShipping).find({\n where: { orderNoRef: marketplaceOrder.orderNo, domain: { id: domain.id } },\n order: { subOrderNoRef: 'ASC' },\n relations: [\n 'marketplaceOrderShippingItems',\n 'marketplaceOrderShippingItems.marketplaceOrderItem',\n 'marketplaceOrderShippingItems.product'\n ]\n })\n\n for (let j = 0; j < marketplaceOrderShippings.length; j++) {\n let marketplaceOrderShipping: MarketplaceOrderShipping = marketplaceOrderShippings[j]\n let marketplaceOrderShippingItems: MarketplaceOrderShippingItem[] =\n marketplaceOrderShipping.marketplaceOrderShippingItems\n\n if (!marketplaceOrderShipping?.releaseOrderId) {\n const date: Date = new Date()\n const releaseDate = `${date.getFullYear()}-${(date.getMonth() + 1).toString().padStart(2, '0')}-${date\n .getDate()\n .toString()\n .padStart(2, '0')}`\n\n var newReleaseOrder: any = {\n releaseDate,\n type: 'b2c',\n transporter: marketplaceOrder.shippingProvider,\n trackingNo: marketplaceOrderShipping?.ownTrackingNo\n ? marketplaceOrderShipping.ownTrackingNo\n : marketplaceOrderShipping.trackingNo,\n packingOption: true,\n exportOption: false,\n ownTransport: true,\n courierOption: true,\n collectionOrderNo: marketplaceOrder.orderNo,\n refNo: marketplaceOrder.orderNo,\n refNo2:\n marketplaceOrderShippings.length > 1 ? marketplaceOrderShipping?.subOrderNoRef : marketplaceOrder.orderNo,\n deliverTo: {\n deliveryAddress1: marketplaceOrderShipping.address1,\n deliveryAddress2: marketplaceOrderShipping.address2,\n deliveryAddress3: marketplaceOrderShipping.address3,\n deliveryAddress4: marketplaceOrderShipping.address4,\n deliveryAddress5: marketplaceOrderShipping.address5,\n attentionTo: marketplaceOrderShipping.attentionTo,\n city: marketplaceOrderShipping.city,\n postalCode: marketplaceOrderShipping.postCode,\n country: marketplaceOrderShipping.country,\n state: marketplaceOrderShipping.state,\n phone1: marketplaceOrderShipping.phone1,\n phone2: marketplaceOrderShipping?.phone2 ? marketplaceOrderShipping.phone2 : null\n },\n marketplaceOrderStatus: marketplaceOrder.status,\n airwayBill: marketplaceOrderShipping?.airwayBill ? marketplaceOrderShipping.airwayBill : null,\n invoice: marketplaceOrderShipping?.invoice ? marketplaceOrderShipping.invoice : null,\n orderInventories: marketplaceOrderShippingItems.map(marketplaceOrderShippingItem => {\n return {\n product: {\n sku: marketplaceOrderShippingItem.product.sku\n },\n releaseQty: marketplaceOrderShippingItem.qty\n }\n })\n }\n\n try {\n var releaseOrder: any = await FulfillmentAPI.createOutboundOrder(fulfilmentCenter, {\n customerBizplaceId,\n releaseOrder: newReleaseOrder\n })\n\n marketplaceOrderShipping.releaseOrderId = releaseOrder.id\n marketplaceOrderShipping.fulfillmentCenter = fulfilmentCenter\n await getRepository(MarketplaceOrderShipping).save(marketplaceOrderShipping)\n\n if (releaseOrder && releaseOrder?.id) {\n marketplaceOrder.releaseOrderId = releaseOrder.id\n marketplaceOrder.fulfillmentCenter = fulfilmentCenter\n await getRepository(MarketplaceOrder).save(marketplaceOrder)\n }\n } catch (e) {}\n }\n }\n\n var invoiceProducts = await Promise.all(\n marketplaceOrderItems.map(async mi => {\n let product: Product = await getRepository(Product).findOne({\n where: { domain: { id: domain.id }, sku: mi.marketplaceProductVariation.sku }\n })\n\n let productBundle: ProductBundle\n if (!product) {\n productBundle = await getRepository(ProductBundle).findOne({\n where: { domain: { id: domain.id }, sku: mi.marketplaceProductVariation.sku }\n })\n }\n\n return {\n sku: product ? product.sku : productBundle.sku,\n name: product ? product.name : productBundle.name,\n description: product ? product.description : productBundle.description,\n qty: mi.qty,\n unitPrice: (mi?.originalPrice || 0) / mi.qty,\n paidPrice: (mi?.paidPrice || 0) / mi.qty,\n discount: mi?.discount || 0,\n shippingFeePaidByCustomer: mi?.shippingFeePaidByCustomer || 0\n }\n })\n )\n\n let newInvoice = {\n invoiceProducts,\n name: '-',\n refNo1: newReleaseOrder.refNo.toString(),\n refNo2: newReleaseOrder.refNo2.toString(),\n issuedOn: new Date(),\n from: marketplaceOrder.marketplaceStore.storeName,\n fromContactPhone: '-',\n fromAddress1: '-',\n fromAddress2: null,\n fromAddress3: null,\n fromAddress4: null,\n fromAddress5: null,\n fromPostcode: null,\n fromCity: null,\n fromState: null,\n fromCountry: null,\n deliverTo: newReleaseOrder.deliverTo.attentionTo || '-',\n deliverToPhone: newReleaseOrder.deliverTo.phone1 || '-',\n deliveryAddress1: newReleaseOrder.deliverTo.deliveryAddress1 || '-',\n deliveryAddress2: newReleaseOrder.deliverTo.deliveryAddress2,\n deliveryAddress3: newReleaseOrder.deliverTo.deliveryAddress3,\n deliveryAddress4: newReleaseOrder.deliverTo.deliveryAddress4,\n deliveryAddress5: newReleaseOrder.deliverTo.deliveryAddress5,\n deliveryPostcode: newReleaseOrder.deliverTo.postalCode || '-',\n deliveryCity: newReleaseOrder.deliverTo.city || '-',\n deliveryState: newReleaseOrder.deliverTo.state || '-',\n deliveryCountry: newReleaseOrder.deliverTo.country || '-',\n billTo: newReleaseOrder.deliverTo.attentionTo || '-',\n billToPhone: newReleaseOrder.deliverTo.phone1 || '-',\n billingAddress1: newReleaseOrder.deliverTo.billingAddress || newReleaseOrder.deliverTo.deliveryAddress1 || '-',\n billingAddress2: null,\n billingAddress3: null,\n billingAddress4: null,\n billingAddress5: null,\n billingPostcode: '-',\n billingCity: '-',\n billingState: '-',\n billingCountry: '-'\n }\n\n try {\n await FulfillmentAPI.createSalesInvoice(fulfilmentCenter, {\n customerBizplaceId,\n invoice: newInvoice\n })\n } catch (e) {}\n }\n }\n}\n"]}
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.autoAddReleaseOrderResolver = void 0;
|
|
4
|
+
const typeorm_1 = require("typeorm");
|
|
5
|
+
const biz_base_1 = require("@things-factory/biz-base");
|
|
6
|
+
const integration_fulfillment_1 = require("@things-factory/integration-fulfillment");
|
|
7
|
+
const marketplace_base_1 = require("@things-factory/marketplace-base");
|
|
8
|
+
const product_base_1 = require("@things-factory/product-base");
|
|
9
|
+
const shell_1 = require("@things-factory/shell");
|
|
10
|
+
exports.autoAddReleaseOrderResolver = {
|
|
11
|
+
async autoAddReleaseOrder(_, { warehouseId }, context) {
|
|
12
|
+
const { domain } = context.state;
|
|
13
|
+
const qb = (0, typeorm_1.createQueryBuilder)(marketplace_base_1.MarketplaceOrder, 'MO');
|
|
14
|
+
const marketplaceOrders = await qb
|
|
15
|
+
.leftJoinAndSelect('MO.marketplaceOrderItems', 'MOI')
|
|
16
|
+
.leftJoinAndSelect('MOI.marketplaceOrderShippingItems', 'MOSI')
|
|
17
|
+
.leftJoinAndSelect('MOSI.marketplaceOrderShipping', 'MOS')
|
|
18
|
+
.leftJoinAndSelect('MOI.marketplaceProductVariation', 'MPV')
|
|
19
|
+
.leftJoinAndSelect('MO.marketplaceStore', 'MPS')
|
|
20
|
+
.where('MO.domain = :domainId', { domainId: domain.id })
|
|
21
|
+
.andWhere('MO.releaseOrderId IS NULL')
|
|
22
|
+
.andWhere('MO.status IN (:...status)', {
|
|
23
|
+
status: ['ready_to_ship', 'unfulfilled', 'packed', 'processing']
|
|
24
|
+
})
|
|
25
|
+
.andWhere('MPS.status = :marketplaceStatus', { marketplaceStatus: 'ACTIVE' })
|
|
26
|
+
.getMany();
|
|
27
|
+
var fulfilmentCenter = await integration_fulfillment_1.FulfillmentAPI.getFulfillmentCenter(warehouseId);
|
|
28
|
+
var centerId = fulfilmentCenter.centerId;
|
|
29
|
+
var warehouseDomain = await (0, shell_1.getRepository)(shell_1.Domain).findOne({ where: { subdomain: centerId } });
|
|
30
|
+
var customerBizplaces = await (0, biz_base_1.getCustomerBizplaces)(warehouseDomain);
|
|
31
|
+
const customerBizplaceId = customerBizplaces.find(customerBizplace => customerBizplace.company.domain.id === domain.id).id;
|
|
32
|
+
for (var i = 0; i < marketplaceOrders.length; i++) {
|
|
33
|
+
const marketplaceOrder = marketplaceOrders[i];
|
|
34
|
+
const marketplaceOrderItems = marketplaceOrder.marketplaceOrderItems;
|
|
35
|
+
const marketplaceOrderShippings = await (0, shell_1.getRepository)(marketplace_base_1.MarketplaceOrderShipping).find({
|
|
36
|
+
where: { orderNoRef: marketplaceOrder.orderNo, domain: { id: domain.id } },
|
|
37
|
+
order: { subOrderNoRef: 'ASC' },
|
|
38
|
+
relations: [
|
|
39
|
+
'marketplaceOrderShippingItems',
|
|
40
|
+
'marketplaceOrderShippingItems.marketplaceOrderItem',
|
|
41
|
+
'marketplaceOrderShippingItems.product'
|
|
42
|
+
]
|
|
43
|
+
});
|
|
44
|
+
for (let j = 0; j < marketplaceOrderShippings.length; j++) {
|
|
45
|
+
let marketplaceOrderShipping = marketplaceOrderShippings[j];
|
|
46
|
+
let marketplaceOrderShippingItems = marketplaceOrderShipping.marketplaceOrderShippingItems;
|
|
47
|
+
if (!(marketplaceOrderShipping === null || marketplaceOrderShipping === void 0 ? void 0 : marketplaceOrderShipping.releaseOrderId)) {
|
|
48
|
+
const date = new Date();
|
|
49
|
+
const releaseDate = `${date.getFullYear()}-${(date.getMonth() + 1).toString().padStart(2, '0')}-${date
|
|
50
|
+
.getDate()
|
|
51
|
+
.toString()
|
|
52
|
+
.padStart(2, '0')}`;
|
|
53
|
+
var newReleaseOrder = {
|
|
54
|
+
releaseDate,
|
|
55
|
+
type: 'b2c',
|
|
56
|
+
transporter: marketplaceOrder.shippingProvider,
|
|
57
|
+
trackingNo: (marketplaceOrderShipping === null || marketplaceOrderShipping === void 0 ? void 0 : marketplaceOrderShipping.ownTrackingNo)
|
|
58
|
+
? marketplaceOrderShipping.ownTrackingNo
|
|
59
|
+
: marketplaceOrderShipping.trackingNo,
|
|
60
|
+
packingOption: true,
|
|
61
|
+
exportOption: false,
|
|
62
|
+
ownTransport: true,
|
|
63
|
+
courierOption: true,
|
|
64
|
+
collectionOrderNo: marketplaceOrder.orderNo,
|
|
65
|
+
refNo: marketplaceOrder.orderNo,
|
|
66
|
+
refNo2: marketplaceOrderShippings.length > 1 ? marketplaceOrderShipping === null || marketplaceOrderShipping === void 0 ? void 0 : marketplaceOrderShipping.subOrderNoRef : marketplaceOrder.orderNo,
|
|
67
|
+
deliverTo: {
|
|
68
|
+
deliveryAddress1: marketplaceOrderShipping.address1,
|
|
69
|
+
deliveryAddress2: marketplaceOrderShipping.address2,
|
|
70
|
+
deliveryAddress3: marketplaceOrderShipping.address3,
|
|
71
|
+
deliveryAddress4: marketplaceOrderShipping.address4,
|
|
72
|
+
deliveryAddress5: marketplaceOrderShipping.address5,
|
|
73
|
+
attentionTo: marketplaceOrderShipping.attentionTo,
|
|
74
|
+
city: marketplaceOrderShipping.city,
|
|
75
|
+
postalCode: marketplaceOrderShipping.postCode,
|
|
76
|
+
country: marketplaceOrderShipping.country,
|
|
77
|
+
state: marketplaceOrderShipping.state,
|
|
78
|
+
phone1: marketplaceOrderShipping.phone1,
|
|
79
|
+
phone2: (marketplaceOrderShipping === null || marketplaceOrderShipping === void 0 ? void 0 : marketplaceOrderShipping.phone2) ? marketplaceOrderShipping.phone2 : null
|
|
80
|
+
},
|
|
81
|
+
marketplaceOrderStatus: marketplaceOrder.status,
|
|
82
|
+
airwayBill: (marketplaceOrderShipping === null || marketplaceOrderShipping === void 0 ? void 0 : marketplaceOrderShipping.airwayBill) ? marketplaceOrderShipping.airwayBill : null,
|
|
83
|
+
invoice: (marketplaceOrderShipping === null || marketplaceOrderShipping === void 0 ? void 0 : marketplaceOrderShipping.invoice) ? marketplaceOrderShipping.invoice : null,
|
|
84
|
+
orderInventories: marketplaceOrderShippingItems.map(marketplaceOrderShippingItem => {
|
|
85
|
+
return {
|
|
86
|
+
product: {
|
|
87
|
+
sku: marketplaceOrderShippingItem.product.sku
|
|
88
|
+
},
|
|
89
|
+
releaseQty: marketplaceOrderShippingItem.qty
|
|
90
|
+
};
|
|
91
|
+
})
|
|
92
|
+
};
|
|
93
|
+
try {
|
|
94
|
+
var releaseOrder = await integration_fulfillment_1.FulfillmentAPI.createOutboundOrder(fulfilmentCenter, {
|
|
95
|
+
customerBizplaceId,
|
|
96
|
+
releaseOrder: newReleaseOrder
|
|
97
|
+
});
|
|
98
|
+
marketplaceOrderShipping.releaseOrderId = releaseOrder.id;
|
|
99
|
+
marketplaceOrderShipping.fulfillmentCenter = fulfilmentCenter;
|
|
100
|
+
await (0, shell_1.getRepository)(marketplace_base_1.MarketplaceOrderShipping).save(marketplaceOrderShipping);
|
|
101
|
+
if (releaseOrder && (releaseOrder === null || releaseOrder === void 0 ? void 0 : releaseOrder.id)) {
|
|
102
|
+
marketplaceOrder.releaseOrderId = releaseOrder.id;
|
|
103
|
+
marketplaceOrder.fulfillmentCenter = fulfilmentCenter;
|
|
104
|
+
await (0, shell_1.getRepository)(marketplace_base_1.MarketplaceOrder).save(marketplaceOrder);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
catch (e) { }
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
var invoiceProducts = await Promise.all(marketplaceOrderItems.map(async (mi) => {
|
|
111
|
+
let product = await (0, shell_1.getRepository)(product_base_1.Product).findOne({
|
|
112
|
+
where: { domain: { id: domain.id }, sku: mi.marketplaceProductVariation.sku }
|
|
113
|
+
});
|
|
114
|
+
let productBundle;
|
|
115
|
+
if (!product) {
|
|
116
|
+
productBundle = await (0, shell_1.getRepository)(product_base_1.ProductBundle).findOne({
|
|
117
|
+
where: { domain: { id: domain.id }, sku: mi.marketplaceProductVariation.sku }
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
return {
|
|
121
|
+
sku: product ? product.sku : productBundle.sku,
|
|
122
|
+
name: product ? product.name : productBundle.name,
|
|
123
|
+
description: product ? product.description : productBundle.description,
|
|
124
|
+
qty: mi.qty,
|
|
125
|
+
unitPrice: ((mi === null || mi === void 0 ? void 0 : mi.originalPrice) || 0) / mi.qty,
|
|
126
|
+
paidPrice: ((mi === null || mi === void 0 ? void 0 : mi.paidPrice) || 0) / mi.qty,
|
|
127
|
+
discount: (mi === null || mi === void 0 ? void 0 : mi.discount) || 0,
|
|
128
|
+
shippingFeePaidByCustomer: (mi === null || mi === void 0 ? void 0 : mi.shippingFeePaidByCustomer) || 0
|
|
129
|
+
};
|
|
130
|
+
}));
|
|
131
|
+
let newInvoice = {
|
|
132
|
+
invoiceProducts,
|
|
133
|
+
name: '-',
|
|
134
|
+
refNo1: newReleaseOrder.refNo.toString(),
|
|
135
|
+
refNo2: newReleaseOrder.refNo2.toString(),
|
|
136
|
+
issuedOn: new Date(),
|
|
137
|
+
from: marketplaceOrder.marketplaceStore.storeName,
|
|
138
|
+
fromContactPhone: '-',
|
|
139
|
+
fromAddress1: '-',
|
|
140
|
+
fromAddress2: null,
|
|
141
|
+
fromAddress3: null,
|
|
142
|
+
fromAddress4: null,
|
|
143
|
+
fromAddress5: null,
|
|
144
|
+
fromPostcode: null,
|
|
145
|
+
fromCity: null,
|
|
146
|
+
fromState: null,
|
|
147
|
+
fromCountry: null,
|
|
148
|
+
deliverTo: newReleaseOrder.deliverTo.attentionTo || '-',
|
|
149
|
+
deliverToPhone: newReleaseOrder.deliverTo.phone1 || '-',
|
|
150
|
+
deliveryAddress1: newReleaseOrder.deliverTo.deliveryAddress1 || '-',
|
|
151
|
+
deliveryAddress2: newReleaseOrder.deliverTo.deliveryAddress2,
|
|
152
|
+
deliveryAddress3: newReleaseOrder.deliverTo.deliveryAddress3,
|
|
153
|
+
deliveryAddress4: newReleaseOrder.deliverTo.deliveryAddress4,
|
|
154
|
+
deliveryAddress5: newReleaseOrder.deliverTo.deliveryAddress5,
|
|
155
|
+
deliveryPostcode: newReleaseOrder.deliverTo.postalCode || '-',
|
|
156
|
+
deliveryCity: newReleaseOrder.deliverTo.city || '-',
|
|
157
|
+
deliveryState: newReleaseOrder.deliverTo.state || '-',
|
|
158
|
+
deliveryCountry: newReleaseOrder.deliverTo.country || '-',
|
|
159
|
+
billTo: newReleaseOrder.deliverTo.attentionTo || '-',
|
|
160
|
+
billToPhone: newReleaseOrder.deliverTo.phone1 || '-',
|
|
161
|
+
billingAddress1: newReleaseOrder.deliverTo.billingAddress || newReleaseOrder.deliverTo.deliveryAddress1 || '-',
|
|
162
|
+
billingAddress2: null,
|
|
163
|
+
billingAddress3: null,
|
|
164
|
+
billingAddress4: null,
|
|
165
|
+
billingAddress5: null,
|
|
166
|
+
billingPostcode: '-',
|
|
167
|
+
billingCity: '-',
|
|
168
|
+
billingState: '-',
|
|
169
|
+
billingCountry: '-'
|
|
170
|
+
};
|
|
171
|
+
try {
|
|
172
|
+
await integration_fulfillment_1.FulfillmentAPI.createSalesInvoice(fulfilmentCenter, {
|
|
173
|
+
customerBizplaceId,
|
|
174
|
+
invoice: newInvoice
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
catch (e) { }
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
};
|
|
181
|
+
//# sourceMappingURL=auto-add-release-order.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-add-release-order.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/interface-with-hub/auto-add-release-order.ts"],"names":[],"mappings":"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","sourcesContent":["import { createQueryBuilder, SelectQueryBuilder } from 'typeorm'\n\nimport { Bizplace, getCustomerBizplaces } from '@things-factory/biz-base'\nimport { FulfillmentAPI } from '@things-factory/integration-fulfillment'\nimport {\n MarketplaceOrder,\n MarketplaceOrderItem,\n MarketplaceOrderShipping,\n MarketplaceOrderShippingItem\n} from '@things-factory/marketplace-base'\nimport { Product, ProductBundle } from '@things-factory/product-base'\nimport { Domain, getRepository } from '@things-factory/shell'\n\nexport const autoAddReleaseOrderResolver = {\n async autoAddReleaseOrder(\n _: void,\n { warehouseId }: { warehouseId: string },\n context: ResolverContext\n ): Promise<void> {\n const { domain } = context.state\n\n const qb: SelectQueryBuilder<MarketplaceOrder> = createQueryBuilder(MarketplaceOrder, 'MO')\n const marketplaceOrders: MarketplaceOrder[] = await qb\n .leftJoinAndSelect('MO.marketplaceOrderItems', 'MOI')\n .leftJoinAndSelect('MOI.marketplaceOrderShippingItems', 'MOSI')\n .leftJoinAndSelect('MOSI.marketplaceOrderShipping', 'MOS')\n .leftJoinAndSelect('MOI.marketplaceProductVariation', 'MPV')\n .leftJoinAndSelect('MO.marketplaceStore', 'MPS')\n .where('MO.domain = :domainId', { domainId: domain.id })\n .andWhere('MO.releaseOrderId IS NULL')\n .andWhere('MO.status IN (:...status)', {\n status: ['ready_to_ship', 'unfulfilled', 'packed', 'processing']\n })\n .andWhere('MPS.status = :marketplaceStatus', { marketplaceStatus: 'ACTIVE' })\n .getMany()\n\n var fulfilmentCenter = await FulfillmentAPI.getFulfillmentCenter(warehouseId)\n var centerId: string = fulfilmentCenter.centerId\n\n var warehouseDomain: Domain = await getRepository(Domain).findOne({ where: { subdomain: centerId } })\n var customerBizplaces: Bizplace[] = await getCustomerBizplaces(warehouseDomain)\n const customerBizplaceId: string = customerBizplaces.find(\n customerBizplace => customerBizplace.company.domain.id === domain.id\n ).id\n\n for (var i = 0; i < marketplaceOrders.length; i++) {\n const marketplaceOrder = marketplaceOrders[i]\n\n const marketplaceOrderItems: MarketplaceOrderItem[] = marketplaceOrder.marketplaceOrderItems\n\n const marketplaceOrderShippings: MarketplaceOrderShipping[] = await getRepository(MarketplaceOrderShipping).find({\n where: { orderNoRef: marketplaceOrder.orderNo, domain: { id: domain.id } },\n order: { subOrderNoRef: 'ASC' },\n relations: [\n 'marketplaceOrderShippingItems',\n 'marketplaceOrderShippingItems.marketplaceOrderItem',\n 'marketplaceOrderShippingItems.product'\n ]\n })\n\n for (let j = 0; j < marketplaceOrderShippings.length; j++) {\n let marketplaceOrderShipping: MarketplaceOrderShipping = marketplaceOrderShippings[j]\n let marketplaceOrderShippingItems: MarketplaceOrderShippingItem[] =\n marketplaceOrderShipping.marketplaceOrderShippingItems\n\n if (!marketplaceOrderShipping?.releaseOrderId) {\n const date: Date = new Date()\n const releaseDate = `${date.getFullYear()}-${(date.getMonth() + 1).toString().padStart(2, '0')}-${date\n .getDate()\n .toString()\n .padStart(2, '0')}`\n\n var newReleaseOrder: any = {\n releaseDate,\n type: 'b2c',\n transporter: marketplaceOrder.shippingProvider,\n trackingNo: marketplaceOrderShipping?.ownTrackingNo\n ? marketplaceOrderShipping.ownTrackingNo\n : marketplaceOrderShipping.trackingNo,\n packingOption: true,\n exportOption: false,\n ownTransport: true,\n courierOption: true,\n collectionOrderNo: marketplaceOrder.orderNo,\n refNo: marketplaceOrder.orderNo,\n refNo2:\n marketplaceOrderShippings.length > 1 ? marketplaceOrderShipping?.subOrderNoRef : marketplaceOrder.orderNo,\n deliverTo: {\n deliveryAddress1: marketplaceOrderShipping.address1,\n deliveryAddress2: marketplaceOrderShipping.address2,\n deliveryAddress3: marketplaceOrderShipping.address3,\n deliveryAddress4: marketplaceOrderShipping.address4,\n deliveryAddress5: marketplaceOrderShipping.address5,\n attentionTo: marketplaceOrderShipping.attentionTo,\n city: marketplaceOrderShipping.city,\n postalCode: marketplaceOrderShipping.postCode,\n country: marketplaceOrderShipping.country,\n state: marketplaceOrderShipping.state,\n phone1: marketplaceOrderShipping.phone1,\n phone2: marketplaceOrderShipping?.phone2 ? marketplaceOrderShipping.phone2 : null\n },\n marketplaceOrderStatus: marketplaceOrder.status,\n airwayBill: marketplaceOrderShipping?.airwayBill ? marketplaceOrderShipping.airwayBill : null,\n invoice: marketplaceOrderShipping?.invoice ? marketplaceOrderShipping.invoice : null,\n orderInventories: marketplaceOrderShippingItems.map(marketplaceOrderShippingItem => {\n return {\n product: {\n sku: marketplaceOrderShippingItem.product.sku\n },\n releaseQty: marketplaceOrderShippingItem.qty\n }\n })\n }\n\n try {\n var releaseOrder: any = await FulfillmentAPI.createOutboundOrder(fulfilmentCenter, {\n customerBizplaceId,\n releaseOrder: newReleaseOrder\n })\n\n marketplaceOrderShipping.releaseOrderId = releaseOrder.id\n marketplaceOrderShipping.fulfillmentCenter = fulfilmentCenter\n await getRepository(MarketplaceOrderShipping).save(marketplaceOrderShipping)\n\n if (releaseOrder && releaseOrder?.id) {\n marketplaceOrder.releaseOrderId = releaseOrder.id\n marketplaceOrder.fulfillmentCenter = fulfilmentCenter\n await getRepository(MarketplaceOrder).save(marketplaceOrder)\n }\n } catch (e) {}\n }\n }\n\n var invoiceProducts = await Promise.all(\n marketplaceOrderItems.map(async mi => {\n let product: Product = await getRepository(Product).findOne({\n where: { domain: { id: domain.id }, sku: mi.marketplaceProductVariation.sku }\n })\n\n let productBundle: ProductBundle\n if (!product) {\n productBundle = await getRepository(ProductBundle).findOne({\n where: { domain: { id: domain.id }, sku: mi.marketplaceProductVariation.sku }\n })\n }\n\n return {\n sku: product ? product.sku : productBundle.sku,\n name: product ? product.name : productBundle.name,\n description: product ? product.description : productBundle.description,\n qty: mi.qty,\n unitPrice: (mi?.originalPrice || 0) / mi.qty,\n paidPrice: (mi?.paidPrice || 0) / mi.qty,\n discount: mi?.discount || 0,\n shippingFeePaidByCustomer: mi?.shippingFeePaidByCustomer || 0\n }\n })\n )\n\n let newInvoice = {\n invoiceProducts,\n name: '-',\n refNo1: newReleaseOrder.refNo.toString(),\n refNo2: newReleaseOrder.refNo2.toString(),\n issuedOn: new Date(),\n from: marketplaceOrder.marketplaceStore.storeName,\n fromContactPhone: '-',\n fromAddress1: '-',\n fromAddress2: null,\n fromAddress3: null,\n fromAddress4: null,\n fromAddress5: null,\n fromPostcode: null,\n fromCity: null,\n fromState: null,\n fromCountry: null,\n deliverTo: newReleaseOrder.deliverTo.attentionTo || '-',\n deliverToPhone: newReleaseOrder.deliverTo.phone1 || '-',\n deliveryAddress1: newReleaseOrder.deliverTo.deliveryAddress1 || '-',\n deliveryAddress2: newReleaseOrder.deliverTo.deliveryAddress2,\n deliveryAddress3: newReleaseOrder.deliverTo.deliveryAddress3,\n deliveryAddress4: newReleaseOrder.deliverTo.deliveryAddress4,\n deliveryAddress5: newReleaseOrder.deliverTo.deliveryAddress5,\n deliveryPostcode: newReleaseOrder.deliverTo.postalCode || '-',\n deliveryCity: newReleaseOrder.deliverTo.city || '-',\n deliveryState: newReleaseOrder.deliverTo.state || '-',\n deliveryCountry: newReleaseOrder.deliverTo.country || '-',\n billTo: newReleaseOrder.deliverTo.attentionTo || '-',\n billToPhone: newReleaseOrder.deliverTo.phone1 || '-',\n billingAddress1: newReleaseOrder.deliverTo.billingAddress || newReleaseOrder.deliverTo.deliveryAddress1 || '-',\n billingAddress2: null,\n billingAddress3: null,\n billingAddress4: null,\n billingAddress5: null,\n billingPostcode: '-',\n billingCity: '-',\n billingState: '-',\n billingCountry: '-'\n }\n\n try {\n await FulfillmentAPI.createSalesInvoice(fulfilmentCenter, {\n customerBizplaceId,\n invoice: newInvoice\n })\n } catch (e) {}\n }\n }\n}\n"]}
|