@sixtyninecommerce/admin 0.12.0 → 0.14.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,6 +1,7 @@
1
1
  import { ConflictError, createPage, errorFromErrorResult, isErrorResult, NotFoundError, UpstreamError, ValidationError, } from '@sixtyninecommerce/core';
2
2
  import { fieldOf, vendureListPage, } from '../catalog/types.js';
3
3
  import { createPricingBulkCouponsModule } from './bulk-coupons.js';
4
+ import { createPricingExchangeRatesModule, } from './exchange-rates.js';
4
5
  import { createPricingPriceListsModule } from './price-lists.js';
5
6
  import { createPricingVouchersModule } from './vouchers.js';
6
7
  /**
@@ -491,6 +492,7 @@ export function createPricingModule(transport) {
491
492
  },
492
493
  vouchers: createPricingVouchersModule(transport),
493
494
  priceLists: createPricingPriceListsModule(transport),
495
+ exchangeRates: createPricingExchangeRatesModule(transport),
494
496
  coupons: {
495
497
  bulk: createPricingBulkCouponsModule(transport),
496
498
  async apply(orderId, couponCode, options) {
@@ -13,7 +13,7 @@ export type { PurchasingAlert, PurchasingAlertRecipients, PurchasingAlertRecipie
13
13
  export type { BackorderReadyLine, BackordersReadyOptions, PurchasingBackordersModule, } from './backorders.js';
14
14
  export type { OverrideVariantCostInput, PurchasingCostModule, VariantCost, VariantCostCause, VariantCostEntry, VariantCostEntryList, VariantCostHistoryOptions, } from './cost.js';
15
15
  export type { BackToBackLinkQuantities, BackToBackLinkResult, CreateBackToBackLinkInput, DropShipShipmentFulfillment, DropShipShipmentResult, PurchaseOrderDropShip, PurchaseOrderDropShipLine, PurchaseOrderLink, PurchaseOrderLinkKind, PurchaseOrderLinkReleaseReason, PurchaseOrderLinkStatus, PurchasingBackToBackLinksModule, PurchasingDropShipLinksModule, PurchasingLinksModule, RecordDropShipShipmentInput, } from './links.js';
16
- export type { CreatePurchaseOrderInput, PurchaseOrder, PurchaseOrderCancelOptions, PurchaseOrderConfirmation, PurchaseOrderConfirmationInput, PurchaseOrderDocumentOptions, PurchaseOrderDocumentUrl, PurchaseOrderHeaderFields, PurchaseOrderKeyedCall, PurchaseOrderLine, PurchaseOrderLineConfirmationInput, PurchaseOrderLineImportOptions, PurchaseOrderLineImportResult, PurchaseOrderLineImportRow, PurchaseOrderLineInput, PurchaseOrderLinesModule, PurchaseOrderListOptions, PurchaseOrderLocation, PurchaseOrderReasonOptions, PurchaseOrderRevision, PurchaseOrderRevisionInput, PurchaseOrderRevisionsModule, PurchaseOrderSendVia, PurchaseOrderStatus, PurchaseOrderStatusEntry, PurchaseOrderSupplier, PurchasingPurchaseOrdersModule, UpdatePurchaseOrderInput, UpdatePurchaseOrderLineInput, } from './purchase-orders.js';
16
+ export type { CreatePurchaseOrderInput, PurchaseOrder, PurchaseOrderCancelOptions, PurchaseOrderConfirmation, PurchaseOrderConfirmationInput, PurchaseOrderDocumentOptions, PurchaseOrderDocumentUrl, PurchaseOrderHeaderFields, PurchaseOrderKeyedCall, PurchaseOrderLine, PurchaseOrderLineConfirmationInput, PurchaseOrderLineImportOptions, PurchaseOrderLineImportResult, PurchaseOrderLineImportRow, PurchaseOrderLineInput, PurchaseOrderLinesModule, PurchaseOrderListOptions, PurchaseOrderLocation, PurchaseOrderReasonOptions, PurchaseOrderRevision, PurchaseOrderRevisionInput, PurchaseOrderRevisionsModule, PurchaseOrderSendCall, PurchaseOrderSendVia, PurchaseOrderStatus, PurchaseOrderStatusEntry, PurchaseOrderSupplier, PurchasingPurchaseOrdersModule, UpdatePurchaseOrderInput, UpdatePurchaseOrderLineInput, } from './purchase-orders.js';
17
17
  export type { AddGoodsReceiptChargeInput, GoodsReceipt, GoodsReceiptChargesModule, GoodsReceiptDetail, GoodsReceiptKeyedCall, GoodsReceiptKind, GoodsReceiptLine, GoodsReceiptListOptions, GoodsReceiptReference, GoodsReceiptTraceability, GoodsReceiptTraceabilityInput, LandedCharge, LandedChargeAllocation, LandedChargeAllocationBasis, LandedChargeKind, PostGoodsReceiptInput, PostGoodsReceiptLineInput, PurchasingReceiptsModule, ReceivablePurchaseOrderLine, ReceivablePurchaseOrderLinesOptions, RemoveGoodsReceiptChargeInput, ReverseGoodsReceiptInput, } from './receipts.js';
18
18
  export type { PurchasingReplenishmentModule, ReplenishmentComputeResult, ReplenishmentDraftLine, ReplenishmentDrafts, ReplenishmentLocation, ReplenishmentRule, ReplenishmentRuleFields, ReplenishmentRuleImportInput, ReplenishmentRuleImportResult, ReplenishmentRuleImportRow, ReplenishmentRuleListOptions, ReplenishmentRulesModule, ReplenishmentSuggestion, ReplenishmentSuggestionListOptions, ReplenishmentSuggestionsModule, ReplenishmentSupplier, ReplenishmentVariant, } from './replenishment.js';
19
19
  export type { CreateSupplierReturnInput, PurchasingReturnsModule, ResolveSupplierReturnLineInput, ShipSupplierReturnInput, SupplierReturn, SupplierReturnCancelOptions, SupplierReturnDocumentUrl, SupplierReturnKeyedCall, SupplierReturnLine, SupplierReturnLineInput, SupplierReturnListOptions, SupplierReturnOrigin, SupplierReturnOutcome, SupplierReturnResolution, SupplierReturnStatus, SupplierReturnStatusEntry, UpdateSupplierReturnInput, } from './returns.js';
@@ -51,4 +51,4 @@ export interface PurchasingModule {
51
51
  /** Customer order lines bought on purchase order lines: "Order from supplier" and its reads. */
52
52
  links: PurchasingLinksModule;
53
53
  }
54
- export declare function createPurchasingModule(transport: Transport): PurchasingModule;
54
+ export declare function createPurchasingModule(baseTransport: Transport): PurchasingModule;
@@ -2,13 +2,16 @@ import { createPurchasingAlertsModule } from './alerts.js';
2
2
  import { createPurchasingBackordersModule } from './backorders.js';
3
3
  import { createPurchasingCostModule } from './cost.js';
4
4
  import { createPurchasingLinksModule } from './links.js';
5
- import { createPurchasingPurchaseOrdersModule, } from './purchase-orders.js';
5
+ import { createPurchasingPurchaseOrdersModule, sentReferenceAware, } from './purchase-orders.js';
6
6
  import { createPurchasingReceiptsModule } from './receipts.js';
7
7
  import { createPurchasingReplenishmentModule, } from './replenishment.js';
8
8
  import { createPurchasingReturnsModule } from './returns.js';
9
9
  import { createPurchasingSettingsModule } from './settings.js';
10
10
  import { createPurchasingSuppliersModule } from './suppliers.js';
