3.9 KiB
3.9 KiB
phase, plan, type, wave, depends_on, files_modified, autonomous, delegation
| phase | plan | type | wave | depends_on | files_modified | autonomous | delegation | |
|---|---|---|---|---|---|---|---|---|
| 86-apaczka-cod-bank-account | 01 | execute | 1 |
|
true | off |
Purpose
Uzytkownik nie moze tworzyc przesylek z pobraniem (COD) przez Apaczke. Blokuje to codzienna obsluge zamowien.
Output
Poprawiony ApaczkaShipmentService.php — payload COD zawiera numer konta bankowego z ustawien firmy.
Source Files
@src/Modules/Shipments/ApaczkaShipmentService.php (linie 114-119 — budowanie payloadu COD)
@src/Modules/Settings/CompanySettingsRepository.php (linia 45 — pole bank_account)
<acceptance_criteria>
AC-1: Payload COD zawiera numer konta bankowego
Given zamowienie z kwota pobrania (cod_amount > 0)
And ustawienia firmy zawieraja niepusty bank_account
When ApaczkaShipmentService buduje payload COD
Then obiekt cod zawiera pole bank_account_number z numerem konta z ustawien firmy
AC-2: Brak konta bankowego — czytelny blad
Given zamowienie z kwota pobrania (cod_amount > 0)
And ustawienia firmy nie zawieraja bank_account (pusty string)
When ApaczkaShipmentService buduje payload COD
Then rzucony zostaje ShipmentException z komunikatem o braku numeru konta bankowego w ustawieniach firmy
</acceptance_criteria>
Task 1: Dodac bank_account_number do payloadu COD w ApaczkaShipmentService src/Modules/Shipments/ApaczkaShipmentService.php W metodzie `createShipment()`, w bloku `if ($codAmount > 0)` (linie 114-119): 1. Pobrac ustawienia firmy: `$settings = $this->companySettings->getSettings();` 2. Wyciagnac numer konta: `$bankAccount = $settings['bank_account'] ?? '';` 3. Jezeli `$bankAccount === ''` — rzucic `ShipmentException` z komunikatem: "Przesylka COD wymaga numeru konta bankowego. Uzupelnij go w Ustawienia > Firma." 4. Dodac do tablicy `$apiPayload['cod']` pole `'bank_account_number' => $bankAccount` 5. Numer konta powinien byc przekazany jako czysty ciag cyfr (bez spacji/myslnikow) — uzyc `preg_replace('/\s+/', '', $bankAccount)`Uwaga: NIE zmieniaj nic poza blokiem COD. Nie dodawaj nowych use statements (ShipmentException juz jest zaimportowany).
Statyczna analiza: php -l src/Modules/Shipments/ApaczkaShipmentService.php
Manualna weryfikacja: utworzyc przesylke COD w zamowieniu #191 — API Apaczka nie powinno zwracac bledu o niepoprawnym koncie bankowym.
AC-1 i AC-2 spelnione: payload COD zawiera bank_account_number, brak konta = czytelny blad
DO NOT CHANGE
- src/Modules/Settings/CompanySettingsRepository.php (ustawienia firmy dzialaja poprawnie)
- resources/views/shipments/prepare.php (formularz przygotowania przesylki)
- src/Modules/Settings/ApaczkaApiClient.php (klient API)
SCOPE LIMITS
- Nie dodawac pola bank_account do formularza przesylki — numer konta jest globalny (ustawienia firmy)
- Nie zmieniac logiki innych providerow (InPost, Allegro)
<success_criteria>
- Przesylka COD przez Apaczke tworzy sie bez bledu "niepoprawny numer konta bankowego"
- Brak numeru konta w ustawieniach = czytelny komunikat zamiast bledu API </success_criteria>