@things-factory/operato-wms 4.3.19 → 4.4.0-alpha.3

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 (103) hide show
  1. package/client/pages/constants/index.js +0 -1
  2. package/client/pages/constants/setting.js +0 -1
  3. package/client/pages/inbound/pallet-label-popup.js +0 -6
  4. package/client/pages/inbound/putaway-product.js +1 -3
  5. package/client/pages/inbound/unload-product.js +11 -21
  6. package/client/pages/inventory/inventory-adjustment-approval.js +9 -24
  7. package/client/pages/inventory/inventory-adjustment.js +16 -121
  8. package/client/pages/master/product/product-list.js +1 -1
  9. package/client/pages/order/arrival-notice/arrival-notice-detail.js +2 -0
  10. package/client/pages/order/arrival-notice/receive-arrival-notice.js +2 -0
  11. package/client/pages/order/goods-received-note/customer-received-note.js +0 -3
  12. package/client/pages/order/goods-received-note/received-note-detail.js +0 -3
  13. package/client/pages/order/release-order/b2c/b2c-order-requests.js +30 -21
  14. package/client/pages/order/release-order/bulk-print-packing-list.js +0 -4
  15. package/client/pages/order/release-order/receive-release-order-request.js +2 -0
  16. package/client/pages/order/release-order/release-order-detail.js +26 -44
  17. package/client/pages/order/return-order/receive-return-order-requests.js +2 -0
  18. package/client/pages/order/transfer-order/receive-transfer-order-request.js +1 -1
  19. package/client/pages/order/transport-order/print-delivery-note.js +1 -0
  20. package/client/pages/order/transport-order/view-delivery-note.js +1 -1
  21. package/client/pages/order/vas-order/receive-vas-order.js +2 -0
  22. package/client/pages/outbound/inventory-assign-popup.js +2 -7
  23. package/client/pages/outbound/inventory-auto-assign-popup.js +1 -2
  24. package/client/pages/outbound/loading-product.js +11 -49
  25. package/client/pages/outbound/packing-product.js +6 -42
  26. package/client/pages/outbound/packing-worksheet-list.js +0 -15
  27. package/client/pages/outbound/picking-product.js +13 -153
  28. package/client/pages/outbound/single-outbound-worksheet.js +22 -10
  29. package/client/pages/outbound/sorting-product.js +15 -78
  30. package/client/pages/outbound/worksheet-batch-picking.js +2 -9
  31. package/client/pages/outbound/worksheet-packing.js +2 -7
  32. package/client/pages/outbound/worksheet-picking.js +2 -9
  33. package/client/pages/report/inventory-summary-report.js +0 -8
  34. package/client/pages/report/outbound-order-details-report.js +0 -18
  35. package/client/pages/vas/abstract-execute-vas.js +7 -12
  36. package/client/pages/vas/print-product-label.js +6 -15
  37. package/client/pages/vas/reverse-kitting/execute-reverse-kitting.js +1 -3
  38. package/client/pages/vas/reverse-kitting/popup-reverse-kitting-template.js +1 -3
  39. package/client/route.js +0 -12
  40. package/dist-server/entities/index.js +5 -0
  41. package/dist-server/entities/index.js.map +1 -0
  42. package/dist-server/graphql/index.js +5 -1
  43. package/dist-server/graphql/index.js.map +1 -1
  44. package/dist-server/graphql/resolvers/board-setting/board-settings.js +1 -2
  45. package/dist-server/graphql/resolvers/board-setting/board-settings.js.map +1 -1
  46. package/dist-server/graphql/resolvers/dashboard/inventory-expiry-monitor.js +6 -5
  47. package/dist-server/graphql/resolvers/dashboard/inventory-expiry-monitor.js.map +1 -1
  48. package/dist-server/graphql/resolvers/dashboard/outbound-order-by-status.js +22 -53
  49. package/dist-server/graphql/resolvers/dashboard/outbound-order-by-status.js.map +1 -1
  50. package/dist-server/graphql/resolvers/index.js +7 -4
  51. package/dist-server/graphql/resolvers/index.js.map +1 -1
  52. package/dist-server/graphql/resolvers/reports/outbound-order-details-report.js +1 -3
  53. package/dist-server/graphql/resolvers/reports/outbound-order-details-report.js.map +1 -1
  54. package/dist-server/graphql/types/dashboard/inventory-expiry-counter.js +3 -2
  55. package/dist-server/graphql/types/dashboard/inventory-expiry-counter.js.map +1 -1
  56. package/dist-server/graphql/types/index.js +8 -5
  57. package/dist-server/graphql/types/index.js.map +1 -1
  58. package/dist-server/graphql/types/reports/outbound-order-details-report.js +0 -2
  59. package/dist-server/graphql/types/reports/outbound-order-details-report.js.map +1 -1
  60. package/dist-server/index.js +5 -1
  61. package/dist-server/index.js.map +1 -1
  62. package/dist-server/opa-app-setting-constants.js +1 -2
  63. package/dist-server/opa-app-setting-constants.js.map +1 -1
  64. package/dist-server/utils/index.js +5 -1
  65. package/dist-server/utils/index.js.map +1 -1
  66. package/helps/release-note.ko.md +9 -11
  67. package/helps/release-note.md +9 -11
  68. package/helps/release-note.ms.md +9 -11
  69. package/helps/release-note.zh.md +9 -11
  70. package/package.json +51 -51
  71. package/server/entities/index.ts +3 -0
  72. package/server/graphql/resolvers/board-setting/board-settings.ts +2 -4
  73. package/server/graphql/resolvers/dashboard/inventory-expiry-monitor.ts +6 -5
  74. package/server/graphql/resolvers/dashboard/outbound-order-by-status.ts +22 -53
  75. package/server/graphql/resolvers/index.ts +2 -3
  76. package/server/graphql/resolvers/reports/outbound-order-details-report.ts +2 -6
  77. package/server/graphql/types/dashboard/inventory-expiry-counter.ts +3 -2
  78. package/server/graphql/types/index.ts +4 -4
  79. package/server/graphql/types/reports/outbound-order-details-report.ts +0 -2
  80. package/server/index.ts +1 -1
  81. package/server/opa-app-setting-constants.ts +0 -1
  82. package/things-factory.config.js +0 -13
  83. package/translations/en.json +8 -50
  84. package/translations/ko.json +1 -37
  85. package/translations/ms.json +1 -37
  86. package/translations/zh.json +1 -37
  87. package/client/constants/index.js +0 -1
  88. package/client/constants/order.js +0 -14
  89. package/client/pages/constants/tote.js +0 -14
  90. package/client/pages/master/tote-list.js +0 -740
  91. package/client/pages/order/draft-release-good/draft-release-good-detail.js +0 -1163
  92. package/client/pages/order/draft-release-good/draft-release-good-list.js +0 -546
  93. package/client/pages/outbound/order-remark-popup.js +0 -112
  94. package/client/pages/outbound/tote-popup.js +0 -461
  95. package/dist-server/graphql/resolvers/warehouse-inventory-adjustment/index.js +0 -6
  96. package/dist-server/graphql/resolvers/warehouse-inventory-adjustment/index.js.map +0 -1
  97. package/dist-server/graphql/resolvers/warehouse-inventory-adjustment/warehouse-intentory-adjustment.js +0 -58
  98. package/dist-server/graphql/resolvers/warehouse-inventory-adjustment/warehouse-intentory-adjustment.js.map +0 -1
  99. package/dist-server/graphql/types/warehouse-inventory-adjustment/index.js +0 -9
  100. package/dist-server/graphql/types/warehouse-inventory-adjustment/index.js.map +0 -1
  101. package/server/graphql/resolvers/warehouse-inventory-adjustment/index.ts +0 -5
  102. package/server/graphql/resolvers/warehouse-inventory-adjustment/warehouse-intentory-adjustment.ts +0 -68
  103. package/server/graphql/types/warehouse-inventory-adjustment/index.ts +0 -5
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[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);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -29,7 +33,6 @@ const OpaMenu = __importStar(require("./opa-menu"));
29
33
  const Reports = __importStar(require("./reports"));