11
- export function createPurchasingModule(transport) {
11
+ export function createPurchasingModule(baseTransport) {
12
+ // One transport for every purchasing module: a document embedding PURCHASE_ORDER_FIELDS, in
13
+ // whichever module, is asked once more without `sentReference` by an engine before it.
14
+ const transport = sentReferenceAware(baseTransport);
12
15
  return {
13
16
  settings: createPurchasingSettingsModule(transport),
14
17
  suppliers: createPurchasingSuppliersModule(transport),
@@ -175,10 +175,10 @@ export declare const PURCHASE_ORDER_LINK_FIELDS = "\n id\n kind\n status\n o
175
175
  export declare const ORDER_PURCHASE_ORDER_LINKS_QUERY = "\n query OrderPurchaseOrderLinks($orderId: ID!) {\n orderPurchaseOrderLinks(orderId: $orderId) { \n id\n kind\n status\n orderId\n orderCode\n orderLineId\n productVariantId\n sku\n purchaseOrderId\n purchaseOrderCode\n purchaseOrderStatus\n purchaseOrderLineId\n supplierId\n supplierName\n stockLocationId\n baseQuantity\n allocatedBaseQuantity\n shippedBaseQuantity\n expectedOn\n expectedOnConfirmed\n releasedAt\n releaseReason\n createdAt\n }\n }\n";
176
176
  export declare const PURCHASE_ORDER_LINKS_QUERY = "\n query PurchaseOrderLinks($purchaseOrderId: ID!) {\n purchaseOrderLinks(purchaseOrderId: $purchaseOrderId) { \n id\n kind\n status\n orderId\n orderCode\n orderLineId\n productVariantId\n sku\n purchaseOrderId\n purchaseOrderCode\n purchaseOrderStatus\n purchaseOrderLineId\n supplierId\n supplierName\n stockLocationId\n baseQuantity\n allocatedBaseQuantity\n shippedBaseQuantity\n expectedOn\n expectedOnConfirmed\n releasedAt\n releaseReason\n createdAt\n }\n }\n";
177
177
  export declare const BACK_TO_BACK_LINK_QUANTITIES_QUERY = "\n query PurchaseOrderBackToBackLinkQuantities($orderLineId: ID!) {\n purchaseOrderBackToBackLinkQuantities(orderLineId: $orderLineId) {\n orderLineId\n openBaseQuantity\n linkedBaseQuantity\n maxBaseQuantity\n suggestedBaseQuantity\n }\n }\n";
178
- export declare const CREATE_BACK_TO_BACK_LINK_MUTATION = "\n mutation CreatePurchaseOrderBackToBackLink(\n $input: CreatePurchaseOrderBackToBackLinkInput!\n $idempotencyKey: String\n ) {\n createPurchaseOrderBackToBackLink(input: $input, idempotencyKey: $idempotencyKey) {\n link { \n id\n kind\n status\n orderId\n orderCode\n orderLineId\n productVariantId\n sku\n purchaseOrderId\n purchaseOrderCode\n purchaseOrderStatus\n purchaseOrderLineId\n supplierId\n supplierName\n stockLocationId\n baseQuantity\n allocatedBaseQuantity\n shippedBaseQuantity\n expectedOn\n expectedOnConfirmed\n releasedAt\n releaseReason\n createdAt\n }\n purchaseOrder { \n \n id\n scopeId\n legalEntityId\n originChannelId\n code\n kind\n status\n supplierId\n supplier { id code name status }\n destinationStockLocationId\n destinationStockLocation { id name }\n currencyCode\n revision\n approvedRevision\n approvedAmount\n requestedDeliveryOn\n supplierReference\n notesToSupplier\n internalNotes\n managedBy\n externalId\n externalNumber\n externalApprovalStatus\n sentAt\n closedAt\n closeReason\n createdByRef\n total\n lineCount\n confirmation\n lines { \n id\n purchaseOrderId\n position\n productVariantId\n supplierItemId\n sku\n name\n supplierSku\n purchaseUnitLabel\n purchaseUnitFactor\n orderedQuantity\n orderedBaseQuantity\n cancelledBaseQuantity\n receivedBaseQuantity\n returnedForReplacementBaseQuantity\n unitPrice\n discountBps\n priceSource\n vatRateBps\n lineTotal\n requestedOn\n confirmedBaseQuantity\n confirmedOn\n confirmedAt\n externalLineId\n createdAt\n updatedAt\n }\n createdAt\n updatedAt\n\n statusHistory { id fromStatus status actorRef reason metadata createdAt }\n revisions {\n id\n revision\n state\n diff\n totalAfter\n createdByRef\n createdAt\n appliedAt\n sentAt\n sentVia\n }\n }\n createdPurchaseOrder\n }\n }\n";
178
+ export declare const CREATE_BACK_TO_BACK_LINK_MUTATION = "\n mutation CreatePurchaseOrderBackToBackLink(\n $input: CreatePurchaseOrderBackToBackLinkInput!\n $idempotencyKey: String\n ) {\n createPurchaseOrderBackToBackLink(input: $input, idempotencyKey: $idempotencyKey) {\n link { \n id\n kind\n status\n orderId\n orderCode\n orderLineId\n productVariantId\n sku\n purchaseOrderId\n purchaseOrderCode\n purchaseOrderStatus\n purchaseOrderLineId\n supplierId\n supplierName\n stockLocationId\n baseQuantity\n allocatedBaseQuantity\n shippedBaseQuantity\n expectedOn\n expectedOnConfirmed\n releasedAt\n releaseReason\n createdAt\n }\n purchaseOrder { \n \n id\n scopeId\n legalEntityId\n originChannelId\n code\n kind\n status\n supplierId\n supplier { id code name status }\n destinationStockLocationId\n destinationStockLocation { id name }\n currencyCode\n revision\n approvedRevision\n approvedAmount\n requestedDeliveryOn\n supplierReference\n notesToSupplier\n internalNotes\n managedBy\n externalId\n externalNumber\n externalApprovalStatus\n sentAt\n closedAt\n closeReason\n createdByRef\n total\n lineCount\n confirmation\n lines { \n id\n purchaseOrderId\n position\n productVariantId\n supplierItemId\n sku\n name\n supplierSku\n purchaseUnitLabel\n purchaseUnitFactor\n orderedQuantity\n orderedBaseQuantity\n cancelledBaseQuantity\n receivedBaseQuantity\n returnedForReplacementBaseQuantity\n unitPrice\n discountBps\n priceSource\n vatRateBps\n lineTotal\n requestedOn\n confirmedBaseQuantity\n confirmedOn\n confirmedAt\n externalLineId\n createdAt\n updatedAt\n }\n createdAt\n updatedAt\n\n statusHistory { id fromStatus status actorRef reason metadata createdAt }\n revisions {\n id\n revision\n state\n diff\n totalAfter\n createdByRef\n createdAt\n appliedAt\n sentAt\n sentVia\n sentReference\n }\n }\n createdPurchaseOrder\n }\n }\n";
179
179
  export declare const REMOVE_BACK_TO_BACK_LINK_MUTATION = "\n mutation RemovePurchaseOrderBackToBackLink($id: ID!, $idempotencyKey: String) {\n removePurchaseOrderBackToBackLink(id: $id, idempotencyKey: $idempotencyKey) {\n \n id\n kind\n status\n orderId\n orderCode\n orderLineId\n productVariantId\n sku\n purchaseOrderId\n purchaseOrderCode\n purchaseOrderStatus\n purchaseOrderLineId\n supplierId\n supplierName\n stockLocationId\n baseQuantity\n allocatedBaseQuantity\n shippedBaseQuantity\n expectedOn\n expectedOnConfirmed\n releasedAt\n releaseReason\n createdAt\n\n }\n }\n";
180
180
  export declare const PURCHASE_ORDER_DROP_SHIP_QUERY = "\n query PurchaseOrderDropShip($purchaseOrderId: ID!) {\n purchaseOrderDropShip(purchaseOrderId: $purchaseOrderId) {\n purchaseOrderId\n purchaseOrderCode\n orderId\n orderCode\n address {\n fullName\n company\n streetLine1\n streetLine2\n city\n province\n postalCode\n country\n countryCode\n phoneNumber\n }\n lines {\n purchaseOrderLineId\n orderLineId\n sku\n orderedBaseQuantity\n shippedBaseQuantity\n toShipBaseQuantity\n }\n }\n }\n";
181
- export declare const RECORD_DROP_SHIP_SHIPMENT_MUTATION = "\n mutation RecordPurchaseOrderDropShipShipment(\n $input: RecordDropShipShipmentInput!\n $idempotencyKey: String!\n ) {\n recordPurchaseOrderDropShipShipment(input: $input, idempotencyKey: $idempotencyKey) {\n purchaseOrder { \n \n id\n scopeId\n legalEntityId\n originChannelId\n code\n kind\n status\n supplierId\n supplier { id code name status }\n destinationStockLocationId\n destinationStockLocation { id name }\n currencyCode\n revision\n approvedRevision\n approvedAmount\n requestedDeliveryOn\n supplierReference\n notesToSupplier\n internalNotes\n managedBy\n externalId\n externalNumber\n externalApprovalStatus\n sentAt\n closedAt\n closeReason\n createdByRef\n total\n lineCount\n confirmation\n lines { \n id\n purchaseOrderId\n position\n productVariantId\n supplierItemId\n sku\n name\n supplierSku\n purchaseUnitLabel\n purchaseUnitFactor\n orderedQuantity\n orderedBaseQuantity\n cancelledBaseQuantity\n receivedBaseQuantity\n returnedForReplacementBaseQuantity\n unitPrice\n discountBps\n priceSource\n vatRateBps\n lineTotal\n requestedOn\n confirmedBaseQuantity\n confirmedOn\n confirmedAt\n externalLineId\n createdAt\n updatedAt\n }\n createdAt\n updatedAt\n\n statusHistory { id fromStatus status actorRef reason metadata createdAt }\n revisions {\n id\n revision\n state\n diff\n totalAfter\n createdByRef\n createdAt\n appliedAt\n sentAt\n sentVia\n }\n }\n links { \n id\n kind\n status\n orderId\n orderCode\n orderLineId\n productVariantId\n sku\n purchaseOrderId\n purchaseOrderCode\n purchaseOrderStatus\n purchaseOrderLineId\n supplierId\n supplierName\n stockLocationId\n baseQuantity\n allocatedBaseQuantity\n shippedBaseQuantity\n expectedOn\n expectedOnConfirmed\n releasedAt\n releaseReason\n createdAt\n }\n fulfillment {\n id\n state\n method\n trackingCode\n }\n closedPurchaseOrder\n }\n }\n";
181
+ export declare const RECORD_DROP_SHIP_SHIPMENT_MUTATION = "\n mutation RecordPurchaseOrderDropShipShipment(\n $input: RecordDropShipShipmentInput!\n $idempotencyKey: String!\n ) {\n recordPurchaseOrderDropShipShipment(input: $input, idempotencyKey: $idempotencyKey) {\n purchaseOrder { \n \n id\n scopeId\n legalEntityId\n originChannelId\n code\n kind\n status\n supplierId\n supplier { id code name status }\n destinationStockLocationId\n destinationStockLocation { id name }\n currencyCode\n revision\n approvedRevision\n approvedAmount\n requestedDeliveryOn\n supplierReference\n notesToSupplier\n internalNotes\n managedBy\n externalId\n externalNumber\n externalApprovalStatus\n sentAt\n closedAt\n closeReason\n createdByRef\n total\n lineCount\n confirmation\n lines { \n id\n purchaseOrderId\n position\n productVariantId\n supplierItemId\n sku\n name\n supplierSku\n purchaseUnitLabel\n purchaseUnitFactor\n orderedQuantity\n orderedBaseQuantity\n cancelledBaseQuantity\n receivedBaseQuantity\n returnedForReplacementBaseQuantity\n unitPrice\n discountBps\n priceSource\n vatRateBps\n lineTotal\n requestedOn\n confirmedBaseQuantity\n confirmedOn\n confirmedAt\n externalLineId\n createdAt\n updatedAt\n }\n createdAt\n updatedAt\n\n statusHistory { id fromStatus status actorRef reason metadata createdAt }\n revisions {\n id\n revision\n state\n diff\n totalAfter\n createdByRef\n createdAt\n appliedAt\n sentAt\n sentVia\n sentReference\n }\n }\n links { \n id\n kind\n status\n orderId\n orderCode\n orderLineId\n productVariantId\n sku\n purchaseOrderId\n purchaseOrderCode\n purchaseOrderStatus\n purchaseOrderLineId\n supplierId\n supplierName\n stockLocationId\n baseQuantity\n allocatedBaseQuantity\n shippedBaseQuantity\n expectedOn\n expectedOnConfirmed\n releasedAt\n releaseReason\n createdAt\n }\n fulfillment {\n id\n state\n method\n trackingCode\n }\n closedPurchaseOrder\n }\n }\n";
182
182
  /**
183
183
  * `admin.purchasing.links.backToBack` (purchase-orders spec §8.12.1, §10.1): "Order from supplier"
184
184
  * on a customer order line. The received goods are allocated to the line first, at the purchase
@@ -260,4 +260,4 @@ export interface PurchasingLinksModule {
260
260
  /** The links of a purchase order, oldest first, ended ones included. */
261
261
  forPurchaseOrder(purchaseOrderId: string, call?: Call): Promise<PurchaseOrderLink[]>;
262
262
  }
263
- export declare function createPurchasingLinksModule(transport: Transport): PurchasingLinksModule;
263
+ export declare function createPurchasingLinksModule(baseTransport: Transport): PurchasingLinksModule;
@@ -1,4 +1,4 @@
1
- import { PURCHASE_ORDER_FIELDS, } from './purchase-orders.js';
1
+ import { PURCHASE_ORDER_FIELDS, sentReferenceAware, withSentReferences, } from './purchase-orders.js';
2
2
  export const PURCHASE_ORDER_LINK_FIELDS = /* GraphQL */ `
3
3
  id
4
4
  kind
@@ -136,7 +136,10 @@ function picked(input, fields) {
136
136
  }
137
137
  return out;
138
138
  }
139
- export function createPurchasingLinksModule(transport) {
139
+ export function createPurchasingLinksModule(baseTransport) {
140
+ // `backToBack.create` and `dropShip.recordShipment` answer their purchase order through
141
+ // PURCHASE_ORDER_FIELDS (`sentReference`).
142
+ const transport = sentReferenceAware(baseTransport);
140
143
  return {
141
144
  backToBack: {
142
145
  async create(input, call) {
@@ -148,7 +151,8 @@ export function createPurchasingLinksModule(transport) {
148
151
  idempotencyKey: call?.idempotencyKey,
149
152
  },
150
153
  }, call);
151
- return data.createPurchaseOrderBackToBackLink;
154
+ const result = data.createPurchaseOrderBackToBackLink;
155
+ return { ...result, purchaseOrder: withSentReferences(result.purchaseOrder) };
152
156
  },
153
157
  async quantities(orderLineId, call) {
154
158
  const data = await transport.graphql({ api: 'admin', query: BACK_TO_BACK_LINK_QUANTITIES_QUERY, variables: { orderLineId } }, call);
@@ -177,7 +181,8 @@ export function createPurchasingLinksModule(transport) {
177
181
  idempotencyKey: call.idempotencyKey,
178
182
  },
179
183
  }, call);
180
- return data.recordPurchaseOrderDropShipShipment;
184
+ const result = data.recordPurchaseOrderDropShipShipment;
185
+ return { ...result, purchaseOrder: withSentReferences(result.purchaseOrder) };
181
186
  },
182
187
  },
183
188
  async forOrder(orderId, call) {
@@ -88,7 +88,11 @@ export interface PurchaseOrderStatusEntry {
88
88
  createdAt: string;
89
89
  }
90
90
  /** How a purchase order reaches its supplier (D74): emailed by the platform, or by staff. */
91
- export type PurchaseOrderSendVia = 'email' | 'manual';
91
+ /**
92
+ * How the order reaches its supplier: `email` (the platform mails the PDF), `manual` (staff send
93
+ * it) or `external` (an integration transmitted the order in the supplier's own format).
94
+ */
95
+ export type PurchaseOrderSendVia = 'email' | 'manual' | 'external';
92
96
  /**
93
97
  * A numbered revision of a purchase order (purchase-orders spec §8.4.4). Revision 0 is the
94
98
  * original as first sent; each later one is a change set of the sent order.
@@ -113,6 +117,12 @@ export interface PurchaseOrderRevision {
113
117
  /** When its document went to the supplier; null until sent. */
114
118
  sentAt: string | null;
115
119
  sentVia: PurchaseOrderSendVia | (string & {}) | null;
120
+ /**
121
+ * The reference the integration stated when it sent THIS revision externally (`send(id,
122
+ * 'external', { externalReference })`, e.g. the lab's order number); null for an email or
123
+ * manual send, an external one that stated none, and on an engine before the field.
124
+ */
125
+ sentReference: string | null;
116
126
  }
117
127
  /** A five-minute link to a purchase order's PDF. */
118
128
  export interface PurchaseOrderDocumentUrl {
@@ -337,6 +347,17 @@ export interface PurchaseOrderLineImportResult {
337
347
  export type PurchaseOrderKeyedCall = Call & {
338
348
  idempotencyKey: string;
339
349
  };
350
+ /**
351
+ * `send`'s call. With `via: 'external'` it may also state what the integration knows of the
352
+ * transmission: the supplier's (or the integration's) reference, kept as the sent revision's
353
+ * `sentReference` and becoming the order's `supplierReference` while it has none, and when it was
354
+ * handed over (default now; never in the future), the revision's `sentAt` (and on the first send
355
+ * the order's). Both are refused for `email` and `manual`.
356
+ */
357
+ export type PurchaseOrderSendCall = PurchaseOrderKeyedCall & {
358
+ externalReference?: string;
359
+ transmittedAt?: Date | string;
360
+ };
340
361
  export declare const PURCHASE_ORDER_LINE_FIELDS = "\n id\n purchaseOrderId\n position\n productVariantId\n supplierItemId\n sku\n name\n supplierSku\n purchaseUnitLabel\n purchaseUnitFactor\n orderedQuantity\n orderedBaseQuantity\n cancelledBaseQuantity\n receivedBaseQuantity\n returnedForReplacementBaseQuantity\n unitPrice\n discountBps\n priceSource\n vatRateBps\n lineTotal\n requestedOn\n confirmedBaseQuantity\n confirmedOn\n confirmedAt\n externalLineId\n createdAt\n updatedAt\n";
341
362
  /**
342
363
  * The header and lines, without the status history, which the engine reads per order: what the
@@ -347,33 +368,52 @@ export declare const PURCHASE_ORDER_SUMMARY_FIELDS = "\n id\n scopeId\n legal
347
368
  * A whole purchase order, its status history and revisions included: what `get` and every write
348
369
  * answer.
349
370
  */
350
- export declare const PURCHASE_ORDER_FIELDS = "\n \n id\n scopeId\n legalEntityId\n originChannelId\n code\n kind\n status\n supplierId\n supplier { id code name status }\n destinationStockLocationId\n destinationStockLocation { id name }\n currencyCode\n revision\n approvedRevision\n approvedAmount\n requestedDeliveryOn\n supplierReference\n notesToSupplier\n internalNotes\n managedBy\n externalId\n externalNumber\n externalApprovalStatus\n sentAt\n closedAt\n closeReason\n createdByRef\n total\n lineCount\n confirmation\n lines { \n id\n purchaseOrderId\n position\n productVariantId\n supplierItemId\n sku\n name\n supplierSku\n purchaseUnitLabel\n purchaseUnitFactor\n orderedQuantity\n orderedBaseQuantity\n cancelledBaseQuantity\n receivedBaseQuantity\n returnedForReplacementBaseQuantity\n unitPrice\n discountBps\n priceSource\n vatRateBps\n lineTotal\n requestedOn\n confirmedBaseQuantity\n confirmedOn\n confirmedAt\n externalLineId\n createdAt\n updatedAt\n }\n createdAt\n updatedAt\n\n statusHistory { id fromStatus status actorRef reason metadata createdAt }\n revisions {\n id\n revision\n state\n diff\n totalAfter\n createdByRef\n createdAt\n appliedAt\n sentAt\n sentVia\n }\n";
371
+ export declare const PURCHASE_ORDER_FIELDS = "\n \n id\n scopeId\n legalEntityId\n originChannelId\n code\n kind\n status\n supplierId\n supplier { id code name status }\n destinationStockLocationId\n destinationStockLocation { id name }\n currencyCode\n revision\n approvedRevision\n approvedAmount\n requestedDeliveryOn\n supplierReference\n notesToSupplier\n internalNotes\n managedBy\n externalId\n externalNumber\n externalApprovalStatus\n sentAt\n closedAt\n closeReason\n createdByRef\n total\n lineCount\n confirmation\n lines { \n id\n purchaseOrderId\n position\n productVariantId\n supplierItemId\n sku\n name\n supplierSku\n purchaseUnitLabel\n purchaseUnitFactor\n orderedQuantity\n orderedBaseQuantity\n cancelledBaseQuantity\n receivedBaseQuantity\n returnedForReplacementBaseQuantity\n unitPrice\n discountBps\n priceSource\n vatRateBps\n lineTotal\n requestedOn\n confirmedBaseQuantity\n confirmedOn\n confirmedAt\n externalLineId\n createdAt\n updatedAt\n }\n createdAt\n updatedAt\n\n statusHistory { id fromStatus status actorRef reason metadata createdAt }\n revisions {\n id\n revision\n state\n diff\n totalAfter\n createdByRef\n createdAt\n appliedAt\n sentAt\n sentVia\n sentReference\n }\n";
372
+ /**
373
+ * The transport, sending a document that names `sentReference` once more without it when the
374
+ * engine refused it as unknown, and only then: any other refusal, or a document that does not name
375
+ * it, is thrown as it came. Safe for a mutation too: a refused document never ran.
376
+ * `createPurchasingModule` hands this transport to every purchasing module, so any document that
377
+ * embeds {@link PURCHASE_ORDER_FIELDS} (purchase orders, back-to-back links, replenishment drafts)
378
+ * gets the one retry; each factory that embeds it wraps again, which is a no-op on a wrapped one.
379
+ */
380
+ export declare function sentReferenceAware(transport: Transport): Transport;
381
+ /**
382
+ * An order as answered, every revision with its `sentReference` (null from an older engine). Every
383
+ * method answering an order read through {@link PURCHASE_ORDER_FIELDS} passes it through this.
384
+ */
385
+ export declare function withSentReferences(order: PurchaseOrder): PurchaseOrder;
351
386
  export declare const PURCHASE_ORDERS_QUERY = "\n query PurchaseOrders($options: PurchaseOrderListOptions) {\n purchaseOrders(options: $options) {\n totalItems\n items { \n id\n scopeId\n legalEntityId\n originChannelId\n code\n kind\n status\n supplierId\n supplier { id code name status }\n destinationStockLocationId\n destinationStockLocation { id name }\n currencyCode\n revision\n approvedRevision\n approvedAmount\n requestedDeliveryOn\n supplierReference\n notesToSupplier\n internalNotes\n managedBy\n externalId\n externalNumber\n externalApprovalStatus\n sentAt\n closedAt\n closeReason\n createdByRef\n total\n lineCount\n confirmation\n lines { \n id\n purchaseOrderId\n position\n productVariantId\n supplierItemId\n sku\n name\n supplierSku\n purchaseUnitLabel\n purchaseUnitFactor\n orderedQuantity\n orderedBaseQuantity\n cancelledBaseQuantity\n receivedBaseQuantity\n returnedForReplacementBaseQuantity\n unitPrice\n discountBps\n priceSource\n vatRateBps\n lineTotal\n requestedOn\n confirmedBaseQuantity\n confirmedOn\n confirmedAt\n externalLineId\n createdAt\n updatedAt\n }\n createdAt\n updatedAt\n }\n }\n }\n";
352
- export declare const PURCHASE_ORDER_QUERY = "\n query PurchaseOrder($id: ID!) {\n purchaseOrder(id: $id) { \n \n id\n scopeId\n legalEntityId\n originChannelId\n code\n kind\n status\n supplierId\n supplier { id code name status }\n destinationStockLocationId\n destinationStockLocation { id name }\n currencyCode\n revision\n approvedRevision\n approvedAmount\n requestedDeliveryOn\n supplierReference\n notesToSupplier\n internalNotes\n managedBy\n externalId\n externalNumber\n externalApprovalStatus\n sentAt\n closedAt\n closeReason\n createdByRef\n total\n lineCount\n confirmation\n lines { \n id\n purchaseOrderId\n position\n productVariantId\n supplierItemId\n sku\n name\n supplierSku\n purchaseUnitLabel\n purchaseUnitFactor\n orderedQuantity\n orderedBaseQuantity\n cancelledBaseQuantity\n receivedBaseQuantity\n returnedForReplacementBaseQuantity\n unitPrice\n discountBps\n priceSource\n vatRateBps\n lineTotal\n requestedOn\n confirmedBaseQuantity\n confirmedOn\n confirmedAt\n externalLineId\n createdAt\n updatedAt\n }\n createdAt\n updatedAt\n\n statusHistory { id fromStatus status actorRef reason metadata createdAt }\n revisions {\n id\n revision\n state\n diff\n totalAfter\n createdByRef\n createdAt\n appliedAt\n sentAt\n sentVia\n }\n }\n }\n";
353
- export declare const CREATE_PURCHASE_ORDER_MUTATION = "\n mutation CreatePurchaseOrder($input: CreatePurchaseOrderInput!, $idempotencyKey: String) {\n createPurchaseOrder(input: $input, idempotencyKey: $idempotencyKey) {\n \n \n id\n scopeId\n legalEntityId\n originChannelId\n code\n kind\n status\n supplierId\n supplier { id code name status }\n destinationStockLocationId\n destinationStockLocation { id name }\n currencyCode\n revision\n approvedRevision\n approvedAmount\n requestedDeliveryOn\n supplierReference\n notesToSupplier\n internalNotes\n managedBy\n externalId\n externalNumber\n externalApprovalStatus\n sentAt\n closedAt\n closeReason\n createdByRef\n total\n lineCount\n confirmation\n lines { \n id\n purchaseOrderId\n position\n productVariantId\n supplierItemId\n sku\n name\n supplierSku\n purchaseUnitLabel\n purchaseUnitFactor\n orderedQuantity\n orderedBaseQuantity\n cancelledBaseQuantity\n receivedBaseQuantity\n returnedForReplacementBaseQuantity\n unitPrice\n discountBps\n priceSource\n vatRateBps\n lineTotal\n requestedOn\n confirmedBaseQuantity\n confirmedOn\n confirmedAt\n externalLineId\n createdAt\n updatedAt\n }\n createdAt\n updatedAt\n\n statusHistory { id fromStatus status actorRef reason metadata createdAt }\n revisions {\n id\n revision\n state\n diff\n totalAfter\n createdByRef\n createdAt\n appliedAt\n sentAt\n sentVia\n }\n\n }\n }\n";
354
- export declare const UPDATE_PURCHASE_ORDER_MUTATION = "\n mutation UpdatePurchaseOrder($input: UpdatePurchaseOrderInput!, $idempotencyKey: String) {\n updatePurchaseOrder(input: $input, idempotencyKey: $idempotencyKey) {\n \n \n id\n scopeId\n legalEntityId\n originChannelId\n code\n kind\n status\n supplierId\n supplier { id code name status }\n destinationStockLocationId\n destinationStockLocation { id name }\n currencyCode\n revision\n approvedRevision\n approvedAmount\n requestedDeliveryOn\n supplierReference\n notesToSupplier\n internalNotes\n managedBy\n externalId\n externalNumber\n externalApprovalStatus\n sentAt\n closedAt\n closeReason\n createdByRef\n total\n lineCount\n confirmation\n lines { \n id\n purchaseOrderId\n position\n productVariantId\n supplierItemId\n sku\n name\n supplierSku\n purchaseUnitLabel\n purchaseUnitFactor\n orderedQuantity\n orderedBaseQuantity\n cancelledBaseQuantity\n receivedBaseQuantity\n returnedForReplacementBaseQuantity\n unitPrice\n discountBps\n priceSource\n vatRateBps\n lineTotal\n requestedOn\n confirmedBaseQuantity\n confirmedOn\n confirmedAt\n externalLineId\n createdAt\n updatedAt\n }\n createdAt\n updatedAt\n\n statusHistory { id fromStatus status actorRef reason metadata createdAt }\n revisions {\n id\n revision\n state\n diff\n totalAfter\n createdByRef\n createdAt\n appliedAt\n sentAt\n sentVia\n }\n\n }\n }\n";
355
- export declare const ADD_PURCHASE_ORDER_LINES_MUTATION = "\n mutation AddPurchaseOrderLines(\n $purchaseOrderId: ID!\n $lines: [PurchaseOrderLineInput!]!\n $idempotencyKey: String\n ) {\n addPurchaseOrderLines(\n purchaseOrderId: $purchaseOrderId\n lines: $lines\n idempotencyKey: $idempotencyKey\n ) {\n \n \n id\n scopeId\n legalEntityId\n originChannelId\n code\n kind\n status\n supplierId\n supplier { id code name status }\n destinationStockLocationId\n destinationStockLocation { id name }\n currencyCode\n revision\n approvedRevision\n approvedAmount\n requestedDeliveryOn\n supplierReference\n notesToSupplier\n internalNotes\n managedBy\n externalId\n externalNumber\n externalApprovalStatus\n sentAt\n closedAt\n closeReason\n createdByRef\n total\n lineCount\n confirmation\n lines { \n id\n purchaseOrderId\n position\n productVariantId\n supplierItemId\n sku\n name\n supplierSku\n purchaseUnitLabel\n purchaseUnitFactor\n orderedQuantity\n orderedBaseQuantity\n cancelledBaseQuantity\n receivedBaseQuantity\n returnedForReplacementBaseQuantity\n unitPrice\n discountBps\n priceSource\n vatRateBps\n lineTotal\n requestedOn\n confirmedBaseQuantity\n confirmedOn\n confirmedAt\n externalLineId\n createdAt\n updatedAt\n }\n createdAt\n updatedAt\n\n statusHistory { id fromStatus status actorRef reason metadata createdAt }\n revisions {\n id\n revision\n state\n diff\n totalAfter\n createdByRef\n createdAt\n appliedAt\n sentAt\n sentVia\n }\n\n }\n }\n";
356
- export declare const UPDATE_PURCHASE_ORDER_LINE_MUTATION = "\n mutation UpdatePurchaseOrderLine(\n $input: UpdatePurchaseOrderLineInput!\n $idempotencyKey: String\n ) {\n updatePurchaseOrderLine(input: $input, idempotencyKey: $idempotencyKey) {\n \n \n id\n scopeId\n legalEntityId\n originChannelId\n code\n kind\n status\n supplierId\n supplier { id code name status }\n destinationStockLocationId\n destinationStockLocation { id name }\n currencyCode\n revision\n approvedRevision\n approvedAmount\n requestedDeliveryOn\n supplierReference\n notesToSupplier\n internalNotes\n managedBy\n externalId\n externalNumber\n externalApprovalStatus\n sentAt\n closedAt\n closeReason\n createdByRef\n total\n lineCount\n confirmation\n lines { \n id\n purchaseOrderId\n position\n productVariantId\n supplierItemId\n sku\n name\n supplierSku\n purchaseUnitLabel\n purchaseUnitFactor\n orderedQuantity\n orderedBaseQuantity\n cancelledBaseQuantity\n receivedBaseQuantity\n returnedForReplacementBaseQuantity\n unitPrice\n discountBps\n priceSource\n vatRateBps\n lineTotal\n requestedOn\n confirmedBaseQuantity\n confirmedOn\n confirmedAt\n externalLineId\n createdAt\n updatedAt\n }\n createdAt\n updatedAt\n\n statusHistory { id fromStatus status actorRef reason metadata createdAt }\n revisions {\n id\n revision\n state\n diff\n totalAfter\n createdByRef\n createdAt\n appliedAt\n sentAt\n sentVia\n }\n\n }\n }\n";
357
- export declare const REMOVE_PURCHASE_ORDER_LINE_MUTATION = "\n mutation RemovePurchaseOrderLine($id: ID!, $idempotencyKey: String) {\n removePurchaseOrderLine(id: $id, idempotencyKey: $idempotencyKey) {\n \n \n id\n scopeId\n legalEntityId\n originChannelId\n code\n kind\n status\n supplierId\n supplier { id code name status }\n destinationStockLocationId\n destinationStockLocation { id name }\n currencyCode\n revision\n approvedRevision\n approvedAmount\n requestedDeliveryOn\n supplierReference\n notesToSupplier\n internalNotes\n managedBy\n externalId\n externalNumber\n externalApprovalStatus\n sentAt\n closedAt\n closeReason\n createdByRef\n total\n lineCount\n confirmation\n lines { \n id\n purchaseOrderId\n position\n productVariantId\n supplierItemId\n sku\n name\n supplierSku\n purchaseUnitLabel\n purchaseUnitFactor\n orderedQuantity\n orderedBaseQuantity\n cancelledBaseQuantity\n receivedBaseQuantity\n returnedForReplacementBaseQuantity\n unitPrice\n discountBps\n priceSource\n vatRateBps\n lineTotal\n requestedOn\n confirmedBaseQuantity\n confirmedOn\n confirmedAt\n externalLineId\n createdAt\n updatedAt\n }\n createdAt\n updatedAt\n\n statusHistory { id fromStatus status actorRef reason metadata createdAt }\n revisions {\n id\n revision\n state\n diff\n totalAfter\n createdByRef\n createdAt\n appliedAt\n sentAt\n sentVia\n }\n\n }\n }\n";
358
- export declare const SUBMIT_PURCHASE_ORDER_MUTATION = "\n mutation SubmitPurchaseOrder($id: ID!, $idempotencyKey: String) {\n submitPurchaseOrder(id: $id, idempotencyKey: $idempotencyKey) { \n \n id\n scopeId\n legalEntityId\n originChannelId\n code\n kind\n status\n supplierId\n supplier { id code name status }\n destinationStockLocationId\n destinationStockLocation { id name }\n currencyCode\n revision\n approvedRevision\n approvedAmount\n requestedDeliveryOn\n supplierReference\n notesToSupplier\n internalNotes\n managedBy\n externalId\n externalNumber\n externalApprovalStatus\n sentAt\n closedAt\n closeReason\n createdByRef\n total\n lineCount\n confirmation\n lines { \n id\n purchaseOrderId\n position\n productVariantId\n supplierItemId\n sku\n name\n supplierSku\n purchaseUnitLabel\n purchaseUnitFactor\n orderedQuantity\n orderedBaseQuantity\n cancelledBaseQuantity\n receivedBaseQuantity\n returnedForReplacementBaseQuantity\n unitPrice\n discountBps\n priceSource\n vatRateBps\n lineTotal\n requestedOn\n confirmedBaseQuantity\n confirmedOn\n confirmedAt\n externalLineId\n createdAt\n updatedAt\n }\n createdAt\n updatedAt\n\n statusHistory { id fromStatus status actorRef reason metadata createdAt }\n revisions {\n id\n revision\n state\n diff\n totalAfter\n createdByRef\n createdAt\n appliedAt\n sentAt\n sentVia\n }\n }\n }\n";
359
- export declare const APPROVE_PURCHASE_ORDER_MUTATION = "\n mutation ApprovePurchaseOrder($id: ID!, $idempotencyKey: String) {\n approvePurchaseOrder(id: $id, idempotencyKey: $idempotencyKey) { \n \n id\n scopeId\n legalEntityId\n originChannelId\n code\n kind\n status\n supplierId\n supplier { id code name status }\n destinationStockLocationId\n destinationStockLocation { id name }\n currencyCode\n revision\n approvedRevision\n approvedAmount\n requestedDeliveryOn\n supplierReference\n notesToSupplier\n internalNotes\n managedBy\n externalId\n externalNumber\n externalApprovalStatus\n sentAt\n closedAt\n closeReason\n createdByRef\n total\n lineCount\n confirmation\n lines { \n id\n purchaseOrderId\n position\n productVariantId\n supplierItemId\n sku\n name\n supplierSku\n purchaseUnitLabel\n purchaseUnitFactor\n orderedQuantity\n orderedBaseQuantity\n cancelledBaseQuantity\n receivedBaseQuantity\n returnedForReplacementBaseQuantity\n unitPrice\n discountBps\n priceSource\n vatRateBps\n lineTotal\n requestedOn\n confirmedBaseQuantity\n confirmedOn\n confirmedAt\n externalLineId\n createdAt\n updatedAt\n }\n createdAt\n updatedAt\n\n statusHistory { id fromStatus status actorRef reason metadata createdAt }\n revisions {\n id\n revision\n state\n diff\n totalAfter\n createdByRef\n createdAt\n appliedAt\n sentAt\n sentVia\n }\n }\n }\n";
360
- export declare const REJECT_PURCHASE_ORDER_MUTATION = "\n mutation RejectPurchaseOrder($id: ID!, $reason: String!, $idempotencyKey: String) {\n rejectPurchaseOrder(id: $id, reason: $reason, idempotencyKey: $idempotencyKey) {\n \n \n id\n scopeId\n legalEntityId\n originChannelId\n code\n kind\n status\n supplierId\n supplier { id code name status }\n destinationStockLocationId\n destinationStockLocation { id name }\n currencyCode\n revision\n approvedRevision\n approvedAmount\n requestedDeliveryOn\n supplierReference\n notesToSupplier\n internalNotes\n managedBy\n externalId\n externalNumber\n externalApprovalStatus\n sentAt\n closedAt\n closeReason\n createdByRef\n total\n lineCount\n confirmation\n lines { \n id\n purchaseOrderId\n position\n productVariantId\n supplierItemId\n sku\n name\n supplierSku\n purchaseUnitLabel\n purchaseUnitFactor\n orderedQuantity\n orderedBaseQuantity\n cancelledBaseQuantity\n receivedBaseQuantity\n returnedForReplacementBaseQuantity\n unitPrice\n discountBps\n priceSource\n vatRateBps\n lineTotal\n requestedOn\n confirmedBaseQuantity\n confirmedOn\n confirmedAt\n externalLineId\n createdAt\n updatedAt\n }\n createdAt\n updatedAt\n\n statusHistory { id fromStatus status actorRef reason metadata createdAt }\n revisions {\n id\n revision\n state\n diff\n totalAfter\n createdByRef\n createdAt\n appliedAt\n sentAt\n sentVia\n }\n\n }\n }\n";
361
- export declare const CANCEL_PURCHASE_ORDER_MUTATION = "\n mutation CancelPurchaseOrder($id: ID!, $reason: String, $idempotencyKey: String) {\n cancelPurchaseOrder(id: $id, reason: $reason, idempotencyKey: $idempotencyKey) {\n \n \n id\n scopeId\n legalEntityId\n originChannelId\n code\n kind\n status\n supplierId\n supplier { id code name status }\n destinationStockLocationId\n destinationStockLocation { id name }\n currencyCode\n revision\n approvedRevision\n approvedAmount\n requestedDeliveryOn\n supplierReference\n notesToSupplier\n internalNotes\n managedBy\n externalId\n externalNumber\n externalApprovalStatus\n sentAt\n closedAt\n closeReason\n createdByRef\n total\n lineCount\n confirmation\n lines { \n id\n purchaseOrderId\n position\n productVariantId\n supplierItemId\n sku\n name\n supplierSku\n purchaseUnitLabel\n purchaseUnitFactor\n orderedQuantity\n orderedBaseQuantity\n cancelledBaseQuantity\n receivedBaseQuantity\n returnedForReplacementBaseQuantity\n unitPrice\n discountBps\n priceSource\n vatRateBps\n lineTotal\n requestedOn\n confirmedBaseQuantity\n confirmedOn\n confirmedAt\n externalLineId\n createdAt\n updatedAt\n }\n createdAt\n updatedAt\n\n statusHistory { id fromStatus status actorRef reason metadata createdAt }\n revisions {\n id\n revision\n state\n diff\n totalAfter\n createdByRef\n createdAt\n appliedAt\n sentAt\n sentVia\n }\n\n }\n }\n";
387
+ export declare const PURCHASE_ORDER_QUERY = "\n query PurchaseOrder($id: ID!) {\n purchaseOrder(id: $id) { \n \n id\n scopeId\n legalEntityId\n originChannelId\n code\n kind\n status\n supplierId\n supplier { id code name status }\n destinationStockLocationId\n destinationStockLocation { id name }\n currencyCode\n revision\n approvedRevision\n approvedAmount\n requestedDeliveryOn\n supplierReference\n notesToSupplier\n internalNotes\n managedBy\n externalId\n externalNumber\n externalApprovalStatus\n sentAt\n closedAt\n closeReason\n createdByRef\n total\n lineCount\n confirmation\n lines { \n id\n purchaseOrderId\n position\n productVariantId\n supplierItemId\n sku\n name\n supplierSku\n purchaseUnitLabel\n purchaseUnitFactor\n orderedQuantity\n orderedBaseQuantity\n cancelledBaseQuantity\n receivedBaseQuantity\n returnedForReplacementBaseQuantity\n unitPrice\n discountBps\n priceSource\n vatRateBps\n lineTotal\n requestedOn\n confirmedBaseQuantity\n confirmedOn\n confirmedAt\n externalLineId\n createdAt\n updatedAt\n }\n createdAt\n updatedAt\n\n statusHistory { id fromStatus status actorRef reason metadata createdAt }\n revisions {\n id\n revision\n state\n diff\n totalAfter\n createdByRef\n createdAt\n appliedAt\n sentAt\n sentVia\n sentReference\n }\n }\n }\n";
388
+ export declare const CREATE_PURCHASE_ORDER_MUTATION = "\n mutation CreatePurchaseOrder($input: CreatePurchaseOrderInput!, $idempotencyKey: String) {\n createPurchaseOrder(input: $input, idempotencyKey: $idempotencyKey) {\n \n \n id\n scopeId\n legalEntityId\n originChannelId\n code\n kind\n status\n supplierId\n supplier { id code name status }\n destinationStockLocationId\n destinationStockLocation { id name }\n currencyCode\n revision\n approvedRevision\n approvedAmount\n requestedDeliveryOn\n supplierReference\n notesToSupplier\n internalNotes\n managedBy\n externalId\n externalNumber\n externalApprovalStatus\n sentAt\n closedAt\n closeReason\n createdByRef\n total\n lineCount\n confirmation\n lines { \n id\n purchaseOrderId\n position\n productVariantId\n supplierItemId\n sku\n name\n supplierSku\n purchaseUnitLabel\n purchaseUnitFactor\n orderedQuantity\n orderedBaseQuantity\n cancelledBaseQuantity\n receivedBaseQuantity\n returnedForReplacementBaseQuantity\n unitPrice\n discountBps\n priceSource\n vatRateBps\n lineTotal\n requestedOn\n confirmedBaseQuantity\n confirmedOn\n confirmedAt\n externalLineId\n createdAt\n updatedAt\n }\n createdAt\n updatedAt\n\n statusHistory { id fromStatus status actorRef reason metadata createdAt }\n revisions {\n id\n revision\n state\n diff\n totalAfter\n createdByRef\n createdAt\n appliedAt\n sentAt\n sentVia\n sentReference\n }\n\n }\n }\n";
389
+ export declare const UPDATE_PURCHASE_ORDER_MUTATION = "\n mutation UpdatePurchaseOrder($input: UpdatePurchaseOrderInput!, $idempotencyKey: String) {\n updatePurchaseOrder(input: $input, idempotencyKey: $idempotencyKey) {\n \n \n id\n scopeId\n legalEntityId\n originChannelId\n code\n kind\n status\n supplierId\n supplier { id code name status }\n destinationStockLocationId\n destinationStockLocation { id name }\n currencyCode\n revision\n approvedRevision\n approvedAmount\n requestedDeliveryOn\n supplierReference\n notesToSupplier\n internalNotes\n managedBy\n externalId\n externalNumber\n externalApprovalStatus\n sentAt\n closedAt\n closeReason\n createdByRef\n total\n lineCount\n confirmation\n lines { \n id\n purchaseOrderId\n position\n productVariantId\n supplierItemId\n sku\n name\n supplierSku\n purchaseUnitLabel\n purchaseUnitFactor\n orderedQuantity\n orderedBaseQuantity\n cancelledBaseQuantity\n receivedBaseQuantity\n returnedForReplacementBaseQuantity\n unitPrice\n discountBps\n priceSource\n vatRateBps\n lineTotal\n requestedOn\n confirmedBaseQuantity\n confirmedOn\n confirmedAt\n externalLineId\n createdAt\n updatedAt\n }\n createdAt\n updatedAt\n\n statusHistory { id fromStatus status actorRef reason metadata createdAt }\n revisions {\n id\n revision\n state\n diff\n totalAfter\n createdByRef\n createdAt\n appliedAt\n sentAt\n sentVia\n sentReference\n }\n\n }\n }\n";
390
+ export declare const ADD_PURCHASE_ORDER_LINES_MUTATION = "\n mutation AddPurchaseOrderLines(\n $purchaseOrderId: ID!\n $lines: [PurchaseOrderLineInput!]!\n $idempotencyKey: String\n ) {\n addPurchaseOrderLines(\n purchaseOrderId: $purchaseOrderId\n lines: $lines\n idempotencyKey: $idempotencyKey\n ) {\n \n \n id\n scopeId\n legalEntityId\n originChannelId\n code\n kind\n status\n supplierId\n supplier { id code name status }\n destinationStockLocationId\n destinationStockLocation { id name }\n currencyCode\n revision\n approvedRevision\n approvedAmount\n requestedDeliveryOn\n supplierReference\n notesToSupplier\n internalNotes\n managedBy\n externalId\n externalNumber\n externalApprovalStatus\n sentAt\n closedAt\n closeReason\n createdByRef\n total\n lineCount\n confirmation\n lines { \n id\n purchaseOrderId\n position\n productVariantId\n supplierItemId\n sku\n name\n supplierSku\n purchaseUnitLabel\n purchaseUnitFactor\n orderedQuantity\n orderedBaseQuantity\n cancelledBaseQuantity\n receivedBaseQuantity\n returnedForReplacementBaseQuantity\n unitPrice\n discountBps\n priceSource\n vatRateBps\n lineTotal\n requestedOn\n confirmedBaseQuantity\n confirmedOn\n confirmedAt\n externalLineId\n createdAt\n updatedAt\n }\n createdAt\n updatedAt\n\n statusHistory { id fromStatus status actorRef reason metadata createdAt }\n revisions {\n id\n revision\n state\n diff\n totalAfter\n createdByRef\n createdAt\n appliedAt\n sentAt\n sentVia\n sentReference\n }\n\n }\n }\n";
391
+ export declare const UPDATE_PURCHASE_ORDER_LINE_MUTATION = "\n mutation UpdatePurchaseOrderLine(\n $input: UpdatePurchaseOrderLineInput!\n $idempotencyKey: String\n ) {\n updatePurchaseOrderLine(input: $input, idempotencyKey: $idempotencyKey) {\n \n \n id\n scopeId\n legalEntityId\n originChannelId\n code\n kind\n status\n supplierId\n supplier { id code name status }\n destinationStockLocationId\n destinationStockLocation { id name }\n currencyCode\n revision\n approvedRevision\n approvedAmount\n requestedDeliveryOn\n supplierReference\n notesToSupplier\n internalNotes\n managedBy\n externalId\n externalNumber\n externalApprovalStatus\n sentAt\n closedAt\n closeReason\n createdByRef\n total\n lineCount\n confirmation\n lines { \n id\n purchaseOrderId\n position\n productVariantId\n supplierItemId\n sku\n name\n supplierSku\n purchaseUnitLabel\n purchaseUnitFactor\n orderedQuantity\n orderedBaseQuantity\n cancelledBaseQuantity\n receivedBaseQuantity\n returnedForReplacementBaseQuantity\n unitPrice\n discountBps\n priceSource\n vatRateBps\n lineTotal\n requestedOn\n confirmedBaseQuantity\n confirmedOn\n confirmedAt\n externalLineId\n createdAt\n updatedAt\n }\n createdAt\n updatedAt\n\n statusHistory { id fromStatus status actorRef reason metadata createdAt }\n revisions {\n id\n revision\n state\n diff\n totalAfter\n createdByRef\n createdAt\n appliedAt\n sentAt\n sentVia\n sentReference\n }\n\n }\n }\n";
392
+ export declare const REMOVE_PURCHASE_ORDER_LINE_MUTATION = "\n mutation RemovePurchaseOrderLine($id: ID!, $idempotencyKey: String) {\n removePurchaseOrderLine(id: $id, idempotencyKey: $idempotencyKey) {\n \n \n id\n scopeId\n legalEntityId\n originChannelId\n code\n kind\n status\n supplierId\n supplier { id code name status }\n destinationStockLocationId\n destinationStockLocation { id name }\n currencyCode\n revision\n approvedRevision\n approvedAmount\n requestedDeliveryOn\n supplierReference\n notesToSupplier\n internalNotes\n managedBy\n externalId\n externalNumber\n externalApprovalStatus\n sentAt\n closedAt\n closeReason\n createdByRef\n total\n lineCount\n confirmation\n lines { \n id\n purchaseOrderId\n position\n productVariantId\n supplierItemId\n sku\n name\n supplierSku\n purchaseUnitLabel\n purchaseUnitFactor\n orderedQuantity\n orderedBaseQuantity\n cancelledBaseQuantity\n receivedBaseQuantity\n returnedForReplacementBaseQuantity\n unitPrice\n discountBps\n priceSource\n vatRateBps\n lineTotal\n requestedOn\n confirmedBaseQuantity\n confirmedOn\n confirmedAt\n externalLineId\n createdAt\n updatedAt\n }\n createdAt\n updatedAt\n\n statusHistory { id fromStatus status actorRef reason metadata createdAt }\n revisions {\n id\n revision\n state\n diff\n totalAfter\n createdByRef\n createdAt\n appliedAt\n sentAt\n sentVia\n sentReference\n }\n\n }\n }\n";
393
+ export declare const SUBMIT_PURCHASE_ORDER_MUTATION = "\n mutation SubmitPurchaseOrder($id: ID!, $idempotencyKey: String) {\n submitPurchaseOrder(id: $id, idempotencyKey: $idempotencyKey) { \n \n id\n scopeId\n legalEntityId\n originChannelId\n code\n kind\n status\n supplierId\n supplier { id code name status }\n destinationStockLocationId\n destinationStockLocation { id name }\n currencyCode\n revision\n approvedRevision\n approvedAmount\n requestedDeliveryOn\n supplierReference\n notesToSupplier\n internalNotes\n managedBy\n externalId\n externalNumber\n externalApprovalStatus\n sentAt\n closedAt\n closeReason\n createdByRef\n total\n lineCount\n confirmation\n lines { \n id\n purchaseOrderId\n position\n productVariantId\n supplierItemId\n sku\n name\n supplierSku\n purchaseUnitLabel\n purchaseUnitFactor\n orderedQuantity\n orderedBaseQuantity\n cancelledBaseQuantity\n receivedBaseQuantity\n returnedForReplacementBaseQuantity\n unitPrice\n discountBps\n priceSource\n vatRateBps\n lineTotal\n requestedOn\n confirmedBaseQuantity\n confirmedOn\n confirmedAt\n externalLineId\n createdAt\n updatedAt\n }\n createdAt\n updatedAt\n\n statusHistory { id fromStatus status actorRef reason metadata createdAt }\n revisions {\n id\n revision\n state\n diff\n totalAfter\n createdByRef\n createdAt\n appliedAt\n sentAt\n sentVia\n sentReference\n }\n }\n }\n";
394
+ export declare const APPROVE_PURCHASE_ORDER_MUTATION = "\n mutation ApprovePurchaseOrder($id: ID!, $idempotencyKey: String) {\n approvePurchaseOrder(id: $id, idempotencyKey: $idempotencyKey) { \n \n id\n scopeId\n legalEntityId\n originChannelId\n code\n kind\n status\n supplierId\n supplier { id code name status }\n destinationStockLocationId\n destinationStockLocation { id name }\n currencyCode\n revision\n approvedRevision\n approvedAmount\n requestedDeliveryOn\n supplierReference\n notesToSupplier\n internalNotes\n managedBy\n externalId\n externalNumber\n externalApprovalStatus\n sentAt\n closedAt\n closeReason\n createdByRef\n total\n lineCount\n confirmation\n lines { \n id\n purchaseOrderId\n position\n productVariantId\n supplierItemId\n sku\n name\n supplierSku\n purchaseUnitLabel\n purchaseUnitFactor\n orderedQuantity\n orderedBaseQuantity\n cancelledBaseQuantity\n receivedBaseQuantity\n returnedForReplacementBaseQuantity\n unitPrice\n discountBps\n priceSource\n vatRateBps\n lineTotal\n requestedOn\n confirmedBaseQuantity\n confirmedOn\n confirmedAt\n externalLineId\n createdAt\n updatedAt\n }\n createdAt\n updatedAt\n\n statusHistory { id fromStatus status actorRef reason metadata createdAt }\n revisions {\n id\n revision\n state\n diff\n totalAfter\n createdByRef\n createdAt\n appliedAt\n sentAt\n sentVia\n sentReference\n }\n }\n }\n";
395
+ export declare const REJECT_PURCHASE_ORDER_MUTATION = "\n mutation RejectPurchaseOrder($id: ID!, $reason: String!, $idempotencyKey: String) {\n rejectPurchaseOrder(id: $id, reason: $reason, idempotencyKey: $idempotencyKey) {\n \n \n id\n scopeId\n legalEntityId\n originChannelId\n code\n kind\n status\n supplierId\n supplier { id code name status }\n destinationStockLocationId\n destinationStockLocation { id name }\n currencyCode\n revision\n approvedRevision\n approvedAmount\n requestedDeliveryOn\n supplierReference\n notesToSupplier\n internalNotes\n managedBy\n externalId\n externalNumber\n externalApprovalStatus\n sentAt\n closedAt\n closeReason\n createdByRef\n total\n lineCount\n confirmation\n lines { \n id\n purchaseOrderId\n position\n productVariantId\n supplierItemId\n sku\n name\n supplierSku\n purchaseUnitLabel\n purchaseUnitFactor\n orderedQuantity\n orderedBaseQuantity\n cancelledBaseQuantity\n receivedBaseQuantity\n returnedForReplacementBaseQuantity\n unitPrice\n discountBps\n priceSource\n vatRateBps\n lineTotal\n requestedOn\n confirmedBaseQuantity\n confirmedOn\n confirmedAt\n externalLineId\n createdAt\n updatedAt\n }\n createdAt\n updatedAt\n\n statusHistory { id fromStatus status actorRef reason metadata createdAt }\n revisions {\n id\n revision\n state\n diff\n totalAfter\n createdByRef\n createdAt\n appliedAt\n sentAt\n sentVia\n sentReference\n }\n\n }\n }\n";
396
+ export declare const CANCEL_PURCHASE_ORDER_MUTATION = "\n mutation CancelPurchaseOrder($id: ID!, $reason: String, $idempotencyKey: String) {\n cancelPurchaseOrder(id: $id, reason: $reason, idempotencyKey: $idempotencyKey) {\n \n \n id\n scopeId\n legalEntityId\n originChannelId\n code\n kind\n status\n supplierId\n supplier { id code name status }\n destinationStockLocationId\n destinationStockLocation { id name }\n currencyCode\n revision\n approvedRevision\n approvedAmount\n requestedDeliveryOn\n supplierReference\n notesToSupplier\n internalNotes\n managedBy\n externalId\n externalNumber\n externalApprovalStatus\n sentAt\n closedAt\n closeReason\n createdByRef\n total\n lineCount\n confirmation\n lines { \n id\n purchaseOrderId\n position\n productVariantId\n supplierItemId\n sku\n name\n supplierSku\n purchaseUnitLabel\n purchaseUnitFactor\n orderedQuantity\n orderedBaseQuantity\n cancelledBaseQuantity\n receivedBaseQuantity\n returnedForReplacementBaseQuantity\n unitPrice\n discountBps\n priceSource\n vatRateBps\n lineTotal\n requestedOn\n confirmedBaseQuantity\n confirmedOn\n confirmedAt\n externalLineId\n createdAt\n updatedAt\n }\n createdAt\n updatedAt\n\n statusHistory { id fromStatus status actorRef reason metadata createdAt }\n revisions {\n id\n revision\n state\n diff\n totalAfter\n createdByRef\n createdAt\n appliedAt\n sentAt\n sentVia\n sentReference\n }\n\n }\n }\n";
362
397
  /**
363
398
  * The cancel that states whether the supplier is emailed: sent only when `notifySupplier` is
364
399
  * given, so a cancel without it still reaches an engine from before the cancellation email.
365
400
  */
366
- export declare const CANCEL_PURCHASE_ORDER_NOTIFYING_MUTATION = "\n mutation CancelPurchaseOrderNotifying(\n $id: ID!\n $reason: String\n $notifySupplier: Boolean\n $idempotencyKey: String\n ) {\n cancelPurchaseOrder(\n id: $id\n reason: $reason\n notifySupplier: $notifySupplier\n idempotencyKey: $idempotencyKey\n ) {\n \n \n id\n scopeId\n legalEntityId\n originChannelId\n code\n kind\n status\n supplierId\n supplier { id code name status }\n destinationStockLocationId\n destinationStockLocation { id name }\n currencyCode\n revision\n approvedRevision\n approvedAmount\n requestedDeliveryOn\n supplierReference\n notesToSupplier\n internalNotes\n managedBy\n externalId\n externalNumber\n externalApprovalStatus\n sentAt\n closedAt\n closeReason\n createdByRef\n total\n lineCount\n confirmation\n lines { \n id\n purchaseOrderId\n position\n productVariantId\n supplierItemId\n sku\n name\n supplierSku\n purchaseUnitLabel\n purchaseUnitFactor\n orderedQuantity\n orderedBaseQuantity\n cancelledBaseQuantity\n receivedBaseQuantity\n returnedForReplacementBaseQuantity\n unitPrice\n discountBps\n priceSource\n vatRateBps\n lineTotal\n requestedOn\n confirmedBaseQuantity\n confirmedOn\n confirmedAt\n externalLineId\n createdAt\n updatedAt\n }\n createdAt\n updatedAt\n\n statusHistory { id fromStatus status actorRef reason metadata createdAt }\n revisions {\n id\n revision\n state\n diff\n totalAfter\n createdByRef\n createdAt\n appliedAt\n sentAt\n sentVia\n }\n\n }\n }\n";
367
- export declare const SEND_PURCHASE_ORDER_MUTATION = "\n mutation SendPurchaseOrder($id: ID!, $via: String!, $idempotencyKey: String) {\n sendPurchaseOrder(id: $id, via: $via, idempotencyKey: $idempotencyKey) {\n \n \n id\n scopeId\n legalEntityId\n originChannelId\n code\n kind\n status\n supplierId\n supplier { id code name status }\n destinationStockLocationId\n destinationStockLocation { id name }\n currencyCode\n revision\n approvedRevision\n approvedAmount\n requestedDeliveryOn\n supplierReference\n notesToSupplier\n internalNotes\n managedBy\n externalId\n externalNumber\n externalApprovalStatus\n sentAt\n closedAt\n closeReason\n createdByRef\n total\n lineCount\n confirmation\n lines { \n id\n purchaseOrderId\n position\n productVariantId\n supplierItemId\n sku\n name\n supplierSku\n purchaseUnitLabel\n purchaseUnitFactor\n orderedQuantity\n orderedBaseQuantity\n cancelledBaseQuantity\n receivedBaseQuantity\n returnedForReplacementBaseQuantity\n unitPrice\n discountBps\n priceSource\n vatRateBps\n lineTotal\n requestedOn\n confirmedBaseQuantity\n confirmedOn\n confirmedAt\n externalLineId\n createdAt\n updatedAt\n }\n createdAt\n updatedAt\n\n statusHistory { id fromStatus status actorRef reason metadata createdAt }\n revisions {\n id\n revision\n state\n diff\n totalAfter\n createdByRef\n createdAt\n appliedAt\n sentAt\n sentVia\n }\n\n }\n }\n";
368
- export declare const REVISE_PURCHASE_ORDER_MUTATION = "\n mutation RevisePurchaseOrder($input: RevisePurchaseOrderInput!, $idempotencyKey: String) {\n revisePurchaseOrder(input: $input, idempotencyKey: $idempotencyKey) {\n \n \n id\n scopeId\n legalEntityId\n originChannelId\n code\n kind\n status\n supplierId\n supplier { id code name status }\n destinationStockLocationId\n destinationStockLocation { id name }\n currencyCode\n revision\n approvedRevision\n approvedAmount\n requestedDeliveryOn\n supplierReference\n notesToSupplier\n internalNotes\n managedBy\n externalId\n externalNumber\n externalApprovalStatus\n sentAt\n closedAt\n closeReason\n createdByRef\n total\n lineCount\n confirmation\n lines { \n id\n purchaseOrderId\n position\n productVariantId\n supplierItemId\n sku\n name\n supplierSku\n purchaseUnitLabel\n purchaseUnitFactor\n orderedQuantity\n orderedBaseQuantity\n cancelledBaseQuantity\n receivedBaseQuantity\n returnedForReplacementBaseQuantity\n unitPrice\n discountBps\n priceSource\n vatRateBps\n lineTotal\n requestedOn\n confirmedBaseQuantity\n confirmedOn\n confirmedAt\n externalLineId\n createdAt\n updatedAt\n }\n createdAt\n updatedAt\n\n statusHistory { id fromStatus status actorRef reason metadata createdAt }\n revisions {\n id\n revision\n state\n diff\n totalAfter\n createdByRef\n createdAt\n appliedAt\n sentAt\n sentVia\n }\n\n }\n }\n";
369
- export declare const APPROVE_PURCHASE_ORDER_REVISION_MUTATION = "\n mutation ApprovePurchaseOrderRevision($purchaseOrderId: ID!, $idempotencyKey: String) {\n approvePurchaseOrderRevision(\n purchaseOrderId: $purchaseOrderId\n idempotencyKey: $idempotencyKey\n ) {\n \n \n id\n scopeId\n legalEntityId\n originChannelId\n code\n kind\n status\n supplierId\n supplier { id code name status }\n destinationStockLocationId\n destinationStockLocation { id name }\n currencyCode\n revision\n approvedRevision\n approvedAmount\n requestedDeliveryOn\n supplierReference\n notesToSupplier\n internalNotes\n managedBy\n externalId\n externalNumber\n externalApprovalStatus\n sentAt\n closedAt\n closeReason\n createdByRef\n total\n lineCount\n confirmation\n lines { \n id\n purchaseOrderId\n position\n productVariantId\n supplierItemId\n sku\n name\n supplierSku\n purchaseUnitLabel\n purchaseUnitFactor\n orderedQuantity\n orderedBaseQuantity\n cancelledBaseQuantity\n receivedBaseQuantity\n returnedForReplacementBaseQuantity\n unitPrice\n discountBps\n priceSource\n vatRateBps\n lineTotal\n requestedOn\n confirmedBaseQuantity\n confirmedOn\n confirmedAt\n externalLineId\n createdAt\n updatedAt\n }\n createdAt\n updatedAt\n\n statusHistory { id fromStatus status actorRef reason metadata createdAt }\n revisions {\n id\n revision\n state\n diff\n totalAfter\n createdByRef\n createdAt\n appliedAt\n sentAt\n sentVia\n }\n\n }\n }\n";
370
- export declare const DISCARD_PURCHASE_ORDER_REVISION_MUTATION = "\n mutation DiscardPurchaseOrderRevision(\n $purchaseOrderId: ID!\n $reason: String\n $idempotencyKey: String\n ) {\n discardPurchaseOrderRevision(\n purchaseOrderId: $purchaseOrderId\n reason: $reason\n idempotencyKey: $idempotencyKey\n ) {\n \n \n id\n scopeId\n legalEntityId\n originChannelId\n code\n kind\n status\n supplierId\n supplier { id code name status }\n destinationStockLocationId\n destinationStockLocation { id name }\n currencyCode\n revision\n approvedRevision\n approvedAmount\n requestedDeliveryOn\n supplierReference\n notesToSupplier\n internalNotes\n managedBy\n externalId\n externalNumber\n externalApprovalStatus\n sentAt\n closedAt\n closeReason\n createdByRef\n total\n lineCount\n confirmation\n lines { \n id\n purchaseOrderId\n position\n productVariantId\n supplierItemId\n sku\n name\n supplierSku\n purchaseUnitLabel\n purchaseUnitFactor\n orderedQuantity\n orderedBaseQuantity\n cancelledBaseQuantity\n receivedBaseQuantity\n returnedForReplacementBaseQuantity\n unitPrice\n discountBps\n priceSource\n vatRateBps\n lineTotal\n requestedOn\n confirmedBaseQuantity\n confirmedOn\n confirmedAt\n externalLineId\n createdAt\n updatedAt\n }\n createdAt\n updatedAt\n\n statusHistory { id fromStatus status actorRef reason metadata createdAt }\n revisions {\n id\n revision\n state\n diff\n totalAfter\n createdByRef\n createdAt\n appliedAt\n sentAt\n sentVia\n }\n\n }\n }\n";
371
- export declare const CLOSE_PURCHASE_ORDER_MUTATION = "\n mutation ClosePurchaseOrder($id: ID!, $reason: String!, $idempotencyKey: String) {\n closePurchaseOrder(id: $id, reason: $reason, idempotencyKey: $idempotencyKey) {\n \n \n id\n scopeId\n legalEntityId\n originChannelId\n code\n kind\n status\n supplierId\n supplier { id code name status }\n destinationStockLocationId\n destinationStockLocation { id name }\n currencyCode\n revision\n approvedRevision\n approvedAmount\n requestedDeliveryOn\n supplierReference\n notesToSupplier\n internalNotes\n managedBy\n externalId\n externalNumber\n externalApprovalStatus\n sentAt\n closedAt\n closeReason\n createdByRef\n total\n lineCount\n confirmation\n lines { \n id\n purchaseOrderId\n position\n productVariantId\n supplierItemId\n sku\n name\n supplierSku\n purchaseUnitLabel\n purchaseUnitFactor\n orderedQuantity\n orderedBaseQuantity\n cancelledBaseQuantity\n receivedBaseQuantity\n returnedForReplacementBaseQuantity\n unitPrice\n discountBps\n priceSource\n vatRateBps\n lineTotal\n requestedOn\n confirmedBaseQuantity\n confirmedOn\n confirmedAt\n externalLineId\n createdAt\n updatedAt\n }\n createdAt\n updatedAt\n\n statusHistory { id fromStatus status actorRef reason metadata createdAt }\n revisions {\n id\n revision\n state\n diff\n totalAfter\n createdByRef\n createdAt\n appliedAt\n sentAt\n sentVia\n }\n\n }\n }\n";
372
- export declare const REOPEN_PURCHASE_ORDER_MUTATION = "\n mutation ReopenPurchaseOrder($id: ID!, $reason: String, $idempotencyKey: String) {\n reopenPurchaseOrder(id: $id, reason: $reason, idempotencyKey: $idempotencyKey) {\n \n \n id\n scopeId\n legalEntityId\n originChannelId\n code\n kind\n status\n supplierId\n supplier { id code name status }\n destinationStockLocationId\n destinationStockLocation { id name }\n currencyCode\n revision\n approvedRevision\n approvedAmount\n requestedDeliveryOn\n supplierReference\n notesToSupplier\n internalNotes\n managedBy\n externalId\n externalNumber\n externalApprovalStatus\n sentAt\n closedAt\n closeReason\n createdByRef\n total\n lineCount\n confirmation\n lines { \n id\n purchaseOrderId\n position\n productVariantId\n supplierItemId\n sku\n name\n supplierSku\n purchaseUnitLabel\n purchaseUnitFactor\n orderedQuantity\n orderedBaseQuantity\n cancelledBaseQuantity\n receivedBaseQuantity\n returnedForReplacementBaseQuantity\n unitPrice\n discountBps\n priceSource\n vatRateBps\n lineTotal\n requestedOn\n confirmedBaseQuantity\n confirmedOn\n confirmedAt\n externalLineId\n createdAt\n updatedAt\n }\n createdAt\n updatedAt\n\n statusHistory { id fromStatus status actorRef reason metadata createdAt }\n revisions {\n id\n revision\n state\n diff\n totalAfter\n createdByRef\n createdAt\n appliedAt\n sentAt\n sentVia\n }\n\n }\n }\n";
401
+ export declare const CANCEL_PURCHASE_ORDER_NOTIFYING_MUTATION = "\n mutation CancelPurchaseOrderNotifying(\n $id: ID!\n $reason: String\n $notifySupplier: Boolean\n $idempotencyKey: String\n ) {\n cancelPurchaseOrder(\n id: $id\n reason: $reason\n notifySupplier: $notifySupplier\n idempotencyKey: $idempotencyKey\n ) {\n \n \n id\n scopeId\n legalEntityId\n originChannelId\n code\n kind\n status\n supplierId\n supplier { id code name status }\n destinationStockLocationId\n destinationStockLocation { id name }\n currencyCode\n revision\n approvedRevision\n approvedAmount\n requestedDeliveryOn\n supplierReference\n notesToSupplier\n internalNotes\n managedBy\n externalId\n externalNumber\n externalApprovalStatus\n sentAt\n closedAt\n closeReason\n createdByRef\n total\n lineCount\n confirmation\n lines { \n id\n purchaseOrderId\n position\n productVariantId\n supplierItemId\n sku\n name\n supplierSku\n purchaseUnitLabel\n purchaseUnitFactor\n orderedQuantity\n orderedBaseQuantity\n cancelledBaseQuantity\n receivedBaseQuantity\n returnedForReplacementBaseQuantity\n unitPrice\n discountBps\n priceSource\n vatRateBps\n lineTotal\n requestedOn\n confirmedBaseQuantity\n confirmedOn\n confirmedAt\n externalLineId\n createdAt\n updatedAt\n }\n createdAt\n updatedAt\n\n statusHistory { id fromStatus status actorRef reason metadata createdAt }\n revisions {\n id\n revision\n state\n diff\n totalAfter\n createdByRef\n createdAt\n appliedAt\n sentAt\n sentVia\n sentReference\n }\n\n }\n }\n";
402
+ export declare const SEND_PURCHASE_ORDER_MUTATION = "\n mutation SendPurchaseOrder($id: ID!, $via: String!, $idempotencyKey: String) {\n sendPurchaseOrder(id: $id, via: $via, idempotencyKey: $idempotencyKey) {\n \n \n id\n scopeId\n legalEntityId\n originChannelId\n code\n kind\n status\n supplierId\n supplier { id code name status }\n destinationStockLocationId\n destinationStockLocation { id name }\n currencyCode\n revision\n approvedRevision\n approvedAmount\n requestedDeliveryOn\n supplierReference\n notesToSupplier\n internalNotes\n managedBy\n externalId\n externalNumber\n externalApprovalStatus\n sentAt\n closedAt\n closeReason\n createdByRef\n total\n lineCount\n confirmation\n lines { \n id\n purchaseOrderId\n position\n productVariantId\n supplierItemId\n sku\n name\n supplierSku\n purchaseUnitLabel\n purchaseUnitFactor\n orderedQuantity\n orderedBaseQuantity\n cancelledBaseQuantity\n receivedBaseQuantity\n returnedForReplacementBaseQuantity\n unitPrice\n discountBps\n priceSource\n vatRateBps\n lineTotal\n requestedOn\n confirmedBaseQuantity\n confirmedOn\n confirmedAt\n externalLineId\n createdAt\n updatedAt\n }\n createdAt\n updatedAt\n\n statusHistory { id fromStatus status actorRef reason metadata createdAt }\n revisions {\n id\n revision\n state\n diff\n totalAfter\n createdByRef\n createdAt\n appliedAt\n sentAt\n sentVia\n sentReference\n }\n\n }\n }\n";
403
+ /**
404
+ * The external send with what the integration knows (engine with `via: 'external'`); sent only
405
+ * when the caller states one, so a plain send keeps working against an older engine.
406
+ */
407
+ export declare const SEND_PURCHASE_ORDER_EXTERNAL_MUTATION = "\n mutation SendPurchaseOrderExternal(\n $id: ID!\n $via: String!\n $idempotencyKey: String\n $externalReference: String\n $transmittedAt: DateTime\n ) {\n sendPurchaseOrder(\n id: $id\n via: $via\n idempotencyKey: $idempotencyKey\n externalReference: $externalReference\n transmittedAt: $transmittedAt\n ) {\n \n \n id\n scopeId\n legalEntityId\n originChannelId\n code\n kind\n status\n supplierId\n supplier { id code name status }\n destinationStockLocationId\n destinationStockLocation { id name }\n currencyCode\n revision\n approvedRevision\n approvedAmount\n requestedDeliveryOn\n supplierReference\n notesToSupplier\n internalNotes\n managedBy\n externalId\n externalNumber\n externalApprovalStatus\n sentAt\n closedAt\n closeReason\n createdByRef\n total\n lineCount\n confirmation\n lines { \n id\n purchaseOrderId\n position\n productVariantId\n supplierItemId\n sku\n name\n supplierSku\n purchaseUnitLabel\n purchaseUnitFactor\n orderedQuantity\n orderedBaseQuantity\n cancelledBaseQuantity\n receivedBaseQuantity\n returnedForReplacementBaseQuantity\n unitPrice\n discountBps\n priceSource\n vatRateBps\n lineTotal\n requestedOn\n confirmedBaseQuantity\n confirmedOn\n confirmedAt\n externalLineId\n createdAt\n updatedAt\n }\n createdAt\n updatedAt\n\n statusHistory { id fromStatus status actorRef reason metadata createdAt }\n revisions {\n id\n revision\n state\n diff\n totalAfter\n createdByRef\n createdAt\n appliedAt\n sentAt\n sentVia\n sentReference\n }\n\n }\n }\n";
408
+ export declare const REVISE_PURCHASE_ORDER_MUTATION = "\n mutation RevisePurchaseOrder($input: RevisePurchaseOrderInput!, $idempotencyKey: String) {\n revisePurchaseOrder(input: $input, idempotencyKey: $idempotencyKey) {\n \n \n id\n scopeId\n legalEntityId\n originChannelId\n code\n kind\n status\n supplierId\n supplier { id code name status }\n destinationStockLocationId\n destinationStockLocation { id name }\n currencyCode\n revision\n approvedRevision\n approvedAmount\n requestedDeliveryOn\n supplierReference\n notesToSupplier\n internalNotes\n managedBy\n externalId\n externalNumber\n externalApprovalStatus\n sentAt\n closedAt\n closeReason\n createdByRef\n total\n lineCount\n confirmation\n lines { \n id\n purchaseOrderId\n position\n productVariantId\n supplierItemId\n sku\n name\n supplierSku\n purchaseUnitLabel\n purchaseUnitFactor\n orderedQuantity\n orderedBaseQuantity\n cancelledBaseQuantity\n receivedBaseQuantity\n returnedForReplacementBaseQuantity\n unitPrice\n discountBps\n priceSource\n vatRateBps\n lineTotal\n requestedOn\n confirmedBaseQuantity\n confirmedOn\n confirmedAt\n externalLineId\n createdAt\n updatedAt\n }\n createdAt\n updatedAt\n\n statusHistory { id fromStatus status actorRef reason metadata createdAt }\n revisions {\n id\n revision\n state\n diff\n totalAfter\n createdByRef\n createdAt\n appliedAt\n sentAt\n sentVia\n sentReference\n }\n\n }\n }\n";
409
+ export declare const APPROVE_PURCHASE_ORDER_REVISION_MUTATION = "\n mutation ApprovePurchaseOrderRevision($purchaseOrderId: ID!, $idempotencyKey: String) {\n approvePurchaseOrderRevision(\n purchaseOrderId: $purchaseOrderId\n idempotencyKey: $idempotencyKey\n ) {\n \n \n id\n scopeId\n legalEntityId\n originChannelId\n code\n kind\n status\n supplierId\n supplier { id code name status }\n destinationStockLocationId\n destinationStockLocation { id name }\n currencyCode\n revision\n approvedRevision\n approvedAmount\n requestedDeliveryOn\n supplierReference\n notesToSupplier\n internalNotes\n managedBy\n externalId\n externalNumber\n externalApprovalStatus\n sentAt\n closedAt\n closeReason\n createdByRef\n total\n lineCount\n confirmation\n lines { \n id\n purchaseOrderId\n position\n productVariantId\n supplierItemId\n sku\n name\n supplierSku\n purchaseUnitLabel\n purchaseUnitFactor\n orderedQuantity\n orderedBaseQuantity\n cancelledBaseQuantity\n receivedBaseQuantity\n returnedForReplacementBaseQuantity\n unitPrice\n discountBps\n priceSource\n vatRateBps\n lineTotal\n requestedOn\n confirmedBaseQuantity\n confirmedOn\n confirmedAt\n externalLineId\n createdAt\n updatedAt\n }\n createdAt\n updatedAt\n\n statusHistory { id fromStatus status actorRef reason metadata createdAt }\n revisions {\n id\n revision\n state\n diff\n totalAfter\n createdByRef\n createdAt\n appliedAt\n sentAt\n sentVia\n sentReference\n }\n\n }\n }\n";
410
+ export declare const DISCARD_PURCHASE_ORDER_REVISION_MUTATION = "\n mutation DiscardPurchaseOrderRevision(\n $purchaseOrderId: ID!\n $reason: String\n $idempotencyKey: String\n ) {\n discardPurchaseOrderRevision(\n purchaseOrderId: $purchaseOrderId\n reason: $reason\n idempotencyKey: $idempotencyKey\n ) {\n \n \n id\n scopeId\n legalEntityId\n originChannelId\n code\n kind\n status\n supplierId\n supplier { id code name status }\n destinationStockLocationId\n destinationStockLocation { id name }\n currencyCode\n revision\n approvedRevision\n approvedAmount\n requestedDeliveryOn\n supplierReference\n notesToSupplier\n internalNotes\n managedBy\n externalId\n externalNumber\n externalApprovalStatus\n sentAt\n closedAt\n closeReason\n createdByRef\n total\n lineCount\n confirmation\n lines { \n id\n purchaseOrderId\n position\n productVariantId\n supplierItemId\n sku\n name\n supplierSku\n purchaseUnitLabel\n purchaseUnitFactor\n orderedQuantity\n orderedBaseQuantity\n cancelledBaseQuantity\n receivedBaseQuantity\n returnedForReplacementBaseQuantity\n unitPrice\n discountBps\n priceSource\n vatRateBps\n lineTotal\n requestedOn\n confirmedBaseQuantity\n confirmedOn\n confirmedAt\n externalLineId\n createdAt\n updatedAt\n }\n createdAt\n updatedAt\n\n statusHistory { id fromStatus status actorRef reason metadata createdAt }\n revisions {\n id\n revision\n state\n diff\n totalAfter\n createdByRef\n createdAt\n appliedAt\n sentAt\n sentVia\n sentReference\n }\n\n }\n }\n";
411
+ export declare const CLOSE_PURCHASE_ORDER_MUTATION = "\n mutation ClosePurchaseOrder($id: ID!, $reason: String!, $idempotencyKey: String) {\n closePurchaseOrder(id: $id, reason: $reason, idempotencyKey: $idempotencyKey) {\n \n \n id\n scopeId\n legalEntityId\n originChannelId\n code\n kind\n status\n supplierId\n supplier { id code name status }\n destinationStockLocationId\n destinationStockLocation { id name }\n currencyCode\n revision\n approvedRevision\n approvedAmount\n requestedDeliveryOn\n supplierReference\n notesToSupplier\n internalNotes\n managedBy\n externalId\n externalNumber\n externalApprovalStatus\n sentAt\n closedAt\n closeReason\n createdByRef\n total\n lineCount\n confirmation\n lines { \n id\n purchaseOrderId\n position\n productVariantId\n supplierItemId\n sku\n name\n supplierSku\n purchaseUnitLabel\n purchaseUnitFactor\n orderedQuantity\n orderedBaseQuantity\n cancelledBaseQuantity\n receivedBaseQuantity\n returnedForReplacementBaseQuantity\n unitPrice\n discountBps\n priceSource\n vatRateBps\n lineTotal\n requestedOn\n confirmedBaseQuantity\n confirmedOn\n confirmedAt\n externalLineId\n createdAt\n updatedAt\n }\n createdAt\n updatedAt\n\n statusHistory { id fromStatus status actorRef reason metadata createdAt }\n revisions {\n id\n revision\n state\n diff\n totalAfter\n createdByRef\n createdAt\n appliedAt\n sentAt\n sentVia\n sentReference\n }\n\n }\n }\n";
412
+ export declare const REOPEN_PURCHASE_ORDER_MUTATION = "\n mutation ReopenPurchaseOrder($id: ID!, $reason: String, $idempotencyKey: String) {\n reopenPurchaseOrder(id: $id, reason: $reason, idempotencyKey: $idempotencyKey) {\n \n \n id\n scopeId\n legalEntityId\n originChannelId\n code\n kind\n status\n supplierId\n supplier { id code name status }\n destinationStockLocationId\n destinationStockLocation { id name }\n currencyCode\n revision\n approvedRevision\n approvedAmount\n requestedDeliveryOn\n supplierReference\n notesToSupplier\n internalNotes\n managedBy\n externalId\n externalNumber\n externalApprovalStatus\n sentAt\n closedAt\n closeReason\n createdByRef\n total\n lineCount\n confirmation\n lines { \n id\n purchaseOrderId\n position\n productVariantId\n supplierItemId\n sku\n name\n supplierSku\n purchaseUnitLabel\n purchaseUnitFactor\n orderedQuantity\n orderedBaseQuantity\n cancelledBaseQuantity\n receivedBaseQuantity\n returnedForReplacementBaseQuantity\n unitPrice\n discountBps\n priceSource\n vatRateBps\n lineTotal\n requestedOn\n confirmedBaseQuantity\n confirmedOn\n confirmedAt\n externalLineId\n createdAt\n updatedAt\n }\n createdAt\n updatedAt\n\n statusHistory { id fromStatus status actorRef reason metadata createdAt }\n revisions {\n id\n revision\n state\n diff\n totalAfter\n createdByRef\n createdAt\n appliedAt\n sentAt\n sentVia\n sentReference\n }\n\n }\n }\n";
373
413
  export declare const CREATE_PURCHASE_ORDER_DOCUMENT_URL_MUTATION = "\n mutation CreatePurchaseOrderDocumentUrl($purchaseOrderId: ID!, $revision: Int) {\n createPurchaseOrderDocumentUrl(purchaseOrderId: $purchaseOrderId, revision: $revision) {\n url\n expiresAt\n filename\n revision\n }\n }\n";
374
- export declare const CONFIRM_PURCHASE_ORDER_MUTATION = "\n mutation ConfirmPurchaseOrder($input: ConfirmPurchaseOrderInput!, $idempotencyKey: String) {\n confirmPurchaseOrder(input: $input, idempotencyKey: $idempotencyKey) {\n \n \n id\n scopeId\n legalEntityId\n originChannelId\n code\n kind\n status\n supplierId\n supplier { id code name status }\n destinationStockLocationId\n destinationStockLocation { id name }\n currencyCode\n revision\n approvedRevision\n approvedAmount\n requestedDeliveryOn\n supplierReference\n notesToSupplier\n internalNotes\n managedBy\n externalId\n externalNumber\n externalApprovalStatus\n sentAt\n closedAt\n closeReason\n createdByRef\n total\n lineCount\n confirmation\n lines { \n id\n purchaseOrderId\n position\n productVariantId\n supplierItemId\n sku\n name\n supplierSku\n purchaseUnitLabel\n purchaseUnitFactor\n orderedQuantity\n orderedBaseQuantity\n cancelledBaseQuantity\n receivedBaseQuantity\n returnedForReplacementBaseQuantity\n unitPrice\n discountBps\n priceSource\n vatRateBps\n lineTotal\n requestedOn\n confirmedBaseQuantity\n confirmedOn\n confirmedAt\n externalLineId\n createdAt\n updatedAt\n }\n createdAt\n updatedAt\n\n statusHistory { id fromStatus status actorRef reason metadata createdAt }\n revisions {\n id\n revision\n state\n diff\n totalAfter\n createdByRef\n createdAt\n appliedAt\n sentAt\n sentVia\n }\n\n }\n }\n";
375
- export declare const DUPLICATE_PURCHASE_ORDER_MUTATION = "\n mutation DuplicatePurchaseOrder($id: ID!, $idempotencyKey: String) {\n duplicatePurchaseOrder(id: $id, idempotencyKey: $idempotencyKey) { \n \n id\n scopeId\n legalEntityId\n originChannelId\n code\n kind\n status\n supplierId\n supplier { id code name status }\n destinationStockLocationId\n destinationStockLocation { id name }\n currencyCode\n revision\n approvedRevision\n approvedAmount\n requestedDeliveryOn\n supplierReference\n notesToSupplier\n internalNotes\n managedBy\n externalId\n externalNumber\n externalApprovalStatus\n sentAt\n closedAt\n closeReason\n createdByRef\n total\n lineCount\n confirmation\n lines { \n id\n purchaseOrderId\n position\n productVariantId\n supplierItemId\n sku\n name\n supplierSku\n purchaseUnitLabel\n purchaseUnitFactor\n orderedQuantity\n orderedBaseQuantity\n cancelledBaseQuantity\n receivedBaseQuantity\n returnedForReplacementBaseQuantity\n unitPrice\n discountBps\n priceSource\n vatRateBps\n lineTotal\n requestedOn\n confirmedBaseQuantity\n confirmedOn\n confirmedAt\n externalLineId\n createdAt\n updatedAt\n }\n createdAt\n updatedAt\n\n statusHistory { id fromStatus status actorRef reason metadata createdAt }\n revisions {\n id\n revision\n state\n diff\n totalAfter\n createdByRef\n createdAt\n appliedAt\n sentAt\n sentVia\n }\n }\n }\n";
376
- export declare const IMPORT_PURCHASE_ORDER_LINES_MUTATION = "\n mutation ImportPurchaseOrderLines(\n $input: ImportPurchaseOrderLinesInput!\n $idempotencyKey: String\n ) {\n importPurchaseOrderLines(input: $input, idempotencyKey: $idempotencyKey) {\n dryRun\n contentHash\n ignoredColumns\n totalRows\n created\n updated\n unchanged\n failed\n rows { row sku supplierSku outcome lineId errorCode message }\n purchaseOrder { \n \n id\n scopeId\n legalEntityId\n originChannelId\n code\n kind\n status\n supplierId\n supplier { id code name status }\n destinationStockLocationId\n destinationStockLocation { id name }\n currencyCode\n revision\n approvedRevision\n approvedAmount\n requestedDeliveryOn\n supplierReference\n notesToSupplier\n internalNotes\n managedBy\n externalId\n externalNumber\n externalApprovalStatus\n sentAt\n closedAt\n closeReason\n createdByRef\n total\n lineCount\n confirmation\n lines { \n id\n purchaseOrderId\n position\n productVariantId\n supplierItemId\n sku\n name\n supplierSku\n purchaseUnitLabel\n purchaseUnitFactor\n orderedQuantity\n orderedBaseQuantity\n cancelledBaseQuantity\n receivedBaseQuantity\n returnedForReplacementBaseQuantity\n unitPrice\n discountBps\n priceSource\n vatRateBps\n lineTotal\n requestedOn\n confirmedBaseQuantity\n confirmedOn\n confirmedAt\n externalLineId\n createdAt\n updatedAt\n }\n createdAt\n updatedAt\n\n statusHistory { id fromStatus status actorRef reason metadata createdAt }\n revisions {\n id\n revision\n state\n diff\n totalAfter\n createdByRef\n createdAt\n appliedAt\n sentAt\n sentVia\n }\n }\n }\n }\n";
414
+ export declare const CONFIRM_PURCHASE_ORDER_MUTATION = "\n mutation ConfirmPurchaseOrder($input: ConfirmPurchaseOrderInput!, $idempotencyKey: String) {\n confirmPurchaseOrder(input: $input, idempotencyKey: $idempotencyKey) {\n \n \n id\n scopeId\n legalEntityId\n originChannelId\n code\n kind\n status\n supplierId\n supplier { id code name status }\n destinationStockLocationId\n destinationStockLocation { id name }\n currencyCode\n revision\n approvedRevision\n approvedAmount\n requestedDeliveryOn\n supplierReference\n notesToSupplier\n internalNotes\n managedBy\n externalId\n externalNumber\n externalApprovalStatus\n sentAt\n closedAt\n closeReason\n createdByRef\n total\n lineCount\n confirmation\n lines { \n id\n purchaseOrderId\n position\n productVariantId\n supplierItemId\n sku\n name\n supplierSku\n purchaseUnitLabel\n purchaseUnitFactor\n orderedQuantity\n orderedBaseQuantity\n cancelledBaseQuantity\n receivedBaseQuantity\n returnedForReplacementBaseQuantity\n unitPrice\n discountBps\n priceSource\n vatRateBps\n lineTotal\n requestedOn\n confirmedBaseQuantity\n confirmedOn\n confirmedAt\n externalLineId\n createdAt\n updatedAt\n }\n createdAt\n updatedAt\n\n statusHistory { id fromStatus status actorRef reason metadata createdAt }\n revisions {\n id\n revision\n state\n diff\n totalAfter\n createdByRef\n createdAt\n appliedAt\n sentAt\n sentVia\n sentReference\n }\n\n }\n }\n";
415
+ export declare const DUPLICATE_PURCHASE_ORDER_MUTATION = "\n mutation DuplicatePurchaseOrder($id: ID!, $idempotencyKey: String) {\n duplicatePurchaseOrder(id: $id, idempotencyKey: $idempotencyKey) { \n \n id\n scopeId\n legalEntityId\n originChannelId\n code\n kind\n status\n supplierId\n supplier { id code name status }\n destinationStockLocationId\n destinationStockLocation { id name }\n currencyCode\n revision\n approvedRevision\n approvedAmount\n requestedDeliveryOn\n supplierReference\n notesToSupplier\n internalNotes\n managedBy\n externalId\n externalNumber\n externalApprovalStatus\n sentAt\n closedAt\n closeReason\n createdByRef\n total\n lineCount\n confirmation\n lines { \n id\n purchaseOrderId\n position\n productVariantId\n supplierItemId\n sku\n name\n supplierSku\n purchaseUnitLabel\n purchaseUnitFactor\n orderedQuantity\n orderedBaseQuantity\n cancelledBaseQuantity\n receivedBaseQuantity\n returnedForReplacementBaseQuantity\n unitPrice\n discountBps\n priceSource\n vatRateBps\n lineTotal\n requestedOn\n confirmedBaseQuantity\n confirmedOn\n confirmedAt\n externalLineId\n createdAt\n updatedAt\n }\n createdAt\n updatedAt\n\n statusHistory { id fromStatus status actorRef reason metadata createdAt }\n revisions {\n id\n revision\n state\n diff\n totalAfter\n createdByRef\n createdAt\n appliedAt\n sentAt\n sentVia\n sentReference\n }\n }\n }\n";
416
+ export declare const IMPORT_PURCHASE_ORDER_LINES_MUTATION = "\n mutation ImportPurchaseOrderLines(\n $input: ImportPurchaseOrderLinesInput!\n $idempotencyKey: String\n ) {\n importPurchaseOrderLines(input: $input, idempotencyKey: $idempotencyKey) {\n dryRun\n contentHash\n ignoredColumns\n totalRows\n created\n updated\n unchanged\n failed\n rows { row sku supplierSku outcome lineId errorCode message }\n purchaseOrder { \n \n id\n scopeId\n legalEntityId\n originChannelId\n code\n kind\n status\n supplierId\n supplier { id code name status }\n destinationStockLocationId\n destinationStockLocation { id name }\n currencyCode\n revision\n approvedRevision\n approvedAmount\n requestedDeliveryOn\n supplierReference\n notesToSupplier\n internalNotes\n managedBy\n externalId\n externalNumber\n externalApprovalStatus\n sentAt\n closedAt\n closeReason\n createdByRef\n total\n lineCount\n confirmation\n lines { \n id\n purchaseOrderId\n position\n productVariantId\n supplierItemId\n sku\n name\n supplierSku\n purchaseUnitLabel\n purchaseUnitFactor\n orderedQuantity\n orderedBaseQuantity\n cancelledBaseQuantity\n receivedBaseQuantity\n returnedForReplacementBaseQuantity\n unitPrice\n discountBps\n priceSource\n vatRateBps\n lineTotal\n requestedOn\n confirmedBaseQuantity\n confirmedOn\n confirmedAt\n externalLineId\n createdAt\n updatedAt\n }\n createdAt\n updatedAt\n\n statusHistory { id fromStatus status actorRef reason metadata createdAt }\n revisions {\n id\n revision\n state\n diff\n totalAfter\n createdByRef\n createdAt\n appliedAt\n sentAt\n sentVia\n sentReference\n }\n }\n }\n }\n";
377
417
  /** A draft's lines. Each write needs `UpdatePurchaseOrder` on every store of the legal entity. */
378
418
  export interface PurchaseOrderLinesModule {
379
419
  /**
@@ -487,15 +527,19 @@ export interface PurchasingPurchaseOrdersModule {
487
527
  /**
488
528
  * Sends the order to its supplier (`UpdatePurchaseOrder`; spec §8.4.1, D74, D75). `email`: the
489
529
  * platform emails the PDF to the supplier's order contact, else its order email; `manual`:
490
- * marked sent without email, staff send the PDF themselves (`document`). An approved order
491
- * moves to `sent`; on a sent order it sends the revision applied since the last send, or
492
- * emails the current one again. Refusals, before anything changes:
530
+ * marked sent without email, staff send the PDF themselves (`document`); `external`: an
531
+ * integration transmitted the order in the supplier's own format, nothing is mailed and the PDF
532
+ * is only the order's record (`call.externalReference` and `call.transmittedAt` record what the
533
+ * integration knows; an engine before `external` answers `PURCHASE_ORDER_INVALID`). An approved
534
+ * order moves to `sent`; on a sent order it sends the revision applied since the last send, or
535
+ * emails the current one again (`manual` and `external` then change nothing). Refusals, before
536
+ * anything changes:
493
537
  * `SUPPLIER_HAS_NO_ORDER_EMAIL` and `SUPPLIER_EMAIL_UNDELIVERABLE` (422, by email: the store's
494
538
  * "Purchase Order Sent" email is off or has no recipient), `PRIVATE_STORAGE_UNCONFIGURED`
495
539
  * (422, the deployment cannot store the PDF), `PURCHASE_ORDER_INVALID_TRANSITION` (422).
496
540
  * The key is required (spec §10.1).
497
541
  */
498
- send(id: string, via: PurchaseOrderSendVia, call: PurchaseOrderKeyedCall): Promise<PurchaseOrder>;
542
+ send(id: string, via: PurchaseOrderSendVia, call: PurchaseOrderSendCall): Promise<PurchaseOrder>;
499
543
  /**
500
544
  * Revises a SENT order (`UpdatePurchaseOrder`; spec §8.3, §8.4.4): within the approved amount
501
545
  * the revision applies at once; above it the threshold decides again (a foreign currency at the
@@ -548,4 +592,4 @@ export interface PurchasingPurchaseOrdersModule {
548
592
  */
549
593
  document(id: string, options?: PurchaseOrderDocumentOptions): Promise<PurchaseOrderDocumentUrl>;
550
594
  }
551
- export declare function createPurchasingPurchaseOrdersModule(transport: Transport): PurchasingPurchaseOrdersModule;
595
+ export declare function createPurchasingPurchaseOrdersModule(baseTransport: Transport): PurchasingPurchaseOrdersModule;
@@ -1,4 +1,5 @@
1
1
  import { pageFromVendureList, readOffsetCursor, } from '@sixtyninecommerce/core';
2
+ import { isUnknownFieldRejection } from '../payments/store-credit-fields.js';
2
3
  export const PURCHASE_ORDER_LINE_FIELDS = /* GraphQL */ `
3
4
  id
4
5
  purchaseOrderId
@@ -85,8 +86,67 @@ export const PURCHASE_ORDER_FIELDS = /* GraphQL */ `
85
86
  appliedAt
86
87
  sentAt
87
88
  sentVia
89
+ sentReference
88
90
  }
89
91
  `;
92
+ /**
93
+ * `PurchaseOrderRevision.sentReference` (the external send's reference, per revision): an engine
94
+ * before it refuses every document naming it, before it runs. The same document without it reads
95
+ * as it did then, and each revision answers `sentReference: null`.
96
+ */
97
+ function withoutSentReference(document) {
98
+ return document.replace(/\bsentReference\b/g, '');
99
+ }
100
+ /** The transports {@link sentReferenceAware} made, so wrapping one again never retries twice. */
101
+ const SENT_REFERENCE_AWARE = new WeakSet();
102
+ /**
103
+ * The transport, sending a document that names `sentReference` once more without it when the
104
+ * engine refused it as unknown, and only then: any other refusal, or a document that does not name
105
+ * it, is thrown as it came. Safe for a mutation too: a refused document never ran.
106
+ * `createPurchasingModule` hands this transport to every purchasing module, so any document that
107
+ * embeds {@link PURCHASE_ORDER_FIELDS} (purchase orders, back-to-back links, replenishment drafts)
108
+ * gets the one retry; each factory that embeds it wraps again, which is a no-op on a wrapped one.
109
+ */
110
+ export function sentReferenceAware(transport) {
111
+ if (SENT_REFERENCE_AWARE.has(transport))
112
+ return transport;
113
+ const aware = {
114
+ async graphql(call, options) {
115
+ try {
116
+ return await transport.graphql(call, options);
117
+ }
118
+ catch (error) {
119
+ const legacy = withoutSentReference(call.query);
120
+ if (legacy === call.query || !isUnknownFieldRejection(error))
121
+ throw error;
122
+ return transport.graphql({ ...call, query: legacy }, options);
123
+ }
124
+ },
125
+ rest: (service, call, options) => transport.rest(service, call, options),
126
+ get rateLimit() {
127
+ return transport.rateLimit;
128
+ },
129
+ tenant: () => transport.tenant(),
130
+ channel: () => transport.channel(),
131
+ };
132
+ SENT_REFERENCE_AWARE.add(aware);
133
+ return aware;
134
+ }
135
+ /**
136
+ * An order as answered, every revision with its `sentReference` (null from an older engine). Every
137
+ * method answering an order read through {@link PURCHASE_ORDER_FIELDS} passes it through this.
138
+ */
139
+ export function withSentReferences(order) {
140
+ if (!Array.isArray(order?.revisions))
141
+ return order;
142
+ return {
143
+ ...order,
144
+ revisions: order.revisions.map((revision) => ({
145
+ ...revision,
146
+ sentReference: revision.sentReference ?? null,
147
+ })),
148
+ };
149
+ }
90
150
  export const PURCHASE_ORDERS_QUERY = /* GraphQL */ `
91
151
  query PurchaseOrders($options: PurchaseOrderListOptions) {
92
152
  purchaseOrders(options: $options) {
@@ -198,6 +258,29 @@ export const SEND_PURCHASE_ORDER_MUTATION = /* GraphQL */ `
198
258
  }
199
259
  }
