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

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.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