Achizitie din import: secundara debifata de la participa_valuta nu mai incarca pretul in lei

Debifat = exclus complet din pretul articolului (lei si valuta); procent_lei
ramane 100 pe import, diferenta e absorbita de randul D (recalc_diferente).
Procentele afisate pe randurile neparticipante raman goale. Test nou pe
fluxul real: test_secundara_debifata_pret (15/15 PASS); regresie curata
(test_valuta_dvi_usd 22/22, test_debifare_invaluta 68/68, scenariu complet PASS).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KXsyJZBek1e9RvyLAQkoCx
This commit is contained in:
2026-07-25 10:09:01 +03:00
parent a6d883df69
commit ee36dfc028
3 changed files with 804 additions and 11 deletions

View File

@@ -11207,11 +11207,11 @@ DEFINE CLASS import_nota AS frm_termin_renunt OF "_frm_child.vcx"
*!* direct. 16.07.2026b claude (C4 - corectii T2): pe import, procent_lei NU mai e
*!* 100*baza_totala/baza_principala (ar dubla incarcarea documentelor de transport in
*!* valuta - do_reface aplica intai procent_val pe pretd, apoi procent_lei pe pret derivat
*!* din pretd*curs) - procent_lei pe import = 100 + contributia DOAR a documentelor
*!* care NU participa la pretul in valuta (restul intra in procent_val). Ramura intern
*!* din pretd*curs) - procent_lei pe import = 100; documentele neparticipante NU mai
*!* incarca pretul, raman pe randul D (recalc_diferente). Ramura intern
*!* ramane neschimbata (echivalenta cu vechiul calcul din do_executa).
Local lnBazaLei, lnBazaVal, lnBazaVal2, lnTvaLei, lnTvaVal, lnTvaVal2, lcSel
Local lnMinNrDoc, lnBazaPrincipalaLei, lnBazaPrincipalaVal, lnBazaLeiOnly, lnBazaValBased
Local lnMinNrDoc, lnBazaPrincipalaLei, lnBazaPrincipalaVal
lcSel = Select()
If !Used('introdc')
Select (lcSel)
@@ -11247,11 +11247,8 @@ DEFINE CLASS import_nota AS frm_termin_renunt OF "_frm_child.vcx"
If This.lIntern
This.procent_lei = Iif(lnBazaPrincipalaLei <> 0, 100 * lnBazaLei / lnBazaPrincipalaLei, 100)
Else
*!* C4b: documentele cu participa_valuta (si cele platite in lei, convertite la curs in
*!* nbaza_val) sunt acoperite de procent_val - in procent_lei raman doar neparticipantele
Sum suma For Inlist(tip_rand,'B','S') And !participa_valuta And !Inlist(scd,'4426','4428') And !Empty(id_jtva_coloana) To lnBazaLeiOnly
Sum suma For Inlist(tip_rand,'B','S') And participa_valuta And !Inlist(scd,'4426','4428') And !Empty(id_jtva_coloana) To lnBazaValBased
This.procent_lei = 100 + Iif(lnBazaValBased <> 0, 100 * lnBazaLeiOnly / lnBazaValBased, 0)
*!* 25.07.2026 claude - debifat participa_valuta = exclus complet din pret; diferenta merge pe randul D
This.procent_lei = 100
Endif
This.procent_val = Iif(lnBazaPrincipalaVal <> 0, 100 * lnBazaVal / lnBazaPrincipalaVal, 100)
Select (lcSel)
@@ -11709,9 +11706,14 @@ DEFINE CLASS import_nota AS frm_termin_renunt OF "_frm_child.vcx"
Replace explicatia4 With '100.00'
Replace explicatia5 With Iif(in_valuta = 1 Or participa_valuta, '100.00', '')
Else
Replace explicatia4 With Iif(This.nbazaprincipala_lei <> 0, Allt(Str(suma/This.nbazaprincipala_lei*100,6,2)), '')
lnValRandProc = Iif(in_valuta = 1 And Nvl(id_valuta,0) = Nvl(This.oact.id_valuta,0), suma_val, Round(suma/This.oact.Curs, gnPval))
Replace explicatia5 With Iif(This.nbazaprincipala_val <> 0, Allt(Str(lnValRandProc/This.nbazaprincipala_val*100,6,2)), '')
If !This.lIntern And !participa_valuta
Replace explicatia4 With ''
Replace explicatia5 With ''
Else
Replace explicatia4 With Iif(This.nbazaprincipala_lei <> 0, Allt(Str(suma/This.nbazaprincipala_lei*100,6,2)), '')
lnValRandProc = Iif(in_valuta = 1 And Nvl(id_valuta,0) = Nvl(This.oact.id_valuta,0), suma_val, Round(suma/This.oact.Curs, gnPval))
Replace explicatia5 With Iif(This.nbazaprincipala_val <> 0, Allt(Str(lnValRandProc/This.nbazaprincipala_val*100,6,2)), '')
Endif
Endif
Endscan
Endif