{% import '_macros.html' as ui %}
{% if message %}
{{ message }}
{% endif %}
{# US-005 (5.5): antet standard + link Ajutor ca
nativ (fara JS). Toata proza care inainte se repeta inline (scopul maparilor, Auto/Manual) traieste acum AICI, o singura data, ascunsa implicit. #}

De rezolvat

Ajutor
Maparile leaga o operatie din softul tau (cod intern ROAAUTO) de un cod RAR oficial. Operatiile necunoscute raman blocate in needs_mapping si NU pleaca la RAR pana le mapezi. Sugestiile (%) vin din potrivire fuzzy pe denumire — verifica-le inainte sa salvezi. In coada: Auto = la urmatoarele fisiere cu aceasta operatie randurile intra automat in coada; Manual = raman pentru verificare, nimic nu pleaca la RAR pana confirmi. La schimbarea unui cod, submission-urile blocate pe acea operatie se re-rezolva automat.
{% if not pending %}
Nicio operatie nemapata — tot ce a venit s-a tradus in coduri RAR. Importa un fisier nou daca vrei sa adaugi prezentari.
{% else %}
{% for e in pending %} {% set top = e.suggestions[0] if e.suggestions else None %} {% set preselect = top.cod_prestatie if (top and top.score >= 60) else '' %} {# data-dt-row = haystack de cautare (randul contine un {% endfor %}
Operatie Sugestii Cod RAR In coada
{{ e.cod_op_service }} {{ e.blocked }} blocate
{{ e.denumire or '(fara denumire)' }}
{% if e.suggestions %} {% for s in e.suggestions[:3] %} {{ s.cod_prestatie }} ({{ s.score|round|int }}%){% if not loop.last %}, {% endif %} {% endfor %} {% else %}—{% endif %} {{ ui.autosend_toggle(form_id="map-rez-" ~ loop.index, checked=True) }}
{% endif %}

Mapari operatii salvate

{% if not saved_mappings %}
Nicio mapare salvata inca. Pe masura ce mapezi operatii, ele apar aici si le poti edita oricand.
{% else %} {# US-005 (5.5): proza explicativa mutata in panoul Ajutor de la "De rezolvat" (o singura data). #}
{% for m in saved_mappings %} {# data-dt-row = haystack de cautare (randul contine un {% endfor %}
Operatie Cod RAR In coada Actiuni
{{ m.cod_op_service }}
acum: {{ m.cod_prestatie }}{% if m.nume_prestatie %} — {{ m.nume_prestatie }}{% endif %}
{{ ui.autosend_toggle(form_id="map-salv-" ~ loop.index, checked=m.auto_send) }} {# Salveaza/Sterge in meniu contextual (kebab) — randul ramane ingust. Butoanele se leaga prin form= de cele doua form-uri hx-post definite in prima celula a randului. #}
{% endif %}

Formate de coloane salvate

{% if not column_formats %}
Niciun format de coloane salvat inca. La primul import, maparea coloanelor fisierului se retine aici si se reaplica automat la fisierele cu acelasi antet.
{% else %}

Antetele de fisier recunoscute. Un fisier cu alte coloane = format nou separat.

{% for f in column_formats %} {% endfor %}
Coloane Mapari (coloana → camp) Format data
{{ f.columns | length }} coloane {% for col, camp in f.mappings.items() %} {{ col }} → {{ camp }}{% if not loop.last %}; {% endif %} {% endfor %}
{% endif %}

Reguli automate (text)

O regula leaga orice operatie al carei text contine (nu egal, ci substring) un cuvant de un cod RAR. Util pentru operatii fara cod intern: ex. orice operatie care contine „verificare" primeste codul ales. Match insensibil la majuscule/diacritice. In coada: implicit oprit — regula rezolva codul dar tine randul pentru verificare umana pana activezi „In coada".

{% if not text_rules %}
Inca nu ai reguli. Ex: operatia contine «verificare» → OE-2. Mapeaza automat operatii similare fara cod intern. Adauga prima regula mai jos.
{% endif %}
{% for r in text_rules %} {% endfor %} {# Rand de adaugare (mereu prezent ca placeholder, inclusiv in empty state). #} {# Preview pre-salvare (US-009): cate operatii nemapate potriveste pattern-ul. #}
Daca operatia contine Cod RAR In coada Actiuni
contine «{{ r.pattern }}»
{{ r.cod_prestatie }} {% if r.auto_send %}Auto (in coada){% else %}Manual (verificare){% endif %}
{{ ui.autosend_toggle(form_id="rt-add", checked=False) }}