@things-factory/integration-sftp 4.3.46 → 4.3.50
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/dist-server/controllers/herbalife/apis/create-shipment.js +42 -38
- package/dist-server/controllers/herbalife/apis/create-shipment.js.map +1 -1
- package/dist-server/service/sftp/sftp.js +5 -0
- package/dist-server/service/sftp/sftp.js.map +1 -1
- package/package.json +7 -7
- package/server/controllers/herbalife/apis/create-shipment.ts +43 -42
- package/server/service/sftp/sftp.ts +4 -0
|
@@ -7,7 +7,7 @@ function createShipment() {
|
|
|
7
7
|
method: 'post',
|
|
8
8
|
path: '{folderPath}/{folderType}{shipmentCompletePath}',
|
|
9
9
|
denormalize(req) {
|
|
10
|
-
let {
|
|
10
|
+
let { releaseGoods, sftp } = req;
|
|
11
11
|
let { folderPath, platform } = sftp;
|
|
12
12
|
const folderType = sftp.isDevelopment ? `dev` : `prd`;
|
|
13
13
|
const shipmentCompletePath = sftp_const_1.COMPLETEDATAPATH;
|
|
@@ -18,58 +18,62 @@ function createShipment() {
|
|
|
18
18
|
let newSequence = newSeq.toString().padStart(runningNumberDigit, '0');
|
|
19
19
|
let newResponseFilePattern = JSON.stringify(Object.assign(Object.assign({}, responseFilePattern), { sequence: newSeq.toString() }));
|
|
20
20
|
sftp = Object.assign(Object.assign({}, sftp), { responseFilePattern: newResponseFilePattern });
|
|
21
|
-
const warehouseNumber =
|
|
21
|
+
const warehouseNumber = releaseGoods[0].refNo2;
|
|
22
22
|
let title = suffix ? suffix : ``;
|
|
23
23
|
title += newSequence;
|
|
24
24
|
title += warehouseNumber ? `_` + warehouseNumber : ``;
|
|
25
25
|
title += fileExtension ? `.` + fileExtension : ``;
|
|
26
|
-
let backupTitle =
|
|
26
|
+
let backupTitle = releaseGoods[0].refNo + '_' + title;
|
|
27
27
|
const orderNoColumn = 15;
|
|
28
28
|
const shipmentColumn = 27;
|
|
29
29
|
const trackingNoColumn = 20;
|
|
30
|
-
|
|
31
|
-
let
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
}
|
|
36
|
-
content += warehouseNumber;
|
|
37
|
-
content += `001000001`;
|
|
38
|
-
for (let i = 0; i < shipmentColumn; i++) {
|
|
39
|
-
content += ` `;
|
|
40
|
-
}
|
|
41
|
-
content += `000000 `;
|
|
42
|
-
for (let i = 0; i < trackingNoColumn; i++) {
|
|
43
|
-
content += ` `;
|
|
44
|
-
}
|
|
45
|
-
content += `000000000000 `;
|
|
46
|
-
const today = new Date();
|
|
47
|
-
const year = today.getFullYear().toString();
|
|
48
|
-
const month = (today.getMonth() + 1).toString().padStart(2, '0');
|
|
49
|
-
const day = today.getDate().toString().padStart(2, '0');
|
|
50
|
-
const newDate = year + month + day;
|
|
51
|
-
content += newDate + '\n';
|
|
52
|
-
for (let i = 0; i < orderInventories.length; i++) {
|
|
53
|
-
const orderInventory = orderInventories[i];
|
|
54
|
-
let sku = orderInventory.product.brandSku;
|
|
55
|
-
content += `1810` + releaseGood.refNo;
|
|
30
|
+
let bulkContent = '';
|
|
31
|
+
for (let releaseGood of releaseGoods) {
|
|
32
|
+
const refNoLength = releaseGood.refNo.length;
|
|
33
|
+
let content = `1710` + releaseGood.refNo;
|
|
34
|
+
let spaceNeeded = orderNoColumn - refNoLength;
|
|
56
35
|
for (let i = 0; i < spaceNeeded; i++) {
|
|
57
36
|
content += ` `;
|
|
58
37
|
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
let productCodeSpaceNeeded = 7 - productCode.length;
|
|
63
|
-
for (let i = 0; i < productCodeSpaceNeeded; i++) {
|
|
38
|
+
content += warehouseNumber;
|
|
39
|
+
content += `001000001`;
|
|
40
|
+
for (let i = 0; i < shipmentColumn; i++) {
|
|
64
41
|
content += ` `;
|
|
65
42
|
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
43
|
+
content += `000000 `;
|
|
44
|
+
for (let i = 0; i < trackingNoColumn; i++) {
|
|
45
|
+
content += ` `;
|
|
46
|
+
}
|
|
47
|
+
content += `000000000000 `;
|
|
48
|
+
const today = new Date();
|
|
49
|
+
const year = today.getFullYear().toString();
|
|
50
|
+
const month = (today.getMonth() + 1).toString().padStart(2, '0');
|
|
51
|
+
const day = today.getDate().toString().padStart(2, '0');
|
|
52
|
+
const newDate = year + month + day;
|
|
53
|
+
content += newDate + '\n';
|
|
54
|
+
for (let i = 0; i < releaseGood.orderInventories.length; i++) {
|
|
55
|
+
const orderInventory = releaseGood.orderInventories[i];
|
|
56
|
+
let sku = orderInventory.product.brandSku;
|
|
57
|
+
content += `1810` + releaseGood.refNo;
|
|
58
|
+
for (let i = 0; i < spaceNeeded; i++) {
|
|
59
|
+
content += ` `;
|
|
60
|
+
}
|
|
61
|
+
const idx = (i + 1).toString().padStart(2, '0');
|
|
62
|
+
const productCode = sku.substring(0, 4);
|
|
63
|
+
content += idx + `000000` + productCode;
|
|
64
|
+
let productCodeSpaceNeeded = 7 - productCode.length;
|
|
65
|
+
for (let i = 0; i < productCodeSpaceNeeded; i++) {
|
|
66
|
+
content += ` `;
|
|
67
|
+
}
|
|
68
|
+
const orderedQty = orderInventory.releaseQty.toString().padStart(4, '0');
|
|
69
|
+
const pickedQty = orderInventory.pickedQty.toString().padStart(4, '0');
|
|
70
|
+
content += orderedQty + pickedQty + '\n';
|
|
71
|
+
}
|
|
72
|
+
bulkContent += content;
|
|
69
73
|
}
|
|
70
74
|
return {
|
|
71
75
|
resource: { folderPath, folderType, shipmentCompletePath },
|
|
72
|
-
payload: { title, backupTitle, content, sftp, backupPath }
|
|
76
|
+
payload: { title, backupTitle, content: bulkContent, sftp, backupPath }
|
|
73
77
|
};
|
|
74
78
|
},
|
|
75
79
|
normalize(res) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-shipment.js","sourceRoot":"","sources":["../../../../server/controllers/herbalife/apis/create-shipment.ts"],"names":[],"mappings":";;;AAAA,oDAAkE;AAElE,SAAgB,cAAc;IAC5B,OAAO;QACL,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,iDAAiD;QACvD,WAAW,CAAC,GAAG;YACb,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"create-shipment.js","sourceRoot":"","sources":["../../../../server/controllers/herbalife/apis/create-shipment.ts"],"names":[],"mappings":"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"}
|
|
@@ -126,6 +126,11 @@ __decorate([
|
|
|
126
126
|
(0, type_graphql_1.Field)({ nullable: true }),
|
|
127
127
|
__metadata("design:type", String)
|
|
128
128
|
], Sftp.prototype, "responseFileTypes", void 0);
|
|
129
|
+
__decorate([
|
|
130
|
+
(0, typeorm_1.Column)({ nullable: true }),
|
|
131
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
|
132
|
+
__metadata("design:type", Date)
|
|
133
|
+
], Sftp.prototype, "lastTimeSync", void 0);
|
|
129
134
|
__decorate([
|
|
130
135
|
(0, typeorm_1.CreateDateColumn)(),
|
|
131
136
|
(0, type_graphql_1.Field)({ nullable: true }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sftp.js","sourceRoot":"","sources":["../../../server/service/sftp/sftp.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,+CAAsE;AACtE,qCASgB;AAEhB,yDAAgD;AAChD,qFAA2E;AAC3E,iDAA8C;AAE9C,IAAY,UAIX;AAJD,WAAY,UAAU;IACpB,+BAAiB,CAAA;IACjB,mCAAqB,CAAA;IACrB,uCAAyB,CAAA;AAC3B,CAAC,EAJW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAIrB;AAED,IAAA,+BAAgB,EAAC,UAAU,EAAE;IAC3B,IAAI,EAAE,YAAY;IAClB,WAAW,EAAE,6BAA6B;CAC3C,CAAC,CAAA;AAKF,IAAa,IAAI,GAAjB,MAAa,IAAI;
|
|
1
|
+
{"version":3,"file":"sftp.js","sourceRoot":"","sources":["../../../server/service/sftp/sftp.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,+CAAsE;AACtE,qCASgB;AAEhB,yDAAgD;AAChD,qFAA2E;AAC3E,iDAA8C;AAE9C,IAAY,UAIX;AAJD,WAAY,UAAU;IACpB,+BAAiB,CAAA;IACjB,mCAAqB,CAAA;IACrB,uCAAyB,CAAA;AAC3B,CAAC,EAJW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAIrB;AAED,IAAA,+BAAgB,EAAC,UAAU,EAAE;IAC3B,IAAI,EAAE,YAAY;IAClB,WAAW,EAAE,6BAA6B;CAC3C,CAAC,CAAA;AAKF,IAAa,IAAI,GAAjB,MAAa,IAAI;CAgHhB,CAAA;AA7GC;IAFC,IAAA,gCAAsB,EAAC,MAAM,CAAC;IAC9B,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAE,CAAC;;gCACC;AAInB;IAFC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,cAAM,CAAC;IACzB,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;kDACjB,cAAM,oBAAN,cAAM;oCAAA;AAGf;IADC,IAAA,oBAAU,EAAC,CAAC,IAAU,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC;;sCACvB;AAIjB;IAFC,IAAA,gBAAM,GAAE;IACR,IAAA,oBAAK,GAAE;;kCACI;AAMZ;IAJC,IAAA,gBAAM,EAAC;QACN,QAAQ,EAAE,IAAI;KACf,CAAC;IACD,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yCACN;AAIpB;IAFC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC1B,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;oCACP;AAMnB;IAJC,IAAA,gBAAM,EAAC;QACN,QAAQ,EAAE,IAAI;KACf,CAAC;IACD,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;sCACT;AAMjB;IAJC,IAAA,gBAAM,EAAC;QACN,QAAQ,EAAE,IAAI;KACf,CAAC;IACD,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uCACR;AAMlB;IAJC,IAAA,gBAAM,EAAC;QACN,QAAQ,EAAE,IAAI;KACf,CAAC;IACD,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wCACP;AAMnB;IAJC,IAAA,gBAAM,EAAC;QACN,QAAQ,EAAE,IAAI;KACf,CAAC;IACD,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wCACP;AAMnB;IAJC,IAAA,gBAAM,EAAC;QACN,QAAQ,EAAE,IAAI;KACf,CAAC;IACD,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2CACH;AAMvB;IAJC,IAAA,gBAAM,EAAC;QACN,QAAQ,EAAE,IAAI;KACf,CAAC;IACD,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;sCACT;AAGjB;IADC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,2CAAiB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;kDACtC,2CAAiB,oBAAjB,2CAAiB;+CAAA;AAMpC;IAJC,IAAA,gBAAM,EAAC;QACN,QAAQ,EAAE,IAAI;KACf,CAAC;IACD,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0CACN;AAMpB;IAJC,IAAA,gBAAM,EAAC;QACN,QAAQ,EAAE,IAAI;KACf,CAAC;IACD,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;iDACC;AAM3B;IAJC,IAAA,gBAAM,EAAC;QACN,QAAQ,EAAE,IAAI;KACf,CAAC;IACD,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;+CACD;AAIzB;IAFC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC1B,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BACX,IAAI;0CAAA;AAInB;IAFC,IAAA,0BAAgB,GAAE;IAClB,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BACd,IAAI;uCAAA;AAIhB;IAFC,IAAA,0BAAgB,GAAE;IAClB,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BACd,IAAI;uCAAA;AAMhB;IAJC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,EAAE;QACvB,QAAQ,EAAE,IAAI;KACf,CAAC;IACD,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;kDAChB,gBAAI,oBAAJ,gBAAI;qCAAA;AAGd;IADC,IAAA,oBAAU,EAAC,CAAC,IAAU,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;;uCACvB;AAMlB;IAJC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,EAAE;QACvB,QAAQ,EAAE,IAAI;KACf,CAAC;IACD,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;kDAChB,gBAAI,oBAAJ,gBAAI;qCAAA;AAGd;IADC,IAAA,oBAAU,EAAC,CAAC,IAAU,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;;uCACvB;AA/GP,IAAI;IAHhB,IAAA,gBAAM,GAAE;IACR,IAAA,eAAK,EAAC,WAAW,EAAE,CAAC,IAAU,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAC9E,IAAA,yBAAU,EAAC,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC;GAClC,IAAI,CAgHhB;AAhHY,oBAAI"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@things-factory/integration-sftp",
|
|
3
|
-
"version": "4.3.
|
|
3
|
+
"version": "4.3.50",
|
|
4
4
|
"main": "dist-server/index.js",
|
|
5
5
|
"browser": "client/index.js",
|
|
6
6
|
"things-factory": true,
|
|
@@ -24,13 +24,13 @@
|
|
|
24
24
|
"migration:create": "node ../../node_modules/typeorm/cli.js migration:create -d ./server/migrations"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@things-factory/auth-base": "^4.3.
|
|
28
|
-
"@things-factory/biz-base": "^4.3.
|
|
29
|
-
"@things-factory/env": "^4.3.
|
|
30
|
-
"@things-factory/integration-fulfillment": "^4.3.
|
|
31
|
-
"@things-factory/shell": "^4.3.
|
|
27
|
+
"@things-factory/auth-base": "^4.3.47",
|
|
28
|
+
"@things-factory/biz-base": "^4.3.47",
|
|
29
|
+
"@things-factory/env": "^4.3.47",
|
|
30
|
+
"@things-factory/integration-fulfillment": "^4.3.47",
|
|
31
|
+
"@things-factory/shell": "^4.3.47",
|
|
32
32
|
"aws-sdk": "^2.960.0",
|
|
33
33
|
"xml-js": "^1.6.11"
|
|
34
34
|
},
|
|
35
|
-
"gitHead": "
|
|
35
|
+
"gitHead": "4be34f9fc5e863e89894a44501e6194a3b74c21e"
|
|
36
36
|
}
|
|
@@ -5,7 +5,7 @@ export function createShipment() {
|
|
|
5
5
|
method: 'post',
|
|
6
6
|
path: '{folderPath}/{folderType}{shipmentCompletePath}',
|
|
7
7
|
denormalize(req) {
|
|
8
|
-
let {
|
|
8
|
+
let { releaseGoods, sftp } = req
|
|
9
9
|
let { folderPath, platform } = sftp
|
|
10
10
|
const folderType: string = sftp.isDevelopment ? `dev` : `prd`
|
|
11
11
|
const shipmentCompletePath: string = COMPLETEDATAPATH
|
|
@@ -21,63 +21,64 @@ export function createShipment() {
|
|
|
21
21
|
})
|
|
22
22
|
sftp = { ...sftp, responseFilePattern: newResponseFilePattern }
|
|
23
23
|
|
|
24
|
-
const warehouseNumber: string =
|
|
24
|
+
const warehouseNumber: string = releaseGoods[0].refNo2
|
|
25
25
|
let title: string = suffix ? suffix : ``
|
|
26
26
|
title += newSequence
|
|
27
27
|
title += warehouseNumber ? `_` + warehouseNumber : ``
|
|
28
28
|
title += fileExtension ? `.` + fileExtension : ``
|
|
29
29
|
|
|
30
|
-
let backupTitle: string =
|
|
31
|
-
|
|
30
|
+
let backupTitle: string = releaseGoods[0].refNo + '_' + title
|
|
32
31
|
const orderNoColumn: number = 15
|
|
33
32
|
const shipmentColumn: number = 27
|
|
34
33
|
const trackingNoColumn: number = 20
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
content += ` `
|
|
41
|
-
}
|
|
42
|
-
content += warehouseNumber
|
|
43
|
-
content += `001000001`
|
|
44
|
-
for (let i = 0; i < shipmentColumn; i++) {
|
|
45
|
-
content += ` `
|
|
46
|
-
}
|
|
47
|
-
content += `000000 `
|
|
48
|
-
for (let i = 0; i < trackingNoColumn; i++) {
|
|
49
|
-
content += ` `
|
|
50
|
-
}
|
|
51
|
-
content += `000000000000 `
|
|
52
|
-
const today = new Date()
|
|
53
|
-
const year = today.getFullYear().toString()
|
|
54
|
-
const month = (today.getMonth() + 1).toString().padStart(2, '0')
|
|
55
|
-
const day = today.getDate().toString().padStart(2, '0')
|
|
56
|
-
const newDate = year + month + day
|
|
57
|
-
content += newDate + '\n'
|
|
58
|
-
|
|
59
|
-
for (let i = 0; i < orderInventories.length; i++) {
|
|
60
|
-
const orderInventory: any = orderInventories[i]
|
|
61
|
-
let sku: string = orderInventory.product.brandSku
|
|
62
|
-
content += `1810` + releaseGood.refNo
|
|
34
|
+
let bulkContent = ''
|
|
35
|
+
for (let releaseGood of releaseGoods) {
|
|
36
|
+
const refNoLength: number = releaseGood.refNo.length
|
|
37
|
+
let content: string = `1710` + releaseGood.refNo
|
|
38
|
+
let spaceNeeded: number = orderNoColumn - refNoLength
|
|
63
39
|
for (let i = 0; i < spaceNeeded; i++) {
|
|
64
40
|
content += ` `
|
|
65
41
|
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
let productCodeSpaceNeeded = 7 - productCode.length
|
|
70
|
-
for (let i = 0; i < productCodeSpaceNeeded; i++) {
|
|
42
|
+
content += warehouseNumber
|
|
43
|
+
content += `001000001`
|
|
44
|
+
for (let i = 0; i < shipmentColumn; i++) {
|
|
71
45
|
content += ` `
|
|
72
46
|
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
47
|
+
content += `000000 `
|
|
48
|
+
for (let i = 0; i < trackingNoColumn; i++) {
|
|
49
|
+
content += ` `
|
|
50
|
+
}
|
|
51
|
+
content += `000000000000 `
|
|
52
|
+
const today = new Date()
|
|
53
|
+
const year = today.getFullYear().toString()
|
|
54
|
+
const month = (today.getMonth() + 1).toString().padStart(2, '0')
|
|
55
|
+
const day = today.getDate().toString().padStart(2, '0')
|
|
56
|
+
const newDate = year + month + day
|
|
57
|
+
content += newDate + '\n'
|
|
77
58
|
|
|
59
|
+
for (let i = 0; i < releaseGood.orderInventories.length; i++) {
|
|
60
|
+
const orderInventory: any = releaseGood.orderInventories[i]
|
|
61
|
+
let sku: string = orderInventory.product.brandSku
|
|
62
|
+
content += `1810` + releaseGood.refNo
|
|
63
|
+
for (let i = 0; i < spaceNeeded; i++) {
|
|
64
|
+
content += ` `
|
|
65
|
+
}
|
|
66
|
+
const idx = (i + 1).toString().padStart(2, '0')
|
|
67
|
+
const productCode: string = sku.substring(0, 4)
|
|
68
|
+
content += idx + `000000` + productCode
|
|
69
|
+
let productCodeSpaceNeeded = 7 - productCode.length
|
|
70
|
+
for (let i = 0; i < productCodeSpaceNeeded; i++) {
|
|
71
|
+
content += ` `
|
|
72
|
+
}
|
|
73
|
+
const orderedQty = orderInventory.releaseQty.toString().padStart(4, '0')
|
|
74
|
+
const pickedQty = orderInventory.pickedQty.toString().padStart(4, '0')
|
|
75
|
+
content += orderedQty + pickedQty + '\n'
|
|
76
|
+
}
|
|
77
|
+
bulkContent += content
|
|
78
|
+
}
|
|
78
79
|
return {
|
|
79
80
|
resource: { folderPath, folderType, shipmentCompletePath },
|
|
80
|
-
payload: { title, backupTitle, content, sftp, backupPath }
|
|
81
|
+
payload: { title, backupTitle, content: bulkContent, sftp, backupPath }
|
|
81
82
|
}
|
|
82
83
|
},
|
|
83
84
|
normalize(res) {
|
|
@@ -111,6 +111,10 @@ export class Sftp {
|
|
|
111
111
|
@Field({ nullable: true })
|
|
112
112
|
responseFileTypes: string
|
|
113
113
|
|
|
114
|
+
@Column({ nullable: true })
|
|
115
|
+
@Field({ nullable: true })
|
|
116
|
+
lastTimeSync?: Date
|
|
117
|
+
|
|
114
118
|
@CreateDateColumn()
|
|
115
119
|
@Field({ nullable: true })
|
|
116
120
|
createdAt?: Date
|