repzo-sap-absjo 1.0.18 → 1.0.20

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 (75) hide show
  1. package/lib/actions/create_invoice.d.ts +13 -19
  2. package/lib/actions/create_invoice.js +207 -365
  3. package/lib/actions/create_payment.d.ts +1 -4
  4. package/lib/actions/create_payment.js +107 -195
  5. package/lib/actions/create_proforma.d.ts +1 -4
  6. package/lib/actions/create_proforma.js +146 -285
  7. package/lib/actions/create_return_invoice.d.ts +1 -4
  8. package/lib/actions/create_return_invoice.js +158 -312
  9. package/lib/actions/create_transfer.d.ts +1 -4
  10. package/lib/actions/create_transfer.js +126 -223
  11. package/lib/actions/index.js +15 -23
  12. package/lib/commands/adjust_inventory.d.ts +2 -4
  13. package/lib/commands/adjust_inventory.js +160 -290
  14. package/lib/commands/bank.d.ts +2 -4
  15. package/lib/commands/bank.js +157 -279
  16. package/lib/commands/basic.js +48 -67
  17. package/lib/commands/brand.d.ts +1 -3
  18. package/lib/commands/brand.js +100 -174
  19. package/lib/commands/category.d.ts +1 -3
  20. package/lib/commands/category.js +104 -178
  21. package/lib/commands/channel.d.ts +1 -3
  22. package/lib/commands/channel.js +117 -198
  23. package/lib/commands/client.d.ts +32 -34
  24. package/lib/commands/client.js +244 -404
  25. package/lib/commands/client_disabled.d.ts +1 -3
  26. package/lib/commands/client_disabled.js +94 -163
  27. package/lib/commands/index.d.ts +11 -15
  28. package/lib/commands/index.js +62 -62
  29. package/lib/commands/join.js +66 -192
  30. package/lib/commands/measureunit.d.ts +14 -19
  31. package/lib/commands/measureunit.js +191 -289
  32. package/lib/commands/measureunit_family.d.ts +8 -10
  33. package/lib/commands/measureunit_family.js +138 -250
  34. package/lib/commands/payment_term.d.ts +1 -3
  35. package/lib/commands/payment_term.js +123 -202
  36. package/lib/commands/price_list.d.ts +15 -15
  37. package/lib/commands/price_list.js +326 -612
  38. package/lib/commands/product.d.ts +30 -32
  39. package/lib/commands/product.js +263 -485
  40. package/lib/commands/product_disabled.d.ts +1 -3
  41. package/lib/commands/product_disabled.js +94 -160
  42. package/lib/commands/rep.js +141 -221
  43. package/lib/commands/tag.js +109 -174
  44. package/lib/commands/tax.js +112 -177
  45. package/lib/commands/warehouse.d.ts +1 -3
  46. package/lib/commands/warehouse.js +119 -207
  47. package/lib/index.d.ts +12 -21
  48. package/lib/test/actions/create_invoice.js +188 -193
  49. package/lib/test/actions/create_payment.js +107 -112
  50. package/lib/test/actions/create_proforma.js +216 -220
  51. package/lib/test/actions/create_return_invoice.js +200 -205
  52. package/lib/test/actions/create_transfer.js +115 -120
  53. package/lib/test/commands/adjust_inventory.js +90 -90
  54. package/lib/test/commands/bank.js +90 -90
  55. package/lib/test/commands/basic.js +327 -328
  56. package/lib/test/commands/brand.js +90 -90
  57. package/lib/test/commands/category.js +90 -90
  58. package/lib/test/commands/channel.js +90 -90
  59. package/lib/test/commands/client.js +353 -355
  60. package/lib/test/commands/client_disabled.js +90 -90
  61. package/lib/test/commands/join.js +327 -328
  62. package/lib/test/commands/measureunit.js +90 -90
  63. package/lib/test/commands/measureunit_family.js +90 -90
  64. package/lib/test/commands/payment_term.js +90 -90
  65. package/lib/test/commands/price_list.js +334 -337
  66. package/lib/test/commands/product.js +90 -90
  67. package/lib/test/commands/product_disabled.js +90 -90
  68. package/lib/test/commands/rep.js +344 -346
  69. package/lib/test/commands/tag.js +90 -90
  70. package/lib/test/commands/tax.js +90 -90
  71. package/lib/test/commands/warehouse.js +90 -90
  72. package/lib/types.d.ts +53 -77
  73. package/lib/util.d.ts +19 -70
  74. package/lib/util.js +144 -170
  75. package/package.json +1 -1
@@ -1,231 +1,134 @@
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(
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;
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;
20
10
  try {
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`;
76
- }
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
- }
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
+ }
85
52
  });
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),
158
- //@ts-ignore
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,
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);
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;
197
119
  }
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
- });
120
+ catch (e) {
121
+ //@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;
228
133
  }
229
- throw e;
230
- }
231
134
  };
@@ -4,28 +4,20 @@ 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 (
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
- }
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
+ }
30
22
  };
31
23
  export const actionsList = [];
@@ -1,6 +1,4 @@
1
1
  import { CommandEvent, Result } from "../types";
2
- export declare const adjust_inventory: (commandEvent: CommandEvent) => Promise<
3
- Result & {
2
+ export declare const adjust_inventory: (commandEvent: CommandEvent) => Promise<Result & {
4
3
  items_failed: number;
5
- }
6
- >;
4
+ }>;