erpnext-queue-client 1.2.0 → 1.3.0

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.
@@ -1,5 +1,6 @@
1
1
  import { TemporalClient } from "../../client";
2
2
  import { ERPNextMethodRequest } from "../methodRequest";
3
+ import { StockProjectedQuantityReportItemType } from "../model/Stock";
3
4
  export declare class ERPNextStock {
4
5
  protected temporalClient: TemporalClient;
5
6
  protected methodRequest: ERPNextMethodRequest;
@@ -27,30 +28,15 @@ export declare class ERPNextStock {
27
28
  reorder_qty?: number | null | undefined;
28
29
  val_rate?: number | null | undefined;
29
30
  })[]>;
30
- getStockProjectedQuantityReport(warehouse?: string, sku?: string): Promise<{
31
- item_code: string;
32
- description?: string | null | undefined;
33
- brand?: string | null | undefined;
34
- item_name?: string | null | undefined;
35
- item_group?: string | null | undefined;
36
- stock_uom?: string | null | undefined;
37
- warehouse?: string | null | undefined;
38
- actual_qty?: number | null | undefined;
39
- planned_qty?: number | null | undefined;
40
- indented_qty?: number | null | undefined;
41
- ordered_qty?: number | null | undefined;
42
- reserved_qty?: number | null | undefined;
43
- reserved_qty_for_production?: number | null | undefined;
44
- reserved_qty_for_sub_contract?: number | null | undefined;
45
- reserved_qty_for_pos?: number | null | undefined;
46
- projected_qty?: number | null | undefined;
47
- re_order_level?: number | null | undefined;
48
- re_order_qty?: number | null | undefined;
49
- shortage_qty?: number | null | undefined;
50
- }[]>;
31
+ getStockProjectedQuantityReport(warehouse?: string, sku?: string): Promise<StockProjectedQuantityReportItemType[]>;
51
32
  getStockFromBin(topLevelWarehouse: string): Promise<any>;
52
33
  getBundleStockFromBin(topLevelWarehouse: string): Promise<any>;
53
34
  getStock(topLevelWarehouse: string, options?: {
54
35
  includeBundleStock: boolean;
55
36
  }): Promise<any>;
37
+ getCompletedOrderItemAmounts(orderNumbers: string[]): Promise<Record<string, number>>;
38
+ getStockProjectedQuantityDict(warehouse?: string, sku?: string): Promise<Record<string, {
39
+ actual_qty: number;
40
+ ordered_qty: number;
41
+ }>>;
56
42
  }
@@ -14,6 +14,7 @@ const lodash_1 = require("lodash");
14
14
  const utils_1 = require("../../utils/utils");
15
15
  const methodRequest_1 = require("../methodRequest");
16
16
  const Stock_1 = require("../model/Stock");
17
+ const zod_1 = require("zod");
17
18
  class ERPNextStock {
18
19
  constructor(temporalClient) {
19
20
  this.temporalClient = temporalClient;
@@ -58,6 +59,7 @@ class ERPNextStock {
58
59
  requestMethod: "POST",
59
60
  responseValidationModel: Stock_1.StockProjectedQuantityReport,
60
61
  });
62
+ // We need to cast here, since typescript is not able to infer the type correctly. Type safety is ensured by zod
61
63
  return result.result.filter((r) => !(0, lodash_1.isArray)(r));
62
64
  });
63
65
  }
@@ -96,5 +98,48 @@ class ERPNextStock {
96
98
  return Object.assign(Object.assign({}, stock), bundleStock);
97
99
  });
98
100
  }
101
+ getCompletedOrderItemAmounts(orderNumbers) {
102
+ return __awaiter(this, void 0, void 0, function* () {
103
+ const result = yield this.methodRequest.request({
104
+ methodName: `get-completed-orderitem-amounts`,
105
+ requestMethod: "POST",
106
+ body: {
107
+ orderNumbers,
108
+ },
109
+ responseValidationModel: zod_1.z
110
+ .array(zod_1.z.object({
111
+ item_code: zod_1.z.string(),
112
+ qty: zod_1.z.number(),
113
+ }))
114
+ .describe("getCompletedOrderItemAmounts response"),
115
+ });
116
+ const res = result.reduce((acc, item) => {
117
+ acc[item.item_code] = item.qty;
118
+ return acc;
119
+ }, {});
120
+ return res;
121
+ });
122
+ }
123
+ getStockProjectedQuantityDict(warehouse, sku) {
124
+ return __awaiter(this, void 0, void 0, function* () {
125
+ const result = yield this.getStockProjectedQuantityReport(warehouse, sku);
126
+ // Stock Projected Quantity report contains one line entry for every warehouse. We need to consolidate them
127
+ // to be able to safely convert the report to a dict
128
+ const consolidatedStockProjectedQuantity = result.reduce((acc, item) => {
129
+ if (acc[item.item_code]) {
130
+ acc[item.item_code].actual_qty += item.actual_qty;
131
+ acc[item.item_code].ordered_qty += item.ordered_qty;
132
+ }
133
+ else {
134
+ acc[item.item_code] = {
135
+ actual_qty: item.actual_qty,
136
+ ordered_qty: item.ordered_qty,
137
+ };
138
+ }
139
+ return acc;
140
+ }, {});
141
+ return consolidatedStockProjectedQuantity;
142
+ });
143
+ }
99
144
  }
100
145
  exports.ERPNextStock = ERPNextStock;
