- 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>
73 lines
4.0 KiB
Markdown
73 lines
4.0 KiB
Markdown
# Project State
|
|
|
|
## Project Reference
|
|
|
|
See: .paul/PROJECT.md (updated 2026-05-07)
|
|
|
|
**Core value:** Sprzedawca moze obslugiwac zamowienia ze wszystkich kanalow sprzedazy i nadawac przesylki bez przelaczania sie miedzy platformami.
|
|
**Current focus:** v3.7 Invoices + operational integrations - Phase 123 Receipts Export VAT Breakdown complete (UNIFY closed).
|
|
|
|
## Current Position
|
|
|
|
Milestone: v3.7 Invoices (Fakturownia integration) - In progress
|
|
Phase: 123 of TBD (Receipts Export VAT Breakdown) - Complete
|
|
Plan: 123-01 complete
|
|
Status: UNIFY complete, ready to plan next phase
|
|
Last activity: 2026-05-12 23:00:00 - UNIFY closed for .paul/phases/123-receipts-export-vat-breakdown/123-01-PLAN.md
|
|
|
|
Progress:
|
|
- Milestone v3.7: [#########-] ~97% (Phase 113-123 complete)
|
|
- Phase 123: [##########] 100%
|
|
|
|
## Loop Position
|
|
|
|
Current loop state:
|
|
```
|
|
PLAN -> APPLY -> UNIFY
|
|
done done done [Loop complete - ready for next PLAN]
|
|
```
|
|
|
|
## Session Continuity
|
|
|
|
Last session: 2026-05-12 22:00:00
|
|
Stopped at: Phase 122 UNIFY closed (transition + git commit pending; worktree dirty with Phase 118 files)
|
|
Next action: Resolve Phase 118 UNIFY/commit, then scope a clean Phase 122 commit and pick next v3.7 phase
|
|
Resume file: .paul/ROADMAP.md
|
|
|
|
## Pending parallel work
|
|
- None — Phase 118, 121, 122 wszystkie zacommitowane (8f14851, 360eef1).
|
|
|
|
## Git State
|
|
|
|
Last phase commit: 360eef1 feat(121+122): smsplanet conversation, notifications, default footer
|
|
Previous: 8f14851 feat(118): fakturownia single instance
|
|
Branch: main
|
|
Note: routes/web.php, DOCS/* i .paul/codebase/* zawierały zmiany z 118+121+122 nakładkowo i wszystkie wpadły do commitu 360eef1.
|
|
|
|
## Pending Actions
|
|
|
|
- Manualne testy AC-1..AC-7 dla Phase 112 na zywej bazie (XAMPP online).
|
|
- Backfill zamowienia #882 - operator robi recznie po wdrozeniu (poza zakresem planu).
|
|
- Uruchom migracje gdy XAMPP online: `php bin/migrate.php` (delivery_statuses).
|
|
- Recznie odtworzyc istniejace reguly automatyzacji z grupowymi kluczami (BREAKING z 108-02).
|
|
- HostedSMS inbound replies: requires DCS/HostedSMS activation before implementation.
|
|
- Phase 117 follow-up: run migration when XAMPP MySQL is online and manually test real SMSPLANET sends for Bearer token and key + password.
|
|
- Phase 119 follow-up: `composer install` + `vendor/bin/phpunit tests/Unit/OrderImportRepositoryTest.php` to run the 3 new tests; manual smoke test re-syncing order #976 from shoppro to confirm `total_paid=91.00` persists across re-import.
|
|
- Phase 121 follow-up: manually verify SMSPLANET settings/test send, inbound webhook insertion, order SMS tab, and notification polling/browser notification.
|
|
- Phase 121 transition note: git commit was not created during UNIFY because the worktree contains unrelated Phase 118/local dirty files; prepare a scoped commit manually.
|
|
- Phase 122 follow-up: manually verify settings save/reload and real SMSPLANET test/order sends with non-empty and empty footer; manually trigger over-limit final body rejection in UI.
|
|
- Phase 123 follow-up: wystaw nowy paragon i potwierdz `items_json` zawiera `vat` per pozycja; eksport XLSX z paragonem multi-rate (np. mix 23% + 8%) — sprawdz osobne wiersze; eksport "wybrane paragony" zachowuje breakdown.
|
|
- Phase 123 deferred: RECEIPT-NET-FIX (`ReceiptService::issue()` zapisuje `total_net=total_gross`) — udokumentowane w `.paul/codebase/todo.md`.
|
|
- Phase 121 transition note (rozwiązane): commit 360eef1 obejmuje Phase 121 i Phase 122 razem; per-faza hunk-split nie wykonany ze względu na nakładkowe modyfikacje plików.
|
|
|
|
## Deferred to Next Milestones
|
|
|
|
- Phase 68 - Code Deduplication Refactor (0/2 Planning, nigdy nie rozpoczety).
|
|
- STAT-NET - netto shopPRO z API lub z `order_items.tax_rate` (`.paul/TODO.md`).
|
|
- Mobile Orders List / Mobile Order Details / Mobile Settings.
|
|
- INDEX-106-01 - indeksy DB dla query `customer_returned_count`: `order_addresses(order_id, address_type)`, `shipment_packages(order_id, delivery_status)` (gdy dataset >50k wierszy).
|
|
|
|
## Skill Requirements
|
|
|
|
- `sonar-scanner` required after APPLY; Phase 116, Phase 117, Phase 121 and Phase 122 gaps documented because CLI was not available in PATH.
|