#13: formular de facturare unificat - etapa curenta

Squash al branch-ului de lucru plan13-s2.

Clase: ofacturare (nucleul formularului unificat), ofacturare_comun,
ferestre_cere_date, ocomenzi, caut_ora (lista de preturi in combo-urile de
cautare), omodificari.

Programe: ofacturare impartit - ofacturare_antet, ofacturare_rutare_scriere si
ogrid_latimi sunt fisiere noi; oproceduri_facturare primeste discountul pe linie
si cota standard de TVA cand articolul nu are cota pe politica.

Documentatie: capcana SQLExec no_data_found, conventia de encoding, depanarea
testelor VFP si regulile de lucru - conflictele cu modificarile venite din alte
proiecte sunt rezolvate pastrand ambele parti.

Loguri de rulare a testelor scoase din versionare; testele raman.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PkyjGyrV2S7932om4kfSiK
This commit is contained in:
2026-09-09 21:38:25 +03:00
parent d1d0d7c37f
commit 8e022d332e
259 changed files with 57305 additions and 1576 deletions

View File

@@ -117,7 +117,7 @@ Endproc && facturare_lista_de_preturi
************************************ SFARSIT: facturare_lista_de_preturi ***********************************
************************************ INCEPUT: facturare_contracte ******************************************
Procedure facturare_contracte
LPARAMETERS tcTip
LPARAMETERS tcTip, toSursa
LOCAL lcTip
lcTip = UPPER(ALLTRIM(TRANSFORM(m.tcTip)))
@@ -127,17 +127,18 @@ Procedure facturare_contracte
ENDIF
DO CASE
CASE m.lcTip = 'FACTURA LEI'
factureaza(2)
factureaza(2, NULL, toSursa)
CASE m.lcTip = 'INVOICE'
factureaza(6)
factureaza(6, NULL, toSursa)
CASE m.lcTip = 'FACTURA VALUTA'
factureaza(52)
factureaza(52, NULL, toSursa)
ENDCASE
Endproc && facturare_contracte
************************************ SFARSIT: facturare_contracte ******************************************
************************************ INCEPUT: facturare_comenzi ********************************************
Procedure facturare_comenzi
factureaza(3)
LPARAMETERS toSursa
factureaza(3, NULL, toSursa)
Endproc && facturare_comenzi
************************************ SFARSIT: facturare_comenzi ********************************************
************************************ INCEPUT: facturare_avize ***********************************************
@@ -338,7 +339,7 @@ Procedure vizualizare_facturi
lcSchema = ['ales n(1),id_vanzare n(20),id_comanda n(20),dataora t,dataora_exp t,data_act d,data_scad d,sters n(1),dataoras t,numar_act n(14),serie_act c(10),'+] + ;
['tip n(5),id_part n(10),discount n(17,4),disc_fara_tva n(17,4),discount_evidentiat n(1),text_aditional M,facturat n(1),data_facturat t,'+] + ;
['explicatie c(240),altele c(200),client c(100),cod n(20),id_util I,utilizator c(30),utils c(30),utilfact c(30),delegat c(70),'+] + ;
['explicatie c(240),altele c(200),client c(100),cod n(20),id_util I,utilizator c(30),utils c(30),utilfact c(30),id_utilm I,utilm c(30),dataoram t,delegat c(70),'+] + ;
['bidelegat c(30),cnpdelegat c(15),nume_agent c(70),nrinmat c(10),total_fara_tva n(20,4),total_tva n(20,4),total_cu_tva n(20,4),id_gestiune n(10),'+] + ;
['serie_chit c(20),nr_incasare n(10),incasat n(17,4),in_valuta n(1),sucursala c(100),id_ruta n(10),ruta c(100),curs n(20,4),multiplicator n(10),nume_val c(50),'+] + ;
['valuta c(50), id_valuta n(5), valval n(20,4), tvaval n(20,4), totval n(20,4),'+] + ;
@@ -350,7 +351,7 @@ Procedure vizualizare_facturi
lcSelect = ['select 0 as ales,id_vanzare,id_comanda,dataora,dataora_exp,data_act,data_scad,sters,dataoras,numar_act,serie_act,'+] + ;
['tip,id_part,discount,disc_fara_tva,discount_evidentiat,text_aditional,facturat,data_facturat,'+] + ;
['explicatie,altele,client,cod,id_util,utilizator,utils,utilfact,delegat,bidelegat,cnpdelegat,'+] + ;
['explicatie,altele,client,cod,id_util,utilizator,utils,utilfact,id_utilm,utilm,dataoram,delegat,bidelegat,cnpdelegat,'+] + ;
['nume_agent,nrinmat,total_fara_tva,total_tva,total_cu_tva,id_gestiune,serie_chit,nr_incasare,incasat,'+] + ;
['in_valuta,sucursala,id_ruta,ruta,curs,multiplicator,nume_val,'+] + ;
['valuta,id_valuta,valval,tvaval,totval,'+] + ;
@@ -2391,4 +2392,56 @@ Function calculeaza_totaluri
Release lnProcTvav_19_119
Return toArticol
Endfunc
******************************************* SFARSIT: calculeaza_totaluri *******************************************
******************************************* SFARSIT: calculeaza_totaluri *******************************************
******************************************* INCEPUT: recalc_discount_linie *******************************************
Function recalc_discount_linie
Lparameters toArticol, tnValoare, tnTip
Local lnProcent, lnDiscountTva, lnDiscountTva_val
If toArticol.cu_tva = 0
Do Case
Case tnTip = 1
lnProcent = tnValoare
If toArticol.tip_valuta = 0
toArticol.discountftva = Round(toArticol.pretftva * lnProcent / 100, gnPPretV)
Else
toArticol.vdiscountftva = Round(toArticol.vpretftva * lnProcent / 100, gnPVal)
toArticol.discountftva = Round(toArticol.vdiscountftva * toArticol.Curs / toArticol.multiplicator, gnPPretV)
Endif
Case tnTip = 2
toArticol.discountftva = tnValoare
Case tnTip = 3
toArticol.vdiscountftva = tnValoare
toArticol.discountftva = Round(toArticol.vdiscountftva * toArticol.Curs / toArticol.multiplicator, gnPPretV)
Endcase
lnDiscountTva = Round(toArticol.discountftva * (toArticol.proc_tvav-1), gnPPretV)
toArticol.discountctva = lnDiscountTva + toArticol.discountftva
If toArticol.tip_valuta = 1
lnDiscountTva_val = Round(toArticol.vdiscountftva * (toArticol.proc_tvav-1), gnPVal)
toArticol.vdiscountctva = lnDiscountTva_val + toArticol.vdiscountftva
Endif
Else
Do Case
Case tnTip = 1
lnProcent = tnValoare
If toArticol.tip_valuta = 0
toArticol.discountctva = Round(toArticol.pretctva * lnProcent / 100, gnPPretV)
Else
toArticol.vdiscountctva = Round(toArticol.vpretctva * lnProcent / 100, gnPVal)
toArticol.discountctva = Round(toArticol.vdiscountctva * toArticol.Curs / toArticol.multiplicator, gnPPretV)
Endif
Case tnTip = 2
toArticol.discountctva = tnValoare
Case tnTip = 3
toArticol.vdiscountctva = tnValoare
toArticol.discountctva = Round(toArticol.vdiscountctva * toArticol.Curs / toArticol.multiplicator, gnPPretV)
Endcase
toArticol.discountftva = IIF(toArticol.proc_tvav<>0,Round(toArticol.discountctva / toArticol.proc_tvav , gnPPretV),0)
If toArticol.tip_valuta = 1
toArticol.vdiscountftva = IIF(toArticol.proc_tvav<>0,Round(toArticol.vdiscountctva / toArticol.proc_tvav , gnPVal),0)
Endif
Endif
toArticol.procdisc = IIF(toArticol.pretftva <> 0, Round(toArticol.discountftva / toArticol.pretftva * 100, 2), 0)
Return toArticol
Endfunc
******************************************* SFARSIT: recalc_discount_linie *******************************************