Files
gomag-vending/docs/adrese_facturare_variante.md
Claude Agent aa581e5cd9 docs(address): update PJ/PF billing address rules in README + add decision doc
README.md: replace old different_person logic with PJ/PF rule description
docs/adrese_facturare_variante.md: new file — decision rationale, implementation
summary, verification commands, history of the change

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-08 16:39:24 +00:00

2.0 KiB

Adrese Facturare — Regula PJ vs PF

Cum funcționează ACUM

Tip client Adresă livrare ROA Adresă facturare ROA
PJ (company.name SAU company.code populat) GoMag shipping GoMag billing (sediul firmei)
PF (fără companie) GoMag shipping GoMag shipping (ramburs curier pe numele destinatarului)

Motivație PF: Banii ramburs de la curier se întorc pe numele de pe adresa de livrare, deci factura trebuie să fie pe aceeași adresă.

Motivație PJ: Firma vrea factura pe sediul social (adresa billing din GoMag), nu pe adresa de livrare a curierului.

Detectie companie (is_company)

is_company = isinstance(company, dict) and (
    bool(company.get("name")) or bool(company.get("code"))
)

Fallback CUI: dacă GoMag trimite company.name="" dar company.code="RO12345678" → tot PJ. Dacă company_name e gol dar există CUI → denumire = billing person name.

Implementare

api/app/services/import_service.py — Step 3 (billing address):

if is_pj:
    # PJ: billing address = GoMag billing (company HQ)
    billing_addr = format_address_for_oracle(order.billing.address, ...)
    if billing_addr == shipping_addr:
        addr_fact_id = addr_livr_id  # optimizare: reuse dacă identice
    else:
        addr_fact_id = cauta_sau_creeaza_adresa(billing_addr)
else:
    # PF: billing = shipping
    addr_fact_id = addr_livr_id

Verificare

# Audit comenzi existente
python3 scripts/verify_address_rules.py --days 7

# Teste Oracle E2E
./test.sh oracle

Istoricul deciziei

Înainte (greșit): logica different_person — compara numele billing vs shipping. Dacă difereau → shipping pt ambele. Dacă identice → billing GoMag pt facturare. Problema: PJ cu persoane diferite primeau factura pe adresa de shipping (nu pe sediul firmei).

Decizie (2026-04-08): Regula simplă PJ/PF, indiferent de compararea numelor. Doar comenzile NOI sunt afectate — comenzile existente rămân cu adresele curente.