@happyvertical/smrt-commerce 0.56.0 → 0.56.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +9 -8
- package/README.md +76 -0
- package/agents/accounting-snapshot-mapper.md +111 -0
- package/agents/contract-money.md +18 -0
- package/agents/cost-billing.md +7 -2
- package/agents/document-money.md +126 -0
- package/agents/invoice-calculations.md +14 -2
- package/agents/line-amount-migration.md +50 -0
- package/agents/minor-unit-migration.md +20 -0
- package/agents/money-calculator.md +45 -0
- package/agents/money-model.md +113 -0
- package/agents/revenue-journal.md +23 -0
- package/agents/tax-codes.md +48 -0
- package/agents/tax-summary.md +126 -0
- package/dist/accounting-snapshot.d.ts +79 -0
- package/dist/accounting-snapshot.d.ts.map +1 -0
- package/dist/billing/runtime.d.ts +2 -0
- package/dist/billing/runtime.d.ts.map +1 -1
- package/dist/chunks/ContractLineItemCollection-DYjhj_pU.js +265 -0
- package/dist/chunks/ContractLineItemCollection-DYjhj_pU.js.map +1 -0
- package/dist/chunks/CustomerCollection-DQIujn4f.js +99 -0
- package/dist/chunks/CustomerCollection-DQIujn4f.js.map +1 -0
- package/dist/chunks/DocumentTaxCollection-BEpoqXAQ.js +1639 -0
- package/dist/chunks/DocumentTaxCollection-BEpoqXAQ.js.map +1 -0
- package/dist/chunks/InvoiceCollection-CKQflFjc.js +1047 -0
- package/dist/chunks/InvoiceCollection-CKQflFjc.js.map +1 -0
- package/dist/chunks/InvoiceLineItemCollection-CHm9zdqh.js +467 -0
- package/dist/chunks/InvoiceLineItemCollection-CHm9zdqh.js.map +1 -0
- package/dist/chunks/TaxCodeCollection-DOpzW4y8.js +149 -0
- package/dist/chunks/TaxCodeCollection-DOpzW4y8.js.map +1 -0
- package/dist/chunks/TaxComponentCollection-Cs2uXwEl.js +129 -0
- package/dist/chunks/TaxComponentCollection-Cs2uXwEl.js.map +1 -0
- package/dist/chunks/TaxSettingsCollection-BBTZDH1S.js +319 -0
- package/dist/chunks/TaxSettingsCollection-BBTZDH1S.js.map +1 -0
- package/dist/chunks/{money-DfrRxrel.js → allocation-integrity-DI3G16BN.js} +7 -12
- package/dist/chunks/allocation-integrity-DI3G16BN.js.map +1 -0
- package/dist/chunks/{calculations-Bz7RB3qK.js → calculations-DaHR17il.js} +134 -54
- package/dist/chunks/calculations-DaHR17il.js.map +1 -0
- package/dist/chunks/credit-allocation-yspz0Lab.js +121 -0
- package/dist/chunks/credit-allocation-yspz0Lab.js.map +1 -0
- package/dist/chunks/document-money-DNVhDJyC.js +860 -0
- package/dist/chunks/document-money-DNVhDJyC.js.map +1 -0
- package/dist/chunks/invoice-posting-BwV8g7z0.js +229 -0
- package/dist/chunks/invoice-posting-BwV8g7z0.js.map +1 -0
- package/dist/chunks/money-rational-CcW7gzG5.js +64 -0
- package/dist/chunks/money-rational-CcW7gzG5.js.map +1 -0
- package/dist/chunks/revenue-journal-DY9fro8E.js +140 -0
- package/dist/chunks/revenue-journal-DY9fro8E.js.map +1 -0
- package/dist/chunks/rolldown-runtime-D7D4PA-g.js +13 -0
- package/dist/chunks/tenant-money-barrier-DjRXgMnX.js +135 -0
- package/dist/chunks/tenant-money-barrier-DjRXgMnX.js.map +1 -0
- package/dist/chunks/{types-zVnIjSOk.js → types-LDETvQ1C.js} +3 -14
- package/dist/chunks/types-LDETvQ1C.js.map +1 -0
- package/dist/chunks/{units-BpZ0_Dpk.js → units-CNcjH_eE.js} +2 -2
- package/dist/chunks/{units-BpZ0_Dpk.js.map → units-CNcjH_eE.js.map} +1 -1
- package/dist/collections/ContractCollection.d.ts +35 -1
- package/dist/collections/ContractCollection.d.ts.map +1 -1
- package/dist/collections/ContractLineItemCollection.d.ts +26 -1
- package/dist/collections/ContractLineItemCollection.d.ts.map +1 -1
- package/dist/collections/DocumentTaxCollection.d.ts +75 -0
- package/dist/collections/DocumentTaxCollection.d.ts.map +1 -0
- package/dist/collections/InvoiceCollection.d.ts +26 -1
- package/dist/collections/InvoiceCollection.d.ts.map +1 -1
- package/dist/collections/InvoiceLineItemCollection.d.ts +26 -1
- package/dist/collections/InvoiceLineItemCollection.d.ts.map +1 -1
- package/dist/collections/MoneyMigrationDocumentCollection.d.ts +12 -0
- package/dist/collections/MoneyMigrationDocumentCollection.d.ts.map +1 -0
- package/dist/collections/PaymentAllocationCollection.d.ts +2 -0
- package/dist/collections/PaymentAllocationCollection.d.ts.map +1 -1
- package/dist/collections/TaxCodeCollection.d.ts +7 -0
- package/dist/collections/TaxCodeCollection.d.ts.map +1 -0
- package/dist/collections/TaxComponentCollection.d.ts +6 -0
- package/dist/collections/TaxComponentCollection.d.ts.map +1 -0
- package/dist/collections/TaxSettingsCollection.d.ts +16 -0
- package/dist/collections/TaxSettingsCollection.d.ts.map +1 -0
- package/dist/collections/TaxSummaryReportCollection.d.ts +151 -0
- package/dist/collections/TaxSummaryReportCollection.d.ts.map +1 -0
- package/dist/collections/index.d.ts +6 -0
- package/dist/collections/index.d.ts.map +1 -1
- package/dist/commerce-money-tools.d.ts +9 -0
- package/dist/commerce-money-tools.d.ts.map +1 -0
- package/dist/contract-money.d.ts +27 -0
- package/dist/contract-money.d.ts.map +1 -0
- package/dist/cost-billing.d.ts +0 -1
- package/dist/cost-billing.d.ts.map +1 -1
- package/dist/cost-billing.js +10 -15
- package/dist/cost-billing.js.map +1 -1
- package/dist/credit-allocation.d.ts +48 -0
- package/dist/credit-allocation.d.ts.map +1 -0
- package/dist/document-money-internal.d.ts +44 -0
- package/dist/document-money-internal.d.ts.map +1 -0
- package/dist/document-money.d.ts +85 -0
- package/dist/document-money.d.ts.map +1 -0
- package/dist/index.d.ts +15 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5395 -4246
- package/dist/index.js.map +1 -1
- package/dist/invoice-accounting-sync.d.ts +96 -0
- package/dist/invoice-accounting-sync.d.ts.map +1 -0
- package/dist/invoice-mcp.d.ts +16 -0
- package/dist/invoice-mcp.d.ts.map +1 -0
- package/dist/invoice-posting.d.ts +9 -0
- package/dist/invoice-posting.d.ts.map +1 -0
- package/dist/invoice-record-screen.d.ts +60 -0
- package/dist/invoice-record-screen.d.ts.map +1 -0
- package/dist/invoices.d.ts +2 -0
- package/dist/invoices.d.ts.map +1 -1
- package/dist/invoices.js +3 -2
- package/dist/manifest.json +10365 -4562
- package/dist/migrations/commerceLineAmounts.d.ts +84 -0
- package/dist/migrations/commerceLineAmounts.d.ts.map +1 -0
- package/dist/models/Contract.d.ts +25 -1
- package/dist/models/Contract.d.ts.map +1 -1
- package/dist/models/ContractLineItem.d.ts +30 -1
- package/dist/models/ContractLineItem.d.ts.map +1 -1
- package/dist/models/Customer.d.ts +7 -0
- package/dist/models/Customer.d.ts.map +1 -1
- package/dist/models/DocumentTax.d.ts +50 -0
- package/dist/models/DocumentTax.d.ts.map +1 -0
- package/dist/models/Invoice.d.ts +46 -2
- package/dist/models/Invoice.d.ts.map +1 -1
- package/dist/models/InvoiceLineItem.d.ts +33 -2
- package/dist/models/InvoiceLineItem.d.ts.map +1 -1
- package/dist/models/MoneyMigrationDocument.d.ts +28 -0
- package/dist/models/MoneyMigrationDocument.d.ts.map +1 -0
- package/dist/models/Payment.d.ts +5 -1
- package/dist/models/Payment.d.ts.map +1 -1
- package/dist/models/PaymentAllocation.d.ts.map +1 -1
- package/dist/models/TaxCode.d.ts +22 -0
- package/dist/models/TaxCode.d.ts.map +1 -0
- package/dist/models/TaxComponent.d.ts +21 -0
- package/dist/models/TaxComponent.d.ts.map +1 -0
- package/dist/models/TaxSettings.d.ts +33 -0
- package/dist/models/TaxSettings.d.ts.map +1 -0
- package/dist/models/TaxSummaryReport.d.ts +35 -0
- package/dist/models/TaxSummaryReport.d.ts.map +1 -0
- package/dist/models/Vendor.d.ts +9 -0
- package/dist/models/Vendor.d.ts.map +1 -1
- package/dist/models/index.d.ts +6 -0
- package/dist/models/index.d.ts.map +1 -1
- package/dist/money-rational.d.ts +15 -0
- package/dist/money-rational.d.ts.map +1 -0
- package/dist/money.d.ts +106 -25
- package/dist/money.d.ts.map +1 -1
- package/dist/money.js +274 -0
- package/dist/money.js.map +1 -0
- package/dist/recipes.d.ts +15 -15
- package/dist/revenue-journal.d.ts +61 -0
- package/dist/revenue-journal.d.ts.map +1 -0
- package/dist/smrt-knowledge.json +5711 -1029
- package/dist/svelte/components/InvoiceActions.svelte +12 -0
- package/dist/svelte/components/InvoiceActions.svelte.d.ts +5 -0
- package/dist/svelte/components/InvoiceActions.svelte.d.ts.map +1 -1
- package/dist/svelte/components/InvoiceEditor.svelte +15 -1
- package/dist/svelte/components/InvoiceEditor.svelte.d.ts.map +1 -1
- package/dist/svelte/components/InvoiceLineItems.svelte +3 -3
- package/dist/svelte/components/InvoiceRecordScreen.svelte +94 -0
- package/dist/svelte/components/InvoiceRecordScreen.svelte.d.ts +21 -0
- package/dist/svelte/components/InvoiceRecordScreen.svelte.d.ts.map +1 -0
- package/dist/svelte/components/InvoiceTotals.svelte +2 -2
- package/dist/svelte/components/MoneyInvoiceEditor.svelte +282 -0
- package/dist/svelte/components/MoneyInvoiceEditor.svelte.d.ts +31 -0
- package/dist/svelte/components/MoneyInvoiceEditor.svelte.d.ts.map +1 -0
- package/dist/svelte/components/PurchaseOrderEditor.svelte +53 -1
- package/dist/svelte/components/PurchaseOrderEditor.svelte.d.ts +5 -0
- package/dist/svelte/components/PurchaseOrderEditor.svelte.d.ts.map +1 -1
- package/dist/svelte/components/QuoteEditor.svelte +54 -1
- package/dist/svelte/components/QuoteEditor.svelte.d.ts +5 -0
- package/dist/svelte/components/QuoteEditor.svelte.d.ts.map +1 -1
- package/dist/svelte/i18n.d.ts +16 -0
- package/dist/svelte/i18n.d.ts.map +1 -1
- package/dist/svelte/i18n.js +16 -0
- package/dist/svelte/index.d.ts +7 -2
- package/dist/svelte/index.d.ts.map +1 -1
- package/dist/svelte/index.js +4 -1
- package/dist/svelte/invoices/calculations.d.ts +7 -2
- package/dist/svelte/invoices/calculations.d.ts.map +1 -1
- package/dist/svelte/invoices/calculations.js +141 -47
- package/dist/svelte/invoices/money-editor.d.ts +123 -0
- package/dist/svelte/invoices/money-editor.d.ts.map +1 -0
- package/dist/svelte/invoices/money-editor.js +101 -0
- package/dist/svelte/invoices/types.d.ts +5 -1
- package/dist/svelte/invoices/types.d.ts.map +1 -1
- package/dist/svelte/purchasing-i18n.d.ts +5 -0
- package/dist/svelte/purchasing-i18n.d.ts.map +1 -1
- package/dist/svelte/purchasing-i18n.js +5 -0
- package/dist/svelte/quote-i18n.d.ts +5 -0
- package/dist/svelte/quote-i18n.d.ts.map +1 -1
- package/dist/svelte/quote-i18n.js +5 -0
- package/dist/tax/cookbook.d.ts +22 -0
- package/dist/tax/cookbook.d.ts.map +1 -0
- package/dist/tax/example-pack.d.ts +25 -0
- package/dist/tax/example-pack.d.ts.map +1 -0
- package/dist/tax/identity.d.ts +5 -0
- package/dist/tax/identity.d.ts.map +1 -0
- package/dist/tax/index.d.ts +4 -0
- package/dist/tax/index.d.ts.map +1 -0
- package/dist/tax/legacy.d.ts +48 -0
- package/dist/tax/legacy.d.ts.map +1 -0
- package/dist/tax-summary-report-adapter.d.ts +37 -0
- package/dist/tax-summary-report-adapter.d.ts.map +1 -0
- package/dist/tax-summary.d.ts +129 -0
- package/dist/tax-summary.d.ts.map +1 -0
- package/dist/tenant-money-barrier.d.ts +66 -0
- package/dist/tenant-money-barrier.d.ts.map +1 -0
- package/dist/types/index.d.ts +137 -1
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +19 -11
- package/dist/chunks/calculations-Bz7RB3qK.js.map +0 -1
- package/dist/chunks/money-DfrRxrel.js.map +0 -1
- package/dist/chunks/types-zVnIjSOk.js.map +0 -1
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
# Commercial money model
|
|
2
|
+
|
|
3
|
+
This guide names the public commerce money contract. The exact input and result
|
|
4
|
+
shapes, validation codes, and worked calculator examples live in the
|
|
5
|
+
[calculator guide](money-calculator.md) and
|
|
6
|
+
[package documentation](../../../docs/content/commerce-money.md). Money values
|
|
7
|
+
are signed safe-integer minor units; calculator tax percentages are exact text,
|
|
8
|
+
so `'5'` means 5%. The retained `InvoiceLineItem.taxRate` and
|
|
9
|
+
`ContractLineItem.taxRate` fields are different legacy persisted fractions:
|
|
10
|
+
`0.05` means 5%.
|
|
11
|
+
|
|
12
|
+
## Calculation contract
|
|
13
|
+
|
|
14
|
+
`calculateMoneyDocument()` accepts `exclusive`, `inclusive`, and `none` line
|
|
15
|
+
amount modes. It first computes quantity times unit price, applies the one
|
|
16
|
+
chosen discount, and returns the post-discount amount, tax components, net, and
|
|
17
|
+
line total. `exclusive` line amounts are tax-exclusive net; `inclusive` line
|
|
18
|
+
amounts are the visible gross and derive net by removing tax; `none` has zero
|
|
19
|
+
tax and requires an out-of-scope code. `subtotalMinor`, `taxMinor`, and
|
|
20
|
+
`totalMinor` are document totals. `discountTotalMinor` is informational because
|
|
21
|
+
the line discounts were already applied; consumers must not subtract it again.
|
|
22
|
+
|
|
23
|
+
The `line` rounding scope rounds each line/component. The `document` scope
|
|
24
|
+
rounds each shared component's exact total, truncates each allocation toward
|
|
25
|
+
zero, and gives signed residual minor units to the largest remainders, with
|
|
26
|
+
line-ID code-unit order breaking ties. It leaves no document residual. Across
|
|
27
|
+
`n` small lines, the two scopes can differ by up to `ceil(n / 2)` minor units
|
|
28
|
+
per component. Store the chosen scope; do not silently substitute a later
|
|
29
|
+
setting. `MoneyValidationError.code` is the public branch point for invalid
|
|
30
|
+
money, discounts, tax-code state and scope, unsupported compound tax, frozen
|
|
31
|
+
records, and unsafe values.
|
|
32
|
+
|
|
33
|
+
Tax-code resolution is pure once the caller has loaded authorized codes. It
|
|
34
|
+
uses a line override, customer exemption, product code, customer code, and app
|
|
35
|
+
default in that order. An unresolved exclusive or inclusive line is a genuine
|
|
36
|
+
zero-tax, null-code case; it is not an out-of-scope inference. The tax-code
|
|
37
|
+
catalogue, seeds, registrations, and cookbook boundary are documented in
|
|
38
|
+
[tax codes](tax-codes.md).
|
|
39
|
+
|
|
40
|
+
## Stored Invoice facts
|
|
41
|
+
|
|
42
|
+
`TaxSettings.moneyModel` selects the Invoice write behavior. `legacy` keeps the
|
|
43
|
+
compatibility path; `migrating` rejects money writes; `v2` resolves a draft's
|
|
44
|
+
current settings once and atomically writes the header, line snapshots, and
|
|
45
|
+
`DocumentTax` rows. The detailed persistence, freeze, preview, credit-note, and
|
|
46
|
+
refund contracts are in [document money](document-money.md).
|
|
47
|
+
|
|
48
|
+
Once an Invoice leaves `DRAFT`, or receives an AR journal, its money snapshot
|
|
49
|
+
is frozen. Reads use those stored values and must not recompute issued tax from
|
|
50
|
+
new defaults. `DocumentTax` is a derived, read-only per-document/code/component
|
|
51
|
+
snapshot with currency, code and component identities and labels, kind, exact
|
|
52
|
+
percent, liability account, taxable, tax, and recoverable minor-unit values.
|
|
53
|
+
It also represents non-taxable and unassigned zero-tax rows so reporting does
|
|
54
|
+
not invent a taxable component.
|
|
55
|
+
|
|
56
|
+
A credit note is an `Invoice` with `kind: 'credit_note'`. It stores positive
|
|
57
|
+
amounts; posting, reporting, and accounting adapters apply that direction once.
|
|
58
|
+
Issued-credit capacity and refunds are stable Invoice-v2 behavior. A refund is
|
|
59
|
+
a positive `Payment` of kind `refund`, allocated only to a credit note. See
|
|
60
|
+
[document money](document-money.md) before presenting either balance as an
|
|
61
|
+
ordinary incoming payment.
|
|
62
|
+
|
|
63
|
+
## Invoice MCP `get` projection
|
|
64
|
+
|
|
65
|
+
The standard Invoice MCP `get` tool uses `serializeInvoiceMcpGet`. For a
|
|
66
|
+
legacy tenant, or when tenant settings are absent, it returns the ordinary
|
|
67
|
+
public Invoice projection and omits the `money` alias. For a v2 tenant, the
|
|
68
|
+
optional `money` value is the stored `InvoiceMoneyFacts` projection: its
|
|
69
|
+
header, line snapshots, and `DocumentTax` facts are read from the issued
|
|
70
|
+
snapshot and are never recalculated.
|
|
71
|
+
|
|
72
|
+
A tenant in the `migrating` gate refuses this read with the stable
|
|
73
|
+
`FROZEN_DOCUMENT` code and the public message `Tenant money migration is in
|
|
74
|
+
progress`. If the caller's `PublicJsonOptions` hide any Invoice,
|
|
75
|
+
`InvoiceLineItem`, or `DocumentTax` field needed by the money projection, the
|
|
76
|
+
serializer returns the base Invoice and omits the entire `money` alias. It does
|
|
77
|
+
not expose restricted values through a partial plain-object alias.
|
|
78
|
+
|
|
79
|
+
This applies only to standard MCP `get`. Invoice list and MCP write behavior
|
|
80
|
+
remain their existing public contracts. The general serializer configuration,
|
|
81
|
+
authorization order, and projection rule are in [core MCP get
|
|
82
|
+
serializers](../../core/agents/generators.md#mcp-get-serializers).
|
|
83
|
+
|
|
84
|
+
## Reporting and integrations
|
|
85
|
+
|
|
86
|
+
The materialized `TaxSummaryReport` and its public descriptor/drilldown bridge
|
|
87
|
+
read stored Invoice `DocumentTax` facts under the tenant v2 gate. See
|
|
88
|
+
[tax summary aggregation](tax-summary.md). Commerce exports
|
|
89
|
+
`createTaxSummaryMaterializedReportHost()` for an application-owned,
|
|
90
|
+
server-only host; register that host in the app's fixed report-host registry to
|
|
91
|
+
opt into the generic `MaterializedReportTable` and its tenant-scoped drilldown
|
|
92
|
+
route. The host binds the authenticated tenant, principal, and
|
|
93
|
+
`taxsummaryreports.read` permission; browser input supplies only a row id
|
|
94
|
+
and visible column id.
|
|
95
|
+
|
|
96
|
+
The accounting snapshot mapper consumes frozen facts and never re-calculates a
|
|
97
|
+
rate or allocation. It maps an inclusive line to the accounting SDK's
|
|
98
|
+
`TaxInclusiveAmt`; tenant mappings provide provider tax-code and component-rate
|
|
99
|
+
identities. The QuickBooks sync boundary persists SDK 0.103.7 invoice or credit
|
|
100
|
+
memo request descriptors before provider I/O, refuses competing writes, and
|
|
101
|
+
requires explicit reconciliation after an unknown outcome. Its supported
|
|
102
|
+
inputs and recovery contract are documented in [accounting snapshot
|
|
103
|
+
mapper](accounting-snapshot-mapper.md).
|
|
104
|
+
|
|
105
|
+
## Deliberate boundaries
|
|
106
|
+
|
|
107
|
+
The tenant migration and rollback contract is documented in
|
|
108
|
+
[tenant line-amount migration](line-amount-migration.md).
|
|
109
|
+
The marker is a maintenance gate, not a customer-controlled setting. Contract
|
|
110
|
+
money persistence remains a separate aggregate contract; production report
|
|
111
|
+
hosting is an application opt-in over the public host described above. The
|
|
112
|
+
model also does not provide currency conversion, cash-basis/deposit accounting,
|
|
113
|
+
partial recoverability, period locking, or compound tax.
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Revenue journal entry builder
|
|
2
|
+
|
|
3
|
+
`buildRevenueJournalEntries()` is a pure boundary between frozen commerce money
|
|
4
|
+
snapshots and `smrt-ledgers` journal creation. It consumes stored document totals,
|
|
5
|
+
stored line amounts/tax, and stored `DocumentTax` component/account snapshots. It
|
|
6
|
+
does not resolve current tax codes or rates.
|
|
7
|
+
|
|
8
|
+
Callers supply the ledger book currency explicitly. A different document currency
|
|
9
|
+
is rejected because this release does not convert currencies. Positive documents
|
|
10
|
+
debit receivables and credit revenue/tax; signed credits naturally swap sides, and
|
|
11
|
+
`direction: -1` creates the symmetric entry set used by later reversal flows.
|
|
12
|
+
|
|
13
|
+
For inclusive documents, stored line net is `amountMinor - taxMinor`; for exclusive
|
|
14
|
+
and no-tax pricing it is `amountMinor`. Revenue is grouped by each line's stored
|
|
15
|
+
account, falling back to the caller's revenue account. Component tax uses the
|
|
16
|
+
stored liability account and falls back to `taxAccountId`. A `legacy-*` code that
|
|
17
|
+
needs this fallback returns a structured warning. Provider tax is posted once as
|
|
18
|
+
its own entry to `taxAccountId`. Zero-tax and null-component reporting rows do not
|
|
19
|
+
produce entries.
|
|
20
|
+
|
|
21
|
+
The helper validates every stored reconciliation before returning entries and uses
|
|
22
|
+
exact integer arithmetic for grouping and balance checks. Debit and credit values
|
|
23
|
+
are always positive safe integers; the sign determines the side.
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# Tax codes
|
|
2
|
+
|
|
3
|
+
`TaxComponent` owns an immutable percent and optional liability account. To
|
|
4
|
+
change a rate, archive the old component, create a replacement and update the
|
|
5
|
+
editable `TaxCode.components` list. Never edit a used component's percent.
|
|
6
|
+
|
|
7
|
+
Every tenant seeds `exempt`, `zero-rated`, `out-of-scope`, and
|
|
8
|
+
`legacy-unreconciled`. Those kinds have no components because they report
|
|
9
|
+
differently. A legacy zero rate means out-of-scope unless the linked customer
|
|
10
|
+
was explicitly exempt; malformed or out-of-range legacy rates stay visible
|
|
11
|
+
through `legacy-unreconciled` and the mapping report.
|
|
12
|
+
|
|
13
|
+
`TaxSettings` owns tenant defaults, tax registrations, default line amount type
|
|
14
|
+
and rounding scope. Cookbook policies adapt the portable settings document;
|
|
15
|
+
they do not replace persisted tax settings. The per-tenant migration marker is
|
|
16
|
+
owned by the money-snapshot migration. Ordinary saves and generated creates
|
|
17
|
+
cannot change it: a new instance whose tenant natural key would upsert over a
|
|
18
|
+
`migrating` or `v2` row is refused rather than resetting that tenant to legacy.
|
|
19
|
+
The ordinary save transaction locks and re-reads the tenant marker before its
|
|
20
|
+
natural-key upsert, serializing that check with migration claim and activation.
|
|
21
|
+
If the tenant has no marker to lock, its first ordinary save is insert-only: a
|
|
22
|
+
concurrent migration that creates the marker wins and the stale save is refused
|
|
23
|
+
instead of adopting and overwriting the migration-owned row.
|
|
24
|
+
|
|
25
|
+
`applyCommerceCookbookSettings(db, tenantId, cookbook)` is the explicit
|
|
26
|
+
server-side activation boundary for core's portable `taxRate`, inclusion, and
|
|
27
|
+
rounding policies. A host calls it after schema setup, once it has the
|
|
28
|
+
authoritative tenant from its authenticated bootstrap flow:
|
|
29
|
+
|
|
30
|
+
```ts
|
|
31
|
+
import { applyCommerceCookbookSettings } from '@happyvertical/smrt-commerce';
|
|
32
|
+
import cookbook from './smrt.cookbook.json' with { type: 'json' };
|
|
33
|
+
|
|
34
|
+
await applyCommerceCookbookSettings(db, session.tenantId, cookbook);
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
`smrt cookbook apply` writes project files and does not have a database or
|
|
38
|
+
tenant, so it deliberately performs no storage writes. Activation creates or
|
|
39
|
+
reuses a component and default tax code, then updates tenant `TaxSettings` in
|
|
40
|
+
one transaction. A zero default rate selects `out-of-scope`; inclusion remains
|
|
41
|
+
the cookbook's explicit inclusive/exclusive choice because individual lines can
|
|
42
|
+
still override the default code.
|
|
43
|
+
|
|
44
|
+
`COMMON_TAX_CODE_EXAMPLE_PACK` demonstrates Canada GST, BC GST+PST, Ontario
|
|
45
|
+
HST, UK VAT, Australian GST and New Zealand GST. Import it idempotently with
|
|
46
|
+
`applyTaxCodeExamplePack(db, tenantId)`, then review local applicability and
|
|
47
|
+
assign liability accounts before selecting a code for production documents.
|
|
48
|
+
The pack supplies examples, not jurisdiction determination.
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
# Tax summary aggregation
|
|
2
|
+
|
|
3
|
+
`src/tax-summary.ts` is the pure reporting compiler used before materializing a
|
|
4
|
+
commerce tax summary. Its input is normalized stored facts supplied by owning
|
|
5
|
+
collections; it never reads Invoice, Contract, DocumentTax, Expense, or ledger
|
|
6
|
+
tables itself.
|
|
7
|
+
|
|
8
|
+
Every input carries a tenant identity. The aggregator only accepts that
|
|
9
|
+
requested tenant, an inclusive issue-date period, and issued, non-cancelled
|
|
10
|
+
document facts. Credit notes are Invoice rows with positive stored values, so
|
|
11
|
+
the aggregator applies their negative sign exactly once.
|
|
12
|
+
|
|
13
|
+
Kind-row bases are deduplicated by document type/id, tax code, currency,
|
|
14
|
+
direction, and code kind before component rows are added. Thus a GST+PST code
|
|
15
|
+
contributes its base once to the kind row while component rows retain each
|
|
16
|
+
component's stored taxable base. Document counts are unique document identities,
|
|
17
|
+
never `DocumentTax` row counts. Currency groups never mix. Zero-rated, exempt,
|
|
18
|
+
and out-of-scope bases remain distinct.
|
|
19
|
+
|
|
20
|
+
Expense supplier components require an explicit tenant-approved code to tax
|
|
21
|
+
component mapping. Missing stored facts, unmapped components, and linked
|
|
22
|
+
purchase/expense provenance are warnings. Link matching includes currency and
|
|
23
|
+
treats a commitment header link as overlapping every linked expense line. A
|
|
24
|
+
linked purchase and expense has no reconciled ITC/net total until a per-line
|
|
25
|
+
allocation exists; its facts remain visible for drilldown. Ledger movements are
|
|
26
|
+
raw posted `credit - debit` values. Components without a liability account are
|
|
27
|
+
reported as unassigned. When multiple components share a
|
|
28
|
+
liability account, component-level reconciliation is ambiguous: the compiler
|
|
29
|
+
keeps the rows visible, emits a warning, and does not compare the full account
|
|
30
|
+
movement to every component.
|
|
31
|
+
|
|
32
|
+
## Materialized document report path
|
|
33
|
+
|
|
34
|
+
`TaxSummaryReport` is a tenant-scoped, manual materialized report. Its owner,
|
|
35
|
+
`TaxSummaryReportCollection.refreshTaxSummary()`, refuses tenants whose
|
|
36
|
+
`TaxSettings.moneyModel` is not `v2`: legacy and migrating documents are not a
|
|
37
|
+
complete stored-tax source. The caller injects the public Expense and Journal
|
|
38
|
+
source adapters because commerce cannot depend on expenses; omitting either
|
|
39
|
+
adapter is a refusal, never a zero-ITC fallback.
|
|
40
|
+
|
|
41
|
+
`DocumentTaxCollection.listReportFacts()` reads stored Invoice, credit-note,
|
|
42
|
+
and purchase-Contract snapshots. The Invoice branch joins `document_taxes` to
|
|
43
|
+
`invoices` on both document id and tenant id, filters inclusive `issueDate`
|
|
44
|
+
bounds, excludes drafts/cancelled invoices, and retains written-off invoices.
|
|
45
|
+
The Contract branch gets a bounded, hydrated candidate set from
|
|
46
|
+
`ContractCollection.listSnapshotReportContracts()`, then uses the Contract
|
|
47
|
+
owner's descendant classifier before joining only those purchase ids to
|
|
48
|
+
`document_taxes` on document id and tenant id. This preserves custom
|
|
49
|
+
`PurchaseContract` descendants without hard-coding contract enums or party
|
|
50
|
+
display names. Contract rows include every non-draft, non-cancelled frozen
|
|
51
|
+
snapshot, including `DECLINED`; their `issueDate`, reference (falling back to
|
|
52
|
+
the id), and vendor party id are read from the frozen Contract. The query only
|
|
53
|
+
returns stored snapshots and never recalculates tax. A nullable tax-code kind
|
|
54
|
+
becomes an unassigned-source warning; it never becomes out-of-scope by
|
|
55
|
+
inference.
|
|
56
|
+
|
|
57
|
+
The existing reports adapter is exposed by
|
|
58
|
+
`buildTaxSummaryReportAdapterDescriptor()`. Its DataTable columns use the
|
|
59
|
+
runtime's snake-case descriptor ids. `drilldownTaxSummaryInvoiceFacts()` takes
|
|
60
|
+
a tenant id supplied by the authenticated host, rechecks the materialized row
|
|
61
|
+
under that tenant, then applies its currency/component/kind dimensions to the
|
|
62
|
+
same Invoice source query. It cannot widen a row into another tenant.
|
|
63
|
+
|
|
64
|
+
The Invoice branch selects the shared Invoice `kind` discriminator and accepts only
|
|
65
|
+
matching `DocumentTax.documentType` pairs: `invoice`/`invoice` or
|
|
66
|
+
`credit_note`/`credit_note`. Credit rows retain positive stored values and pass
|
|
67
|
+
through the aggregation's single credit sign step.
|
|
68
|
+
|
|
69
|
+
Refresh holds the tenant `TaxSettings` parent lock through the v2 gate, all
|
|
70
|
+
source reads, aggregation, and replacement. Every source-adapter call receives
|
|
71
|
+
the same transaction-bound database executor. Replacement rows use a stable
|
|
72
|
+
UUID derived from tenant, period, currency, row kind, and dimension, so retry
|
|
73
|
+
and concurrent same-period refreshes converge to one row set. Materialized
|
|
74
|
+
`list`, `get`, `count`, and Invoice drilldowns all recheck the tenant's marker;
|
|
75
|
+
`legacy` and `migrating` refuse even existing report rows.
|
|
76
|
+
|
|
77
|
+
Each document drilldown fact carries its printed invoice number or Contract
|
|
78
|
+
reference, tenant-scoped customer/vendor party id, issue date, stored taxable
|
|
79
|
+
base, and stored tax. A runtime host may resolve that party id to an authorized
|
|
80
|
+
display name; the commerce source does not cross-join profile data.
|
|
81
|
+
|
|
82
|
+
`drilldownTaxSummaryContributors()` is the cell-level backend boundary. The
|
|
83
|
+
host supplies one of the closed measures (`taxable`, `tax`, `recoverable`,
|
|
84
|
+
`net`, `ledgerMovement`, `difference`, `documentCount`, or a warning detail),
|
|
85
|
+
and the collection rejects measures that do not belong to that row kind. It
|
|
86
|
+
returns only Invoice facts, mapped reviewed Expense facts, and posted Journal
|
|
87
|
+
movements that match the persisted tenant, period, currency, component, code
|
|
88
|
+
kind, or liability account. Net and reconciliation-difference detail carries
|
|
89
|
+
the signed contribution that sums to the selected cell; credit notes are
|
|
90
|
+
signed once here from their stored Invoice kind.
|
|
91
|
+
|
|
92
|
+
Rows persist compact source-class provenance plus an exact warning source
|
|
93
|
+
identity, not a duplicate set of source amounts. A missing injected owner,
|
|
94
|
+
missing historical provenance, or a source total that no longer equals the
|
|
95
|
+
materialized cell returns `complete: false` with a machine-readable pending
|
|
96
|
+
reason. Purchase Contract contributors reconcile their stored recoverable
|
|
97
|
+
amounts directly and retain the Contract id as `commitmentId`, so a reviewed
|
|
98
|
+
expense drawn against that Contract produces the explicit linked-source warning
|
|
99
|
+
instead of being counted twice. A materialized purchase fact missing from its
|
|
100
|
+
source returns `source-state-diverged`, never a zero ITC. The Ledger detail port is adapted from the public
|
|
101
|
+
`JournalEntryCollection.listPostedMovements()` and remains raw ledger units;
|
|
102
|
+
the host must retain the commerce minor-unit convention.
|
|
103
|
+
|
|
104
|
+
## Authenticated materialized-report host
|
|
105
|
+
|
|
106
|
+
The production template exposes the generic
|
|
107
|
+
`/reports/materialized/[id]` route. Applications register fixed server-only
|
|
108
|
+
hosts in `src/lib/server/materialized-reports.ts`; a commerce application adds
|
|
109
|
+
`createTaxSummaryMaterializedReportHost(async () =>
|
|
110
|
+
(await runtime.getCollection('TaxSummaryReport')).db, { drilldownSources })`.
|
|
111
|
+
`drilldownSources(context)` resolves Expense and Ledger owner ports plus the
|
|
112
|
+
tenant's expense-code mappings for that authenticated request. It must use the
|
|
113
|
+
provided `context.tenantId`; do not capture a fixed source or mapping set from
|
|
114
|
+
another tenant. The browser never
|
|
115
|
+
supplies a tenant, report class, database, or measure. The route binds the
|
|
116
|
+
verified `locals` user, tenant, and permission snapshot, requires
|
|
117
|
+
`taxsummaryreports.read`, and passes only a materialized row id plus a visible
|
|
118
|
+
descriptor column id to the host. The host re-queries that row under the same
|
|
119
|
+
tenant before mapping the column to a closed contributor measure. Unknown rows,
|
|
120
|
+
unsupported columns, and cross-tenant rows do not return contributors.
|
|
121
|
+
|
|
122
|
+
`MaterializedReportTable` lives in `@happyvertical/smrt-reports/svelte`; it
|
|
123
|
+
formats integer money cells with each row's validated currency and renders the
|
|
124
|
+
host's drilldown response. Commerce supplies the data and authorization
|
|
125
|
+
boundary, and does not duplicate a currency formatter or a runtime-report CRUD
|
|
126
|
+
surface.
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/** Pure projection of frozen commerce money snapshots into accounting SDK inputs. */
|
|
2
|
+
import { type AccountingProvider, type CreditMemoInput, type InvoiceInput, type InvoiceLineItemInput, type SyncResult, type TaxComponentSnapshot } from '@happyvertical/accounting';
|
|
3
|
+
import type { LineAmountType, TaxRoundingScope } from './money.js';
|
|
4
|
+
export type FrozenAccountingDocumentKind = 'invoice' | 'creditMemo';
|
|
5
|
+
/** Realm-specific references are configuration, never inferred from a tax name or rate. */
|
|
6
|
+
export interface FrozenQuickBooksTaxMapping {
|
|
7
|
+
readonly lines: Readonly<Record<string, {
|
|
8
|
+
readonly itemRef: string;
|
|
9
|
+
readonly taxCodeRef: string;
|
|
10
|
+
}>>;
|
|
11
|
+
readonly components: Readonly<Record<string, {
|
|
12
|
+
readonly quickbooksTaxRateRef: string;
|
|
13
|
+
}>>;
|
|
14
|
+
}
|
|
15
|
+
/** Frozen component fact persisted with a line; all values are minor units except percent. */
|
|
16
|
+
export interface FrozenAccountingTaxComponent {
|
|
17
|
+
readonly taxComponentId: string;
|
|
18
|
+
readonly name: string;
|
|
19
|
+
/** Exact percent text: `5` means 5 percent. */
|
|
20
|
+
readonly percent: string;
|
|
21
|
+
readonly taxMinor: number;
|
|
22
|
+
}
|
|
23
|
+
/** A frozen commerce line. `unitPriceMinor` and `discountMinor` are pre-discount document-mode values. */
|
|
24
|
+
export interface FrozenAccountingLineSnapshot {
|
|
25
|
+
readonly id: string;
|
|
26
|
+
readonly description: string;
|
|
27
|
+
readonly sku?: string;
|
|
28
|
+
readonly quantity: number;
|
|
29
|
+
/** Pre-discount unit price: net for exclusive, gross for inclusive. */
|
|
30
|
+
readonly unitPriceMinor: number;
|
|
31
|
+
/** Pre-discount reduction: net for exclusive, gross for inclusive. */
|
|
32
|
+
readonly discountMinor: number;
|
|
33
|
+
/** Persisted post-discount net amount. */
|
|
34
|
+
readonly amountMinor: number;
|
|
35
|
+
readonly taxMinor: number;
|
|
36
|
+
readonly taxComponents: readonly FrozenAccountingTaxComponent[];
|
|
37
|
+
}
|
|
38
|
+
/** Immutable facts required to project one approved document. */
|
|
39
|
+
export interface FrozenAccountingDocumentSnapshot {
|
|
40
|
+
readonly kind: FrozenAccountingDocumentKind;
|
|
41
|
+
readonly id: string;
|
|
42
|
+
readonly number: string;
|
|
43
|
+
readonly customerId: string;
|
|
44
|
+
readonly customerExternalId?: string;
|
|
45
|
+
readonly issueDate: Date;
|
|
46
|
+
readonly dueDate?: Date;
|
|
47
|
+
readonly currency: string;
|
|
48
|
+
readonly lineAmountType: LineAmountType;
|
|
49
|
+
readonly taxRoundingScope: TaxRoundingScope;
|
|
50
|
+
readonly subtotalMinor: number;
|
|
51
|
+
readonly taxAmountMinor: number;
|
|
52
|
+
/** Header-only provider tax has no frozen component and cannot be sent to QBO. */
|
|
53
|
+
readonly providerTaxMinor: number;
|
|
54
|
+
readonly totalAmountMinor: number;
|
|
55
|
+
readonly lineItems: readonly FrozenAccountingLineSnapshot[];
|
|
56
|
+
/** Required only for a positive credit memo. */
|
|
57
|
+
readonly creditedInvoiceExternalId?: string;
|
|
58
|
+
readonly externalId?: string;
|
|
59
|
+
readonly reference?: string;
|
|
60
|
+
readonly memo?: string;
|
|
61
|
+
}
|
|
62
|
+
/** Public SDK types retained as named aliases for commerce callers. */
|
|
63
|
+
export type AccountingTaxComponentInput = TaxComponentSnapshot;
|
|
64
|
+
export type AccountingSnapshotLineInput = InvoiceLineItemInput;
|
|
65
|
+
export type AccountingSnapshotInvoiceInput = InvoiceInput;
|
|
66
|
+
export type AccountingSnapshotCreditMemoInput = CreditMemoInput;
|
|
67
|
+
export type AccountingSnapshotInput = InvoiceInput | CreditMemoInput;
|
|
68
|
+
/**
|
|
69
|
+
* Map and submit a positive credit memo only when the provider exposes that
|
|
70
|
+
* capability. Mapping runs before the provider is touched, so a malformed
|
|
71
|
+
* frozen snapshot cannot trigger a network write.
|
|
72
|
+
*/
|
|
73
|
+
export declare function pushFrozenCreditMemo(provider: Pick<AccountingProvider, 'type' | 'creditMemos'>, snapshot: FrozenAccountingDocumentSnapshot, mapping: FrozenQuickBooksTaxMapping): Promise<SyncResult>;
|
|
74
|
+
/**
|
|
75
|
+
* Project an approved frozen snapshot into the companion SDK's request shape.
|
|
76
|
+
* It does not calculate discounts, taxes, rates, or document allocation.
|
|
77
|
+
*/
|
|
78
|
+
export declare function mapFrozenAccountingSnapshot(snapshot: FrozenAccountingDocumentSnapshot, mapping: FrozenQuickBooksTaxMapping): AccountingSnapshotInput;
|
|
79
|
+
//# sourceMappingURL=accounting-snapshot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accounting-snapshot.d.ts","sourceRoot":"","sources":["../src/accounting-snapshot.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,6 +24,8 @@ import { type BillingProvider, type BillingProviderCheckoutSession } from './pro
|
|
|
24
24
|
import { type AutoTopUpFailureHook, type AutoTopUpHookOptions } from './top-up.js';
|
|
25
25
|
/** Ledger accounts billing posts to, in the seller's books. */
|
|
26
26
|
export interface BillingLedgerAccounts {
|
|
27
|
+
/** Explicit currency of this ledger book; required for money-v2 posting. */
|
|
28
|
+
bookCurrency?: string;
|
|
27
29
|
/** Accounts receivable (debited when an invoice is issued). */
|
|
28
30
|
arAccountId: string;
|
|
29
31
|
/** Revenue (credited with the invoice subtotal). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/billing/runtime.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/billing/runtime.ts"],"names":[],"mappings":"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"}
|