@things-factory/operato-mms 4.3.651 → 4.3.652

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/config.development.js +158 -0
  2. package/dist-server/controllers/index.js +1 -0
  3. package/dist-server/controllers/index.js.map +1 -0
  4. package/dist-server/entities/index.js +5 -0
  5. package/dist-server/entities/index.js.map +1 -0
  6. package/dist-server/graphql/index.js +33 -0
  7. package/dist-server/graphql/index.js.map +1 -0
  8. package/dist-server/graphql/resolvers/index.js +32 -0
  9. package/dist-server/graphql/resolvers/index.js.map +1 -0
  10. package/dist-server/graphql/resolvers/interface-with-hub/add-release-order.js +242 -0
  11. package/dist-server/graphql/resolvers/interface-with-hub/add-release-order.js.map +1 -0
  12. package/dist-server/graphql/resolvers/interface-with-hub/auto-add-release-order.js +218 -0
  13. package/dist-server/graphql/resolvers/interface-with-hub/auto-add-release-order.js.map +1 -0
  14. package/dist-server/graphql/resolvers/interface-with-hub/auto-update-all-marketplace-product-variation-quantity.js +159 -0
  15. package/dist-server/graphql/resolvers/interface-with-hub/auto-update-all-marketplace-product-variation-quantity.js.map +1 -0
  16. package/dist-server/graphql/resolvers/interface-with-hub/generate-replenishment-order.js +27 -0
  17. package/dist-server/graphql/resolvers/interface-with-hub/generate-replenishment-order.js.map +1 -0
  18. package/dist-server/graphql/resolvers/interface-with-hub/index.js +12 -0
  19. package/dist-server/graphql/resolvers/interface-with-hub/index.js.map +1 -0
  20. package/dist-server/graphql/resolvers/interface-with-hub/warehouse-marketplace-products.js +157 -0
  21. package/dist-server/graphql/resolvers/interface-with-hub/warehouse-marketplace-products.js.map +1 -0
  22. package/dist-server/graphql/resolvers/shipping-provider/index.js +6 -0
  23. package/dist-server/graphql/resolvers/shipping-provider/index.js.map +1 -0
  24. package/dist-server/graphql/resolvers/shipping-provider/shipping-providers.js +32 -0
  25. package/dist-server/graphql/resolvers/shipping-provider/shipping-providers.js.map +1 -0
  26. package/dist-server/graphql/resolvers/warehouse-product/auto-link-warehouse-marketplace-product-variations.js +63 -0
  27. package/dist-server/graphql/resolvers/warehouse-product/auto-link-warehouse-marketplace-product-variations.js.map +1 -0
  28. package/dist-server/graphql/resolvers/warehouse-product/index.js +6 -0
  29. package/dist-server/graphql/resolvers/warehouse-product/index.js.map +1 -0
  30. package/dist-server/graphql/types/index.js +33 -0
  31. package/dist-server/graphql/types/index.js.map +1 -0
  32. package/dist-server/graphql/types/interface-with-hub/index.js +29 -0
  33. package/dist-server/graphql/types/interface-with-hub/index.js.map +1 -0
  34. package/dist-server/graphql/types/interface-with-hub/new-stock-replenishment.js +34 -0
  35. package/dist-server/graphql/types/interface-with-hub/new-stock-replenishment.js.map +1 -0
  36. package/dist-server/graphql/types/interface-with-hub/replenishment-order-product.js +50 -0
  37. package/dist-server/graphql/types/interface-with-hub/replenishment-order-product.js.map +1 -0
  38. package/dist-server/graphql/types/interface-with-hub/stock-replenishment-list.js +16 -0
  39. package/dist-server/graphql/types/interface-with-hub/stock-replenishment-list.js.map +1 -0
  40. package/dist-server/graphql/types/interface-with-hub/stock-replenishment.js +47 -0
  41. package/dist-server/graphql/types/interface-with-hub/stock-replenishment.js.map +1 -0
  42. package/dist-server/graphql/types/interface-with-hub/warehouse-inventory.js +17 -0
  43. package/dist-server/graphql/types/interface-with-hub/warehouse-inventory.js.map +1 -0
  44. package/dist-server/graphql/types/interface-with-hub/warehouse-marketplace-product-list.js +14 -0
  45. package/dist-server/graphql/types/interface-with-hub/warehouse-marketplace-product-list.js.map +1 -0
  46. package/dist-server/graphql/types/interface-with-hub/warehouse-marketplace-product.js +20 -0
  47. package/dist-server/graphql/types/interface-with-hub/warehouse-marketplace-product.js.map +1 -0
  48. package/dist-server/graphql/types/shipping-provider/index.js +10 -0
  49. package/dist-server/graphql/types/shipping-provider/index.js.map +1 -0
  50. package/dist-server/graphql/types/shipping-provider/shipping-provider-list.js +13 -0
  51. package/dist-server/graphql/types/shipping-provider/shipping-provider-list.js.map +1 -0
  52. package/dist-server/graphql/types/shipping-provider/shipping-provider.js +13 -0
  53. package/dist-server/graphql/types/shipping-provider/shipping-provider.js.map +1 -0
  54. package/dist-server/graphql/types/warehouse-product/index.js +11 -0
  55. package/dist-server/graphql/types/warehouse-product/index.js.map +1 -0
  56. package/dist-server/graphql/types/warehouse-product/warehouse-product.js +12 -0
  57. package/dist-server/graphql/types/warehouse-product/warehouse-product.js.map +1 -0
  58. package/dist-server/index.js +34 -0
  59. package/dist-server/index.js.map +1 -0
  60. package/dist-server/middlewares/index.js +4 -0
  61. package/dist-server/middlewares/index.js.map +1 -0
  62. package/dist-server/migrations/1599732967233-SeedCommonCode.js +52 -0
  63. package/dist-server/migrations/1599732967233-SeedCommonCode.js.map +1 -0
  64. package/dist-server/migrations/1608009991075-SeedUser.js +51 -0
  65. package/dist-server/migrations/1608009991075-SeedUser.js.map +1 -0
  66. package/dist-server/migrations/index.js +12 -0
  67. package/dist-server/migrations/index.js.map +1 -0
  68. package/dist-server/routers/etrax-router.js +155 -0
  69. package/dist-server/routers/etrax-router.js.map +1 -0
  70. package/dist-server/routers/shopify-pos-public-router.js +109 -0
  71. package/dist-server/routers/shopify-pos-public-router.js.map +1 -0
  72. package/dist-server/routes.js +11 -0
  73. package/dist-server/routes.js.map +1 -0
  74. package/dist-server/util/interface-helper.js +53 -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 +6 -6
