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.
Files changed (90) hide show
  1. package/changelog.md +1 -0
  2. package/lib/actions/create_invoice.d.ts +19 -13
  3. package/lib/actions/create_invoice.js +359 -210
  4. package/lib/actions/create_payment.d.ts +4 -1
  5. package/lib/actions/create_payment.js +195 -107
  6. package/lib/actions/create_proforma.d.ts +4 -1
  7. package/lib/actions/create_proforma.js +288 -147
  8. package/lib/actions/create_return_invoice.d.ts +4 -1
  9. package/lib/actions/create_return_invoice.js +312 -158
  10. package/lib/actions/create_transfer.d.ts +4 -1
  11. package/lib/actions/create_transfer.js +223 -126
  12. package/lib/actions/index.js +23 -15
  13. package/lib/commands/adjust_inventory.d.ts +4 -2
  14. package/lib/commands/adjust_inventory.js +290 -160
  15. package/lib/commands/bank.d.ts +4 -2
  16. package/lib/commands/bank.js +279 -157
  17. package/lib/commands/basic.js +68 -48
  18. package/lib/commands/brand.d.ts +3 -1
  19. package/lib/commands/brand.js +174 -100
  20. package/lib/commands/category.d.ts +3 -1
  21. package/lib/commands/category.js +178 -104
  22. package/lib/commands/channel.d.ts +3 -1
  23. package/lib/commands/channel.js +198 -117
  24. package/lib/commands/client.d.ts +34 -32
  25. package/lib/commands/client.js +404 -244
  26. package/lib/commands/client_disabled.d.ts +3 -1
  27. package/lib/commands/client_disabled.js +163 -94
  28. package/lib/commands/index.d.ts +24 -11
  29. package/lib/commands/index.js +65 -62
  30. package/lib/commands/join.js +192 -66
  31. package/lib/commands/measureunit.d.ts +19 -14
  32. package/lib/commands/measureunit.js +289 -191
  33. package/lib/commands/measureunit_family.d.ts +10 -8
  34. package/lib/commands/measureunit_family.js +250 -138
  35. package/lib/commands/payment_term.d.ts +3 -1
  36. package/lib/commands/payment_term.js +202 -123
  37. package/lib/commands/price_list.d.ts +15 -15
  38. package/lib/commands/price_list.js +617 -326
  39. package/lib/commands/price_list_disabled.d.ts +12 -0
  40. package/lib/commands/price_list_disabled.js +216 -0
  41. package/lib/commands/product.d.ts +32 -30
  42. package/lib/commands/product.js +485 -263
  43. package/lib/commands/product_disabled.d.ts +3 -1
  44. package/lib/commands/product_disabled.js +160 -94
  45. package/lib/commands/rep.js +221 -141
  46. package/lib/commands/tag.js +174 -109
  47. package/lib/commands/tax.js +177 -112
  48. package/lib/commands/warehouse.d.ts +3 -1
  49. package/lib/commands/warehouse.js +207 -119
  50. package/lib/index.d.ts +30 -12
  51. package/lib/test/actions/create_invoice.js +193 -188
  52. package/lib/test/actions/create_payment.js +112 -107
  53. package/lib/test/actions/create_proforma.js +220 -216
  54. package/lib/test/actions/create_return_invoice.js +205 -200
  55. package/lib/test/actions/create_transfer.js +120 -115
  56. package/lib/test/commands/adjust_inventory.js +90 -90
  57. package/lib/test/commands/bank.js +90 -90
  58. package/lib/test/commands/basic.js +335 -327
  59. package/lib/test/commands/brand.js +90 -90
  60. package/lib/test/commands/category.js +90 -90
  61. package/lib/test/commands/channel.js +90 -90
  62. package/lib/test/commands/client.js +355 -353
  63. package/lib/test/commands/client_disabled.js +90 -90
  64. package/lib/test/commands/join.js +328 -327
  65. package/lib/test/commands/measureunit.js +90 -90
  66. package/lib/test/commands/measureunit_family.js +90 -90
  67. package/lib/test/commands/payment_term.js +90 -90
  68. package/lib/test/commands/price_list.js +337 -334
  69. package/lib/test/commands/price_list_disabled.d.ts +1 -0
  70. package/lib/test/commands/price_list_disabled.js +359 -0
  71. package/lib/test/commands/product.js +90 -90
  72. package/lib/test/commands/product_disabled.js +90 -90
  73. package/lib/test/commands/rep.js +346 -344
  74. package/lib/test/commands/tag.js +90 -90
  75. package/lib/test/commands/tax.js +90 -90
  76. package/lib/test/commands/warehouse.js +90 -90
  77. package/lib/types.d.ts +78 -53
  78. package/lib/util.d.ts +76 -19
  79. package/lib/util.js +179 -144
  80. package/package.json +1 -1
  81. package/src/actions/create_invoice.ts +7 -18
  82. package/src/actions/create_proforma.ts +11 -1
  83. package/src/commands/basic.ts +1 -0
  84. package/src/commands/index.ts +3 -0
  85. package/src/commands/price_list.ts +7 -2
  86. package/src/commands/price_list_disabled.ts +194 -0
  87. package/src/test/commands/basic.ts +7 -0
  88. package/src/test/commands/price_list_disabled.ts +362 -0
  89. package/src/types.ts +1 -0
  90. package/src/util.ts +18 -1
