From b1f8a8ed304983d307adf7ed192e547432a3d7d9 Mon Sep 17 00:00:00 2001 From: Marius Mutu Date: Tue, 28 Jul 2026 15:55:41 +0300 Subject: [PATCH] Borderou eFactura: diferenta ignora TVA-ul de taxare inversa vizeFactura (anaf_efactura.prg), facturi primite: expresia diferentei scade jtva_ti din jtotctva, ca la ecranul de import. Borderoul era ecranul din changelog, dar r17913 modificase doar vizImportEFactura. Scoate si sonda pe user_tab_columns din import_efactura.prg: versiune_db.txt este 2026_07_28_01 (exact scriptul care adauga jtva_ti), iar pack_migrare.VerificaVersiune nu lasa programul sa porneasca pe o baza mai veche, deci coloana exista sigur. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01DhJwsrFFe1ZNAAtS8Twuti --- programe/anaf_efactura.prg | 6 +++++- programe/import_efactura.prg | 12 ++---------- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/programe/anaf_efactura.prg b/programe/anaf_efactura.prg index d522045..08ca5bb 100644 --- a/programe/anaf_efactura.prg +++ b/programe/anaf_efactura.prg @@ -30,6 +30,10 @@ *!* Validarea si xml2pdfanaf se fac cu serviciul autentificat cu token efactura api.anaf.ro in loc de serviciul neautentificat https://webservicesp.anaf.ro/ *!* serviciul neautentificat nu mai raspundea +*!* 28.07.2026 +*!* marius.mutu +*!* vizeFactura, facturi primite: diferenta ignora TVA-ul de taxare inversa (jtva_ti) + ********************************* * Se apeleaza din ROACONT > Borderou eFactura * Intoarce .T. daca descarcarea zip efactura si actualizarea efactura in baza de date s-au realizat cu succes @@ -2870,7 +2874,7 @@ Define Class ANAFeFactura As Custom ales N(1), id N(20), id_fact N(20), data_act D, data_scad D, numar_act C(30), xfurnizor C(200), xclient C(200), id_incarcare C(36), id_descarcare c(36) null, tip_mesaj_raspuns C(50) null,mesaj_raspuns C(250) null, data_raspuns D null, trimis N(1) null, data_trimis T null, cod_fiscal_emitent C(30) null, cod_fiscal_beneficiar C(30) null, detalii M null, total_fara_tva N(16,4), total_tva N(16,4), total_tva_ron N(16,4), total_cu_tva N(16,4), discount_fara_tva N(16,4), taxe_fara_tva N(16,4), valoare_fara_tva N(16,4), total_de_plata N(16,4), nume_valuta C(5), test N(1) null, jtotctva N(16,4), descriere M null, detalii_plata M null, diferenta N(16,4), procesat N(1), tip_persoana N(1) null, descarcat N(1) null, filepath c(250) null, procesat_server N(1) null, creditnote N(1) Endtext Text To lcSelect Noshow -SELECT 0 as ales, id, id_fact, data_act, data_scad, numar_act, xfurnizor, xclient, id_incarcare, id_descarcare, tip_mesaj_raspuns, mesaj_raspuns, data_raspuns, NVL(trimis,0) as trimis, data_trimis, 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, decode(creditnote,0,1,-1) * NVL(total_cu_tva, 0.00)-NVL(jtotctva, 0.00) as diferenta, procesat, tip_persoana, descarcat, filepath, procesat_server, creditnote FROM anaf_vefactura_primit +SELECT 0 as ales, id, id_fact, data_act, data_scad, numar_act, xfurnizor, xclient, id_incarcare, id_descarcare, tip_mesaj_raspuns, mesaj_raspuns, data_raspuns, NVL(trimis,0) as trimis, data_trimis, 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, decode(creditnote,0,1,-1) * NVL(total_cu_tva, 0.00)-(NVL(jtotctva, 0.00)-NVL(jtva_ti, 0.00)) as diferenta, procesat, tip_persoana, descarcat, filepath, procesat_server, creditnote FROM anaf_vefactura_primit Endtext lcOrder = [data_act,numar_act,data_raspuns] lcgroup = [] diff --git a/programe/import_efactura.prg b/programe/import_efactura.prg index ce3249f..8860802 100644 --- a/programe/import_efactura.prg +++ b/programe/import_efactura.prg @@ -7,7 +7,7 @@ *!* 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 +*!* cu 4426=4427 Procedure importEfacturaPrimite DO vizImportEFactura WITH 'PRIMITE' @@ -24,7 +24,6 @@ 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 @@ -33,13 +32,6 @@ PROCEDURE vizImportEFactura 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 @@ -47,7 +39,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, <>, 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, NVL(total_cu_tva,0.00) - (NVL(jtotctva,0.00) - NVL(jtva_ti,0.00)) as diferenta, 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