@erp-galoper/types 1.0.1904 → 1.0.1906

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 (2) hide show
  1. package/openapi.ts +36 -4
  2. package/package.json +1 -1
package/openapi.ts CHANGED
@@ -14524,6 +14524,8 @@ export interface paths {
14524
14524
  * - rangePricingNotAllowedForRetail
14525
14525
  * - exchangeRateRequired
14526
14526
  * - itemIsNotAssignedToADefaultSalesUnitOfMeasure
14527
+ * - invalidUnitOfMeasureForRetail
14528
+ * - duplicateItemInPriceList
14527
14529
  *
14528
14530
  * - 403: permissionDenied
14529
14531
  * - noModuleAccess
@@ -14653,6 +14655,8 @@ export interface paths {
14653
14655
  * - retailPriceListExists
14654
14656
  * - rangePricingNotAllowedForRetail
14655
14657
  * - itemIsNotAssignedToADefaultSalesUnitOfMeasure
14658
+ * - invalidUnitOfMeasureForRetail
14659
+ * - duplicateItemInPriceList
14656
14660
  *
14657
14661
  * - 403: permissionDenied
14658
14662
  * - noModuleAccess
@@ -49031,6 +49035,10 @@ export interface components {
49031
49035
  item: components["schemas"]["ItemSchema"];
49032
49036
  /** @description incase itemPackage is selected, price will be applied to the itemPackage */
49033
49037
  itemPackage: components["schemas"]["ItemPackageSchema"] | null;
49038
+ /**
49039
+ * @description Unit of measure used for pricing this line.
49040
+ * For retail price lists this is always the item's default sales UOM (or the package UOM when a package is selected).
49041
+ */
49034
49042
  unitOfMeasure: components["schemas"]["UnitOfMeasureSummaryInfo"];
49035
49043
  /**
49036
49044
  * Cost
@@ -49181,14 +49189,29 @@ export interface components {
49181
49189
  * Itempackage
49182
49190
  * Format: uuid
49183
49191
  * @description ID of the item package to which the pricing is applied. Required when the item has packages.
49192
+ *
49193
+ * When provided on a **retail** price list, `unitOfMeasure` must match this package's unit of measure.
49194
+ * Sending a mismatched unit of measure is rejected with error code `invalidUnitOfMeasureForRetail`.
49184
49195
  */
49185
49196
  itemPackage?: string;
49186
49197
  /**
49187
49198
  * Unitofmeasure
49188
49199
  * Format: uuid
49189
49200
  * @description ID of the unit of measure for the item.
49190
- * - incase of retail price list type unit of measure should the default_sale_unit_of_measure of the item
49191
- * - If itemPackage this field is required and should match the unit of measure of the item package.
49201
+ *
49202
+ * **Wholesale price lists:**
49203
+ * - The user may select any valid unit of measure for the item.
49204
+ * - Each unique combination of item + itemPackage + unitOfMeasure can appear only once in the price list.
49205
+ *
49206
+ * **Retail price lists:**
49207
+ * - This field must exactly match the item's `default_sale_unit_of_measure` when no package is selected.
49208
+ * - When `itemPackage` is provided, this field must exactly match the package's unit of measure.
49209
+ * - Sending a different unit of measure is rejected with error code `invalidUnitOfMeasureForRetail` on field `items.{index}.unitOfMeasure`.
49210
+ * - The frontend should auto-populate this field from the item's default sales UOM (or the package UOM) and should not allow the user to change it for retail lists.
49211
+ *
49212
+ * **Duplicate validation:**
49213
+ * - The same item + itemPackage + unitOfMeasure combination cannot appear more than once.
49214
+ * - For retail lists, validation uses the resolved default/package UOM, so two lines with different UOMs that both resolve to the same default will be rejected with error code `duplicateItemInPriceList` on field `items.{index}.item`.
49192
49215
  */
49193
49216
  unitOfMeasure: string;
49194
49217
  /**
@@ -49249,7 +49272,13 @@ export interface components {
49249
49272
  * @description Name of the price list.
49250
49273
  */
49251
49274
  name: string;
49252
- /** @description Type of price list, either 'wholesale' or 'retail', when retail is selected, pricing type should be fixed */
49275
+ /**
49276
+ * @description Type of price list: `wholesale` or `retail`.
49277
+ *
49278
+ * - When `retail` is selected, `pricingType` must be `fixed`.
49279
+ * - **Retail** lists always price items in the item's default sales unit of measure (or the package UOM when a package is selected). The frontend must not allow selecting a different UOM.
49280
+ * - **Wholesale** lists allow pricing the same item in multiple units of measure.
49281
+ */
49253
49282
  priceListType: components["schemas"]["PRICE_LIST_TYPE_CHOICES"];
49254
49283
  /**
49255
49284
  * Branch
@@ -49315,6 +49344,9 @@ export interface components {
49315
49344
  /**
49316
49345
  * Items
49317
49346
  * @description List of items with their corresponding prices defined in this price list. At least one item must be included.
49347
+ *
49348
+ * Each line is uniquely identified by the combination of `item`, `itemPackage`, and `unitOfMeasure`.
49349
+ * Duplicate combinations within the same request are rejected with error code `duplicateItemInPriceList`.
49318
49350
  */
49319
49351
  items: components["schemas"]["CreateUpdateSalesPriceListItemSchema"][];
49320
49352
  };
@@ -103138,7 +103170,7 @@ export interface operations {
103138
103170
  regionIds?: number[] | null;
103139
103171
  /** @description Show invoices unpaid as of this date */
103140
103172
  asOfDate?: string | null;
103141
- /** @description Filter by assigned sales persons using route /api/v1/commissions/sales-persons */
103173
+ /** @description Filter by sales person assigned on the sales invoice (SalesInvoice.salesPerson), not by customer assignment. Returns unpaid/partially paid invoices for that sales person across all customers, then groups results by each customer's region. */
103142
103174
  salesPersonId?: string | null;
103143
103175
  /** @description Filter by customer group using route api/v1/common/contact-segmentation/ and filter by type equals customer */
103144
103176
  customerGroupIds?: string[] | null;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@erp-galoper/types",
3
- "version": "1.0.1904",
3
+ "version": "1.0.1906",
4
4
  "main": "openapi.ts",
5
5
  "types": "openapi.ts",
6
6
  "files": ["openapi.ts"],