fix(web): detaliul trimiterii arata toate codurile RAR cand prima prestatie e exclusa

cod_rar se deriva acum din toate prestatiile (primul cod mapat), nu doar din
primul item; modalul afiseaza lista completa de coduri. Randurile importate
editate pastreaza operatia originala ca item 0 exclus fara cod, iar codurile
adaugate sunt itemii urmatori — modalul afisa fals "nemapat".

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Claude Agent
2026-07-08 19:42:25 +00:00
parent 56ebe1f7cb
commit c2beede084
4 changed files with 59 additions and 6 deletions

View File

@@ -123,6 +123,28 @@ def test_cod_rar_gol_cand_nemapat():
assert d3["cod_rar"] == EMPTY
def test_cod_rar_din_toate_prestatiile_cand_prima_e_exclusa():
"""Prima prestatie exclusa (fara cod) nu ascunde codurile de pe itemii urmatori.
Rand importat editat: operatia originala ramane item 0 cu exclus=True si
cod_prestatie null, codurile adaugate sunt itemii 1..N.
"""
d = prezentare_din_payload({
"prestatii": [
{"cod_prestatie": None, "cod_op_service": "OP-ITP",
"denumire": "Inspectie Tehnica Periodica", "exclus": True},
{"cod_prestatie": "OE-2"},
{"cod_prestatie": "OE-4"},
{"cod_prestatie": "OE-8"},
]
})
assert d["cod_rar"] == "OE-2"
assert d["coduri_rar"] == ["OE-2", "OE-4", "OE-8"]
# operatia si op. de service raman derivate din primul item (descrierea originala)
assert d["operatie"] == "Inspectie Tehnica Periodica"
assert d["op_service_cod"] == "OP-ITP"
def test_operatie_ramane_denumire_sau_op():
"""operatie si cod raman neschimbate (compatibilitate cu apelantii existenti)."""
# cu ambele coduri -> operatie=denumire, cod=cod_prestatie (neschimbat)

View File

@@ -214,6 +214,34 @@ def test_detaliu_trimitere(client):
assert "99001" in html # nr prezentare RAR
def test_detaliu_arata_toate_codurile_cand_prima_prestatie_e_exclusa(client):
"""Modalul arata codurile declarate cand operatia originala e exclusa (item 0).
Rand importat editat: item 0 = operatia originala cu exclus=True, fara cod;
codurile adaugate sunt itemii urmatori. Detaliul nu trebuie sa afiseze 'nemapat'.
"""
acct = _create_account_user("codmulti@test.com")
sid = _insert_submission(acct, "sent", id_prezentare=99002, payload={
"vin": "WVWZZZ3CZ9E123456",
"nr_inmatriculare": "TM789BC",
"data_prestatie": "2026-05-15",
"odometru_final": "82500",
"prestatii": [
{"cod_prestatie": None, "cod_op_service": "OP-ITP",
"denumire": "Inspectie Tehnica Periodica", "exclus": True},
{"cod_prestatie": "OE-2"},
{"cod_prestatie": "OE-4"},
{"cod_prestatie": "OE-8"},
],
})
_login(client, "codmulti@test.com")
resp = client.get(f"/_fragments/trimitere/{sid}")
assert resp.status_code == 200
html = resp.text
assert "OE-2, OE-4, OE-8" in html
assert "nemapat" not in html
# ---------------------------------------------------------------------------
# Tabel trimiteri — eticheta umana sub pill, fara chevron,
# cod RAR simplu (fara prefix), randul declanseaza modalul. Teste de randare.