{% import '_macros.html' as ui %}
{% if message %}
{{ message }}
{% endif %}

De rezolvat

{% if pending %}
{% 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
{{ 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 %}
{% 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 %}
{% for m in saved_mappings %} {# data-dt-row = haystack de cautare (randul contine un {% endfor %}
Operatie Cod RAR Actiuni
{{ m.cod_op_service }}
acum: {{ m.cod_prestatie }}{% if m.nume_prestatie %} — {{ m.nume_prestatie }}{% endif %}
{# Butoane act_btn (desktop: text; mobil: iconita 44px). data-dirty-form e citit de JS din base.html: la schimbarea select-ului din acelasi rand, JS adauga clasa "dirty" pe butonul de salvare (fundal --accent = modificari nesalvate). #} {{ ui.act_btn('Salveaza', 'save', 'save', 'type="submit" form="map-salv-' ~ loop.index ~ '" data-dirty-form="map-salv-' ~ loop.index ~ '"') }} {{ ui.act_btn('Sterge', 'trash', 'del', 'type="submit" form="map-del-' ~ loop.index ~ '"') }}
{% 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.

{% 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: cate operatii nemapate potriveste pattern-ul. #}
Daca operatia contine Cod RAR Actiuni
contine «{{ r.pattern }}»
{{ r.cod_prestatie }} {{ ui.act_btn('Sterge', 'trash', 'del', 'type="submit" form="rt-del-' ~ loop.index ~ '"') }}

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 %}
{{ ui.act_btn('Sterge', 'trash', 'del', 'type="submit"') }}
{% endif %}