@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.
- package/client/pages/constants/index.js +0 -1
- package/client/pages/constants/setting.js +0 -1
- package/client/pages/inbound/pallet-label-popup.js +0 -6
- package/client/pages/inbound/putaway-product.js +1 -3
- package/client/pages/inbound/unload-product.js +11 -21
- package/client/pages/inventory/inventory-adjustment-approval.js +9 -24
- package/client/pages/inventory/inventory-adjustment.js +16 -121
- package/client/pages/master/product/product-list.js +1 -1
- package/client/pages/order/arrival-notice/arrival-notice-detail.js +2 -0
- package/client/pages/order/arrival-notice/receive-arrival-notice.js +2 -0
- package/client/pages/order/goods-received-note/customer-received-note.js +0 -3
- package/client/pages/order/goods-received-note/received-note-detail.js +0 -3
- package/client/pages/order/release-order/b2c/b2c-order-requests.js +30 -21
- package/client/pages/order/release-order/bulk-print-packing-list.js +0 -4
- package/client/pages/order/release-order/receive-release-order-request.js +2 -0
- package/client/pages/order/release-order/release-order-detail.js +26 -44
- package/client/pages/order/return-order/receive-return-order-requests.js +2 -0
- package/client/pages/order/transfer-order/receive-transfer-order-request.js +1 -1
- package/client/pages/order/transport-order/print-delivery-note.js +1 -0
- package/client/pages/order/transport-order/view-delivery-note.js +1 -1
- package/client/pages/order/vas-order/receive-vas-order.js +2 -0
- package/client/pages/outbound/inventory-assign-popup.js +2 -7
- package/client/pages/outbound/inventory-auto-assign-popup.js +1 -2
- package/client/pages/outbound/loading-product.js +11 -49
- package/client/pages/outbound/packing-product.js +6 -42
- package/client/pages/outbound/packing-worksheet-list.js +0 -15
- package/client/pages/outbound/picking-product.js +13 -153
- package/client/pages/outbound/single-outbound-worksheet.js +22 -10
- package/client/pages/outbound/sorting-product.js +15 -78
- package/client/pages/outbound/worksheet-batch-picking.js +2 -9
- package/client/pages/outbound/worksheet-packing.js +2 -7
- package/client/pages/outbound/worksheet-picking.js +2 -9
- package/client/pages/report/inventory-summary-report.js +0 -8
- package/client/pages/report/outbound-order-details-report.js +0 -18
- package/client/pages/vas/abstract-execute-vas.js +7 -12
- package/client/pages/vas/print-product-label.js +6 -15
- package/client/pages/vas/reverse-kitting/execute-reverse-kitting.js +1 -3
- package/client/pages/vas/reverse-kitting/popup-reverse-kitting-template.js +1 -3
- package/client/route.js +0 -12
- package/dist-server/entities/index.js +5 -0
- package/dist-server/entities/index.js.map +1 -0
- package/dist-server/graphql/index.js +5 -1
- package/dist-server/graphql/index.js.map +1 -1
- package/dist-server/graphql/resolvers/board-setting/board-settings.js +1 -2
- package/dist-server/graphql/resolvers/board-setting/board-settings.js.map +1 -1
- package/dist-server/graphql/resolvers/dashboard/inventory-expiry-monitor.js +6 -5
- package/dist-server/graphql/resolvers/dashboard/inventory-expiry-monitor.js.map +1 -1
- package/dist-server/graphql/resolvers/dashboard/outbound-order-by-status.js +22 -53
- package/dist-server/graphql/resolvers/dashboard/outbound-order-by-status.js.map +1 -1
- package/dist-server/graphql/resolvers/index.js +7 -4
- package/dist-server/graphql/resolvers/index.js.map +1 -1
- package/dist-server/graphql/resolvers/reports/outbound-order-details-report.js +1 -3
- package/dist-server/graphql/resolvers/reports/outbound-order-details-report.js.map +1 -1
- package/dist-server/graphql/types/dashboard/inventory-expiry-counter.js +3 -2
- package/dist-server/graphql/types/dashboard/inventory-expiry-counter.js.map +1 -1
- package/dist-server/graphql/types/index.js +8 -5
- package/dist-server/graphql/types/index.js.map +1 -1
- package/dist-server/graphql/types/reports/outbound-order-details-report.js +0 -2
- package/dist-server/graphql/types/reports/outbound-order-details-report.js.map +1 -1
- package/dist-server/index.js +5 -1
- package/dist-server/index.js.map +1 -1
- package/dist-server/opa-app-setting-constants.js +1 -2
- package/dist-server/opa-app-setting-constants.js.map +1 -1
- package/dist-server/utils/index.js +5 -1
- package/dist-server/utils/index.js.map +1 -1
- package/helps/release-note.ko.md +9 -11
- package/helps/release-note.md +9 -11
- package/helps/release-note.ms.md +9 -11
- package/helps/release-note.zh.md +9 -11
- package/package.json +51 -51
- package/server/entities/index.ts +3 -0
- package/server/graphql/resolvers/board-setting/board-settings.ts +2 -4
- package/server/graphql/resolvers/dashboard/inventory-expiry-monitor.ts +6 -5
- package/server/graphql/resolvers/dashboard/outbound-order-by-status.ts +22 -53
- package/server/graphql/resolvers/index.ts +2 -3
- package/server/graphql/resolvers/reports/outbound-order-details-report.ts +2 -6
- package/server/graphql/types/dashboard/inventory-expiry-counter.ts +3 -2
- package/server/graphql/types/index.ts +4 -4
- package/server/graphql/types/reports/outbound-order-details-report.ts +0 -2
- package/server/index.ts +1 -1
- package/server/opa-app-setting-constants.ts +0 -1
- package/things-factory.config.js +0 -13
- package/translations/en.json +8 -50
- package/translations/ko.json +1 -37
- package/translations/ms.json +1 -37
- package/translations/zh.json +1 -37
- package/client/constants/index.js +0 -1
- package/client/constants/order.js +0 -14
- package/client/pages/constants/tote.js +0 -14
- package/client/pages/master/tote-list.js +0 -740
- package/client/pages/order/draft-release-good/draft-release-good-detail.js +0 -1163
- package/client/pages/order/draft-release-good/draft-release-good-list.js +0 -546
- package/client/pages/outbound/order-remark-popup.js +0 -112
- package/client/pages/outbound/tote-popup.js +0 -461
- package/dist-server/graphql/resolvers/warehouse-inventory-adjustment/index.js +0 -6
- package/dist-server/graphql/resolvers/warehouse-inventory-adjustment/index.js.map +0 -1
- package/dist-server/graphql/resolvers/warehouse-inventory-adjustment/warehouse-intentory-adjustment.js +0 -58
- package/dist-server/graphql/resolvers/warehouse-inventory-adjustment/warehouse-intentory-adjustment.js.map +0 -1
- package/dist-server/graphql/types/warehouse-inventory-adjustment/index.js +0 -9
- package/dist-server/graphql/types/warehouse-inventory-adjustment/index.js.map +0 -1
- package/server/graphql/resolvers/warehouse-inventory-adjustment/index.ts +0 -5
- package/server/graphql/resolvers/warehouse-inventory-adjustment/warehouse-intentory-adjustment.ts +0 -68
- 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.
|
|
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
|
|
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":"
|
|
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"}
|
|
@@ -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
|
|
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"}
|
package/dist-server/index.js
CHANGED
|
@@ -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.
|
|
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];
|
package/dist-server/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../server/index.ts"],"names":[],"mappings":"
|
|
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.
|
|
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
|
|
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.
|
|
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":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAmC"}
|
package/helps/release-note.ko.md
CHANGED
|
@@ -2,36 +2,34 @@
|
|
|
2
2
|
|
|
3
3
|
<div align="center">
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## 5 April Update
|
|
6
6
|
|
|
7
|
-
####
|
|
7
|
+
#### Get a head start in April 2022 with our new features and fixes in the past month!
|
|
8
8
|
|
|
9
|
-
####
|
|
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.
|
|
12
|
+
1. Product Level Picking Strategy
|
|
15
13
|
</div>
|
|
16
14
|
<div>
|
|
17
|
-
2.
|
|
15
|
+
2. Serial Number Scanning for Inbound and Outbound
|
|
18
16
|
</div>
|
|
19
17
|
<div>
|
|
20
|
-
3.
|
|
18
|
+
3. Bin Application in Batch Picking
|
|
21
19
|
</div>
|
|
22
20
|
<div>
|
|
23
|
-
4.
|
|
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/
|
|
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
|
-
|
|
32
|
+
Stay safe and positively negative!
|
|
35
33
|
|
|
36
34
|
<br>
|
|
37
35
|
|
package/helps/release-note.md
CHANGED
|
@@ -2,36 +2,34 @@
|
|
|
2
2
|
|
|
3
3
|
<div align="center">
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## 5 April Update
|
|
6
6
|
|
|
7
|
-
####
|
|
7
|
+
#### Get a head start in April 2022 with our new features and fixes in the past month!
|
|
8
8
|
|
|
9
|
-
####
|
|
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.
|
|
12
|
+
1. Product Level Picking Strategy
|
|
15
13
|
</div>
|
|
16
14
|
<div>
|
|
17
|
-
2.
|
|
15
|
+
2. Serial Number Scanning for Inbound and Outbound
|
|
18
16
|
</div>
|
|
19
17
|
<div>
|
|
20
|
-
3.
|
|
18
|
+
3. Bin Application in Batch Picking
|
|
21
19
|
</div>
|
|
22
20
|
<div>
|
|
23
|
-
4.
|
|
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/
|
|
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
|
-
|
|
32
|
+
Stay safe and positively negative!
|
|
35
33
|
|
|
36
34
|
<br>
|
|
37
35
|
|
package/helps/release-note.ms.md
CHANGED
|
@@ -2,36 +2,34 @@
|
|
|
2
2
|
|
|
3
3
|
<div align="center">
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## 5 April Update
|
|
6
6
|
|
|
7
|
-
####
|
|
7
|
+
#### Get a head start in April 2022 with our new features and fixes in the past month!
|
|
8
8
|
|
|
9
|
-
####
|
|
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.
|
|
12
|
+
1. Product Level Picking Strategy
|
|
15
13
|
</div>
|
|
16
14
|
<div>
|
|
17
|
-
2.
|
|
15
|
+
2. Serial Number Scanning for Inbound and Outbound
|
|
18
16
|
</div>
|
|
19
17
|
<div>
|
|
20
|
-
3.
|
|
18
|
+
3. Bin Application in Batch Picking
|
|
21
19
|
</div>
|
|
22
20
|
<div>
|
|
23
|
-
4.
|
|
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/
|
|
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
|
-
|
|
32
|
+
Stay safe and positively negative!
|
|
35
33
|
|
|
36
34
|
<br>
|
|
37
35
|
|
package/helps/release-note.zh.md
CHANGED
|
@@ -2,36 +2,34 @@
|
|
|
2
2
|
|
|
3
3
|
<div align="center">
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## 5 April Update
|
|
6
6
|
|
|
7
|
-
####
|
|
7
|
+
#### Get a head start in April 2022 with our new features and fixes in the past month!
|
|
8
8
|
|
|
9
|
-
####
|
|
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.
|
|
12
|
+
1. Product Level Picking Strategy
|
|
15
13
|
</div>
|
|
16
14
|
<div>
|
|
17
|
-
2.
|
|
15
|
+
2. Serial Number Scanning for Inbound and Outbound
|
|
18
16
|
</div>
|
|
19
17
|
<div>
|
|
20
|
-
3.
|
|
18
|
+
3. Bin Application in Batch Picking
|
|
21
19
|
</div>
|
|
22
20
|
<div>
|
|
23
|
-
4.
|
|
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/
|
|
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
|
-
|
|
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
|
|
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.
|
|
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.
|
|
67
|
-
"@things-factory/attachment-ui": "^4.
|
|
68
|
-
"@things-factory/auth-ui": "^4.
|
|
69
|
-
"@things-factory/barcode-ui": "^4.
|
|
70
|
-
"@things-factory/biz-ui": "^4.
|
|
71
|
-
"@things-factory/board-service": "^4.
|
|
72
|
-
"@things-factory/board-ui": "^4.
|
|
73
|
-
"@things-factory/code-ui": "^4.
|
|
74
|
-
"@things-factory/context-ui": "^4.
|
|
75
|
-
"@things-factory/export-ui": "^4.
|
|
76
|
-
"@things-factory/export-ui-csv": "^4.
|
|
77
|
-
"@things-factory/export-ui-excel": "^4.
|
|
78
|
-
"@things-factory/fav-base": "^4.
|
|
79
|
-
"@things-factory/form-ui": "^4.
|
|
80
|
-
"@things-factory/grist-ui": "^4.
|
|
81
|
-
"@things-factory/help": "^4.
|
|
82
|
-
"@things-factory/i18n-base": "^4.
|
|
83
|
-
"@things-factory/id-rule-base": "^4.
|
|
84
|
-
"@things-factory/import-ui": "^4.
|
|
85
|
-
"@things-factory/import-ui-excel": "^4.
|
|
86
|
-
"@things-factory/menu-ui": "^4.
|
|
87
|
-
"@things-factory/more-ui": "^4.
|
|
88
|
-
"@things-factory/notification": "^4.
|
|
89
|
-
"@things-factory/pdf": "^4.
|
|
90
|
-
"@things-factory/print-proxy-service": "^4.
|
|
91
|
-
"@things-factory/print-service": "^4.
|
|
92
|
-
"@things-factory/print-ui": "^4.
|
|
93
|
-
"@things-factory/product-base": "^4.
|
|
94
|
-
"@things-factory/resource-ui": "^4.
|
|
95
|
-
"@things-factory/sales-ui": "^4.
|
|
96
|
-
"@things-factory/scene-data-transform": "^4.
|
|
97
|
-
"@things-factory/scene-excel": "^4.
|
|
98
|
-
"@things-factory/scene-firebase": "^4.
|
|
99
|
-
"@things-factory/scene-form": "^4.
|
|
100
|
-
"@things-factory/scene-google-map": "^4.
|
|
101
|
-
"@things-factory/scene-graphql": "^4.
|
|
102
|
-
"@things-factory/scene-label": "^4.
|
|
103
|
-
"@things-factory/scene-marker": "^4.
|
|
104
|
-
"@things-factory/scene-mqtt": "^4.
|
|
105
|
-
"@things-factory/scene-restful": "^4.
|
|
106
|
-
"@things-factory/scene-visualizer": "^4.
|
|
107
|
-
"@things-factory/setting-ui": "^4.
|
|
108
|
-
"@things-factory/system-ui": "^4.
|
|
109
|
-
"@things-factory/transport-base": "^4.
|
|
110
|
-
"@things-factory/tutorial-ui": "^4.
|
|
111
|
-
"@things-factory/warehouse-base": "^4.
|
|
112
|
-
"@things-factory/worksheet-base": "^4.
|
|
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.
|
|
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": "
|
|
121
|
+
"gitHead": "eed8cb5f47655691e5b73d99d2fb5b73e64cf566"
|
|
122
122
|
}
|
|
@@ -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("
|
|
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 <=
|
|
23
|
-
CASE WHEN i.expiration_date - now()::date >
|
|
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 <=
|
|
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,
|
|
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
|
-
|
|
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" = '
|
|
34
|
-
WHEN "status" = '
|
|
35
|
-
WHEN "status"
|
|
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
|
-
|
|
43
|
-
SELECT "status", COUNT(
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
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
|
|
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,
|
|
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
|