4.7 KiB
4.7 KiB
2026-07-06
Co zrobiono
- [Plan 20260706-1248] Fundament finansePRO na CodeIgniter 4.7.3 + moduł wydatków/przychodów bieżących.
- Inicjalizacja PAUL (plan-first, Quality Radar), junction memory.
- Instalacja CI4 (Composer), konfiguracja DB czytana z
.env, włączenieintlw XAMPP. - Logowanie jednego użytkownika z
.env(filtrauth,Auth::login/logout). - Migracje
categories(hierarchia+typ) ioperations(+FK), seeder 9 kategorii. - CRUD kategorii i operacji: filtry (data/kategoria/typ), sumy, blokada usunięcia używanej kategorii, typ operacji wymuszany przez kategorię.
- Dashboard z 3 wykresami ApexCharts (bilans miesięczny, wydatki wg kategorii, saldo skumulowane).
- Weryfikacja end-to-end przez
php spark serve+ curl; dane testowe wyczyszczone. - Naprawa wdrożenia hostido: root
.htaccess(forward dopublic/, 403), sekcja produkcyjna w.env(CI_ENVIRONMENT=production,app.baseURL). - [Plan 20260706-1430] Moduł inwestycji: instrumenty (Obligacje/ETF), wpłaty/wypłaty, ręczne wyceny.
- Migracje
inv_instruments,inv_operations,inv_valuations(FK RESTRICT), seeder instrumentów. - CRUD instrumentów/operacji/wycen + filtry + blokada usunięcia instrumentu z powiązaniami.
- Pulpit inwestycji
/investments: kafelki, wykres 3-seryjny w czasie, tabela per instrument (zarobek netto = ostatnia wycena − (Σwpłat − Σwypłat)). - Pulpit globalny
/dashboard(majątek razem = saldo bieżące + wartość inwestycji); dotychczasowy pulpit finansów przepięty pod/finances. - Nawigacja zgrupowana w dropdowny: „Finanse bieżące" i „Inwestycje" + top-level „Pulpit".
- Weryfikacja end-to-end curl (ETF: netto 800, wartość 950, zarobek 150 = 18,75%); dane testowe wyczyszczone.
- [Plan 20260706-2046] Półautomatyczny import paragonów: upload (jpg/png/pdf/json) → AI parsuje → przegląd/korekta → księgowanie pogrupowane po kategorii.
- Parser OpenAI przez Responses API (
/v1/responses+input_file), model o4-mini (rozumujący — najlepszy OCR paragonów, poprawne rabaty; > gpt-4o/4.1). - Tabele
receipts,receipt_items(+display_name),receipt_category_map; kolumnaoperations.receipt_id. - Uczone podpowiedzi kategorii (surowa nazwa z paragonu → kategoria; tylko podpowiada, nie księguje z automatu).
- Dwie nazwy pozycji: surowa (mapowanie) + ładna „ludzka" (wyświetlanie/opis operacji).
- Przegląd z edytowalnymi nazwami/kwotami + podgląd sum na żywo; kategorie z pełną ścieżką „Nadrzędna → Podrzędna".
- Naprawy pod hostido: przepływ bez
fileinfo(własna nazwa pliku + MIME z rozszerzenia); migracje zastosowane ręcznie na zdalnej bazie. - UAT realnym paragonem (Biedronka PDF) potwierdzony przez użytkownika.
Zmienione pliki
composer.json,composer.lock,vendor/,spark,public/,writable/app/Config/Database.php,app/Config/Routes.php,app/Config/Filters.php,app/Config/App.phpapp/Controllers/BaseController.php,app/Controllers/Auth.php,app/Controllers/Categories.php,app/Controllers/Operations.php,app/Controllers/Dashboard.phpapp/Filters/AuthFilter.phpapp/Models/CategoryModel.php,app/Models/OperationModel.phpapp/Database/Migrations/2026-07-06-100001_CreateCategories.php,app/Database/Migrations/2026-07-06-100002_CreateOperations.phpapp/Database/Seeds/DefaultCategoriesSeeder.phpapp/Views/layout/main.php,app/Views/auth/login.php,app/Views/categories/index.php,app/Views/categories/form.php,app/Views/operations/index.php,app/Views/operations/form.php,app/Views/dashboard/index.php.env,.htaccessapp/Database/Migrations/2026-07-06-140001_CreateInvInstruments.php,...140002_CreateInvOperations.php,...140003_CreateInvValuations.phpapp/Database/Seeds/DefaultInstrumentsSeeder.phpapp/Models/InstrumentModel.php,app/Models/InvOperationModel.php,app/Models/ValuationModel.phpapp/Controllers/Instruments.php,app/Controllers/InvOperations.php,app/Controllers/Valuations.php,app/Controllers/Investments.php,app/Controllers/Dashboard.phpapp/Views/instruments/{index,form}.php,app/Views/inv_operations/{index,form}.php,app/Views/valuations/{index,form}.php,app/Views/investments/index.phpapp/Views/dashboard/index.php(globalny),app/Views/dashboard/finances.php(finansowy)app/Config/Routes.php,app/Views/layout/main.phpapp/Database/Migrations/2026-07-06-2000{01..05}_*.php(receipts, receipt_items, receipt_category_map, operations.receipt_id, display_name)app/Models/{ReceiptModel,ReceiptItemModel,ReceiptCategoryMapModel}.php,app/Models/OperationModel.php,app/Models/CategoryModel.phpapp/Libraries/ReceiptParser.phpapp/Controllers/Receipts.phpapp/Views/receipts/{new,review,index,show}.php