Commit b1a6128
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 fields1 parent 428410d commit b1a6128
0 file changed
0 commit comments