sinfactura-types 1.10.539 → 1.10.540
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/dist/cjs/order.js +3 -0
- package/dist/cjs/presupuesto.js +3 -0
- package/dist/cjs/serviceOrder.js +3 -0
- package/dist/order.d.ts +25 -1
- package/dist/order.js +3 -0
- package/dist/presupuesto.d.ts +1 -1
- package/dist/presupuesto.js +3 -0
- package/dist/product.d.ts +38 -1
- package/dist/serviceOrder.d.ts +1 -1
- package/dist/serviceOrder.js +3 -0
- package/package.json +1 -1
package/dist/cjs/order.js
CHANGED
|
@@ -336,6 +336,9 @@ exports.ORDER_ERROR_CODES = [
|
|
|
336
336
|
'SALE_LEDGER_RETRACTION_REFUSED',
|
|
337
337
|
'SALE_LEDGER_ROW_NOT_OWNED',
|
|
338
338
|
'PRODUCT_NOT_FOUND',
|
|
339
|
+
// The per-sale cap on create and quantity-increasing edits (`ProductSaleLimitRefusal`).
|
|
340
|
+
'PRODUCT_SALE_LIMIT_EXCEEDED',
|
|
341
|
+
'PRODUCT_SALE_LIMIT_INVALID',
|
|
339
342
|
// `POST /orders { mode: 'deposit' }` — see `OrderDepositRequest`.
|
|
340
343
|
'DEPOSIT_SOURCE_NOT_ALLOWED',
|
|
341
344
|
'DEPOSIT_CURRENCY_MISMATCH',
|
package/dist/cjs/presupuesto.js
CHANGED
|
@@ -170,4 +170,7 @@ exports.PRESUPUESTO_ERROR_CODES = [
|
|
|
170
170
|
// puts on the wire. Spelling a second, tidier code for the same refusal would
|
|
171
171
|
// make one client branch answer two ways depending on which surface refused.
|
|
172
172
|
'STOCK INSUFICIENTE',
|
|
173
|
+
// The per-sale cap refusal every sale entry point shares (`ProductSaleLimitRefusal`).
|
|
174
|
+
'PRODUCT_SALE_LIMIT_EXCEEDED',
|
|
175
|
+
'PRODUCT_SALE_LIMIT_INVALID',
|
|
173
176
|
];
|
package/dist/cjs/serviceOrder.js
CHANGED
|
@@ -298,6 +298,9 @@ exports.SERVICE_ORDER_ERROR_CODES = [
|
|
|
298
298
|
'SERVICE_BILLING_PRODUCT_IN_BASKET',
|
|
299
299
|
'SERVICE_DELIVERY_BASKET_DECISION_REQUIRED',
|
|
300
300
|
'PRODUCT_NOT_AVAILABLE',
|
|
301
|
+
// The per-sale cap on the basket's sale lines (`ProductSaleLimitRefusal`).
|
|
302
|
+
'PRODUCT_SALE_LIMIT_EXCEEDED',
|
|
303
|
+
'PRODUCT_SALE_LIMIT_INVALID',
|
|
301
304
|
'FX_CONVERSION_UNAVAILABLE',
|
|
302
305
|
'TRANSACT_ITEMS_LIMIT_EXCEEDED',
|
|
303
306
|
// Parts
|
package/dist/order.d.ts
CHANGED
|
@@ -1449,6 +1449,30 @@ declare global {
|
|
|
1449
1449
|
* to be mis-linked.
|
|
1450
1450
|
*/
|
|
1451
1451
|
unlinkedLines?: number;
|
|
1452
|
+
/**
|
|
1453
|
+
* Every linked product whose summed quantity on this order breaks its
|
|
1454
|
+
* per-sale cap ({@link Product.limit}) — one entry per product, never one
|
|
1455
|
+
* per line. `limit` is the stored cap, or `null` when the stored value is
|
|
1456
|
+
* not interpretable and the operator must re-save the product.
|
|
1457
|
+
*
|
|
1458
|
+
* A RECORD, not a refusal: a paid MercadoLibre order is never refused or
|
|
1459
|
+
* clamped for a cap — it is persisted and moves stock exactly as any other,
|
|
1460
|
+
* and this tells the operator it happened.
|
|
1461
|
+
*
|
|
1462
|
+
* Absent means no breach, nothing linked ever graded, or an order not
|
|
1463
|
+
* (or no longer) paid before its stock moved — graded only while `paid`,
|
|
1464
|
+
* the same gate stock application waits on. Written at upsert: graded
|
|
1465
|
+
* until the order's stock decrement lands (`Order.stockAppliedAt`), then
|
|
1466
|
+
* carried forward verbatim, so a replayed event or a cap edited afterwards
|
|
1467
|
+
* neither duplicates nor flips it. An event with no linked lines to grade
|
|
1468
|
+
* carries the stored value rather than clearing it.
|
|
1469
|
+
*/
|
|
1470
|
+
saleLimit?: {
|
|
1471
|
+
productId: string;
|
|
1472
|
+
limit: number | null;
|
|
1473
|
+
/** `null` only when a stored line's quantity is not a finite number. */
|
|
1474
|
+
requestedQuantity: number | null;
|
|
1475
|
+
}[];
|
|
1452
1476
|
};
|
|
1453
1477
|
/**
|
|
1454
1478
|
* `fiscal_documents` upload outcome. Absent = no invoice issued yet.
|
|
@@ -2303,6 +2327,6 @@ export declare const orderFulfilmentProgress: (order: OrderFulfilmentProgressInp
|
|
|
2303
2327
|
* `SUBSCRIPTION_READONLY`) sit on the order CREATE leg only: an edit is not a new
|
|
2304
2328
|
* order, so `bareOrderPostHandler` routes past `requireMetered` entirely.
|
|
2305
2329
|
*/
|
|
2306
|
-
export declare const ORDER_ERROR_CODES: readonly ["ORDER_NOT_FOUND", "ORDER_LOCKED", "ORDER_NOT_READY", "ORDER_DELIVERED_ANOTHER_DAY", "ORDER_DELIVERY_STATE_UNCHANGED", "ORDER_ILLEGAL_TRANSITION", "ORDER_VERSION_CONFLICT", "CUSTOMER_NOT_FOUND", "CUSTOMER_MERGED", "ORDER_HAS_NO_CUSTOMER", "CUSTOMER_ANONYMIZED", "FX_CONVERSION_UNAVAILABLE", "ROLE_FORBIDDEN", "ORDER_CANCELLED", "PAYMENT_SETTLED_ON_ANOTHER_ORDER", "ORDER_HAS_SHIPMENTS", "ORDER_HAS_RETURNS", "SHIPMENT_QUANTITY_EXCEEDED", "SHIPMENT_LINE_MISMATCH", "SHIPMENT_NOT_FOUND", "SHIPMENT_LIMIT_REACHED", "SHIPMENT_TOO_LARGE", "ORDER_FULFILMENT_EXTERNAL", "SHIPMENT_FAILED", "ADMIN_REQUIRED", "IDEMPOTENCY_KEY_REQUIRED", "INVALID_IDEMPOTENCY_KEY", "IDEMPOTENCY_KEY_REUSE", "IDEMPOTENCY_IN_PROGRESS", "IDEMPOTENCY_LOCK_CONTENTION", "IDEMPOTENCY_KEY_FAILED", "IDEMPOTENT_RESPONSE_NOT_CACHED", "ORDER_CANCELLATION_NOT_PROTECTED", "ORDER_CANCELLATION_COMMITTED", "ORDER_CANCELLATION_LOCKED", "ORDER_CANCELLATION_TOO_LARGE", "ORDER_CANCELLATION_FAILED", "SALE_LEDGER_RETRACTION_REFUSED", "SALE_LEDGER_ROW_NOT_OWNED", "PRODUCT_NOT_FOUND", "DEPOSIT_SOURCE_NOT_ALLOWED", "DEPOSIT_CURRENCY_MISMATCH", "DEPOSIT_EXCEEDS_TOTAL", "DEPOSIT_FREEZE_REQUIRES_INVOICE", "DEPOSIT_FREEZE_INVOICE_PENDING", "DEPOSIT_CHARACTERIZATION_CONFLICT", "DEPOSIT_FREEZE_INVOICE_NOT_QUALIFYING", "DEPOSIT_INVOICED_ORDER_MUST_FREEZE", "DEPOSIT_REFERENCE_IS_LINKED_PAYMENT", "DEPOSIT_DUPLICATE_REFERENCE", "PAYMENT_REFERENCED_BY_DEPOSIT", "ORDER_HAS_UNREFUNDED_DEPOSIT", "DEPOSIT_NOT_FOUND", "DEPOSIT_ALREADY_REFUNDED"];
|
|
2330
|
+
export declare const ORDER_ERROR_CODES: readonly ["ORDER_NOT_FOUND", "ORDER_LOCKED", "ORDER_NOT_READY", "ORDER_DELIVERED_ANOTHER_DAY", "ORDER_DELIVERY_STATE_UNCHANGED", "ORDER_ILLEGAL_TRANSITION", "ORDER_VERSION_CONFLICT", "CUSTOMER_NOT_FOUND", "CUSTOMER_MERGED", "ORDER_HAS_NO_CUSTOMER", "CUSTOMER_ANONYMIZED", "FX_CONVERSION_UNAVAILABLE", "ROLE_FORBIDDEN", "ORDER_CANCELLED", "PAYMENT_SETTLED_ON_ANOTHER_ORDER", "ORDER_HAS_SHIPMENTS", "ORDER_HAS_RETURNS", "SHIPMENT_QUANTITY_EXCEEDED", "SHIPMENT_LINE_MISMATCH", "SHIPMENT_NOT_FOUND", "SHIPMENT_LIMIT_REACHED", "SHIPMENT_TOO_LARGE", "ORDER_FULFILMENT_EXTERNAL", "SHIPMENT_FAILED", "ADMIN_REQUIRED", "IDEMPOTENCY_KEY_REQUIRED", "INVALID_IDEMPOTENCY_KEY", "IDEMPOTENCY_KEY_REUSE", "IDEMPOTENCY_IN_PROGRESS", "IDEMPOTENCY_LOCK_CONTENTION", "IDEMPOTENCY_KEY_FAILED", "IDEMPOTENT_RESPONSE_NOT_CACHED", "ORDER_CANCELLATION_NOT_PROTECTED", "ORDER_CANCELLATION_COMMITTED", "ORDER_CANCELLATION_LOCKED", "ORDER_CANCELLATION_TOO_LARGE", "ORDER_CANCELLATION_FAILED", "SALE_LEDGER_RETRACTION_REFUSED", "SALE_LEDGER_ROW_NOT_OWNED", "PRODUCT_NOT_FOUND", "PRODUCT_SALE_LIMIT_EXCEEDED", "PRODUCT_SALE_LIMIT_INVALID", "DEPOSIT_SOURCE_NOT_ALLOWED", "DEPOSIT_CURRENCY_MISMATCH", "DEPOSIT_EXCEEDS_TOTAL", "DEPOSIT_FREEZE_REQUIRES_INVOICE", "DEPOSIT_FREEZE_INVOICE_PENDING", "DEPOSIT_CHARACTERIZATION_CONFLICT", "DEPOSIT_FREEZE_INVOICE_NOT_QUALIFYING", "DEPOSIT_INVOICED_ORDER_MUST_FREEZE", "DEPOSIT_REFERENCE_IS_LINKED_PAYMENT", "DEPOSIT_DUPLICATE_REFERENCE", "PAYMENT_REFERENCED_BY_DEPOSIT", "ORDER_HAS_UNREFUNDED_DEPOSIT", "DEPOSIT_NOT_FOUND", "DEPOSIT_ALREADY_REFUNDED"];
|
|
2307
2331
|
export type OrderErrorCode = (typeof ORDER_ERROR_CODES)[number];
|
|
2308
2332
|
export {};
|
package/dist/order.js
CHANGED
|
@@ -329,6 +329,9 @@ export const ORDER_ERROR_CODES = [
|
|
|
329
329
|
'SALE_LEDGER_RETRACTION_REFUSED',
|
|
330
330
|
'SALE_LEDGER_ROW_NOT_OWNED',
|
|
331
331
|
'PRODUCT_NOT_FOUND',
|
|
332
|
+
// The per-sale cap on create and quantity-increasing edits (`ProductSaleLimitRefusal`).
|
|
333
|
+
'PRODUCT_SALE_LIMIT_EXCEEDED',
|
|
334
|
+
'PRODUCT_SALE_LIMIT_INVALID',
|
|
332
335
|
// `POST /orders { mode: 'deposit' }` — see `OrderDepositRequest`.
|
|
333
336
|
'DEPOSIT_SOURCE_NOT_ALLOWED',
|
|
334
337
|
'DEPOSIT_CURRENCY_MISMATCH',
|
package/dist/presupuesto.d.ts
CHANGED
|
@@ -246,6 +246,6 @@ export declare const PRESUPUESTO_IMMUTABLE_STATUSES: readonly ["rejected", "expi
|
|
|
246
246
|
* operator can act on is the distinct-product ceiling those items derive
|
|
247
247
|
* from, and the two refuse at exactly the same point.
|
|
248
248
|
*/
|
|
249
|
-
export declare const PRESUPUESTO_ERROR_CODES: readonly ["PRESUPUESTO_NOT_FOUND", "VALIDATION_FAILED", "ADMIN_REQUIRED", "INVALID_CURSOR", "PRODUCT_COST_UNKNOWN", "PRESUPUESTO_NOT_MUTABLE", "PRESUPUESTO_ILLEGAL_TRANSITION", "PRESUPUESTO_ALREADY_CONVERTED", "PRESUPUESTO_NOT_APPROVED", "PRESUPUESTO_TOO_MANY_PRODUCTS", "TRANSACTION_ITEMS_LIMIT_REACHED", "PRODUCT_NOT_FOUND", "STOCK INSUFICIENTE"];
|
|
249
|
+
export declare const PRESUPUESTO_ERROR_CODES: readonly ["PRESUPUESTO_NOT_FOUND", "VALIDATION_FAILED", "ADMIN_REQUIRED", "INVALID_CURSOR", "PRODUCT_COST_UNKNOWN", "PRESUPUESTO_NOT_MUTABLE", "PRESUPUESTO_ILLEGAL_TRANSITION", "PRESUPUESTO_ALREADY_CONVERTED", "PRESUPUESTO_NOT_APPROVED", "PRESUPUESTO_TOO_MANY_PRODUCTS", "TRANSACTION_ITEMS_LIMIT_REACHED", "PRODUCT_NOT_FOUND", "STOCK INSUFICIENTE", "PRODUCT_SALE_LIMIT_EXCEEDED", "PRODUCT_SALE_LIMIT_INVALID"];
|
|
250
250
|
export type PresupuestoErrorCode = (typeof PRESUPUESTO_ERROR_CODES)[number];
|
|
251
251
|
export {};
|
package/dist/presupuesto.js
CHANGED
|
@@ -167,4 +167,7 @@ export const PRESUPUESTO_ERROR_CODES = [
|
|
|
167
167
|
// puts on the wire. Spelling a second, tidier code for the same refusal would
|
|
168
168
|
// make one client branch answer two ways depending on which surface refused.
|
|
169
169
|
'STOCK INSUFICIENTE',
|
|
170
|
+
// The per-sale cap refusal every sale entry point shares (`ProductSaleLimitRefusal`).
|
|
171
|
+
'PRODUCT_SALE_LIMIT_EXCEEDED',
|
|
172
|
+
'PRODUCT_SALE_LIMIT_INVALID',
|
|
170
173
|
];
|
package/dist/product.d.ts
CHANGED
|
@@ -321,7 +321,19 @@ declare global {
|
|
|
321
321
|
widthMm?: number;
|
|
322
322
|
/** Third edge of the shipping envelope, in MILLIMETRES. See {@link Product.lengthMm}. */
|
|
323
323
|
heightMm?: number;
|
|
324
|
-
|
|
324
|
+
/**
|
|
325
|
+
* Most units of this product ONE sale may carry, summed across every line of
|
|
326
|
+
* the operation. Enforced server-side on every local sale entry point
|
|
327
|
+
* (order create, storefront and WhatsApp checkout, presupuesto conversion,
|
|
328
|
+
* service delivery, and quantity-increasing edits), which refuse
|
|
329
|
+
* `409 PRODUCT_SALE_LIMIT_EXCEEDED` — see {@link ProductSaleLimitRefusal}.
|
|
330
|
+
*
|
|
331
|
+
* ⚠️ Absent, `null` and `0` all mean UNCAPPED; a write of `0` is stored as
|
|
332
|
+
* `null`. A new value must be a positive integer. A legacy row holding
|
|
333
|
+
* anything else refuses new sales with `PRODUCT_SALE_LIMIT_INVALID`.
|
|
334
|
+
* MercadoLibre orders are never refused — a breach is flagged instead.
|
|
335
|
+
*/
|
|
336
|
+
limit?: number | null;
|
|
325
337
|
incomes?: {
|
|
326
338
|
stockId: string;
|
|
327
339
|
orderId?: string;
|
|
@@ -668,6 +680,31 @@ declare global {
|
|
|
668
680
|
*/
|
|
669
681
|
computedAt: number;
|
|
670
682
|
}
|
|
683
|
+
/**
|
|
684
|
+
* The 409 body every sale entry point returns when an operation breaks a
|
|
685
|
+
* product's {@link Product.limit}.
|
|
686
|
+
*
|
|
687
|
+
* - `PRODUCT_SALE_LIMIT_EXCEEDED` — `requestedQuantity` (the operation's total
|
|
688
|
+
* for that product, unrounded) is above `limit`.
|
|
689
|
+
* - `PRODUCT_SALE_LIMIT_INVALID` — the stored cap is not interpretable;
|
|
690
|
+
* `limit` is `null` and the operator must re-save the product.
|
|
691
|
+
*
|
|
692
|
+
* The pre-check refuses before any stock, tender, coupon or fiscal effect, so
|
|
693
|
+
* a client may keep the draft and retry once the quantity is reduced. A cap
|
|
694
|
+
* lowered between that check and the commit is refused by the commit itself,
|
|
695
|
+
* with the same body — nothing is written, but effects that precede every
|
|
696
|
+
* commit on that surface (a redeemed coupon) are not undone.
|
|
697
|
+
*/
|
|
698
|
+
interface ProductSaleLimitRefusal {
|
|
699
|
+
message: string;
|
|
700
|
+
error: 'PRODUCT_SALE_LIMIT_EXCEEDED' | 'PRODUCT_SALE_LIMIT_INVALID';
|
|
701
|
+
data: {
|
|
702
|
+
productId: string;
|
|
703
|
+
limit: number | null;
|
|
704
|
+
/** `null` only when a stored line's quantity is not a finite number. */
|
|
705
|
+
requestedQuantity: number | null;
|
|
706
|
+
};
|
|
707
|
+
}
|
|
671
708
|
/**
|
|
672
709
|
* `GET /products?mode=associations&productIds=A,B,C` — the stored model for the
|
|
673
710
|
* products on the line, in one read.
|
package/dist/serviceOrder.d.ts
CHANGED
|
@@ -1339,6 +1339,6 @@ export declare const MAX_SERVICE_PICTURES = 20;
|
|
|
1339
1339
|
* check `GATING_ERROR_CODES` in addition. The deposit's opt-in idempotency
|
|
1340
1340
|
* refusals are included here.
|
|
1341
1341
|
*/
|
|
1342
|
-
export declare const SERVICE_ORDER_ERROR_CODES: readonly ["ROLE_FORBIDDEN", "PARENT_FILTER_CONFLICT", "VALIDATION_FAILED", "INVALID_CURSOR", "INVALID_FROM_DATE", "INVALID_TO_DATE", "INVALID_DATE_RANGE", "REWORK_INDEX_UNAVAILABLE", "STORE_NOT_FOUND", "SERVICE_ORDER_NOT_FOUND", "CUSTOMER_NOT_FOUND", "PARENT_SERVICE_ORDER_NOT_FOUND", "SERVICE_TEMPLATE_NOT_FOUND", "SERVICE_TYPE_REQUIRED", "INVALID_IMAGE_REFERENCE", "MISSING_STORE_CONTEXT", "WARRANTY_BELOW_LEGAL_MINIMUM", "TECHNICIAN_NOT_FOUND", "TECHNICIAN_NOT_ELIGIBLE", "CUSTODY_ILLEGAL_TRANSITION", "SERVICE_ORDER_BILLABLE_FROZEN", "SERVICE_ORDER_EDIT_CHANGED", "SERVICE_ORDER_DISABLED_STATE_UNCHANGED", "APPOINTMENT_NOT_FOUND", "APPOINTMENT_NOT_LINKABLE", "APPOINTMENT_NOT_OPEN", "APPOINTMENT_CUSTOMER_MISMATCH", "APPOINTMENT_VERSION_CONFLICT", "SERVICE_ORDER_TERMINAL", "SERVICE_ORDER_DISABLED", "SERVICE_ORDER_ILLEGAL_TRANSITION", "SERVICE_ORDER_STATUS_CHANGED", "SERVICE_ORDER_OUTCOME_REQUIRED", "SERVICE_ORDER_OUTCOME_NOT_ALLOWED", "SERVICE_ORDER_CUSTODY_NOT_RECEIVED", "SERVICE_ORDER_BILLABLE_NOT_AT_THIS_TRANSITION", "PAYMENT_METHODS_NOT_CONFIGURED", "PAYMENT_METHOD_NOT_FOUND", "SERVICE_ORDER_DEPOSIT_CHANGED", "INVALID_IDEMPOTENCY_KEY", "IDEMPOTENCY_KEY_REUSE", "IDEMPOTENCY_IN_PROGRESS", "IDEMPOTENCY_KEY_FAILED", "IDEMPOTENCY_LOCK_CONTENTION", "SERVICE_DEPOSIT_CURRENCY_MISMATCH", "SERVICE_DEPOSIT_INVALID", "INVALID_AMOUNT", "DEFAULT_DRAWER_UNAVAILABLE", "CURRENCY_MISMATCH", "SHIFT_NOT_OPEN", "SERVICE_BILLING_PRODUCTS_UNAVAILABLE", "SERVICE_BILLING_PRODUCT_IN_BASKET", "SERVICE_DELIVERY_BASKET_DECISION_REQUIRED", "PRODUCT_NOT_AVAILABLE", "FX_CONVERSION_UNAVAILABLE", "TRANSACT_ITEMS_LIMIT_EXCEEDED", "SERVICE_PARTS_RESTORE_EXCEEDS_CONSUMED", "SERVICE_PARTS_RESTORE_EXCEEDS_AMOUNT", "SERVICE_PARTS_STOCK_INSUFFICIENT", "SERVICE_PARTS_PRODUCT_NOT_FOUND", "SERVICE_PARTS_LEDGER_FULL", "SERVICE_PARTS_TOO_MANY", "SERVICE_ORDER_PARTS_CHANGED", "SERVICE_QUOTE_NOT_FOUND", "SERVICE_QUOTE_NOT_OFFERABLE", "SERVICE_QUOTE_HOLDS_TOO_MANY", "SERVICE_QUOTE_SUPERSEDED", "SERVICE_QUOTE_ALREADY_RESOLVED", "SERVICE_QUOTE_LAPSED", "SERVICE_QUOTE_CHANNEL_RESERVED", "SERVICE_QUOTE_CHANNEL_NOT_APPLICABLE", "SERVICE_QUOTE_REASON_NOT_APPLICABLE", "SERVICE_ORDER_QUOTE_CHANGED", "SERVICE_ORDER_NOT_READY", "SERVICE_RENOTIFY_IMPERSONATED", "SERVICE_RENOTIFY_TOO_SOON", "SERVICE_RENOTIFY_CONFLICT", "SERVICE_RENOTIFY_NOT_RECORDED", "SERVICE_RENOTIFY_LEDGER_UNREADABLE", "SERVICE_RENOTIFY_NOT_DISPATCHED", "SERVICE_TIMER_ALREADY_RUNNING", "SERVICE_TIMER_NOT_RUNNING", "SERVICE_TIMER_STOP_CONFLICT", "TECHNICIAN_NOT_CLOCKED_IN", "SERVICE_ORDER_GONE", "SERVICE_WORKLOG_NOT_FOUND", "SERVICE_WORKLOG_NOT_REVERSIBLE", "SERVICE_WORKLOG_ALREADY_REVERSED", "SERVICE_ORDER_WORKLOG_CHANGED"];
|
|
1342
|
+
export declare const SERVICE_ORDER_ERROR_CODES: readonly ["ROLE_FORBIDDEN", "PARENT_FILTER_CONFLICT", "VALIDATION_FAILED", "INVALID_CURSOR", "INVALID_FROM_DATE", "INVALID_TO_DATE", "INVALID_DATE_RANGE", "REWORK_INDEX_UNAVAILABLE", "STORE_NOT_FOUND", "SERVICE_ORDER_NOT_FOUND", "CUSTOMER_NOT_FOUND", "PARENT_SERVICE_ORDER_NOT_FOUND", "SERVICE_TEMPLATE_NOT_FOUND", "SERVICE_TYPE_REQUIRED", "INVALID_IMAGE_REFERENCE", "MISSING_STORE_CONTEXT", "WARRANTY_BELOW_LEGAL_MINIMUM", "TECHNICIAN_NOT_FOUND", "TECHNICIAN_NOT_ELIGIBLE", "CUSTODY_ILLEGAL_TRANSITION", "SERVICE_ORDER_BILLABLE_FROZEN", "SERVICE_ORDER_EDIT_CHANGED", "SERVICE_ORDER_DISABLED_STATE_UNCHANGED", "APPOINTMENT_NOT_FOUND", "APPOINTMENT_NOT_LINKABLE", "APPOINTMENT_NOT_OPEN", "APPOINTMENT_CUSTOMER_MISMATCH", "APPOINTMENT_VERSION_CONFLICT", "SERVICE_ORDER_TERMINAL", "SERVICE_ORDER_DISABLED", "SERVICE_ORDER_ILLEGAL_TRANSITION", "SERVICE_ORDER_STATUS_CHANGED", "SERVICE_ORDER_OUTCOME_REQUIRED", "SERVICE_ORDER_OUTCOME_NOT_ALLOWED", "SERVICE_ORDER_CUSTODY_NOT_RECEIVED", "SERVICE_ORDER_BILLABLE_NOT_AT_THIS_TRANSITION", "PAYMENT_METHODS_NOT_CONFIGURED", "PAYMENT_METHOD_NOT_FOUND", "SERVICE_ORDER_DEPOSIT_CHANGED", "INVALID_IDEMPOTENCY_KEY", "IDEMPOTENCY_KEY_REUSE", "IDEMPOTENCY_IN_PROGRESS", "IDEMPOTENCY_KEY_FAILED", "IDEMPOTENCY_LOCK_CONTENTION", "SERVICE_DEPOSIT_CURRENCY_MISMATCH", "SERVICE_DEPOSIT_INVALID", "INVALID_AMOUNT", "DEFAULT_DRAWER_UNAVAILABLE", "CURRENCY_MISMATCH", "SHIFT_NOT_OPEN", "SERVICE_BILLING_PRODUCTS_UNAVAILABLE", "SERVICE_BILLING_PRODUCT_IN_BASKET", "SERVICE_DELIVERY_BASKET_DECISION_REQUIRED", "PRODUCT_NOT_AVAILABLE", "PRODUCT_SALE_LIMIT_EXCEEDED", "PRODUCT_SALE_LIMIT_INVALID", "FX_CONVERSION_UNAVAILABLE", "TRANSACT_ITEMS_LIMIT_EXCEEDED", "SERVICE_PARTS_RESTORE_EXCEEDS_CONSUMED", "SERVICE_PARTS_RESTORE_EXCEEDS_AMOUNT", "SERVICE_PARTS_STOCK_INSUFFICIENT", "SERVICE_PARTS_PRODUCT_NOT_FOUND", "SERVICE_PARTS_LEDGER_FULL", "SERVICE_PARTS_TOO_MANY", "SERVICE_ORDER_PARTS_CHANGED", "SERVICE_QUOTE_NOT_FOUND", "SERVICE_QUOTE_NOT_OFFERABLE", "SERVICE_QUOTE_HOLDS_TOO_MANY", "SERVICE_QUOTE_SUPERSEDED", "SERVICE_QUOTE_ALREADY_RESOLVED", "SERVICE_QUOTE_LAPSED", "SERVICE_QUOTE_CHANNEL_RESERVED", "SERVICE_QUOTE_CHANNEL_NOT_APPLICABLE", "SERVICE_QUOTE_REASON_NOT_APPLICABLE", "SERVICE_ORDER_QUOTE_CHANGED", "SERVICE_ORDER_NOT_READY", "SERVICE_RENOTIFY_IMPERSONATED", "SERVICE_RENOTIFY_TOO_SOON", "SERVICE_RENOTIFY_CONFLICT", "SERVICE_RENOTIFY_NOT_RECORDED", "SERVICE_RENOTIFY_LEDGER_UNREADABLE", "SERVICE_RENOTIFY_NOT_DISPATCHED", "SERVICE_TIMER_ALREADY_RUNNING", "SERVICE_TIMER_NOT_RUNNING", "SERVICE_TIMER_STOP_CONFLICT", "TECHNICIAN_NOT_CLOCKED_IN", "SERVICE_ORDER_GONE", "SERVICE_WORKLOG_NOT_FOUND", "SERVICE_WORKLOG_NOT_REVERSIBLE", "SERVICE_WORKLOG_ALREADY_REVERSED", "SERVICE_ORDER_WORKLOG_CHANGED"];
|
|
1343
1343
|
export type ServiceOrderErrorCode = (typeof SERVICE_ORDER_ERROR_CODES)[number];
|
|
1344
1344
|
export {};
|
package/dist/serviceOrder.js
CHANGED
|
@@ -295,6 +295,9 @@ export const SERVICE_ORDER_ERROR_CODES = [
|
|
|
295
295
|
'SERVICE_BILLING_PRODUCT_IN_BASKET',
|
|
296
296
|
'SERVICE_DELIVERY_BASKET_DECISION_REQUIRED',
|
|
297
297
|
'PRODUCT_NOT_AVAILABLE',
|
|
298
|
+
// The per-sale cap on the basket's sale lines (`ProductSaleLimitRefusal`).
|
|
299
|
+
'PRODUCT_SALE_LIMIT_EXCEEDED',
|
|
300
|
+
'PRODUCT_SALE_LIMIT_INVALID',
|
|
298
301
|
'FX_CONVERSION_UNAVAILABLE',
|
|
299
302
|
'TRANSACT_ITEMS_LIMIT_EXCEEDED',
|
|
300
303
|
// Parts
|