fix(anaf-dedup): fix ANAF parsing, facturare addr, compact modal layout

- Fix ANAF API: extract CUI from date_generale (not top-level), fix
  notFound casing (capital F)
- Fix missing facturare address when same ID as livrare (copy instead
  of skip)
- Replace ANAF cache pre-population stub with real logic (3-month CUIs)
- Restructure order detail modal: inline 2-col GOMAG|ROA layout with
  compact address lines replacing collapsed sections
- Fix addrMatch() to use field-level comparison with Romanian
  abbreviation stripping (STR, NR, BL, SC, AP, ET, ETAJ, APART)
- Add dashboard "Diferente" filter pill for ANAF-adjusted orders
- Update e2e test for new modal structure

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Claude Agent
2026-04-01 20:07:37 +00:00
parent 2f593c30f6
commit e8b42088e3
10 changed files with 308 additions and 243 deletions

View File

@@ -19,7 +19,7 @@
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet">
<link href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.2/font/bootstrap-icons.css" rel="stylesheet">
{% set rp = request.scope.get('root_path', '') %}
<link href="{{ rp }}/static/css/style.css?v=26" rel="stylesheet">
<link href="{{ rp }}/static/css/style.css?v=27" rel="stylesheet">
</head>
<body>
<!-- Top Navbar (hidden on mobile via CSS) -->
@@ -93,16 +93,26 @@
</div>
<div class="modal-body">
<div class="row mb-3">
<!-- GOMAG Column -->
<div class="col-md-6">
<small class="text-muted">Client:</small> <strong id="detailCustomer"></strong><br>
<small class="text-muted">Data comanda:</small> <span id="detailDate"></span><br>
<small class="text-muted">Status:</small> <span id="detailStatus"></span><span id="detailPriceCheck" class="ms-2"></span>
<div class="detail-col-label">GOMAG</div>
<div class="detail-client-name" id="detailCustomer">...</div>
<div class="detail-cui-line" id="detailCuiGomag" style="display:none">
<small class="text-muted">CUI:</small> <span class="font-data" id="detailCuiGomagVal"></span>
</div>
<div><small class="text-muted">Data:</small> <span id="detailDate"></span></div>
<div><small class="text-muted">Status:</small> <span id="detailStatus"></span><span id="detailPriceCheck" class="ms-2"></span></div>
</div>
<!-- ROA Column -->
<div class="col-md-6">
<small class="text-muted">ID Comanda ROA:</small> <span id="detailIdComanda">-</span><br>
<small class="text-muted">ID Partener:</small> <span id="detailIdPartener">-</span><br>
<small class="text-muted">ID Adr. Facturare:</small> <span id="detailIdAdresaFact">-</span><br>
<small class="text-muted">ID Adr. Livrare:</small> <span id="detailIdAdresaLivr">-</span>
<div class="detail-col-label">ROA</div>
<div class="detail-client-name" id="detailPartenerRoa" style="display:none"></div>
<div class="detail-cui-line" id="detailCuiRoa" style="display:none">
<small class="text-muted">CUI:</small> <span class="font-data" id="detailCuiRoaVal"></span>
<span id="detailPartnerAnafArea"></span>
</div>
<div><small class="text-muted">ID Comanda:</small> <span class="font-data detail-roa-id" id="detailIdComanda">-</span></div>
<div><small class="text-muted">ID Partener:</small> <span class="font-data detail-roa-id" id="detailIdPartener">-</span></div>
<div id="detailInvoiceInfo" style="display:none; margin-top:4px;">
<small class="text-muted">Factura:</small> <span id="detailInvoiceNumber"></span>
<span class="ms-2"><small class="text-muted">din</small> <span id="detailInvoiceDate"></span></span>
@@ -110,31 +120,12 @@
</div>
</div>
</div>
<!-- Partner Info Section (PJ only) -->
<div id="detailPartnerSection" style="display:none" class="mb-3">
<div class="detail-section-header" role="button" tabindex="0"
data-bs-toggle="collapse" data-bs-target="#detailPartnerInfo"
aria-expanded="false" aria-controls="detailPartnerInfo">
<i class="bi bi-chevron-right"></i>
<span>DETALII PARTENER</span>
<span id="partnerAlertCount" class="alert-count" style="display:none"></span>
</div>
<div class="collapse" id="detailPartnerInfo">
<div class="detail-section-body" id="partnerInfoBody"></div>
</div>
</div>
<!-- Address Comparison Section -->
<div id="detailAddressSection" style="display:none" class="mb-3">
<div class="detail-section-header" role="button" tabindex="0"
data-bs-toggle="collapse" data-bs-target="#detailAddressInfo"
aria-expanded="false" aria-controls="detailAddressInfo">
<i class="bi bi-chevron-right"></i>
<span>ADRESE COMPARATIV</span>
<span id="addressAlertCount" class="alert-count" style="display:none"></span>
</div>
<div class="collapse" id="detailAddressInfo">
<div class="detail-section-body" id="addressInfoBody"></div>
</div>
<!-- Denomination mismatch alert -->
<div id="detailDenomMismatch" style="display:none" class="mb-2"></div>
<!-- Compact Address Lines -->
<div id="detailAddressBlock" style="display:none" class="mb-3">
<div class="detail-col-label" style="border-bottom:1px solid var(--border);margin-bottom:8px;padding-bottom:4px">ADRESE</div>
<div id="detailAddressLines"></div>
</div>
<div class="table-responsive d-none d-md-block">
<table class="table table-sm table-bordered mb-0">
@@ -170,7 +161,7 @@
<script>window.ROOT_PATH = "{{ rp }}";</script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script>
<script src="{{ rp }}/static/js/shared.js?v=21"></script>
<script src="{{ rp }}/static/js/shared.js?v=22"></script>
<script>
// Dark mode toggle
function toggleDarkMode() {

View File

@@ -76,6 +76,7 @@
<button class="filter-pill d-none d-md-inline-flex" data-status="INVOICED">Facturate <span class="filter-count fc-green" id="cntFact">0</span></button>
<button class="filter-pill d-none d-md-inline-flex" data-status="UNINVOICED">Nefacturate <span class="filter-count fc-red" id="cntNef">0</span></button>
<button class="filter-pill d-none d-md-inline-flex" data-status="CANCELLED">Anulate <span class="filter-count fc-dark" id="cntCanc">0</span></button>
<button class="filter-pill d-none d-md-inline-flex" data-status="DIFFS">Diferente <span class="filter-count fc-orange" id="cntDiff">0</span></button>
<button class="btn btn-sm btn-outline-secondary d-none d-md-inline-flex" id="btnRefreshInvoices" onclick="refreshInvoices()" title="Actualizeaza status facturi din Oracle">&#8635;</button>
</div>
<div class="d-md-none mb-2 d-flex align-items-center gap-2" style="max-width:100%;overflow:hidden">
@@ -114,5 +115,5 @@
{% endblock %}
{% block scripts %}
<script src="{{ request.scope.get('root_path', '') }}/static/js/dashboard.js?v=34"></script>
<script src="{{ request.scope.get('root_path', '') }}/static/js/dashboard.js?v=35"></script>
{% endblock %}