Remove leftover procent_pret input fields and validation from dashboard,
logs and missing_skus quick-map modals (missed in 9e5901a). Fix GoMag
Products API returning dict-keyed products instead of array, which caused
catalog price sync to find 0 products with SKU.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
66 lines
2.8 KiB
Markdown
66 lines
2.8 KiB
Markdown
# CLAUDE.md
|
|
|
|
## Project Overview
|
|
|
|
**System:** Import Comenzi Web GoMag → Sistem ROA Oracle
|
|
Stack: FastAPI + Jinja2 + Bootstrap 5.3 + Oracle PL/SQL + SQLite
|
|
|
|
Documentatie completa: [README.md](README.md)
|
|
|
|
## Implementare cu TeamCreate
|
|
|
|
**OBLIGATORIU:** Folosim TeamCreate + TaskCreate, NU Agent tool cu subagenti paraleli. Skill-ul `superpowers:dispatching-parallel-agents` NU se aplica in acest proiect.
|
|
|
|
- Team lead citeste TOATE fisierele implicate, creeaza planul
|
|
- **ASTEAPTA aprobare explicita** de la user inainte de implementare
|
|
- Task-uri pe fisiere non-overlapping (evita conflicte)
|
|
- Cache-bust static assets (`?v=N`) la fiecare schimbare UI
|
|
|
|
## Development Commands
|
|
|
|
```bash
|
|
# INTOTDEAUNA via start.sh (seteaza Oracle env vars)
|
|
./start.sh
|
|
# NU folosi uvicorn direct — lipsesc LD_LIBRARY_PATH si TNS_ADMIN
|
|
|
|
# Tests
|
|
python api/test_app_basic.py # fara Oracle
|
|
python api/test_integration.py # cu Oracle
|
|
```
|
|
|
|
## Reguli critice (nu le incalca)
|
|
|
|
### Flux import comenzi
|
|
1. Download GoMag API → JSON → parse → validate SKU-uri → import Oracle
|
|
2. Ordinea: **parteneri** (cauta/creeaza) → **adrese** → **comanda** → **factura cache**
|
|
3. SKU lookup: ARTICOLE_TERTI (mapped) are prioritate fata de NOM_ARTICOLE (direct)
|
|
4. Complex sets (kituri/pachete): un SKU → multiple CODMAT-uri cu `cantitate_roa`; preturile se preiau din lista de preturi Oracle
|
|
5. Comenzi anulate (GoMag statusId=7): verifica daca au factura inainte de stergere din Oracle
|
|
|
|
### Statusuri comenzi
|
|
`IMPORTED` / `ALREADY_IMPORTED` / `SKIPPED` / `ERROR` / `CANCELLED` / `DELETED_IN_ROA`
|
|
- Upsert: `IMPORTED` existent NU se suprascrie cu `ALREADY_IMPORTED`
|
|
- Recovery: la fiecare sync, comenzile ERROR sunt reverificate in Oracle
|
|
|
|
### Parteneri
|
|
- Prioritate: **companie** (PJ, cod_fiscal + registru) daca exista in GoMag, altfel persoana fizica cu **shipping name**
|
|
- Adresa livrare: intotdeauna GoMag shipping
|
|
- Adresa facturare: daca shipping ≠ billing person → shipping pt ambele; altfel → billing din GoMag
|
|
|
|
### Preturi
|
|
- Dual policy: articolele sunt rutate la `id_pol_vanzare` sau `id_pol_productie` pe baza contului contabil (341/345 = productie)
|
|
- Daca pretul lipseste, se insereaza automat pret=0
|
|
|
|
### Dashboard paginare
|
|
- Contorul din paginare arata **totalul comenzilor** din perioada selectata (ex: "378 comenzi"), NU doar cele filtrate
|
|
- Butoanele de filtru (Importat, Omise, Erori, Facturate, Nefacturate, Anulate) arata fiecare cate comenzi are pe langa total
|
|
- Aceasta este comportamentul dorit: userul vede cate comenzi totale sunt, din care cate importate, cu erori etc.
|
|
|
|
### Invoice cache
|
|
- Coloanele `factura_*` pe `orders` (SQLite), populate lazy din Oracle (`vanzari WHERE sters=0`)
|
|
- Refresh complet: verifica facturi noi + facturi sterse + comenzi sterse din ROA
|
|
|
|
## Deploy Windows
|
|
|
|
Vezi [README.md](README.md#deploy-windows)
|