feat(123): receipts export xlsx VAT breakdown
- AccountingController::export(): new headers (Numer | Data wystawienia | Kwota brutto | Kwota netto | Stawka VAT | Kwota VAT), removed Data sprzedazy/Konfiguracja/Nr zamowienia/Nr referencyjny - buildVatBreakdown() helper groups items_json by vat rate, emits one XLSX row per (receipt x rate); legacy receipts (no `vat` in snapshot) fallback to net=brutto/1.23 - ReceiptService::buildItemsSnapshot(): writes `vat` per item from order_items.tax_rate (fallback 23.0); shipping cost item gets vat=23.0 - RECEIPT-NET-FIX deferred (.paul/codebase/todo.md): ReceiptService::issue() still saves total_net=total_gross Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -48,3 +48,18 @@
|
||||
- `DOCS/DB_SCHEMA.md`
|
||||
- `DOCS/ARCHITECTURE.md`
|
||||
- `DOCS/TECH_CHANGELOG.md`
|
||||
|
||||
## Phase 123 — Receipts Export VAT Breakdown
|
||||
|
||||
- [Phase 123, Plan 01] Eksport XLSX paragonów (`/accounting`): nowe nagłówki `Numer | Data wystawienia | Kwota brutto | Kwota netto | Stawka VAT | Kwota VAT` (usunięto Data sprzedaży/Konfiguracja/Nr zamówienia/Nr referencyjny).
|
||||
- [Phase 123, Plan 01] Multi-rate breakdown: paragon z kilkoma stawkami VAT generuje osobny wiersz na każdą stawkę (ten sam Numer/Data/Brutto).
|
||||
- [Phase 123, Plan 01] `ReceiptService::buildItemsSnapshot()` zapisuje `vat` per pozycja w `items_json` (z `order_items.tax_rate`, fallback 23.0; "Koszt wysylki" = 23.0).
|
||||
- [Phase 123, Plan 01] Auto-fix po smoke teście: legacy fallback liczy `net = brutto/1.23` zamiast brać z `total_net` (RECEIPT-NET-FIX odłożone do `.paul/codebase/todo.md`).
|
||||
|
||||
### Zmienione pliki (Phase 123)
|
||||
|
||||
- `src/Modules/Accounting/ReceiptService.php`
|
||||
- `src/Modules/Accounting/AccountingController.php`
|
||||
- `.paul/codebase/architecture.md`
|
||||
- `.paul/codebase/tech_changelog.md`
|
||||
- `.paul/codebase/todo.md`
|
||||
|
||||
Reference in New Issue
Block a user