200
260
  `;
261
+ /**
262
+ * The external send with what the integration knows (engine with `via: 'external'`); sent only
263
+ * when the caller states one, so a plain send keeps working against an older engine.
264
+ */
265
+ export const SEND_PURCHASE_ORDER_EXTERNAL_MUTATION = /* GraphQL */ `
266
+ mutation SendPurchaseOrderExternal(
267
+ $id: ID!
268
+ $via: String!
269
+ $idempotencyKey: String
270
+ $externalReference: String
271
+ $transmittedAt: DateTime
272
+ ) {
273
+ sendPurchaseOrder(
274
+ id: $id
275
+ via: $via
276
+ idempotencyKey: $idempotencyKey
277
+ externalReference: $externalReference
278
+ transmittedAt: $transmittedAt
279
+ ) {
280
+ ${PURCHASE_ORDER_FIELDS}
281
+ }
282
+ }
283
+ `;
201
284
  export const REVISE_PURCHASE_ORDER_MUTATION = /* GraphQL */ `
202
285
  mutation RevisePurchaseOrder($input: RevisePurchaseOrderInput!, $idempotencyKey: String) {
203
286
  revisePurchaseOrder(input: $input, idempotencyKey: $idempotencyKey) {
@@ -334,7 +417,8 @@ function picked(input, fields) {
334
417
  function linesOf(lines) {
335
418
  return lines.map((line) => picked(line, LINE_INPUT_FIELDS));
336
419
  }
337
- export function createPurchasingPurchaseOrdersModule(transport) {
420
+ export function createPurchasingPurchaseOrdersModule(baseTransport) {
421
+ const transport = sentReferenceAware(baseTransport);
338
422
  const listPage = async (skip, take, options) => {
339
423
  const filters = options ? picked(options, LIST_FILTERS) : {};
340
424
  const data = await transport.graphql({
@@ -351,7 +435,7 @@ export function createPurchasingPurchaseOrdersModule(transport) {
351
435
  };
352
436
  const mutate = async (field, query, variables, call) => {
353
437
  const data = await transport.graphql({ api: 'admin', query, variables: { ...variables, idempotencyKey: call?.idempotencyKey } }, call);
354
- return data[field];
438
+ return withSentReferences(data[field]);
355
439
  };
356
440
  return {
357
441
  async list(options) {
@@ -361,7 +445,7 @@ export function createPurchasingPurchaseOrdersModule(transport) {
361
445
  },
362
446
  async get(id, call) {
363
447
  const data = await transport.graphql({ api: 'admin', query: PURCHASE_ORDER_QUERY, variables: { id } }, call);
364
- return data.purchaseOrder;
448
+ return data.purchaseOrder && withSentReferences(data.purchaseOrder);
365
449
  },
366
450
  create(input, call) {
367
451
  const fields = {
@@ -407,7 +491,8 @@ export function createPurchasingPurchaseOrdersModule(transport) {
407
491
  idempotencyKey: options?.idempotencyKey,
408
492
  },
409
493
  }, options);
410
- return data.importPurchaseOrderLines;
494
+ const result = data.importPurchaseOrderLines;
495
+ return { ...result, purchaseOrder: withSentReferences(result.purchaseOrder) };
411
496
  },
412
497
  },
413
498
  submit(id, call) {
@@ -428,7 +513,16 @@ export function createPurchasingPurchaseOrdersModule(transport) {
428
513
  }, options);
429
514
  },
430
515
  send(id, via, call) {
431
- return mutate('sendPurchaseOrder', SEND_PURCHASE_ORDER_MUTATION, { id, via }, call);
516
+ const { externalReference, transmittedAt, ...rest } = call;
517
+ if (externalReference === undefined && transmittedAt === undefined) {
518
+ return mutate('sendPurchaseOrder', SEND_PURCHASE_ORDER_MUTATION, { id, via }, rest);
519
+ }
520
+ return mutate('sendPurchaseOrder', SEND_PURCHASE_ORDER_EXTERNAL_MUTATION, {
521
+ id,
522
+ via,
523
+ externalReference: externalReference ?? null,
524
+ transmittedAt: transmittedAt instanceof Date ? transmittedAt.toISOString() : (transmittedAt ?? null),
525
+ }, rest);
432
526
  },
433
527
  revise(id, input, call) {
434
528
  const fields = {
@@ -205,7 +205,7 @@ export declare const DELETE_REPLENISHMENT_RULE_MUTATION = "\n mutation DeleteRe
205
205
  export declare const REPLENISHMENT_SUGGESTIONS_QUERY = "\n query ReplenishmentSuggestions($options: ReplenishmentSuggestionListOptions) {\n replenishmentSuggestions(options: $options) {\n totalItems\n items { \n id\n scopeId\n legalEntityId\n stockLocationId\n stockLocation { id name }\n productVariantId\n productVariant { id sku name }\n supplierId\n supplier { id code name status currencyCode }\n supplierItemId\n method\n available\n onOrder\n backordered\n inDraft\n target\n suggestedBaseQuantity\n suggestedPurchaseQuantity\n explanation\n isNew\n computedAt\n dismissedUntil\n }\n }\n }\n";
206
206
  export declare const COMPUTE_REPLENISHMENT_SUGGESTIONS_MUTATION = "\n mutation ComputeReplenishmentSuggestions($idempotencyKey: String) {\n computeReplenishmentSuggestions(idempotencyKey: $idempotencyKey) {\n computedAt\n localDay\n timeZone\n locations\n suggestions\n newSuggestions\n dismissed\n skippedLocations { stockLocationId reason }\n }\n }\n";
207
207
  export declare const DISMISS_REPLENISHMENT_SUGGESTION_MUTATION = "\n mutation DismissReplenishmentSuggestion($id: ID!, $until: String, $idempotencyKey: String) {\n dismissReplenishmentSuggestion(id: $id, until: $until, idempotencyKey: $idempotencyKey) {\n \n id\n scopeId\n legalEntityId\n stockLocationId\n stockLocation { id name }\n productVariantId\n productVariant { id sku name }\n supplierId\n supplier { id code name status currencyCode }\n supplierItemId\n method\n available\n onOrder\n backordered\n inDraft\n target\n suggestedBaseQuantity\n suggestedPurchaseQuantity\n explanation\n isNew\n computedAt\n dismissedUntil\n\n }\n }\n";
208
- export declare const CREATE_REPLENISHMENT_DRAFTS_MUTATION = "\n mutation CreateReplenishmentDrafts(\n $input: CreateReplenishmentDraftsInput!\n $idempotencyKey: String\n ) {\n createReplenishmentDrafts(input: $input, idempotencyKey: $idempotencyKey) {\n lines\n purchaseOrders { \n \n id\n scopeId\n legalEntityId\n originChannelId\n code\n kind\n status\n supplierId\n supplier { id code name status }\n destinationStockLocationId\n destinationStockLocation { id name }\n currencyCode\n revision\n approvedRevision\n approvedAmount\n requestedDeliveryOn\n supplierReference\n notesToSupplier\n internalNotes\n managedBy\n externalId\n externalNumber\n externalApprovalStatus\n sentAt\n closedAt\n closeReason\n createdByRef\n total\n lineCount\n confirmation\n lines { \n id\n purchaseOrderId\n position\n productVariantId\n supplierItemId\n sku\n name\n supplierSku\n purchaseUnitLabel\n purchaseUnitFactor\n orderedQuantity\n orderedBaseQuantity\n cancelledBaseQuantity\n receivedBaseQuantity\n returnedForReplacementBaseQuantity\n unitPrice\n discountBps\n priceSource\n vatRateBps\n lineTotal\n requestedOn\n confirmedBaseQuantity\n confirmedOn\n confirmedAt\n externalLineId\n createdAt\n updatedAt\n }\n createdAt\n updatedAt\n\n statusHistory { id fromStatus status actorRef reason metadata createdAt }\n revisions {\n id\n revision\n state\n diff\n totalAfter\n createdByRef\n createdAt\n appliedAt\n sentAt\n sentVia\n }\n }\n }\n }\n";
208
+ export declare const CREATE_REPLENISHMENT_DRAFTS_MUTATION = "\n mutation CreateReplenishmentDrafts(\n $input: CreateReplenishmentDraftsInput!\n $idempotencyKey: String\n ) {\n createReplenishmentDrafts(input: $input, idempotencyKey: $idempotencyKey) {\n lines\n purchaseOrders { \n \n id\n scopeId\n legalEntityId\n originChannelId\n code\n kind\n status\n supplierId\n supplier { id code name status }\n destinationStockLocationId\n destinationStockLocation { id name }\n currencyCode\n revision\n approvedRevision\n approvedAmount\n requestedDeliveryOn\n supplierReference\n notesToSupplier\n internalNotes\n managedBy\n externalId\n externalNumber\n externalApprovalStatus\n sentAt\n closedAt\n closeReason\n createdByRef\n total\n lineCount\n confirmation\n lines { \n id\n purchaseOrderId\n position\n productVariantId\n supplierItemId\n sku\n name\n supplierSku\n purchaseUnitLabel\n purchaseUnitFactor\n orderedQuantity\n orderedBaseQuantity\n cancelledBaseQuantity\n receivedBaseQuantity\n returnedForReplacementBaseQuantity\n unitPrice\n discountBps\n priceSource\n vatRateBps\n lineTotal\n requestedOn\n confirmedBaseQuantity\n confirmedOn\n confirmedAt\n externalLineId\n createdAt\n updatedAt\n }\n createdAt\n updatedAt\n\n statusHistory { id fromStatus status actorRef reason metadata createdAt }\n revisions {\n id\n revision\n state\n diff\n totalAfter\n createdByRef\n createdAt\n appliedAt\n sentAt\n sentVia\n sentReference\n }\n }\n }\n }\n";
209
209
  export declare const IMPORT_REPLENISHMENT_RULES_MUTATION = "\n mutation ImportReplenishmentRules(\n $input: ImportReplenishmentRulesInput!\n $idempotencyKey: String\n ) {\n importReplenishmentRules(input: $input, idempotencyKey: $idempotencyKey) {\n dryRun\n contentHash\n ignoredColumns\n totalRows\n created\n updated\n unchanged\n failed\n rows { row sku location outcome ruleId errorCode message }\n }\n }\n";
210
210
  export interface ReplenishmentRulesModule {
211
211
  /**
@@ -278,4 +278,4 @@ export interface PurchasingReplenishmentModule {
278
278
  rules: ReplenishmentRulesModule;
279
279
  suggestions: ReplenishmentSuggestionsModule;
280
280
  }
281
- export declare function createPurchasingReplenishmentModule(transport: Transport): PurchasingReplenishmentModule;
281
+ export declare function createPurchasingReplenishmentModule(baseTransport: Transport): PurchasingReplenishmentModule;