@things-factory/operato-wms 4.3.824 → 4.3.825

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 (30) hide show
  1. package/client/pages/adjustment/transfer-inventory.js +24 -64
  2. package/client/pages/components/select-product-popup.js +20 -0
  3. package/client/pages/constants/location.js +4 -0
  4. package/client/pages/master/location-list.js +140 -18
  5. package/client/pages/order/arrival-notice/create-arrival-notice.js +18 -0
  6. package/client/pages/order/draft-release-good/draft-release-good-list.js +1 -0
  7. package/config.development.js +71 -141
  8. package/dist-server/graphql/resolvers/index.js +2 -0
  9. package/dist-server/graphql/resolvers/index.js.map +1 -1
  10. package/dist-server/graphql/resolvers/transfer-location/check-transfer-location-recommendation.js +108 -0
  11. package/dist-server/graphql/resolvers/transfer-location/check-transfer-location-recommendation.js.map +1 -0
  12. package/dist-server/graphql/resolvers/transfer-location/index.js +7 -0
  13. package/dist-server/graphql/resolvers/transfer-location/index.js.map +1 -0
  14. package/dist-server/graphql/types/index.js +3 -0
  15. package/dist-server/graphql/types/index.js.map +1 -1
  16. package/dist-server/graphql/types/transfer-location/index.js +14 -0
  17. package/dist-server/graphql/types/transfer-location/index.js.map +1 -0
  18. package/dist-server/graphql/types/transfer-location/transfer-location-recommendation.js +13 -0
  19. package/dist-server/graphql/types/transfer-location/transfer-location-recommendation.js.map +1 -0
  20. package/package.json +5 -5
  21. package/server/graphql/resolvers/index.ts +2 -0
  22. package/server/graphql/resolvers/transfer-location/check-transfer-location-recommendation.ts +123 -0
  23. package/server/graphql/resolvers/transfer-location/index.ts +7 -0
  24. package/server/graphql/types/index.ts +3 -0
  25. package/server/graphql/types/transfer-location/index.ts +13 -0
  26. package/server/graphql/types/transfer-location/transfer-location-recommendation.ts +7 -0
  27. package/translations/en.json +12 -0
  28. package/translations/ko.json +12 -0
  29. package/translations/ms.json +12 -0
  30. package/translations/zh.json +12 -0
