diff --git a/api/app/services/sqlite_service.py b/api/app/services/sqlite_service.py index 756296a..879a08e 100644 --- a/api/app/services/sqlite_service.py +++ b/api/app/services/sqlite_service.py @@ -698,8 +698,9 @@ async def get_orders(page: int = 1, per_page: int = 50, data_clauses.append("UPPER(status) IN ('IMPORTED', 'ALREADY_IMPORTED')") elif status_filter.upper() == "DIFFS": data_clauses.append( - "(anaf_cod_fiscal_adjusted = 1 OR anaf_denumire_mismatch = 1 OR address_mismatch = 1" + "(anaf_cod_fiscal_adjusted = 1 OR anaf_denumire_mismatch = 1" " OR (cod_fiscal_gomag IS NOT NULL AND cod_fiscal_gomag != '' AND anaf_platitor_tva IS NOT NULL" + " AND anaf_cod_fiscal_adjusted != 1" " AND ((UPPER(cod_fiscal_gomag) LIKE 'RO%' AND anaf_platitor_tva = 0)" " OR (UPPER(cod_fiscal_gomag) NOT LIKE 'RO%' AND anaf_platitor_tva = 1))))" ) @@ -756,10 +757,11 @@ async def get_orders(page: int = 1, per_page: int = 50, cursor = await db.execute(f"SELECT COUNT(*) FROM orders {uninv_old_where}", base_params) uninvoiced_old = (await cursor.fetchone())[0] - # Diffs count: orders with ANAF adjustments, address mismatches, or TVA mismatch + # Diffs count: orders with ANAF adjustments or TVA mismatch (not address) diffs_clauses = list(base_clauses) + [ - "(anaf_cod_fiscal_adjusted = 1 OR anaf_denumire_mismatch = 1 OR address_mismatch = 1" + "(anaf_cod_fiscal_adjusted = 1 OR anaf_denumire_mismatch = 1" " OR (cod_fiscal_gomag IS NOT NULL AND cod_fiscal_gomag != '' AND anaf_platitor_tva IS NOT NULL" + " AND anaf_cod_fiscal_adjusted != 1" " AND ((UPPER(cod_fiscal_gomag) LIKE 'RO%' AND anaf_platitor_tva = 0)" " OR (UPPER(cod_fiscal_gomag) NOT LIKE 'RO%' AND anaf_platitor_tva = 1))))" ] diff --git a/api/app/static/js/dashboard.js b/api/app/static/js/dashboard.js index f619881..206c0ee 100644 --- a/api/app/static/js/dashboard.js +++ b/api/app/static/js/dashboard.js @@ -368,7 +368,7 @@ async function loadDashOrders() { ${statusDot(o.status)} ${dateStr} ${renderClientCell(o)} - ${esc(o.order_number)}${(o.anaf_cod_fiscal_adjusted===1||o.anaf_denumire_mismatch===1||(o.cod_fiscal_gomag&&o.anaf_platitor_tva!==null&&(/^RO/i.test(o.cod_fiscal_gomag)!==(o.anaf_platitor_tva===1))))?'':''}${(o.address_mismatch===1||o.price_match===false)?'':''} + ${esc(o.order_number)}${(o.anaf_cod_fiscal_adjusted===1||o.anaf_denumire_mismatch===1||(o.cod_fiscal_gomag&&o.anaf_platitor_tva!==null&&o.anaf_cod_fiscal_adjusted!==1&&(/^RO/i.test(o.cod_fiscal_gomag)!==(o.anaf_platitor_tva===1))))?'':''}${(o.address_mismatch===1||o.price_match===false)?'':''} ${o.items_count || 0} ${fmtCost(o.delivery_cost)} ${fmtCost(o.discount_total)} @@ -394,7 +394,7 @@ async function loadDashOrders() { } const name = o.customer_name || o.shipping_name || o.billing_name || '\u2014'; const totalStr = o.order_total ? Number(o.order_total).toFixed(2) : ''; - const anafDiffDot = (o.anaf_cod_fiscal_adjusted===1||o.anaf_denumire_mismatch===1||(o.cod_fiscal_gomag&&o.anaf_platitor_tva!==null&&(/^RO/i.test(o.cod_fiscal_gomag)!==(o.anaf_platitor_tva===1)))) ? '' : ''; + const anafDiffDot = (o.anaf_cod_fiscal_adjusted===1||o.anaf_denumire_mismatch===1||(o.cod_fiscal_gomag&&o.anaf_platitor_tva!==null&&o.anaf_cod_fiscal_adjusted!==1&&(/^RO/i.test(o.cod_fiscal_gomag)!==(o.anaf_platitor_tva===1)))) ? '' : ''; const addrDiffDot = o.address_mismatch===1 ? '' : ''; const priceMismatch = o.price_match === false ? ' ' : ''; return `
diff --git a/api/app/static/js/shared.js b/api/app/static/js/shared.js index edce0b3..fe54de4 100644 --- a/api/app/static/js/shared.js +++ b/api/app/static/js/shared.js @@ -1020,7 +1020,7 @@ function _renderHeaderInfo(order) { const badges = []; if (isPJ && pi.anaf_cod_fiscal_adjusted) badges.push({label:'CUI', cls:'diff-badge-anaf', aria:'CUI ajustat conform ANAF'}); if (isPJ && pi.anaf_denumire_mismatch) badges.push({label:'Denumire', cls:'diff-badge-anaf', aria:'Denumire diferita fata de ANAF'}); - if (isPJ && pi.anaf_platitor_tva !== null && pi.anaf_platitor_tva !== undefined) { + if (isPJ && !pi.anaf_cod_fiscal_adjusted && pi.anaf_platitor_tva !== null && pi.anaf_platitor_tva !== undefined) { const gomagImpliesPlatitor = pi.cod_fiscal_gomag && /^RO/i.test(pi.cod_fiscal_gomag); const anafPlatitor = pi.anaf_platitor_tva === 1; if (gomagImpliesPlatitor !== anafPlatitor) badges.push({label:'TVA', cls:'diff-badge-anaf', aria: anafPlatitor ? 'Platitor TVA conform ANAF (GoMag fara RO)' : 'Neplatitor TVA conform ANAF (GoMag cu RO)'}); diff --git a/api/app/templates/base.html b/api/app/templates/base.html index a366fd8..3730c0a 100644 --- a/api/app/templates/base.html +++ b/api/app/templates/base.html @@ -161,7 +161,7 @@ - + + {% endblock %}