30
34
  const InventoryComparison = __importStar(require("./inventory-comparison"));
31
35
  const ShippingProvider = __importStar(require("./shipping-provider"));
32
- const WarehouseInventory = __importStar(require("./warehouse-inventory-adjustment"));
33
36
  exports.queries = [
34
37
  BoardSetting.Query,
35
38
  CustomElccl.Query,
@@ -38,9 +41,9 @@ exports.queries = [
38
41
  OpaMenu.Query,
39
42
  Reports.Query,
40
43
  InventoryComparison.Query,
41
- ShippingProvider.Query,
44
+ ShippingProvider.Query
42
45
  ];
43
- exports.mutations = [Extra.Mutation, WarehouseInventory.Mutation];
46
+ exports.mutations = [Extra.Mutation];
44
47
  exports.types = [
45
48
  ...BoardSetting.Types,
46
49
  ...CustomElccl.Types,
@@ -48,6 +51,6 @@ exports.types = [
48
51
  ...OpaMenu.Types,
49
52
  ...Reports.Types,
50
53
  ...InventoryComparison.Types,
51
- ...ShippingProvider.Types,
54
+ ...ShippingProvider.Types
52
55
  ];
53
56
  //# sourceMappingURL=index.js.map
@@ -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;AACzD,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;CACvB,CAAA;AAEY,QAAA,SAAS,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAA;AAExD,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;CAC1B,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;AAE1C,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;CACvB,CAAA;AAEY,QAAA,SAAS,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;AAE5B,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;CAC1B,CAAA"}
@@ -49,8 +49,6 @@ exports.OutboundOrderDetailsReport = (0, graphql_tag_1.default) `
49
49
  pickedBy: String
50
50
  packedAt: String
51
51
  packedBy: String
52
- checkedRemarkBy: String
53
- checkedRemarkAt: String
54
52
  loadedAt: String
55
53
  loadedBy: String
56
54
  shippedAt: String
@@ -1 +1 @@
1
- {"version":3,"file":"outbound-order-details-report.js","sourceRoot":"","sources":["../../../../server/graphql/types/reports/outbound-order-details-report.ts"],"names":[],"mappings":";;;;;;AAAA,8DAA6B;AAEhB,QAAA,0BAA0B,GAAG,IAAA,qBAAG,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkD5C,CAAA"}
1
+ {"version":3,"file":"outbound-order-details-report.js","sourceRoot":"","sources":["../../../../server/graphql/types/reports/outbound-order-details-report.ts"],"names":[],"mappings":";;;;;;AAAA,8DAA6B;AAEhB,QAAA,0BAA0B,GAAG,IAAA,qBAAG,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgD5C,CAAA"}
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[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);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../server/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4CAAyB;AACzB,+CAA4B;AAE5B,oBAAiB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../server/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAAyB;AACzB,+CAA4B;AAE5B,oBAAiB"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TOTE_LABEL_SETTING_KEY = exports.ROUTE_LABEL_SETTING_KEY = exports.INTENALIZED_AWB_SETTING_KEY = exports.PRODUCT_LABEL_SETTING_KEY = exports.HOME_DASHBOARD_PREFIX = exports.REUSABLE_PALLET_LABEL_SETTING_KEY = exports.CARTON_LABEL_SETTING_KEY = exports.PALLET_LABEL_SETTING_KEY = exports.LOCATION_LABEL_SETTING_KEY = void 0;
3
+ exports.ROUTE_LABEL_SETTING_KEY = exports.INTENALIZED_AWB_SETTING_KEY = exports.PRODUCT_LABEL_SETTING_KEY = exports.HOME_DASHBOARD_PREFIX = exports.REUSABLE_PALLET_LABEL_SETTING_KEY = exports.CARTON_LABEL_SETTING_KEY = exports.PALLET_LABEL_SETTING_KEY = exports.LOCATION_LABEL_SETTING_KEY = void 0;
4
4
  exports.LOCATION_LABEL_SETTING_KEY = 'location-label';
5
5
  exports.PALLET_LABEL_SETTING_KEY = 'pallet-label';
6
6
  exports.CARTON_LABEL_SETTING_KEY = 'carton-label';
@@ -9,5 +9,4 @@ exports.HOME_DASHBOARD_PREFIX = 'dashboard';
9
9
  exports.PRODUCT_LABEL_SETTING_KEY = 'product-label';
10
10
  exports.INTENALIZED_AWB_SETTING_KEY = 'internalized-awb-label';
11
11
  exports.ROUTE_LABEL_SETTING_KEY = 'route-label';
12
- exports.TOTE_LABEL_SETTING_KEY = 'tote-label';
13
12
  //# sourceMappingURL=opa-app-setting-constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"opa-app-setting-constants.js","sourceRoot":"","sources":["../server/opa-app-setting-constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,0BAA0B,GAAG,gBAAgB,CAAA;AAC7C,QAAA,wBAAwB,GAAG,cAAc,CAAA;AACzC,QAAA,wBAAwB,GAAG,cAAc,CAAA;AACzC,QAAA,iCAAiC,GAAG,uBAAuB,CAAA;AAC3D,QAAA,qBAAqB,GAAG,WAAW,CAAA;AACnC,QAAA,yBAAyB,GAAG,eAAe,CAAA;AAC3C,QAAA,2BAA2B,GAAG,wBAAwB,CAAA;AACtD,QAAA,uBAAuB,GAAG,aAAa,CAAA;AACvC,QAAA,sBAAsB,GAAG,YAAY,CAAA"}
1
+ {"version":3,"file":"opa-app-setting-constants.js","sourceRoot":"","sources":["../server/opa-app-setting-constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,0BAA0B,GAAG,gBAAgB,CAAA;AAC7C,QAAA,wBAAwB,GAAG,cAAc,CAAA;AACzC,QAAA,wBAAwB,GAAG,cAAc,CAAA;AACzC,QAAA,iCAAiC,GAAG,uBAAuB,CAAA;AAC3D,QAAA,qBAAqB,GAAG,WAAW,CAAA;AACnC,QAAA,yBAAyB,GAAG,eAAe,CAAA;AAC3C,QAAA,2BAA2B,GAAG,wBAAwB,CAAA;AACtD,QAAA,uBAAuB,GAAG,aAAa,CAAA"}
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[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);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sDAAmC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAmC"}
@@ -2,36 +2,34 @@
2
2
 
3
3
  <div align="center">
4
4
 
5
- ## 25 April Update
5
+ ## 5 April Update
6
6
 
7
- #### V4.3.0 Release Note
7
+ #### Get a head start in April 2022 with our new features and fixes in the past month!
8
8
 
9
- #### Greetings to all,
10
-
11
- #### In this holy fasting month, we have strived to bring these early Ramadhan gifts as below:
9
+ #### This time, we bring to you
12
10
 
13
11
  <div>
14
- 1. B2C Order Remark
12
+ 1. Product Level Picking Strategy
15
13
  </div>
16
14
  <div>
17
- 2. Mark Missing Inventory
15
+ 2. Serial Number Scanning for Inbound and Outbound
18
16
  </div>
19
17
  <div>
20
- 3. Outbound Draft Order
18
+ 3. Bin Application in Batch Picking
21
19
  </div>
22
20
  <div>
23
- 4. Loosen Restriction in Inventory Adjustment
21
+ 4. Bulk Assign Pickers
24
22
  </div>
25
23
  <div>
26
24
  5. Bug fixes and API updates!
27
25
  </div>
28
26
  <br>
29
- https://bit.ly/220424_Hatio_Release
27
+ https://bit.ly/220407_Hatio_Release
30
28
  <br>
31
29
 
32
30
  Should you have any inquiry, feel free to contact support@hatio.asia!
33
31
  <br>
34
- With pleasure, we wish you Selamat Hari Raya Aidilfitri in advance. Stay safe and positively negative!
32
+ Stay safe and positively negative!
35
33
 
36
34
  <br>
37
35
 
@@ -2,36 +2,34 @@
2
2
 
3
3
  <div align="center">
4
4
 
5
- ## 25 April Update
5
+ ## 5 April Update
6
6
 
7
- #### V4.3.0 Release Note
7
+ #### Get a head start in April 2022 with our new features and fixes in the past month!
8
8
 
9
- #### Greetings to all,
10
-
11
- #### In this holy fasting month, we have strived to bring these early Ramadhan gifts as below:
9
+ #### This time, we bring to you
12
10
 
13
11
  <div>
14
- 1. B2C Order Remark
12
+ 1. Product Level Picking Strategy
15
13
  </div>
16
14
  <div>
17
- 2. Mark Missing Inventory
15
+ 2. Serial Number Scanning for Inbound and Outbound
18
16
  </div>
19
17
  <div>
20
- 3. Outbound Draft Order
18
+ 3. Bin Application in Batch Picking
21
19
  </div>
22
20
  <div>
23
- 4. Loosen Restriction in Inventory Adjustment
21
+ 4. Bulk Assign Pickers
24
22
  </div>
25
23
  <div>
26
24
  5. Bug fixes and API updates!
27
25
  </div>
28
26
  <br>
29
- https://bit.ly/220424_Hatio_Release
27
+ https://bit.ly/220407_Hatio_Release
30
28
  <br>
31
29
 
32
30
  Should you have any inquiry, feel free to contact support@hatio.asia!
33
31
  <br>
34
- With pleasure, we wish you Selamat Hari Raya Aidilfitri in advance. Stay safe and positively negative!
32
+ Stay safe and positively negative!
35
33
 
36
34
  <br>
37
35
 
@@ -2,36 +2,34 @@
2
2
 
3
3
  <div align="center">
4
4
 
5
- ## 25 April Update
5
+ ## 5 April Update
6
6
 
7
- #### V4.3.0 Release Note
7
+ #### Get a head start in April 2022 with our new features and fixes in the past month!
8
8
 
9
- #### Greetings to all,
10
-
11
- #### In this holy fasting month, we have strived to bring these early Ramadhan gifts as below:
9
+ #### This time, we bring to you
12
10
 
13
11
  <div>
14
- 1. B2C Order Remark
12
+ 1. Product Level Picking Strategy
15
13
  </div>
16
14
  <div>
17
- 2. Mark Missing Inventory
15
+ 2. Serial Number Scanning for Inbound and Outbound
18
16
  </div>
19
17
  <div>
20
- 3. Outbound Draft Order
18
+ 3. Bin Application in Batch Picking
21
19
  </div>
22
20
  <div>
23
- 4. Loosen Restriction in Inventory Adjustment
21
+ 4. Bulk Assign Pickers
24
22
  </div>
25
23
  <div>
26
24
  5. Bug fixes and API updates!
27
25
  </div>
28
26
  <br>
29
- https://bit.ly/220424_Hatio_Release
27
+ https://bit.ly/220407_Hatio_Release
30
28
  <br>
31
29
 
32
30
  Should you have any inquiry, feel free to contact support@hatio.asia!
33
31
  <br>
34
- With pleasure, we wish you Selamat Hari Raya Aidilfitri in advance. Stay safe and positively negative!
32
+ Stay safe and positively negative!
35
33
 
36
34
  <br>
37
35
 
@@ -2,36 +2,34 @@
2
2
 
3
3
  <div align="center">
4
4
 
5
- ## 25 April Update
5
+ ## 5 April Update
6
6
 
7
- #### V4.3.0 Release Note
7
+ #### Get a head start in April 2022 with our new features and fixes in the past month!
8
8
 
9
- #### Greetings to all,
10
-
11
- #### In this holy fasting month, we have strived to bring these early Ramadhan gifts as below:
9
+ #### This time, we bring to you
12
10
 
13
11
  <div>
14
- 1. B2C Order Remark
12
+ 1. Product Level Picking Strategy
15
13
  </div>
16
14
  <div>
17
- 2. Mark Missing Inventory
15
+ 2. Serial Number Scanning for Inbound and Outbound
18
16
  </div>
19
17
  <div>
20
- 3. Outbound Draft Order
18
+ 3. Bin Application in Batch Picking
21
19
  </div>
22
20
  <div>
23
- 4. Loosen Restriction in Inventory Adjustment
21
+ 4. Bulk Assign Pickers
24
22
  </div>
25
23
  <div>
26
24
  5. Bug fixes and API updates!
27
25
  </div>
28
26
  <br>
29
- https://bit.ly/220424_Hatio_Release
27
+ https://bit.ly/220407_Hatio_Release
30
28
  <br>
31
29
 
32
30
  Should you have any inquiry, feel free to contact support@hatio.asia!
33
31
  <br>
34
- With pleasure, we wish you Selamat Hari Raya Aidilfitri in advance. Stay safe and positively negative!
32
+ Stay safe and positively negative!
35
33
 
36
34
  <br>
37
35
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@things-factory/operato-wms",
3
- "version": "4.3.19",
3
+ "version": "4.4.0-alpha.3",
4
4
  "main": "dist-server/index.js",
5
5
  "browser": "client/index.js",
6
6
  "things-factory": true,
@@ -60,63 +60,63 @@
60
60
  "@operato/scene-progressbar": "^0.1.6",
61
61
  "@operato/scene-random": "^0.1.6",
62
62
  "@operato/scene-switch": "^0.1.6",
63
- "@operato/scene-tab": "^0.1.6",
63
+ "@operato/scene-tab": "^0.1.7",
64
64
  "@operato/scene-table": "^0.1.6",
65
65
  "@operato/scene-wheel-sorter": "^0.1.6",
66
- "@things-factory/apptool-ui": "^4.3.14",
67
- "@things-factory/attachment-ui": "^4.3.14",
68
- "@things-factory/auth-ui": "^4.3.14",
69
- "@things-factory/barcode-ui": "^4.3.14",
70
- "@things-factory/biz-ui": "^4.3.14",
71
- "@things-factory/board-service": "^4.3.14",
72
- "@things-factory/board-ui": "^4.3.14",
73
- "@things-factory/code-ui": "^4.3.14",
74
- "@things-factory/context-ui": "^4.3.14",
75
- "@things-factory/export-ui": "^4.3.14",
76
- "@things-factory/export-ui-csv": "^4.3.14",
77
- "@things-factory/export-ui-excel": "^4.3.14",
78
- "@things-factory/fav-base": "^4.3.14",
79
- "@things-factory/form-ui": "^4.3.14",
80
- "@things-factory/grist-ui": "^4.3.14",
81
- "@things-factory/help": "^4.3.14",
82
- "@things-factory/i18n-base": "^4.3.14",
83
- "@things-factory/id-rule-base": "^4.3.14",
84
- "@things-factory/import-ui": "^4.3.14",
85
- "@things-factory/import-ui-excel": "^4.3.14",
86
- "@things-factory/menu-ui": "^4.3.14",
87
- "@things-factory/more-ui": "^4.3.14",
88
- "@things-factory/notification": "^4.3.14",
89
- "@things-factory/pdf": "^4.3.14",
90
- "@things-factory/print-proxy-service": "^4.3.14",
91
- "@things-factory/print-service": "^4.3.14",
92
- "@things-factory/print-ui": "^4.3.14",
93
- "@things-factory/product-base": "^4.3.14",
94
- "@things-factory/resource-ui": "^4.3.14",
95
- "@things-factory/sales-ui": "^4.3.19",
96
- "@things-factory/scene-data-transform": "^4.3.14",
97
- "@things-factory/scene-excel": "^4.3.14",
98
- "@things-factory/scene-firebase": "^4.3.14",
99
- "@things-factory/scene-form": "^4.3.14",
100
- "@things-factory/scene-google-map": "^4.3.14",
101
- "@things-factory/scene-graphql": "^4.3.14",
102
- "@things-factory/scene-label": "^4.3.14",
103
- "@things-factory/scene-marker": "^4.3.14",
104
- "@things-factory/scene-mqtt": "^4.3.14",
105
- "@things-factory/scene-restful": "^4.3.14",
106
- "@things-factory/scene-visualizer": "^4.3.14",
107
- "@things-factory/setting-ui": "^4.3.14",
108
- "@things-factory/system-ui": "^4.3.14",
109
- "@things-factory/transport-base": "^4.3.14",
110
- "@things-factory/tutorial-ui": "^4.3.14",
111
- "@things-factory/warehouse-base": "^4.3.19",
112
- "@things-factory/worksheet-base": "^4.3.19"
66
+ "@things-factory/apptool-ui": "^4.4.0-alpha.1",
67
+ "@things-factory/attachment-ui": "^4.4.0-alpha.1",
68
+ "@things-factory/auth-ui": "^4.4.0-alpha.1",
69
+ "@things-factory/barcode-ui": "^4.4.0-alpha.1",
70
+ "@things-factory/biz-ui": "^4.4.0-alpha.1",
71
+ "@things-factory/board-service": "^4.4.0-alpha.1",
72
+ "@things-factory/board-ui": "^4.4.0-alpha.1",
73
+ "@things-factory/code-ui": "^4.4.0-alpha.1",
74
+ "@things-factory/context-ui": "^4.4.0-alpha.1",
75
+ "@things-factory/export-ui": "^4.4.0-alpha.1",
76
+ "@things-factory/export-ui-csv": "^4.4.0-alpha.1",
77
+ "@things-factory/export-ui-excel": "^4.4.0-alpha.1",
78
+ "@things-factory/fav-base": "^4.4.0-alpha.1",
79
+ "@things-factory/form-ui": "^4.4.0-alpha.1",
80
+ "@things-factory/grist-ui": "^4.4.0-alpha.1",
81
+ "@things-factory/help": "^4.4.0-alpha.1",
82
+ "@things-factory/i18n-base": "^4.4.0-alpha.1",
83
+ "@things-factory/id-rule-base": "^4.4.0-alpha.1",
84
+ "@things-factory/import-ui": "^4.4.0-alpha.1",
85
+ "@things-factory/import-ui-excel": "^4.4.0-alpha.1",
86
+ "@things-factory/menu-ui": "^4.4.0-alpha.1",
87
+ "@things-factory/more-ui": "^4.4.0-alpha.1",
88
+ "@things-factory/notification": "^4.4.0-alpha.1",
89
+ "@things-factory/pdf": "^4.4.0-alpha.1",
90
+ "@things-factory/print-proxy-service": "^4.4.0-alpha.1",
91
+ "@things-factory/print-service": "^4.4.0-alpha.1",
92
+ "@things-factory/print-ui": "^4.4.0-alpha.1",
93
+ "@things-factory/product-base": "^4.4.0-alpha.1",
94
+ "@things-factory/resource-ui": "^4.4.0-alpha.1",
95
+ "@things-factory/sales-ui": "^4.4.0-alpha.1",
96
+ "@things-factory/scene-data-transform": "^4.4.0-alpha.1",
97
+ "@things-factory/scene-excel": "^4.4.0-alpha.1",
98
+ "@things-factory/scene-firebase": "^4.4.0-alpha.1",
99
+ "@things-factory/scene-form": "^4.4.0-alpha.1",
100
+ "@things-factory/scene-google-map": "^4.4.0-alpha.1",
101
+ "@things-factory/scene-graphql": "^4.4.0-alpha.1",
102
+ "@things-factory/scene-label": "^4.4.0-alpha.1",
103
+ "@things-factory/scene-marker": "^4.4.0-alpha.1",
104
+ "@things-factory/scene-mqtt": "^4.4.0-alpha.1",
105
+ "@things-factory/scene-restful": "^4.4.0-alpha.1",
106
+ "@things-factory/scene-visualizer": "^4.4.0-alpha.1",
107
+ "@things-factory/setting-ui": "^4.4.0-alpha.1",
108
+ "@things-factory/system-ui": "^4.4.0-alpha.1",
109
+ "@things-factory/transport-base": "^4.4.0-alpha.1",
110
+ "@things-factory/tutorial-ui": "^4.4.0-alpha.1",
111
+ "@things-factory/warehouse-base": "^4.4.0-alpha.1",
112
+ "@things-factory/worksheet-base": "^4.4.0-alpha.1"
113
113
  },
114
114
  "devDependencies": {
115
- "@things-factory/builder": "^4.3.14",
115
+ "@things-factory/builder": "^4.4.0-alpha.1",
116
116
  "cypress": "^9.4.1",
117
117
  "cypress-file-upload": "^5.0.8",
118
118
  "cypress-localstorage-commands": "^1.6.1",
119
119
  "eslint-plugin-cypress": "^2.12.1"
120
120
  },
121
- "gitHead": "2dddec18e371e5714d9f7a6bd0412741064af1d2"
121
+ "gitHead": "eed8cb5f47655691e5b73d99d2fb5b73e64cf566"
122
122
  }
@@ -0,0 +1,3 @@
1
+ export const entities = []
2
+
3
+ export {}
@@ -13,8 +13,7 @@ import {
13
13
  PRODUCT_LABEL_SETTING_KEY,
14
14
  REUSABLE_PALLET_LABEL_SETTING_KEY,
15
15
  INTENALIZED_AWB_SETTING_KEY,
16
- ROUTE_LABEL_SETTING_KEY,
17
- TOTE_LABEL_SETTING_KEY
16
+ ROUTE_LABEL_SETTING_KEY
18
17
  } from '../../../opa-app-setting-constants'
19
18
 
20
19
  export const boardSettingsResolver = {
@@ -47,8 +46,7 @@ export const boardSettingsResolver = {
47
46
  HOME_BOARD,
48
47
  CARTON_LABEL_SETTING_KEY,
49
48
  INTENALIZED_AWB_SETTING_KEY,
50
- ROUTE_LABEL_SETTING_KEY,
51
- TOTE_LABEL_SETTING_KEY
49
+ ROUTE_LABEL_SETTING_KEY
52
50
  ]
53
51
 
54
52
  var qb = queryBuilder
@@ -15,15 +15,16 @@ export const inventoryExpiryMonitorResolver = {
15
15
  sixtyDays: number
16
16
  }[] = await tx.query(
17
17
  `
18
- SELECT "location", sum("expired") AS "expired", sum("sixMonths") AS "sixMonths", sum("nineMonths") AS "nineMonths" FROM (
18
+ SELECT "location", sum("expired") AS "expired", sum("thirtyDays") AS "thirtyDays", sum("fortyFiveDays") AS "fortyFiveDays", sum("sixtyDays") AS "sixtyDays" FROM (
19
19
  SELECT
20
20
  CASE WHEN l.TYPE IN ('QUARANTINE','RESERVE') THEN 'QUARANTINED' ELSE 'IN SHELF' END AS "location",
21
21
  CASE WHEN i.expiration_date - now()::date <= 0 THEN 1 ELSE 0 END AS "expired",
22
- CASE WHEN i.expiration_date - now()::date > 0 AND i.expiration_date - now()::date <= 180 THEN 1 ELSE 0 END AS "sixMonths",
23
- CASE WHEN i.expiration_date - now()::date > 180 AND i.expiration_date - now()::date <= 270 THEN 1 ELSE 0 END AS "nineMonths"
22
+ CASE WHEN i.expiration_date - now()::date > 0 AND i.expiration_date - now()::date <= 30 THEN 1 ELSE 0 END AS "thirtyDays",
23
+ CASE WHEN i.expiration_date - now()::date > 30 AND i.expiration_date - now()::date <= 45 THEN 1 ELSE 0 END AS "fortyFiveDays",
24
+ CASE WHEN i.expiration_date - now()::date > 45 AND i.expiration_date - now()::date <= 60 THEN 1 ELSE 0 END AS "sixtyDays"
24
25
  FROM inventories i
25
26
  INNER JOIN locations l ON i.location_id = l.id
26
- WHERE i.expiration_date - now()::date <= 270
27
+ WHERE i.expiration_date - now()::date <= 60
27
28
  AND i.expiration_date NOTNULL
28
29
  AND i.status = 'STORED'
29
30
  AND i.domain_id = $1
@@ -44,5 +45,5 @@ function getExpiryCountByStatus(expInventories, location) {
44
45
  let matchedInv: any = expInventories.find(inv => inv.location == location)
45
46
 
46
47
  if (matchedInv) return (({ location, ...inv }) => inv)(matchedInv)
47
- else return { expired: 0, sixMonths: 0, nineMonths: 0 }
48
+ else return { expired: 0, thirtyDays: 0, fortyFiveDays: 0, sixtyDays: 0 }
48
49
  }
@@ -5,67 +5,36 @@ import { Domain, ListParam } from '@things-factory/shell'
5
5
 
6
6
  export const outboundOrderByStatusResolver = {
7
7
  async outboundOrderByStatus(_: any, params: ListParam, context: any) {
8
- const { domain, tx }: { domain: Domain; user: User; tx: EntityManager } = context.state
8
+ const { domain, user, tx }: { domain: Domain; user: User; tx: EntityManager } = context.state
9
9
 
10
10
  const orderStatus: { status: string; count: number }[] = await tx.query(
11
11
  `
12
- WITH cte_list ("status", "count") as (
13
- select 'DONE' as status, 0 as "count"
14
- union
15
- select 'CANCELLED' as status, 0 as "count"
16
- union
17
- select 'PICKING UNASSIGNED' as status, 0 as "count"
18
- union
19
- select 'PACKING' as status, 0 as "count"
20
- union
21
- select 'AWAITING DISPATCH' as status, 0 as "count"
22
- union
23
- select 'OUT FROM WAREHOUSE' as status, 0 as "count"
24
- union
25
- select 'PICKING ASSIGNED' as status, 0 as "count"
26
- union
27
- select 'OTHERS' as status, 0 as "count"
28
- ) select l."status", coalesce(src."count", l."count") as "count"
29
- from cte_list l
30
- left join (
12
+ (
31
13
  SELECT "status", COUNT(*) AS "count" FROM (
32
14
  SELECT
33
- CASE WHEN "status" = 'DONE' and rg.updated_at::date = CURRENT_DATE THEN 'DONE'
34
- WHEN "status" = 'CANCELLED' THEN 'CANCELLED'
35
- WHEN "status" IN('PENDING_RECEIVE', 'PENDING_WORKSHEET') THEN 'PICKING UNASSIGNED'
36
- END AS "status"
37
- FROM release_goods rg
15
+ CASE WHEN "status" = 'DEACTIVATED' AND "assignee_id" ISNULL AND "type" = 'PICKING' THEN 'PICKING UNASSIGNED'
16
+ WHEN "status" = 'EXECUTING' AND "assignee_id" NOTNULL AND "type" = 'PICKING' THEN 'PICKING ASSIGNED'
17
+ WHEN "status" = 'EXECUTING' AND "type" = 'PACKING' THEN 'PACKING'
18
+ END AS "status" FROM worksheets ws
38
19
  WHERE "domain_id" = $1
39
- AND rg."status" IN ('CANCELLED','PENDING', 'PENDING_RECEIVE', 'PENDING_WORKSHEET', 'READY_TO_PICK', 'PICKING', 'READY_TO_PACK', 'PACKING', 'DONE')
40
20
  ) AS foo
21
+ WHERE status IN ('PICKING ASSIGNED', 'PICKING UNASSIGNED', 'PACKING')
41
22
  GROUP BY "status"
42
- UNION ALL
43
- SELECT "status", COUNT(*) AS "count" FROM (
44
- SELECT
45
- CASE WHEN "dispatchment_status" = 'DISPATCHED' THEN 'OUT FROM WAREHOUSE'
46
- END AS "status"
47
- FROM release_goods rg
48
- WHERE "domain_id" = $1
49
- AND rg."dispatchment_status" IN ('READY_TO_DISPATCH', 'DISPATCHED')
50
- AND rg."status" NOT IN ('CANCELLED', 'PENDING_CANCEL')
51
- AND rg."tracking_no" NOTNULL
52
- ) AS foo
53
- GROUP BY "status"
54
- union all
55
- select 'AWAITING DISPATCH' as "status", count(*) from manifests m
56
- inner join release_goods rg ON rg.manifest_id = m.id
57
- where m."status" = 'OPEN' and m."domain_id" = $1
58
- union all
59
- select 'PICKING ASSIGNED' as "status", count(*) from worksheets w
60
- where w."domain_id" = $1 and w."type" ='PICKING'
61
- and w."status" in ('DEACTIVATED','EXECUTING','PENDING_CANCEL')
62
- group by w."status"
63
- union all
64
- select 'PACKING' as "status", count(*) from worksheets w
65
- where w."domain_id" = $1 and w."type" ='PACKING'
66
- and w."status" in ('DEACTIVATED','EXECUTING','PENDING_CANCEL')
67
- group by w."status"
68
- ) src on src."status" = l."status"
23
+ ) UNION ALL (
24
+ SELECT "status", COUNT(id) AS "count" FROM release_goods rg
25
+ WHERE "status" IN ('DONE', 'CANCELLED')
26
+ AND "domain_id" = $1
27
+ GROUP BY "status"
28
+ ) UNION ALL (
29
+ SELECT
30
+ CASE WHEN "status"::VARCHAR = 'OPEN' THEN 'AWAITING DISPATCH'
31
+ WHEN "status"::VARCHAR = 'CLOSED' THEN 'OUT FROM WAREHOUSE'
32
+ END AS "status",
33
+ COUNT(id) AS "count"
34
+ FROM manifests
35
+ WHERE "domain_id" = $1
36
+ GROUP BY "status"
37
+ )
69
38
  `,
70
39
  [domain.id]
71
40
  )
@@ -7,7 +7,6 @@ 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 WarehouseInventoryAdjustment from './warehouse-inventory-adjustment'
11
10
 
12
11
  export const queries = [
13
12
  BoardSetting.Query,
@@ -17,7 +16,7 @@ export const queries = [
17
16
  OpaMenu.Query,
18
17
  Reports.Query,
19
18
  InventoryComparison.Query,
20
- ShippingProviders.Query,
19
+ ShippingProviders.Query
21
20
  ]
22
21
 
23
- export const mutations = [Extra.Mutation,WarehouseInventoryAdjustment.Mutation]
22
+ export const mutations = [Extra.Mutation]
@@ -54,13 +54,11 @@ export const outboundOrderDetailsReport = {
54
54
  `
55
55
  create temp table temp_outbound_order_report on commit drop as (
56
56
  select * from (
57
- select oi.id, '${bizplace.id}' AS "bizplace_id", '${bizplace.name}' AS "bizplace_name", '${
58
- bizplace.description
59
- }' AS "bizplace_description",
57
+ select oi.id, '${bizplace.id}' AS "bizplace_id", '${bizplace.name}' AS "bizplace_name", '${bizplace.description}' AS "bizplace_description",
60
58
  do2.name AS "delivery_order_no", do2.delivery_date as "delivery_order_date",
61
59
  do2."to", do2.contact_point_ref_id,
62
60
  rg.name AS "ro_no", rg."type" as "ro_type", rg.ref_no AS "ref_no_1", rg.ref_no_2 AS "ref_no_2", rg.ref_no_3 AS "ref_no_3", rg.status as "ro_status",
63
- rg.created_at AS "order_created_at", rg.accepted_at, u4.name as accepted_by, rg.checked_remark_by, rg.checked_remark_at,
61
+ rg.created_at AS "order_created_at", rg.accepted_at, u4.name as accepted_by,
64
62
  p.id as "product_id", p.sku as "product_sku", p.name AS "product_name", p.description AS "product_description", p.type as "product_type",
65
63
  i.packing_type as "pack_type", i.packing_size as "pack_size", oi.release_qty AS "release_qty",
66
64
  oi.picked_at, oi.picked_by, oi.packed_at, oi.packed_by, oi.loaded_at, oi.loaded_by, oi.shipped_at,
@@ -190,8 +188,6 @@ export const outboundOrderDetailsReport = {
190
188
  pickedBy: itm.picked_by,
191
189
  packedAt: itm.packed_at,
192
190
  packedBy: itm.packed_by,
193
- checkedRemarkBy: itm.checked_remark_by,
194
- checkedRemarkAt: itm.checked_remark_at,
195
191
  loadedAt: itm.loaded_at,
196
192
  loadedBy: itm.loaded_by,
197
193
  shippedAt: itm.shipped_at