@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.
Files changed (78) hide show
  1. package/dist-server/controllers/index.js +1 -0
  2. package/dist-server/controllers/index.js.map +1 -0
  3. package/dist-server/entities/index.js +5 -0
  4. package/dist-server/entities/index.js.map +1 -0
  5. package/dist-server/graphql/index.js +11 -0
  6. package/dist-server/graphql/index.js.map +1 -0
  7. package/dist-server/graphql/resolvers/index.js +10 -0
  8. package/dist-server/graphql/resolvers/index.js.map +1 -0
  9. package/dist-server/graphql/resolvers/interface-with-hub/add-release-order.js +178 -0
  10. package/dist-server/graphql/resolvers/interface-with-hub/add-release-order.js.map +1 -0
  11. package/dist-server/graphql/resolvers/interface-with-hub/auto-add-release-order.js +181 -0
  12. package/dist-server/graphql/resolvers/interface-with-hub/auto-add-release-order.js.map +1 -0
  13. package/dist-server/graphql/resolvers/interface-with-hub/auto-update-all-marketplace-product-variation-quantity.js +149 -0
  14. package/dist-server/graphql/resolvers/interface-with-hub/auto-update-all-marketplace-product-variation-quantity.js.map +1 -0
  15. package/dist-server/graphql/resolvers/interface-with-hub/generate-replenishment-order.js +26 -0
  16. package/dist-server/graphql/resolvers/interface-with-hub/generate-replenishment-order.js.map +1 -0
  17. package/dist-server/graphql/resolvers/interface-with-hub/index.js +12 -0
  18. package/dist-server/graphql/resolvers/interface-with-hub/index.js.map +1 -0
  19. package/dist-server/graphql/resolvers/interface-with-hub/warehouse-marketplace-products.js +221 -0
  20. package/dist-server/graphql/resolvers/interface-with-hub/warehouse-marketplace-products.js.map +1 -0
  21. package/dist-server/graphql/resolvers/shipping-provider/index.js +6 -0
  22. package/dist-server/graphql/resolvers/shipping-provider/index.js.map +1 -0
  23. package/dist-server/graphql/resolvers/shipping-provider/shipping-providers.js +32 -0
  24. package/dist-server/graphql/resolvers/shipping-provider/shipping-providers.js.map +1 -0
  25. package/dist-server/graphql/resolvers/warehouse-product/auto-link-warehouse-marketplace-product-variations.js +67 -0
  26. package/dist-server/graphql/resolvers/warehouse-product/auto-link-warehouse-marketplace-product-variations.js.map +1 -0
  27. package/dist-server/graphql/resolvers/warehouse-product/index.js +6 -0
  28. package/dist-server/graphql/resolvers/warehouse-product/index.js.map +1 -0
  29. package/dist-server/graphql/types/index.js +11 -0
  30. package/dist-server/graphql/types/index.js.map +1 -0
  31. package/dist-server/graphql/types/interface-with-hub/index.js +29 -0
  32. package/dist-server/graphql/types/interface-with-hub/index.js.map +1 -0
  33. package/dist-server/graphql/types/interface-with-hub/new-stock-replenishment.js +32 -0
  34. package/dist-server/graphql/types/interface-with-hub/new-stock-replenishment.js.map +1 -0
  35. package/dist-server/graphql/types/interface-with-hub/replenishment-order-product.js +48 -0
  36. package/dist-server/graphql/types/interface-with-hub/replenishment-order-product.js.map +1 -0
  37. package/dist-server/graphql/types/interface-with-hub/stock-replenishment-list.js +14 -0
  38. package/dist-server/graphql/types/interface-with-hub/stock-replenishment-list.js.map +1 -0
  39. package/dist-server/graphql/types/interface-with-hub/stock-replenishment.js +45 -0
  40. package/dist-server/graphql/types/interface-with-hub/stock-replenishment.js.map +1 -0
  41. package/dist-server/graphql/types/interface-with-hub/warehouse-inventory.js +15 -0
  42. package/dist-server/graphql/types/interface-with-hub/warehouse-inventory.js.map +1 -0
  43. package/dist-server/graphql/types/interface-with-hub/warehouse-marketplace-product-list.js +12 -0
  44. package/dist-server/graphql/types/interface-with-hub/warehouse-marketplace-product-list.js.map +1 -0
  45. package/dist-server/graphql/types/interface-with-hub/warehouse-marketplace-product.js +18 -0
  46. package/dist-server/graphql/types/interface-with-hub/warehouse-marketplace-product.js.map +1 -0
  47. package/dist-server/graphql/types/shipping-provider/index.js +10 -0
  48. package/dist-server/graphql/types/shipping-provider/index.js.map +1 -0
  49. package/dist-server/graphql/types/shipping-provider/shipping-provider-list.js +11 -0
  50. package/dist-server/graphql/types/shipping-provider/shipping-provider-list.js.map +1 -0
  51. package/dist-server/graphql/types/shipping-provider/shipping-provider.js +11 -0
  52. package/dist-server/graphql/types/shipping-provider/shipping-provider.js.map +1 -0
  53. package/dist-server/graphql/types/warehouse-product/index.js +11 -0
  54. package/dist-server/graphql/types/warehouse-product/index.js.map +1 -0
  55. package/dist-server/graphql/types/warehouse-product/warehouse-product.js +13 -0
  56. package/dist-server/graphql/types/warehouse-product/warehouse-product.js.map +1 -0
  57. package/dist-server/index.js +8 -0
  58. package/dist-server/index.js.map +1 -0
  59. package/dist-server/middlewares/index.js +4 -0
  60. package/dist-server/middlewares/index.js.map +1 -0
  61. package/dist-server/migrations/1599732967233-SeedCommonCode.js +51 -0
  62. package/dist-server/migrations/1599732967233-SeedCommonCode.js.map +1 -0
  63. package/dist-server/migrations/1608009991075-SeedUser.js +50 -0
  64. package/dist-server/migrations/1608009991075-SeedUser.js.map +1 -0
  65. package/dist-server/migrations/index.js +12 -0
  66. package/dist-server/migrations/index.js.map +1 -0
  67. package/dist-server/routers/etrax-router.js +156 -0
  68. package/dist-server/routers/etrax-router.js.map +1 -0
  69. package/dist-server/routers/shopify-pos-public-router.js +107 -0
  70. package/dist-server/routers/shopify-pos-public-router.js.map +1 -0
  71. package/dist-server/routes.js +10 -0
  72. package/dist-server/routes.js.map +1 -0
  73. package/dist-server/tsconfig.tsbuildinfo +1 -0
  74. package/dist-server/util/interface-helper.js +51 -0
  75. package/dist-server/util/interface-helper.js.map +1 -0
  76. package/dist-server/util/no-generator.js +14 -0
  77. package/dist-server/util/no-generator.js.map +1 -0
  78. 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,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.entities = void 0;
4
+ exports.entities = [];
5
+ //# sourceMappingURL=index.js.map
@@ -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"]}