repzo 1.0.289 → 1.0.291

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/changelog.md CHANGED
@@ -18,6 +18,11 @@
18
18
  - add: apps-management, reset-company-namespace & test-reset-company-namespace @maramalshen
19
19
  - add: `rep_can_edit_invoice_discount` & `rep_can_edit_sales_order_discount` to RepPermissions and the Rep find-params filters — gate the header discount overwrite (`overwriteDeductionFixed`/`overwriteDeductionRatio`) on invoices and Sales Orders @mkhamis
20
20
  - add: header total `total_before_deduction_and_tax` (+ `pre_`/`return_` legs) on FullInvoice, Proforma and Cart (Schema, CreateBody, UpdateBody) — `total_before_tax + totalDeductionBeforeTax`, i.e. the net-of-tax subtotal before the cart (header) deduction; net of tax for inclusive-tax lines too, unlike `taxable_subtotal`. The Proforma types were also missing the `total_before_tax` / `pre_` / `return_` trio the backend has stored all along, so those are added alongside @mkhamis
21
+ - add: geo-zone (GeoZone) service and types — `find`/`get`/`create`/`update`/`remove`, `inject_assigned_reps` on find/get, GeoJSON `Polygon` (`{ type: "Polygon"; coordinates }`) with server-side ring validation, soft-delete via `disabled`, and the server-stamped `editor` audit object; `NotificationsCenter.Command` gains `update-geo-zone`; OAS `geo-zone.yaml`
22
+ - add: Rep `assigned_geo_zones` (RepSchema, RepBody, find-params filter, populated keys, RepWithPopulatedKeysSchema) — links a rep to geo zone(s) (currently at most one); OAS `rep.yaml`
23
+ - add: `rep_can_start_visit_out_of_geofence` & `rep_can_create_approval_request_to_start_visit_out_of_geofence` to RepPermissions and the Rep find-params filters — gate starting a visit while outside the geofence / assigned geo zone
24
+ - add: Settings geo-zone enforcement fields — `start_day_outside_active_zone_action` / `start_visit_outside_active_zone_action` / `work_outside_active_zone_action` (`monitor`/`warning`/`block`), `no_active_zone_action` (`allow`/`block`), `use_accuracy_radius_near_zone_boundary`, `zone_boundary_grace_minutes` (Settings.Data + UpdateBody); OAS `settings.yaml`
25
+ - add: bulkExport (BulkExport) service + types — `find` (list export jobs) and `create` (start an Excel/Parquet export job for ~50 entity types, keyed by `type`); mirrors `bulkImport` (the backend rejects get/update/patch/remove with 400); OAS `bulk-export.yaml`
21
26
 
22
27
  ### Changed
23
28
 
