CLAUDE.md reduced from 214 to 60 lines — moved architecture, API endpoints, and detailed docs to README. Kept only AI-critical rules (TeamCreate, import flow gotchas, partner/pricing logic). README updated: added CANCELLED status, dual pricing policy, discount VAT splitting, stale error recovery, accurate partner/address logic, settings page references. Removed outdated Status Implementare section. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
61 lines
2.4 KiB
Markdown
61 lines
2.4 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: un SKU → multiple CODMAT-uri cu `procent_pret` (trebuie sa fie sum=100%)
|
|
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
|
|
|
|
### 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)
|