@@ -0,0 +1,178 @@
1
+ import { z } from "zod";
2
+ export declare const ProductBundleItem: z.ZodObject<{
3
+ name: z.ZodString;
4
+ owner: z.ZodString;
5
+ creation: z.ZodString;
6
+ modified: z.ZodString;
7
+ modified_by: z.ZodNullable<z.ZodOptional<z.ZodString>>;
8
+ docstatus: z.ZodNumber;
9
+ idx: z.ZodNumber;
10
+ item_code: z.ZodString;
11
+ qty: z.ZodNumber;
12
+ description: z.ZodNullable<z.ZodOptional<z.ZodString>>;
13
+ rate: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
14
+ uom: z.ZodNullable<z.ZodOptional<z.ZodString>>;
15
+ parent: z.ZodNullable<z.ZodOptional<z.ZodString>>;
16
+ parentfield: z.ZodNullable<z.ZodOptional<z.ZodString>>;
17
+ doctype: z.ZodNullable<z.ZodOptional<z.ZodString>>;
18
+ }, "strip", z.ZodTypeAny, {
19
+ name: string;
20
+ owner: string;
21
+ creation: string;
22
+ modified: string;
23
+ idx: number;
24
+ docstatus: number;
25
+ item_code: string;
26
+ qty: number;
27
+ description?: string | null | undefined;
28
+ modified_by?: string | null | undefined;
29
+ parent?: string | null | undefined;
30
+ parentfield?: string | null | undefined;
31
+ doctype?: string | null | undefined;
32
+ uom?: string | null | undefined;
33
+ rate?: number | null | undefined;
34
+ }, {
35
+ name: string;
36
+ owner: string;
37
+ creation: string;
38
+ modified: string;
39
+ idx: number;
40
+ docstatus: number;
41
+ item_code: string;
42
+ qty: number;
43
+ description?: string | null | undefined;
44
+ modified_by?: string | null | undefined;
45
+ parent?: string | null | undefined;
46
+ parentfield?: string | null | undefined;
47
+ doctype?: string | null | undefined;
48
+ uom?: string | null | undefined;
49
+ rate?: number | null | undefined;
50
+ }>;
51
+ export type ProductBundleItemType = z.infer<typeof ProductBundleItem>;
52
+ export declare const ProductBundle: z.ZodObject<{
53
+ name: z.ZodString;
54
+ owner: z.ZodString;
55
+ creation: z.ZodString;
56
+ modified: z.ZodString;
57
+ modified_by: z.ZodNullable<z.ZodOptional<z.ZodString>>;
58
+ docstatus: z.ZodNumber;
59
+ idx: z.ZodNumber;
60
+ custom_image: z.ZodNullable<z.ZodOptional<z.ZodString>>;
61
+ new_item_code: z.ZodString;
62
+ custom_parent_item_name: z.ZodNullable<z.ZodOptional<z.ZodString>>;
63
+ description: z.ZodNullable<z.ZodOptional<z.ZodString>>;
64
+ disabled: z.ZodNumber;
65
+ items: z.ZodArray<z.ZodObject<{
66
+ name: z.ZodString;
67
+ owner: z.ZodString;
68
+ creation: z.ZodString;
69
+ modified: z.ZodString;
70
+ modified_by: z.ZodNullable<z.ZodOptional<z.ZodString>>;
71
+ docstatus: z.ZodNumber;
72
+ idx: z.ZodNumber;
73
+ item_code: z.ZodString;
74
+ qty: z.ZodNumber;
75
+ description: z.ZodNullable<z.ZodOptional<z.ZodString>>;
76
+ rate: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
77
+ uom: z.ZodNullable<z.ZodOptional<z.ZodString>>;
78
+ parent: z.ZodNullable<z.ZodOptional<z.ZodString>>;
79
+ parentfield: z.ZodNullable<z.ZodOptional<z.ZodString>>;
80
+ doctype: z.ZodNullable<z.ZodOptional<z.ZodString>>;
81
+ }, "strip", z.ZodTypeAny, {
82
+ name: string;
83
+ owner: string;
84
+ creation: string;
85
+ modified: string;
86
+ idx: number;
87
+ docstatus: number;
88
+ item_code: string;
89
+ qty: number;
90
+ description?: string | null | undefined;
91
+ modified_by?: string | null | undefined;
92
+ parent?: string | null | undefined;
93
+ parentfield?: string | null | undefined;
94
+ doctype?: string | null | undefined;
95
+ uom?: string | null | undefined;
96
+ rate?: number | null | undefined;
97
+ }, {
98
+ name: string;
99
+ owner: string;
100
+ creation: string;
101
+ modified: string;
102
+ idx: number;
103
+ docstatus: number;
104
+ item_code: string;
105
+ qty: number;
106
+ description?: string | null | undefined;
107
+ modified_by?: string | null | undefined;
108
+ parent?: string | null | undefined;
109
+ parentfield?: string | null | undefined;
110
+ doctype?: string | null | undefined;
111
+ uom?: string | null | undefined;
112
+ rate?: number | null | undefined;
113
+ }>, "many">;
114
+ about: z.ZodNullable<z.ZodOptional<z.ZodString>>;
115
+ }, "strip", z.ZodTypeAny, {
116
+ name: string;
117
+ owner: string;
118
+ creation: string;
119
+ modified: string;
120
+ idx: number;
121
+ docstatus: number;
122
+ disabled: number;
123
+ items: {
124
+ name: string;
125
+ owner: string;
126
+ creation: string;
127
+ modified: string;
128
+ idx: number;
129
+ docstatus: number;
130
+ item_code: string;
131
+ qty: number;
132
+ description?: string | null | undefined;
133
+ modified_by?: string | null | undefined;
134
+ parent?: string | null | undefined;
135
+ parentfield?: string | null | undefined;
136
+ doctype?: string | null | undefined;
137
+ uom?: string | null | undefined;
138
+ rate?: number | null | undefined;
139
+ }[];
140
+ new_item_code: string;
141
+ description?: string | null | undefined;
142
+ modified_by?: string | null | undefined;
143
+ custom_image?: string | null | undefined;
144
+ custom_parent_item_name?: string | null | undefined;
145
+ about?: string | null | undefined;
146
+ }, {
147
+ name: string;
148
+ owner: string;
149
+ creation: string;
150
+ modified: string;
151
+ idx: number;
152
+ docstatus: number;
153
+ disabled: number;
154
+ items: {
155
+ name: string;
156
+ owner: string;
157
+ creation: string;
158
+ modified: string;
159
+ idx: number;
160
+ docstatus: number;
161
+ item_code: string;
162
+ qty: number;
163
+ description?: string | null | undefined;
164
+ modified_by?: string | null | undefined;
165
+ parent?: string | null | undefined;
166
+ parentfield?: string | null | undefined;
167
+ doctype?: string | null | undefined;
168
+ uom?: string | null | undefined;
169
+ rate?: number | null | undefined;
170
+ }[];
171
+ new_item_code: string;
172
+ description?: string | null | undefined;
173
+ modified_by?: string | null | undefined;
174
+ custom_image?: string | null | undefined;
175
+ custom_parent_item_name?: string | null | undefined;
176
+ about?: string | null | undefined;
177
+ }>;
178
+ export type ProductBundleType = z.infer<typeof ProductBundle>;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProductBundle = exports.ProductBundleItem = void 0;
4
+ const zod_1 = require("zod");
5
+ exports.ProductBundleItem = zod_1.z
6
+ .object({
7
+ name: zod_1.z.string(),
8
+ owner: zod_1.z.string(),
9
+ creation: zod_1.z.string(),
10
+ modified: zod_1.z.string(),
11
+ modified_by: zod_1.z.string().optional().nullable(),
12
+ docstatus: zod_1.z.number(),
13
+ idx: zod_1.z.number(),
14
+ item_code: zod_1.z.string(),
15
+ qty: zod_1.z.number(),
16
+ description: zod_1.z.string().optional().nullable(),
17
+ rate: zod_1.z.number().optional().nullable(),
18
+ uom: zod_1.z.string().optional().nullable(),
19
+ parent: zod_1.z.string().optional().nullable(),
20
+ parentfield: zod_1.z.string().optional().nullable(),
21
+ doctype: zod_1.z.string().optional().nullable(),
22
+ })
23
+ .describe("Product Bundle Item");
24
+ exports.ProductBundle = zod_1.z
25
+ .object({
26
+ name: zod_1.z.string(),
27
+ owner: zod_1.z.string(),
28
+ creation: zod_1.z.string(),
29
+ modified: zod_1.z.string(),
30
+ modified_by: zod_1.z.string().optional().nullable(),
31
+ docstatus: zod_1.z.number(),
32
+ idx: zod_1.z.number(),
33
+ custom_image: zod_1.z.string().optional().nullable(),
34
+ new_item_code: zod_1.z.string(),
35
+ custom_parent_item_name: zod_1.z.string().optional().nullable(),
36
+ description: zod_1.z.string().optional().nullable(),
37
+ disabled: zod_1.z.number(),
38
+ items: zod_1.z.array(exports.ProductBundleItem),
39
+ about: zod_1.z.string().optional().nullable(),
40
+ })
41
+ .describe("Product Bundle");
@@ -2,23 +2,23 @@ import { z } from "zod";
2
2
  export declare const ReportColumn: z.ZodObject<{
3
3
  label: z.ZodString;
4
4
  fieldname: z.ZodString;
5
- fieldtype: z.ZodString;
6
- options: z.ZodString;
7
- width: z.ZodNumber;
8
- convertible: z.ZodString;
5
+ fieldtype: z.ZodNullable<z.ZodOptional<z.ZodString>>;
6
+ options: z.ZodNullable<z.ZodOptional<z.ZodString>>;
7
+ width: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
8
+ convertible: z.ZodNullable<z.ZodOptional<z.ZodString>>;
9
9
  }, "strip", z.ZodTypeAny, {
10
- options: string;
11
10
  label: string;
12
11
  fieldname: string;
13
- fieldtype: string;
14
- width: number;
15
- convertible: string;
12
+ options?: string | null | undefined;
13
+ fieldtype?: string | null | undefined;
14
+ width?: number | null | undefined;
15
+ convertible?: string | null | undefined;
16
16
  }, {
17
- options: string;
18
17
  label: string;
19
18
  fieldname: string;
20
- fieldtype: string;
21
- width: number;
22
- convertible: string;
19
+ options?: string | null | undefined;
20
+ fieldtype?: string | null | undefined;
21
+ width?: number | null | undefined;
22
+ convertible?: string | null | undefined;
23
23
  }>;