@@ -0,0 +1,158 @@
1
+ module.exports = {
2
+ domainType: 'company',
3
+ domainExtType: 'company',
4
+ subdomainOffset: 2,
5
+ port: 4447,
6
+ ormconfig: {
7
+ name: 'default',
8
+ type: 'postgres',
9
+ database: 'EMS',
10
+ username: 'postgres',
11
+ password: 'hatio',
12
+ host: '192.168.0.153',
13
+ port: 15432,
14
+ synchronize: true,
15
+ logging: true
16
+ },
17
+ sftpFileStorage: {
18
+ type: 's3',
19
+ accessKeyId: 'AKIAUQEOPWEJKL43OMZA',
20
+ secretAccessKey: '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',
21
+ bucketName: 'operato-sftp'
22
+ },
23
+ // ormconfig: {
24
+ // name: 'default',
25
+ // type: 'postgres',
26
+ // database: 'postgres',
27
+ // username: 'postgres',
28
+ // password: 'hatio',
29
+ // host: 'localhost',
30
+ // port: 35432,
31
+ // synchronize: true,
32
+ // logging: true
33
+ // },
34
+ inspect: '9280',
35
+ password: {
36
+ lowerCase: true,
37
+ upperCase: false,
38
+ digit: false,
39
+ specialCharacter: false,
40
+ allowRepeat: true,
41
+ useTightPattern: false,
42
+ useLoosePattern: true,
43
+ tightCharacterLength: 4,
44
+ looseCharacterLength: 4,
45
+ history: 2
46
+ },
47
+ oauth2: {
48
+ platforms: [
49
+ {
50
+ name: 'Operato Hub',
51
+ apiURL: 'http://operato-h.com:3000/api'
52
+ }
53
+ ]
54
+ },
55
+ useVirtualHostBasedDomain: false,
56
+ uploads: 'uploads',
57
+ attachmentsPath: 'attachments',
58
+ SECRET: '0xD58F835B69D207A76CC5F84a70a1D0d4C79dfC95',
59
+ logger: {
60
+ file: {
61
+ filename: 'logs/application-%DATE%.log',
62
+ datePattern: 'YYYY-MM-DD-HH',
63
+ zippedArchive: true,
64
+ maxSize: '200m',
65
+ maxFiles: '1m',
66
+ level: 'info'
67
+ }
68
+ },
69
+ email: {
70
+ host: 'smtp.office365.com',
71
+ port: 587,
72
+ secure: false, // true for 465, false for other ports
73
+ auth: {
74
+ user: 'no-reply@hatiolab.com', // generated ethereal user
75
+ pass: 'h@ti0LAB1008' // generated ethereal password
76
+ },
77
+ secureConnection: false,
78
+ tls: {
79
+ ciphers: 'SSLv3'
80
+ }
81
+ },
82
+ sender: 'no-reply@hatiolab.com',
83
+ notification: {
84
+ fcm: {
85
+ serviceAccount: {
86
+ project_id: 'operato',
87
+ private_key:
88
+ '-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDYNOfyNjPMSeG9\nzU1qs0cpVK5cVfadcUaw5g+hkQZMOMlAA7uqW2eX4vkayj7MzbYUayH+sei8044Q\nJIyl6f26dNX1VT3UgTmSmCS0v48EBEZHCgusrUGFjduLRN6OS6uvrXW1xKA18k9q\nai1C2EHCXF2AE4PTvf239RC1UIOnVePcMtT7rMTdHRO4s8OKVuSDbzIt8k1cV3Zt\nES0YsJlkELqBisYpV//2/ZSILTt39J9JzrVef03X9kkoo9p+YnNyy6tWsfQPfgJO\nybiRGBNxiyJ/E2pxRo/WqU0go9OzYJlGaSUrUx09heNiRD1b0MAOmyPDJz/6AaTk\nkU/A+kLzAgMBAAECggEADQ5s2gtR53VSujk1V/Xe8e0Di99DwaWUj5w6YhcK7/wX\nPdQRN4Fw6RLeLjL7xeG/rCNSwzm6hKSrQJL5zLnWW7XbMdyQRk6jdmnVAEv3zACi\nFH9+eFK3e+Q214XfgWz/v4p/FZdRLCYni5VBNHcwyWxLLS/V1ynzB3KM1sDiTRmI\npcT7+uTtwrKgJq64sXtFE2pYrFxDdCiyqzkhv/2ed4YIowAjpKBbbcCDKeVxVkoz\nC1P4PAzs9EeUuKSWYrWaUjN17lqtRlYeT1ylR1PIJuWqd4cKfgoEgz+lHwRPDCEX\nAYbk3nofiJIPBhSfCHrXS755wK48mY8vMwFdfCPJeQKBgQDsz4tjYTHdat5A25n5\nekwMxZwFQ5OvMV4eulwZUDMypTAYSz1iB6sDlgwKDm5omZIfuneqCEIvrqxV/kx3\n5wV/DANHO3hYxdp/NV7rM23xmqlaKZhHQbDono1Fm/LP6DEmJiD7N2eFKsXYcPpR\nSAIdCv0X3zkDQ4zRi51yJlCXzQKBgQDpufJBxCoXngiQJ2j14lWVAeOOdQ6zh5Ip\nBcDwF0X67cNSN3Wl40bS4yLFdolhEAyj5m0WPuYYXpjzhHhZ0W3V3ItdBkrmwIvy\nWOWu26qN0ZbwxVS2qVpHuj6iHWJKHuDZZUkFtJg3BeeBSOUHSA8TvjnA0xd83xeb\n8ZJasWoFvwKBgQDFs/gQ/gIdcq0exLfluh5nw0qgcmyHpNWJHdjqITS9IX/nqFkU\n0IYLtmdStf2jQiLmbkydHcvz9wZVvLqml67VBHhwLcwpgPULoskd34/4V0Dvzy4c\nv1Esw8H5zVqIDLeLu+VpFjZMzQrjyl6RIWbyTExEc84rVWfpQYAu3qIGOQKBgAFr\nXatEk7TdAtRNSPflTfu/rTAaSeKROjQBkvBiU8x4US1YpOBDBxUUyAtG8wKh5FHC\nfnsaGq+fM3KXJVv2R6J62mXQOfg4xyDLpWlwcBK4aSBBMoiBcsjouqSlZQlqMpdf\nZBgixqHe6U8BsFJg/6ZxC0y+e3AIss4Bo4/lb+1lAoGAFOexvaBh21K6W3inmRW4\nLlkVYJaBJ20OwokXg5aXjBiHxqmk7VLAuFbkpb5LOKH2xPILRQ0OEkn51yVymS3T\n9lLpHOFTQXt5tF2/F7NW7kaQJNlLr/h5jPi3O9XHeFmuaN2z150ZB6zzgjeGKzr8\ni+1fgTsRfDtNw8xkSH9qL1Y=\n-----END PRIVATE KEY-----\n',
89
+ client_email: 'firebase-adminsdk-xmm2e@operato.iam.gserviceaccount.com'
90
+ },
91
+ appConfig: {
92
+ apiKey: 'AIzaSyDdTM2BTLHSt2LNS0G5QB8G0i4KBXFiG7U',
93
+ projectId: 'operato',
94
+ messagingSenderId: 79537064975,
95
+ appId: '1:79537064975:web:32f53119e9c8c6ee2a277a'
96
+ },
97
+ serverKey:
98
+ 'AAAAEoTHTA8:APA91bGwt-4HT82Dfwf_VwbQaKT0_qHd0Y3tuW41udjWz5Lz0Ko0mEMD6WbHHSILvQpa6yuoGGKCMsrU7VW2qWRrUm3CYpyG9oSwshNm1tIhljAnOuUfwHCoawbVLwf9qlWpHt4dwCoc'
99
+ },
100
+ vapidKey: {
101
+ subject: 'mailto:heartyoh@hatiolab.com',
102
+ publicKey: 'BAkVkITsCXBIsYL1yeaBmx5_dn57we-ZXMjirPPHzC2dan82cdEnAio_53PQ-1_w3ykWCBPrrFAWQ_d9N4cFF0o',
103
+ privateKey: '4pmlt3Wk019u7nqU3Q_oGZE6LbUDjjf8DpmAcn9-iss'
104
+ }
105
+ },
106
+ fulfillmentIntegrationOperato: {
107
+ host: '192.168.0.161:4445',
108
+ protocol: 'http',
109
+ platform: 'operato',
110
+ application: 'Operato MMS',
111
+ appKey: 'a9bf751e622bf146662b240d58971051',
112
+ appSecret: '1c385935dc131c4b902b9bbf6a4798af',
113
+ callback: 'http://192.168.0.161:4447/callback-operato'
114
+ },
115
+ sellercraftChannelIntegrationConfig: {
116
+ apiKey: 'eqDVmIp0kxakM4sNnzqTkySBM73UGMS1nOPDN5Z1',
117
+ tokenCraftUrl: 'https://staging-tokencraft.sellercraft.co/v1/get-shop'
118
+ },
119
+ marketplaceIntegrationShopee: {
120
+ platform: 'shopee',
121
+ isUAT: false,
122
+ application: 'Operato MMS',
123
+ partnerId: 846025,
124
+ partnerKey: 'd34cfd85a603f196a0d74ebe08043280c1a27788bb36bdffd61e7e0bb1c90b64'
125
+ },
126
+ marketplaceIntegrationLazada: {
127
+ platform: 'lazada',
128
+ application: 'operato-mms',
129
+ appKey: '120961',
130
+ appSecret: 'HB3RTNEXHlVSlBr9SmWF8AjbSUT7a825',
131
+ callback: 'https://maybank.operato-m.com/lazada-callback'
132
+ },
133
+ marketplaceIntegrationShopify: {
134
+ platform: 'shopify',
135
+ application: 'Operato',
136
+ apiKey: '37da47200ab87c8aaf0634869c80bd5f',
137
+ apiSecret: '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'
138
+ },
139
+ marketplaceIntegrationShopifyPrivate: {
140
+ platform: 'shopify',
141
+ application: 'Beacon Chicken 1',
142
+ apiKey: '37da47200ab87c8aaf0634869c80bd5f',
143
+ apiSecret: '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'
144
+ },
145
+ marketplaceIntegrationWoocommerce: {
146
+ key_id: '',
147
+ user_id: '',
148
+ consumer_key: '',
149
+ consumer_secret: '',
150
+ key_permission: 'read' | 'write' | 'read_write'
151
+ },
152
+ marketplaceIntegrationMagento: {
153
+ oauth_signature_method: 'HMAC-SHA1',
154
+ oauth_verifier: '',
155
+ oauth_consumer_key: '',
156
+ oauth_consumer_secret: ''
157
+ }
158
+ }
@@ -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":""}
@@ -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"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.schema = void 0;
27
+ const typeDefs = __importStar(require("./types"));
28
+ const resolvers = __importStar(require("./resolvers"));
29
+ exports.schema = {
30
+ typeDefs,
31
+ resolvers
32
+ };
33
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/graphql/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAAmC;AACnC,uDAAwC;AAE3B,QAAA,MAAM,GAAG;IACpB,QAAQ;IACR,SAAS;CACV,CAAA"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.mutations = exports.queries = void 0;
27
+ const InterfaceWithHub = __importStar(require("./interface-with-hub"));
28
+ const WarehouseProduct = __importStar(require("./warehouse-product"));
29
+ const ShippingProviders = __importStar(require("./shipping-provider"));
30
+ exports.queries = [InterfaceWithHub.Query, ShippingProviders.Query];
31
+ exports.mutations = [InterfaceWithHub.Mutation, WarehouseProduct.Mutation];
32
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/graphql/resolvers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uEAAwD;AACxD,sEAAuD;AACvD,uEAAwD;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"}
@@ -0,0 +1,242 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.addReleaseOrderResolver = void 0;
4
+ const typeorm_1 = require("typeorm");
5
+ const auth_base_1 = require("@things-factory/auth-base");
6
+ const biz_base_1 = require("@things-factory/biz-base");
7
+ const env_1 = require("@things-factory/env");
8
+ const integration_fulfillment_1 = require("@things-factory/integration-fulfillment");
9
+ const marketplace_base_1 = require("@things-factory/marketplace-base");
10
+ const product_base_1 = require("@things-factory/product-base");
11
+ const shell_1 = require("@things-factory/shell");
12
+ exports.addReleaseOrderResolver = {
13
+ async addReleaseOrder(_, { marketplaceOrderIds, warehouseId }, context) {
14
+ var _a, _b, _c;
15
+ const { domain } = context.state;
16
+ const fulfilmentCenter = await integration_fulfillment_1.FulfillmentAPI.getFulfillmentCenter(warehouseId);
17
+ const centerId = fulfilmentCenter.centerId;
18
+ var warehouseDomain = await (0, typeorm_1.getRepository)(shell_1.Domain).findOne({ where: { subdomain: centerId } });
19
+ var customerBizplaces = await (0, biz_base_1.getCustomerBizplaces)(warehouseDomain);
20
+ const customerBizplaceId = customerBizplaces.find(customerBizplace => customerBizplace.company.domain.id === domain.id).id;
21
+ for (var i = 0; i < marketplaceOrderIds.length; i++) {
22
+ const marketplaceOrderId = marketplaceOrderIds[i];
23
+ const marketplaceOrder = await (0, typeorm_1.getRepository)(marketplace_base_1.MarketplaceOrder).findOne(marketplaceOrderId, {
24
+ relations: [
25
+ 'marketplaceOrderItems',
26
+ 'marketplaceOrderItems.marketplaceProductVariation',
27
+ 'marketplaceOrderItems.marketplaceOrderShippingItems',
28
+ 'marketplaceOrderItems.marketplaceOrderShippingItems.marketplaceOrderShipping',
29
+ 'marketplaceStore'
30
+ ]
31
+ });
32
+ const marketplaceOrderItems = marketplaceOrder.marketplaceOrderItems;
33
+ const qt = (0, typeorm_1.createQueryBuilder)(marketplace_base_1.MarketplaceOrderShipping, 'MOS');
34
+ let marketplaceOrderShippings = await qt
35
+ .leftJoinAndSelect('MOS.marketplaceOrderShippingItems', 'MOSI')
36
+ .leftJoinAndSelect('MOSI.product', 'P')
37
+ .leftJoinAndSelect('MOSI.marketplaceOrderItem', 'MOI')
38
+ .where('MOS.domain = :domainId', { domainId: domain.id })
39
+ .andWhere('MOS.orderNoRef = :orderNoRef', { orderNoRef: marketplaceOrder.orderNo })
40
+ .andWhere('MOS.releaseOrderId IS NULL')
41
+ .orderBy('MOS.subOrderNoRef', 'ASC')
42
+ .addOrderBy('MOS.orderNoRef', 'ASC')
43
+ .addOrderBy('MOS.createdAt', 'ASC')
44
+ .getMany();
45
+ for (let j = 0; j < marketplaceOrderShippings.length; j++) {
46
+ let marketplaceOrderShipping = marketplaceOrderShippings[j];
47
+ let marketplaceOrderShippingItems = marketplaceOrderShipping.marketplaceOrderShippingItems;
48
+ if (!(marketplaceOrderShipping === null || marketplaceOrderShipping === void 0 ? void 0 : marketplaceOrderShipping.releaseOrderId)) {
49
+ const date = new Date();
50
+ const releaseDate = `${date.getFullYear()}-${(date.getMonth() + 1).toString().padStart(2, '0')}-${date
51
+ .getDate()
52
+ .toString()
53
+ .padStart(2, '0')}`;
54
+ var newReleaseOrder = {
55
+ releaseDate,
56
+ type: 'b2c',
57
+ source: auth_base_1.ApplicationType.MMS,
58
+ transporter: marketplaceOrder.shippingProvider,
59
+ trackingNo: (marketplaceOrderShipping === null || marketplaceOrderShipping === void 0 ? void 0 : marketplaceOrderShipping.ownTrackingNo)
60
+ ? marketplaceOrderShipping.ownTrackingNo
61
+ : marketplaceOrderShipping.trackingNo,
62
+ packingOption: true,
63
+ exportOption: false,
64
+ ownTransport: true,
65
+ courierOption: true,
66
+ lmdOption: ((_a = marketplaceOrder === null || marketplaceOrder === void 0 ? void 0 : marketplaceOrder.marketplaceStore) === null || _a === void 0 ? void 0 : _a.lmdOption) || false,
67
+ collectionOrderNo: marketplaceOrder.orderNo,
68
+ refNo: marketplaceOrder.orderNo,
69
+ refNo2: marketplaceOrderShippings.length > 1 ? marketplaceOrderShipping === null || marketplaceOrderShipping === void 0 ? void 0 : marketplaceOrderShipping.subOrderNoRef : marketplaceOrder.orderNo,
70
+ deliverTo: {
71
+ deliveryAddress1: marketplaceOrderShipping.address1,
72
+ deliveryAddress2: marketplaceOrderShipping.address2,
73
+ deliveryAddress3: marketplaceOrderShipping.address3,
74
+ deliveryAddress4: marketplaceOrderShipping.address4,
75
+ deliveryAddress5: marketplaceOrderShipping.address5,
76
+ attentionTo: marketplaceOrderShipping.attentionTo,
77
+ city: marketplaceOrderShipping.city,
78
+ postalCode: marketplaceOrderShipping.postCode,
79
+ country: marketplaceOrderShipping.country,
80
+ state: marketplaceOrderShipping.state,
81
+ phone1: marketplaceOrderShipping.phone1,
82
+ phone2: (marketplaceOrderShipping === null || marketplaceOrderShipping === void 0 ? void 0 : marketplaceOrderShipping.phone2) ? marketplaceOrderShipping.phone2 : null
83
+ },
84
+ marketplaceOrderStatus: marketplaceOrder.status,
85
+ airwayBill: (marketplaceOrderShipping === null || marketplaceOrderShipping === void 0 ? void 0 : marketplaceOrderShipping.airwayBill) ? marketplaceOrderShipping.airwayBill : null,
86
+ invoice: (marketplaceOrderShipping === null || marketplaceOrderShipping === void 0 ? void 0 : marketplaceOrderShipping.invoice) ? marketplaceOrderShipping.invoice : null,
87
+ refOrderId: marketplaceOrder.id,
88
+ orderInventories: marketplaceOrderShippingItems.map(marketplaceOrderShippingItem => {
89
+ return {
90
+ product: {
91
+ sku: marketplaceOrderShippingItem.product.sku
92
+ },
93
+ releaseQty: marketplaceOrderShippingItem.qty
94
+ };
95
+ })
96
+ };
97
+ try {
98
+ let releaseOrder = await integration_fulfillment_1.FulfillmentAPI.createOutboundOrder(fulfilmentCenter, {
99
+ customerBizplaceId,
100
+ releaseOrder: newReleaseOrder
101
+ });
102
+ //if release order is not created, throw error
103
+ if (!(releaseOrder === null || releaseOrder === void 0 ? void 0 : releaseOrder.id)) {
104
+ throw new Error('Failed to create release order');
105
+ }
106
+ // deduct reserve qty
107
+ if ((_b = marketplaceOrder === null || marketplaceOrder === void 0 ? void 0 : marketplaceOrder.marketplaceStore) === null || _b === void 0 ? void 0 : _b.reserveEnabled) {
108
+ try {
109
+ await deductReservedQty(marketplaceOrderItems, domain);
110
+ }
111
+ catch (e) {
112
+ env_1.logger.error(`[add-release-order] failed to deduct reserved qty (${marketplaceOrder.orderNo})`);
113
+ }
114
+ }
115
+ marketplaceOrderShipping.releaseOrderId = releaseOrder.id;
116
+ marketplaceOrderShipping.fulfillmentCenter = fulfilmentCenter;
117
+ await (0, typeorm_1.getRepository)(marketplace_base_1.MarketplaceOrderShipping).save(marketplaceOrderShipping);
118
+ }
119
+ catch (e) {
120
+ console.error(e);
121
+ }
122
+ }
123
+ }
124
+ //fetch the latest updated of marketplaceOrderShipping
125
+ const mos = await (0, typeorm_1.createQueryBuilder)(marketplace_base_1.MarketplaceOrderShipping, 'MOS')
126
+ .where('MOS.domain = :domainId', { domainId: domain.id })
127
+ .andWhere('MOS.orderNoRef = :orderNoRef', { orderNoRef: marketplaceOrder.orderNo })
128
+ .distinctOn(['MOS.subOrderNoRef', 'MOS.orderNoRef'])
129
+ .orderBy('MOS.subOrderNoRef', 'ASC')
130
+ .addOrderBy('MOS.orderNoRef', 'ASC')
131
+ .addOrderBy('MOS.createdAt', 'ASC')
132
+ .getMany();
133
+ //validation to prevent creating invoice if there is any failed creation order
134
+ if (mos.some(mos => mos.releaseOrderId === null || mos.releaseOrderId === '')) {
135
+ continue;
136
+ }
137
+ if (mos.length > 0 && ((_c = mos[0]) === null || _c === void 0 ? void 0 : _c.releaseOrderId)) {
138
+ await (0, typeorm_1.getRepository)(marketplace_base_1.MarketplaceOrder).update(marketplaceOrder.id, {
139
+ releaseOrderId: mos[0].releaseOrderId,
140
+ fulfillmentCenter: fulfilmentCenter
141
+ });
142
+ }
143
+ try {
144
+ var invoiceProducts = await Promise.all(marketplaceOrderItems.map(async (mi) => {
145
+ let product = await (0, typeorm_1.getRepository)(product_base_1.Product).findOne({
146
+ where: { domain, sku: mi.marketplaceProductVariation.sku }
147
+ });
148
+ let productBundle;
149
+ if (!product) {
150
+ productBundle = await (0, typeorm_1.getRepository)(product_base_1.ProductBundle).findOne({
151
+ where: { domain, sku: mi.marketplaceProductVariation.sku }
152
+ });
153
+ }
154
+ return {
155
+ sku: product ? product.sku : productBundle.sku,
156
+ name: product ? product.name : productBundle.name,
157
+ description: product ? product.description : productBundle.description,
158
+ qty: mi.qty,
159
+ unitPrice: ((mi === null || mi === void 0 ? void 0 : mi.originalPrice) || 0) / mi.qty,
160
+ paidPrice: ((mi === null || mi === void 0 ? void 0 : mi.paidPrice) || 0) / mi.qty,
161
+ discount: (mi === null || mi === void 0 ? void 0 : mi.discount) || 0,
162
+ shippingFeePaidByCustomer: (mi === null || mi === void 0 ? void 0 : mi.shippingFeePaidByCustomer) || 0
163
+ };
164
+ }));
165
+ let newInvoice = {
166
+ invoiceProducts,
167
+ name: '-',
168
+ refNo1: newReleaseOrder.refNo.toString(),
169
+ refNo2: newReleaseOrder.refNo2.toString(),
170
+ issuedOn: new Date(),
171
+ from: marketplaceOrder.marketplaceStore.storeName,
172
+ fromContactPhone: '-',
173
+ fromAddress1: '-',
174
+ fromAddress2: null,
175
+ fromAddress3: null,
176
+ fromAddress4: null,
177
+ fromAddress5: null,
178
+ fromPostcode: null,
179
+ fromCity: null,
180
+ fromState: null,
181
+ fromCountry: null,
182
+ deliverTo: newReleaseOrder.deliverTo.attentionTo || '-',
183
+ deliverToPhone: newReleaseOrder.deliverTo.phone1 || '-',
184
+ deliveryAddress1: newReleaseOrder.deliverTo.deliveryAddress1 || '-',
185
+ deliveryAddress2: newReleaseOrder.deliverTo.deliveryAddress2,
186
+ deliveryAddress3: newReleaseOrder.deliverTo.deliveryAddress3,
187
+ deliveryAddress4: newReleaseOrder.deliverTo.deliveryAddress4,
188
+ deliveryAddress5: newReleaseOrder.deliverTo.deliveryAddress5,
189
+ deliveryPostcode: newReleaseOrder.deliverTo.postalCode || '-',
190
+ deliveryCity: newReleaseOrder.deliverTo.city || '-',
191
+ deliveryState: newReleaseOrder.deliverTo.state || '-',
192
+ deliveryCountry: newReleaseOrder.deliverTo.country || '-',
193
+ billTo: newReleaseOrder.deliverTo.attentionTo || '-',
194
+ billToPhone: newReleaseOrder.deliverTo.phone1 || '-',
195
+ billingAddress1: newReleaseOrder.deliverTo.billingAddress || newReleaseOrder.deliverTo.deliveryAddress1 || '-',
196
+ billingAddress2: null,
197
+ billingAddress3: null,
198
+ billingAddress4: null,
199
+ billingAddress5: null,
200
+ billingPostcode: '-',
201
+ billingCity: '-',
202
+ billingState: '-',
203
+ billingCountry: '-'
204
+ };
205
+ await integration_fulfillment_1.FulfillmentAPI.createSalesInvoice(fulfilmentCenter, {
206
+ customerBizplaceId,
207
+ invoice: newInvoice
208
+ });
209
+ }
210
+ catch (e) {
211
+ console.log(e);
212
+ }
213
+ }
214
+ }
215
+ };
216
+ async function deductReservedQty(marketplaceOrderItems, domain) {
217
+ for (let item of marketplaceOrderItems) {
218
+ let variations = await (0, typeorm_1.getRepository)(marketplace_base_1.MarketplaceProductVariation).find({
219
+ where: { sku: item.marketplaceProductVariation.sku, domain }
220
+ });
221
+ for (let variation of variations) {
222
+ let newReserve = variation.reserveQty - item.qty;
223
+ await (0, typeorm_1.getRepository)(marketplace_base_1.MarketplaceProductVariation).update({ id: variation.id }, { reserveQty: newReserve > 0 ? newReserve : 0 });
224
+ }
225
+ let bundle = await (0, typeorm_1.getRepository)(product_base_1.ProductBundle).findOne({
226
+ where: { sku: item.marketplaceProductVariation.sku, domain },
227
+ relations: ['productBundleSettings', 'productBundleSettings.product']
228
+ });
229
+ if (bundle) {
230
+ for (let setting of bundle.productBundleSettings) {
231
+ let bundleVariations = await (0, typeorm_1.getRepository)(marketplace_base_1.MarketplaceProductVariation).find({
232
+ where: { sku: setting.product.sku, domain }
233
+ });
234
+ for (let bundleVariation of bundleVariations) {
235
+ let newReserve = bundleVariation.reserveQty - item.qty * setting.bundleQty;
236
+ await (0, typeorm_1.getRepository)(marketplace_base_1.MarketplaceProductVariation).update({ id: bundleVariation.id }, { reserveQty: newReserve > 0 ? newReserve : 0 });
237
+ }
238
+ }
239
+ }
240
+ }
241
+ }
242
+ //# 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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"}