From 85ad3dea02e403c9d75ac676be54a8bd6b4835c0 Mon Sep 17 00:00:00 2001 From: Marius Mutu Date: Tue, 28 Jul 2026 08:23:19 +0300 Subject: [PATCH] Borderou eFactura: diferenta ignora TVA-ul de taxare inversa Expresia diferentei scade jtva_ti din jtotctva pentru facturile primite. Sonda pe user_tab_columns inainte de construirea SELECT-ului, ca borderoul sa se deschida si daca migrarea DB nu a ajuns inca la client. lcSchema (schema pozitionala) neatinsa. SVN r17913; script DB in DATABASE r17912. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01DhJwsrFFe1ZNAAtS8Twuti --- programe/import_efactura.prg | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/programe/import_efactura.prg b/programe/import_efactura.prg index 30e81cc..ce3249f 100644 --- a/programe/import_efactura.prg +++ b/programe/import_efactura.prg @@ -3,6 +3,12 @@ *!* 13.08.2024 *!* vizImportEFactura + discountfaratva +*!* 28.07.2026 +*!* marius.mutu +*!* borderoul eFactura, facturi primite: diferenta ignora TVA-ul de taxare inversa (coloana +*!* jtva_ti din view-ul anaf_vefactura_primit), ca sa nu mai apara colorate fals facturile +*!* cu 4426=4427; degradare automata daca migrarea DB nu a ajuns inca la client + Procedure importEfacturaPrimite DO vizImportEFactura WITH 'PRIMITE' ENDPROC @@ -18,6 +24,7 @@ PROCEDURE vizImportEFactura Private poFacturi, poFacturiDetalii Local loFrmFacturi As "frm_efactura_import", lcTip, llPrimite Local lcData1, lcFiltru, lcFiltruOriginal, lcOrder, lcSchema, lcgroup, llAfiseaza, llModParam + Local lcExprDiferenta, llAreJtvaTi poFacturi = Null poFacturiDetalii = Null @@ -25,7 +32,14 @@ PROCEDURE vizImportEFactura llPrimite = (m.lcTip = 'PRIMITE') lcTabel = IIF(m.lcTip = 'PRIMITE', 'anaf_vefactura_primit', 'anaf_vefactura_trimis') - + + llAreJtvaTi = .F. + IF goExecutor.oExecuta("select column_name from user_tab_columns where table_name = '" + Upper(m.lcTabel) + "' and column_name = 'JTVA_TI'", 'cColoaneJTva') And Used('cColoaneJTva') + llAreJtvaTi = (Reccount('cColoaneJTva') > 0) + Use In (Select('cColoaneJTva')) + ENDIF + lcExprDiferenta = IIF(m.llAreJtvaTi, [NVL(total_cu_tva,0.00) - (NVL(jtotctva,0.00) - NVL(jtva_ti,0.00)) as diferenta], [NVL(total_cu_tva, 0.00)-NVL(jtotctva, 0.00) as diferenta]) + * FACTURI PRIMITE/TRIMISE lcData1 = '01' + Padl(Int(m.gnLuna),2,'0') + Alltrim(Str(m.gnAn)) TEXT To lcSchema Noshow @@ -33,7 +47,7 @@ ales N(1), id N(20), id_fact N(20), data_act D, data_scad D, numar_act C(30), xf ENDTEXT TEXT To lcSelect TEXTMERGE Noshow -SELECT 0 as ales, id, id_fact, data_act, data_scad, numar_act, xfurnizor, xclient, partener, id_incarcare, id_descarcare, tip_mesaj_raspuns, mesaj_raspuns, data_raspuns, NVL(trimis,0) as trimis, data_trimis, cod_fiscal, cod_fiscal_emitent, cod_fiscal_beneficiar, '' as detalii, total_fara_tva, total_tva, total_tva_ron, total_cu_tva, discount_fara_tva, taxe_fara_tva, valoare_fara_tva, total_de_plata, nume_valuta, test, jtotctva, descriere, detalii_plata, NVL(total_cu_tva, 0.00)-NVL(jtotctva, 0.00) as diferenta, procesat, +SELECT 0 as ales, id, id_fact, data_act, data_scad, numar_act, xfurnizor, xclient, partener, id_incarcare, id_descarcare, tip_mesaj_raspuns, mesaj_raspuns, data_raspuns, NVL(trimis,0) as trimis, data_trimis, cod_fiscal, cod_fiscal_emitent, cod_fiscal_beneficiar, '' as detalii, total_fara_tva, total_tva, total_tva_ron, total_cu_tva, discount_fara_tva, taxe_fara_tva, valoare_fara_tva, total_de_plata, nume_valuta, test, jtotctva, descriere, detalii_plata, <>, procesat, '' as SerieActRoa, CAST(null as Number(14)) as NrActRoa, CAST(null as Number(20)) as idPartRoa, '' as PartenerRoa, '' as codFiscalROA, CAST(null as Number(10)) as idValutaROA, '' as numeValutaROA, CAST(null as Number(16,6)) as cursROA, '' as Cont, '' as acont, 0 as TVAIncasare, '' as Fdoc, CAST(0 as Number(5)) as Id_Fdoc, '' as Nrord, CAST(0 as Number(10)) as id_Lucrare, '' as Contract, CAST(null as Number(10)) as id_ctr, '' Sectie, CAST(0 as Number(10)) as id_Sectie, '' as dst_chlt, CAST(0 as Number(10)) as id_Venchelt, '' as nresp, CAST(0 as Number(10)) as id_responsabil, 0 as completat, 0 as completatdet, creditnote, '' as explicatiaROA