Files
orderPRO/.paul/changelog/2026-05-12.md
Jacek Pyziak 0227f2d072 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>
2026-05-12 21:06:53 +02:00

66 lines
3.4 KiB
Markdown

# 2026-05-12
## Co zrobiono
- [Phase 121, Plan 01] Wdrożono dwukierunkową komunikację SMSPLANET: sender mode, webhook inbound, zakładkę SMS w zamówieniu oraz centrum powiadomień.
- [Phase 121, Plan 01] Poprawiono migrację po realnym błędzie FK: `orders.id` na bazie ma typ `BIGINT UNSIGNED`, więc referencje SMS/notifications używają tego samego typu.
- [Phase 121, Plan 01] Zamknięto UNIFY; manualne smoke testy SMSPLANET/browser notifications i SonarQube pozostają zależne od środowiska.
## Zmienione pliki
- `database/migrations/20260512_000110_smsplanet_conversation_notifications.sql`
- `src/Modules/Sms/SmsMessageRepository.php`
- `src/Modules/Sms/SmsConversationService.php`
- `src/Modules/Sms/SmsplanetWebhookController.php`
- `src/Modules/Notifications/NotificationRepository.php`
- `src/Modules/Notifications/NotificationController.php`
- `src/Modules/Notifications/NotificationApiController.php`
- `src/Modules/Settings/SmsplanetIntegrationRepository.php`
- `src/Modules/Settings/SmsplanetIntegrationController.php`
- `src/Modules/Orders/OrdersController.php`
- `routes/web.php`
- `resources/views/settings/smsplanet.php`
- `resources/views/orders/show.php`
- `resources/views/notifications/index.php`
- `resources/views/layouts/app.php`
- `resources/lang/pl.php`
- `resources/scss/app.scss`
- `public/assets/css/app.css`
- `public/assets/js/modules/notifications.js`
- `DOCS/DB_SCHEMA.md`
- `DOCS/ARCHITECTURE.md`
- `DOCS/TECH_CHANGELOG.md`
- [Phase 122, Plan 01] Dodano konfigurowalny domyślny stopkę SMS w SMSPLANET — kolumna `default_footer` w `smsplanet_integration_settings`, doklejanie do test SMS i wiadomości z zamówienia, walidacja 918 znaków, UI textarea i podgląd w zamówieniu.
- [Phase 122, Plan 01] Zamknięto UNIFY; manualne smoke testy (test SMS i SMS z zamówienia z/bez stopki, over-limit) oraz SonarQube zależne od środowiska.
## Zmienione pliki (Phase 122)
- `database/migrations/20260512_000111_smsplanet_default_footer.sql`
- `src/Modules/Settings/SmsplanetIntegrationRepository.php`
- `src/Modules/Settings/SmsplanetIntegrationController.php`
- `src/Modules/Sms/SmsConversationService.php`
- `src/Modules/Orders/OrdersController.php`
- `resources/views/settings/smsplanet.php`
- `resources/views/orders/show.php`
- `resources/lang/pl.php`
- `resources/scss/app.scss`
- `public/assets/css/app.css`
- `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`