Skip to content

Commit b1a6128

Browse files
authored
feat: implement subscription tax calculation and remittance system (#448)
* feat: implement batch subscription operations for bulk management Add batch create from CSV/JSON, batch update with filtering, batch cancel with reason collection, and batch charge for manual billing runs. - contracts/batch: Added CancelReason enum, BatchFilter struct, enhanced result types with skipped_operations tracking - app/services/batchTransactionService.ts: Full rewrite with 4 operation types, CSV parsers, chunked processing, idempotent retry with backoff, result export, per-item status tracking - app/stores/batchStore.ts: Zustand store with draft management, CSV loading per operation type, execute/retry, export helpers - app/screens/BatchOperationsScreen.tsx: Full UI with operation selector, CSV input, update params/filter modals, cancel reason picker, progress bar, per-item results, export buttons, retry, history - src/screens/ImportScreen.tsx: Added batch operations shortcut banner - src/navigation: Added BatchOperations route to SettingsStack Edge cases: partial batch failure, idempotent retry of failed items, large batch memory management via chunked processing * feat: implement contract-level subscription tax calculation and remittance - Add tax types to contracts/types (TaxJurisdiction, TaxExemption, TaxRemittanceReport, NexusRegion, TaxRateChangeEvent) - Add 12 new StorageKey variants for tax state persistence - Enhance invoice contract with full tax system: - Multi-jurisdiction tax lookup (set_tax_jurisdiction/get_tax_jurisdiction_by_location) - Tax exemption lifecycle (register/validate/revoke) with certificate validation - Digital goods classification and taxability rules - Mid-cycle tax rate change proration (calculate_prorated_tax) - Nexus determination with economic thresholds per jurisdiction - Tax remittance report generation and submission - Add 10 contract test cases covering invoice generation, tax exemption, proration, nexus, and remittance - Update frontend types with DigitalGoodsCategory, TaxRemittanceReport, NexusRegion, MidCycleTaxChange * feat: implement subscription tax calculation and remittance system - Add TaxType, TaxJurisdiction, TaxRateEntry, CustomerTaxStatus, DigitalGoodsClass, TaxRemittanceLineItem types - Add new StorageKey variants: TaxRateEntry, CustomerTaxStatus, TaxRemittanceLine, DigitalGoodsClass, TaxRateChangeLogByJdx - Fix StorageKey variant name length limits (ProxyPrevImplCount, TaxRemittanceReportByJdx) - Enhance invoice contract with multi-jurisdiction tax lookup with fallback chain - Add tax-exempt customer handling with certificate validation and expiry checks - Implement mid-cycle tax rate change proration for existing subscriptions - Add reverse-charge flagging and nexus threshold determination - Add per-invoice/per-jurisdiction remittance line tracking - Add 11 new contract functions and 10 comprehensive test cases - Update subscription contract with new generate_invoice signature - Create TaxService backend with built-in jurisdiction rates, caching, exemption validation, nexus checks, digital goods rules, and remittance report generation - Create taxTypes.ts with full TypeScript type definitions - Extend invoiceStore with tax state management (rates, exemptions, remittance lines, reports, mid-cycle changes) - Add backend TaxService tests covering lookup, exemption, calculation, nexus, and reporting - Update Invoice TypeScript types with TaxJurisdiction, CustomerTaxStatus, TaxRemittanceReport, MidCycleTaxChange and helper utilities - Extend Invoice interface with taxJurisdiction, isTaxExempt, and reverseCharge fields
1 parent 428410d commit b1a6128

0 file changed

File tree

    0 commit comments

    Comments
     (0)