From 1f43c29955734f0aec9f05c328afbcedb767ccbe Mon Sep 17 00:00:00 2001 From: Marius Mutu Date: Wed, 17 Jun 2026 14:33:56 +0300 Subject: [PATCH] Tranzit: repartitie proportionala valoare finala cand coeficientul de distanta e 0 Precizia coeficientului de distanta revine la 2 zecimale (gnProcDistPrecizie=2) pentru compatibilitate cu facturile/stornarile anterioare. Cand procdist se rotunjeste la 0 (distante scurte) si se introduce o valoare finala manuala, aceasta se repartizeaza proportional pe nave dupa baza fara coeficient de distanta (tarif * cant * (corect + procdiv)), la facturare si la stornare. Cantitatea de stornare se recalculeaza proportional, nu mai devine 0. Bump versiune 2.0.5 -> 2.0.6. Co-Authored-By: Claude Opus 4.8 (1M context) --- Clase/oacnpro.VCT | Bin 558553 -> 559812 bytes Clase/oacnpro.vcx | Bin 110141 -> 110141 bytes Programe/ovariabile_globale.prg | 4 +++- Programe/proceduri_acnpro.prg | 2 +- changelog_roaacnpro.txt | 12 +++++++++++- roaacnpro.PJT | Bin 1739067 -> 1739100 bytes roaacnpro.PJX | Bin 72953 -> 72953 bytes 7 files changed, 15 insertions(+), 3 deletions(-) diff --git a/Clase/oacnpro.VCT b/Clase/oacnpro.VCT index 878bf49d724d0288655f37234528f31fc8d45bb3..c36e9757a2bfc7b49e48d9fca9fe586cabc04171 100644 GIT binary patch delta 3215 zcmai0eN0=|6+h25zR!I51Cl_}zy^8xq+3X~hA3L1YD%&{rfAZnPOH{5G!HWTwsYSz zU_z@}K7RL}d(Q8C-t&C#jqS9@W=&J$dz9Fc z$@lM*``@uv%qgG$kLm=Jf2V@ejJ4>Q|NPR3`%0wVGW@}h4bMtZ=;N~F&*R1)>XN1p z$iMYM0ek#=^2Sg#yepRikttFcQaO?xsRF4IsS2qYlx-;Hz-0~64y2t(wMccKSimoD z2Fvn-6XbeGsr$n8zJcAnOr8-s*%z0|o~A~4ybA>kZ~&=9DMH0MO>kj1$W5>)2o`-x zDM9`o=D`cCsIgPtDjr%M+e}y=N=h&qyq+V!Y|F}YGEv@iKj~LLLQd$tg z!Ad_QHQnD><8n_c(+GPJu?$|_EboVcWw~9oopSIP_Q4-@%W@l}^h%*7;E-(^FZt$& zq(?Bg;PHXvKmR}mwI%ahC5=WmTt^&s?kaIuJ)np%xs-L#g3se!axHuBDrvXYg51F! zyn|#(EoId+!yK`5wl~cdI6J_enOMPALk6CK*Nlocch4n*;Q4P7H9 z13K{n3tz(mzD<_021KO|a+lRm`q@vf5xZISa#2@oHX*K2WH+vn`gW9~2m=W7-)!jg z40I0pJhY9fiWrnJrBvd%UOPWEJT?>>#^Y-Be1JWBoeXFFPF%{m$lktA3N7|*wI!`6 z&Xd^2=B|^QnrmU6OOH^??|cb=Niqs%Z*$^|d0o+nh?ZdRE`SnoWk-db!%MASqdjGFFM zP3Z``Fi)xkGfU2sM(%PKyLgk7iJLU_qg=g3JfEMopbFn%lQ)TTP1v4iR_ySWif#h; zqArgb(NH#Iv<6$aN%kgQOgBP4W=bARZ;JWmrF2*92kZj7nnpLWilAM78E&i4TVPQ? zoVzIK{VAm$`NudP+v7MCKQRbDdka6sefx9K@(}o+7wbMPkNv&W&nLdq^hwj-?AfT$80F*SKPX_cC z0gQUXqM$=hdAru~J_1M?)hv2g<1Ny?10&rEuVzdJ9Ef}@1o&8}$6}$u3U1ZGesznK znm@HDX2jytMP>f=7O74YC^^WhMqZtEs}QwdMHhoGW0wT1%FY!(QL_@zgh2)8xe9_m zrC;+xyS$%TmFo4rRjIzEqg;tFmC&zPtKuo+);_VWx+L)_nNE;q_$hroccTiv%#D@X zo(`sx!{;IVk8GF)H8<6eT1sTSXj8oDD!H-58OaCp=f&X0STosr>>r&Uhd5TNd1Kr^ zuqn<}G*vTqV@Wfzl~5;=I`3v}>bhjZz|SmezB=&IuY$F4_t1u|pd||ZRa1pO6(H(y z5b;dlYh~dS$fvQ+_y*H>+|mo{-z}M@aNuy2kk&30*sM5F@#VAd3dr9=CKkuS?<@)} zgyHcS6wt$=NYeioV$zl5LU+#r*PzSY+jF?rmk-_DeCKubyF9)DfAZKJa#&YrgU+75 z{$4j{_4RkSeS^M^t>C$~$mrUFx?Sk-#UA{+3%P&C;b_u`H zO~IHBpD?3$feUsE58X0(zeo+zI~DA~ z6QM}g{IBGRW5)YJGVB-4Vo5CxM-E75C3iG35e?xk%y(WXCV4_*@#Obj7B_7#JmWkS z>5D}JoYfZ#20~{;!Q{+$#n%mq_3}9Lon9xcs-jN6lLn;7Fdap`Vbr4%9f{&27LAWb zUJ1o%SfUMdEJS0$Q7IM=oeiF)!{eh8J&E?|2s%Im(cnlZ5DG@(bT~*kh!lxSdD(f{ zrh#BMNCUAkRz4}(^~hicC&kl=?tusQg(g-Nm0Y%+C3hC?HWr#{*HlOju)d|ocLu8YzZ zcdYdS=Cl6kDne1#ZOb8&-<0i6E$jrYH5G(p&pMTUH|&8wuZ)PX(JN%zlIlJ%lZm*tTZHh zJ|Uj4V#azrJ}=LhcEEm{5cjdq65_jR4}b8QILH=TNsqewehaB#GgG1~d3#C}4gUvv Cj)%Jd delta 2018 zcmZWqTWl0%6h3q5&e>(Rd!azL*J+ow+ZI}AOG{~Y+wE+ZmM(?TE=ZxJST2GXA2gUK z_plg)52E4^^a&o+L@?pOOoApxBgUYKw?tCoOJjmDzK9lPi@T%epIvN$P5#;cKl7dM zT>mp)oUfcdTd4phrvZSS^9%lyYEl)Fs+d%zq$(%XyrgRTNL75gH*m!K>t9tA2ss(x z>zuc+s*jKH?SM6SR!<>+pV~!Wfk0SB!CP(w93pvQmoGc zXIF#K1SvuANEx$?81-j*D1QI2;FJJg0jp_QF)!$zTv-E6}Zp0)6| zL>$nXG24lvnh9&MHr_rj<(^jM7}gPE1sq*!gkf>o=(KESf;@&0d@iPq4#-GmK^71+ zd|8=(cr6YJau?k1*1u}U(d?F0cVLq(0$&mj8}GoNw+BpwV{>_75B-mCFzOiVz_7Ot z42?VZ11(QxF0Y2&>A(ONM{{C3Gk45qYMLam3Xf{f{cs9p*U+3kwyCA^dHnq~~L6(KB>$=)V57@}HT zQ0DRm&_*e~ z$KL4FE9~pTRKf->C;MXk)o&rj>fpD2;yT@g^L8v}78Gn9q_ltX*RmXfK>RndW zwz4}tSSf^=T|*U@xGiCVt=6!Hl}FKsA7^n1)*i)bL17m)Y~rr>v2Qi3Kvz~{tEEw7 zcavk}0EJ@9x^OB#XU0;$#U`TIFs~lSbDIIUXero1ONlPkM!F7I&;;zKD0Uv-mMeKa zFZolsgP$L^=jtB@s&~LjaD+sK5H?2Pdy9G*q@+F0lpu{{%#|eH!R6ElJHh`z7A{?+ zpMP_=1$ZEf+41scS1e<;5_pWj_l~=a0Av)hOb3^d&-dH2dq3Zgb4GgdtHN(-*w~eQ z+svEM3o>B_vl16M7a+idr7{MDl*uERyd?sgB&P(C{N(*zNAdjwJU*EkyoW7~VZ4sw zEP|s8CV;Wry6O}B`ZrSc$>4HswVJ&i!*chp9%_Q@6tRRiVpwzBXH|u$7C%%V&)w8A zgI=@#p>qVU0`gO~7@hQd8b&hGylHDD<`}AY>@H$>%WF2|;@3!-^5=Xayd96QSoeF% zYq6C*G2j-4mv3G0+~}LX-gmu}l59qe33j~?3-|5;V=rZo<};t(Wi+85ADjz$={C)h z#y--pV$JYzL6dcMKN!!Da5w)(P@58H_5j>JNF|XV@vPp^k9JW{4B%E#|8yfpCGmDC zD;<^Bv92N9Al?=9vqKmbgdf?hEm-b+0agpw#RxPDGa_3wjPI0RS_RNg4JXlu>?Z9y zn*p}*FJCRK$pD*q+g7MI>B`S9iOuWT<=>T^`X^(yV}fo!BJUGe`F@+CS8T&8HhpFc zmy`<4y5kjmO=gZ0STEUK4(2$8E$q+C?Iy<=JMwWM|OXzFoDOQ9^mLfT#$ksj0b2&*aMj7@?!5j>1`W)Mn(i!C#*&s68+cFrXnP8mdS&U2Ap`7V~MU3e%_P!#NZxKV0lj2$qerf;c0sOqa^JjDjHBd&qb5w2xvBSQc5$Yz9v$B@{@EeP=i oEeK<)S`j8qKiGy)q}L8-Z=c00V1q~cCeN4{81~F#X4nA4-+*io5R+mB(_KLv3_9D{ zx9{v?lw)Kwurvdz-+s57QJM+H`Pa+1gdNJ6zG5n4I*ctkjqwVM{T{*IesVhFI=E4_ zGZ{NzMos6Q1J|+r=^VyWY%n{vE@pIuYx%PTp?~^@We5vpmm}C+NbK*+5yoCzfiP*h z#43b_Rs?(dr&UObEY~0uEn5ROX?nw2#=X-&v@nWIw@7DHW|QURVAybLdty4HgfakZ CUT1dz diff --git a/Programe/ovariabile_globale.prg b/Programe/ovariabile_globale.prg index 45aebbd..367cdbe 100644 --- a/Programe/ovariabile_globale.prg +++ b/Programe/ovariabile_globale.prg @@ -1 +1,3 @@ -**OVARIABILE_GLOBALE.PRG \ No newline at end of file +**OVARIABILE_GLOBALE.PRG +PUBLIC gnProcDistPrecizie +gnProcDistPrecizie = 2 && precizie zecimale rotunjire calcul si afisare procent distanta parcursa / lungime CDMN 64.4 km \ No newline at end of file diff --git a/Programe/proceduri_acnpro.prg b/Programe/proceduri_acnpro.prg index cb8a202..5f3ec26 100644 --- a/Programe/proceduri_acnpro.prg +++ b/Programe/proceduri_acnpro.prg @@ -5743,7 +5743,7 @@ Procedure mod_calcul_tranzit Select vye_id, intern, indicativ, tarif, valuta, cant, um, procdist, corect, procdiv, valval, Curs, valftva From (m.tcTabel) Where vye_id = m.tcVyeId Order By indicativ Into Cursor cModCalculTemp Select cModCalculTemp Scan - lcModCalcul = lcModCalcul + Alltrim(Transform(tarif, GET_MASK(10, 4))) + [ ] + Allt(valuta) + [ * ] + Allt(Str(cant, 8, 2)) + [ ] + Allt(um) + [ * ] + Allt(Str(procdist, 6, 3)) + [ * ] + Allt(Str(corect + procdiv, 5, 3)) + [ = ] + Alltrim(Transform(valval, GET_MASK(16, 2))) + [ ] + Allt(valuta) + lcModCalcul = lcModCalcul + Alltrim(Transform(tarif, GET_MASK(10, 4))) + [ ] + Allt(valuta) + [ * ] + Allt(Str(cant, 8, 2)) + [ ] + Allt(um) + [ * ] + Allt(Str(procdist, 6, m.gnProcDistPrecizie)) + [ * ] + Allt(Str(corect + procdiv, 5, 3)) + [ = ] + Alltrim(Transform(valval, GET_MASK(16, 2))) + [ ] + Allt(valuta) llIntern = intern lnCurs = Curs If m.llIntern diff --git a/changelog_roaacnpro.txt b/changelog_roaacnpro.txt index 61a3d7f..eb27283 100644 --- a/changelog_roaacnpro.txt +++ b/changelog_roaacnpro.txt @@ -1,4 +1,14 @@ - + +