35 lines
1.5 KiB
Markdown
35 lines
1.5 KiB
Markdown
---
|
|
phase: 56-order-payments
|
|
plan: 01
|
|
status: complete
|
|
completed: 2026-03-30
|
|
---
|
|
|
|
## Summary
|
|
|
|
Uruchomienie funkcji dodawania platnosci do zamowienia z zakladki Platnosci + push statusu platnosci do shopPRO API.
|
|
|
|
## What Was Built
|
|
|
|
- Migracja `20260330_000073_create_order_payments_table.sql` — tabela `order_payments` (INT UNSIGNED FK) + idempotentne kolumny `total_with_tax`, `total_paid`, `external_payment_type_id` w `orders`
|
|
- `OrdersRepository::addPayment()` — INSERT + przeliczenie total_paid i payment_status
|
|
- `OrdersRepository::findOrderSourceInfo()` — dane source/integration dla push
|
|
- `OrdersController::addPayment()` — POST `/orders/{id}/payment/add` z walidacja, try/catch, activity log
|
|
- `OrdersController::pushPaymentToShoppro()` — push `set_paid` do shopPRO API po pelnym oplaceniu
|
|
- `ShopproApiClient::setOrderPaid()` — PUT `/api.php?endpoint=orders&action=set_paid`
|
|
- Formularz inline w zakladce Platnosci (przycisk "Dodaj platnosc", pola: kwota/typ/data/komentarz, AJAX submit)
|
|
- Style `.payment-add-form` w SCSS
|
|
|
|
## Deviations
|
|
|
|
- FK type fix: `order_payments.order_id` zmieniony z BIGINT na INT UNSIGNED (zgodnosc z `orders.id`)
|
|
- `Csrf::verify()` → `Csrf::validate()` (poprawna nazwa metody)
|
|
- Dodano try/catch w kontrolerze dla lepszej diagnostyki bledow
|
|
|
|
## Decisions
|
|
|
|
| Decision | Rationale |
|
|
|----------|-----------|
|
|
| Push set_paid do shopPRO bez nowego endpointu | shopPRO API juz ma `set_paid` — wystarczajace |
|
|
| ShopproIntegrationsRepository jako nullable dep w OrdersController | Minimalna zmiana konstruktora |
|