24
24
  export type ReportColumnType = z.infer<typeof ReportColumn>;
@@ -5,8 +5,8 @@ const zod_1 = require("zod");
5
5
  exports.ReportColumn = zod_1.z.object({
6
6
  label: zod_1.z.string(),
7
7
  fieldname: zod_1.z.string(),
8
- fieldtype: zod_1.z.string(),
9
- options: zod_1.z.string(),
10
- width: zod_1.z.number(),
11
- convertible: zod_1.z.string(),
8
+ fieldtype: zod_1.z.string().optional().nullable(),
9
+ options: zod_1.z.string().optional().nullable(),
10
+ width: zod_1.z.number().optional().nullable(),
11
+ convertible: zod_1.z.string().optional().nullable(),
12
12
  });
@@ -80,24 +80,24 @@ export declare const StockBalanceReport: z.ZodObject<{
80
80
  columns: z.ZodArray<z.ZodObject<{
81
81
  label: z.ZodString;
82
82
  fieldname: z.ZodString;
83
- fieldtype: z.ZodString;
84
- options: z.ZodString;
85
- width: z.ZodNumber;
86
- convertible: z.ZodString;
83
+ fieldtype: z.ZodNullable<z.ZodOptional<z.ZodString>>;
84
+ options: z.ZodNullable<z.ZodOptional<z.ZodString>>;
85
+ width: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
86
+ convertible: z.ZodNullable<z.ZodOptional<z.ZodString>>;
87
87
  }, "strip", z.ZodTypeAny, {
88
- options: string;
89
88
  label: string;
90
89
  fieldname: string;
91
- fieldtype: string;
92
- width: number;
93
- convertible: string;
90
+ options?: string | null | undefined;
91
+ fieldtype?: string | null | undefined;
92
+ width?: number | null | undefined;
93
+ convertible?: string | null | undefined;
94
94
  }, {
95
- options: string;
96
95
  label: string;
97
96
  fieldname: string;
98
- fieldtype: string;
99
- width: number;
100
- convertible: string;
97
+ options?: string | null | undefined;
98
+ fieldtype?: string | null | undefined;
99
+ width?: number | null | undefined;
100
+ convertible?: string | null | undefined;
101
101
  }>, "many">;
102
102
  result: z.ZodArray<z.ZodUnion<[z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">, z.ZodObject<{
103
103
  bal_qty: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
@@ -242,12 +242,12 @@ export declare const StockBalanceReport: z.ZodObject<{
242
242
  val_rate?: number | null | undefined;
243
243
  })[];
244
244
  columns: {
245
- options: string;
246
245
  label: string;
247
246
  fieldname: string;
248
- fieldtype: string;
249
- width: number;
250
- convertible: string;
247
+ options?: string | null | undefined;
248
+ fieldtype?: string | null | undefined;
249
+ width?: number | null | undefined;
250
+ convertible?: string | null | undefined;
251
251
  }[];
252
252
  add_total_row: boolean;
253
253
  prepared_report: boolean;
@@ -293,12 +293,12 @@ export declare const StockBalanceReport: z.ZodObject<{
293
293
  val_rate?: number | null | undefined;
294
294
  })[];
