- 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>
3.4 KiB
3.4 KiB
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.idna bazie ma typBIGINT 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.sqlsrc/Modules/Sms/SmsMessageRepository.phpsrc/Modules/Sms/SmsConversationService.phpsrc/Modules/Sms/SmsplanetWebhookController.phpsrc/Modules/Notifications/NotificationRepository.phpsrc/Modules/Notifications/NotificationController.phpsrc/Modules/Notifications/NotificationApiController.phpsrc/Modules/Settings/SmsplanetIntegrationRepository.phpsrc/Modules/Settings/SmsplanetIntegrationController.phpsrc/Modules/Orders/OrdersController.phproutes/web.phpresources/views/settings/smsplanet.phpresources/views/orders/show.phpresources/views/notifications/index.phpresources/views/layouts/app.phpresources/lang/pl.phpresources/scss/app.scsspublic/assets/css/app.csspublic/assets/js/modules/notifications.jsDOCS/DB_SCHEMA.mdDOCS/ARCHITECTURE.mdDOCS/TECH_CHANGELOG.md- [Phase 122, Plan 01] Dodano konfigurowalny domyślny stopkę SMS w SMSPLANET — kolumna
default_footerwsmsplanet_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.sqlsrc/Modules/Settings/SmsplanetIntegrationRepository.phpsrc/Modules/Settings/SmsplanetIntegrationController.phpsrc/Modules/Sms/SmsConversationService.phpsrc/Modules/Orders/OrdersController.phpresources/views/settings/smsplanet.phpresources/views/orders/show.phpresources/lang/pl.phpresources/scss/app.scsspublic/assets/css/app.cssDOCS/DB_SCHEMA.mdDOCS/ARCHITECTURE.mdDOCS/TECH_CHANGELOG.md
Phase 123 — Receipts Export VAT Breakdown
- [Phase 123, Plan 01] Eksport XLSX paragonów (
/accounting): nowe nagłówkiNumer | 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()zapisujevatper pozycja witems_json(zorder_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.23zamiast brać ztotal_net(RECEIPT-NET-FIX odłożone do.paul/codebase/todo.md).
Zmienione pliki (Phase 123)
src/Modules/Accounting/ReceiptService.phpsrc/Modules/Accounting/AccountingController.php.paul/codebase/architecture.md.paul/codebase/tech_changelog.md.paul/codebase/todo.md