package/lib/index.d.ts CHANGED
@@ -22,6 +22,7 @@ export declare const end_points: {
22
22
  readonly TAG: "tag";
23
23
  readonly WAREHOUSE: "warehouse";
24
24
  readonly ROUTE: "route";
25
+ readonly GEO_ZONE: "geo-zone";
25
26
  readonly PRODUCT_MODIFIERS_GROUP: "product-modifiers-group";
26
27
  readonly CHANNEL: "client-channel";
27
28
  readonly SPECIALITY: "speciality";
@@ -50,6 +51,7 @@ export declare const end_points: {
50
51
  readonly VOID_SETTLEMENT: "void-settlement";
51
52
  readonly CHECK: "checks";
52
53
  readonly DAY: "day";
54
+ readonly DAY_SHIFT: "day-shift";
53
55
  readonly RECEIVING_MATERIAL: "receiving-material";
54
56
  readonly ADJUST_ACCOUNT: "adjust-account";
55
57
  readonly TRANSFER: "transfer";
@@ -145,11 +147,12 @@ export declare const end_points: {
145
147
  readonly CALENDAR: "calendar";
146
148
  readonly LINE_TARGET: "line-target";
147
149
  readonly BULK_IMPORT: "bulk-import";
150
+ readonly BULK_EXPORT: "bulk-export";
148
151
  readonly DELIVERY_NOTE: "delivery-note";
149
152
  readonly RESERVATION: "reservation";
150
153
  };
151
154
  export type EndPoints = (typeof end_points)[keyof typeof end_points];
152
- export declare const availableService: readonly ["client", "product", "variant", "category", "sub_category", "brand", "product_group", "tax", "measureunit", "measureunitFamily", "media", "priceList", "priceListItem", "team", "returnReason", "rep", "tag", "warehouse", "route", "productModifiersGroup", "channel", "speciality", "clientContact", "paymentTerm", "bank", "bank_list", "customStatus", "customList", "customListItem", "inventoryAdjustmentReason", "workorder", "workorderRequest", "supplier", "quickConvertToPdf", "visit", "activityFeedback", "activityFeedbackV2", "feedbackOption", "invoice", "proforma", "payment", "refund", "settlement", "voidSettlement", "check", "day", "receivingMaterial", "adjustAccount", "transfer", "msl", "mslProduct", "mediaStorage", "storecheckTemplate", "activityStorecheck", "activityItemStatus", "itemStatusType", "adjustInventory", "inventory", "integrationApp", "joinActionsWebHook", "patchAction", "updateIntegrationMeta", "assetPartType", "assetPart", "assetPartUnit", "assetPartReceival", "assetPartTransfer", "returnAssetPartUnit", "storeAssetPartUnit", "ocrInvoiceJobTemplate", "ocrInvoiceJobGroup", "activityAiSalesOrder", "ocrInvoiceJob", "ocrInvoiceJobPage", "settings", "mailUnsubscribe", "approvalRequest", "safeInvoiceSerialCounter", "clientLocation", "assetType", "asset", "assetUnit", "workorderPortal", "approval", "workorderCategory", "contract", "contractInstallment", "repBalanceSummary", "workorderPortalLink", "customField", "salesAnalyticsReport", "clmPresentation", "clmSequence", "clmSlide", "clmFetch", "pdfMergeField", "visitReason", "targetRule", "plan", "calendar", "lineTarget", "bulkImport"];
155
+ export declare const availableService: readonly ["client", "product", "variant", "category", "sub_category", "brand", "product_group", "tax", "measureunit", "measureunitFamily", "media", "priceList", "priceListItem", "team", "returnReason", "rep", "tag", "warehouse", "route", "geoZone", "productModifiersGroup", "channel", "speciality", "clientContact", "paymentTerm", "bank", "bank_list", "customStatus", "customList", "customListItem", "inventoryAdjustmentReason", "workorder", "workorderRequest", "supplier", "quickConvertToPdf", "visit", "activityFeedback", "activityFeedbackV2", "feedbackOption", "invoice", "proforma", "payment", "refund", "settlement", "voidSettlement", "check", "day", "dayShift", "receivingMaterial", "adjustAccount", "transfer", "msl", "mslProduct", "mediaStorage", "storecheckTemplate", "activityStorecheck", "activityItemStatus", "itemStatusType", "adjustInventory", "inventory", "integrationApp", "joinActionsWebHook", "patchAction", "updateIntegrationMeta", "assetPartType", "assetPart", "assetPartUnit", "assetPartReceival", "assetPartTransfer", "returnAssetPartUnit", "storeAssetPartUnit", "ocrInvoiceJobTemplate", "ocrInvoiceJobGroup", "activityAiSalesOrder", "ocrInvoiceJob", "ocrInvoiceJobPage", "settings", "mailUnsubscribe", "approvalRequest", "safeInvoiceSerialCounter", "clientLocation", "assetType", "asset", "assetUnit", "workorderPortal", "approval", "workorderCategory", "contract", "contractInstallment", "repBalanceSummary", "workorderPortalLink", "customField", "salesAnalyticsReport", "clmPresentation", "clmSequence", "clmSlide", "clmFetch", "pdfMergeField", "visitReason", "targetRule", "plan", "calendar", "lineTarget", "bulkImport", "bulkExport"];
153
156
  export type AvailableService = (typeof availableService)[number];
154
157
  export default class Repzo {
155
158
  private svAPIEndpoint;
@@ -184,6 +187,7 @@ export default class Repzo {
184
187
  readonly TAG: "tag";
185
188
  readonly WAREHOUSE: "warehouse";
186
189
  readonly ROUTE: "route";
190
+ readonly GEO_ZONE: "geo-zone";
187
191
  readonly PRODUCT_MODIFIERS_GROUP: "product-modifiers-group";
188
192
  readonly CHANNEL: "client-channel";
189
193
  readonly SPECIALITY: "speciality";
@@ -212,6 +216,7 @@ export default class Repzo {
212
216
  readonly VOID_SETTLEMENT: "void-settlement";
213
217
  readonly CHECK: "checks";
214
218
  readonly DAY: "day";
219
+ readonly DAY_SHIFT: "day-shift";
215
220
  readonly RECEIVING_MATERIAL: "receiving-material";
216
221
  readonly ADJUST_ACCOUNT: "adjust-account";
217
222
  readonly TRANSFER: "transfer";
@@ -307,6 +312,7 @@ export default class Repzo {
307
312
  readonly CALENDAR: "calendar";
308
313
  readonly LINE_TARGET: "line-target";
309
314
  readonly BULK_IMPORT: "bulk-import";
315
+ readonly BULK_EXPORT: "bulk-export";
310
316
  readonly DELIVERY_NOTE: "delivery-note";
311
317
  readonly RESERVATION: "reservation";
312
318
  };
@@ -316,7 +322,7 @@ export default class Repzo {
316
322
  private _update;
317
323
  private _patch;
318
324
  private _delete;
319
- available_services: readonly ["client", "product", "variant", "category", "sub_category", "brand", "product_group", "tax", "measureunit", "measureunitFamily", "media", "priceList", "priceListItem", "team", "returnReason", "rep", "tag", "warehouse", "route", "productModifiersGroup", "channel", "speciality", "clientContact", "paymentTerm", "bank", "bank_list", "customStatus", "customList", "customListItem", "inventoryAdjustmentReason", "workorder", "workorderRequest", "supplier", "quickConvertToPdf", "visit", "activityFeedback", "activityFeedbackV2", "feedbackOption", "invoice", "proforma", "payment", "refund", "settlement", "voidSettlement", "check", "day", "receivingMaterial", "adjustAccount", "transfer", "msl", "mslProduct", "mediaStorage", "storecheckTemplate", "activityStorecheck", "activityItemStatus", "itemStatusType", "adjustInventory", "inventory", "integrationApp", "joinActionsWebHook", "patchAction", "updateIntegrationMeta", "assetPartType", "assetPart", "assetPartUnit", "assetPartReceival", "assetPartTransfer", "returnAssetPartUnit", "storeAssetPartUnit", "ocrInvoiceJobTemplate", "ocrInvoiceJobGroup", "activityAiSalesOrder", "ocrInvoiceJob", "ocrInvoiceJobPage", "settings", "mailUnsubscribe", "approvalRequest", "safeInvoiceSerialCounter", "clientLocation", "assetType", "asset", "assetUnit", "workorderPortal", "approval", "workorderCategory", "contract", "contractInstallment", "repBalanceSummary", "workorderPortalLink", "customField", "salesAnalyticsReport", "clmPresentation", "clmSequence", "clmSlide", "clmFetch", "pdfMergeField", "visitReason", "targetRule", "plan", "calendar", "lineTarget", "bulkImport"];
325
+ available_services: readonly ["client", "product", "variant", "category", "sub_category", "brand", "product_group", "tax", "measureunit", "measureunitFamily", "media", "priceList", "priceListItem", "team", "returnReason", "rep", "tag", "warehouse", "route", "geoZone", "productModifiersGroup", "channel", "speciality", "clientContact", "paymentTerm", "bank", "bank_list", "customStatus", "customList", "customListItem", "inventoryAdjustmentReason", "workorder", "workorderRequest", "supplier", "quickConvertToPdf", "visit", "activityFeedback", "activityFeedbackV2", "feedbackOption", "invoice", "proforma", "payment", "refund", "settlement", "voidSettlement", "check", "day", "dayShift", "receivingMaterial", "adjustAccount", "transfer", "msl", "mslProduct", "mediaStorage", "storecheckTemplate", "activityStorecheck", "activityItemStatus", "itemStatusType", "adjustInventory", "inventory", "integrationApp", "joinActionsWebHook", "patchAction", "updateIntegrationMeta", "assetPartType", "assetPart", "assetPartUnit", "assetPartReceival", "assetPartTransfer", "returnAssetPartUnit", "storeAssetPartUnit", "ocrInvoiceJobTemplate", "ocrInvoiceJobGroup", "activityAiSalesOrder", "ocrInvoiceJob", "ocrInvoiceJobPage", "settings", "mailUnsubscribe", "approvalRequest", "safeInvoiceSerialCounter", "clientLocation", "assetType", "asset", "assetUnit", "workorderPortal", "approval", "workorderCategory", "contract", "contractInstallment", "repBalanceSummary", "workorderPortalLink", "customField", "salesAnalyticsReport", "clmPresentation", "clmSequence", "clmSlide", "clmFetch", "pdfMergeField", "visitReason", "targetRule", "plan", "calendar", "lineTarget", "bulkImport", "bulkExport"];
320
326
  generateUUID: ({ prefix, suffix, length, }: {
321
327
  prefix?: string;
322
328
  suffix?: string;
@@ -481,6 +487,14 @@ export default class Repzo {
481
487
  update: (id: Service.Route.Update.ID, body: Service.Route.Update.Body) => Promise<Service.Route.Update.Result>;
482
488
  remove: (id: Service.Route.Remove.ID) => Promise<Service.Route.Remove.Result>;
483
489
  };
490
+ geoZone: {
491
+ _path: "geo-zone";
492
+ find: (params?: Service.GeoZone.Find.Params) => Promise<Service.GeoZone.Find.Result>;
493
+ get: (id: Service.GeoZone.Get.ID, params?: Service.GeoZone.Get.Params) => Promise<Service.GeoZone.Get.Result>;
494
+ create: (body: Service.GeoZone.Create.Body) => Promise<Service.GeoZone.Create.Result>;
495
+ update: (id: Service.GeoZone.Update.ID, body: Service.GeoZone.Update.Body) => Promise<Service.GeoZone.Update.Result>;
496
+ remove: (id: Service.GeoZone.Remove.ID) => Promise<Service.GeoZone.Remove.Result>;
497
+ };
484
498
  productModifiersGroup: {
485
499
  _path: "product-modifiers-group";
486
500
  find: (params?: Service.ProductModifiersGroup.Find.Params) => Promise<Service.ProductModifiersGroup.Find.Result>;
@@ -675,6 +689,14 @@ export default class Repzo {
675
689
  get: (id: Service.Day.Get.ID, params?: Service.Day.Get.Params) => Promise<Service.Day.Get.Result>;
676
690
  create: (body: Service.Day.Create.Body) => Promise<Service.Day.Create.Result>;
677
691
  };
692
+ dayShift: {
693
+ _path: "day-shift";
694
+ find: (params?: Service.DayShift.Find.Params) => Promise<Service.DayShift.Find.Result>;
695
+ get: (id: Service.DayShift.Get.ID, params?: Service.DayShift.Get.Params) => Promise<Service.DayShift.Get.Result>;
696
+ create: (body: Service.DayShift.Create.Body) => Promise<Service.DayShift.Create.Result>;
697
+ update: (id: Service.DayShift.Update.ID, body: Service.DayShift.Update.Body) => Promise<Service.DayShift.Update.Result>;
698
+ remove: (id: Service.DayShift.Remove.ID) => Promise<Service.DayShift.Remove.Result>;
699
+ };
678
700
  receivingMaterial: {
679
701
  _path: "receiving-material";
680
702
  find: (params?: Service.ReceivingMaterial.Find.Params) => Promise<Service.ReceivingMaterial.Find.Result>;
@@ -1420,6 +1442,11 @@ export default class Repzo {
1420
1442
  create: (params: Service.BulkImport.Create.Params, body: Service.BulkImport.Create.Body) => Promise<Service.BulkImport.Create.Result>;
1421
1443
  update: (id: Service.BulkImport.Update.ID) => Promise<Service.BulkImport.Update.Result>;
1422
1444
  };
1445
+ bulkExport: {
1446
+ _path: "bulk-export";
1447
+ find: (params?: Service.BulkExport.Find.Params) => Promise<Service.BulkExport.Find.Result>;
1448
+ create: (params: Service.BulkExport.Create.Params, body: Service.BulkExport.Create.Body) => Promise<Service.BulkExport.Create.Result>;
1449
+ };
1423
1450
  deliveryNote: {
1424
1451
  _path: "delivery-note";
1425
1452
  find: (params?: Service.DeliveryNote.Find.Params) => Promise<Service.DeliveryNote.Find.Result>;
package/lib/index.js CHANGED
@@ -24,6 +24,7 @@ export const end_points = {
24
24
  TAG: "tag",
25
25
  WAREHOUSE: "warehouse",
26
26
  ROUTE: "route",
27
+ GEO_ZONE: "geo-zone",
27
28
  PRODUCT_MODIFIERS_GROUP: "product-modifiers-group",
28
29
  CHANNEL: "client-channel",
29
30
  SPECIALITY: "speciality",
@@ -52,6 +53,7 @@ export const end_points = {
52
53
  VOID_SETTLEMENT: "void-settlement",
53
54
  CHECK: "checks",
54
55
  DAY: "day",
56
+ DAY_SHIFT: "day-shift",
55
57
  RECEIVING_MATERIAL: "receiving-material",
56
58
  ADJUST_ACCOUNT: "adjust-account",
57
59
  TRANSFER: "transfer",
@@ -147,6 +149,7 @@ export const end_points = {
147
149
  CALENDAR: "calendar",
148
150
  LINE_TARGET: "line-target",
149
151
  BULK_IMPORT: "bulk-import",
152
+ BULK_EXPORT: "bulk-export",
150
153
  DELIVERY_NOTE: "delivery-note",
151
154
  RESERVATION: "reservation",
152
155
  };
@@ -170,6 +173,7 @@ export const availableService = [
170
173
  "tag",
171
174
  "warehouse",
172
175
  "route",
176
+ "geoZone",
173
177
  "productModifiersGroup",
174
178
  "channel",
175
179
  "speciality",
@@ -197,6 +201,7 @@ export const availableService = [
197
201
  "voidSettlement",
198
202
  "check",
199
203
  "day",
204
+ "dayShift",
200
205
  "receivingMaterial",
201
206
  "adjustAccount",
202
207
  "transfer",
@@ -253,6 +258,7 @@ export const availableService = [
253
258
  "calendar",
254
259
  "lineTarget",
255
260
  "bulkImport",
261
+ "bulkExport",
256
262
  ];
257
263
  class Repzo {
258
264
  constructor(apiKey, options) {
@@ -712,6 +718,28 @@ class Repzo {
712
718
  return res;
713
719
  },
714
720
  };
721
+ this.geoZone = {
722
+ _path: Repzo._end_points.GEO_ZONE,
723
+ find: async (params) => {
724
+ let res = await this._fetch(this.svAPIEndpoint, this.geoZone._path, params);
725
+ return res;
726
+ },
727
+ get: async (id, params) => {
728
+ return await this._fetch(this.svAPIEndpoint, this.geoZone._path + `/${id}`, params);
729
+ },
730
+ create: async (body) => {
731
+ let res = await this._create(this.svAPIEndpoint, this.geoZone._path, body);
732
+ return res;
733
+ },
734
+ update: async (id, body) => {
735
+ let res = await this._update(this.svAPIEndpoint, this.geoZone._path + `/${id}`, body);
736
+ return res;
737
+ },
738
+ remove: async (id) => {
739
+ let res = await this._delete(this.svAPIEndpoint, this.geoZone._path + `/${id}`);
740
+ return res;
741
+ },
742
+ };
715
743
  this.productModifiersGroup = {
716
744
  _path: Repzo._end_points.PRODUCT_MODIFIERS_GROUP,
717
745
  find: async (params) => {
@@ -1219,6 +1247,28 @@ class Repzo {
1219
1247
  return res;
1220
1248
  },
1221
1249
  };
1250
+ this.dayShift = {
1251
+ _path: Repzo._end_points.DAY_SHIFT,
1252
+ find: async (params) => {
1253
+ let res = await this._fetch(this.svAPIEndpoint, this.dayShift._path, params);
1254
+ return res;
1255
+ },
1256
+ get: async (id, params) => {
1257
+ return await this._fetch(this.svAPIEndpoint, this.dayShift._path + `/${id}`, params);
1258
+ },
1259
+ create: async (body) => {
1260
+ let res = await this._create(this.svAPIEndpoint, this.dayShift._path, body);
1261
+ return res;
1262
+ },
1263
+ update: async (id, body) => {
1264
+ let res = await this._update(this.svAPIEndpoint, this.dayShift._path + `/${id}`, body);
1265
+ return res;
1266
+ },
1267
+ remove: async (id) => {
1268
+ let res = await this._delete(this.svAPIEndpoint, this.dayShift._path + `/${id}`);
1269
+ return res;
1270
+ },
1271
+ };
1222
1272
  this.receivingMaterial = {
1223
1273
  _path: Repzo._end_points.RECEIVING_MATERIAL,
1224
1274
  find: async (params) => {
@@ -2955,6 +3005,17 @@ class Repzo {
2955
3005
  return res;
2956
3006
  },
2957
3007
  };
3008
+ this.bulkExport = {
3009
+ _path: Repzo._end_points.BULK_EXPORT,
3010
+ find: async (params) => {
3011
+ let res = await this._fetch(this.svAPIEndpoint, this.bulkExport._path, params);
3012
+ return res;
3013
+ },
3014
+ create: async (params, body) => {
3015
+ let res = await this._create(this.svAPIEndpoint, this.bulkExport._path, body, params);
3016
+ return res;
3017
+ },
3018
+ };
2958
3019
  this.deliveryNote = {
2959
3020
  _path: Repzo._end_points.DELIVERY_NOTE,
2960
3021
  find: async (params) => {