repzo-sap-absjo 1.0.20 → 1.0.22
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/changelog.md +1 -0
- package/lib/actions/create_invoice.d.ts +19 -13
- package/lib/actions/create_invoice.js +359 -210
- package/lib/actions/create_payment.d.ts +4 -1
- package/lib/actions/create_payment.js +195 -107
- package/lib/actions/create_proforma.d.ts +4 -1
- package/lib/actions/create_proforma.js +288 -147
- package/lib/actions/create_return_invoice.d.ts +4 -1
- package/lib/actions/create_return_invoice.js +312 -158
- package/lib/actions/create_transfer.d.ts +4 -1
- package/lib/actions/create_transfer.js +223 -126
- package/lib/actions/index.js +23 -15
- package/lib/commands/adjust_inventory.d.ts +4 -2
- package/lib/commands/adjust_inventory.js +290 -160
- package/lib/commands/bank.d.ts +4 -2
- package/lib/commands/bank.js +279 -157
- package/lib/commands/basic.js +68 -48
- package/lib/commands/brand.d.ts +3 -1
- package/lib/commands/brand.js +174 -100
- package/lib/commands/category.d.ts +3 -1
- package/lib/commands/category.js +178 -104
- package/lib/commands/channel.d.ts +3 -1
- package/lib/commands/channel.js +198 -117
- package/lib/commands/client.d.ts +34 -32
- package/lib/commands/client.js +404 -244
- package/lib/commands/client_disabled.d.ts +3 -1
- package/lib/commands/client_disabled.js +163 -94
- package/lib/commands/index.d.ts +24 -11
- package/lib/commands/index.js +65 -62
- package/lib/commands/join.js +192 -66
- package/lib/commands/measureunit.d.ts +19 -14
- package/lib/commands/measureunit.js +289 -191
- package/lib/commands/measureunit_family.d.ts +10 -8
- package/lib/commands/measureunit_family.js +250 -138
- package/lib/commands/payment_term.d.ts +3 -1
- package/lib/commands/payment_term.js +202 -123
- package/lib/commands/price_list.d.ts +15 -15
- package/lib/commands/price_list.js +617 -326
- package/lib/commands/price_list_disabled.d.ts +12 -0
- package/lib/commands/price_list_disabled.js +216 -0
- package/lib/commands/product.d.ts +32 -30
- package/lib/commands/product.js +485 -263
- package/lib/commands/product_disabled.d.ts +3 -1
- package/lib/commands/product_disabled.js +160 -94
- package/lib/commands/rep.js +221 -141
- package/lib/commands/tag.js +174 -109
- package/lib/commands/tax.js +177 -112
- package/lib/commands/warehouse.d.ts +3 -1
- package/lib/commands/warehouse.js +207 -119
- package/lib/index.d.ts +30 -12
- package/lib/test/actions/create_invoice.js +193 -188
- package/lib/test/actions/create_payment.js +112 -107
- package/lib/test/actions/create_proforma.js +220 -216
- package/lib/test/actions/create_return_invoice.js +205 -200
- package/lib/test/actions/create_transfer.js +120 -115
- package/lib/test/commands/adjust_inventory.js +90 -90
- package/lib/test/commands/bank.js +90 -90
- package/lib/test/commands/basic.js +335 -327
- package/lib/test/commands/brand.js +90 -90
- package/lib/test/commands/category.js +90 -90
- package/lib/test/commands/channel.js +90 -90
- package/lib/test/commands/client.js +355 -353
- package/lib/test/commands/client_disabled.js +90 -90
- package/lib/test/commands/join.js +328 -327
- package/lib/test/commands/measureunit.js +90 -90
- package/lib/test/commands/measureunit_family.js +90 -90
- package/lib/test/commands/payment_term.js +90 -90
- package/lib/test/commands/price_list.js +337 -334
- package/lib/test/commands/price_list_disabled.d.ts +1 -0
- package/lib/test/commands/price_list_disabled.js +359 -0
- package/lib/test/commands/product.js +90 -90
- package/lib/test/commands/product_disabled.js +90 -90
- package/lib/test/commands/rep.js +346 -344
- package/lib/test/commands/tag.js +90 -90
- package/lib/test/commands/tax.js +90 -90
- package/lib/test/commands/warehouse.js +90 -90
- package/lib/types.d.ts +78 -53
- package/lib/util.d.ts +76 -19
- package/lib/util.js +179 -144
- package/package.json +1 -1
- package/src/actions/create_invoice.ts +7 -18
- package/src/actions/create_proforma.ts +11 -1
- package/src/commands/basic.ts +1 -0
- package/src/commands/index.ts +3 -0
- package/src/commands/price_list.ts +7 -2
- package/src/commands/price_list_disabled.ts +194 -0
- package/src/test/commands/basic.ts +7 -0
- package/src/test/commands/price_list_disabled.ts +362 -0
- package/src/types.ts +1 -0
- package/src/util.ts +18 -1
|
@@ -1,134 +1,231 @@
|
|
|
1
1
|
import Repzo from "repzo";
|
|
2
|
-
import { _create, send_command_to_marketplace
|
|
2
|
+
import { _create, send_command_to_marketplace } from "../util.js";
|
|
3
3
|
import { v4 as uuid } from "uuid";
|
|
4
4
|
export const create_transfer = async (event, options) => {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
|
|
6
|
+
const repzo = new Repzo(
|
|
7
|
+
(_a = options.data) === null || _a === void 0 ? void 0 : _a.repzoApiKey,
|
|
8
|
+
{ env: options.env }
|
|
9
|
+
);
|
|
10
|
+
const action_sync_id =
|
|
11
|
+
((_b = event === null || event === void 0 ? void 0 : event.headers) ===
|
|
12
|
+
null || _b === void 0
|
|
13
|
+
? void 0
|
|
14
|
+
: _b.action_sync_id) || uuid();
|
|
15
|
+
const actionLog = new Repzo.ActionLogs(repzo, action_sync_id);
|
|
16
|
+
let body;
|
|
17
|
+
try {
|
|
18
|
+
// console.log("create_transfer");
|
|
19
|
+
body = event.body;
|
|
10
20
|
try {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
const repzo_transfer_item = repzo_transfer.variants[i];
|
|
67
|
-
const repzo_product = (_j = repzo_products === null || repzo_products === void 0 ? void 0 : repzo_products.data) === null || _j === void 0 ? void 0 : _j.find(
|
|
68
|
-
//@ts-ignore
|
|
69
|
-
(p) => { var _a; return p._id.toString() == ((_a = repzo_transfer_item.product_id) === null || _a === void 0 ? void 0 : _a.toString()); });
|
|
70
|
-
if (!repzo_product) {
|
|
71
|
-
// console.log(
|
|
72
|
-
// `Product with _id: ${repzo_transfer_item.product_id} was not found In Repzo`,
|
|
73
|
-
// );
|
|
74
|
-
throw new Error(`Product with _id: ${repzo_transfer_item.product_id} was not found in Repzo`);
|
|
75
|
-
}
|
|
76
|
-
const repzo_measure_unit = repzo_product.sv_measureUnit;
|
|
77
|
-
if (!(repzo_measure_unit === null || repzo_measure_unit === void 0 ? void 0 : repzo_measure_unit._id)) {
|
|
78
|
-
// console.log(
|
|
79
|
-
// `Measureunit with _id: ${repzo_product.sv_measureUnit?.toString()} was not found`,
|
|
80
|
-
// );
|
|
81
|
-
throw new Error(`Measureunit with _id: ${(_k = repzo_product.sv_measureUnit) === null || _k === void 0 ? void 0 : _k.toString()} was not found`);
|
|
82
|
-
}
|
|
83
|
-
variants.push({
|
|
84
|
-
//@ts-ignore
|
|
85
|
-
ItemCode: repzo_transfer_item.variant_name,
|
|
86
|
-
Quantity: repzo_transfer_item.qty / Number(repzo_measure_unit.factor),
|
|
87
|
-
//@ts-ignore
|
|
88
|
-
FromWarehouse: (_l = repzo_transfer.from) === null || _l === void 0 ? void 0 : _l.code,
|
|
89
|
-
//@ts-ignore
|
|
90
|
-
ToWarehouse: (_m = repzo_transfer.to) === null || _m === void 0 ? void 0 : _m.code,
|
|
91
|
-
});
|
|
92
|
-
}
|
|
93
|
-
const sap_transfer = {
|
|
94
|
-
StockTransferID: body.serial_number.formatted,
|
|
95
|
-
SalesPersonCode: repzo_rep
|
|
96
|
-
? repzo_rep.integration_id
|
|
97
|
-
: (_o = options.data) === null || _o === void 0 ? void 0 : _o.SalesPersonCode,
|
|
98
|
-
FromWarehouse: body.from.code,
|
|
99
|
-
ToWarehouse: body.to.code,
|
|
100
|
-
RepzoStockTransferLines: variants,
|
|
101
|
-
};
|
|
102
|
-
// console.dir(sap_transfer, { depth: null });
|
|
103
|
-
actionLog.addDetail(`Repzo => SAP: Transfer - ${repzo_serial_number}`, sap_transfer);
|
|
104
|
-
const result = await _create(SAP_HOST_URL, "/AddStockTransfer", sap_transfer);
|
|
105
|
-
// console.log(result);
|
|
106
|
-
try {
|
|
107
|
-
await repzo.updateIntegrationMeta.create([{ key: "sync_to_sap_succeeded", value: true }], { _id: body._id, type: "transfers" });
|
|
108
|
-
}
|
|
109
|
-
catch (e) {
|
|
110
|
-
console.error(e);
|
|
111
|
-
}
|
|
112
|
-
await actionLog
|
|
113
|
-
.addDetail(`SAP Responded with `, result)
|
|
114
|
-
.addDetail(`Repzo => SAP: Transfer - ${repzo_serial_number}`)
|
|
115
|
-
.setStatus("success")
|
|
116
|
-
.setBody(body)
|
|
117
|
-
.commit();
|
|
118
|
-
return result;
|
|
21
|
+
if (body) body = JSON.parse(body);
|
|
22
|
+
} catch (e) {}
|
|
23
|
+
if (
|
|
24
|
+
(_c =
|
|
25
|
+
body === null || body === void 0 ? void 0 : body.integration_meta) ===
|
|
26
|
+
null || _c === void 0
|
|
27
|
+
? void 0
|
|
28
|
+
: _c.sync_to_sap_started
|
|
29
|
+
)
|
|
30
|
+
return;
|
|
31
|
+
await actionLog.load(action_sync_id);
|
|
32
|
+
const repzo_serial_number =
|
|
33
|
+
(_d = body === null || body === void 0 ? void 0 : body.serial_number) ===
|
|
34
|
+
null || _d === void 0
|
|
35
|
+
? void 0
|
|
36
|
+
: _d.formatted;
|
|
37
|
+
try {
|
|
38
|
+
await repzo.updateIntegrationMeta.create(
|
|
39
|
+
[
|
|
40
|
+
{ key: "sync_to_sap_started", value: true },
|
|
41
|
+
{ key: "sync_to_sap_succeeded", value: false },
|
|
42
|
+
],
|
|
43
|
+
{ _id: body._id, type: "transfers" }
|
|
44
|
+
);
|
|
45
|
+
} catch (e) {
|
|
46
|
+
console.error(e);
|
|
47
|
+
}
|
|
48
|
+
await actionLog
|
|
49
|
+
.addDetail(
|
|
50
|
+
`Transfer - ${repzo_serial_number} => ${
|
|
51
|
+
body === null || body === void 0 ? void 0 : body.sync_id
|
|
52
|
+
}`
|
|
53
|
+
)
|
|
54
|
+
.addDetail(
|
|
55
|
+
`Repzo => SAP: Started Create Transfer - ${repzo_serial_number}`
|
|
56
|
+
)
|
|
57
|
+
.commit();
|
|
58
|
+
const SAP_HOST_URL =
|
|
59
|
+
(_e = options.data) === null || _e === void 0 ? void 0 : _e.sapHostUrl;
|
|
60
|
+
if (!SAP_HOST_URL)
|
|
61
|
+
throw `SAP Host Url is missing and Required: ${SAP_HOST_URL}`;
|
|
62
|
+
const repzo_transfer = body;
|
|
63
|
+
// Get Repzo Rep
|
|
64
|
+
let repzo_rep;
|
|
65
|
+
if (repzo_transfer.creator.type == "rep") {
|
|
66
|
+
repzo_rep = await repzo.rep.get(
|
|
67
|
+
(_f =
|
|
68
|
+
repzo_transfer === null || repzo_transfer === void 0
|
|
69
|
+
? void 0
|
|
70
|
+
: repzo_transfer.creator) === null || _f === void 0
|
|
71
|
+
? void 0
|
|
72
|
+
: _f._id
|
|
73
|
+
);
|
|
74
|
+
if (!repzo_rep)
|
|
75
|
+
throw `Rep with _id: ${repzo_transfer.creator._id} not found in Repzo`;
|
|
119
76
|
}
|
|
120
|
-
|
|
77
|
+
// Get Repzo Products with its own Populated MeasureUnit
|
|
78
|
+
const repzo_product_ids = {};
|
|
79
|
+
(_g = repzo_transfer.variants) === null || _g === void 0
|
|
80
|
+
? void 0
|
|
81
|
+
: _g.forEach((item) => {
|
|
82
|
+
if (item === null || item === void 0 ? void 0 : item.product_id) {
|
|
83
|
+
repzo_product_ids[item.product_id.toString()] = true;
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
const repzo_products = await repzo.patchAction.create(
|
|
87
|
+
{
|
|
88
|
+
slug: "product",
|
|
89
|
+
readQuery: [
|
|
90
|
+
{
|
|
91
|
+
key: "_id",
|
|
92
|
+
value: Object.keys(repzo_product_ids),
|
|
93
|
+
operator: "in",
|
|
94
|
+
},
|
|
95
|
+
],
|
|
96
|
+
},
|
|
97
|
+
{ per_page: 50000, populatedKeys: ["measureunit"] }
|
|
98
|
+
);
|
|
99
|
+
// Prepare Transfer Items
|
|
100
|
+
const variants = [];
|
|
101
|
+
for (
|
|
102
|
+
let i = 0;
|
|
103
|
+
i <
|
|
104
|
+
((_h = repzo_transfer.variants) === null || _h === void 0
|
|
105
|
+
? void 0
|
|
106
|
+
: _h.length);
|
|
107
|
+
i++
|
|
108
|
+
) {
|
|
109
|
+
const repzo_transfer_item = repzo_transfer.variants[i];
|
|
110
|
+
const repzo_product =
|
|
111
|
+
(_j =
|
|
112
|
+
repzo_products === null || repzo_products === void 0
|
|
113
|
+
? void 0
|
|
114
|
+
: repzo_products.data) === null || _j === void 0
|
|
115
|
+
? void 0
|
|
116
|
+
: _j.find(
|
|
117
|
+
//@ts-ignore
|
|
118
|
+
(p) => {
|
|
119
|
+
var _a;
|
|
120
|
+
return (
|
|
121
|
+
p._id.toString() ==
|
|
122
|
+
((_a = repzo_transfer_item.product_id) === null ||
|
|
123
|
+
_a === void 0
|
|
124
|
+
? void 0
|
|
125
|
+
: _a.toString())
|
|
126
|
+
);
|
|
127
|
+
}
|
|
128
|
+
);
|
|
129
|
+
if (!repzo_product) {
|
|
130
|
+
// console.log(
|
|
131
|
+
// `Product with _id: ${repzo_transfer_item.product_id} was not found In Repzo`,
|
|
132
|
+
// );
|
|
133
|
+
throw new Error(
|
|
134
|
+
`Product with _id: ${repzo_transfer_item.product_id} was not found in Repzo`
|
|
135
|
+
);
|
|
136
|
+
}
|
|
137
|
+
const repzo_measure_unit = repzo_product.sv_measureUnit;
|
|
138
|
+
if (
|
|
139
|
+
!(repzo_measure_unit === null || repzo_measure_unit === void 0
|
|
140
|
+
? void 0
|
|
141
|
+
: repzo_measure_unit._id)
|
|
142
|
+
) {
|
|
143
|
+
// console.log(
|
|
144
|
+
// `Measureunit with _id: ${repzo_product.sv_measureUnit?.toString()} was not found`,
|
|
145
|
+
// );
|
|
146
|
+
throw new Error(
|
|
147
|
+
`Measureunit with _id: ${
|
|
148
|
+
(_k = repzo_product.sv_measureUnit) === null || _k === void 0
|
|
149
|
+
? void 0
|
|
150
|
+
: _k.toString()
|
|
151
|
+
} was not found`
|
|
152
|
+
);
|
|
153
|
+
}
|
|
154
|
+
variants.push({
|
|
155
|
+
//@ts-ignore
|
|
156
|
+
ItemCode: repzo_transfer_item.variant_name,
|
|
157
|
+
Quantity: repzo_transfer_item.qty / Number(repzo_measure_unit.factor),
|
|
121
158
|
//@ts-ignore
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
159
|
+
FromWarehouse:
|
|
160
|
+
(_l = repzo_transfer.from) === null || _l === void 0
|
|
161
|
+
? void 0
|
|
162
|
+
: _l.code,
|
|
163
|
+
//@ts-ignore
|
|
164
|
+
ToWarehouse:
|
|
165
|
+
(_m = repzo_transfer.to) === null || _m === void 0 ? void 0 : _m.code,
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
const sap_transfer = {
|
|
169
|
+
StockTransferID: body.serial_number.formatted,
|
|
170
|
+
SalesPersonCode: repzo_rep
|
|
171
|
+
? repzo_rep.integration_id
|
|
172
|
+
: (_o = options.data) === null || _o === void 0
|
|
173
|
+
? void 0
|
|
174
|
+
: _o.SalesPersonCode, // "111"
|
|
175
|
+
FromWarehouse: body.from.code,
|
|
176
|
+
ToWarehouse: body.to.code,
|
|
177
|
+
RepzoStockTransferLines: variants,
|
|
178
|
+
};
|
|
179
|
+
// console.dir(sap_transfer, { depth: null });
|
|
180
|
+
actionLog.addDetail(
|
|
181
|
+
`Repzo => SAP: Transfer - ${repzo_serial_number}`,
|
|
182
|
+
sap_transfer
|
|
183
|
+
);
|
|
184
|
+
const result = await _create(
|
|
185
|
+
SAP_HOST_URL,
|
|
186
|
+
"/AddStockTransfer",
|
|
187
|
+
sap_transfer
|
|
188
|
+
);
|
|
189
|
+
// console.log(result);
|
|
190
|
+
try {
|
|
191
|
+
await repzo.updateIntegrationMeta.create(
|
|
192
|
+
[{ key: "sync_to_sap_succeeded", value: true }],
|
|
193
|
+
{ _id: body._id, type: "transfers" }
|
|
194
|
+
);
|
|
195
|
+
} catch (e) {
|
|
196
|
+
console.error(e);
|
|
197
|
+
}
|
|
198
|
+
await actionLog
|
|
199
|
+
.addDetail(`SAP Responded with `, result)
|
|
200
|
+
.addDetail(`Repzo => SAP: Transfer - ${repzo_serial_number}`)
|
|
201
|
+
.setStatus("success")
|
|
202
|
+
.setBody(body)
|
|
203
|
+
.commit();
|
|
204
|
+
return result;
|
|
205
|
+
} catch (e) {
|
|
206
|
+
//@ts-ignore
|
|
207
|
+
console.error((e === null || e === void 0 ? void 0 : e.response) || e);
|
|
208
|
+
await actionLog.setStatus("fail", e).setBody(body).commit();
|
|
209
|
+
if (
|
|
210
|
+
(_q =
|
|
211
|
+
(_p =
|
|
212
|
+
options === null || options === void 0 ? void 0 : options.data) ===
|
|
213
|
+
null || _p === void 0
|
|
214
|
+
? void 0
|
|
215
|
+
: _p.transfers) === null || _q === void 0
|
|
216
|
+
? void 0
|
|
217
|
+
: _q.adjustInventoryInFailedTransfer
|
|
218
|
+
) {
|
|
219
|
+
send_command_to_marketplace({
|
|
220
|
+
command: "adjust_inventory",
|
|
221
|
+
app_id: options.app_id,
|
|
222
|
+
env: options.env,
|
|
223
|
+
repzoApiKey:
|
|
224
|
+
(_r = options.data) === null || _r === void 0
|
|
225
|
+
? void 0
|
|
226
|
+
: _r.repzoApiKey,
|
|
227
|
+
});
|
|
133
228
|
}
|
|
229
|
+
throw e;
|
|
230
|
+
}
|
|
134
231
|
};
|
package/lib/actions/index.js
CHANGED
|
@@ -4,20 +4,28 @@ import { create_proforma } from "./create_proforma.js";
|
|
|
4
4
|
import { create_payment } from "./create_payment.js";
|
|
5
5
|
import { create_transfer } from "./create_transfer.js";
|
|
6
6
|
export const actions = async (event, options) => {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
7
|
+
var _a, _b;
|
|
8
|
+
switch (
|
|
9
|
+
(_a = event.queryStringParameters) === null || _a === void 0
|
|
10
|
+
? void 0
|
|
11
|
+
: _a.action
|
|
12
|
+
) {
|
|
13
|
+
case "create_invoice":
|
|
14
|
+
return await create_invoice(event, options);
|
|
15
|
+
case "create_return_invoice":
|
|
16
|
+
return await create_return_invoice(event, options);
|
|
17
|
+
case "create_proforma":
|
|
18
|
+
return await create_proforma(event, options);
|
|
19
|
+
case "create_payment":
|
|
20
|
+
return await create_payment(event, options);
|
|
21
|
+
case "create_transfer":
|
|
22
|
+
return await create_transfer(event, options);
|
|
23
|
+
default:
|
|
24
|
+
throw `Route: ${
|
|
25
|
+
(_b = event.queryStringParameters) === null || _b === void 0
|
|
26
|
+
? void 0
|
|
27
|
+
: _b.action
|
|
28
|
+
} not found`;
|
|
29
|
+
}
|
|
22
30
|
};
|
|
23
31
|
export const actionsList = [];
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { CommandEvent, Result } from "../types";
|
|
2
|
-
export declare const adjust_inventory: (commandEvent: CommandEvent) => Promise<
|
|
2
|
+
export declare const adjust_inventory: (commandEvent: CommandEvent) => Promise<
|
|
3
|
+
Result & {
|
|
3
4
|
items_failed: number;
|
|
4
|
-
}
|
|
5
|
+
}
|
|
6
|
+
>;
|