Files
PowderCoatingLogix/src/PowderCoating.Infrastructure/Services
spouliot 379b0de885 Refactor: centralize accounting helpers, status constants, and query deduplication
- AccountingDropdownHelper: wired into BillsController and ExpensesController,
  replacing 35-40 lines of duplicated DB queries per controller
- AppConstants.StatusCodes: added Job.* and Quote.* constants to replace all
  magic status strings across Jobs, Quotes, Appointments, OvenScheduler,
  AiQuickQuote, QuoteApproval, and AccountingDropdownHelper
- AccountingRules: extracted IsNormalDebitBalance into shared Infrastructure
  helper; removed duplicate private method from AccountBalanceService and
  LedgerService (~50 lines deleted)
- AccountDataExportController: extracted 9 Fetch*Async methods (superset of
  includes) so Add*Sheet and Build*Csv no longer duplicate DB queries; each
  entity is queried once regardless of whether XLSX or CSV format is requested
- BillsController.Create and ExpensesController.Create wrapped in
  ExecuteInTransactionAsync; blob uploads moved after commit to keep
  financial data atomic and prevent orphaned blobs from rolling back
- Number generators (Appointments, CreditMemo, OvenBatch) fixed from full-table
  GetAllAsync to prefix-filtered FindAsync

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-09 22:42:39 -04:00
..
2026-04-23 21:38:24 -04:00
2026-04-23 21:38:24 -04:00
2026-04-23 21:38:24 -04:00
2026-04-23 21:38:24 -04:00
2026-04-23 21:38:24 -04:00
2026-04-23 21:38:24 -04:00
2026-04-23 21:38:24 -04:00
2026-04-23 21:38:24 -04:00
2026-04-23 21:38:24 -04:00
2026-04-23 21:38:24 -04:00
2026-04-23 21:38:24 -04:00
2026-04-23 21:38:24 -04:00
2026-04-23 21:38:24 -04:00
2026-04-23 21:38:24 -04:00
2026-04-23 21:38:24 -04:00
2026-04-23 21:38:24 -04:00
2026-04-23 21:38:24 -04:00
2026-04-23 21:38:24 -04:00
2026-04-23 21:38:24 -04:00
2026-04-23 21:38:24 -04:00
2026-04-23 21:38:24 -04:00
2026-04-23 21:38:24 -04:00
2026-04-23 21:38:24 -04:00
2026-04-23 21:38:24 -04:00
2026-04-23 21:38:24 -04:00