repzo-sap-absjo 1.0.8 → 1.0.9

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