Registre 2025: cotele 24/20 la soldul neexigibil; exigibilizare TVA reparata

frm_regcump2025 / frm_regvanz2025 au fost derivate din clasele 2010 INLOCUIND
cotele 24/20 cu 11/21, in loc sa le adauge. Consecinta: filtrul "Diferenta sold"
si lista TVA-ului exigibilizat din plati pierdeau facturile cu TVA neexigibil la
24% sau 20% - adica exact facturile vechi cu TVA la incasare, cele carate din
perioade anterioare, care sunt rostul filtrului. Corectate 6 filtre, formula de
sold din frm_regvanz2025 (care omitea complet RO20/RO24, spre deosebire de
geamana ei de la cumparari) si lista de coloane selectate.

Clasele frm_regcump2010 / frm_regvanz2010 raman neatinse: enumera 24/20/19/9/5 si
e corect asa - se folosesc doar pe perioade dinainte de cotele 21/11, iar cursorul
lor actcv nici nu are coloanele ro11*/ro21*.

inchidere_tva_sold:
- soldn21/soldn11 si ro21nt/ro11nt se citesc doar daca exista in cursor.
  Registrele de dinainte de 2025 nu le emit, de unde eroarea VFP la apasarea
  butonului de exigibilizare pe orice perioada anterioara.
- cota 21 nu era luata in calcul: `Iif(m.lnCota = 21, ...)` intr-o bucla
  For 1 To 7, deci lnSuma21 era cod mort, iar la cota 6 se lua soldul de 11% cu
  1.21. Linia imediat urmatoare folosea deja corect `= 6`.
- 8 variabile adaugate in Local; deveneau PRIVATE si se scurgeau in stiva de apel.

Scoase 37 `SET STEP ON` ramase in cod (35 in ovanzcump.vc2, 2 in
oproceduri_inchidere.prg); deschideau depanatorul la fiecare rulare din IDE.

Changelog 2.11.66. Sterse handoff-urile, planurile si patch-urile de review ale
lucrarii ANAF/TVA/eFactura; .gitignore acopera acum docs/diff_*.patch, nu doar
docs/diff_runda*.patch.

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:12:35 +03:00
parent 8b5a670ff1
commit 869403cd3e
11 changed files with 41 additions and 2414 deletions

View File

@@ -771,7 +771,7 @@ Procedure inchidere_tva_sold
Local lnIdSet, lnNrAct, lnProcTVA, lnRecords, lnSucces, lnSuma, loAct
Local lnCota, lnCotaTVA, lnSuma24, lnSuma5, lnSuma9, lnSumaT
Local lnSuma24T, lnSuma5T, lnSuma9T, lnSumaNT, lcMesaj
SET STEP ON
Local lnSuma11, lnSuma19, lnSuma20, lnSuma21, lnSuma11T, lnSuma19T, lnSuma20T, lnSuma21T
lcJurnal = Upper(Alltrim(m.tcJurnal)) && JC/JV
If m.lcJurnal = 'JC' && Jurnal Cumparari
lcSCD = '4426'
@@ -788,7 +788,6 @@ SET STEP ON
lcMesaj = ''
lnIdSet = 99999 && nota fara predefinire
lnBut = lans(m.lnIdSet)
Set Step On
If m.lnBut = 1
Select actactan
Scatter Name loAct
@@ -799,8 +798,18 @@ SET STEP ON
lnNrAct = crsTVAIncasareTemp.nract
lnIdFact = crsTVAIncasareTemp.id_fact
lnSumaT = soldn
lnSuma21 = soldn21
lnSuma11 = soldn11
lnSuma21 = 0
lnSuma11 = 0
lnSuma21T = 0
lnSuma11T = 0
If Type('crsTVAIncasareTemp.soldn21') = 'N'
lnSuma21 = crsTVAIncasareTemp.soldn21
lnSuma11 = crsTVAIncasareTemp.soldn11
Endif
If Type('crsTVAIncasareTemp.ro21nt') = 'N'
lnSuma21T = crsTVAIncasareTemp.ro21nt
lnSuma11T = crsTVAIncasareTemp.ro11nt
Endif
lnSuma24 = soldn24
lnSuma20 = soldn20
@@ -809,16 +818,12 @@ SET STEP ON
lnSuma5 = soldn5
If m.lcJurnal = 'JC' && Jurnal Cumparari
lnSuma21T = ro21nt
lnSuma11T = ro11nt
lnSuma24T = ro24nt
lnSuma20T = ro20nt
lnSuma19T = ro19nt
lnSuma9T = ro09nt
lnSuma5T = ro05nt
ELSE
lnSuma21T = ro21nt
lnSuma11T = ro11nt
lnSuma24T = ro24nt
lnSuma20T = ro20nt
lnSuma19T = ro19nt
@@ -830,7 +835,7 @@ SET STEP ON
lnSuma = m.lnSumaT
lnCotaTVA = 0.00
If m.lnSumaT = 0
lnSuma = Iif(m.lnCota = 1, m.lnSuma24, Iif(m.lnCota = 2, m.lnSuma20, Iif(m.lnCota = 3, m.lnSuma19, Iif(m.lnCota = 4, m.lnSuma9, Iif(m.lnCota = 5, m.lnSuma5, Iif(m.lnCota = 21, m.lnSuma21, m.lnSuma11))))))
lnSuma = Iif(m.lnCota = 1, m.lnSuma24, Iif(m.lnCota = 2, m.lnSuma20, Iif(m.lnCota = 3, m.lnSuma19, Iif(m.lnCota = 4, m.lnSuma9, Iif(m.lnCota = 5, m.lnSuma5, Iif(m.lnCota = 6, m.lnSuma21, m.lnSuma11))))))
lnCotaTVA = Iif(m.lnCota = 1, 1.24, Iif(m.lnCota = 2, 1.20, Iif(m.lnCota = 3, 1.19, Iif(m.lnCota = 4, 1.09, Iif(m.lnCota = 5, 1.05, Iif(m.lnCota = 6, 1.21, 1.11))))))
Endif