@@ -6,29 +6,18 @@ module.exports = {
6
6
  subdomainOffset: 2,
7
7
  port: 4000,
8
8
  inspect: '9330',
9
+
10
+ storage: {
11
+ type: 's3',
12
+ accessKeyId: 'AKIAUQEOPWEJHCE4MTH4',
13
+ secretAccessKey: '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',
14
+ bucketName: 'opa-one',
15
+ region: 'ap-southeast-1'
16
+ },
17
+ // arif
9
18
  // ormconfig: {
10
19
  // name: 'default',
11
20
  // type: 'postgres',
12
- // database: 'postgres',
13
- // username: 'izzah',
14
- // password: 'hatio1234',
15
- // host: 'my-operato-pg.cjcso4qmeuq0.ap-southeast-5.rds.amazonaws.com',
16
- // port: 55432,
17
- // synchronize: false,
18
- // logging: true
19
- // },
20
- // postgres2
21
- // ormconfig: {
22
- // name: 'default',
23
- // type: 'postgres',
24
- // database: 'postgres',
25
- // username: 'postgres',
26
- // password: 'hatio',
27
- // host: '192.168.0.151',
28
- // port: 15432,
29
- // synchronize: false,debug
30
- // name: 'default',
31
- // type: 'postgres',
32
21
  // database: 'arif',
33
22
  // username: 'postgres',
34
23
  // password: 'hatio',
@@ -37,51 +26,7 @@ module.exports = {
37
26
  // synchronize: false,
38
27
  // logging: true
39
28
  // },
40
- // ormconfig: {
41
- // name: 'default',
42
- // type: 'postgres',
43
- // database: 'operato-eric',
44
- // username: 'postgres',
45
- // password: 'hatio',
46
- // host: '192.168.0.248',
47
- // port: 15432,
48
- // synchronize: false,
49
- // logging: true
50
- // },
51
- //operato
52
- // ormconfig: {
53
- // name: 'default',
54
- // type: 'postgres',
55
- // database: 'operato',
56
- // username: 'postgres',
57
- // password: 'hatio',
58
- // host: '192.168.0.151',
59
- // port: 15432,
60
- // synchronize: false,
61
- // logging: true
62
- // },
63
- //153 - operatodebug
64
- // type: 'postgres',
65
- // database: 'operato',
66
- // username: 'postgres',
67
- // password: 'hatio',
68
- // host: '192.168.0.153',
69
- // port: 15432,
70
- // synchronize: false,
71
- // logging: true
72
- // },
73
- //eric2
74
- // ormconfig: {
75
- // name: 'default',
76
- // type: 'postgres',
77
- // database: 'eric2',
78
- // username: 'postgres',
79
- // password: 'hatio',
80
- // host: '192.168.0.153',
81
- // port: 15432,
82
- // synchronize: false,
83
- // logging: true
84
- // },
29
+
85
30
  // STAGING DATABASE
86
31
  ormconfig: {
87
32
  name: 'default',
@@ -94,30 +39,46 @@ module.exports = {
94
39
  synchronize: false,
95
40
  logging: true
96
41
  },
97
- //EMS
42
+
98
43
  // ormconfig: {
99
44
  // name: 'default',
100
45
  // type: 'postgres',
101
- // database: 'EMS',
46
+ // host: 'operatov3.cluster-cijhm4n1hbst.ap-southeast-1.rds.amazonaws.com',
47
+ // port: 55432,
48
+ // database: 'postgres',
102
49
  // username: 'postgres',
103
- // password: 'hatio',
104
- // host: '192.168.0.161',
105
- // port: 15432,
50
+ // password: 'abcd1234',
106
51
  // synchronize: false,
52
+ // logging: true,
53
+ // connectTimeoutMS: 30000,
54
+ // extra: { poolSize: 30 }
55
+ // },
56
+
57
+ //db izzah
58
+ // ormconfig: {
59
+ // name: 'default',
60
+ // type: 'postgres',
61
+ // database: '06072023',
62
+ // username: 'postgres',
63
+ // password: 'hatio',
64
+ // host: '192.168.0.153',
65
+ // port: 15432,f
66
+ // synchronize: true,
107
67
  // logging: true
108
68
  // },
109
- //db nora
110
69
  // ormconfig: {
111
70
  // name: 'default',
112
71
  // type: 'postgres',
113
72
  // database: 'postgres',
114
73
  // username: 'postgres',
115
74
  // password: 'hatio',
116
- // host: '192.168.0.36',
75
+ // host: '192.168.0.151',
117
76
  // port: 15432,
118
- // synchronize: true,
77
+ // synchronize: false,
119
78
  // logging: true
120
79
  // },
80
+
81
+ // //ERIC
121
82
  // ormconfig: {
122
83
  // name: 'default',
123
84
  // type: 'postgres',
@@ -126,14 +87,15 @@ module.exports = {
126
87
  // password: 'hatio',
127
88
  // host: '192.168.0.153',
128
89
  // port: 15432,
129
- // synchronize: true,
90
+ // synchronize: false,
130
91
  // logging: true
131
92
  // },
132
- //db izzah
93
+
94
+ //eric 2
133
95
  // ormconfig: {
134
96
  // name: 'default',
135
97
  // type: 'postgres',
136
- // database: '06072023',
98
+ // database: 'eric2',
137
99
  // username: 'postgres',
138
100
  // password: 'hatio',
139
101
  // host: '192.168.0.153',
@@ -141,20 +103,21 @@ module.exports = {
141
103
  // synchronize: false,
142
104
  // logging: true
143
105
  // },
106
+
144
107
  // ormconfig: {
145
108
  // name: 'default',
146
109
  // type: 'postgres',
147
- // host: 'a6cf0bb5671f54555985dede599d5a87-649005352.ap-southeast-1.elb.amazonaws.com',
148
- // port: 15432,
110
+ // host: 'operatov3.cluster-cijhm4n1hbst.ap-southeast-1.rds.amazonaws.com',
111
+ // port: 55432,
149
112
  // database: 'postgres',
150
- // username: 'operato-hub-app',
151
- // password: 'a5Z(7|6n$Zti',
113
+ // username: 'postgres',
114
+ // password: 'abcd1234',
152
115
  // synchronize: false,
153
116
  // logging: true,
154
117
  // connectTimeoutMS: 30000,
155
118
  // extra: { poolSize: 30 }
156
119
  // },
157
- // //ormconfig: {
120
+ //ormconfig: {
158
121
  // name: 'default',
159
122
  // type: 'postgres',
160
123
  // database: 'dev2',
@@ -182,7 +145,16 @@ module.exports = {
182
145
  },
183
146
  uploads: 'uploads',
184
147
  attachmentsPath: 'attachments',
185
- logger: {},
148
+ logger: {
149
+ file: {
150
+ filename: 'logs/application-%DATE%.log',
151
+ datePattern: 'YYYY-MM-DD-HH',
152
+ zippedArchive: true,
153
+ maxSize: '200m',
154
+ maxFiles: '1m',
155
+ level: 'info'
156
+ }
157
+ },
186
158
  email: {
187
159
  host: 'smtp.office365.com',
188
160
  port: 587,
@@ -220,72 +192,30 @@ module.exports = {
220
192
  // privateKey: '4pmlt3Wk019u7nqU3Q_oGZE6LbUDjjf8DpmAcn9-iss'
221
193
  // }
222
194
  },
223
- fulfillmentIntegrationOperato: {
224
- host: '192.168.0.161:3000',
225
- protocol: 'http',
226
- platform: 'operato',
227
- application: 'Operato MMS',
228
- appKey: 'a9bf751e622bf146662b240d58971051',
229
- appSecret: '1c385935dc131c4b902b9bbf6a4798af',
230
- callback: 'http://192.168.0.161:5000/callback-operato'
231
- },
232
- lmdIntegrationNinjavan: {
233
- clientId: 'P8WCEwMo0FHNlPECwTLetwN3diAmt5KF',
234
- secretKey: '1D0yNZGseOjhxnwri29xmuZiiuRp131L',
235
- refreshThreshold: 43200
236
- },
237
-
238
- lmdIntegrationEms: { refreshThreshold: 43200 },
239
- marketplaceIntegrationShopee: {
240
- platform: 'shopee',
241
- isUAT: false,
242
- application: 'Operato MMS',
243
- partnerId: 846025,
244
- partnerKey: 'd34cfd85a603f196a0d74ebe08043280c1a27788bb36bdffd61e7e0bb1c90b64',
245
- v2: true
246
- },
247
- marketplaceIntegrationLazada: {
248
- platform: 'lazada',
249
- application: 'operato-mms',
250
- appKey: '120961',
251
- appSecret: 'HB3RTNEXHlVSlBr9SmWF8AjbSUT7a825',
252
- callback: 'https://maybank.operato-m.com/lazada-callback'
253
- },
254
-
255
- //testinglazada
256
- // marketplaceIntegrationLazada: {
257
- // platform: 'lazada',
258
- // application: 'powrup_bi',
259
- // appKey: '117890',
260
- // appSecret: 'tQVllnUa7irAHoNxAwXEVxoP1we1bUjE',
261
- // callback: 'https://73c5-175-141-30-142.ngrok-free.app/lazada-callback'
262
- // },
263
- reportApiUrl: 'http://localhost:8090/rest/report/show_html',
264
- // reportApiUrl: 'http://192.168.0.153:8888/rest/report/show_html'
195
+ // reportApiUrl:
196
+ // 'http://k8s-default-operator-8eeba2e246-3e3a5ee7979bcd57.elb.ap-southeast-1.amazonaws.com/rest/report/show_html',
197
+ // reportApiUrl: 'http://192.168.0.153:8888/rest/report/show_html',
198
+ // reportApiUrl: 'http://192.168.0.153:8888/rest/report/show_html',
265
199
  // reportApiUrl: 'http://10.100.109.66:8090/rest/report/show_html',
266
200
  awbFileStorage: {
267
201
  type: 's3',
268
- accessKeyId: 'AKIAUQEOPWEJPXIVER74',
269
- secretAccessKey: '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',
202
+ accessKeyId: 'AKIAUQEOPWEJKL43OMZA',
203
+ secretAccessKey: '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',
270
204
  bucketName: 'operato-awb',
271
205
  region: 'ap-southeast-1'
272
206
  },
207
+ invoiceFileStorage: {
208
+ type: 's3',
209
+ accessKeyId: 'AKIAUQEOPWEJKL43OMZA',
210
+ secretAccessKey: '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',
211
+ invoiceBucket: 'operato-invoice',
212
+ region: 'ap-southeast-1'
213
+ },
273
214
  lambda: {
274
215
  region: 'ap-southeast-1',
275
- accessKeyId: 'AKIAUQEOPWEJPXIVER74',
276
- secretAccessKey: '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'
216
+ accessKeyId: 'AKIAUQEOPWEJKL43OMZA',
217
+ secretAccessKey: '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'
277
218
  },
278
- lmdIntegrationConfig: {
279
- version: {
280
- v1: 'lmdMiddleware',
281
- v2: 'lmdMiddlewareV2'
282
- }
283
- },
284
- awsSesEmail: {
285
- accessKeyId: 'AKIAUQEOPWEJPXIVER74',
286
- secretAccessKey: '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',
287
- email: 'support@hatio.asia'
288
- }
289
- // reportApiUrl:
290
- // 'http://k8s-default-operator-2fd6178d98-66c66a0f76c09575.elb.ap-southeast-1.amazonaws.com/rest/report/show_html'
219
+ reportApiUrl:
220
+ 'http://k8s-default-operator-8eeba2e246-3e3a5ee7979bcd57.elb.ap-southeast-1.amazonaws.com/rest/report/show_html'
291
221
  }
@@ -33,6 +33,7 @@ const OpaMenu = __importStar(require("./opa-menu"));
33
33
  const Reports = __importStar(require("./reports"));
34
34
  const InventoryComparison = __importStar(require("./inventory-comparison"));
35
35
  const ShippingProviders = __importStar(require("./shipping-provider"));
36
+ const TransferLocation = __importStar(require("./transfer-location"));
36
37
  const WarehouseInventoryAdjustment = __importStar(require("./warehouse-inventory-adjustment"));
37
38
  const RouteLabel = __importStar(require("./route-label"));
38
39
  const ZoneWorksheet = __importStar(require("./zone-worksheet"));
@@ -47,6 +48,7 @@ exports.queries = [
47
48
  Other.Query,
48
49
  Reports.Query,
49
50
  ShippingProviders.Query,
51
+ TransferLocation.Query,
50
52
  RouteLabel.Query,
51
53
  ZoneWorksheet.Query,
52
54
  Outbound.Query
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/graphql/resolvers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8DAA+C;AAC/C,4DAA6C;AAC7C,8DAA+C;AAC/C,uDAAwC;AACxC,+CAAgC;AAChC,oDAAqC;AACrC,mDAAoC;AACpC,4EAA6D;AAC7D,uEAAwD;AACxD,+FAAgF;AAChF,0DAA2C;AAC3C,gEAAiD;AACjD,qDAAsC;AAEzB,QAAA,OAAO,GAAG;IACrB,YAAY,CAAC,KAAK;IAClB,WAAW,CAAC,KAAK;IACjB,YAAY,CAAC,KAAK;IAClB,SAAS,CAAC,KAAK;IACf,mBAAmB,CAAC,KAAK;IACzB,OAAO,CAAC,KAAK;IACb,KAAK,CAAC,KAAK;IACX,OAAO,CAAC,KAAK;IACb,iBAAiB,CAAC,KAAK;IACvB,UAAU,CAAC,KAAK;IAChB,aAAa,CAAC,KAAK;IACnB,QAAQ,CAAC,KAAK;CACf,CAAA;AAEY,QAAA,SAAS,GAAG;IACvB,KAAK,CAAC,QAAQ;IACd,4BAA4B,CAAC,QAAQ;IACrC,UAAU,CAAC,QAAQ;IACnB,aAAa,CAAC,QAAQ;IACtB,QAAQ,CAAC,QAAQ;CAClB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/graphql/resolvers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8DAA+C;AAC/C,4DAA6C;AAC7C,8DAA+C;AAC/C,uDAAwC;AACxC,+CAAgC;AAChC,oDAAqC;AACrC,mDAAoC;AACpC,4EAA6D;AAC7D,uEAAwD;AACxD,sEAAuD;AACvD,+FAAgF;AAChF,0DAA2C;AAC3C,gEAAiD;AACjD,qDAAsC;AAEzB,QAAA,OAAO,GAAG;IACrB,YAAY,CAAC,KAAK;IAClB,WAAW,CAAC,KAAK;IACjB,YAAY,CAAC,KAAK;IAClB,SAAS,CAAC,KAAK;IACf,mBAAmB,CAAC,KAAK;IACzB,OAAO,CAAC,KAAK;IACb,KAAK,CAAC,KAAK;IACX,OAAO,CAAC,KAAK;IACb,iBAAiB,CAAC,KAAK;IACvB,gBAAgB,CAAC,KAAK;IACtB,UAAU,CAAC,KAAK;IAChB,aAAa,CAAC,KAAK;IACnB,QAAQ,CAAC,KAAK;CACf,CAAA;AAEY,QAAA,SAAS,GAAG;IACvB,KAAK,CAAC,QAAQ;IACd,4BAA4B,CAAC,QAAQ;IACrC,UAAU,CAAC,QAAQ;IACnB,aAAa,CAAC,QAAQ;IACtB,QAAQ,CAAC,QAAQ;CAClB,CAAA"}
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.checkTransferLocationRecommendation = void 0;
4
+ const setting_base_1 = require("@things-factory/setting-base");
5
+ const warehouse_base_1 = require("@things-factory/warehouse-base");
6
+ exports.checkTransferLocationRecommendation = {
7
+ async checkTransferLocationRecommendation(_, { originPalletId, toLocationName, qty }, context) {
8
+ var _a, _b, _c, _d, _e, _f;
9
+ const { domain, tx } = context.state;
10
+ const levelSetting = await tx
11
+ .getRepository(setting_base_1.Setting)
12
+ .findOne({ where: { domain, name: 'location-recommendation-level' } });
13
+ const level = (_a = levelSetting === null || levelSetting === void 0 ? void 0 : levelSetting.value) === null || _a === void 0 ? void 0 : _a.toUpperCase().trim();
14
+ if (!level)
15
+ return { warningMessage: null };
16
+ const inventory = await tx
17
+ .getRepository(warehouse_base_1.Inventory)
18
+ .createQueryBuilder('inv')
19
+ .innerJoinAndSelect('inv.product', 'product')
20
+ .leftJoinAndSelect('inv.productDetail', 'productDetail')
21
+ .where('inv.domain_id = :domainId', { domainId: domain.id })
22
+ .andWhere('inv.pallet_id = :palletId', { palletId: originPalletId })
23
+ .getOne();
24
+ if (!inventory)
25
+ return { warningMessage: null }; // Return silently. Actual transfer location process will only prompt error
26
+ const toLocation = await tx.getRepository(warehouse_base_1.Location).findOne({ where: { domain, name: toLocationName } });
27
+ if (!toLocation)
28
+ return { warningMessage: null }; // Return silently. Actual transfer location process will only prompt error
29
+ const inventoriesAtLocation = await tx
30
+ .getRepository(warehouse_base_1.Inventory)
31
+ .createQueryBuilder('inv')
32
+ .innerJoinAndSelect('inv.product', 'product')
33
+ .leftJoinAndSelect('inv.productDetail', 'productDetail')
34
+ .where('inv.domain_id = :domainId', { domainId: domain.id })
35
+ .andWhere('inv.location_id = :locationId', { locationId: toLocation.id })
36
+ .andWhere('inv.status = :status', { status: warehouse_base_1.INVENTORY_STATUS.STORED })
37
+ .getMany();
38
+ switch (level) {
39
+ case 'LEVEL 1': {
40
+ if (((_b = toLocation.status) === null || _b === void 0 ? void 0 : _b.toUpperCase()) !== warehouse_base_1.LOCATION_STATUS.EMPTY) {
41
+ return { warningMessage: 'reminder_location_assigned_to_another_sku' };
42
+ }
43
+ break;
44
+ }
45
+ case 'LEVEL 2': {
46
+ const fromSku = (_c = inventory.product) === null || _c === void 0 ? void 0 : _c.sku;
47
+ const hasDifferentSku = inventoriesAtLocation.some(inv => { var _a; return ((_a = inv.product) === null || _a === void 0 ? void 0 : _a.sku) !== fromSku; });
48
+ if (hasDifferentSku) {
49
+ return { warningMessage: 'reminder_location_assigned_to_another_sku' };
50
+ }
51
+ break;
52
+ }
53
+ case 'LEVEL 3': {
54
+ const fromSku = (_d = inventory.product) === null || _d === void 0 ? void 0 : _d.sku;
55
+ const hasDifferentSku = inventoriesAtLocation.some(inv => { var _a; return ((_a = inv.product) === null || _a === void 0 ? void 0 : _a.sku) !== fromSku; });
56
+ const stackingSetting = await tx.getRepository(setting_base_1.Setting).findOne({ where: { domain, name: 'stacking-option-limit' } });
57
+ let maxLimit = 1;
58
+ if (stackingSetting === null || stackingSetting === void 0 ? void 0 : stackingSetting.value) {
59
+ try {
60
+ const parsed = JSON.parse(stackingSetting.value);
61
+ maxLimit = Number(parsed.Max) || 1;
62
+ }
63
+ catch (_g) {
64
+ // ignore malformed setting
65
+ }
66
+ }
67
+ const stackingLimit = ((_e = inventory.product) === null || _e === void 0 ? void 0 : _e.allowStackingOption) ? maxLimit : null;
68
+ const hitStackingLimit = stackingLimit != null && inventoriesAtLocation.length >= stackingLimit;
69
+ if (hasDifferentSku || hitStackingLimit) {
70
+ return { warningMessage: 'reminder_location_occupied_by_different_sku_or_stacking_capacity' };
71
+ }
72
+ break;
73
+ }
74
+ case 'LEVEL 4': {
75
+ if (!toLocation.volume)
76
+ return { warningMessage: 'location_missing_volume' };
77
+ // Check selected inventory's product
78
+ const incomingPd = inventory.productDetail;
79
+ const incomingInvalid = !(incomingPd === null || incomingPd === void 0 ? void 0 : incomingPd.lengthUnit) ||
80
+ ((incomingPd === null || incomingPd === void 0 ? void 0 : incomingPd.volume) == null && (!(incomingPd === null || incomingPd === void 0 ? void 0 : incomingPd.width) || !(incomingPd === null || incomingPd === void 0 ? void 0 : incomingPd.depth) || !(incomingPd === null || incomingPd === void 0 ? void 0 : incomingPd.height)));
81
+ if (incomingInvalid)
82
+ return { warningMessage: 'incoming_inventory_missing_product_dimensions' };
83
+ // Check products stored in the targeted destination location
84
+ const existingInvalid = inventoriesAtLocation.some(inv => {
85
+ const pd = inv.productDetail;
86
+ return !(pd === null || pd === void 0 ? void 0 : pd.lengthUnit) || ((pd === null || pd === void 0 ? void 0 : pd.volume) == null && (!(pd === null || pd === void 0 ? void 0 : pd.width) || !(pd === null || pd === void 0 ? void 0 : pd.depth) || !(pd === null || pd === void 0 ? void 0 : pd.height)));
87
+ });
88
+ if (existingInvalid)
89
+ return { warningMessage: 'existing_inventory_missing_product_dimensions' };
90
+ const locationVolume = toLocation.volume;
91
+ const existingVolume = inventoriesAtLocation.reduce((sum, inv) => {
92
+ var _a, _b;
93
+ const pd = inv.productDetail;
94
+ const detail = (0, warehouse_base_1.buildProductDetailLabel)(pd);
95
+ const label = `SKU: ${(_a = inv.product) === null || _a === void 0 ? void 0 : _a.sku} ${detail}`.trim();
96
+ return sum + (0, warehouse_base_1.calcVolumeInM3)(pd, label) * ((_b = inv.qty) !== null && _b !== void 0 ? _b : 0);
97
+ }, 0);
98
+ const incomingDetail = (0, warehouse_base_1.buildProductDetailLabel)(incomingPd);
99
+ const incomingLabel = `SKU: ${(_f = inventory.product) === null || _f === void 0 ? void 0 : _f.sku} ${incomingDetail}`.trim();
100
+ if (existingVolume + (0, warehouse_base_1.calcVolumeInM3)(incomingPd, incomingLabel) * qty > locationVolume)
101
+ return { warningMessage: 'volume_over_location_capacity' };
102
+ break;
103
+ }
104
+ }
105
+ return { warningMessage: null };
106
+ }
107
+ };
108
+ //# sourceMappingURL=check-transfer-location-recommendation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-transfer-location-recommendation.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/transfer-location/check-transfer-location-recommendation.ts"],"names":[],"mappings":";;;AAEA,+DAAsD;AAEtD,mEAAgJ;AAEnI,QAAA,mCAAmC,GAAG;IACjD,KAAK,CAAC,mCAAmC,CACvC,CAAM,EACN,EAAE,cAAc,EAAE,cAAc,EAAE,GAAG,EAAmE,EACxG,OAAY;;QAEZ,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAA0C,OAAO,CAAC,KAAK,CAAA;QAE3E,MAAM,YAAY,GAAY,MAAM,EAAE;aACnC,aAAa,CAAC,sBAAO,CAAC;aACtB,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,+BAA+B,EAAE,EAAE,CAAC,CAAA;QAExE,MAAM,KAAK,GAAG,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,KAAK,0CAAE,WAAW,GAAG,IAAI,EAAE,CAAA;QACvD,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,CAAA;QAE3C,MAAM,SAAS,GAAc,MAAM,EAAE;aAClC,aAAa,CAAC,0BAAS,CAAC;aACxB,kBAAkB,CAAC,KAAK,CAAC;aACzB,kBAAkB,CAAC,aAAa,EAAE,SAAS,CAAC;aAC5C,iBAAiB,CAAC,mBAAmB,EAAE,eAAe,CAAC;aACvD,KAAK,CAAC,2BAA2B,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;aAC3D,QAAQ,CAAC,2BAA2B,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC;aACnE,MAAM,EAAE,CAAA;QACX,IAAI,CAAC,SAAS;YAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,CAAA,CAAC,2EAA2E;QAE3H,MAAM,UAAU,GAAa,MAAM,EAAE,CAAC,aAAa,CAAC,yBAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,CAAC,CAAA;QAClH,IAAI,CAAC,UAAU;YAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,CAAA,CAAC,2EAA2E;QAE5H,MAAM,qBAAqB,GAAgB,MAAM,EAAE;aAChD,aAAa,CAAC,0BAAS,CAAC;aACxB,kBAAkB,CAAC,KAAK,CAAC;aACzB,kBAAkB,CAAC,aAAa,EAAE,SAAS,CAAC;aAC5C,iBAAiB,CAAC,mBAAmB,EAAE,eAAe,CAAC;aACvD,KAAK,CAAC,2BAA2B,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;aAC3D,QAAQ,CAAC,+BAA+B,EAAE,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC;aACxE,QAAQ,CAAC,sBAAsB,EAAE,EAAE,MAAM,EAAE,iCAAgB,CAAC,MAAM,EAAE,CAAC;aACrE,OAAO,EAAE,CAAA;QAEZ,QAAQ,KAAK,EAAE;YACb,KAAK,SAAS,CAAC,CAAC;gBACd,IAAI,CAAA,MAAA,UAAU,CAAC,MAAM,0CAAE,WAAW,EAAE,MAAK,gCAAe,CAAC,KAAK,EAAE;oBAC9D,OAAO,EAAE,cAAc,EAAE,2CAA2C,EAAE,CAAA;iBACvE;gBACD,MAAK;aACN;YAED,KAAK,SAAS,CAAC,CAAC;gBACd,MAAM,OAAO,GAAG,MAAA,SAAS,CAAC,OAAO,0CAAE,GAAG,CAAA;gBACtC,MAAM,eAAe,GAAG,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,WAAC,OAAA,CAAA,MAAA,GAAG,CAAC,OAAO,0CAAE,GAAG,MAAK,OAAO,CAAA,EAAA,CAAC,CAAA;gBACvF,IAAI,eAAe,EAAE;oBACnB,OAAO,EAAE,cAAc,EAAE,2CAA2C,EAAE,CAAA;iBACvE;gBACD,MAAK;aACN;YAED,KAAK,SAAS,CAAC,CAAC;gBACd,MAAM,OAAO,GAAG,MAAA,SAAS,CAAC,OAAO,0CAAE,GAAG,CAAA;gBACtC,MAAM,eAAe,GAAG,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,WAAC,OAAA,CAAA,MAAA,GAAG,CAAC,OAAO,0CAAE,GAAG,MAAK,OAAO,CAAA,EAAA,CAAC,CAAA;gBAEvF,MAAM,eAAe,GAAY,MAAM,EAAE,CAAC,aAAa,CAAC,sBAAO,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,uBAAuB,EAAE,EAAE,CAAC,CAAA;gBAE9H,IAAI,QAAQ,GAAG,CAAC,CAAA;gBAChB,IAAI,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,KAAK,EAAE;oBAC1B,IAAI;wBACF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;wBAChD,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;qBACnC;oBAAC,WAAM;wBACN,2BAA2B;qBAC5B;iBACF;gBAED,MAAM,aAAa,GAAG,CAAA,MAAA,SAAS,CAAC,OAAO,0CAAE,mBAAmB,EAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAA;gBAC9E,MAAM,gBAAgB,GAAG,aAAa,IAAI,IAAI,IAAI,qBAAqB,CAAC,MAAM,IAAI,aAAa,CAAA;gBAE/F,IAAI,eAAe,IAAI,gBAAgB,EAAE;oBACvC,OAAO,EAAE,cAAc,EAAE,kEAAkE,EAAE,CAAA;iBAC9F;gBACD,MAAK;aACN;YAED,KAAK,SAAS,CAAC,CAAC;gBACd,IAAI,CAAC,UAAU,CAAC,MAAM;oBAAE,OAAO,EAAE,cAAc,EAAE,yBAAyB,EAAE,CAAA;gBAE5E,qCAAqC;gBACrC,MAAM,UAAU,GAAG,SAAS,CAAC,aAAa,CAAA;gBAC1C,MAAM,eAAe,GACnB,CAAC,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,UAAU,CAAA;oBACvB,CAAC,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,MAAM,KAAI,IAAI,IAAI,CAAC,CAAC,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,KAAK,CAAA,IAAI,CAAC,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,KAAK,CAAA,IAAI,CAAC,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,MAAM,CAAA,CAAC,CAAC,CAAA;gBACnG,IAAI,eAAe;oBAAE,OAAO,EAAE,cAAc,EAAE,+CAA+C,EAAE,CAAA;gBAE/F,6DAA6D;gBAC7D,MAAM,eAAe,GAAG,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;oBACvD,MAAM,EAAE,GAAG,GAAG,CAAC,aAAa,CAAA;oBAC5B,OAAO,CAAC,CAAA,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,UAAU,CAAA,IAAI,CAAC,CAAA,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,MAAM,KAAI,IAAI,IAAI,CAAC,CAAC,CAAA,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,KAAK,CAAA,IAAI,CAAC,CAAA,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,KAAK,CAAA,IAAI,CAAC,CAAA,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,MAAM,CAAA,CAAC,CAAC,CAAA;gBAC7F,CAAC,CAAC,CAAA;gBACF,IAAI,eAAe;oBAAE,OAAO,EAAE,cAAc,EAAE,+CAA+C,EAAE,CAAA;gBAG/F,MAAM,cAAc,GAAG,UAAU,CAAC,MAAM,CAAA;gBACxC,MAAM,cAAc,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;;oBAC/D,MAAM,EAAE,GAAG,GAAG,CAAC,aAAa,CAAA;oBAC5B,MAAM,MAAM,GAAG,IAAA,wCAAuB,EAAC,EAAE,CAAC,CAAA;oBAC1C,MAAM,KAAK,GAAG,QAAQ,MAAA,GAAG,CAAC,OAAO,0CAAE,GAAG,IAAI,MAAM,EAAE,CAAC,IAAI,EAAE,CAAA;oBACzD,OAAO,GAAG,GAAG,IAAA,+BAAc,EAAC,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,MAAA,GAAG,CAAC,GAAG,mCAAI,CAAC,CAAC,CAAA;gBACzD,CAAC,EAAE,CAAC,CAAC,CAAA;gBAEL,MAAM,cAAc,GAAG,IAAA,wCAAuB,EAAC,UAAU,CAAC,CAAA;gBAC1D,MAAM,aAAa,GAAG,QAAQ,MAAA,SAAS,CAAC,OAAO,0CAAE,GAAG,IAAI,cAAc,EAAE,CAAC,IAAI,EAAE,CAAA;gBAC/E,IAAI,cAAc,GAAG,IAAA,+BAAc,EAAC,UAAU,EAAE,aAAa,CAAC,GAAG,GAAG,GAAG,cAAc;oBAAE,OAAO,EAAE,cAAc,EAAE,+BAA+B,EAAE,CAAA;gBACjJ,MAAK;aACN;SACF;QAED,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,CAAA;IACjC,CAAC;CACF,CAAA"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Mutation = exports.Query = void 0;
4
+ const check_transfer_location_recommendation_1 = require("./check-transfer-location-recommendation");
5
+ exports.Query = Object.assign({}, check_transfer_location_recommendation_1.checkTransferLocationRecommendation);
6
+ exports.Mutation = {};
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/transfer-location/index.ts"],"names":[],"mappings":";;;AAAA,qGAA8F;AAEjF,QAAA,KAAK,qBACb,4EAAmC,EACvC;AAEY,QAAA,QAAQ,GAAG,EAAE,CAAA"}
@@ -33,6 +33,7 @@ const OpaMenu = __importStar(require("./opa-menu"));
33
33
  const Reports = __importStar(require("./reports"));
34
34
  const InventoryComparison = __importStar(require("./inventory-comparison"));
35
35
  const ShippingProvider = __importStar(require("./shipping-provider"));
36
+ const TransferLocation = __importStar(require("./transfer-location"));
36
37
  const WarehouseInventory = __importStar(require("./warehouse-inventory-adjustment"));
37
38
  const RouteLabel = __importStar(require("./route-label"));
38
39
  const ZoneWorksheet = __importStar(require("./zone-worksheet"));
@@ -47,6 +48,7 @@ exports.queries = [
47
48
  InventoryComparison.Query,
48
49
  ShippingProvider.Query,
49
50
  Other.Query,
51
+ TransferLocation.Query,
50
52
  RouteLabel.Query,
51
53
  ZoneWorksheet.Query,
52
54
  Outbound.Query
@@ -67,6 +69,7 @@ exports.types = [
67
69
  ...InventoryComparison.Types,
68
70
  ...ShippingProvider.Types,
69
71
  ...Other.Types,
72
+ ...TransferLocation.Types,
70
73
  ...RouteLabel.Types,
71
74
  ...ZoneWorksheet.Types,
72
75
  ...Outbound.Types
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/graphql/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8DAA+C;AAC/C,4DAA6C;AAC7C,8DAA+C;AAC/C,uDAAwC;AACxC,+CAAgC;AAChC,oDAAqC;AACrC,mDAAoC;AACpC,4EAA6D;AAC7D,sEAAuD;AACvD,qFAAsE;AACtE,0DAA2C;AAC3C,gEAAiD;AACjD,qDAAsC;AAEzB,QAAA,OAAO,GAAG;IACrB,YAAY,CAAC,KAAK;IAClB,WAAW,CAAC,KAAK;IACjB,YAAY,CAAC,KAAK;IAClB,SAAS,CAAC,KAAK;IACf,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,KAAK;IACb,mBAAmB,CAAC,KAAK;IACzB,gBAAgB,CAAC,KAAK;IACtB,KAAK,CAAC,KAAK;IACX,UAAU,CAAC,KAAK;IAChB,aAAa,CAAC,KAAK;IACnB,QAAQ,CAAC,KAAK;CACf,CAAA;AAEY,QAAA,SAAS,GAAG;IACvB,KAAK,CAAC,QAAQ;IACd,kBAAkB,CAAC,QAAQ;IAC3B,UAAU,CAAC,QAAQ;IACnB,aAAa,CAAC,QAAQ;IACtB,QAAQ,CAAC,QAAQ;CAClB,CAAA;AAEY,QAAA,KAAK,GAAG;IACnB,GAAG,YAAY,CAAC,KAAK;IACrB,GAAG,WAAW,CAAC,KAAK;IACpB,GAAG,SAAS,CAAC,KAAK;IAClB,GAAG,OAAO,CAAC,KAAK;IAChB,GAAG,OAAO,CAAC,KAAK;IAChB,GAAG,mBAAmB,CAAC,KAAK;IAC5B,GAAG,gBAAgB,CAAC,KAAK;IACzB,GAAG,KAAK,CAAC,KAAK;IACd,GAAG,UAAU,CAAC,KAAK;IACnB,GAAG,aAAa,CAAC,KAAK;IACtB,GAAG,QAAQ,CAAC,KAAK;CAClB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/graphql/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8DAA+C;AAC/C,4DAA6C;AAC7C,8DAA+C;AAC/C,uDAAwC;AACxC,+CAAgC;AAChC,oDAAqC;AACrC,mDAAoC;AACpC,4EAA6D;AAC7D,sEAAuD;AACvD,sEAAuD;AACvD,qFAAsE;AACtE,0DAA2C;AAC3C,gEAAiD;AACjD,qDAAsC;AAEzB,QAAA,OAAO,GAAG;IACrB,YAAY,CAAC,KAAK;IAClB,WAAW,CAAC,KAAK;IACjB,YAAY,CAAC,KAAK;IAClB,SAAS,CAAC,KAAK;IACf,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,KAAK;IACb,mBAAmB,CAAC,KAAK;IACzB,gBAAgB,CAAC,KAAK;IACtB,KAAK,CAAC,KAAK;IACX,gBAAgB,CAAC,KAAK;IACtB,UAAU,CAAC,KAAK;IAChB,aAAa,CAAC,KAAK;IACnB,QAAQ,CAAC,KAAK;CACf,CAAA;AAEY,QAAA,SAAS,GAAG;IACvB,KAAK,CAAC,QAAQ;IACd,kBAAkB,CAAC,QAAQ;IAC3B,UAAU,CAAC,QAAQ;IACnB,aAAa,CAAC,QAAQ;IACtB,QAAQ,CAAC,QAAQ;CAClB,CAAA;AAEY,QAAA,KAAK,GAAG;IACnB,GAAG,YAAY,CAAC,KAAK;IACrB,GAAG,WAAW,CAAC,KAAK;IACpB,GAAG,SAAS,CAAC,KAAK;IAClB,GAAG,OAAO,CAAC,KAAK;IAChB,GAAG,OAAO,CAAC,KAAK;IAChB,GAAG,mBAAmB,CAAC,KAAK;IAC5B,GAAG,gBAAgB,CAAC,KAAK;IACzB,GAAG,KAAK,CAAC,KAAK;IACd,GAAG,gBAAgB,CAAC,KAAK;IACzB,GAAG,UAAU,CAAC,KAAK;IACnB,GAAG,aAAa,CAAC,KAAK;IACtB,GAAG,QAAQ,CAAC,KAAK;CAClB,CAAA"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Types = exports.Mutation = exports.Query = void 0;
4
+ const transfer_location_recommendation_1 = require("./transfer-location-recommendation");
5
+ exports.Query = `
6
+ checkTransferLocationRecommendation(
7
+ originPalletId: String!
8
+ toLocationName: String!
9
+ qty: Float!
10
+ ): TransferLocationRecommendationResult @privilege(category: "inventory", privilege: "query") @transaction
11
+ `;
12
+ exports.Mutation = ``;
13
+ exports.Types = [transfer_location_recommendation_1.TransferLocationRecommendationResult];
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/graphql/types/transfer-location/index.ts"],"names":[],"mappings":";;;AAAA,yFAAyF;AAE5E,QAAA,KAAK,GAAG;;;;;;CAMpB,CAAA;AAEY,QAAA,QAAQ,GAAG,EAAE,CAAA;AAEb,QAAA,KAAK,GAAG,CAAC,uEAAoC,CAAC,CAAA"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.TransferLocationRecommendationResult = void 0;
7
+ const graphql_tag_1 = __importDefault(require("graphql-tag"));
8
+ exports.TransferLocationRecommendationResult = (0, graphql_tag_1.default) `
9
+ type TransferLocationRecommendationResult {
10
+ warningMessage: String
11
+ }
12
+ `;
13
+ //# sourceMappingURL=transfer-location-recommendation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transfer-location-recommendation.js","sourceRoot":"","sources":["../../../../server/graphql/types/transfer-location/transfer-location-recommendation.ts"],"names":[],"mappings":";;;;;;AAAA,8DAA6B;AAEhB,QAAA,oCAAoC,GAAG,IAAA,qBAAG,EAAA;;;;CAItD,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@things-factory/operato-wms",
3
- "version": "4.3.824",
3
+ "version": "4.3.825",
4
4
  "main": "dist-server/index.js",
5
5
  "browser": "client/index.js",
6
6
  "things-factory": true,
@@ -91,7 +91,7 @@
91
91
  "@things-factory/print-ui": "^4.3.815",
92
92
  "@things-factory/product-base": "^4.3.824",
93
93
  "@things-factory/resource-ui": "^4.3.823",
94
- "@things-factory/sales-ui": "^4.3.824",
94
+ "@things-factory/sales-ui": "^4.3.825",
95
95
  "@things-factory/scene-data-transform": "^4.3.815",
96
96
  "@things-factory/scene-excel": "^4.3.815",
97
97
  "@things-factory/scene-firebase": "^4.3.815",
@@ -107,8 +107,8 @@
107
107
  "@things-factory/system-ui": "^4.3.815",
108
108
  "@things-factory/transport-base": "^4.3.819",
109
109
  "@things-factory/tutorial-ui": "^4.3.815",
110
- "@things-factory/warehouse-base": "^4.3.824",
111
- "@things-factory/worksheet-base": "^4.3.824"
110
+ "@things-factory/warehouse-base": "^4.3.825",
111
+ "@things-factory/worksheet-base": "^4.3.825"
112
112
  },
113
113
  "devDependencies": {
114
114
  "@things-factory/builder": "^4.3.815",
@@ -117,5 +117,5 @@
117
117
  "cypress-localstorage-commands": "^1.6.1",
118
118
  "eslint-plugin-cypress": "^2.12.1"
119
119
  },
120
- "gitHead": "7c6aa626b0ce0ce8ab988710b0e8fc2ed0bba5c2"
120
+ "gitHead": "43cdee469c00d0a82d5ebbe0dc5a2be173bbb370"
121
121
  }
@@ -7,6 +7,7 @@ import * as OpaMenu from './opa-menu'
7
7
  import * as Reports from './reports'
8
8
  import * as InventoryComparison from './inventory-comparison'
9
9
  import * as ShippingProviders from './shipping-provider'
10
+ import * as TransferLocation from './transfer-location'
10
11
  import * as WarehouseInventoryAdjustment from './warehouse-inventory-adjustment'
11
12
  import * as RouteLabel from './route-label'
12
13
  import * as ZoneWorksheet from './zone-worksheet'
@@ -22,6 +23,7 @@ export const queries = [
22
23
  Other.Query,
23
24
  Reports.Query,
24
25
  ShippingProviders.Query,
26
+ TransferLocation.Query,
25
27
  RouteLabel.Query,
26
28
  ZoneWorksheet.Query,
27
29
  Outbound.Query