295
295
  columns: {
296
- options: string;
297
296
  label: string;
298
297
  fieldname: string;
299
- fieldtype: string;
300
- width: number;
301
- convertible: string;
298
+ options?: string | null | undefined;
299
+ fieldtype?: string | null | undefined;
300
+ width?: number | null | undefined;
301
+ convertible?: string | null | undefined;
302
302
  }[];
303
303
  add_total_row: boolean;
304
304
  prepared_report: boolean;
@@ -325,149 +325,149 @@ export type StockBalanceReportType = z.infer<typeof StockBalanceReport>;
325
325
  export type StockBalanceReportItemType = z.infer<typeof StockBalanceReportItem>;
326
326
  export declare const StockProjectedQuantityReportItem: z.ZodObject<{
327
327
  item_code: z.ZodString;
328
- item_name: z.ZodNullable<z.ZodOptional<z.ZodString>>;
329
- description: z.ZodNullable<z.ZodOptional<z.ZodString>>;
330
- item_group: z.ZodNullable<z.ZodOptional<z.ZodString>>;
328
+ item_name: z.ZodString;
329
+ description: z.ZodString;
330
+ item_group: z.ZodString;
331
331
  brand: z.ZodNullable<z.ZodOptional<z.ZodString>>;
332
- warehouse: z.ZodNullable<z.ZodOptional<z.ZodString>>;
333
- stock_uom: z.ZodNullable<z.ZodOptional<z.ZodString>>;
334
- actual_qty: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
335
- planned_qty: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
336
- indented_qty: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
337
- ordered_qty: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
338
- reserved_qty: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
339
- reserved_qty_for_production: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
340
- reserved_qty_for_sub_contract: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
341
- reserved_qty_for_pos: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
342
- projected_qty: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
343
- re_order_level: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
344
- re_order_qty: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
345
- shortage_qty: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
332
+ warehouse: z.ZodString;
333
+ stock_uom: z.ZodString;
334
+ actual_qty: z.ZodNumber;
335
+ planned_qty: z.ZodNumber;
336
+ indented_qty: z.ZodNumber;
337
+ ordered_qty: z.ZodNumber;
338
+ reserved_qty: z.ZodNumber;
339
+ reserved_qty_for_production: z.ZodNumber;
340
+ reserved_qty_for_sub_contract: z.ZodNumber;
341
+ reserved_qty_for_pos: z.ZodNumber;
342
+ projected_qty: z.ZodNumber;
343
+ re_order_level: z.ZodNumber;
344
+ re_order_qty: z.ZodNumber;
345
+ shortage_qty: z.ZodNumber;
346
346
  }, "strip", z.ZodTypeAny, {
347
+ description: string;
347
348
  item_code: string;
348
- description?: string | null | undefined;
349
+ item_name: string;
350
+ item_group: string;
351
+ stock_uom: string;
352
+ warehouse: string;
353
+ actual_qty: number;
354
+ planned_qty: number;
355
+ indented_qty: number;
356
+ ordered_qty: number;
357
+ reserved_qty: number;
358
+ reserved_qty_for_production: number;
359
+ reserved_qty_for_sub_contract: number;
360
+ reserved_qty_for_pos: number;
361
+ projected_qty: number;
362
+ re_order_level: number;
363
+ re_order_qty: number;
364
+ shortage_qty: number;
349
365
  brand?: string | null | undefined;
350
- item_name?: string | null | undefined;
351
- item_group?: string | null | undefined;
352
- stock_uom?: string | null | undefined;
353
- warehouse?: string | null | undefined;
354
- actual_qty?: number | null | undefined;
355
- planned_qty?: number | null | undefined;
356
- indented_qty?: number | null | undefined;
357
- ordered_qty?: number | null | undefined;
358
- reserved_qty?: number | null | undefined;
359
- reserved_qty_for_production?: number | null | undefined;
360
- reserved_qty_for_sub_contract?: number | null | undefined;
361
- reserved_qty_for_pos?: number | null | undefined;
362
- projected_qty?: number | null | undefined;
363
- re_order_level?: number | null | undefined;
364
- re_order_qty?: number | null | undefined;
365
- shortage_qty?: number | null | undefined;
366
366
  }, {
367
+ description: string;
367
368
  item_code: string;
368
- description?: string | null | undefined;
369
+ item_name: string;
370
+ item_group: string;
371
+ stock_uom: string;
372
+ warehouse: string;
373
+ actual_qty: number;
374
+ planned_qty: number;
375
+ indented_qty: number;
376
+ ordered_qty: number;
377
+ reserved_qty: number;
378
+ reserved_qty_for_production: number;
379
+ reserved_qty_for_sub_contract: number;
380
+ reserved_qty_for_pos: number;
381
+ projected_qty: number;
382
+ re_order_level: number;
383
+ re_order_qty: number;
384
+ shortage_qty: number;
369
385
  brand?: string | null | undefined;
370
- item_name?: string | null | undefined;
371
- item_group?: string | null | undefined;
372
- stock_uom?: string | null | undefined;
373
- warehouse?: string | null | undefined;
374
- actual_qty?: number | null | undefined;
375
- planned_qty?: number | null | undefined;
376
- indented_qty?: number | null | undefined;
377
- ordered_qty?: number | null | undefined;
378
- reserved_qty?: number | null | undefined;
379
- reserved_qty_for_production?: number | null | undefined;
380
- reserved_qty_for_sub_contract?: number | null | undefined;
381
- reserved_qty_for_pos?: number | null | undefined;
382
- projected_qty?: number | null | undefined;
383
- re_order_level?: number | null | undefined;
384
- re_order_qty?: number | null | undefined;
385
- shortage_qty?: number | null | undefined;
386
386
  }>;