@@ -1,134 +1,231 @@
1
1
  import Repzo from "repzo";
2
- import { _create, send_command_to_marketplace, } from "../util.js";
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
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
6
- const repzo = new Repzo((_a = options.data) === null || _a === void 0 ? void 0 : _a.repzoApiKey, { env: options.env });
7
- const action_sync_id = ((_b = event === null || event === void 0 ? void 0 : event.headers) === null || _b === void 0 ? void 0 : _b.action_sync_id) || uuid();
8
- const actionLog = new Repzo.ActionLogs(repzo, action_sync_id);
9
- let body;
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
- // console.log("create_transfer");
12
- body = event.body;
13
- try {
14
- if (body)
15
- body = JSON.parse(body);
16
- }
17
- catch (e) { }
18
- if ((_c = body === null || body === void 0 ? void 0 : body.integration_meta) === null || _c === void 0 ? void 0 : _c.sync_to_sap_started)
19
- return;
20
- await actionLog.load(action_sync_id);
21
- const repzo_serial_number = (_d = body === null || body === void 0 ? void 0 : body.serial_number) === null || _d === void 0 ? void 0 : _d.formatted;
22
- try {
23
- await repzo.updateIntegrationMeta.create([
24
- { key: "sync_to_sap_started", value: true },
25
- { key: "sync_to_sap_succeeded", value: false },
26
- ], { _id: body._id, type: "transfers" });
27
- }
28
- catch (e) {
29
- console.error(e);
30
- }
31
- await actionLog
32
- .addDetail(`Transfer - ${repzo_serial_number} => ${body === null || body === void 0 ? void 0 : body.sync_id}`)
33
- .addDetail(`Repzo => SAP: Started Create Transfer - ${repzo_serial_number}`)
34
- .commit();
35
- const SAP_HOST_URL = (_e = options.data) === null || _e === void 0 ? void 0 : _e.sapHostUrl;
36
- if (!SAP_HOST_URL)
37
- throw `SAP Host Url is missing and Required: ${SAP_HOST_URL}`;
38
- const repzo_transfer = body;
39
- // Get Repzo Rep
40
- let repzo_rep;
41
- if (repzo_transfer.creator.type == "rep") {
42
- repzo_rep = await repzo.rep.get((_f = repzo_transfer === null || repzo_transfer === void 0 ? void 0 : repzo_transfer.creator) === null || _f === void 0 ? void 0 : _f._id);
43
- if (!repzo_rep)
44
- throw `Rep with _id: ${repzo_transfer.creator._id} not found in Repzo`;
45
- }
46
- // Get Repzo Products with its own Populated MeasureUnit
47
- const repzo_product_ids = {};
48
- (_g = repzo_transfer.variants) === null || _g === void 0 ? void 0 : _g.forEach((item) => {
49
- if (item === null || item === void 0 ? void 0 : item.product_id) {
50
- repzo_product_ids[item.product_id.toString()] = true;
51
- }
52
- });
53
- const repzo_products = await repzo.patchAction.create({
54
- slug: "product",
55
- readQuery: [
56
- {
57
- key: "_id",
58
- value: Object.keys(repzo_product_ids),
59
- operator: "in",
60
- },
61
- ],
62
- }, { per_page: 50000, populatedKeys: ["measureunit"] });
63
- // Prepare Transfer Items
64
- const variants = [];
65
- for (let i = 0; i < ((_h = repzo_transfer.variants) === null || _h === void 0 ? void 0 : _h.length); i++) {
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
- catch (e) {
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
- console.error((e === null || e === void 0 ? void 0 : e.response) || e);
123
- await actionLog.setStatus("fail", e).setBody(body).commit();
124
- if ((_q = (_p = options === null || options === void 0 ? void 0 : options.data) === null || _p === void 0 ? void 0 : _p.transfers) === null || _q === void 0 ? void 0 : _q.adjustInventoryInFailedTransfer) {
125
- send_command_to_marketplace({
126
- command: "adjust_inventory",
127
- app_id: options.app_id,
128
- env: options.env,
129
- repzoApiKey: (_r = options.data) === null || _r === void 0 ? void 0 : _r.repzoApiKey,
130
- });
131
- }
132
- throw e;
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
  };
@@ -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
- var _a, _b;
8
- switch ((_a = event.queryStringParameters) === null || _a === void 0 ? void 0 : _a.action) {
9
- case "create_invoice":
10
- return await create_invoice(event, options);
11
- case "create_return_invoice":
12
- return await create_return_invoice(event, options);
13
- case "create_proforma":
14
- return await create_proforma(event, options);
15
- case "create_payment":
16
- return await create_payment(event, options);
17
- case "create_transfer":
18
- return await create_transfer(event, options);
19
- default:
20
- throw `Route: ${(_b = event.queryStringParameters) === null || _b === void 0 ? void 0 : _b.action} not found`;
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<Result & {
2
+ export declare const adjust_inventory: (commandEvent: CommandEvent) => Promise<
3
+ Result & {
3
4
  items_failed: number;
4
- }>;
5
+ }
6
+ >;