Files
vfp_roaauto/COMUN/programe/ofacturare_stoc.prg

1140 lines
58 KiB
Plaintext

***************************************************************************************************************
**** Proceduri:
**** initializeaza_vanzare_din_stoc
**** listeaza_ofacturare_stoc
**** relisteaza_ofacturare_stoc
**** Functii:
**** oscrie_vanzare_din_stoc
***************************************************************************************************************
*!* 10.07.2009
*!* marius.mutu
*!* cast(nvl(id_valuta,0) as N(5)) IN LOC DE nvl(id_valuta,0) - apareau **** daca primul id_valuta/id_valutad era NULL
*!* 15.05.2018
*!* marius.mutu
*!* initializeaza_vanzare_din_stoc + id_set 271 vanzare produse pret achizitie
*!* 29.06.2018
*!* marius.mutu
*!* initializeaza_vanzare_din_stoc + id_set 272 vanzare produse valuta pret achizitie
*!* initializeaza_vanzare_din_stoc + parametru toActAnterior - pentru lansarea din modificare_articole_gestiune
*!* 12.11.2019
*!* marius.mutu
*!* initializeaza_vanzare_din_stoc + IdSet2TipFacturare
*!* 03.05.2022
*!* oscrie_vanzare_din_stoc - completeaza pack_facturare.adauga_articol_factura_stoc(taxcode)
**************************************** INCEPUT: initializeaza_vanzare_din_stoc ******************************
Procedure initializeaza_vanzare_din_stoc
Lparameters tnIdSet, toActAnterior
LOCAL lnTip
If glLunaInchisa
amessagebox("Nu puteti emite documente, deoarece aceasta luna este închisa!",0+48,"Luna închisa")
Return
Endif
Dimension taValori[5,4]
Private poDate && ,pnTipFacturare *!* modificare v ROAFACTURARE 2.0.67
lnTip = IdSet2TipFacturare(m.tnIdSet)
poDate = CREATEOBJECT("oDateFactura",tnIdSet,lnTip)
*!* modificare v 2.0.67
*!* pnTipFacturare = 0
*!* modificare v 2.0.67 ^
If gcNumeProgram = [ROAFACTURARE]
selecteaza_gestiuni()
Endif
taValori[1,1]="poAct.dataireg"
taValori[1,2]= Dtoc(poDate.dataireg)
taValori[1,3]= .T.
taValori[2,1]="poAct.dataact"
taValori[2,2]= Dtoc(poDate.dataact)
taValori[2,3]= .T.
taValori[3,1]="poAct.datascad"
taValori[3,2]= Dtoc(poDate.datascad)
taValori[3,4]= Iif(gnScadentaAutomata=0,.F.,.T.)
taValori[4,1]="poAct.id_fdoc"
taValori[4,2]=Alltrim(Str(Nvl(poDate.id_fdoc,0)))
taValori[4,4]= !Empty(Nvl(poDate.id_fdoc,0))
taValori[5,1]="poAct.fdoc"
taValori[5,2]= Alltrim(poDate.fdoc)
taValori[5,4]= !Empty(Nvl(poDate.fdoc,[]))
lnRaspuns = 6
Do While lnRaspuns = 6
*!* taValori[6,1]="poAct.nract"
*!* taValori[6,2]=Alltrim(Str(poDate.nract))
*!* taValori[6,3]= !Empty(poDate.nract)
If Inlist(tnIdSet,223,225,226,227,272)
Dimension taValori[6,4]
taValori[6,1]="poAct.v8"
taValori[6,2]= Dtoc(poDate.zi_curs)
taValori[6,4]= .F.
poDate.in_valuta = 1
Endif
lnSucces=lans(tnIdSet,.F.,.T.,@taValori, .F., toActAnterior)
*!* If lnSucces = 2
*!* Do dezaloca_numar_fact In oserii_numere.prg
*!* Endif
lnRaspuns = amessagebox("Doriti sa continuati cu operatii de acest fel?",4+32,"Confirmare")
poDate.Reset(7-lnRaspuns)
Enddo
*!* modificare ROAGEST v 2.0.6
*!* If Used('nom_gestiuni')
*!* Use In nom_gestiuni
*!* Endif
*!* modificare ROAGEST v 2.0.6 ^
Release poDate && ,pnTipFacturare *!* modificare v 2.0.67
Endproc
**************************************** SFARSIT: initializeaza_vanzare_din_stoc ******************************
******************************************** INCEPUT: oscrie_vanzare_din_stoc *********************************
*!* - facturarea din gestiuni;
*!* - intrare din gestiune valorica mf la pv - aviz expeditie
Function oscrie_vanzare_din_stoc
Lparameters toSet
*!* v 2.0.18 roagest
*!* in vanzari_detalii scriu pretul cu tva daca am marfa la pret de vanzare, daca nu scriu pretul de vanzare fara tva
*!* tip = -6, id_set = 236 intrare din gestiune valorica marfa la pv - aviz expeditie
*!* tip = -6, id_set = 240 intrare din gestiune valorica (cantitativ) marfa la pv - aviz expeditie
Local lnPretCuTva, lnSucces, llSucces, lcSql
lnPretCuTva = Iif(INLIST(gnTipGest , 6,7), 1, 0)
*!* v 2.0.18 roagest ^
If Used('crsvanztemp')
Use In crsvanztemp
Endif
If Used('crsfactura')
Use In crsfactura
Endif
poDate.nract = poAct.nract
poDate.serie_act = poAct.serie_act
*!* modificare ROAFACTURARE v 2.0.68
*!* Create Cursor crsfactura(id_temp N(15),um c(10), denumire c(100), explicatie c(240), pretftva N(20,4), pretctva N(20,4),;
*!* valftva N(20,4), valtva N(20,4), valctva N(20,4),;
*!* cantitate N(20,4),discountftva N(20,4), discountctva N(20,4),valdiscountftva N(20,4),valdiscounttva N(20,4),;
*!* valdiscountctva N(20,4),id_jtva_coloana N(10),;
*!* valdiminuatftva N(20,4),valdiminuattva N(20,4), valdiminuatctva N(20,4),proc_tvav N(20,4),serie c(100),;
*!* codmat c(50), codmatf c(50), codbare c(50),cu_tva N(1),;
*!* vpretftva N(20,4),vvalftva N(20,4),vvaltva N(20,4),vdiscountftva N(20,4),vvaldiscountftva N(20,4),vvaldiscounttva N(20,4),;
*!* vvaldiminuatftva N(20,4),vvaldiminuattva N(20,4),vvaldiminuatctva N(20,4),gestionabil N(1))
creeaza_facturacrs([crsfactura])
*!* modificare ROAFACTURARE v 2.0.68 ^
*!* modificare ROAFACTURARE v 2.0.56 : am adaugat pretd, id_valutad
*!* modificare ROAFACTURARE v 2.0.90 : am adaugat multiplicator
Create Cursor crsvanztemp(id_articol N(20),Pret N(20,max(gnPPretV,4)),proc_tvav N(7,3),id_jtva_coloana N(10),cantitate N(20,max(gnPCant,4)),discount_unitar N(20,max(gnPPretV,4)),;
id_gestiune N(20),Cont c(4),pret_cu_tva N(1),serie c(100),id_valuta N(10),codmat c(50),Curs N(20,max(gnPCurs,6)),multiplicator N(10),pret_achizitie N(20,max(gnPPret,4)),;
pretd N(20,max(gnPPretVal,4)),id_valuta_d N(10),id_rul_aux N(10) Null,taxcode N(6) null,lot C(20) null)
*!* modificare ROAGEST v 2.0.142
completeaza_facturacrs([crsfactura])
*!* *!* v 2.0.18 roagest - am calculat total cu tva, total tva, total fara tva = diferenta, adaos
*!* If !INLIST(gnTipGest,6,7)
*!* Insert Into crsfactura (id_temp,denumire,serie,cantitate,cu_tva,pretftva,pretctva,;
*!* valftva,valtva,valctva,discountftva,discountctva,valdiscountftva,;
*!* valdiscounttva, valdiscountctva, valdiminuatftva, valdiminuattva, valdiminuatctva, proc_tvav,id_jtva_coloana,um,codmat,codbare,;
*!* vpretftva,vvalftva,vvaltva,vdiscountftva,vvaldiscountftva,vvaldiscounttva,;
*!* vvaldiminuatftva,vvaldiminuattva,vvaldiminuatctva,gestionabil) ;
*!* Select Recno() As id_temp,denumire, Nvl(serie,Space(100)) As serie, cante As cantitate,m.lnPretCuTva As cu_tva,;
*!* Round(pretv,gnPc) As pretftva,;
*!* Round(pretv,gnPc) + Round(Round(pretv,gnPc) * (proc_tvav-1),gnPc) As pretctva,;
*!* Round(Round(pretv,gnPc)*cante,gnPc) As valftva,;
*!* ROUND(Round(pretv*cante,gnPc)*(proc_tvav-1),gnPc) As valtva, ;
*!* Round(Round(pretv,gnPc)*cante,gnPc) + Round(Round(pretv*cante,gnPc)*(proc_tvav-1),gnPc) As valctva, ;
*!* ROUND(discunitar,gnPc) As discountftva,;
*!* ROUND(discunitar,gnPc)+Round(Round(discunitar,gnPc)*(proc_tvav-1),gnPc) As discountctva,;
*!* Round(Round(discunitar,gnPc)*cante,gnPc) As valdiscountftva, ;
*!* ROUND(Round(discunitar*cante,gnPc)*(proc_tvav-1),gnPc) As valdiscounttva, ;
*!* Round(Round(discunitar,gnPc)*cante,gnPc) + Round(Round(discunitar*cante,gnPc)*(proc_tvav-1),gnPc) As valdiscountctva,;
*!* Round(Round(pretv-discunitar,gnPc)*cante,gnPc) As valdiminuatftva,;
*!* ROUND(Round((pretv-discunitar)*cante,gnPc)*(proc_tvav-1),gnPc) As valdiminuattva,;
*!* ROUND(Round(Round(pretv-discunitar,gnPc)*cante,gnPc)*proc_tvav,gnPc) As valdiminuatctva,;
*!* proc_tvav,id_jtva_coloana, Nvl(um,Space(50)) As um, Nvl(codmat,Space(50)) As codmat, Nvl(codbare,Space(50)) As codbare,;
*!* Round(pretvval,gnPVal) As vpretftva,;
*!* ROUND(Round(pretvval,gnPVal)*cante,gnPVal) As vvalftva,;
*!* ROUND(Round(Round(pretvval,gnPVal)*cante,gnPVal)*(proc_tvav-1),gnPVal) As vvaltva,;
*!* 0 As vdiscountftva,0 As vvaldiscountftva,0 As vvaldiscounttva,;
*!* Round(Round(pretvval-0,gnPc)*cante,gnPc) As vvaldiminuatftva,;
*!* ROUND(Round((pretvval-0)*cante,gnPc)*(proc_tvav-1),gnPc) As vvaldiminuattva,;
*!* ROUND(Round(Round(pretvval-0,gnPc)*cante,gnPc)*proc_tvav,gnPc) As vvaldiminuatctva,;
*!* 1 As gestionabil From rul_temp Where cante <> 0
*!* Else
*!* Insert Into crsfactura (id_temp,denumire,serie,cantitate,cu_tva,pretftva,pretctva,;
*!* valftva,valtva,valctva,discountftva,discountctva,valdiscountftva,;
*!* valdiscounttva, valdiscountctva, valdiminuatftva, valdiminuattva, valdiminuatctva, proc_tvav,id_jtva_coloana,um,codmat,codbare,;
*!* vpretftva,vvalftva,vvaltva,vdiscountftva,vvaldiscountftva,vvaldiscounttva,;
*!* vvaldiminuatftva,vvaldiminuattva,vvaldiminuatctva,gestionabil) ;
*!* Select Recno() As id_temp,denumire, Nvl(serie,Space(100)) As serie, cante As cantitate,m.lnPretCuTva As cu_tva,Round(pretv,gnPc) As pretftva, ;
*!* Round(pretv+tvav,gnPc) As pretctva,;
*!* Round(Round((pretv+tvav),gnPc)*cante,gnPc) - Round(Round((pretv+tvav)*cante,gnPc)*(proc_tvav-1)/proc_tvav,gnPc) As valftva, ;
*!* Round(Round((pretv+tvav)*cante,gnPc)*(proc_tvav-1)/proc_tvav,gnPc) As valtva, ;
*!* Round(Round((pretv+tvav),gnPc)*cante,gnPc) As valctva, ;
*!* ROUND(discunitar,gnPc) As discountftva, ;
*!* ROUND(discunitar,gnPc)+Round(Round(discunitar,gnPc)*(proc_tvav-1),gnPc) As discountctva,;
*!* Round(Round(discunitar,gnPc)*cante,gnPc) As valdiscountftva, ;
*!* Round(Round(discunitar*cante,gnPc)*(proc_tvav-1),gnPc) As valdiscounttva, ;
*!* Round(Round(discunitar,gnPc)*cante,gnPc) + Round(Round(discunitar*cante,gnPc)*(proc_tvav-1),gnPc) As valdiscountctva, ;
*!* Round(Round((pretv+tvav),gnPc)*cante,gnPc) - Round(Round((pretv+tvav)*cante,gnPc)*(proc_tvav-1)/proc_tvav,gnPc) As valdiminuatftva, ;
*!* Round(Round((pretv+tvav)*cante,gnPc)*(proc_tvav-1)/proc_tvav,gnPc) As valdiminuattva, ;
*!* Round(Round((pretv+tvav),gnPc)*cante,gnPc) As valdiminuatctva, ;
*!* proc_tvav,id_jtva_coloana, Nvl(um,Space(50)) As um,Nvl(codmat,Space(50)) As codmat, Nvl(codbare,Space(50)) As codbare, Round(pretvval,gnPVal) As vpretftva,;
*!* ROUND(Round(pretvval,gnPVal)*cante,gnPVal) As vvalftva,;
*!* ROUND(Round(Round(pretvval,gnPVal)*cante,gnPVal)*(proc_tvav-1),gnPVal) As vvaltva,;
*!* 0 As vdiscountftva,0 As vvaldiscountftva,0 As vvaldiscounttva,;
*!* Round(Round(pretvval-0,gnPc)*cante,gnPc) As vvaldiminuatftva,;
*!* ROUND(Round((pretvval-0)*cante,gnPc)*(proc_tvav-1),gnPc) As vvaldiminuattva,;
*!* ROUND(Round(Round(pretvval-0,gnPc)*cante,gnPc)*proc_tvav,gnPc) As vvaldiminuatctva,;
*!* 1 As gestionabil From rul_temp Where cante <> 0
*!* *!* v 2.0.52
*!* *!* nu am discount la vanzare - si era formula gresita - trebuia sa plece de la pretv+tvav
*!* *!* Round(Round(pretv-discunitar,gnPc)*cante,gnPc) As valdiminuatftva,;
*!* *!* ROUND(Round((pretv-discunitar)*cante,gnPc)*(proc_tvav-1),gnPc) As valdiminuattva,;
*!* *!* ROUND(Round(Round(pretv-discunitar,gnPc)*cante,gnPc)*proc_tvav,gnPc) As valdiminuatctva,
*!* *!* v 2.0.52 ^
*!* Endif
*!* *!* v 2.0.18 roagest ^
*!* modificare ROAGEST v 2.0.142 ^
If poDate.in_valuta = 1
&& se foloseste pretul in valuta
*!* modificare ROAFACTURARE v 2.0.56 : am adaugat pretd, id_valutad
*!* modificare ROAFACTURARE v 2.0.90 : am adaugat multiplicator
Insert Into crsvanztemp(id_articol,Pret,proc_tvav,id_jtva_coloana,cantitate,discount_unitar,id_gestiune,Cont,pret_cu_tva,;
serie,codmat,id_valuta,Curs,multiplicator,pret_achizitie,pretd,id_valuta_d,id_rul_aux,taxcode) ;
SELECT a.id_articol,Iif(!INLIST(gnTipGest,6,7), a.pretvval, Round(a.pretvval* proc_tva, gnPVal)),a.proc_tvav,;
a.id_jtva_coloana,;
a.cante As cantitate,a.discunitar As discount_unitar,a.id_gestiune,;
a.Cont, m.lnPretCuTva As pret_cu_tva,Nvl(a.serie,Space(100)) As serie,Nvl(a.codmat,Space(50)) As codmat,;
CAST(Nvl(a.id_valuta_vanz,0) as N(5)) As id_valuta, CAST(Nvl(b.Curs,0) as N(18,6)) As Curs,;
CAST(NVL(b.multiplicator,1) as N(10)) as multiplicator,;
a.Pret As pret_achizitie,a.pretd,CAST(Nvl(a.id_valuta,0) as N(5)) As id_valuta_d,a.id_rul_aux, a.taxcode ;
From rul_temp a left join crscursuri b on NVL(a.id_valuta_vanz,0) = b.id_valuta
Use In crscursuri
Select crsvanztemp
poDate.Curs = Curs
poDate.multiplicator = multiplicator
If !INLIST(gnTipGest,6,7)
Calculate Sum(Round(Pret*cantitate,gnPVal)),Sum(Round(Round(Pret*cantitate,gnPVal)*(proc_tvav-1),gnPVal)) ;
To poDate.totftvaconv,poDate.tottvaconv
poDate.totftvaconv = Round(poDate.totftvaconv*poDate.Curs/poDate.multiplicator,gnPc)
poDate.tottvaconv = Round(poDate.tottvaconv*poDate.Curs/poDate.multiplicator,gnPc)
poDate.totctvaconv = poDate.totftvaconv+poDate.tottvaconv
Else
Calculate Sum(Round(Pret*cantitate,gnPVal)),Sum(Round(Round(Pret*cantitate,gnPVal)*(proc_tvav-1)/proc_tvav,gnPVal)) ;
To poDate.totctvaconv,poDate.tottvaconv
poDate.totctvaconv = Round(poDate.totctvaconv*poDate.Curs/poDate.multiplicator,gnPc)
poDate.tottvaconv = Round(poDate.totcvaconv*poDate.Curs/poDate.multiplicator,gnPc)
poDate.totftvaconv = poDate.totctvaconv - poDate.tottvaconv
Endif
Else
*!* poDate.tip = -6 retur
*!* modificare ROAFACTURARE v 2.0.56 : am adaugat pretd, id_valutad
Insert Into crsvanztemp(id_articol,Pret,proc_tvav,id_jtva_coloana,cantitate,discount_unitar,id_gestiune,Cont,pret_cu_tva,;
serie,codmat,id_valuta,Curs,multiplicator,pret_achizitie,pretd,id_valuta_d,id_rul_aux,taxcode) ;
SELECT id_articol,Iif(!INLIST(gnTipGest,6,7), pretv, pretv+tvav) As Pret,proc_tvav,id_jtva_coloana,cante As cantitate,;
discunitar As discount_unitar,Iif(poDate.tip <> -6, id_gestiune, id_gestiunec) As id_gestiune,;
cont, m.lnPretCuTva As pret_cu_tva,Nvl(serie,Space(100)) As serie,Nvl(codmat,Space(50)) As codmat,;
0 As id_valuta,0 As Curs,1 as multiplicator,Pret,pretd,CAST(Nvl(id_valuta,0) as N(5)) As id_valuta_d,id_rul_aux,taxcode From rul_temp Where cante <> 0
Endif
Do Case
Case poDate.tip = -10
Select Distinct dataireg,id_fdoc,dataact,datascad,nract,id_partc As id_part,nume_val,id_valuta,id_lucrare ;
From ACTACTAN ;
WHERE Alltrim(scd) = '6582' And Alltrim(scc) = '401' ;
Into Cursor crstemp
Case poDate.tip = -9
Select Distinct dataireg,id_fdoc,dataact,datascad,nract,id_partc As id_part,nume_val,id_valuta,id_lucrare ;
From ACTACTAN ;
WHERE Alltrim(scd) = '623' And Alltrim(scc) = '401' ;
Into Cursor crstemp
Case poDate.tip = -6
Select Distinct dataireg,id_fdoc,dataact,datascad,nract,id_gestin As id_part,nume_val,id_valuta,id_lucrare ;
From ACTACTAN ;
Where Alltrim(scc) = '371' ;
Into Cursor crstemp
*!* modificare ROAGEST v 2.0.46 : am inlocuit id_gestout cu id_gestin
*!* modificare ROAGEST v 2.0.51
Case poDate.tip = -7
Select Distinct dataireg,id_fdoc,dataact,datascad,nract,id_partd As id_part,nume_val,id_valuta,id_lucrare ;
From ACTACTAN ;
Where id_partd <> 0 And scd = '418' ;
Into Cursor crstemp
*!* modificare ROAGEST v 2.0.51 ^
*!* modificare ROAFACTURARE v 2.0.96
CASE poDate.tip = -13
Select Distinct dataireg,id_fdoc,dataact,datascad,nract,id_partd As id_part,nume_val,id_valuta,id_lucrare ;
From ACTACTAN ;
Where id_partd <> 0 And scd = '357' ;
Into Cursor crstemp
*!* modificare ROAFACTURARE v 2.0.96 ^
Otherwise
Select Distinct dataireg,id_fdoc,dataact,datascad,nract,id_partd As id_part,nume_val,id_valuta,id_lucrare ;
From ACTACTAN ;
Where id_partd <> 0 And scd = '4111' ;
Into Cursor crstemp
Endcase
Select crstemp
poDate.dataireg = dataireg
poDate.id_fdoc = id_fdoc
poDate.dataact = dataact
poDate.datascad = datascad
poDate.nract = nract
poDate.id_client = id_part
poDate.nume_valuta = nume_val
poDate.id_valuta = id_valuta
poDate.id_lucrare = id_lucrare
poDate.id_sectie = poAct.id_sectie
poDate.tva_incasare = poAct.tva_incasare && modificare ROAGEST v 2.2.0
Use In crstemp
*!*
Private ofrmdatesupl
*!* modificare ROAFACTURARE v 2.0.80 : creeaza cursor
poDate.dataora_exp = Get_Ora() && modificare ROAFACTURARE v 2.0.80
ofrmdatesupl = Createobject("frm_alte_date")
ofrmdatesupl.Show(1)
Release ofrmdatesupl
If gnButon = 2
lnSucces = -1
Else
lnSucces = SQLSetprop(gnhandle,"Transactions",2)
If lnSucces >= 0
*!* modificare ROAFACTURARE v 2.0.29
*!* lcSql = [BEGIN ] + gcS + [.pack_facturare.initializeaza_date_factura(?poDate.dataireg,?poDate.id_fdoc,?poDate.dataact,] + ;
*!* [?poDate.datascad,?poDate.serie_act,?poDate.nract,?poDate.id_client,?poDate.id_lucrare,NULL,NULL,NULL,?ALLTRIM(poDate.descriere),] + ;
*!* [?poDate.Tip,?poDate.id_set,?poDate.zi_curs,?poDate.id_valuta,?poDate.in_valuta,?gnIdSucursala,?gnIdUtil); END;]
lcSql = [begin ] + gcS +[.pack_facturare.initializeaza_date_factura(] + ;
[to_date('] + Alltrim(Dtoc(poDate.dataireg,2)) + [','YYYYMMDD'),] + ;
Nvl(Alltrim(Str(poDate.id_fdoc)),[NULL]) + [,to_date('] + Alltrim(Dtoc(poDate.dataact,2)) + [','YYYYMMDD'),] + ;
[to_date('] + Alltrim(Dtoc(poDate.datascad,2)) + [','YYYYMMDD'),'] + Nvl(poDate.serie_act,[]) + [',] + ;
Alltrim(Str(poDate.nract,14,0)) + [,] + ;
Iif(Isnull(poDate.id_client),[NULL],Alltrim(Str(poDate.id_client))) + [,] + ;
Iif(Isnull(poDate.id_lucrare),[NULL],Alltrim(Str(poDate.id_lucrare))) + [,] + ;
Iif(Isnull(poDate.id_sectie),[NULL],Alltrim(Str(poDate.id_sectie))) + [,] + ;
Iif(Isnull(poDate.id_venchelt),[NULL],Alltrim(Str(poDate.id_venchelt))) + [,] + ;
Iif(Isnull(poDate.id_responsabil),[NULL],Alltrim(Str(poDate.id_responsabil))) + [,] + ;
IIF(EMPTY(nvl(poDate.explicatia4,[])),[NULL],['] + STRTRAN(ALLTRIM(poDate.explicatia4),['],['']) + [']) + [,] + ; && modificare ROAFACTURARE v 2.0.97
[NULL,NULL,] + ;
['] + Strtran(Alltrim(Nvl(poDate.descriere,[])),['],['']) + [',] + ;
Alltrim(Str(poDate.tip)) + [,] + Alltrim(Str(poDate.id_set)) + [,] + ;
[to_date('] + Dtoc(poDate.zi_curs,2) + [','YYYYMMDD'),] + Alltrim(Str(poDate.id_valuta)) + [,] + ;
Alltrim(Str(poDate.in_valuta)) + [,] + ;
alltrim(str(poDate.tva_incasare)) + [,] + ; && modificare ROAGEST v 2.2.0
Iif(Isnull(gnIdSucursala),[NULL],Alltrim(Str(gnIdSucursala))) + [,] + ;
Alltrim(Str(gnIdUtil)) + [); end;]
*!* modificare ROAFACTURARE v 2.0.29 ^
lnSucces = goExecutor.oexecute(lcSql)
If lnSucces < 0
amessagebox(goExecutor.oPrelucrareEroare(),16,"Eroare")
ELSE
Private poArticol
Select crsvanztemp
Scan
Scatter Name poArticol Memo
*!* modificare ROAFACTURARE v 2.0.29
*!* lcSql = [BEGIN ] + gcS + [.pack_facturare.adauga_articol_factura_stoc(?poArticol.id_articol,?ALLTRIM(poArticol.serie),] + ;
*!* [?poArticol.pret_achizitie,?poArticol.pret,] + ;
*!* Iif(poDate.in_valuta=1,[?poArticol.id_valuta],[NULL]) + [,] + ;
*!* [?poArticol.curs,?poArticol.proc_tvav,?poArticol.cantitate,?poArticol.discount_unitar,?poArticol.id_gestiune,] + ;
*!* [?ALLTRIM(poArticol.Cont),?poArticol.pret_cu_tva); END;]
*!* modificare ROAFACTURARE v 2.0.56 : am adaugat pretd, id_valuta
lcSql = [begin ] + gcS + [.pack_facturare.adauga_articol_factura_stoc(] + ;
Alltrim(Str(poArticol.id_articol)) + [,] + ;
['] + Strtran(Alltrim(Nvl(poArticol.serie,[])),['],['']) + [',] + ;
Alltrim(Str(poArticol.pret_achizitie,18,gnPPret)) + [,] + ;
Alltrim(Str(poArticol.pretd,18,gnPPretVal)) + [,] + ;
Alltrim(Str(poArticol.id_valuta_d)) + [,] + ;
Alltrim(Str(poArticol.Pret,18,Iif(poDate.in_valuta = 1,gnPVal,gnPPretV))) + [,] + ;
Iif(poDate.in_valuta=1,Alltrim(Str(poArticol.id_valuta)),[NULL]) + [,] + ;
Alltrim(Str(poArticol.Curs,18,6)) + [,] + ;
Alltrim(Str(poArticol.multiplicator)) + [,] + ;
Alltrim(Str(poArticol.proc_tvav,18,2)) + [,] + ;
Alltrim(Str(poArticol.id_jtva_coloana)) + [,] + ;
Alltrim(Str(poArticol.cantitate,18,gnPCant)) + [,] + ;
Alltrim(Str(poArticol.discount_unitar,18,Iif(poDate.in_valuta = 1,gnPVal,gnPPretV))) + [,] + ;
Alltrim(Str(poArticol.id_gestiune)) + [,] + ;
['] + Alltrim(Nvl(poArticol.Cont,'')) + [',] + ;
Alltrim(Str(poArticol.pret_cu_tva)) + [,null,]+ ;
NVL(Alltrim(Str(poArticol.id_rul_aux)),[null])+ [,] + ;
IIF(EMPTY(NVL(poArticol.taxcode, '')), [null], Alltrim(Str(poArticol.taxcode)))+ [,] + ;
['] + Strtran(Alltrim(Nvl(poArticol.lot,[])),['],['']) + ['] + ;
[); end;]
*!* modificare ROAFACTURARE v 2.0.29 ^
lnSucces = goExecutor.oexecute(lcSql)
if lnSucces < 0
amessagebox(goExecutor.oPrelucrareEroare(),16,"Eroare")
Exit
Endif
Endscan
If !Used('INFISIERE')
lcCaleDateMenu = gcAppPath+[\COMUN\DATEMENU\]
Use &lcCaleDateMenu.INFISIERE In 0 Alias INFISIERE
Endif
*!* modificare ROAFACTURARE v 2.0.44
If lnSucces >= 0
*!* modificare ROAFACTURARE v 2.0.44 ^
lnSucces = oscrie_in_fisiere(0,.F.,.T.) && ?
If lnSucces >= 0
*!* modificare ROAFACTURARE v 2.0.29
*!* lcSql = [BEGIN ] + gcS + [.pack_facturare.scrie_in_vanzari(0,?poDate.id_delegat,?poDate.id_masina,] + ;
*!* [?poDate.id_agent,?poDate.text_aditional); END;]
*!* modificare ROAFACTURARE v 2.0.58 : am adaugat poDate.nid_vanzare
*!* modificare ROAFACTURARE v 2.0.80 : am adaugat poDate.dataora_exp
lcSql = [begin ] + gcS + [.pack_facturare.scrie_in_vanzari(0,] + ;
IIF(Isnull(poDate.id_delegat),[NULL],Alltrim(Str(poDate.id_delegat))) + [,] + ;
IIF(Isnull(poDate.id_masina),[NULL],Alltrim(Str(poDate.id_masina))) + [,] + ;
IIF(Isnull(poDate.id_facturare),[NULL],Alltrim(Str(poDate.id_facturare))) + [,] + ;
IIF(Isnull(poDate.nListareDetaliata),[0],Alltrim(Str(poDate.nListareDetaliata))) + [,] + ;
[?poDate.dataora_exp,] + ;
IIF(Isnull(poDate.id_agent),[NULL],Alltrim(Str(poDate.id_agent))) + [,] + ;
['] + Strtran(Alltrim(Nvl(poDate.text_aditional,[])),['],['']) + [',?@poDate.nid_vanzare); end;]
*!* modificare ROAFACTURARE v 2.0.29 ^
lnSucces = goExecutor.oexecute(lcSql)
If lnSucces < 0
amessagebox(goExecutor.oPrelucrareEroare(),16,"Eroare")
ELSE
lcSql = [update vanzari set id_fact = pack_contafin.get_idFact() where id_vanzare = ?poDate.nid_vanzare]
llSucces = goExecutor.oexecuta(lcSql)
lnSucces = IIF(m.llSucces, 1, -1)
ENDIF
Endif
*!* modificare ROAFACTURARE v 2.0.44
Endif
*!* modificare ROAFACTURARE v 2.0.44 ^
Endif
Endif
If lnSucces < 0
amessagebox(goExecutor.oPrelucrareEroare(),16,"Eroare")
lcSql = "ROLLBACK"
Else
lcSql = "COMMIT"
Endif
lnSucces2 = goExecutor.oexecute(lcSql)
Do Case
Case lnSucces2 < 0
amessagebox(lcSql + Chr(13) + goExecutor.cEroare,0+16,"Eroare")
Case lnSucces2 >=0 And lcSql = "COMMIT"
SELECT crsvanztemp
listeaza_ofacturare_stoc()
Endcase
lnSucces2 = SQLSetprop(gnhandle,"Transactions",1)
If lnSucces2 < 0
amessagebox('Programul nu a reusit sa treaca pe tranzactie automata. Iesiti din program si intrati din nou!',48,'Atentie!')
Endif
Endif
If Used('crsvanztemp')
Use In crsvanztemp
Endif
If Used('crsfactura')
Use In crsfactura
Endif
Return lnSucces
Endfunc
******************************************** SFARSIT: oscrie_vanzare_din_stoc *********************************
******************************************* INCEPUT: relisteaza_ofacturare_stoc ********************************************
Procedure relisteaza_ofacturare_stoc
Lparameters tnNrAct, tcSerie, tnTip
Private pnCod, poDate, pnNrAct, pcSerie
*!* modificare v 2.0.67
*!* PRIVATE pnTipFacturare
*!* pnTipFacturare = 0
*!* modificare v 2.0.67 ^
pnNrAct = tnNrAct
If !Inlist(tnTip ,-9,-10)
pcSerie = Iif(Empty(Nvl(tcSerie,'')),[+_],Alltrim(tcSerie))
Else
pcSerie = Nvl(tcSerie,[+_])
Endif
lcSql = [Select distinct cod,datascad,dataact from act ] + ;
[where an = ?gnAn and luna = ?gnLuna and sters = 0 and nract = ?pnNrAct and Nvl(serie_act,'+_') LIKE '%]+Alltrim(pcSerie)+[%' ]
Do Case
Case tnTip = 1
lcSql = lcSql + [ and scd = '418']
Case tnTip = -6 && aviz de retur de la o gestiune valorica
lcSql = lcSql + [ and scc = '371']
Case tnTip = -10
lcSql = lcSql + [ and scd = '6582' and scc = '401' ]
Case tnTip = -9
lcSql = lcSql + [ and scd = '623' and scc = '401' ]
Otherwise
lcSql = lcSql + [ and scd = '4111']
Endcase
lcSql = lcSql + [ and sters = 0] + gcCondSucursala + [ order by datascad desc]
lcCursor=[crsact]
lnSucces = goExecutor.oexecute(lcSql,lcCursor)
If lnSucces < 0
amessagebox(goExecutor.cEroare,0+16,"Eroare")
Return
Endif
If Reccount(lcCursor) > 0
Select (lcCursor)
pnCod = cod
poDate=Createobject("oDateFactura",0,0)
poDate.nract = pnNrAct
poDate.serie_act = pcSerie
poDate.dataact = Iif(Type('dataact')='T',Ttod(dataact),dataact)
poDate.datascad = Iif(Type('datascad')='T',Ttod(datascad),datascad)
Use In (lcCursor)
lcSql = [select id_vanzare,id_comanda,dataora,dataora_exp,data_act,sters,dataoras,numar_act,serie_act,]+;
[tip,id_part,discount,disc_fara_tva,discount_evidentiat,text_aditional,facturat,data_facturat,]+;
[explicatie,altele,client,cod,utilizator,utils,utilfact,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,id_delegat,id_agent,id_masina,valoarea,]+;
[nume_gestiune,id_sectie,sectie,id_lucrare,lucrare,tip_incasare,afisare_scadenta,tva_incasare from fact_vfacturi where cod = ] + ALLTRIM(STR(pnCod))
lnSucces = goExecutor.oexecute(lcSql,[crsfacturi])
If lnSucces < 0
amessagebox(goExecutor.cEroare,0+16,"Eroare")
Return
Endif
Select crsfacturi
poDate.nRelistare = 1 && modificare ROAFACTURARE v 2.0.58
poDate.nid_vanzare = id_vanzare
poDate.tip = tip
poDate.discount_evidentiat = discount_evidentiat
poDate.text_aditional = Nvl(text_aditional,[])
poDate.nrinmat = nrinmat
poDate.nume_delegat = delegat
poDate.bidelegat = bidelegat
poDate.cnpdelegat = cnpdelegat
poDate.dataora_exp = dataora_exp && modificare ROAFACTURARE v 2.0.80
poDate.afisare_scadenta = afisare_scadenta && modificare ROACONTRACTE v 2.0.38
*!* modificare ROAFACTURARE v 2.0.68
*!* poDate.listaid = Iif(poDate.tip = 2,Alltrim(Str(id_ctr)),Iif(poDate.tip = 3,Alltrim(Str(id_comanda)), [0]))
poDate.listaid = Iif(poDate.tip = 3,Alltrim(Str(id_comanda)), [0])
*!* modificare ROAFACTURARE v 2.0.68 ^
poDate.ntip_incasare = tip_incasare && modificare ROAFACTURARE v 2.0.84
poDate.serie_chit = NVL(serie_chit,[]) && modificare ROAFACTURARE v 2.0.80
poDate.nr_incasare = nr_incasare
poDate.incasat = incasat
poDate.tva_incasare = tva_incasare && modificare ROAGEST v 2.2.0
IF tnTip = -6 && aviz de retur de la o gestiune valorica
IF tnTip <> poDate.tip
amessagebox("Nu exista " + Iif(tnTip = 1,[avizul],[factura]) + " cu acest numar in luna curenta!",48,"Atentie")
USE IN crsFacturi
RELEASE podate
RETURN
ENDIF
poDate.id_client = id_gestiune
ELSE
poDate.id_client = id_part
ENDIF
poDate.nume_client = client
poDate.in_valuta = in_valuta
If poDate.in_valuta = 1
poDate.nume_valuta = nume_val
poDate.Curs = Curs
poDate.multiplicator = multiplicator
poDate.totftvaconv = total_fara_tva
poDate.tottvaconv = total_tva
poDate.totctvaconv = poDate.totftvaconv + poDate.tottvaconv
lnDiscountVal = discount
lnDiscount = Round(lnDiscountVal * poDate.Curs / poDate.multiplicator,gnPPretV)
Else
lnDiscount = discount
lnDiscountVal = 0
Endif
Use In crsfacturi
*!* modificare ROAFACTURARE v 2.0.46
*!* *!* v 2.0.18 roagest (codmat)
*!* lcSql = [select explicatie,codmat,denumire,cantitate,proc_tvav,um,pret_cu_tva,pret,discount_unitar,serie,pret_val,nume_val,] + ;
*!* [discount_unitar_val,curs,codbare from fact_vfacturi_detalii where id_vanzare = ?pnIdVanzare]
*!* *!* v 2.0.18 roagest ^
*!* modificare ROAFACTURARE v 2.0.56 : am adaugat id_temp
*!* modificare ROAFACTURARE v 2.0.68 : am adaugat id_ctr,numar_contract,id_valuta,tip_valuta,curs,nume_val
lcSql = [select * from fact_vfacturi_detalii where id_vanzare = ] + ALLTRIM(STR(poDate.nid_vanzare))
*!* modificare ROAFACTURARE v 2.0.46 ^
lnSucces = goExecutor.oexecute(lcSql,[crsdetalii])
If lnSucces < 0
amessagebox(goExecutor.cEroare,0+16,"Eroare")
Return
Endif
*!* v 2.0.18 roagest (codmat, total cu tva, total tva, total fara tva = diferenta)
Select crsdetalii
Calculate Max(proc_tvav) To lnProcTvav
*!* Select explicatie,codmat,denumire,Nvl(serie,'') As serie,Nvl(cantitate,1) As cantitate,proc_tvav,Nvl(um,'') As um, ;
*!* IIF(pret_cu_tva = 0,;
*!* Round(Pret,gnPc),;
*!* Round(Round(Pret,gnPc)/proc_tvav,gnPc)) As pretftva,;
*!* IIF(pret_cu_tva = 0,;
*!* Round(Round(Pret,gnPc)*Nvl(cantitate,1),gnPc),;
*!* ROUND(Round(Round(Pret,gnPc)/proc_tvav,gnPc)*Nvl(cantitate,1),gnPc)) As valftva,;
*!* IIF(pret_cu_tva = 0,;
*!* Round(Round(Round(Pret,gnPc)*Nvl(cantitate,1),gnPc)*(proc_tvav-1),gnPc),;
*!* ROUND(Round(Pret,gnPc)*Nvl(cantitate,1),gnPc)-;
*!* Round(Round(Round(Pret,gnPc)/proc_tvav,gnPc)*Nvl(cantitate,1),gnPc)) As valtva,;
*!* IIF(pret_cu_tva = 0,;
*!* Round(discount_unitar,gnPc),;
*!* Round(Round(discount_unitar,gnPc)/proc_tvav,gnPc)) As discountftva,;
*!* IIF(pret_cu_tva = 0,;
*!* Round(Round(discount_unitar,gnPc)*Nvl(cantitate,1),gnPc),;
*!* ROUND(Round(Round(discount_unitar,gnPc)/proc_tvav,gnPc)*Nvl(cantitate,1),gnPc)) As valdiscountftva,;
*!* IIF(pret_cu_tva = 0,;
*!* ROUND(Round(Round(discount_unitar,gnPc)*Nvl(cantitate,1),gnPc)*(proc_tvav-1),gnPc),;
*!* ROUND(Round(discount_unitar,gnPc)*Nvl(cantitate,1),gnPc)-;
*!* Round(Round(Round(discount_unitar,gnPc)/proc_tvav,gnPc)*Nvl(cantitate,1),gnPc)) As valdiscounttva,;
*!* IIF(pret_cu_tva = 0,;
*!* Round((Round(Pret,gnPc)-Round(discount_unitar,gnPc))*Nvl(cantitate,1),gnPc),;
*!* ROUND(Round((Round(Pret,gnPc)-Round(discount_unitar,gnPc))/proc_tvav,gnPc)*Nvl(cantitate,1),gnPc)) As valdiminuatftva,;
*!* IIF(pret_cu_tva = 0,;
*!* Round(Round((Round(Pret,gnPc)-Round(discount_unitar,gnPc))*Nvl(cantitate,1),gnPc)*(proc_tvav-1),gnPc),;
*!* ROUND((Round(Pret,gnPc)-Round(discount_unitar,gnPc))*Nvl(cantitate,1),gnPc)-;
*!* Round(Round((Round(Pret,gnPc)-Round(discount_unitar,gnPc))/proc_tvav,gnPc)*Nvl(cantitate,1),gnPc)) As valdiminuattva,;
*!* IIF(pret_cu_tva = 0,;
*!* Round(pret_val,gnPVal),;
*!* Round(Round(pret_val,gnPVal)/proc_tvav,gnPVal)) As vpretftva,;
*!* IIF(pret_cu_tva = 0,;
*!* Round(Round(pret_val,gnPVal)*Nvl(cantitate,1),gnPVal),;
*!* ROUND(Round(Round(pret_val,gnPVal)/proc_tvav,gnPVal)*Nvl(cantitate,1),gnPVal)) As vvalftva,;
*!* IIF(pret_cu_tva = 0,;
*!* Round(Round(Round(pret_val,gnPVal)*Nvl(cantitate,1),gnPVal)*(proc_tvav-1),gnPVal),;
*!* ROUND(Round(pret_val,gnPVal)*Nvl(cantitate,1),gnPVal)-;
*!* Round(Round(Round(pret_val,gnPVal)/proc_tvav,gnPVal)*Nvl(cantitate,1),gnPVal)) As vvaltva,;
*!* IIF(pret_cu_tva = 0,;
*!* Round(discount_unitar_val,gnPc),;
*!* Round(Round(discount_unitar_val,gnPc)/proc_tvav,gnPc)) As vdiscountftva,;
*!* IIF(pret_cu_tva = 0,;
*!* Round(Round(discount_unitar_val,gnPc)*Nvl(cantitate,1),gnPc),;
*!* ROUND(Round(Round(discount_unitar_val,gnPc)/proc_tvav,gnPc)*Nvl(cantitate,1),gnPc)) As vvaldiscountftva,;
*!* IIF(pret_cu_tva = 0,;
*!* ROUND(Round(Round(discount_unitar_val,gnPc)*Nvl(cantitate,1),gnPc)*(proc_tvav-1),gnPc),;
*!* ROUND(Round(discount_unitar_val,gnPc)*Nvl(cantitate,1),gnPc)-;
*!* Round(Round(Round(discount_unitar_val,gnPc)/proc_tvav,gnPc)*Nvl(cantitate,1),gnPc)) As vvaldiscounttva,;
*!* IIF(pret_cu_tva = 0,;
*!* Round((Round(Pret_val,gnPc)-Round(discount_unitar_val,gnPc))*Nvl(cantitate,1),gnPc),;
*!* ROUND(Round((Round(Pret_val,gnPc)-Round(discount_unitar_val,gnPc))/proc_tvav,gnPc)*Nvl(cantitate,1),gnPc)) As vvaldiminuatftva,;
*!* IIF(pret_cu_tva = 0,;
*!* Round(Round((Round(Pret_val,gnPc)-Round(discount_unitar_val,gnPc))*Nvl(cantitate,1),gnPc)*(proc_tvav-1),gnPc),;
*!* ROUND((Round(Pret_val,gnPc)-Round(discount_unitar_val,gnPc))*Nvl(cantitate,1),gnPc)-;
*!* Round(Round((Round(Pret_val,gnPc)-Round(discount_unitar_val,gnPc))/proc_tvav,gnPc)*Nvl(cantitate,1),gnPc)) As vvaldiminuattva ;
*!* From crsdetalii Into Cursor crsfactura Readwrite
*!* modificare ROAFACTURARE v 2.0.77
*!* *!* modificare ROAFACTURARE v 2.0.56 : am adaugat id_temp
*!* Select id_temp,explicatie,Nvl(codmat,Space(50)) As codmat,Nvl(codmatf,Space(50)) As codmatf,Nvl(codbare,Space(50)) As codbare,;
*!* Iif(Nvl(id_gestiune,0)<>0,1,0) As gestionabil,denumire,Nvl(serie,Space(100)) As serie,Nvl(cantitate,1) As cantitate,;
*!* proc_tvav,id_jtva_coloana,Nvl(um,Space(10)) As um,pret_cu_tva As cu_tva,;
*!* Iif(pret_cu_tva = 1,Round(Pret,gnPc),Round(Pret,gnPc)+Round(Round(Pret,gnPc)*(proc_tvav-1),gnPc)) As pretctva,;
*!* Iif(pret_cu_tva = 1,Round(discount_unitar,gnPc),0) As discountctva,;
*!* Iif(pret_cu_tva = 1,Round(Round(Pret,gnPc)*Nvl(cantitate,1),gnPc),Round(Round(Pret,gnPc)*Nvl(cantitate,1),gnPc)+;
*!* Round(Round(Round(Pret,gnPc)*Nvl(cantitate,1),gnPc)*(proc_tvav-1),gnPc)) As valctva,;
*!* Iif(pret_cu_tva = 1,Round(Round(discount_unitar,gnPc)*Nvl(cantitate,1),gnPc),;
*!* ROUND((Round(discount_unitar,gnPc)-Round(Round(discount_unitar,gnPc)*(proc_tvav-1),gnPc))*Nvl(cantitate,1),gnPc)) As valdiscountctva,;
*!* IIF(pret_cu_tva = 1,;
*!* ROUND((Round(Pret,gnPc)-Round(discount_unitar,gnPc))*Nvl(cantitate,1),gnPc),;
*!* ROUND((Round(Pret,gnPc)+Round(Round(Pret,gnPc)*(proc_tvav-1),gnPc)-Round(discount_unitar,gnPc)-Round(Round(discount_unitar,gnPc)*(proc_tvav-1),gnPc))*Nvl(cantitate,1),gnPc)) As valdiminuatctva,;
*!* IIF(pret_cu_tva = 0,;
*!* Round(Pret,gnPc),;
*!* Round(Round(Pret,gnPc)/proc_tvav,gnPc)) As pretftva,;
*!* IIF(pret_cu_tva = 0,;
*!* Round(Round(Pret,gnPc)*Nvl(cantitate,1),gnPc),;
*!* ROUND(Round(Pret,gnPc)*Nvl(cantitate,1),gnPc) - ;
*!* Round(Round(Round(Pret,gnPc)*Nvl(cantitate,1),gnPc)*(proc_tvav-1)/proc_tvav, gnPc)) As valftva,;
*!* IIF(pret_cu_tva = 0,;
*!* Round(Round(Round(Pret,gnPc)*Nvl(cantitate,1),gnPc)*(proc_tvav-1),gnPc),;
*!* Round(Round(Round(Pret,gnPc)*Nvl(cantitate,1),gnPc)*(proc_tvav-1)/proc_tvav, gnPc)) As valtva,;
*!* IIF(pret_cu_tva = 0,;
*!* Round(discount_unitar,gnPc),;
*!* Round(Round(discount_unitar,gnPc)/proc_tvav,gnPc)) As discountftva,;
*!* IIF(pret_cu_tva = 0,;
*!* Round(Round(discount_unitar,gnPc)*Nvl(cantitate,1),gnPc),;
*!* ROUND(Round(discount_unitar,gnPc)*Nvl(cantitate,1),gnPc) - ;
*!* Round(Round(Round(discount_unitar,gnPc)*Nvl(cantitate,1),gnPc)*(proc_tvav-1)/proc_tvav, gnPc)) As valdiscountftva,;
*!* IIF(pret_cu_tva = 0,;
*!* ROUND(Round(Round(discount_unitar,gnPc)*Nvl(cantitate,1),gnPc)*(proc_tvav-1),gnPc),;
*!* Round(Round(Round(discount_unitar,gnPc)*Nvl(cantitate,1),gnPc)*(proc_tvav-1)/proc_tvav, gnPc)) As valdiscounttva,;
*!* IIF(pret_cu_tva = 0,;
*!* Round((Round(Pret,gnPc)-Round(discount_unitar,gnPc))*Nvl(cantitate,1),gnPc),;
*!* ROUND((Round(Pret,gnPc)-Round(discount_unitar,gnPc))*Nvl(cantitate,1),gnPc) - ;
*!* Round(Round((Round(Pret,gnPc)-Round(discount_unitar,gnPc))*Nvl(cantitate,1),gnPc)*(proc_tvav-1)/proc_tvav, gnPc)) As valdiminuatftva,;
*!* IIF(pret_cu_tva = 0,;
*!* Round(Round((Round(Pret,gnPc)-Round(discount_unitar,gnPc))*Nvl(cantitate,1),gnPc)*(proc_tvav-1),gnPc),;
*!* Round(Round((Round(Pret,gnPc)-Round(discount_unitar,gnPc))*Nvl(cantitate,1),gnPc)*(proc_tvav-1)/proc_tvav, gnPc)) As valdiminuattva,;
*!* IIF(pret_cu_tva = 0,;
*!* Round(pret_val,gnPVal),;
*!* Round(Round(pret_val,gnPVal)/proc_tvav,gnPVal)) As vpretftva,;
*!* IIF(pret_cu_tva = 0,;
*!* Round(Round(pret_val,gnPVal)*Nvl(cantitate,1),gnPVal),;
*!* ROUND(Round(pret_val,gnPVal)*Nvl(cantitate,1),gnPVal) - ;
*!* Round(Round(Round(pret_val,gnPVal)*Nvl(cantitate,1),gnPVal)*(proc_tvav-1)/proc_tvav, gnPVal)) As vvalftva,;
*!* IIF(pret_cu_tva = 0,;
*!* Round(Round(Round(pret_val,gnPVal)*Nvl(cantitate,1),gnPVal)*(proc_tvav-1),gnPVal),;
*!* Round(Round(Round(pret_val,gnPVal)*Nvl(cantitate,1),gnPVal)*(proc_tvav-1)/proc_tvav, gnPVal)) As vvaltva,;
*!* IIF(pret_cu_tva = 0,;
*!* Round(discount_unitar_val,gnPVal),;
*!* Round(Round(discount_unitar_val,gnPVal)/proc_tvav,gnPVal)) As vdiscountftva,;
*!* IIF(pret_cu_tva = 0,;
*!* Round(Round(discount_unitar_val,gnPVal)*Nvl(cantitate,1),gnPVal),;
*!* ROUND(Round(discount_unitar_val,gnPVal)*Nvl(cantitate,1),gnPVal) - ;
*!* Round(Round(Round(discount_unitar_val,gnPVal)*Nvl(cantitate,1),gnPVal)*(proc_tvav-1)/proc_tvav, gnPVal)) As vvaldiscountftva,;
*!* IIF(pret_cu_tva = 0,;
*!* ROUND(Round(Round(discount_unitar_val,gnPVal)*Nvl(cantitate,1),gnPVal)*(proc_tvav-1),gnPVal),;
*!* Round(Round(Round(discount_unitar_val,gnPVal)*Nvl(cantitate,1),gnPVal)*(proc_tvav-1)/proc_tvav, gnPVal)) As vvaldiscounttva,;
*!* IIF(pret_cu_tva = 0,;
*!* Round((Round(pret_val,gnPVal)-Round(discount_unitar_val,gnPVal))*Nvl(cantitate,1),gnPVal),;
*!* ROUND((Round(pret_val,gnPVal)-Round(discount_unitar_val,gnPVal))*Nvl(cantitate,1),gnPVal) - ;
*!* Round(Round((Round(pret_val,gnPVal)-Round(discount_unitar_val,gnPVal))*Nvl(cantitate,1), gnPVal)*(proc_tvav-1)/proc_tvav, gnPVal)) As vvaldiminuatftva,;
*!* IIF(pret_cu_tva = 0,;
*!* Round(Round((Round(pret_val,gnPVal)-Round(discount_unitar_val,gnPVal))*Nvl(cantitate,1),gnPVal)*(proc_tvav-1),gnPVal),;
*!* Round(Round((Round(pret_val,gnPVal)-Round(discount_unitar_val,gnPVal))*Nvl(cantitate,1), gnPVal)*(proc_tvav-1)/proc_tvav, gnPVal)) As vvaldiminuattva, ;
*!* id_ctr,numar_contract,id_valuta,tip_valuta,NVL(curs,1.000) as curs,nume_val ; && modificare ROAFACTURARE v 2.0.68
*!* From crsdetalii Into Cursor crsfactura Readwrite
*!* *!* v 2.0.18 roagest ^
*!* If lnDiscount<> 0
*!* Select crsfactura
*!* *!* modificare ROAFACTURARE v 2.0.56
*!* *!* Calculate Sum(valdiminuatftva),Sum(vvaldiminuatftva) To lnTotalBaza,lnTotalBazaVal
*!* Calculate Sum(valdiminuatftva),Sum(vvaldiminuatftva),Max(id_temp) To lnTotalBaza,lnTotalBazaVal,lnIdTemp
*!* *!* modificare ROAFACTURARE v 2.0.56 ^
*!* Select crsfactura
*!* Append Blank
*!* *!* modificare ROAFACTURARE v 2.0.56 : am adaugat id_temp
*!* Replace denumire With Replicate('Z',20),cantitate With 1,;
*!* pretftva With lnTotalBaza,discountftva With lnDiscount,valdiscountftva With lnDiscount,;
*!* valdiscounttva With Round(lnDiscount * (lnProcTvav - 1),gnPc),;
*!* vpretftva With lnTotalBazaVal,vdiscountftva With lnDiscountVal,vvaldiscountftva With lnDiscountVal,;
*!* vvaldiscounttva With Round(lnDiscountVal * (lnProcTvav - 1),gnPc),;
*!* proc_tvav With lnProcTvav,id_temp With lnIdTemp + 1
*!* Endif
creeaza_facturacrs([crsfactura])
prelucreaza_facturacrs([crsdetalii],[crsfactura],lnProcTvav,lnDiscount,lnDiscountVal)
Use In crsdetalii
*!* modificare ROAFACTURARE v 2.0.77 ^
listeaza_ofacturare_stoc()
If Used('crsfactura')
Use In crsfactura
Endif
Release poDate
Else
amessagebox("Nu exista " + Iif(tnTip = 1,[avizul],[factura]) + " cu acest numar in luna curenta!",48,"Atentie")
Endif
Endproc && relisteaza_ofacturare_stoc
******************************************* SFARSIT: relisteaza_ofacturare_stoc ********************************************
******************************************** INCEPUT: listeaza_ofacturare_stoc *********************************************
Procedure listeaza_ofacturare_stoc
*!* modificare ROAFACTURARE v 2.0.77
*!* Local loArticol
*!* Private poClient,ptDataOra,pcExplicatieContract,pnTotalPozitii
*!* ************************************************
*!* ** Date client, responsabil facturare si firma
*!* ************************************************
*!* Do Case
*!* Case poDate.tip = 30
*!* lcSql = [select 1 as tip,Nvl(c.denumire,a.nume_gestiune) as denumire,a.cgest as cod_fiscal,] + ;
*!* [Nvl(c.adresa,'') as adresa,'' as telefon,'' as fax,] + ;
*!* ['' as reg_comert,'' as banca,'' as cont_banca,] + ;
*!* ['' as banca2,'' as cont_banca2,'' as banca3,'' as cont_banca3,] + ;
*!* [sysdate as dataora,1 as tip_persoana,0 as capital_soc_var,] + ;
*!* [0 as capital_soc_sub from ] + gcS + [.nom_gestiuni a ] + ;
*!* [left join ] + gcS + [.asociere_parteneri_gestiuni b on a.id_gestiune = b.id_gestiune ] + ;
*!* [left join ] + gcS + [.nom_parteneri c on b.id_part = c.id_part ] + ;
*!* [where a.id_gestiune = ?poDateGestiuneDest.id_gestiune ] + ;
*!* [union all ] + ;
*!* [select 2 as tip,denumire,cod_fiscal,'' as adresa,'' as telefon,'' as fax,'' as reg_comert,'' as banca,] + ;
*!* ['' as cont_banca,] + ;
*!* ['' as banca2,'' as cont_banca2,'' as banca3,'' as cont_banca3,] + ;
*!* [null as dataora,tip_persoana,0 as capital_soc_var,0 as capital_soc_sub ] + ;
*!* [from ] + gcS + [.nom_parteneri where sters = 0 and inactiv = 0 and id_part in ] + ;
*!* [(select id_partener from ] + gcS + [.utilizatori_rol_intern where sters = 0 and id_util = ?gnIdUtil)] + ;
*!* [union all ] + ;
*!* [select 3 as tip,antet as denumire,cod_fiscal,adresa,telefon,fax,reg_comert,] + ;
*!* [banca1 as banca,cont_banca1 as cont_banca,] + ;
*!* [banca2,cont_banca2,banca3,cont_banca3,] + ;
*!* [null as dataora,0 as tip_persoana,capital_soc_var,capital_soc_sub ] + ;
*!* [from syn_nom_firme where id_firma = ?gnIdFirma]
*!* Case Inlist(poDate.tip , -6) && RETUR AVIZ DIN GESTIUNE VALORICA (ROAGEST)
*!* lcSql = [select 1 as tip,Nvl(c.denumire,a.nume_gestiune) as denumire,a.cgest as cod_fiscal,] + ;
*!* [Nvl(c.adresa,'') as adresa,'' as telefon,'' as fax,] + ;
*!* ['' as reg_comert,'' as banca,'' as cont_banca,] + ;
*!* ['' as banca2,'' as cont_banca2,'' as banca3,'' as cont_banca3,] + ;
*!* [sysdate as dataora,1 as tip_persoana,0 as capital_soc_var,] + ;
*!* [0 as capital_soc_sub from ] + gcS + [.nom_gestiuni a ] + ;
*!* [left join ] + gcS + [.asociere_parteneri_gestiuni b on a.id_gestiune = b.id_gestiune ] + ;
*!* [left join ] + gcS + [.nom_parteneri c on b.id_part = c.id_part ] + ;
*!* [where a.id_gestiune = ?poDate.id_client ] + ;
*!* [union all ] + ;
*!* [select 2 as tip,denumire,cod_fiscal,'' as adresa,'' as telefon,'' as fax,'' as reg_comert,'' as banca,] + ;
*!* ['' as cont_banca,] + ;
*!* ['' as banca2,'' as cont_banca2,'' as banca3,'' as cont_banca3,] + ;
*!* [null as dataora,tip_persoana,0 as capital_soc_var,0 as capital_soc_sub ] + ;
*!* [from ] + gcS + [.nom_parteneri where sters = 0 and inactiv = 0 and id_part in ] + ;
*!* [(select id_partener from ] + gcS + [.utilizatori_rol_intern where sters = 0 and id_util = ?gnIdUtil)] + ;
*!* [union all ] + ;
*!* [select 3 as tip,antet as denumire,cod_fiscal,adresa,telefon,fax,reg_comert,] + ;
*!* [banca1 as banca,cont_banca1 as cont_banca,] + ;
*!* [banca2,cont_banca2,banca3,cont_banca3,] + ;
*!* [null as dataora,0 as tip_persoana,capital_soc_var,capital_soc_sub ] + ;
*!* [from syn_nom_firme where id_firma = ?gnIdFirma]
*!* Otherwise
*!* lcSql = [select 1 as tip,(case when tip_persoana = 1 then prefix||' '||denumire||' '||sufix else denumire end) as denumire,]+;
*!* [cod_fiscal,adresa,telefon,'' as fax,reg_comert,banca,cont_banca,] + ;
*!* ['' as banca2,'' as cont_banca2,'' as banca3,'' as cont_banca3,] + ;
*!* [sysdate as dataora,tip_persoana,0 as capital_soc_var,] + ;
*!* [0 as capital_soc_sub from ] + gcS + [.vnom_parteneri where id_part = ?poDate.id_client ] + ;
*!* [union all ] + ;
*!* [select 2 as tip,denumire,cod_fiscal,'' as adresa,'' as telefon,'' as fax,reg_comert,'' as banca,'' as cont_banca,] + ;
*!* ['' as banca2,'' as cont_banca2,'' as banca3,'' as cont_banca3,] + ;
*!* [null as dataora,tip_persoana,0 as capital_soc_var,0 as capital_soc_sub from ] + gcS + [.nom_parteneri ] + ;
*!* [where sters = 0 and inactiv = 0 and id_part in ] + ;
*!* [(select id_partener from ] + gcS + [.utilizatori_rol_intern where sters = 0 and id_util = ?gnIdUtil)] + ;
*!* [union all ] + ;
*!* [select 3 as tip,antet as denumire,cod_fiscal,adresa,telefon,fax,reg_comert,banca1 as banca,] + ;
*!* [cont_banca1 as cont_banca,] + ;
*!* [banca2,cont_banca2,banca3,cont_banca3,] + ;
*!* [null as dataora,0 as tip_persoana,capital_soc_var,capital_soc_sub ] + ;
*!* [from syn_nom_firme where id_firma = ?gnIdFirma ]
*!* Endcase
*!* If Used('crsdatefacturare')
*!* Use In crsdatefacturare
*!* Endif
*!* lcCursor = [crsdatefacturare]
*!* lnSucces = goExecutor.oexecute(lcSql,lcCursor)
*!* If lnSucces<0
*!* amessagebox(goExecutor.oPrelucrareEroare(),16,"Eroare")
*!* Return
*!* Endif
*!* Select crsdatefacturare
*!* Scan
*!* Do Case
*!* Case tip= 1
*!* Scatter Name poClient Memo
*!* ptDataOra = poClient.dataora
*!* Case tip = 2
*!* With poDate
*!* .nume_responsabil = denumire
*!* .BIresp = reg_comert
*!* .CNPresp = cod_fiscal
*!* Endwith
*!* Otherwise
*!* Scatter Name poFirma Memo
*!* Endcase
*!* Endscan
*!* Use In crsdatefacturare
*!* ************************************************
*!* *!* modificare ROAFACTURARE v 2.0.46
*!* *!* pcExplicatieContract = []
*!* ************************************************
*!* AddProperty(poClient,'denumireClient',[])
*!* *!* AddProperty(poClient,'gestiune',[])
*!* AddProperty(poFirma,'b_swift',[])
*!* AddProperty(poFirma,'b_adresa',[])
*!* AddProperty(poFirma,'b_swift2',[])
*!* AddProperty(poFirma,'b_adresa2',[])
*!* AddProperty(poFirma,'b_swift3',[])
*!* AddProperty(poFirma,'b_adresa3',[])
*!* ************************************************
*!* pcExplicatieContract = []
*!* *!* modificare ROAFACTURARE v 2.0.58
*!* If poDate.nRelistare = 0
*!* poDate.nSalveazaAtasamente = Nvl(citeste_optiune_firma([ATASAMENTEFACT]),0)
*!* Endif
*!* *!* modificare ROAFACTURARE v 2.0.58 ^
*!* alege_optiuni_listare_facturare()
*!* If glAlegeBanca
*!* alege_banci_facturare()
*!* Endif
*!* *!* modificare ROAFACTURARE v 2.0.46 ^
*!* Select crsfactura
*!* Calculate Max(Round(Nvl(proc_tvav,1),2)) To poDate.proc_tva
*!* poDate.proc_tva = poDate.proc_tva*100-100
*!* *!* modificare v 2.0.67 ^
*!* *!* prelucreaza_factura(poDate.discount_evidentiat,pnTipFacturare,poDate.in_valuta,gnPretListSubunitati) && ofacturare_comun.prg
*!* prelucreaza_factura([crsfactura],[crsfacturaset],[crsfacturafinala],poDate.discount_evidentiat,poDate.in_valuta,gnPretListSubunitati)
*!* *!* modificare v 2.0.67 ^
*!* *!* modificare ROAFACTURARE v 2.0.46
*!* *!* Local loExport
*!* *!* loExport = Createobject("oExportConfig")
*!* *!* lnVizualizare = Iif(Type('gnVizualFact')='N',gnVizualFact,1)
*!* *!* modificare ROAFACTURARE v 2.0.46 ^
*!* lcSetare = [FACTURA]
*!* lnVizualizare = Iif(Type('gnVizualFact')='N',gnVizualFact,1)
*!* *!* 30 transfer catre subunitati pe baza de NIR
*!* *!* -6 intrare din gestiune valorica mf la pv - aviz expeditie
*!* Do Case
*!* Case Inlist(poDate.tip, 30, -6,-9)
*!* If Nvl(gnPretListSubunitati,2)=2
*!* lcRaport = [AVIZ_TRANSFER]
*!* Else
*!* lcRaport = [AVIZ_TRANSFER_CTVA]
*!* Endif
*!* lcSetare = [AVIZ]
*!* lcExplicatieRaport = [avizul de transfer]
*!* *!* modificare ROAFACTURARE v 2.0.46
*!* *!* lnVizualizare = Iif(Type('gnVizualAviz')='N',gnVizualAviz,1)
*!* lcSetareVizualizare = [PREVIZAVIZ]
*!* *!* modificare ROAFACTURARE v 2.0.46 ^
*!* Case Inlist(poDate.tip,-10)
*!* Select crsfacturafinala
*!* *!* REPLACE ALL pretctva WITH pretftva,valctva WITH valftva
*!* If Nvl(gnPretListSubunitati,2)=2
*!* lcRaport = [AVIZ_TRANSFER]
*!* Else
*!* lcRaport = [AVIZ_TRANSFER_CTVA]
*!* Endif
*!* lcSetare = [AVIZ_TRANSFER]
*!* lcExplicatieRaport = [avizul de transfer]
*!* *!* modificare ROAFACTURARE v 2.0.46
*!* *!* lnVizualizare = Iif(Type('gnVizualAviz')='N',gnVizualAviz,1)
*!* lcSetareVizualizare = [PREVIZAVIZ]
*!* *!* modificare ROAFACTURARE v 2.0.46 ^
*!* Case poDate.tip = -7
*!* lcRaport = [AVIZ]
*!* lcSetare = [AVIZ]
*!* lcExplicatieRaport = [avizul]
*!* lnVizualizare = Iif(Type('gnVizualAviz')='N',gnVizualAviz,1)
*!* lcSetareVizualizare = [PREVIZAVIZ]
*!* Otherwise
*!* lcExplicatieRaport = [factura]
*!* Do Case
*!* Case gnFormatFactura = 1 && format A4
*!* lcRaport = [FACTURA]
*!* Case gnFormatFactura = 2 && format A5
*!* lcRaport = [FACTURA_A5]
*!* Case gnFormatFactura = 3
*!* If optiuni_format_listare(0) = 2
*!* lcRaport = [FACTURA_A5]
*!* Else
*!* lcRaport = [FACTURA]
*!* Endif
*!* Endcase
*!* *!* modificare ROAFACTURARE v 2.0.46
*!* lcSetareVizualizare = [PREVIZFACT]
*!* *!* modificare ROAFACTURARE v 2.0.46 ^
*!* Endcase
*!* If poDate.in_valuta = 1
*!* *!* modificare ROAFACTURARE v 2.0.46
*!* poDate.text_aditional_invoice = poDate.text_aditional
*!* *!* modificare ROAFACTURARE v 2.0.46 ^
*!* poDate.text_aditional = Iif(!Empty(Nvl(poDate.text_aditional,[])),poDate.text_aditional+Chr(13)+Chr(10),[])+;
*!* [Curs valutar = ]+Alltrim(Str(poDate.Curs,14,4))+[ RON / ] + Alltrim(poDate.nume_valuta)
*!* Endif
*!* If poDate.incasat <> 0
*!* poDate.text_aditional = Iif(!Empty(Nvl(poDate.text_aditional,[])),poDate.text_aditional+Chr(13)+Chr(10),[])+;
*!* [ Achitat cu numerar cu chitanta nr. ] + Alltrim(Str(poDate.nr_incasare)) + [ din ] + Dtoc(poDate.dataact)
*!* Endif
*!* Select crsfacturafinala
*!* Calculate Cnt() To pnTotalPozitii For cantitate <> 0
*!* Go Top
*!* *!* modificare ROAFACTURARE v 2.0.58
*!* If poDate.nRelistare = 0 And poDate.eProforma = 0 And poDate.nSalveazaAtasamente = 1
*!* goExport.export2pdf('crsfacturafinala', lcRaport,.F.,poDate.cDocAtasate)
*!* Endif
*!* *!* modificare ROAFACTURARE v 2.0.58 ^
*!* lnRaspuns=6
*!* Do While lnRaspuns=6
*!* *!* modificare ROAFACTURARE v 2.0.46
*!* goExport.export2frx('crsfacturafinala',lcRaport,.F.,lcSetareVizualizare,lcSetare)
*!* *!* loExport.listareUserReport('crsfacturafinala','FRX',lcRaport,lnVizualizare,lcSetare)
*!* *!* modificare ROAFACTURARE v 2.0.46
*!* lnRaspuns=amessagebox("Doriti sa mai listati "+lcExplicatieRaport+"?",4+32+256,"Confirmare repetare listare")
*!* Enddo
*!* If poDate.in_valuta = 1
*!* *!* modificare ROAFACTURARE v 2.0.56
*!* *!* lcRaportVal = lcRaport + [_VAL]
*!* *!* poDate.text_aditional = Strtran(poDate.text_aditional,[Curs valutar =],[Exchange rate =])
*!* lcRaportVal = Strtran(lcRaport,[FACTURA],[INVOICE])
*!* *!* modificare ROAFACTURARE v 2.0.56 ^
*!* Select crsfacturafinalaval
*!* Calculate Cnt() To pnTotalPozitii For cantitate <> 0
*!* Go Top
*!* *!* modificare ROAFACTURARE v 2.0.58
*!* If poDate.nRelistare = 0 And poDate.eProforma = 0 And poDate.nSalveazaAtasamente = 1
*!* goExport.export2pdf('crsfacturafinalaval', lcRaportVal,.F.,poDate.cDocAtasate)
*!* Endif
*!* *!* modificare ROAFACTURARE v 2.0.58 ^
*!* lnRaspuns=6
*!* Do While lnRaspuns=6
*!* *!* modificare ROAFACTURARE v 2.0.46
*!* goExport.export2frx('crsfacturafinalaval',lcRaportVal,.F.,lcSetareVizualizare,lcSetare)
*!* *!* loExport.listareUserReport('crsfacturafinalaval','FRX',lcRaportVal,lnVizualizare,lcSetare)
*!* *!* modificare ROAFACTURARE v 2.0.46 ^
*!* lnRaspuns=amessagebox("Doriti sa mai listati factura in valuta?",4+32+256,"Confirmare repetare listare")
*!* Enddo
*!* Use In crsfacturafinalaval
*!* Endif
*!* *!* modificare ROAFACTURARE v 2.0.46
*!* If poDate.listare_lista_livrare = 1
*!* *!* modificare v 2.0.67
*!* *!* prelucreaza_lista_livrare(pnTipFacturare)
*!* prelucreaza_lista_livrare()
*!* *!* modificare v 2.0.67 ^
*!* If Reccount('crslistalivrare') > 0
*!* goExport.export2frx('crslistalivrare','lista_livrare')
*!* Else
*!* amessagebox("Nu exista inregistrari pentru lista de livrare!",48,"Atentie")
*!* Endif
*!* Use In crslistalivrare
*!* Endif
*!* *!* Release loExport
*!* *!* modificare ROAFACTURARE v 2.0.46 ^
*!* *!* modificare ROAFACTURARE v 2.0.58
listeaza_ofacturare()
If poDate.nRelistare = 0 And poDate.eProforma = 0 And poDate.nSalveazaAtasamente = 1
*!* poDate.scrieAtasamente()
lnSucces2 = goExecutor.oexecute([COMMIT])
Endif
*!* *!* modificare ROAFACTURARE v 2.0.58 ^
*!* modificare ROAFACTURARE v 2.0.77 ^
Endproc
******************************************** SFARSIT: listeaza_ofacturare_stoc **********************************************
Procedure completeaza_facturacrs
Lparameters tcCursor
Local lnPretCuTva
lnPretCuTva = Iif(Inlist(gnTipGest , 6,7), 1, 0)
If !Inlist(gnTipGest,6,7)
Insert Into (tcCursor) (id_temp,denumire,serie,cantitate,cu_tva,pretftva,pretctva,;
valftva,valtva,valctva,discountftva,discountctva,valdiscountftva,;
valdiscounttva, valdiscountctva, valdiminuatftva, valdiminuattva, valdiminuatctva, proc_tvav,id_jtva_coloana,um,codmat,codbare,;
vpretftva,vvalftva,vvaltva,vdiscountftva,vvaldiscountftva,vvaldiscounttva,;
vvaldiminuatftva,vvaldiminuattva,vvaldiminuatctva,gestionabil,id_rul_aux,explicatie,lot) ;
Select Recno() As id_temp,denumire, Nvl(serie,Space(100)) As serie, cante As cantitate,m.lnPretCuTva As cu_tva,;
Round(pretv,gnPPretV) As pretftva,;
Round(pretv,gnPPretV) + Round(Round(pretv,gnPPretV) * (proc_tvav-1),gnPPretV) As pretctva,;
Round(Round(pretv,gnPPretV)*cante,gnPc) As valftva,;
ROUND(Round(pretv*cante,gnPc)*(proc_tvav-1),gnPc) As valtva, ;
Round(Round(pretv,gnPPretV)*cante,gnPc) + Round(Round(pretv*cante,gnPc)*(proc_tvav-1),gnPc) As valctva, ;
ROUND(discunitar,gnPPretV) As discountftva,;
ROUND(discunitar,gnPPretV)+Round(Round(discunitar,gnPPretV)*(proc_tvav-1),gnPPretV) As discountctva,;
Round(Round(discunitar,gnPPretV)*cante,gnPc) As valdiscountftva, ;
ROUND(Round(discunitar*cante,gnPc)*(proc_tvav-1),gnPc) As valdiscounttva, ;
Round(Round(discunitar,gnPPretV)*cante,gnPc) + Round(Round(discunitar*cante,gnPc)*(proc_tvav-1),gnPc) As valdiscountctva,;
Round(Round(pretv-discunitar,gnPPretV)*cante,gnPc) As valdiminuatftva,;
ROUND(Round((pretv-discunitar)*cante,gnPc)*(proc_tvav-1),gnPc) As valdiminuattva,;
ROUND(Round(Round(pretv-discunitar,gnPPretV)*cante,gnPc)*proc_tvav,gnPc) As valdiminuatctva,;
proc_tvav,id_jtva_coloana, Nvl(um,Space(50)) As um, Nvl(codmat,Space(50)) As codmat, Nvl(codbare,Space(50)) As codbare,;
Round(pretvval,gnPVal) As vpretftva,;
ROUND(Round(pretvval,gnPVal)*cante,gnPVal) As vvalftva,;
ROUND(Round(Round(pretvval,gnPVal)*cante,gnPc)*(proc_tvav-1),gnPVal) As vvaltva,;
0 As vdiscountftva,0 As vvaldiscountftva,0 As vvaldiscounttva,;
Round(Round(pretvval-0,gnPVal)*cante,gnPVal) As vvaldiminuatftva,;
ROUND(Round((pretvval-0)*cante,gnPVal)*(proc_tvav-1),gnPVal) As vvaldiminuattva,;
ROUND(Round(Round(pretvval-0,gnPVal)*cante,gnPVal)*proc_tvav,gnPVal) As vvaldiminuatctva,;
1 As gestionabil,id_rul_aux,IIF(EMPTY(NVL(FIELD('explicatie',"rul_temp"),'')),'',explicatie), Nvl(lot,Space(20)) As lot From rul_temp Where cante <> 0
Else
Insert Into (tcCursor) (id_temp,denumire,serie,cantitate,cu_tva,pretftva,pretctva,;
valftva,valtva,valctva,discountftva,discountctva,valdiscountftva,;
valdiscounttva, valdiscountctva, valdiminuatftva, valdiminuattva, valdiminuatctva, proc_tvav,id_jtva_coloana,um,codmat,codbare,;
vpretftva,vvalftva,vvaltva,vdiscountftva,vvaldiscountftva,vvaldiscounttva,;
vvaldiminuatftva,vvaldiminuattva,vvaldiminuatctva,gestionabil,id_rul_aux,explicatie,lot) ;
Select Recno() As id_temp,denumire, Nvl(serie,Space(100)) As serie, cante As cantitate,m.lnPretCuTva As cu_tva,;
Round(pretv,gnPPretV) As pretftva,;
Round(pretv+tvav,gnPPretV) As pretctva,;
Round(Round((pretv+tvav),gnPPretV)*cante,gnPc) - Round(Round((pretv+tvav)*cante,gnPc)*(proc_tvav-1)/proc_tvav,gnPc) As valftva, ;
Round(Round((pretv+tvav)*cante,gnPc)*(proc_tvav-1)/proc_tvav,gnPc) As valtva, ;
Round(Round((pretv+tvav),gnPPretV)*cante,gnPc) As valctva, ;
Round(Round(discunitar,gnPPretV)/proc_tvav,gnPPretV) As discountftva,;
ROUND(discunitar,gnPPretV) As discountctva, ;
ROUND(Round(discunitar,gnPPretV)*Nvl(cante,1),gnPc) - Round(Round(Round(discunitar,gnPPretV)*Nvl(cante,1),gnPc)*(proc_tvav-1)/proc_tvav, gnPc) As valdiscountftva,;
Round(Round(Round(discunitar,gnPPretV)*Nvl(cante,1),gnPc)*(proc_tvav-1)/proc_tvav, gnPc) As valdiscounttva,;
Round(Round(discunitar,gnPPretV)*cante,gnPc) As valdiscountctva, ;
ROUND((Round((pretv+tvav),gnPPretV)-Round(discunitar,gnPPretV))*Nvl(cante,1),gnPc) - ;
Round(Round((Round((pretv+tvav),gnPPretV)-Round(discunitar,gnPPretV))*Nvl(cante,1),gnPc)*(proc_tvav-1)/proc_tvav, gnPc) As valdiminuatftva,;
Round(Round((Round((pretv+tvav),gnPPretV)-Round(discunitar,gnPPretV))*Nvl(cante,1),gnPc)*(proc_tvav-1)/proc_tvav, gnPc) As valdiminuattva, ;
Round((Round((pretv+tvav),gnPPretV)-Round(discunitar,gnPPretV))*Nvl(cante,1),gnPc) As valdiminuatctva, ;
proc_tvav,id_jtva_coloana, Nvl(um,Space(50)) As um,Nvl(codmat,Space(50)) As codmat, Nvl(codbare,Space(50)) As codbare, Round(pretvval,gnPVal) As vpretftva,;
ROUND(Round(pretvval,gnPVal)*cante,gnPVal) As vvalftva,;
ROUND(Round(Round(pretvval,gnPVal)*cante,gnPVal)*(proc_tvav-1),gnPVal) As vvaltva,;
0 As vdiscountftva,0 As vvaldiscountftva,0 As vvaldiscounttva,;
Round(Round(pretvval-0,gnPVal)*cante,gnPVal) As vvaldiminuatftva,;
ROUND(Round((pretvval-0)*cante,gnPVal)*(proc_tvav-1),gnPVal) As vvaldiminuattva,;
ROUND(Round(Round(pretvval-0,gnPVal)*cante,gnPVal)*proc_tvav,gnPVal) As vvaldiminuatctva,;
1 As gestionabil,id_rul_aux,IIF(EMPTY(NVL(FIELD('explicatie',"rul_temp"),'')),'',explicatie), Nvl(lot,Space(20)) As lot From rul_temp Where cante <> 0
*!* v 2.0.52
*!* nu am discount la vanzare - si era formula gresita - trebuia sa plece de la pretv+tvav
*!* Round(Round(pretv-discunitar,gnPc)*cante,gnPc) As valdiminuatftva,;
*!* ROUND(Round((pretv-discunitar)*cante,gnPc)*(proc_tvav-1),gnPc) As valdiminuattva,;
*!* ROUND(Round(Round(pretv-discunitar,gnPc)*cante,gnPc)*proc_tvav,gnPc) As valdiminuatctva,
*!* v 2.0.52 ^
Endif
Endproc
*******************************************************************************************************************************
PROCEDURE recalculeaza_cursuri
LPARAMETERS tcCursorCursuri
SELECT (tcCursorCursuri)
SCAN
ENDSCAN
ENDPROC
*******************************************************************************************************************************
FUNCTION IdSet2TipFacturare
LPARAMETERS tnIdSet
LOCAL lnTip
lnTip = -1
Do Case
Case Inlist(tnIdSet,73,222,223,224)
lnTip = -1
Case Inlist(tnIdSet,79,83,206,225,271,272)
lnTip = -2
Case Inlist(tnIdSet,61,62,63,102,103,226,227)
lnTip = -3
Case Inlist(tnIdSet,64,65)
lnTip = -4
Case Inlist(tnIdSet,236,240,241,242,255,256)
&& 236 intrare din gestiune valorica - aviz expeditie, 240 + inregistrare cantitativ in chiosc
&& 241 = 236, 242 = 240 pe pagina marfa la pret de achizitie
lnTip = -6
Case INLIST(tnIdSet, 238,260) && aviz de retur - valoric
lnTip = -7
Case INLIST(tnIdSet , 239,259) && factura de retur - valorica
lnTip = -8
Case INLIST(tnIdSet, 243,261,233, 270) && Protocol cu TVA; 270 protocol marfa la pret de vanzare
lnTip = -9
Case INLIST(tnIdSet, 244,262) && Sponsorizare
lnTip = -10
Case InList(tnIdSet,252,258) && Marfa la pret de achizitie *
lnTip = -11
CASE tnIdSet = 267 && aviz de retur - marfa in custodie
lnTip = -13
Otherwise
lnTip = -5
ENDCASE
RETURN m.lnTip
ENDFUNC && IdSet2TipFacturare