387
387
  export type StockProjectedQuantityReportItemType = z.infer<typeof StockProjectedQuantityReportItem>;
388
388
  export declare const StockProjectedQuantityReport: z.ZodObject<{
389
- result: z.ZodArray<z.ZodObject<{
389
+ result: z.ZodArray<z.ZodUnion<[z.ZodObject<{
390
390
  item_code: z.ZodString;
391
- item_name: z.ZodNullable<z.ZodOptional<z.ZodString>>;
392
- description: z.ZodNullable<z.ZodOptional<z.ZodString>>;
393
- item_group: z.ZodNullable<z.ZodOptional<z.ZodString>>;
391
+ item_name: z.ZodString;
392
+ description: z.ZodString;
393
+ item_group: z.ZodString;
394
394
  brand: z.ZodNullable<z.ZodOptional<z.ZodString>>;
395
- warehouse: z.ZodNullable<z.ZodOptional<z.ZodString>>;
396
- stock_uom: z.ZodNullable<z.ZodOptional<z.ZodString>>;
397
- actual_qty: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
398
- planned_qty: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
399
- indented_qty: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
400
- ordered_qty: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
401
- reserved_qty: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
402
- reserved_qty_for_production: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
403
- reserved_qty_for_sub_contract: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
404
- reserved_qty_for_pos: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
405
- projected_qty: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
406
- re_order_level: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
407
- re_order_qty: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
408
- shortage_qty: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
395
+ warehouse: z.ZodString;
396
+ stock_uom: z.ZodString;
397
+ actual_qty: z.ZodNumber;
398
+ planned_qty: z.ZodNumber;
399
+ indented_qty: z.ZodNumber;
400
+ ordered_qty: z.ZodNumber;
401
+ reserved_qty: z.ZodNumber;
402
+ reserved_qty_for_production: z.ZodNumber;
403
+ reserved_qty_for_sub_contract: z.ZodNumber;
404
+ reserved_qty_for_pos: z.ZodNumber;
405
+ projected_qty: z.ZodNumber;
406
+ re_order_level: z.ZodNumber;
407
+ re_order_qty: z.ZodNumber;
408
+ shortage_qty: z.ZodNumber;
409
409
  }, "strip", z.ZodTypeAny, {
410
+ description: string;
410
411
  item_code: string;
411
- description?: string | null | undefined;
412
+ item_name: string;
413
+ item_group: string;
414
+ stock_uom: string;
415
+ warehouse: string;
416
+ actual_qty: number;
417
+ planned_qty: number;
418
+ indented_qty: number;
419
+ ordered_qty: number;
420
+ reserved_qty: number;
421
+ reserved_qty_for_production: number;
422
+ reserved_qty_for_sub_contract: number;
423
+ reserved_qty_for_pos: number;
424
+ projected_qty: number;
425
+ re_order_level: number;
426
+ re_order_qty: number;
427
+ shortage_qty: number;
412
428
  brand?: string | null | undefined;
413
- item_name?: string | null | undefined;
414
- item_group?: string | null | undefined;
415
- stock_uom?: string | null | undefined;
416
- warehouse?: string | null | undefined;
417
- actual_qty?: number | null | undefined;
418
- planned_qty?: number | null | undefined;
419
- indented_qty?: number | null | undefined;
420
- ordered_qty?: number | null | undefined;
421
- reserved_qty?: number | null | undefined;
422
- reserved_qty_for_production?: number | null | undefined;
423
- reserved_qty_for_sub_contract?: number | null | undefined;
424
- reserved_qty_for_pos?: number | null | undefined;
425
- projected_qty?: number | null | undefined;
426
- re_order_level?: number | null | undefined;
427
- re_order_qty?: number | null | undefined;
428
- shortage_qty?: number | null | undefined;
429
429
  }, {
430
+ description: string;
430
431
  item_code: string;
431
- description?: string | null | undefined;
432
+ item_name: string;
433
+ item_group: string;
434
+ stock_uom: string;
435
+ warehouse: string;
436
+ actual_qty: number;
437
+ planned_qty: number;
438
+ indented_qty: number;
439
+ ordered_qty: number;
440
+ reserved_qty: number;
441
+ reserved_qty_for_production: number;
442
+ reserved_qty_for_sub_contract: number;
443
+ reserved_qty_for_pos: number;
444
+ projected_qty: number;
445
+ re_order_level: number;
446
+ re_order_qty: number;
447
+ shortage_qty: number;
432
448
  brand?: string | null | undefined;
433
- item_name?: string | null | undefined;
434
- item_group?: string | null | undefined;
435
- stock_uom?: string | null | undefined;
436
- warehouse?: string | null | undefined;
437
- actual_qty?: number | null | undefined;
438
- planned_qty?: number | null | undefined;
439
- indented_qty?: number | null | undefined;
440
- ordered_qty?: number | null | undefined;
441
- reserved_qty?: number | null | undefined;
442
- reserved_qty_for_production?: number | null | undefined;
443
- reserved_qty_for_sub_contract?: number | null | undefined;
444
- reserved_qty_for_pos?: number | null | undefined;
445
- projected_qty?: number | null | undefined;
446
- re_order_level?: number | null | undefined;
447
- re_order_qty?: number | null | undefined;
448
- shortage_qty?: number | null | undefined;
449
- }>, "many">;
449
+ }>, z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">]>, "many">;
450
450
  columns: z.ZodArray<z.ZodUnion<[z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">, z.ZodObject<{
451
451
  label: z.ZodString;
452
452
  fieldname: z.ZodString;
453
- fieldtype: z.ZodString;
454
- options: z.ZodString;
455
- width: z.ZodNumber;
456
- convertible: z.ZodString;
453
+ fieldtype: z.ZodNullable<z.ZodOptional<z.ZodString>>;
454
+ options: z.ZodNullable<z.ZodOptional<z.ZodString>>;
455
+ width: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
456
+ convertible: z.ZodNullable<z.ZodOptional<z.ZodString>>;
457
457
  }, "strip", z.ZodTypeAny, {
458
- options: string;
459
458
  label: string;
460
459
  fieldname: string;
461
- fieldtype: string;
462
- width: number;
463
- convertible: string;
460
+ options?: string | null | undefined;
461
+ fieldtype?: string | null | undefined;
462
+ width?: number | null | undefined;
463
+ convertible?: string | null | undefined;
464
464
  }, {
465
- options: string;
466
465
  label: string;
467
466
  fieldname: string;
468
- fieldtype: string;
469
- width: number;
470
- convertible: string;
467
+ options?: string | null | undefined;
468
+ fieldtype?: string | null | undefined;
469
+ width?: number | null | undefined;
470
+ convertible?: string | null | undefined;
471
471
  }>]>, "many">;
472
472
  message: z.ZodNullable<z.ZodOptional<z.ZodString>>;
473
473
  chart: z.ZodNullable<z.ZodOptional<z.ZodString>>;
@@ -477,34 +477,34 @@ export declare const StockProjectedQuantityReport: z.ZodObject<{
477
477
  execution_time: z.ZodNumber;
478
478
  add_total_row: z.ZodBoolean;
479
479
  }, "strip", z.ZodTypeAny, {
480
- result: {
480
+ result: ((string | number)[] | {
481
+ description: string;
481
482
  item_code: string;
482
- description?: string | null | undefined;
483
+ item_name: string;
484
+ item_group: string;
485
+ stock_uom: string;
486
+ warehouse: string;
487
+ actual_qty: number;
488
+ planned_qty: number;
489
+ indented_qty: number;
490
+ ordered_qty: number;
491
+ reserved_qty: number;
492
+ reserved_qty_for_production: number;
493
+ reserved_qty_for_sub_contract: number;
494
+ reserved_qty_for_pos: number;
495
+ projected_qty: number;
496
+ re_order_level: number;
497
+ re_order_qty: number;
498
+ shortage_qty: number;
483
499
  brand?: string | null | undefined;
484
- item_name?: string | null | undefined;
485
- item_group?: string | null | undefined;
486
- stock_uom?: string | null | undefined;
487
- warehouse?: string | null | undefined;
488
- actual_qty?: number | null | undefined;
489
- planned_qty?: number | null | undefined;
490
- indented_qty?: number | null | undefined;
491
- ordered_qty?: number | null | undefined;
492
- reserved_qty?: number | null | undefined;
493
- reserved_qty_for_production?: number | null | undefined;
494
- reserved_qty_for_sub_contract?: number | null | undefined;
495
- reserved_qty_for_pos?: number | null | undefined;
496
- projected_qty?: number | null | undefined;
497
- re_order_level?: number | null | undefined;
498
- re_order_qty?: number | null | undefined;
499
- shortage_qty?: number | null | undefined;
500
- }[];
500
+ })[];
501
501
  columns: ((string | number)[] | {
502
- options: string;
503
502
  label: string;
504
503
  fieldname: string;
505
- fieldtype: string;
506
- width: number;
507
- convertible: string;
504
+ options?: string | null | undefined;
505
+ fieldtype?: string | null | undefined;
506
+ width?: number | null | undefined;
507
+ convertible?: string | null | undefined;
508
508
  })[];
509
509
  skip_total_row: number;
510
510
  execution_time: number;
@@ -514,34 +514,34 @@ export declare const StockProjectedQuantityReport: z.ZodObject<{
514
514
  chart?: string | null | undefined;
515
515
  report_summary?: string | null | undefined;
516
516
  }, {
517
- result: {
517
+ result: ((string | number)[] | {
518
+ description: string;
518
519
  item_code: string;
519
- description?: string | null | undefined;
520
+ item_name: string;
521
+ item_group: string;
522
+ stock_uom: string;
523
+ warehouse: string;
524
+ actual_qty: number;
525
+ planned_qty: number;
526
+ indented_qty: number;
527
+ ordered_qty: number;
528
+ reserved_qty: number;
529
+ reserved_qty_for_production: number;
530
+ reserved_qty_for_sub_contract: number;
531
+ reserved_qty_for_pos: number;
532
+ projected_qty: number;
533
+ re_order_level: number;
534
+ re_order_qty: number;
535
+ shortage_qty: number;
520
536
  brand?: string | null | undefined;
521
- item_name?: string | null | undefined;
522
- item_group?: string | null | undefined;
523
- stock_uom?: string | null | undefined;
524
- warehouse?: string | null | undefined;
525
- actual_qty?: number | null | undefined;
526
- planned_qty?: number | null | undefined;
527
- indented_qty?: number | null | undefined;
528
- ordered_qty?: number | null | undefined;
529
- reserved_qty?: number | null | undefined;
530
- reserved_qty_for_production?: number | null | undefined;
531
- reserved_qty_for_sub_contract?: number | null | undefined;
532
- reserved_qty_for_pos?: number | null | undefined;
533
- projected_qty?: number | null | undefined;
534
- re_order_level?: number | null | undefined;
535
- re_order_qty?: number | null | undefined;
536
- shortage_qty?: number | null | undefined;
537
- }[];
537
+ })[];
538
538
  columns: ((string | number)[] | {
539
- options: string;
540
539
  label: string;
541
540
  fieldname: string;
542
- fieldtype: string;
543
- width: number;
544
- convertible: string;
541
+ options?: string | null | undefined;
542
+ fieldtype?: string | null | undefined;
543
+ width?: number | null | undefined;
544
+ convertible?: string | null | undefined;
545
545
  })[];
546
546
  skip_total_row: number;
547
547
  execution_time: number;
@@ -552,4 +552,15 @@ export declare const StockProjectedQuantityReport: z.ZodObject<{
552
552
  report_summary?: string | null | undefined;
553
553
  }>;
554
554
  export type StockProjectedQuantityReportType = z.infer<typeof StockProjectedQuantityReport>;
555
+ export declare const StockProjectedQuantityDict: z.ZodRecord<z.ZodString, z.ZodObject<{
556
+ actual_qty: z.ZodNumber;
557
+ ordered_qty: z.ZodNumber;
558
+ }, "strip", z.ZodTypeAny, {
559
+ actual_qty: number;
560
+ ordered_qty: number;
561
+ }, {
562
+ actual_qty: number;
563
+ ordered_qty: number;
564
+ }>>;
565
+ export type StockProjectedQuantityDictType = z.infer<typeof StockProjectedQuantityDict>;
555
566
  export {};
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.StockProjectedQuantityReport = exports.StockProjectedQuantityReportItem = exports.StockBalanceReport = exports.StockBalanceReportRequest = void 0;
3
+ exports.StockProjectedQuantityDict = exports.StockProjectedQuantityReport = exports.StockProjectedQuantityReportItem = exports.StockBalanceReport = exports.StockBalanceReportRequest = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const Report_1 = require("./Report");
6
6
  const StockBalanceReportItem = zod_1.z
@@ -66,29 +66,29 @@ exports.StockBalanceReport = zod_1.z
66
66
  exports.StockProjectedQuantityReportItem = zod_1.z
67
67
  .object({
68
68
  item_code: zod_1.z.string(),
69
- item_name: zod_1.z.string().optional().nullable(),
70
- description: zod_1.z.string().optional().nullable(),
71
- item_group: zod_1.z.string().optional().nullable(),
69
+ item_name: zod_1.z.string(),
70
+ description: zod_1.z.string(),
71
+ item_group: zod_1.z.string(),
72
72
  brand: zod_1.z.string().optional().nullable(),
73
- warehouse: zod_1.z.string().optional().nullable(),
74
- stock_uom: zod_1.z.string().optional().nullable(),
75
- actual_qty: zod_1.z.number().optional().nullable(),
76
- planned_qty: zod_1.z.number().optional().nullable(),
77
- indented_qty: zod_1.z.number().optional().nullable(),
78
- ordered_qty: zod_1.z.number().optional().nullable(),
79
- reserved_qty: zod_1.z.number().optional().nullable(),
80
- reserved_qty_for_production: zod_1.z.number().optional().nullable(),
81
- reserved_qty_for_sub_contract: zod_1.z.number().optional().nullable(),
82
- reserved_qty_for_pos: zod_1.z.number().optional().nullable(),
83
- projected_qty: zod_1.z.number().optional().nullable(),
84
- re_order_level: zod_1.z.number().optional().nullable(),
85
- re_order_qty: zod_1.z.number().optional().nullable(),
86
- shortage_qty: zod_1.z.number().optional().nullable(),
73
+ warehouse: zod_1.z.string(),
74
+ stock_uom: zod_1.z.string(),
75
+ actual_qty: zod_1.z.number(),
76
+ planned_qty: zod_1.z.number(),
77
+ indented_qty: zod_1.z.number(),
78
+ ordered_qty: zod_1.z.number(),
79
+ reserved_qty: zod_1.z.number(),
80
+ reserved_qty_for_production: zod_1.z.number(),
81
+ reserved_qty_for_sub_contract: zod_1.z.number(),
82
+ reserved_qty_for_pos: zod_1.z.number(),
83
+ projected_qty: zod_1.z.number(),
84
+ re_order_level: zod_1.z.number(),
85
+ re_order_qty: zod_1.z.number(),
86
+ shortage_qty: zod_1.z.number(),
87
87
  })
88
88
  .describe("Stock Projected Quantity Report Item");
89
89
  exports.StockProjectedQuantityReport = zod_1.z
90
90
  .object({
91
- result: zod_1.z.array(exports.StockProjectedQuantityReportItem),
91
+ result: zod_1.z.array(exports.StockProjectedQuantityReportItem.or(zod_1.z.array(zod_1.z.string().or(zod_1.z.number())))),
92
92
  columns: zod_1.z.array(zod_1.z.union([zod_1.z.array(zod_1.z.union([zod_1.z.string(), zod_1.z.number()])), Report_1.ReportColumn])),
93
93
  message: zod_1.z.string().optional().nullable(),
94
94
  chart: zod_1.z.string().optional().nullable(),
@@ -99,3 +99,9 @@ exports.StockProjectedQuantityReport = zod_1.z
99
99
  add_total_row: zod_1.z.boolean(),
100
100
  })
101
101
  .describe("Stock Projected Quantity Report");
102
+ exports.StockProjectedQuantityDict = zod_1.z
103
+ .record(zod_1.z.string(), zod_1.z.object({
104
+ actual_qty: zod_1.z.number(),
105
+ ordered_qty: zod_1.z.number(),
106
+ }))
107
+ .describe("Stock Projected Quantity Dict");
@@ -65,6 +65,8 @@ class ERPNextResourceRequest {
65
65
  return __awaiter(this, arguments, void 0, function* ({ resourceName, resourceId, resourceModel, priority = 5, }) {
66
66
  if (resourceModel && !resourceModel.description)
67
67
  throw new Error("Resource model must have a description");
68
+ if (!resourceId)
69
+ throw new Error("Resource id is required");
68
70
  const result = yield this.temporalClient.executeERPNextRequestWorkflow(`GET-${resourceName}-${resourceId}`, {
69
71
  requestMethod: "GET",
70
72
  resourceName,
package/dist/index.d.ts CHANGED
@@ -15,6 +15,7 @@ import { Country } from "./erpnext/model/Country";
15
15
  import { Customer } from "./erpnext/model/Customer";
16
16
  import { ERPNextQueueClientContructorOptions } from "./erpnext/model/ERPNextQueue";
17
17
  import { PaymentEntry } from "./erpnext/model/PaymentEntry";
18
+ import { ProductBundle } from "./erpnext/model/ProductBundle";
18
19
  import { PurchaseOrder } from "./erpnext/model/PurchaseOrder";
19
20
  import { ShippingProvider } from "./erpnext/model/ShippingProvider";
20
21
  import { StockEntry } from "./erpnext/model/StockEntry";
@@ -45,6 +46,7 @@ export declare class ERPNextQueueClient {
45
46
  paymentEntry: ERPNextDoctypeSubmittableResourceRequest<typeof PaymentEntry>;
46
47
  stockReconciliation: ERPNextDoctypeSubmittableResourceRequest<typeof StockReconciliation>;
47
48
  stock: ERPNextStock;
49
+ productBundle: ERPNextDoctypeResourceRequest<typeof ProductBundle>;
48
50
  /**
49
51
  * @description Provide either a temporal client or connection details to create a new client
50
52
  */
package/dist/index.js CHANGED
@@ -18,6 +18,7 @@ const methodRequest_1 = require("./erpnext/methodRequest");
18
18
  const Country_1 = require("./erpnext/model/Country");
19
19
  const Customer_1 = require("./erpnext/model/Customer");
20
20
  const PaymentEntry_1 = require("./erpnext/model/PaymentEntry");
21
+ const ProductBundle_1 = require("./erpnext/model/ProductBundle");
21
22
  const PurchaseOrder_1 = require("./erpnext/model/PurchaseOrder");
22
23
  const ShippingProvider_1 = require("./erpnext/model/ShippingProvider");
23
24
  const StockEntry_1 = require("./erpnext/model/StockEntry");
@@ -56,6 +57,7 @@ class ERPNextQueueClient {
56
57
  this.paymentEntry = new doctypeSubmittableResourceRequest_1.ERPNextDoctypeSubmittableResourceRequest(this.temporalClient, "Payment Entry", PaymentEntry_1.PaymentEntry);
57
58
  this.stockReconciliation = new doctypeSubmittableResourceRequest_1.ERPNextDoctypeSubmittableResourceRequest(this.temporalClient, "Stock Reconciliation", StockReconciliation_1.StockReconciliation);
58
59
  this.stock = new stock_1.ERPNextStock(this.temporalClient);
60
+ this.productBundle = new doctypeResourceRequest_1.ERPNextDoctypeResourceRequest(this.temporalClient, "Product Bundle", ProductBundle_1.ProductBundle);
59
61
  }
60
62
  }
61
63
  exports.ERPNextQueueClient = ERPNextQueueClient;
package/package.json CHANGED
@@ -24,7 +24,7 @@
24
24
  "winston": "^3.15.0",
25
25
  "zod": "^3.23.8"
26
26
  },
27
- "version": "1.2.0",
27
+ "version": "1.3.0",
28
28
  "devDependencies": {
29
29
  "@types/crypto-js": "^4.2.2",
30
30
  "@types/lodash": "^4.17.13",