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 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DhJwsrFFe1ZNAAtS8Twuti
This commit is contained in:
2026-07-28 15:55:41 +03:00
parent 1d83854f56
commit b1f8a8ed30
2 changed files with 7 additions and 11 deletions

View File

@@ -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/ *!* 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 *!* 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 * Se apeleaza din ROACONT > Borderou eFactura
* Intoarce .T. daca descarcarea zip efactura si actualizarea efactura in baza de date s-au realizat cu succes * 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) 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 Endtext
Text To lcSelect Noshow 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 Endtext
lcOrder = [data_act,numar_act,data_raspuns] lcOrder = [data_act,numar_act,data_raspuns]
lcgroup = [] lcgroup = []

View File

@@ -7,7 +7,7 @@
*!* marius.mutu *!* marius.mutu
*!* borderoul eFactura, facturi primite: diferenta ignora TVA-ul de taxare inversa (coloana *!* 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 *!* 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 Procedure importEfacturaPrimite
DO vizImportEFactura WITH 'PRIMITE' DO vizImportEFactura WITH 'PRIMITE'
@@ -24,7 +24,6 @@ PROCEDURE vizImportEFactura
Private poFacturi, poFacturiDetalii Private poFacturi, poFacturiDetalii
Local loFrmFacturi As "frm_efactura_import", lcTip, llPrimite Local loFrmFacturi As "frm_efactura_import", lcTip, llPrimite
Local lcData1, lcFiltru, lcFiltruOriginal, lcOrder, lcSchema, lcgroup, llAfiseaza, llModParam Local lcData1, lcFiltru, lcFiltruOriginal, lcOrder, lcSchema, lcgroup, llAfiseaza, llModParam
Local lcExprDiferenta, llAreJtvaTi
poFacturi = Null poFacturi = Null
poFacturiDetalii = Null poFacturiDetalii = Null
@@ -33,13 +32,6 @@ PROCEDURE vizImportEFactura
lcTabel = IIF(m.lcTip = 'PRIMITE', 'anaf_vefactura_primit', 'anaf_vefactura_trimis') 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 * FACTURI PRIMITE/TRIMISE
lcData1 = '01' + Padl(Int(m.gnLuna),2,'0') + Alltrim(Str(m.gnAn)) lcData1 = '01' + Padl(Int(m.gnLuna),2,'0') + Alltrim(Str(m.gnAn))
TEXT To lcSchema Noshow 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 ENDTEXT
TEXT To lcSelect TEXTMERGE Noshow 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, <<m.lcExprDiferenta>>, 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 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, '' 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 '' 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