Files
roacont/Programe/orap_terti.prg

2409 lines
91 KiB
Plaintext

*!* 30.12.2010
*!* marius.mutu
*!* viz_frm_facturi - export xls + goExport.export2frx foxypreview
*!* 15.07.2011
*!* marius.mutu
*!* parteneri_cu_sold_final - facea raportul doar pentru contul 4111
*!* 27.06.2013
*!* marius.mutu
*!* sold_fact_pe_vechimi
*!* la sold facturi pe vechimi 4111 fata de data emitere am acelasi raport ca la ALTII/ACTIV
*!* 16.10.2020
*!* marius.mutu
*!* viz_frm_facturi - redirectionez catre orap_terti_comun.prg
*_________________________________________________________*
* *
* proceduri utilizate pentru generarea rapoartelor din: *
* Terti->Furnizori *
* ->Clienti *
* ->Alti *
*_________________________________________________________*
* PROCEDURE viz_frm_facturi( tntip )
* Date : 19/11/2004, 14:36:36
* author : lavinia.viziru
* description:
****** PARAMETER BLOCK **************
* Parameters : 1
* Parameter 1:
*
******************************************* INCEPUT:viz_frm_facturi *******************************************
Procedure viz_frm_facturi_old
Parameters tntip, tccont
DO viz_frm_facturi IN orap_terti_comun.prg WITH tntip, tccont
RETURN
Local lcFileXLS
lcFileXLS = ""
Private pocauta, pnlunai, pnani, pnlunaf, pnanf, pccont, plemise, pcperioada, pctitlu, pcpartener
Store '' To pocauta, pcperioada, pctitlu, pcpartener
Store 0 To pnlunai, pnani, pnlunaf, pnanf
plemise = Iif(tntip = 2, .T., .F.)
plActiv = .T.
pccont = Iif(!Empty(tccont), tccont, [])
If !Empty(pccont)
pcexec = [select NVL(fel_cont,0) as fel_cont from ] + gcs + [.vcoresp_tip_cont where cont=?pcCont]
pcCursor = [felCont_cursor]
pnsucces = goExecutor.oExecute(pcexec, pcCursor)
If pnsucces > 0 And _Tally > 0
Select felCont_cursor
Locate
plActiv = Iif(felCont_cursor.fel_cont = 0, .T., .F.)
Use In felCont_cursor
Endif
Endif
gnButon = 1
Do While gnButon = 1
ofrm = Createobject('frm_facturi')
With ofrm
.lcCont = pccont
.lcContInitial = pccont
.llActiv = plActiv
.clb_tx_simplu1.text_simplu1.Value = pccont
.lb_titlu_alb_b121.Caption = [Facturi ] + Iif(!Empty(pccont), pccont, [])
.opt_perioada.Value = tntip
.lhide = .T.
Endwith
ofrm.Show(1)
pccont = ofrm.lcCont
plemise = Iif(ofrm.opt_perioada.Value = 1, .F., .T.)
pnIdPart = ofrm.lnIdPart
plActiv = ofrm.llActiv
pnani = ofrm.Caut_anluna1.nan
pnanf = ofrm.Caut_anluna2.nan
pnlunai = ofrm.Caut_anluna1.nluna
pnlunaf = ofrm.Caut_anluna2.nluna
pnCuAnalitic = ofrm.ncu_analitic
pcAnalitic = ofrm.lcAcont
pnCuValuta = ofrm.ncu_valuta
pnIdValuta = ofrm.lnIdValuta
pnCuVechime = ofrm.ncu_vechime
pcValuta = ofrm.txt_valuta.Value
ofrm.Release
If gnButon = 1
pcperioada = [Perioada: ] + Alltrim(Str(pnlunai)) + [/] + Alltrim(Str(pnani)) + ;
[ - ] + Alltrim(Str(pnlunaf)) + [/] + Alltrim(Str(pnanf))
lcCursor = situatie_facturi(Alltrim(pccont), plActiv, plemise, pnIdPart, pnani, pnlunai, pnanf, pnlunaf, pnCuAnalitic, pcAnalitic, pnCuValuta, pnIdValuta, pnCuVechime)
Do Case
Case Empty(lcCursor)
amessagebox("Nu a fost generata selectia pentru listare!", 0 + 48, "Atentie")
Case Reccount(lcCursor) = 0
amessagebox("Nu exista inregistrari pentru listare!", 0 + 48, "Atentie")
Use In (lcCursor)
Otherwise
Do Case
Case Alltrim(pccont) = [401]
pcpartener = [Furnizor: ]
lcTitlu = [Situatia facturilor de cumparari]
Case Alltrim(pccont) = [4111]
pcpartener = [Client: ]
lcTitlu = [Situatia facturilor de vanzari]
Otherwise && pccont = [411]
pcpartener = [Partener: ]
lcTitlu = [Situatia facturilor]
Endcase
If pnCuVechime = 0
lcRaport = [rap_facturi]
Else
lcRaport = [rap_facturi_vechime]
Endif
If pnCuAnalitic = 0
pcGrupAcont = [EOF()]
Else
pcGrupAcont = [acont]
Endif
If !Empty(pnIdValuta)
lcTitlu = lcTitlu + Chr(13) + [Valuta ] + Alltrim(pcValuta)
Endif
pctitlu = lcTitlu
*!* pctitlu = ceretitlu_rap('Titlul Raportului',lctitlu)
*!* pcDataOra = Get_Ora(2)
*!* Select (lcCursor)
*!* Report Form &lcRaport To Printer Prompt Preview
*!* 30.12.2010
*!* goExport.export2frx(lcCursor,lcRaport,.T.)
goExport.export2frx(lcCursor, lcRaport, .T., , , , , .T.)
If Messagebox('Doriti sa exportati in XLS?', 4 + 32, _Screen.Caption) = 6
lcFileXLS = Putfile("Salvati fisierul XLS", "Facturi.xls", "xls")
If !Empty(lcFileXLS)
Select (lcCursor)
Copy To (lcFileXLS) Type Xl5
open_default_app(lcFileXLS)
Endif
Endif
*!* 30.12.2010 ^
Use In (lcCursor)
Endcase
Endif
Enddo
Endproc
****************************************** SFARSIT: viz_frm_facturi ****************************
* PROCEDURE situatie_facturi
* Date : 10/04/2006, 16:10:03
* author : georgiana.voicu
* description: preluare facturi pentru conturi cu inregistrari
****** PARAMETER BLOCK **************
* Parameters : 3
* Parameter 1: tlemise
* Description: tipul facturilor preluate
* (.t.-facturi emise intr-o perioada determinata
* .f.-facturi cu sold dintr-o perioada determinata)
* Parameter 2: tccont
* Description: contul partenerului(411-client, 401- furnizor)
* Parameter 3: topartener
* Description: obiectul care contine datele partenerului(client/furnizor) selectat:nume + id_part
* (daca numele partenerului=<TOATE INREGISTRARILE> atunci se iau in considerare
* toti partenerii- clienti sau furnizori)
* Parameter 4,5,6,7 : perioada
******************************************* INCEPUT:situatie_facturi *******************************************
Procedure situatie_facturi_old
Parameters tccont, tlActiv, tlemise, tnIdPart, tnAnI, tnLunaI, tnAnF, tnLunaF, tnCuAnalitic, tcAnalitic, tnCuValuta, tnIdValuta, tnCuVechime
Private lnrlunii, lnrlunif, lnNrPrimaL
lnnrlunii = tnLunaI + 12 * tnAnI
lnnrlunif = tnLunaF + 12 * tnAnF
*!* IF tlemise
lnNrPrimaL = lnnrlunii
*!* ELSE
*!* lnNrPrimaL = lnnrlunii -1
*!* ENDIF
If tnIdPart = 0
lcCondId_part = [1=1]
Else
lcCondId_part = [id_part = ] + Alltrim(Str(tnIdPart))
Endif
lcSql = [select * from ] + gcs + [.exceptii_ireg where invers = 1 and debit = ] + Iif(tlActiv, [1], [0]) + ;
[ and cont = ] + tccont
lcCursor = [ex_debit]
lnSucces = goExecutor.oExecute(lcSql, lcCursor)
lcExceptii = [-1]
If lnSucces > 0
Select ex_debit
Scan
lcExceptii = lcExceptii + ',' + Alltrim(cont_c)
Endscan
Use In ex_debit
Endif
If !tlActiv && - furnizori
lcTotctva = Iif(tnCuValuta = 0, [credit + preccred], [valcredit + precvalcred])
*!* modificare v 2.0.46
lcTotctvaPrec = Iif(tnCuValuta = 0, [preccred], [precvalcred]) && am nevoie pentru calcularea soldului prec.
*!* modificare v 2.0.46 ^
lcSoldPrec = Iif(tnCuValuta = 0, [preccred - precdeb], [precvalcred - precvaldeb])
*lcAchitat = [debit + precdeb]
lcAchitat = Iif(tnCuValuta = 0, [precdeb], [precvaldeb])
lcPereche = [pereched]
lcIdPereche = [id_factd]
lcPartener = [partd]
lcIdPartener = [id_partd]
lcContIncPl = [scd]
lcAcontIncPl = [ascd]
lcCondExclud = [(to_number(scc) not in (] + lcExceptii + [))]
Else && - clienti
lcTotctva = Iif(tnCuValuta = 0, [debit + precdeb], [valdebit + precvaldeb])
*!* modificare v 2.0.46
lcTotctvaPrec = Iif(tnCuValuta = 0, [precdeb], [precvaldeb])
*!* modificare v 2.0.46 ^
lcSoldPrec = Iif(tnCuValuta = 0, [precdeb - preccred], [precvaldeb - precvalcred])
*lcAchitat = [credit + preccred]
lcAchitat = Iif(tnCuValuta = 0, [preccred], [precvalcred])
lcPereche = [perechec]
lcIdPereche = [id_factc]
lcPartener = [partc]
lcIdPartener = [id_partc]
lcContIncPl = [scc]
lcAcontIncPl = [ascc]
lcCondExclud = [(to_number(scd) not in (] + lcExceptii + [))]
Endif
lcCondPerioada = [((luna + 12*an) between ?lnNrPrimaL and ?lnnrlunif)]
lcCondData = [(to_number(to_char(dataireg,'MM'),'99') + 12*to_number(to_char(dataireg,'YYYY'),'9999'))]
lcCondPrimaLuna = [(luna + 12*an = ?lnNrPrimaL)]
If tnCuAnalitic = 1
lcCondAnalitic = Iif(!Empty(tcAnalitic), [acont = ?tcAnalitic], [1=1])
Else
lcCondAnalitic = [1=1]
Endif
If tnCuValuta = 1
lcCondvaluta = Iif(!Empty(tnIdValuta), [id_valuta = ?tnIdValuta], [id_valuta<>0])
Else
lcCondvaluta = [1=1]
Endif
pcExplicatie = [Din Precedent]
*!* lcSelect = [select an, luna, id_fact, id_part, nume, acont, dataact, nract,] + lcTotctva + [ as totctva,?pcExplicatie as fdoc,] + ;
*!* IIF(tlemise,[0],[(case when ] + lcCondPrimaLuna +[ then ] + lcAchitat + [ else 0 end)]) + [ as achitat] + ;
*!* [ from ] + gcS + [.vireg_parteneri ] + ;
*!* [where cont = ?tccont and ] + lcCondId_part + [ and ] + lcCondPerioada + ;
*!* [ and (luna + 12*an =] + IIF(tlemise,lcCondData,[(case when ] + lcCondPrimaLuna +;
*!* [ then luna + 12*an else ] + lcCondData + [ end)]) + [)] + ;
*!* [ order by an, luna, nume, dataact, nract]
lcSelect = [select an, luna, id_fact, id_part, nume, cod_fiscal, ] + Iif(tnCuAnalitic = 1, [acont], ['xxxx']) + [ as acont, dataact, serie_act, nract,] + Iif(tnCuValuta = 1, [id_valuta,nume_val,], []) + ;
[(case when precdeb <> 0 or preccred <> 0 then 1 else 0 end) as precedent,SUM(] + lcTotctva + [) as totctva,?pcExplicatie as fdoc,] + ;
[Sum(] + lcTotctvaPrec + [) as totctvaprec,] + ; && modificare v 2.0.46
[SUM(] + Iif(tlemise, [0], [(case when ] + lcCondPrimaLuna + [ then ] + lcAchitat + [ else 0 end)]) + [) as achitat] + ;
[ from ] + gcs + [.vireg_parteneri ] + ;
[ where cont = ?tccont and ] + lcCondId_part + [ and ] + lcCondPerioada + [ and ] + lcCondAnalitic + ;
[ and ] + lcCondvaluta + gcCondSucursala + ;
[ and (luna + 12*an =] + Iif(tlemise, lcCondData, [(case when ] + lcCondPrimaLuna + ;
[ then luna + 12*an else ] + lcCondData + [ end)]) + [)] + ;
[ group by an, luna, id_fact, id_part, nume, cod_fiscal, ] + Iif(tnCuAnalitic = 1, [acont,], []) + [ dataact, serie_act, nract] + Iif(tnCuValuta = 1, [,id_valuta,nume_val], []) + [,(case when precdeb <> 0 or preccred <> 0 then 1 else 0 end)] + ;
[ order by an, luna, nume, cod_fiscal, ] + Iif(tnCuValuta = 1, [id_valuta,], []) + Iif(tnCuAnalitic = 1, [acont,], []) + [dataact, serie_act, nract]
lcCursor = [cFacturi]
If Used(lcCursor)
Use In (lcCursor)
Endif
lnSucces = goExecutor.oExecute(lcSelect, lcCursor)
If lnSucces < 0
amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare')
Return ''
Endif
Select (lcCursor)
Replace All dataact With {} For Isnull(dataact)
&& 27.05.2008
&& soldurile initiale pentru facturile emise in perioada nu se pot obtine din facturile din cFacturi (nu am precdeb/preccred <> 0)
&& trebuie sa le selectez din ireg_parteneri separat
If tlemise
lcSelect = [select an, luna, id_part, cont, acont, Sum(] + lcSoldPrec + [) as soldprec ] + ;
[ from ireg_parteneri ] + ;
[ where cont = ?tccont and ] + lcCondId_part + [ and ] + lcCondAnalitic + ;
[ and ] + lcCondvaluta + gcCondSucursala + ;
[ and ] + lcCondPrimaLuna + ;
[ group by an, luna, id_part, cont, acont]
lcCursor = [cSoldParteneri]
If Used(lcCursor)
Use In (lcCursor)
Endif
lnSucces = goExecutor.oExecute(lcSelect, lcCursor)
If lnSucces < 0
amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare')
Return ''
Endif
Endif
&& soldurile initiale pentru facturile emise in perioada ^
&& iau in considerare doar incasarile inregistrate in perioada data
lcCondPerioada = [((luna + 12*an) between ?lnNrLuniI and ?lnNrLuniF)]
If tnIdPart = 0
lcCondId_part = [1=1]
Else
lcCondId_part = lcIdPartener + [ = ] + Alltrim(Str(tnIdPart))
Endif
If tnCuAnalitic = 1
lcCondAnalitic = Iif(!Empty(tcAnalitic), lcAcontIncPl + [ = ?tcAnalitic], [1=1])
Else
lcCondAnalitic = [1=1]
Endif
If tnCuValuta = 1
lcCondvaluta = Iif(!Empty(tnIdValuta), [id_valuta = ?tnIdValuta and suma_val<>0], [id_valuta<>0 and suma_val<>0])
Else
lcCondvaluta = [1=1]
Endif
*!* modificare v 2.0.46
If tccont = '4111'
lcConditieSupl = [ OR (SCD = '4111' ] + Iif(!Empty(tcAnalitic), [AND ASCD = ?tcAnalitic ], []) + ;
[AND SCC = '4427' ] + Iif(tnIdPart = 0, [], [AND ID_PARTD = ] + Alltrim(Str(tnIdPart)) + [ ]) + ;
[AND (NVL(PERECHED,0) <> 0 OR NVL(ID_FACTD,0)<>0))]
lcSelect1 = [Select (case when scc = '4427' then id_partd else id_partc end) as id_part,] + ;
[(case when scc = '4427' then partd else partc end) as nume,fdoc,dataact as datadoc,] + ;
[serie_act as serie_doc,nract as nrdoc,] + ;
Iif(tnCuAnalitic = 1, [(case when scc='4427' then ascd else ascc end)], ['xxxx']) + [ as acont,] + ;
[(case when scc = '4427' then pereched else perechec end) as pereche,] + ;
[(case when scc = '4427' then id_factd else id_factc end) as id_fact,] + ;
[(case when scc = '4427' then (-1)*] + Iif(tnCuValuta = 0, [suma else suma], [suma_val else suma_val]) + [ end) as suma,] + ;
[ id_valuta, luna as luna_inc, an as an_inc ] + ;
[ from ] + gcs + [.vact ] + ;
[ where ((] + lcContIncPl + [ = ] + tccont + [ and ] + lcCondId_part + [ and ] + lcCondAnalitic + [ and (] + lcPereche + [ <> 0 or ] + lcIdPereche + [ <>0))] + ;
lcConditieSupl + [)] + ;
[ and ] + lcCondExclud + [ and ] + lcCondPerioada + ;
[ and ] + lcCondvaluta + gcCondSucursala + ;
[ order by serie_act, nract, dataact]
Else
lcSelect1 = [select ] + lcIdPartener + [ as id_part,] + lcPartener + [ as nume,fdoc,dataact as datadoc,serie_act as serie_doc,nract as nrdoc,] + ;
Iif(tnCuAnalitic = 1, lcAcontIncPl, ['xxxx']) + [ as acont,] + lcPereche + [ as pereche,] + lcIdPereche + [ as id_fact,] + ;
Iif(tnCuValuta = 0, [suma], [suma_val]) + [ as suma,] + ;
[ id_valuta, luna as luna_inc, an as an_inc ] + ;
[ from ] + gcs + [.vact ] + ;
[ where ] + lcContIncPl + [ = ] + tccont + [ and ] + lcCondId_part + [ and ] + lcCondvaluta + [ and ] + lcCondAnalitic + ;
[ and ] + lcCondExclud + [ and (] + lcPereche + [ <> 0 or ] + lcIdPereche + [ <>0) and ] + lcCondPerioada + ;
gcCondSucursala + ;
[ order by serie_act, nract, dataact]
Endif
*!* modificare v 2.0.46 ^
lcCursor1 = [cIncasari_temp]
If Used(lcCursor1)
Use In (lcCursor1)
Endif
lnSucces1 = goExecutor.oExecute(lcSelect1, lcCursor1)
If lnSucces1 < 0
amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare')
Return ''
Endif
Select cIncasari_temp
Replace All datadoc With {} For Isnull(datadoc)
Select an, luna, id_fact, id_part, nume, cod_fiscal, acont, Nvl(Ttod(dataact), {}) As datafact, Nvl(serie_act, []) As serie_fact, ;
id_ctr, contract, ;
nract As nrfact, totctva, ;
Padr(fdoc, 30, ' ') As fdoc, {//} As datadoc, 00000000000000 As nrdoc, precedent, ;
achitat As suma, 00000000000000000000.0000 As sold, ;
00000000000000000000.0000 As soldcumulat, 0 As tip, 00 As luna_inc, 0000 As an_inc, 0 As sold_final, ;
00000000000000000000.0000 As vechime_1, 00000000000000000000.0000 As vechime_2, 00000000000000000000.0000 As vechime_3, 00000000000000000000.0000 As vechime_4 ;
From cFacturi ;
Where totctva - achitat <> 0 ;
Order By nume, id_part, acont, dataact, serie_act, nract ;
Into Cursor cFactInc Readwrite
* adaug platile / incasarile
Select cIncasari_temp
Scan
Scatter Name oInc
Select cFactInc
*!* modificare v 2.0.50
*!* Locate For id_fact = oInc.id_fact And id_part = oInc.id_part And Nvl(acont,[xxxx]) = Nvl(oInc.acont,[xxxx]) And tip = 0
Locate For id_fact = oInc.id_fact And id_part = oInc.id_part And Nvl(acont, [xxxx]) = Nvl(oInc.acont, [xxxx])
*!* If !Found() Or suma <> 0
Do Case
Case !Found() && nu exista factura pentru incasare
*!* modificare v 2.0.50 ^
*!* modificare v 2.0.46
*!* Append blank
*!* caut incasarea neimperecheata
If Used('crstempireg')
Use In crstempireg
Endif
lcSql = [select 1 as precedent,id_fact,id_part,serie_act as serie_fact,nract as nrfact,dataact as datafact,] + ;
[pack_sesiune.suma_ron((-1)*] + ;
Iif(!tlActiv, Iif(tnCuValuta = 0, [debit], [valdebit]), Iif(tnCuValuta = 0, [credit], [valcredit])) + ;
[,Nvl(dataact,to_date(an||luna,'YYYYMM'))) as totctvaprec ] + ;
[from ireg_parteneri ] + ;
[where id_fact = ] + Alltrim(Str(oInc.id_fact)) + [ and id_part = ] + Alltrim(Str(oInc.id_part)) + [ ] + ;
[and ] + Iif(tnCuValuta = 0, [precdeb=0 and preccred=0], [precvaldeb=0 and precvalcred=0]) + [ and ] + ;
Iif(!tlActiv, Iif(tnCuValuta = 0, [credit], [valcredit]), Iif(tnCuValuta = 0, [debit], [valdebit])) + [=0]
lnSucces = goExecutor.oExecute(lcSql, [crstempireg])
If lnSucces < 0
amessagebox(goExecutor.cEroare, 16, "Eroare")
Return
Else
If Reccount('crstempireg') > 0
Select crstempireg
Scatter Name oComplet
AddProperty(oComplet, "totctva", oComplet.totctvaprec)
Use In crstempireg
Select cFacturi
Locate For id_fact = oComplet.id_fact && verificare daca mai exista deja
If !Found()
Append Blank
Gather Name oComplet Fields id_part, totctva, totctvaprec, precedent
Select cFactInc
Append Blank
Gather Name oComplet
Else
Select cFactInc
Append Blank
Endif
Else
Select cFactInc
Append Blank
Endif
Endif
*!* modificare v 2.0.50
Case Found() And ((tip = 1) Or (tip = 0 And suma <> 0)) && daca mai exista deja o incasare pe factura sau are achitat din precedent
Scatter Name objFactInc
Append Blank
Gather Name objFactInc
Replace totctva With 0
Case Found() And tip = 0 && daca nu mai exista incasare pe factura
&& completez dupa case
Otherwise && adaug incasarea
Append Blank
Endcase
*!* Endif
*!* modificare v 2.0.50 ^
*!* modificare v 2.0.46 ^
Gather Name oInc
Replace tip With 1
Select cIncasari_temp
Endscan
* calculez soldurile (initial, cumulat, pe factura)
* ordonez datele pentru grupare
*!* SELECT id_part, SUM(totctva-achitat) as soldi_part FROM cFacturi WHERE an*12 + luna = lnNrPrimaL INTO CURSOR cSoldiPart GROUP BY id_part
*!* SELECT id_part,acont, SUM(totctva-achitat) as soldi_ana FROM cFacturi WHERE an*12 + luna = lnNrPrimaL INTO CURSOR cSoldiAna GROUP BY id_part, acont
&& 27.05.2008
&& soldurile initiale pentru facturile emise in perioada nu se pot obtine din facturile din cFacturi (nu am precdeb/preccred <> 0)
If tlemise
Select id_part, Sum(soldprec) As soldi_part From cSoldParteneri Into Cursor cSoldiPart Group By id_part
Select id_part, Nvl(acont, Space(4)) As acont, Sum(soldprec) As soldi_ana From cSoldParteneri Into Cursor cSoldiAna Group By id_part, acont Readwrite
Else
*!* modificare v 2.0.46
*!* Select id_part, Sum(totctva-achitat) As soldi_part From cFacturi Where precedent = 1 Into Cursor cSoldiPart Group By id_part
*!* Select id_part,Nvl(acont,Space(4)) As acont, Sum(totctva-achitat) As soldi_ana From cFacturi Where precedent = 1 Into Cursor cSoldiAna Group By id_part, acont Readwrite
Select id_part, Sum(totctvaprec - achitat) As soldi_part From cFacturi Where precedent = 1 Into Cursor cSoldiPart Group By id_part
Select id_part, Nvl(acont, Space(4)) As acont, Sum(totctvaprec - achitat) As soldi_ana From cFacturi Where precedent = 1 Into Cursor cSoldiAna Group By id_part, acont Readwrite
*!* modificare v 2.0.46 ^
Endif
&& 27.05.2008 ^
*!* modificare v 2.0.50 : am adaugat NVL(...,0)
*!* modificare v 2.0.82 : am adaugat NVL(...,0.0000)
Select c.*, Nvl(p.soldi_part, 0.0000) As soldi_part, Nvl(a.soldi_ana, 0.0000) As soldi_ana From cFactInc c ;
Left Join cSoldiPart p On c.id_part = p.id_part ;
Left Join cSoldiAna a On c.id_part = a.id_part And Nvl(c.acont, '') = Nvl(a.acont, '') ;
Into Cursor cFactIncO Order By c.nume, c.id_part, c.acont, c.datafact, c.serie_fact, c.nrfact, c.id_fact Readwrite
If Used('cSoldiPart')
Use In cSoldiPart
Endif
If Used('cSoldiAna')
Use In cSoldiAna
Endif
* soldul cumulat
**** pt vechime (temporar) aflu ultima zi a perioadei , consider data de referinta
ldDataVechime = Gomonth(Date(tnAnF, tnLunaF, 1), 1) - 1
****
Select cFactIncO
Locate
lnIdFact = id_fact
lnIdPart = id_part
lnSoldFact = Nvl(totctva, 0)
lnSoldPart = Nvl(soldi_part, 0)
*ldDataFactura = NVL(TTOD(datafact),{})
ldDataFactura = Nvl(datafact, {})
Scan
Scatter Name osold
lnNrRand = Recno()
If lnIdFact <> osold.id_fact
Select cFactIncO
If tnCuVechime = 1
Go lnNrRand - 1
Replace sold_final With 1
lnNrZile = ldDataVechime - ldDataFactura
If Empty(ldDataFactura)
lnNrZile = 400 && peste 1 An
Else
lnNrZile = ldDataVechime - ldDataFactura
Endif
Do Case
Case Between(lnNrZile, 0, 30)
Replace vechime_1 With sold
Case Between(lnNrZile, 31, 90)
Replace vechime_2 With sold
Case Between(lnNrZile, 91, 365)
Replace vechime_3 With sold
Otherwise
Replace vechime_4 With sold
Endcase
Select cFactIncO
Go lnNrRand
Endif
*ldDataFactura = NVL(TTOD(datafact),{})
ldDataFactura = Nvl(datafact, {})
lnIdFact = osold.id_fact
lnSoldFact = Nvl(osold.totctva, 0)
Endif
If lnIdPart <> osold.id_part
lnIdPart = osold.id_part
lnSoldPart = Nvl(osold.soldi_part, 0)
Endif
lnSoldFact = lnSoldFact - Nvl(osold.suma, 0)
* lnSoldPart = lnSoldPart + IIF(osold.an*12+osold.luna >=lnnrlunii, NVL(osold.totctva,0), 0) - IIF(osold.an_inc*12+osold.luna_inc >=lnnrlunii, NVL(osold.suma,0), 0)
lnSoldPart = lnSoldPart + Iif(osold.precedent = 0, Nvl(osold.totctva, 0), 0) - Iif(osold.an_inc * 12 + osold.luna_inc >= lnnrlunii, Nvl(osold.suma, 0), 0)
Replace sold With lnSoldFact, soldcumulat With lnSoldPart
Select cFactIncO
Endscan
If tnCuVechime = 1
Select cFactIncO
Go Bottom
Replace sold_final With 1
*ldDataFactura = NVL(TTOD(datafact),{})
ldDataFactura = Nvl(datafact, {})
If Empty(ldDataFactura)
lnNrZile = 400 && peste 1 An
Else
lnNrZile = ldDataVechime - ldDataFactura
Endif
Do Case
Case Between(lnNrZile, 0, 30)
Replace vechime_1 With sold
Case Between(lnNrZile, 31, 90)
Replace vechime_2 With sold
Case Between(lnNrZile, 91, 365)
Replace vechime_3 With sold
Otherwise
Replace vechime_4 With sold
Endcase
Endif
*!* SELECT cFactIncO
*!* DELETE from cFactIncO WHERE id_fact IN (select id_fact from cFactIncO where sold_final = 1 AND NVL(vechime_1,0) = 0 AND NVL(vechime_2,0) = 0 AND NVL(vechime_3,0) = 0 AND NVL(vechime_4,0) = 0)
If Used('cFacturi')
Use In cFacturi
Endif
If Used('cIncasari_temp')
Use In cIncasari_temp
Endif
If Used('cFactInc')
Use In cFactInc
Endif
Return "cFactIncO"
Endproc
******************************************* SFARSIT: situatie_facturi *******************************************
*!* * PROCEDURE situatie_facturi
*!* * Date : 24/11/2004, 16:10:03
*!* * author : lavinia.viziru
*!* * description: preluare facturi pentru clienti/furnizori
*!* ****** PARAMETER BLOCK **************
*!* * Parameters : 3
*!* * Parameter 1: tlemise
*!* * Description: tipul facturilor preluate
*!* * (.t.-facturi emise intr-o perioada determinata
*!* * .f.-facturi cu sold dintr-o perioada determinata)
*!* * Parameter 2: tccont
*!* * Description: contul partenerului(411-client, 401- furnizor)
*!* * Parameter 3: topartener
*!* * Description: obiectul care contine datele partenerului(client/furnizor) selectat:nume + id_part
*!* * (daca numele partenerului=<TOATE INREGISTRARILE> atunci se iau in considerare
*!* * toti partenerii- clienti sau furnizori)
*!* ******************************************* INCEPUT:situatie_facturi *******************************************
*!* PROCEDURE situatie_facturi
*!* PARAMETERS tccont,tlemise,topartener,tnani,tnlunai,tnanf,tnlunaf
*!* LOCAL lnrlunii,lnrlunif
*!* lnnrlunii = tnlunai + 12*tnani
*!* lnnrlunif = tnlunaf + 12*tnanf
*!* IF UPPER(ALLTRIM(topartener.nume)) = [<TOATE INREGISTRARILE>]
*!* lcCondId_part = [1=1]
*!* ELSE
*!* lcCondId_part = [id_part = ] + STR(topartener.id_part)
*!* ENDIF
*!* IF ALLTRIM(tccont) = [401] && furnizori
*!* lcTotctva = [credit + preccred as totctva]
*!* lcPereche = [pereched]
*!* lcPartener = [partd]
*!* lcCondExclud = [(SUBSTR(scd,1,3) <> '767')]
*!* ELSE && [411] - clienti
*!* lcTotctva = [debit + precdeb as totctva]
*!* lcPereche = [perechec]
*!* lcPartener = [partc]
*!* lcCondExclud = [(SUBSTR(scc,1,3) not in ('667','622'))]
*!* ENDIF
*!* lcCondPerioada = [((luna + 12*an) between ] + ALLTRIM(STR(lnnrlunii)) + [ and ] + ALLTRIM(STR(lnnrlunif)) + [)]
*!* lcCondData = [(to_number(to_char(dataireg,'MM'),'99') + 12*to_number(to_char(dataireg,'YYYY'),'9999'))]
*!* lcCondPrimaLuna = [(luna + 12*an = ] + ALLTRIM(STR(lnnrlunii)) + [)]
*!* lcSelect = [select nume,dataact,nract,] + lcTotctva + ;
*!* [ from ] + gcS + [.vireg_parteneri ] + ;
*!* [where cont = '] + tccont + [' and ] + lcCondId_part + [ and ] + lcCondPerioada + ;
*!* [ and (luna + 12*an =] + IIF(tlemise,lcCondData,[(case when ] + lcCondPrimaLuna +;
*!* [ then luna + 12*an else ] + lcCondData + [ end)]) + [)]
*!* lcCursor = [cFacturi]
*!* IF USED(lcCursor)
*!* USE IN (lcCursor)
*!* ENDIF
*!* lnSucces = goExecutor.oExecute(lcSelect,lcCursor)
*!* IF lnSucces < 0
*!* MESSAGEBOX(goExecutor.cEroare,0+16,'Eroare')
*!* RETURN
*!* ENDIF
*!*
*!* && iau in considerare doar incasarile inregistrate pana la sfarsitul perioadei date
*!* lcCondDataIreg = [extract(month from dataireg)+12*extract( year from dataireg) <= ] + ;
*!* ALLTRIM(STR(lnnrlunif))
*!*
*!* lcSelect1 = [select ] + lcPartener + [ as nume,fdoc,dataact,nract,] + lcPereche + [ as pereche,suma ] +;
*!* [ from ] + gcS+ [.vact ] + ;
*!* [ where SUBSTR(] + IIF(ALLTRIM(tccont) = '401',[scd],[scc]) + [,1,3) = ] + tccont + ;
*!* [ and ] + lcCondExclud + [ and ] + lcPereche + [ <> 0 and ] + lcCondDataIreg
*!* lcCursor1 = [cIncasari_temp]
*!* IF USED(lcCursor1)
*!* USE IN (lcCursor1)
*!* ENDIF
*!* lnSucces1 = goExecutor.oExecute(lcSelect1,lcCursor1)
*!* IF lnSucces1 < 0
*!* MESSAGEBOX(goExecutor.cEroare,0+16,'Eroare')
*!* RETURN
*!* ENDIF
*!* SELECT *,.f. as bifat FROM cIncasari_temp ;
*!* WHERE nume+"/"+STR(pereche,14) IN (SELE nume+"/"+STR(nract,14) FROM cFacturi) ;
*!* INTO CURSOR cIncasari READWRITE ORDER BY nume, pereche, dataact
*!* *!* CREATE CURSOR cFactInc ;
*!* *!* (id_fact N(10), nume C(50), datafact D(8), nrfact N(14), totctva N(20,4),
*!* *!* fdoc C(30), datadoc D(8), nrdoc N(14), suma N(20,4), tip N(1), sold N(20,4))
*!* SELECT 0000000000 AS id_fact, nume, dataact AS datafact, nract AS nrfact, totctva, ;
*!* SPACE(20) AS fdoc, {//} AS datadoc, 00000000000000 AS nrdoc, ;
*!* 00000000000000000000.0000 AS suma, 0 AS tip, 00000000000000000000.0000 AS sold, ;
*!* 00000000000000000000.0000 AS soldcumul ;
*!* FROM cFacturi ;
*!* INTO CURSOR cFactInc READWRITE ORDER BY nume
*!* SELECT cFactInc
*!* REPLACE ALL id_fact WITH RECNO()
*!* GO top
*!* lcNume = nume
*!* lnId_fact = id_fact
*!* lnSoldCumul = 0
*!* SCAN FOR tip = 0
*!*
*!* IF UPPER(ALLTRIM(lcNume)) <> UPPER(ALLTRIM(nume))
*!* lcNume = nume
*!* lnSoldCumul = 0
*!* ENDIF
*!*
*!* lnId_fact = id_fact
*!* ldDatafact = datafact
*!* lnNrfact = nrfact
*!* lnTotctva = totctva
*!*
*!* lnSold = totctva
*!* lnSoldCumul = lnSoldCumul + totctva
*!* lnAchitat = 0
*!* SELECT cIncasari
*!* LOCATE FOR UPPER(ALLTRIM(nume)) = UPPER(ALLTRIM(lcNume)) AND pereche = lnNrfact ;
*!* AND dataact >= ldDatafact AND !bifat
*!* IF FOUND()
*!* llprim = .T.
*!* DO WHILE .t.
*!* lcFdoc = NVL(fdoc,[])
*!* lnNrdoc = NVL(nract,0)
*!* ldDatadoc = NVL(dataact,{})
*!* lnAchitat = NVL(suma,0)
*!* lnSold = lnSold - lnAchitat
*!* lnSoldCumul = lnSoldCumul - lnAchitat
*!* IF llprim
*!* llprim = .F.
*!* REPLACE fdoc WITH lcFdoc, datadoc WITH ldDatadoc, nrdoc WITH lnNrdoc, ;
*!* suma WITH lnAchitat, sold WITH lnSold,soldcumul WITH lnSoldCumul ;
*!* IN cFactInc
*!* ELSE
*!* SELECT cFactInc
*!* lnPos = RECNO()
*!* INSERT INTO cFactInc VALUES (lnId_fact, lcNume, ldDatafact, lnNrfact, ;
*!* lnTotctva, lcFdoc, ldDatadoc, lnNrdoc, lnAchitat, 1, lnSold, lnSoldCumul)
*!* GOTO lnPos
*!* ENDIF
*!*
*!* SELECT cIncasari
*!* REPLACE bifat WITH .t.
*!* SKIP
*!* IF UPPER(ALLTRIM(nume)) <> UPPER(ALLTRIM(lcNume)) OR pereche <> lnNrfact
*!* EXIT
*!* ENDIF
*!* ENDDO
*!* ELSE
*!* replace sold WITH lnSold, soldcumul WITH lnSoldCumul IN cFactInc
*!* ENDIF
*!* SELECT cFactInc
*!* ENDSCAN
*!* *ordonez datele pentru grupare
*!* SELECT * FROM cFactInc INTO CURSOR cFactIncO ORDER BY nume, id_fact, tip
*!* USE IN cFacturi
*!* USE IN cIncasari
*!* USE IN cFactInc
*!* RETURN "cFactIncO"
*!* ENDPROC
*!* ******************************************* SFARSIT: situatie_facturi *******************************************
* PROCEDURE list_facturi_neachitate
* Date : 01/12/2004, 11:31:42
* author : lavinia.viziru
* description:
****** PARAMETER BLOCK **************
* Parameters : 1
* Parameter 1: tccont
* Parameter 1 description: contul partenerului (401 - furnizor/411 - client)
**************************** INCEPUT:list_facturi_neachitate ********************************
Procedure list_facturi_neachitate
Parameters tccont, tlgrupate, tlanalitic
Local lcCont, lopartener
Private pctitlu, pcpartener, plgrupate, pcperioada, planalitic, pctitlu_analitic
Store '' To pctitlu, pcpartener, pcperioada, pctitlu_analitic
planalitic = tlanalitic
plgrupate = tlgrupate
lcCont = Alltrim(tccont)
lcAcont = []
If planalitic
&& cauta analitic
lcselect0 = [select cont,acont,explicatie from vplcont_analitic]
lcfiltru0 = []
lcschema0 = []
lcorder0 = [acont]
lccoloane0 = [cont,acont,explicatie]
lcTitlu0 = [Alegeti simbolul analitic]
lcTitluColoane0 = [Cont,Acont,Explicatie]
*!* 30.05.2008
*!* ?gnAn doar analiticele din anul curent
lcFiltruOriginal0 = [an = ?gnAn and cont = '] + lcCont + [' ]
*!* 30.05.2008 ^
loanalitic = cauta_alfa(lcselect0, lcfiltru0, lcschema0, lcorder0, lccoloane0, lcTitlu0, lcTitluColoane0, "", .F., lcFiltruOriginal0) && 11.07.2007
lcAcont = Alltrim(loanalitic.acont)
If Empty(lcAcont)
planalitic = .F.
Else
pctitlu_analitic = [Analitic: ] + lcCont + [.] + lcAcont + [ - ] + loanalitic.explicatie
Endif
Endif
If lcCont = [401] && furnizori
lcTitlu = 'Alegeti numele furnizorului'
lcTotctva = [credit + preccred as totctva]
lcAchitat = [debit + precdeb as achitat]
lctitlu_rap = [Situatie - Facturi de achizitii neachitate] + ;
Iif(tlgrupate, [(pe furnizori)], [(in ordinea emiterii)])
pcpartener = [Furnizor: ]
Else && clienti
lcTitlu = 'Alegeti numele clientului'
lcTotctva = [debit + precdeb as totctva]
lcAchitat = [credit + preccred as achitat]
lctitlu_rap = [Situatie - Facturi de vanzari neincasate] + ;
Iif(tlgrupate, [(pe clienti)], [(in ordinea emiterii)])
pcpartener = [Client: ]
Endif
lopartener = caut_parteneri(lcCont, lcTitlu, .T.)
If Empty(lopartener.denumire)
Return
Endif
If Upper(Alltrim(lopartener.denumire)) = [<TOATE INREGISTRARILE>]
lcCondId_part = [1=1]
Else
lcCondId_part = [id_part = ] + Str(lopartener.id_part)
Endif
*!* 30.05.2008
*!* lcCondNeachitat - nu voia sa afiseze facturile cu sold < 1000 ROL :)
*!* lcCondNeachitat=[( !(abs(totctva-achitat)<1000 or ABS(totctva)<ABS(achitat)) OR totctva<0)]
lcCondNeachitat = [.T.]
*!* 30.05.2008 ^
*!* 27aug2008 - la order by era doar: [ order by ] + Iif(plgrupate,[nume],[dataact])
lcSelect = [select nume,dataact,serie_act,nract,datascad,] + lcTotctva + [,] + lcAchitat + ;
[ from ] + gcs + [.vireg_parteneri ] + ;
[where cont = '] + tccont + [' and ] + lcCondId_part + [ and an = ] + Alltrim(Str(gnAn)) + ;
[ and luna = ] + Alltrim(Str(gnLuna)) + ;
[ and ] + Iif(Empty(lcAcont), [1=1], [acont = '] + lcAcont + [']) + gcCondSucursala + ;
[ order by ] + Iif(plgrupate, [nume,dataact,nract], [dataact])
lcCursor = [cFact_temp]
*!* 27aug2008 ^
*STRTOFILE(lcSelect,'c:\sel.txt')
*!* IF USED(lcCursor)
*!* USE IN (lcCursor)
*!* ENDIF
lnSucces = goExecutor.oExecute(lcSelect, lcCursor)
If lnSucces < 0
amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare')
Return
Endif
lcSel = [SELECT * from cFact_temp into cursor cFactNeachit WHERE ] + lcCondNeachitat
&lcSel
Select cFactNeachit
*!* If Reccount('cFactNeachit')>0
pcperioada = [Luna: ] + Alltrim(Str(gnLuna)) + [/] + Alltrim(Str(gnAn))
lcRaport = [rap_facturi_neachit]
pctitlu = lctitlu_rap
*!* pctitlu = ceretitlu_rap('Titlul Raportului',lctitlu_rap)
*!* pcDataOra = Get_Ora(2)
goExport.export2frx([cFactNeachit], lcRaport)
*!* Select cFactNeachit
*!* Report Form (lcRaport) To Printer Prompt Preview
*!* Else
*!* amessagebox("Nu exista inregistrari pentru listare!",48,"Atentie")
*!* Endif
Use In (lcCursor)
Endproc
**************************** SFARSIT:list_facturi_neachitate ********************************
* PROCEDURE list_facturi_scadente( )
* Date : 02/12/2004, 15:40:57
* author : lavinia.viziru
* description:
****** PARAMETER BLOCK **************
* Parameters : 0
*
******************************** INCEPUT:list_facturi_scadente ******************************
Procedure list_facturi_scadente
Parameters tccont
Private pctitlu, pcperioada, planalitic, plgrupate && ,pcDataOra
Store '' To pctitlu, pcperioada && ,pcDataOra
Store .F. To planalitic, plgrupate
Private pddataref, pddatascad_max, pnnrluni
Store 0 To pnnrluni
pddataref = Date()
pddatascad_max = Date()
ofrmscad = Createobject('frm_facturi_scadente')
ofrmscad.txt_dataref.ControlSource = [pddataref]
ofrmscad.txt_datamax.ControlSource = [pddatascad_max]
ofrmscad.Show(1)
If buton = 2
Return
Endif
lcCont = Alltrim(tccont)
If lcCont = [401]
lcTotctva = [credit + preccred as totctva]
lcAchitat = [debit + precdeb as achitat]
Else && lccont = 411
lcTotctva = [debit + precdeb as totctva]
lcAchitat = [credit + preccred as achitat]
Endif
lccondScad = [(datascad < to_date('] + Dtos(pddatascad_max) + [','yyyymmdd'))]
lcCondNeachit = [(ABS(totctva)>ABS(achitat))]
lcSelect = [select nume,dataact,serie_act,nract,datascad,] + lcTotctva + [,] + lcAchitat + ;
[ from ] + gcs + [.vireg_parteneri ] + ;
[where cont = '] + tccont + [' and an = ] + Alltrim(Str(gnAn)) + ;
[ and luna = ] + Alltrim(Str(gnLuna)) + [ and ] + lccondScad + ;
gcCondSucursala + ;
[ order by datascad ]
lcCursor = [cFactScad_temp]
lnSucces = goExecutor.oExecute(lcSelect, lcCursor)
If lnSucces < 0
amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare')
Return
Endif
lcSel = [SELECT * from cFactScad_temp into cursor cFactScad WHERE ] + lcCondNeachit
&lcSel
pctitlu = 'Facturi de achizitii scadente, cu data scadenta mai veche de ' + Alltrim(Dtoc(pddatascad_max))
pcperioada = [Luna: ] + Alltrim(Str(gnLuna)) + [/] + Alltrim(Str(gnAn))
lcRaport = [rap_facturi_neachit]
goExport.export2frx([cFactScad], lcRaport, .T.)
*!* Select cFactScad
*!* If Reccount() = 0
*!* && afiseaza mesaj
*!* amessagebox("Nu exista facturi neachitate atat de vechi!",48,"Atentie")
*!* *!* ostop=CREATEOBJECT('stop')
*!* *!* ostop.image1.PICTURE = 'd:\contafin_oracle\cont2003\grafice\point04.ico'
*!* *!* ostop.label3.VISIBLE = .F.
*!* *!* ostop.label2.CAPTION = [Nu exista facturi neachitate atat de vechi!]
*!* *!* ostop.label2.FONTNAME = 'Arial Narrow'
*!* *!* ostop.SHOW(1)
*!* Else
*!* lctitlu='Facturi de achizitii scadente, cu data scadenta mai veche de ' + ;
*!* ALLTRIM(Dtoc(pddatascad_max))
*!* *!* DO CASE
*!* *!* CASE pnnrluni = 0
*!* *!* lctitlu='Facturi de achizitii scadente cu data scadenta mai veche de ' + ;
*!* *!* ALLTRIM(DTOC(pddatascad_max))
*!* *!* CASE pnnrluni = 1
*!* *!* lctitlu='Facturi de achizitii a caror data scadenta este depasita '+ ;
*!* *!* 'cu cel putin o luna fata de data '+ALLTRIM(DTOC(pddataref))
*!* *!* OTHERW
*!* *!* lctitlu='Facturi de achizitii a caror data scadenta este depasita '+ ;
*!* *!* 'cu cel putin ' + ALLT(STR(pnnrluni))+' luni fata de data '+ALLTRIM(DTOC(pddataref))
*!* *!* ENDCASE
*!* pctitlu = ceretitlu_rap('Titlul Raportului',lctitlu)
*!* pcperioada = [Luna: ] + Alltrim(Str(gnLuna)) + [/] + Alltrim(Str(gnAn))
*!* lcRaport = [rap_facturi_neachit]
*!* pcDataOra = Get_Ora(2)
*!* Select cFactScad
*!* Report Form (lcRaport) To Printer Prompt Preview
*!* Endif
Use In (lcCursor)
Use In cFactScad
Release pctitlu
Endproc
******************************** SFARSIT:list_facturi_scadente ******************************
* PROCEDURE facturi_furnizor_client( )
* Date : 06/12/2004, 10:17:25
* author : lavinia.viziru
* description:
****** PARAMETER BLOCK **************
* Parameters : 0
*
******************************* INCEPUT:facturi_furnizor_client *****************************
Procedure facturi_furnizor_client
Private pctitlu && ,pcDataOra
Store '' To pctitlu && ,pcDataOra
*!* lcSelect = [select distinct nume,cod_fiscal,id_part,inactiv from ] + gcs + [.Vcoresp_tip_part p ] +;
*!* [join ] + gcs + [.Vcoresp_tip_cont c on p.id_tip_part = c.id_tip_part]
*!* lcfiltru = [c.cont = '401' and p.id_part in (select distinct id_part from ] + gcs +;
*!* [.Vcoresp_tip_part p join ] + gcs + [.vcoresp_tip_cont c on ] + ;
*!* [p.id_tip_part = c.id_tip_part where c.cont = '4111')]
*!* lcschema = ['']
*!* lcorder = [nume]
*!* lccoloane = [Nume,cod_fiscal,inactiv,id_part]
*!* lctitlu = [Alegeti un partener (furnizor-client)]
*!* lcTitluColoane = [Nume,Cod fiscal,Inactiv,ID]
*!* lopartener = cauta_alfa(lcSelect,lcfiltru,lcschema,lcorder,lccoloane,lctitlu,lcTitluColoane,"",.F.)
lopartener = CautPartenerContabilitate(GetHash([cTitlu=>Alegeti un partener (furnizor-client)??cCont=>401] + ;
[??cFiltruOrig=>a.id_part in (select distinct id_part from ] + gcs + ;
[.Vcoresp_tip_part p join ] + gcs + [.vcoresp_tip_cont c on ] + ;
[p.id_tip_part = c.id_tip_part where c.cont = '4111')]))
If buton = 2
Return
Endif
lcnume = Alltrim(lopartener.nume)
lnid_part = lopartener.id_part
If Empty(lcnume)
lcCondPart = [1=1]
Else
lcCondPart = [id_part = ] + Alltrim(Str(lnid_part))
Endif
lcCondPart = [id_part = ] + Alltrim(Str(lnid_part))
lcCondLunaC = [ an = ] + Alltrim(Str(gnAn)) + [ and luna = ] + Alltrim(Str(gnLuna))
lcCondN = [(cont='401' and ((totctva>achitat and achitat>=0) or (totctva<achitat and totctva<0))) or cont='4111']
lcTotctva = [(case when cont='401' then credit + preccred else debit + precdeb end) as totctva]
lcAchitat = [(case when cont='401' then debit + precdeb else credit + preccred end) as achitat]
lcSelect = [select * from (select nume,nract,serie_act,dataact,datascad,cont,] + lcTotctva + [,] + lcAchitat + ;
[ from ] + gcs + [.vireg_parteneri where cont in ('401','4111') and ] + ;
lcCondPart + [ and ] + lcCondLunaC + gcCondSucursala + [)] + [ where ] + lcCondN + ;
[ order by cont,dataact,serie_act,nract]
lcCursor = [cFactFurnCli]
lnSucces = goExecutor.oExecute(lcSelect, lcCursor)
If lnSucces < 0
amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare')
Return
Endif
*!* If Reccount(lcCursor)>0
pctitlu = [Situatia facturilor de incasat/platit/compensat]
*!* lctitlu='Situatia facturilor de incasat/platit/compensat'
*!* pctitlu = ceretitlu_rap('Titlul Raportului',lctitlu)
pcperioada = [Luna: ] + Alltrim(Str(gnLuna)) + [/] + Alltrim(Str(gnAn))
goExport.export2frx(lcCursor, [rap_facturi_furncli], .T.)
*!* pcDataOra= Get_Ora(2)
*!* Select (lcCursor)
*!* Report Form rap_facturi_furncli To Printer Prompt Preview
*!* Else
*!* amessagebox("Nu exista inregistrari pentru listare!",48,"Atentie")
*!* Endif
Use In (lcCursor)
Endproc
******************************** SFARSIT: facturi_furnizor_client ***************************
* PROCEDURE incasari_facturi_lunac
* Date : 07/12/2004, 15:16:30
* author : lavinia.viziru
* description:
****** PARAMETER BLOCK **************
* Parameters : 0
*
* PROCEDURE listare_registru_vanzcump
* Date : 09/12/2004, 11:57:13
* author : lavinia.viziru
* description:
****** PARAMETER BLOCK **************
* Parameters : 1
* Parameter 1: tccont
* contul : 401 - furnizori /411 - clienti
* Parameter 2: tctip
* tipul raportului : NORMAL , SIMPLIFICAT, CONDENSAT
* Parameter 3: tlrecap
* cu/fara recapitulatii pe lunile dintr-o perioada
********************************** INCEPUT:listare_registru_vanzcump ***************************
Procedure listare_registru_vanzcump
Parameters tccont, tctip, tlrecap
lcCont = Alltrim(tccont)
lctip = Upper(Alltrim(tctip))
Private pnan, pnluna, pctitlu
Store 0 To pnan, pnluna
Store '' To pctitlu
lcvizualizare = Iif(lcCont = [401], [vcump], [vvanz])
lcTitlu = Iif(lcCont = [401], [JURNAL PENTRU CUMPARARI], [JURNAL PENTRU VANZARI])
If tlrecap
lcRaport = Iif(lcCont = [401], [rap_regcump_recap], [rap_regvanz_recap])
&& selectare luna initiala
locaut = Createobject('frm_caut_anluna')
locaut.Show(1)
If buton = 2
Return
Endif
lcnrlunii = Alltrim(Str(pnluna + 12 * pnan))
lcnrlunif = Alltrim(Str(gnLuna + 12 * gnAn))
lcSelect = [select * from (] + ;
[( select 'A' as tip,an,luna,dataact,nract,nume,cod_fiscal,totctva,neimpozab,] + ;
[totftvam,tvam,totftvai,tvai,scutit from ] + gcs + [.] + lcvizualizare + ;
[ where an = ] + Alltrim(Str(gnAn)) + [ and luna = ] + Alltrim(Str(gnLuna)) + [)] + ;
[ union ] + ;
[( select 'B' as tip,an,luna,to_date('','ddmmyyyy') as dataact,000000000 as nract,] + ;
[ (select numeluna from lunilean where nrluna = luna) as nume,' ' as cod_fiscal,] + ;
[sum(totctva) as totctva,sum(neimpozab) as neimpozab,] + ;
[sum(totftvam) as totftvam,sum(tvam) as tvam,sum(totftvai) as totftvai,sum(tvai) as tvai,scutit from ] + ;
gcs + [.] + lcvizualizare + ;
[ group by an,luna,scutit having (luna + 12*an between ] + lcnrlunii + [ and ] + lcnrlunif + [)) ] + ;
[) order by tip,dataact,nract]
*STRTOFILE(lcSelect,[c:\select_recap.txt])
Else
Do Case
Case lctip = [NORMAL]
lcRaport = Iif(lcCont = [401], [registru_cumparari_rpt1], [registru_vanzari_rpt1])
Case lctip = [SIMPLIFICAT]
lcRaport = [rap_regvanz_simplu]
Case lctip = [CONDENSAT]
lcRaport = [registru_vanzari_rpt1]
Endcase
If (lctip = [NORMAL]) Or (lctip = [SIMPLIFICAT])
lcSelect = [select dataact,nract,nume,cod_fiscal,totctva,neimpozab,totftvam,tvam, ] + ;
[totftvai,tvai,scutit from ] + gcs + [.] + lcvizualizare + ;
[ where an = ] + Alltrim(Str(gnAn)) + [ and luna = ] + Alltrim(Str(gnLuna)) + ;
[order by dataact]
Else && CONDENSAT
lcSelect = [select * from (] + ;
[( select 'A' as tip,dataireg,dataireg as dataact,000000000 as nract,'BON FISCAL' as nume,' ' as cod_fiscal,] + ;
[sum(totctva) as totctva,sum(neimpozab) as neimpozab,sum(totftvai) as totftvai,] + ;
[sum(tvai) as tvai,sum(totftvam) as totftvam,sum(tvam) as tvam,' ' as fdoc,scutit] + ;
[ from ] + gcs + [.] + lcvizualizare + ;
[ where UPPER(TRIM(fdoc)) = 'BON FISCAL' and an = ] + Alltrim(Str(gnAn)) + ;
[ and luna = ] + Alltrim(Str(gnLuna)) + [group by dataireg,scutit)] + ;
[ union ] + ;
[( select 'B' as tip,dataireg,dataact,nract,nume,cod_fiscal,totctva,] + ;
[neimpozab,totftvai,tvai,totftvam,tvam,fdoc,scutit from ] + ;
gcs + [.] + lcvizualizare + [ where ] + ;
[ UPPER(TRIM(fdoc)) <> 'BON FISCAL' and an = ] + Alltrim(Str(gnAn)) + ;
[ and luna = ] + Alltrim(Str(gnLuna)) + [)] + ;
[) order by dataireg,tip]
Endif
Endif
lcCursor = [cvanzcump]
lnSucces = goExecutor.oExecute(lcSelect, lcCursor)
If lnSucces < 0
amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare')
Return
Endif
pctitlu = lcTitlu
goExport.export2frx(lcCursor, lcRaport, .T.)
*!* If Reccount(lcCursor)>0
*!* pctitlu = ceretitlu_rap('Titlul Raportului',lctitlu)
*!* pcDataOra = Get_Ora(2)
*!* Select (lcCursor)
*!* Report Format (lcRaport) To Printer Prompt Preview
*!* Else
*!* amessagebox("Nu exista inregistrari pentru listare!",48,"Atentie")
*!* Endif
Use In (lcCursor)
Endproc
********************************** SFARSIT: listare_registru_vanzcump **************************
********************************** INCEPUT:listare_registru_vanzcump_2007 ***************************
Procedure listare_registru_vanzcump_2007
Parameters tcVC, tcTipRapRC
Local lcCursor, lcRaport
Private pctitlu, pcSubtitlu, tip && pcDataOra
Private pcschema, pcselect, pcfiltru, pcorder, povanz, pocump
Store "" To pcSubtitlu, povanz, pocump, lcCursor, lcRaport
*!* pcDataOra = Get_Ora(2)
If Empty(tcTipRapRC)
tip = 0
Else
tip = 1
Endif
If Used('ACTCV')
Use In actcv
Endif
Do Case
Case tcVC = 'V'
lcCursor = [actcv]
pcschema = ['id_jv n(4),an n(4),luna n(2),cod n(20),dataact d,cod_fiscal c(30),serie_act c(10),nract N(20),'+] + ;
['id_part n(20),id_fdoc n(20),totctva n(20,4),ro19b n(20,4),ro19t n(20,4),ro9b n(20,4),'+] + ;
['ro9t n(20,4),roti n(20,4),cescdd1 n(20,4),cescdd2 n(20,4),wrscdd n(20,4),fodd n(20,4),'+] + ;
['fofdd n(20,4),wrscfdd n(20,4),wrn n(20,4),'] + ;
['ceoptr n(20,4),cesvdd n(20,4),cesvfdd n(20,4),cesvfs n(20,4),'] + ;
['fel_document c(30),denumire c(70),sucursala c(100)']
pcselect = ['select id_jv,an,luna,cod,dataact,cod_fiscal,serie_act,nract,'+] + ;
['id_part,id_fdoc,totctva,ro19b,ro19t,ro9b,'+] + ;
['ro9t,roti,cescdd1,cescdd2,wrscdd,fodd,'+] + ;
['fofdd,wrscfdd,wrn,'] + ;
['ceoptr,cesvdd,cesvfdd,cesvfs,'] + ;
['fel_document,denumire,sucursala from vjv2007 where 1=2']
pcfiltru = [luna=] + Alltrim(Str(gnLuna)) + [ and an=] + Alltrim(Str(gnAn)) + gcCondSucursala
pcorder = [dataact,nract]
llAfisare = .F.
gencursor('povanz', lcCursor, pcselect, pcfiltru, pcschema, pcorder, llAfisare)
povanz.ca_baza1.afisare()
*!* If Reccount('actcv')>0
*!* pctitlu = "JURNAL DE VANZARI"
*!* Select actcv
*!* Report Form registru_vanzari_jtva2007 To Printer Prompt Preview
*!* Else
*!* amessagebox("Nu exista inregistrari pentru listare!",48,"Atentie")
*!* Endif
lcRaport = [registru_vanzari_jtva2007]
Case tcVC = 'C'
lcCursor = [cListRC]
pctitlu = "Registru cumparari"
pcschema = ['id_jc n(4),an n(4),luna n(2),totctva n(20,4),id_part n(20),id_fdoc n(20),dataact d,'+] + ;
['serie_act c(10),nract N(20),ro19bcb n(20,4),ro19bct n(20,4),ro19bvb n(20,4),ro19bvt n(20,4),ro19bfb n(20,4),'+] + ;
['ro19bft n(20,4),ro09bcb n(20,4),ro09bct n(20,4),ro09bvb n(20,4),ro09bvt n(20,4),ro09bfb n(20,4),'+] + ;
['ro09bft n(20,4),roscn n(20,4),fo19bcb n(20,4),fo19bct n(20,4),fo19bvb n(20,4),fo19bvt n(20,4),'+] + ;
['fo19bfb n(20,4),fo19bft n(20,4),fo09bcb n(20,4),fo09bct n(20,4),fo09bvb n(20,4),fo09bvt n(20,4),'+] + ;
['fo09bfb n(20,4),fo09bft n(20,4),foscn n(20,4),cebcb n(20,4),cebct n(20,4),cebvb n(20,4),cebvt n(20,4),'+] + ;
['cebvsc n(20,4),cebvn n(20,4),cebfb n(20,4),cebft n(20,4),cebfsc n(20,4),cebfn n(20,4),ti19bcb n(20,4),'+] + ;
['ti19bct n(20,4),ti19bvb n(20,4),ti19bvt n(20,4),ti19bfb n(20,4),ti19bft n(20,4),ti09bvb n(20,4),'+] + ;
['ti09bvt n(20,4),ti09bfb n(20,4),ti09bft n(20,4),cod n(20),fel_document c(30),denumire c(70),cod_fiscal c(30),sucursala c(100)']
pcselect = ['select id_jc, an, luna, totctva, id_part, id_fdoc, dataact, serie_act, nract, ro19bcb, ro19bct, ro19bvb,'+] + ;
['ro19bvt, ro19bfb, ro19bft, ro09bcb, ro09bct, ro09bvb, ro09bvt, ro09bfb, ro09bft, roscn, fo19bcb, fo19bct,'+] + ;
['fo19bvb, fo19bvt, fo19bfb, fo19bft, fo09bcb, fo09bct, fo09bvb, fo09bvt, fo09bfb, fo09bft, foscn, cebcb,'+] + ;
['cebct, cebvb, cebvt, cebvsc, cebvn, cebfb, cebft, cebfsc, cebfn, ti19bcb, ti19bct, ti19bvb, ti19bvt,'+] + ;
['ti19bfb, ti19bft, ti09bvb, ti09bvt, ti09bfb, ti09bft, cod, fel_document, denumire, cod_fiscal, sucursala '+] + ;
['from vjc2007 where 1=2']
pcfiltru = [luna=] + Alltrim(Str(gnLuna)) + [ and an=] + Alltrim(Str(gnAn)) + gcCondSucursala
pcorder = [dataact,serie_act,nract]
llAfisare = .F.
gencursor('pocump', 'actcv', pcselect, pcfiltru, pcschema, pcorder, llAfisare)
pocump.ca_baza1.afisare()
Do Case
Case Alltrim(Upper(tcTipRapRC)) = 'RO'
pcSubtitlu = "Achizitii de bunuri si prestari de sevicii taxabile din tara"
Select * ;
From actcv ;
Where ro19bcb <> 0 Or ro19bct <> 0 Or ro19bvb <> 0 Or ro19bvt <> 0 Or ro19bfb <> 0 Or ro19bft <> 0 Or ;
ro09bvb <> 0 Or ro09bvt <> 0 Or ro09bfb <> 0 Or ro09bft <> 0 Or roscn <> 0 Order By dataact, serie_act, nract ;
Into Cursor (lcCursor)
*!* If Reccount('cListRc')>0
*!* Select cListRC
*!* Report Form registru_cumparari_jtva2007_ro To Printer Prompt Preview
*!* Else
*!* amessagebox("Nu exista inregistrari pentru listare!",48,"Atentie")
*!* Endif
lcRaport = [registru_cumparari_jtva2007_ro]
Case Alltrim(Upper(tcTipRapRC)) = 'FO'
pcSubtitlu = "Achizitii de bunuri si prestari de sevicii taxabile din import"
Select * ;
From actcv ;
Where fo19bcb <> 0 Or fo19bct <> 0 Or fo19bvb <> 0 Or fo19bvt <> 0 Or fo19bfb <> 0 Or fo19bft <> 0 Or ;
fo09bvb <> 0 Or fo09bvt <> 0 Or fo09bfb <> 0 Or fo09bft <> 0 Or foscn <> 0 Order By dataact, serie_act, nract ;
Into Cursor (lcCursor)
*!* If Reccount('cListRc')>0
*!* Select cListRC
*!* Report Form registru_cumparari_jtva2007_fo To Printer Prompt Preview
*!* Else
*!* amessagebox("Nu exista inregistrari pentru listare!",48,"Atentie")
*!* Endif
lcRaport = [registru_cumparari_jtva2007_fo]
Case Alltrim(Upper(tcTipRapRC)) = 'CE'
pcSubtitlu = "Achizitii intracomunitare de bunuri"
Select * ;
From actcv ;
Where cebcb <> 0 Or cebct <> 0 Or cebvb <> 0 Or cebvt <> 0 Or cebvsc <> 0 Or cebvn <> 0 Or ;
cebfb <> 0 Or cebft <> 0 Or cebfsc <> 0 Or cebfn <> 0 Order By dataact, serie_act, nract ;
Into Cursor (lcCursor)
*!* If Reccount('cListRC')>0
*!* Select cListRC
*!* Report Form registru_cumparari_jtva2007_ce To Printer Prompt Preview
*!* Else
*!* amessagebox("Nu exista inregistrari pentru listare!",48,"Atentie")
*!* Endif
lcRaport = [registru_cumparari_jtva2007_ce]
Case Alltrim(Upper(tcTipRapRC)) = 'TI'
pcSubtitlu = "Bunuri si Sevicii pentru care cumparatorul este obligat la plata taxei (din Tara, Import si Servicii UE) - Taxare Inversa"
Select * ;
From actcv ;
Where ti19bcb <> 0 Or ti19bct <> 0 Or ti19bvb <> 0 Or ti19bvt <> 0 Or ti19bfb <> 0 Or ti19bft <> 0 Or ;
ti09bvb <> 0 Or ti09bvt <> 0 Or ti09bfb <> 0 Or ti09bft <> 0 Order By dataact, serie_act, nract ;
Into Cursor (lcCursor)
*!* If Reccount('cListRC')>0
*!* Select cListRC
*!* Report Form registru_cumparari_jtva2007_ti To Printer Prompt Preview
*!* Else
*!* amessagebox("Nu exista inregistrari pentru listare!",48,"Atentie")
*!* Endif
lcRaport = [registru_cumparari_jtva2007_ti]
Endcase
If Used('ACTCV')
Use In actcv
Endif
*!* If Used('cListRC')
*!* Use In cListRC
*!* Endif
Endcase
goExport.export2frx(lcCursor, lcRaport)
*!* If Used('ACTCV')
*!* Use In actcv
*!* Endif
If Used(lcCursor)
Use In (lcCursor)
Endif
Endproc && listare_registru_vanzcump_2007
********************************** SFARSIT: listare_registru_vanzcump_2007 **************************
********************************** INCEPUT:rap_facturi_emise_pe_zile***************************
Procedure rap_facturi_emise_pe_zile
Private pctitlu, pddata_emisi, pddata_emisf && pcDataOra
Store '' To pctitlu && ,pcDataOra
pddata_emisi = Date()
pddata_emisf = Date()
Do Form frm_filtru_numar Name ofrm_filtru Linked With [a.dataact], [Data incasarii], 1, 1, 'D', [], 0 To lcFiltruData Noshow
ofrm_filtru.text1.SetFocus()
ofrm_filtru.text1.ControlSource = [pddata_emisi]
ofrm_filtru.text2.ControlSource = [pddata_emisf]
ofrm_filtru.Show(1)
pcperioada = [Perioada: ] + Alltrim(Dtoc(pddata_emisi)) + [-] + Alltrim(Dtoc(pddata_emisf))
lcOrdonare = [dataact,serie_act,nract]
lcSelect = [select dataact,serie_act,nract, nume, debit + precdeb as totctva from ] + gcs + [.vireg_parteneri ] + ;
[where dataact >= ?pddata_emisi and dataact <= ?pddata_emisf and cont = '4111' ] + ;
[and an = ?gnAn and luna = ?gnLuna ] + gcCondSucursala + ;
[ order by ] + lcOrdonare
lcCursor = [cFacturi]
lnSucces = goExecutor.oExecute(lcSelect, lcCursor)
If lnSucces < 0
amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare')
Return
Endif
*!* If Reccount(lcCursor)>0
pctitlu = [Facturi emise in perioada ] + Alltrim(Dtoc(pddata_emisi)) + [-] + Alltrim(Dtoc(pddata_emisf))
*!* lctitlu = [Facturi emise in perioada ] + Alltrim(Dtoc(pddata_emisi)) + [-] + Alltrim(Dtoc(pddata_emisf))
*!* pctitlu = ceretitlu_rap('Titlul Raportului',lctitlu)
*!* pcDataOra = Get_Ora(2)
goExport.export2frx(lcCursor, [rap_facturi_emise], .T.)
*!* Select (lcCursor)
*!* Report Format rap_facturi_emise To Printer Prompt Preview
*!* Else
*!* amessagebox("Nu exista inregistrari pentru listare!",48,"Atentie")
*!* Endif
Use In (lcCursor)
Endproc
********************************** SFARSIT: rap_facturi_emise_pe_zile**************************
********************************** INCEPUT: rap_facturi_grupat_pe_lucari_parteneri **************************
Procedure rap_fact_grup_pe_lucari_parteneri
Parameters tccont, tlActiv, tnShowForm
Private pnIdLucrare, pccont
pnIdLucrare = 0
If Empty(tccont)
pccont = []
Else
pccont = Alltrim(tccont)
Endif
plActiv = tlActiv
If tnShowForm = 1 Or Empty(pccont)
ofrm = Createobject('frm_facturi_grupat')
With ofrm
.lcCont = pccont
.llActiv = plActiv
.lcTitlu = [Situatie facturi ] + pccont
.clb_tx_simplu1.text_simplu1.Value = pccont
.lhide = .T.
Endwith
ofrm.Show(1)
pccont = ofrm.lcCont
pnIdLucrare = ofrm.lnIdLucrare
plActiv = ofrm.llActiv
pctitlu = ofrm.lcTitlu
ofrm.Release
Else
pcselect = [select id_lucrare, nrord from vlucrari_validat]
pcfiltru = [1=2]
pcschema = []
pcorder = [nrord]
pccoloane = [nrord]
pctitlu = [Alegeti lucrarea/contractul]
pcFiltruOriginal = [validat = 0 and inactiv = 0]
locauta = cauta_alfa(pcselect, pcfiltru, pcschema, pcorder, pccoloane, pctitlu, pctitlu, [], .T., pcFiltruOriginal) && 11.07.2007
pnIdLucrare = Iif(Empty(locauta.id_lucrare), 0, locauta.id_lucrare)
Endif
If gnButon = 2
Return
Endif
pcCondLucrare = Iif(Empty(pnIdLucrare), [1=1], [id_lucrare = ?pnIdLucrare])
lcSelect = [select dataact,datascad, serie_act, nract, nume, id_part,id_lucrare,nrord,SUM(] + Iif(plActiv, [debit + precdeb], [credit + preccred]) + [) as tot_fact, ] + ;
[SUM(] + Iif(plActiv, [credit + preccred], [debit + precdeb]) + [) as tot_achit, ] + ;
[00000000000000.0000 as sold_lucrare, 00000000000000.0000 as sold_part ] + ;
[from ] + gcs + [.vireg_parteneri ] + ;
[where cont = ?pcCont and ] + pcCondLucrare + ;
[ and an = ?gnAn and luna = ?gnLuna ] + gcCondSucursala + [ ] + ;
[group by dataact, datascad, serie_act, nract, nume, id_part, id_lucrare, nrord ] + ;
[order by nrord, id_lucrare, nume, id_part, dataact, serie_act, nract]
lcCursor = [cFacturi]
lnSucces = goExecutor.oExecute(lcSelect, lcCursor)
If lnSucces < 0
amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare')
Return
Endif
**** calcul sold cumulat
*!* lnIdLucrare = 0
*!* lnIdPart = 0
*!* lnSoldLucrare = 0
*!* lnSoldPart = 0
*!* SELECT cFacturi
*!* SCAN
*!* SCATTER NAME osold
*!* lnNrRand = RECNO()
*!* IF lnIdLucrare <> osold.id_lucrare
*!* lnIdLucrare = osold.id_Lucrare
*!* lnSoldLucrare = 0
*!* ENDIF
*!* IF lnIdPart <> osold.id_part
*!* lnIdPart = osold.id_part
*!* lnSoldPart = 0
*!* ENDIF
*!* lnSoldLucrare = lnSoldLucrare + NVL(osold.tot_fact,0) - NVL(osold.tot_achit,0)
*!* lnSoldPart = lnSoldPart + NVL(osold.tot_fact,0) - NVL(osold.tot_achit,0)
*!* REPLACE sold_lucrare WITH lnSoldLucrare, sold_part WITH lnSoldPart
*!* SELECT cFacturi
*!* ENDSCAN
****
*!* If Reccount(lcCursor)>0
If tnShowForm = 0
lcTitlu = [Facturi ] + pccont
pctitlu = ceretitlu_rap('Titlul Raportului', lcTitlu)
Endif
*!* pcDataOra = Get_Ora(2)
goExport.export2frx(lcCursor, [ireg_parteneri_rpt4])
*!* Select (lcCursor)
*!* Report Form ireg_parteneri_rpt4.frx To Printer Prompt Preview
*!* Else
*!* amessagebox("Nu exista inregistrari pentru listare!",48,"Atentie")
*!* Endif
If Used(lcCursor)
Use In &lcCursor
Endif
Endproc && rap_fact_grup_pe_lucari_parteneri
********************************** SFARSIT: rap_facturi_grupat_pe_lucari_parteneri **************************
*!* modificare v 2.0.77
Procedure sold_fact_pe_vechimi
Lparameters tctip, tlEmitere
*** tcTip: C (clienti 4111,4118); F (furnizori 401); A (activ se alege contul)
*** tlEmitere: .T. vechime fata de data emiterii sau .F. fata de data scadenta
Local loFrm, lcExplicatie, lcSql, lcRaport, loFrmPerioada
Private pdData
pdData = Date(gnAn, gnLuna, 1)
loFrm = Createobject("frm_data")
loFrm.lb_titlu_alb_b121.Caption = "Data referinta"
loFrm.Show(1)
Private pnEActiv
Local lcString, lcCont
Store "" To lcCont, lcString
Store .F. To pnEActiv
If tctip = [A]
Do Alege_Cont With lcCont, pnEActiv
If buton = 2
Return
Endif
Endif
*** la sold facturi pe vechimi 4111 fata de data emitere am acelasi raport ca la ALTII/ACTIV
If m.tctip = [C] And tlEmitere = .T.
tctip = [A]
lcCont = [4111]
pnEActiv = .T.
Endif
lcSelect = [SELECT varname,varvalue FROM optiuni where varname like 'VECHIME%']
lcCursor = [crsOptiuni]
lnSucces = goExecutor.oExecute(lcSelect, lcCursor)
If lnSucces < 0
amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare')
Return
Endif
If Reccount('crsOptiuni') = 0
amessagebox("Baza de date nu a fost actualizata!", 48, "Atentie")
Else
Select crsOptiuni
Scan
lcnume = Alltrim(varname)
lnValoare = Val(Alltrim(varvalue))
gn&lcnume. = lnValoare
Endscan
loFrmPerioada = Createobject("frm_alegeperioada", m.tctip, m.lcCont, m.tlEmitere)
loFrmPerioada.lb_titlu_alb_b121.Caption = "Alegeti perioada"
loFrmPerioada.Show(1)
*!* modificare v 2.0.77 ^
Endif
Release pctitlu, pdData, loFrm, lcExplicatie, lcSql, lcRaport
Endproc && sold_fact_pe_vechimi
*************************************************************************************************************
Procedure proc_scadentar
Lparameters tctip, tccont
*tcCont - completez doar pentru furnizori
Local loFrm, lcExplicatie, lcSql, lcRaport
Private pdData, pctitlu
pdData = Date(gnAn, gnLuna, 1)
loFrm = Createobject("frm_data")
loFrm.lb_titlu_alb_b121.Caption = "Data referinta"
loFrm.Show(1)
If gnButon = 1
If tctip = [C]
lcExplicatie = [CLIENTI]
lcSql = [select a.id_part,b.denumire,Sum(a.sold) As sold,] + ;
[SUM(case when NVL(datascad,add_months(dataact,1))< = ?pdData And ] + ;
[ a.incert = 0 then a.sold else 0.00 end) As rest_30, ] + ;
[ nract,dataact,datascad, to_char(nract)||'/'||to_char(dataact,'DD.MM.YYYY') as expli] + ;
[ from ] + ;
[ (Select id_part, NVL(datascad, dataact + 30) as datascad,nract,dataact, ] + ;
[ sum((precdeb + debit) - (preccred + credit)) As sold, ] + ;
[ (case when cont = '4118' then 1 else 0 end) As incert ] + ;
[ FROM ireg_parteneri ] + ;
[ WHERE ] + ;
[ (precdeb + debit) - (preccred + credit) <> 0 ] + ;
[ and luna = ?gnLuna ] + ;
[ and an = ?gnAn ] + ;
gcCondSucursala + ;
[ and cont in ('4111', '4118') group by id_part,datascad,nract,dataact,cont) a ] + ;
[ left join nom_parteneri b on a.id_part = b.id_part ] + ;
[ GROUP By a.id_part, b.denumire, a.nract,a.dataact,a.datascad ] + ;
[ order by b.denumire]
Else
lcExplicatie = [FURNIZORI]
lcSql = [Select a.id_part,b.denumire,Sum(a.sold) As sold,] + ;
[SUM(case when NVL(datascad,add_months(dataact,1)) < = ?pdData then a.sold else 0.00 end) As rest_30, ] + ;
[ nract,dataact,datascad, to_char(nract)||'/'||to_char(dataact,'DD.MM.YYYY') as expli] + ;
[ from ] + ;
[ (Select id_part, NVL(datascad, dataact + 30) as datascad,nract,dataact, ] + ;
[ (preccred + credit) - (precdeb + debit) As sold ] + ;
[ FROM ireg_parteneri ] + ;
[ WHERE ] + ;
[ (preccred + credit) - (precdeb + debit) <> 0 ] + ;
[ and luna = ?gnLuna ] + ;
[ and an = ?gnAn ] + ;
gcCondSucursala + ;
[ and cont =] + tccont + [) a ] + ;
[ left join nom_parteneri b on a.id_part = b.id_part ] + ;
[ GROUP By a.id_part, b.denumire, a.nract,a.dataact,a.datascad ] + ;
[ order by b.denumire]
Endif
lnSucces = goExecutor.oExecute(lcSql, [crsdaterap])
If lnSucces < 0
amessagebox(goExecutor.cEroare, 16, "Eroare")
Else
Select Distinct id_part, denumire, Sum(sold) As sold, Sum(rest_30) As rest_30, Cast('' As Memo) As listaf;
From crsDateRap Group By id_part, denumire Order By denumire ;
Into Cursor crsScadentar Readwrite
Local lcMemo
Select crsScadentar
Scan
Scatter Name ocrs
Select * From crsDateRap Where id_part = ocrs.id_part And Nvl(datascad, Gomonth(dataact, 1)) <= pdData Into Cursor crsTmp
lcMemo = []
lcMemo = cursor2lista('crsTmp', 'expli', ', ')
Select crsScadentar
Replace listaf With lcMemo
If Used('crsTmp')
Use In crsTmp
Endif
Select crsScadentar
Endscan
lcRaport = [rap_scadentar]
Select crsScadentar
pctitlu = [RAPORT SCADENTAR ] + lcExplicatie
goExport.export2frx([crsScadentar], lcRaport)
IF RECCOUNT('crsScadentar') > 0 AND AMESSAGEBOX('Doriti salvare in fisier xlsx?',4+32,_screen.Caption)=6
goExport.export2xlsx([crsScadentar], 'scadentar')
ENDIF
Endif
Use In (SELECT('crsDateRap'))
Use In (SELECT('crsScadentar'))
Endif
Release pctitlu, pdData, loFrm, lcExplicatie, lcSql, lcRaport
Endproc && proc_scadentar
*************************************************************************************************************
Procedure parteneri_cu_sold_final
Lparameters tlInValuta, tccont, tlEActiv, tlCumulat && modificare v 2.1.11 : tlCumulat
Local lcCont, llEActiv, llParametri, llInValuta, lcRaport
llInValuta = tlInValuta
If !Empty(tccont)
lcCont = Alltrim(tccont)
llParametri = .T.
Else
lcCont = ''
llParametri = .F.
Endif
If Pcount() >= 3
llEActiv = tlEActiv
Else
If !Empty(tccont)
lcSql = [select fel_cont from ] + gcs + [.config_cont_ireg where cont = '] + Alltrim(lcCont) + [']
lnSucces = goExecutor.oExecute(lcSql, [crsfelcont])
If lnSucces < 0
llEActiv = .F.
Else
If Reccount('crsfelcont') > 0
Select crsfelcont
llEActiv = Iif(fel_cont = 0, .T., .F.)
Else
llEActiv = .F.
Endif
Use In crsfelcont
Endif
Else
llEActiv = .F.
Endif
Endif
Private plActiv, eActiv, pctitlu, t1, t2, t3, t4
Store .T. To plActiv, eActiv
If !llParametri
Private polista, pcschema1, pcselect1, pcfiltru1, pcorder1
Store "" To polista
If Used('clista')
Use In clista
Endif
pcschema1 = ['cont c(4),acont c(4),explicatie c(50),fel_cont n(1)']
pcselect1 = ['select cont,rpad(CHR(32),4,CHR(32)) as acont,explicatie,fel_cont from ] + gcs + [.config_cont_ireg where 1=2']
pcfiltru1 = [cu_inregistrari=1]
pcorder1 = [cont]
llAfisare = .F.
gencursor('polista', 'clista', pcselect1, pcfiltru1, pcschema1, pcorder1, llAfisare)
polista.ca_baza1.afisare()
Select clista
loCont = myscatter('blank')
Ol = Createobject("frm_sel_cont")
With Ol
.lb_titlu_alb_b121.Caption = 'Selectati contul'
If Empty(.cboCont.RowSource)
.cboCont.RowSource = "clista.cont,explicatie"
.cboCont.ColumnWidths = '40,150'
Endif
.ocont = loCont
If Empty(.cAlias)
.cAlias = Left(.cboCont.RowSource, At(".", .cboCont.RowSource) - 1)
Endif
.Height = 190
.lhide = .T.
Endwith
Ol.Show(1)
llEActiv = Iif(Ol.nFel_Cont = 0, .T., .F.)
Ol.Release
If gnButon = 2
Use In clista
Release plActiv, eActiv, pctitlu
Return
Else
lcCont = Alltrim(loCont.Cont)
llEActiv = plActiv
Endif
Endif
eActiv = llEActiv
lcSql = [select a.id_ireg_part,a.an,a.luna,a.id_fact,a.id_part,a.cont,a.id_valuta,a.precdeb,a.preccred,a.precvaldeb,a.precvalcred,] + ;
[a.debit,a.credit,a.valdebit,a.valcredit,a.nract,a.serie_act,a.dataact,a.datascad,a.curs,a.cod,a.explicatia,a.explicatia4,] + ;
[a.explicatia5,a.id_fdoc,a.id_lucrare,a.id_ctr,a.id_sucursala,b.denumire as nume,c.nume_val,d.fel_document as fdoc,e.nrord,] + ;
[nvl2(f.numar, f.numar || '/', '') || to_char(f.data, 'dd.mm.yyyy') as contract from ] + ;
[(SELECT ID_IREG_PART,AN,LUNA,ID_FACT,ID_PART,CONT,ID_VALUTA,PRECDEB,PRECCRED,PRECVALDEB,PRECVALCRED,] + ;
[DEBIT,CREDIT,VALDEBIT,VALCREDIT,NRACT,SERIE_ACT,DATAACT,DATASCAD,CURS,COD,EXPLICATIA,EXPLICATIA4,] + ;
[EXPLICATIA5,ID_FDOC,ID_LUCRARE,ID_CTR,ID_SUCURSALA,] + ;
[sum(] + Iif(llEActiv, [(precdeb + debit) - (preccred + credit)], [(preccred + credit) - (precdeb + debit)]) + ;
[) over(partition by an, luna, id_part) as sold_final ] + ;
[FROM ] + gcs + [.IREG_PARTENERI WHERE cont ='] + m.lcCont + [' and luna = ?gnLuna and an = ?gnAn) a ] + ;
[left join ] + gcs + [.nom_parteneri b on a.id_part = b.id_part ] + ;
[left join ] + gcs + [.nom_valute c on a.id_valuta = c.id_valuta ] + ;
[left join ] + gcs + [.nom_fdoc d on a.id_fdoc = d.id_fdoc ] + ;
[left join ] + gcs + [.vnom_lucrari e on a.id_lucrare = e.id_lucrare ] + ;
[left join ] + gcs + [.contracte f on a.id_ctr = f.id_ctr ] + ;
[where a.sold_final <> 0 and ] + Iif(llEActiv, [(a.precdeb+a.debit)-(a.preccred+a.credit)], [(a.preccred+a.credit)-(a.precdeb+a.debit)]) + [ <> 0 ] + ;
[ORDER BY b.denumire, a.id_part, a.dataact, a.serie_act, a.nract]
lnSucces = goExecutor.oExecute(lcSql, [crslistare])
If lnSucces < 0
amessagebox(goExecutor.cEroare, 16, "Eroare")
Else
If llInValuta
lcRaport = [ireg_parteneri_rpt2]
pctitlu = [Inregistrari parteneri cont ] + Alltrim(lcCont) + [ cu sold final - in lei si valuta] && modificare v 2.1.11
Else
*!* modificare v 2.1.11
*!* lcRaport = [ireg_parteneri_rpt2lei]
If tlCumulat
lcRaport = [ireg_parteneri_rpt2lei_cum]
pctitlu = [Inregistrari parteneri cont ] + Alltrim(lcCont) + [ cu sold final - in lei (cu sold cumulat)]
Else
lcRaport = [ireg_parteneri_rpt2lei]
pctitlu = [Inregistrari parteneri cont ] + Alltrim(lcCont) + [ cu sold final - in lei]
Endif
*!* modificare v 2.1.11 ^
Endif
*!* pctitlu = [Inregistrari parteneri cont ] + Alltrim(lcCont) + [ cu sold final - in lei ] + Iif(tlInValuta,[si valuta],[]) && modificare v 2.1.11
t1 = [Total ] + Iif(llEActiv, [debit], [credit])
t2 = [Total ] + Iif(llEActiv, [credit], [debit])
t3 = [Total ] + Iif(llEActiv, [debit], [credit]) + [ valuta]
t4 = [Total ] + Iif(llEActiv, [credit], [debit]) + [ valuta]
goExport.export2frx([crslistare], lcRaport, .T., , , , , .T.)
Endif
If Used('crslistare')
Use In crslistare
Endif
Release plActiv, eActiv, pctitlu
Endproc && parteneri_cu_sold_final
*************************************************************************************************************
Procedure istoric_clienti
Local locauta, loFrm, loFrmPerioada, lcCursor, lcCursor1
Local lcCursor2, lcExceptii, lcPerioada, lcSelect, lcSelect1, lcSql, lcTitlu, lnAn1, lnAn2, lnFinal
Local lnInit, lnLuna1, lnLuna2, lnSucces, lnSucces1
*:Global oInc
Private pcondper
Store "" To pcondper
locauta = caut_parteneri('4111', 'Alegeti clientul')
If gnButon = 1
loFrmPerioada = Createobject('frm_perioada_luni')
loFrmPerioada.Show(1)
If gnButon = 2
Return
Endif
If At('_', pcondper) > 0
lnAn1 = Val(Substr(pcondper, 3, 4))
lnLuna1 = Val(Substr(pcondper, 1, 2))
lnAn2 = Val(Substr(pcondper, 10, 4))
lnLuna2 = Val(Substr(pcondper, 8, 2))
lcPerioada = Substr(pcondper, 1, 2) + '/' + Substr(pcondper, 3, 4) + ' - ' + Substr(pcondper, 8, 2) + '/' + Substr(pcondper, 10, 4)
Else
lnAn1 = Val(Substr(pcondper, 3, 4))
lnLuna1 = Val(Substr(pcondper, 1, 2))
lnAn2 = Val(Substr(pcondper, 3, 4))
lnLuna2 = Val(Substr(pcondper, 1, 2))
lcPerioada = Substr(pcondper, 1, 2) + '/' + Substr(pcondper, 3, 4) + ' - ' + Substr(pcondper, 1, 2) + '/' + Substr(pcondper, 3, 4)
Endif
lnInit = lnAn1 * 12 + lnLuna1
lnFinal = lnAn2 * 12 + lnLuna2
Local loTherm
loTherm = Newobject("_thermometer", "_therm", "", "Istoric clienti...")
loTherm.Show()
lcSql = [select * from ] + gcs + [.exceptii_ireg where invers = 1 and debit = 1 and cont = '4111']
lcCursor = [ex_debit]
lnSucces = goExecutor.oExecute(lcSql, lcCursor)
lcExceptii = [-1]
If lnSucces < 0
amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare')
Return
Else
Select (lcCursor)
Scan
lcExceptii = lcExceptii + ',' + Alltrim(cont_c)
Endscan
Use In (lcCursor)
Endif
*!* facturile
loTherm.Update(15, "Culegere date facturi...")
lcSelect = [select a.an,a.luna,a.cod,a.id_fact,a.data_factura,a.serie_factura,a.nr_factura,a.id_valuta,a.nume_val,a.suma_factura,a.suma_val_Factura,] + ;
[Nvl(b.nr,0) as nratasamente from ] + ;
[(select an,luna,cod,id_fact,dataact as data_factura,serie_act as serie_factura,nract as nr_factura,id_valuta,nume_val,] + ;
[sum(debit + precdeb) as suma_factura,] + ;
[Sum(valdebit + precvaldeb) as suma_val_factura ] + ;
[ from ] + gcs + [.vireg_parteneri ] + ;
[ where cont = '4111' and id_part = ] + Alltrim(Str(locauta.id_part)) + ;
[ and luna+12*an between ] + Alltrim(Str(lnInit)) + [ and ] + Alltrim(Str(lnFinal)) + [ ] + gcCondSucursala + ;
[ and (luna + 12*an =to_number(to_char(dataireg,'MM'),'99') + 12*to_number(to_char(dataireg,'YYYY'),'9999')) ] + ;
[ group by an, luna, cod, id_fact, dataact, serie_act, nract,id_valuta,nume_val) a ] + ;
[left join ] + ;
[(select count(*) as nr,cod from vatasamente_vanzari group by cod) b on a.cod = b.cod ] + ;
[order by a.an,a.luna,a.id_valuta,a.data_factura,a.serie_factura,a.nr_factura]
lcCursor = [cFacturi]
If Used(lcCursor)
Use In (lcCursor)
Endif
lnSucces = goExecutor.oExecute(lcSelect, lcCursor)
If lnSucces < 0
amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare')
Return
Endif
Select (lcCursor)
Replace All data_factura With {} For Isnull(data_factura)
*!* incasarile
If Reccount(lcCursor) <> 0
loTherm.Update(45, "Culegere date incasari...")
lcSelect1 = [Select a.dataact as data_incasare,] + ;
[a.serie_act as serie_incasare,a.nract as nr_incasare,] + ;
[(case when a.scc = '4427' then a.pereched else a.perechec end) as nr_factura,] + ;
[(case when a.scc = '4427' then a.id_factd else a.id_factc end) as id_fact,] + ;
[(case when a.scc = '4427' then (-1)*a.suma else a.suma end) as incasat,] + ;
[(case when a.scc = '4427' then (-1)*a.suma_val else a.suma_val end) as incasat_val,] + ;
[a.id_valuta as id_valuta_inc,b.nume_val as nume_val_inc ] + ;
[ from ] + gcs + [.act a ] + ;
[left join ] + gcs + [.nom_valute b on a.id_valuta = b.id_valuta ] + ;
[ where a.sters = 0 and ((a.scc = '4111' and a.id_partc = ] + Alltrim(Str(locauta.id_part)) + [ and (a.perechec <> 0 or a.id_factc <>0))] + ;
[ OR (a.SCD = '4111' AND a.SCC = '4427' AND a.id_partd = ] + Alltrim(Str(locauta.id_part)) + [ ] + ;
[AND (NVL(a.PERECHED,0) <> 0 OR NVL(a.ID_FACTD,0)<>0)))] + ;
[ and (to_number(a.scd) not in (] + lcExceptii + [)) and a.luna+12*a.an between ] + Alltrim(Str(lnInit)) + [ and ] + Alltrim(Str(lnFinal)) + ;
Strtran(gcCondSucursala, [id_sucursala], [a.id_sucursala]) + ;
[ order by a.serie_act, a.nract, a.dataact]
lcCursor1 = [crsincasari]
If Used(lcCursor1)
Use In (lcCursor1)
Endif
lnSucces1 = goExecutor.oExecute(lcSelect1, lcCursor1)
If lnSucces1 < 0
amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare')
Return
Endif
Select (lcCursor1)
Replace All data_incasare With {} For Isnull(data_incasare)
loTherm.Update(75, "Imperechere facturi - incasari...")
lcCursor2 = [crsistoric]
Create Cursor (lcCursor2) (id_fact N(20), cod N(20), id_valuta N(10), nume_val c(4), id_valuta_inc N(10), nume_val_inc c(4), ;
data_factura d, serie_factura c(10), nr_factura N(14), suma_factura N(18, 4), suma_val_factura N(18, 4), incasat N(18, 4), ;
sold N(18, 4), sold_val N(18, 4), nratasamente N(10))
Insert Into (lcCursor2) (id_fact, cod, id_valuta, nume_val, ;
data_factura, serie_factura, nr_factura, suma_factura, suma_val_factura, sold, sold_val, nratasamente) ;
Select id_fact, cod, id_valuta, nume_val, Nvl(Ttod(data_factura), {}) As data_factura, Nvl(serie_factura, []) As serie_factura, ;
nr_factura, suma_factura, suma_val_factura, ;
suma_factura As sold, suma_val_factura As sold_val, nratasamente From (lcCursor) Order By data_factura, serie_factura, nr_factura
Select (lcCursor1)
Scan
Scatter Name oInc
Select (lcCursor2)
Locate For id_fact = oInc.id_fact
If Found()
Replace incasat With incasat + oInc.incasat, ;
sold With sold - oInc.incasat, ;
sold_val With Iif(id_valuta = oInc.id_valuta_inc And id_valuta <> 0 And suma_val_factura <> 0, sold_val - oInc.incasat_val, sold_val)
Endif
Select (lcCursor1)
Endscan
Endif
loTherm.Complete()
Release loTherm
If Reccount(lcCursor) = 0
amessagebox("Nu exista facturi pentru " + Alltrim(locauta.denumire) + " (" + lcPerioada + ") !", 64, "Istoric facturi clienti")
Else
lcTitlu = [Istoric facturi] + Iif(locauta.id_part <> -1, [ ] + Alltrim(locauta.denumire), []) + [ (] + lcPerioada + [)]
loFrm = Createobject('frm_istoric_clienti', lcTitlu)
loFrm.Show(1)
If Used(lcCursor1)
Use In (lcCursor1)
Endif
If Used(lcCursor2)
Use In (lcCursor2)
Endif
Endif
If Used(lcCursor)
Use In (lcCursor)
Endif
Endif
ENDPROC && istoric_clienti
*************************************************
*** Tabel facturi si incasari
*** Facturi din inregistrari parteneri, Incasari din act
*** !!!! in lucru, trebuie terminat. a fost inceput, dar neterminat
*************************************************
Procedure istoric_terti
LPARAMETERS tcCont, tcTipCont
* tcCont (optional) cont
* tcTipCont (optional) A/P pentru selectia incasarilor/platilor din reg. jurnal de pe debit/credit
LOCAL loCont, lcTipCont
PRIVATE pcCont
Local locauta, loFrm, loFrmPerioada, lcCursor, lcCursor1
Local lcCursor2, lcExceptii, lcPerioada, lcSelect, lcSelect1, lcSql, lcTitlu, lnAn1, lnAn2, lnFinal
Local lnInit, lnLuna1, lnLuna2, lnSucces, lnSucces1
*:Global oInc
Private pcondper
Store "" To pcondper
IF !EMPTY(m.tcCont)
pcCont = ALLTRIM(m.tcCont)
lcTipCont = IIF(!EMPTY(m.tcTipCont), UPPER(ALLTRIM(m.tcTipCont)), 'A') && Activ/Pasiv/Bifunctional
ELSE
loCont=ret_cont("Selectati contul",'4')
IF TYPE('loCont') # 'O' OR buton = 2
RELEASE loCont
RETURN
ENDIF
pcCont = locont.cont
lcTipCont = UPPER(ALLTRIM(NVL(loCont.tip_cont, ''))) && A/P/B
ENDIF
IF EMPTY(m.pcCont)
RETURN
ENDIF
lcTipCont = IIF(!INLIST(m.lcTipCont, 'A', 'P'), 'A', m.lcTipCont)
locauta = caut_parteneri(m.pcCont, 'Alegeti partenerul ' + m.pcCont)
If m.gnButon = 2
RETURN
ENDIF
loFrmPerioada = Createobject('frm_perioada_luni')
loFrmPerioada.Show(1)
If m.gnButon = 2
Return
Endif
If At('_', pcondper) > 0
lnAn1 = Val(Substr(pcondper, 3, 4))
lnLuna1 = Val(Substr(pcondper, 1, 2))
lnAn2 = Val(Substr(pcondper, 10, 4))
lnLuna2 = Val(Substr(pcondper, 8, 2))
lcPerioada = Substr(pcondper, 1, 2) + '/' + Substr(pcondper, 3, 4) + ' - ' + Substr(pcondper, 8, 2) + '/' + Substr(pcondper, 10, 4)
Else
lnAn1 = Val(Substr(pcondper, 3, 4))
lnLuna1 = Val(Substr(pcondper, 1, 2))
lnAn2 = Val(Substr(pcondper, 3, 4))
lnLuna2 = Val(Substr(pcondper, 1, 2))
lcPerioada = Substr(pcondper, 1, 2) + '/' + Substr(pcondper, 3, 4) + ' - ' + Substr(pcondper, 1, 2) + '/' + Substr(pcondper, 3, 4)
Endif
lnInit = lnAn1 * 12 + lnLuna1
lnFinal = lnAn2 * 12 + lnLuna2
Local loTherm
loTherm = Newobject("_thermometer", "_therm", "", "Istoric ...")
loTherm.Show()
*!* Facturi din ireg_parteneri
loTherm.Update(15, "Culegere date facturi...")
TEXT TO lcSelect TEXTMERGE NOSHOW
select a.an,
a.luna,
a.cod,
a.nume,
a.cod_fiscal,
a.contract,
a.nrord,
a.venchelt,
a.explicatia,
a.fdoc,
a.id_fact,
a.data_factura,
a.serie_factura,
a.nr_factura,
a.id_valuta,
a.nume_val,
a.prec_suma_factura,
a.prec_suma_val_factura,
a.suma_factura,
a.suma_val_factura,
Nvl(b.nr, 0) as nratasamente
from (select an,
luna,
cod,
nume,
cod_fiscal,
contract,
nrord,
venchelt,
explicatia,
id_fact,
dataact as data_factura,
serie_act as serie_factura,
nract as nr_factura,
id_valuta,
nume_val,
SUM(case an*12+luna when <<m.lnInit>> then <<IIF(m.lcTipCont = 'A', 'precdeb', 'preccred')>> else 0 end) as prec_suma_factura,
SUM(case an*12+luna when <<m.lnInit>> then <<IIF(m.lcTipCont = 'A', 'precvaldeb', 'precvalcred')>> else 0 end) as prec_suma_val_factura,
SUM(<<IIF(m.lcTipCont = 'A', 'debit', 'credit')>>) as suma_factura,
Sum(<<IIF(m.lcTipCont = 'A', 'valdebit', 'valcredit')>>) as suma_val_factura
from vireg_parteneri
where cont = ?pcCont
and id_part = <<locauta.id_part>>
and an*12+luna between <<lnInit>> and <<lnFinal>> <<gcCondSucursala>>
group by an,
luna,
cod,
nume,
cod_fiscal,
contract,
nrord,
venchelt,
explicatia,
id_fact,
dataact as data_factura,
serie_act as serie_factura,
nract as nr_factura,
id_valuta,
nume_val) a
left join (select count(*) as nr, cod
from vatasamente_vanzari
group by cod) b on a.cod = b.cod
ENDTEXT
Use In (SELECT('cFacturi'))
lnSucces = goExecutor.oExecute(lcSelect, [cFacturi])
If lnSucces < 0
amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare')
Return
ENDIF
If Reccount('cFacturi') = 0
amessagebox("Nu exista facturi pentru " + Alltrim(locauta.denumire) + " (" + lcPerioada + ") !", 64, "Istoric facturi clienti")
USE IN (SELECT('cFacturi'))
RETURN
ENDIF
*!* Incasari/plati
loTherm.Update(45, "Culegere date incasari/plati...")
TEXT TO lcSelect TEXTMERGE NOSHOW
Select a.dataact as data_incasare,
a.serie_act as serie_incasare,
a.nract as nr_incasare,
a.pereche as nr_factura,
CAST(null as date) as data_factura,
CAST(null as varchar2) as serie_factura,
a.id_fact,
a.suma as incasat,
a.suma_val as incasat_val,
a.id_valuta as id_valuta_inc,
b.nume_val as nume_val_inc,
p.denumire as nume,
p.cod_fiscal
from (select dataact, serie_act, nract, id_part, id_fact, pereche, suma, suma_val, id_valuta
from (select dataact, serie_act, nract, id_partc as id_part, id_factc as id_fact, perechec as pereche, suma, suma_val, id_valuta
from act
where sters = 0
and (scc = ?pcCont <<IIF(m.lcTipCont = 'A', '', 'and 1=2')>> and id_partc = <<locauta.id_part>> and id_factc <> 0)
and (scd not in (select cont_c from exceptii_ireg where cont = ?pcCont and invers = 1))
and an*12 + luna between <<lnInit>> and <<lnFinal>> <<gcCondSucursala>>)
union all
(select dataact, serie_act, nract, id_partd as id_part, id_factd as id_fact, pereched as pereche, suma, suma_val, id_valuta
from act
where sters = 0
and (scd = ?pcCont <<IIF(m.lcTipCont = 'P', '', 'and 1=2')>> and id_partd = <<locauta.id_part>> and id_factd <> 0)
and (scc not in (select cont_c from exceptii_ireg where cont = ?pcCont and invers = 1))
and an*12+luna between <<lnInit>> and <<lnFinal>> <<gcCondSucursala>>)) a
left join nom_valute b on a.id_valuta = b.id_valuta
left join nom_parteneri c on a.id_part = c.id_part
ENDTEXT
Use In (SELECT('crsIncasari'))
lnSucces = goExecutor.oExecute(m.lcSelect, 'crsIncasari')
If lnSucces < 0
amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare')
Return
Endif
loTherm.Update(75, "Imperechere facturi - incasari...")
Create Cursor crsIstoric (tip C(1), id_fact N(20), cod N(20), nume C(100), cod_fiscal C(20), contract C(100), nrord C(100), venchelt C(100), explicatia C(100),;
id_valuta N(10), nume_val c(4), id_valuta_inc N(10), nume_val_inc c(4), ;
data_factura d, serie_factura c(10), nr_factura N(14), ;
prec_suma_factura N(18, 4), prec_suma_val_factura N(18, 4), suma_factura N(18, 4), suma_val_factura N(18, 4), ;
incasat N(18, 4), incasat_val N(18, 4), sold N(18, 4), sold_val N(18, 4), nratasamente N(10), ;
data_incasare D, serie_incasare C(10), nr_incasare N(14))
* Adaug Facturile in istoric
*!* Insert Into crsIstoric (tip, id_fact, cod, id_valuta, nume_val, data_factura, serie_factura, nr_factura, suma_factura, suma_val_factura, sold, sold_val, nratasamente) ;
*!* Select 'F' as tip, id_fact, cod, id_valuta, nume_val, Nvl(Ttod(data_factura), {}) As data_factura, Nvl(serie_factura, []) As serie_factura, ;
*!* nr_factura, suma_factura, suma_val_factura, ;
*!* suma_factura As sold, suma_val_factura As sold_val, nratasamente ;
*!* From cFacturi Order By data_factura, serie_factura, nr_factura
*!* USE IN (SELECT('cFacturi'))
*!* * Completez total incasat pe facturi in istoric
*!* SELECT crsIstoric
*!* INDEX on id_fact TAG id_fact
*!* Select crsIncasari
*!* Scan
*!* Scatter Name oInc
*!* Select crsIstoric
*!* IF SEEK(oInc.id_fact)
*!* Replace incasat With incasat + oInc.incasat, ;
*!* sold With sold - oInc.incasat, ;
*!* incasat_val WITH Iif(id_valuta = oInc.id_valuta_inc And id_valuta <> 0 And suma_val_factura <> 0, incasat_val + oInc.incasat_val, incasat_val), ;
*!* sold_val With Iif(id_valuta = oInc.id_valuta_inc And id_valuta <> 0 And suma_val_factura <> 0, sold_val - oInc.incasat_val, sold_val)
*!* ENDIF
*!* ENDSCAN
*!* * Adaug incasarile in istoric
*!* Insert Into crsIstoric (tip, id_fact, cod, id_valuta, nume_val, nr_factura, data_incasare, serie_incasare, nr_incasare, incasat, incasat_val) ;
*!* Select 'A' as tip, id_fact, 0 as cod, id_valuta_inc as id_valuta, nume_val_inc as nume_val, nr_factura, data_incasare, serie_incasare, nr_incasare, incasat, incasat_val ;
*!* From crsIncasari order by id_fact, data_incasare, serie_incasare, nr_incasare
SELECT cFacturi
INDEX on id_fact TAG id_fact
Replace All data_incasare With {} For Isnull(data_incasare)
Replace All data_factura With {} For Isnull(data_factura) IN cFacturi
SELECT crsIncasari
SCAN
lnIdFact = id_fact
IF SEEK(m.lnIdFact,'cFacturi','id_fact')
REPLACE data_factura WITH cFacturi.data_factura, serie_factura WITH cFacturi.serie_factura
ENDIF
ENDSCAN
Select 'F' as tip, id_fact, cod, nume, cod_fiscal, contract, nrord, venchelt, explicatia, id_valuta, nume_val, Ttod(data_factura) As data_factura, serie_factura, ;
nr_factura, suma_factura, suma_val_factura, suma_factura As sold, suma_val_factura As sold_val, nratasamente ;
From cFacturi ;
UNION ;
Select 'A' as tip, id_fact, 0 as cod, id_valuta_inc as id_valuta, nume_val_inc as nume_val, nr_factura, data_incasare, serie_incasare, nr_incasare, incasat, incasat_val ;
From crsIncasari ;
ORDER BY data_factura, serie_factura, nr_factura ;
INTO CURSOR crsIstoric
loTherm.Complete()
Release loTherm
SELECT crsIstoric
SET ORDER TO
GO TOP
Select crsIncasari
GO TOP
lcTitlu = [Istoric facturi] + Iif(locauta.id_part <> -1, [ ] + Alltrim(locauta.denumire), []) + [ (] + lcPerioada + [)]
loFrm = Createobject('frm_istoric_clienti', lcTitlu)
loFrm.Show(1)
Use In (SELECT('crsIncasari'))
USE IN (SELECT('crsIstoric'))
ENDPROC && istoric_terti
***--------------------------------------------------------------------------------------------------------
Procedure pondere_clienti
Do pondere_clienti_furnizori With "CLIENTI"
Endproc && pondere_clienti
***--------------------------------------------------------------------------------------------------------
Procedure pondere_furnizori
Do pondere_clienti_furnizori With "FURNIZORI"
Endproc && pondere_clienti
***--------------------------------------------------------------------------------------------------------
*** <summary>
*** pondere clienti/furnizori
*** </summary>
*** <param name="tcTip">CLIENTI/FURNIZORI</param>
*** <remarks></remarks>
*** liana.neagu
*** 19.10.2015
Procedure pondere_clienti_furnizori
Lparameters tctip
Local lctip, llRON
lctip = Iif(Type('tcTip') = 'C', Upper(m.tctip), 'CLIENTI')
Private pcli, pcai, pclf, pcaf, plActiv
Private pnSold_Initial, pnDebit, pnCredit, pnSold_Final
Store m.pcnl To pcli, pclf
Store m.pcan To pcai, pcaf
plActiv = (m.lctip = 'CLIENTI') && pentru schimbarea caption-urilor in grid, raport
pnSold_Initial = 0
pnDebit = 0
pnCredit = 0
pnSold_Final = 0
llRON = .F.
pcondper = ""
ofrmperioada = Createobject('frm_perioada_luni')
ofrmperioada.Show(1)
If gnButon = 2
Return
Endif
plPerioada = .F.
lnPoz = At('_', pcondper)
If lnPoz > 0
plPerioada = .T.
Endif
If plPerioada
lnAn1 = Val(Substr(pcondper, 3, 4))
lnLuna1 = Val(Substr(pcondper, 1, 2))
lnAn2 = Val(Substr(pcondper, 10, 4))
lnLuna2 = Val(Substr(pcondper, 8, 2))
lnnrlunii = lnAn1 * 12 + lnLuna1
lnnrlunif = lnAn2 * 12 + lnLuna2
lcPerioada = Substr(pcondper, 1, 2) + '/' + Substr(pcondper, 3, 4) + ' - ' + Substr(pcondper, 8, 2) + '/' + Substr(pcondper, 10, 4)
Else
lnAn1 = Val(Substr(pcondper, 3, 4))
lnLuna1 = Val(Substr(pcondper, 1, 2))
lnAn2 = Val(Substr(pcondper, 3, 4))
lnLuna2 = Val(Substr(pcondper, 1, 2))
lnnrlunii = lnAn1 * 12 + lnLuna1
lnnrlunif = lnAn2 * 12 + lnLuna2
lcPerioada = Substr(pcondper, 1, 2) + '/' + Substr(pcondper, 3, 4) + ' - ' + Substr(pcondper, 1, 2) + '/' + Substr(pcondper, 3, 4)
Endif
*!* podif = Createobject("frm_datai_dataf")
*!* podif.Show(1)
*!* If buton = 2
*!* Return
*!* Endif
*!* lnnrlunii = Val(pcai) * 12 + Val(pcli)
*!* lnnrlunif = Val(pcaf) * 12 + Val(pclf)
*!* SELECT calendar
*!* BROWSE
*!* RETURN
*!* Select nl, an From calendar ;
*!* Where Between(Val(an) * 12 + Val(nl), lnnrlunii, lnnrlunif) ;
*!* Into Cursor cCalendar
lcSql = [SELECT nl, an from calendar where an*12+luna between ] + Alltrim(Str(lnnrlunii)) + [ and ] + Alltrim(Str(lnnrlunif)) + [ order by an, luna]
lnSucces = goExecutor.oExecute(lcSql, [cCalendar])
If lnSucces < 0
Return
Endif
Select cCalendar
If _Tally = 0
*!* Do mesaj With "Nu exista nici o luna deschisa in perioada", pcli + ' ' + pcai + ' - ' + pclf + ' ' + pcaf
amessagebox("Nu exista nici o luna deschisa in perioada " + Padl(Alltrim(Str(lnLuna1)), '0') + '/' + Alltrim(Str(lnAn1)) + ' - ' + Padl(Alltrim(Str(lnLuna2 )), '0') + '/' + Alltrim(Str(lnAn2)), 0 + 16, "Atentie!")
Return
Endif
Select cCalendar
Go Top
lcprimaluna = nl
lcprimulan = an
Go Bottom
lcultimaluna = nl
lcultimulan = an
Private pcperioada
pcperioada = "Perioada " + Padl(lcprimaluna, 2, '0') + '/' + lcprimulan + ' - ' + Padl(lcultimaluna, 2, '0') + '/' + lcultimulan
llprimaluna = .T.
Private pobalpartfc
Store "" To pobalpartfc
Local lcSelect, lcFiltru, lcSchema, lcOrder, llAfisare, lcGroup, llModParam, lcFiltruOriginal
If m.lctip = 'CLIENTI'
lcSelect = [select an,luna,id_part, nume,cod_fiscal,acont, ] + ;
[(bcredit-bdebit) as avans,debit,credit,precdeb,preccred, ] + ;
[(debit-credit-(bcredit-bdebit)) as soldcur,(bpreccred-bprecdeb) as precavans, ] + ;
[ id_sucursala, sucursala from vbalanta_4111_419 ]
Else
lcSelect = [select an,luna,id_part, nume,cod_fiscal,acont, ] + ;
[(bdebit-bcredit) as avans,debit,credit,precdeb,preccred, ] + ;
[(credit-debit-(bdebit-bcredit)) as soldcur,(bprecdeb-bpreccred) as precavans, ] + ;
[id_sucursala, sucursala from vbalanta_401_409 ]
Endif
lcOrder = [nume,acont]
lcFiltru = [1=1]
llAfisare = .F.
llModParam = .T.
lcFiltruOriginal = [ an*12+LUNA between ] + Alltrim(Str(lnnrlunii)) + [ and ] + Alltrim(Str(lnnrlunif))
If !Isnull(gnIdSucursala)
lcFiltruOriginal = lcFiltruOriginal + gcCondSucursala
Endif
gencursor('pobalpartfc', 'cPondere', lcSelect, lcFiltru, lcSchema, lcOrder, llAfisare, lcGroup, llModParam, lcFiltruOriginal)
pobalpartfc.ca_baza1.afisare()
Select cPondere
Replace All precAVANS With 0, precdeb With 0, preccred With 0 In cPondere For !(an = lnAn1 And luna = lnLuna1)
lnSign = Iif(m.lctip = 'CLIENTI', 1, -1)
Select nume, acont As analitic, Sum(avans) As avans, Sum(debit) As debit, Sum(credit) As credit, ;
Sum(precdeb) As precdeb, Sum(preccred) As preccred, Sum(precAVANS) As precAVANS, ;
Sum(m.lnSign * (precdeb - preccred) - precAVANS) As sold_initial, Sum(m.lnSign * (precdeb - preccred + debit - credit) - (precAVANS + avans)) As sold_final, ;
Cast(0 As N(10, 2)) As pondere_debit, Cast(0 As N(10, 2)) As pondere_credit, Cast(0 As N(10, 2)) As pondere_sold_final ;
From cPondere ;
Group By nume, acont ;
Into Cursor cPondereF Readwrite
Use In (Select('cPondere'))
Calculate Sum(avans), Sum(sold_initial), Sum(debit), Sum(credit), Sum(sold_final) ;
To pnAvans, pnSold_Initial, pnDebit, pnCredit, pnSold_Final
Select cPondereF
If pnDebit = 0
Replace All pondere_debit With 0.00
Else
Replace All pondere_debit With Round(debit / m.pnDebit * 100, 2)
Endif
If pnCredit = 0
Replace All pondere_credit With 0.00
Else
Replace All pondere_credit With Round(credit / m.pnCredit * 100, 2)
Endif
Replace All pondere_sold_final With sold_final / pnSold_Final * 100
Select cPondereF
Go Top
popc = Createobject("frm_pondere_clienti_furnizori") && contabilitate_rapoarte.vcx
With popc.gridb1
.column3.header1.Caption = Iif(m.plActiv, "Rulaj debit", "Rulaj credit")
.column3.ControlSource = Iif(m.plActiv, "debit", "credit")
.column4.header1.Caption = Iif(m.plActiv, "Rulaj credit", "Rulaj debit")
.column4.ControlSource = Iif(m.plActiv, "credit", "debit")
.column7.header1.Caption = Iif(m.plActiv, "Pondere debit (%)", "Pondere credit (%)")
.column7.ControlSource = Iif(m.plActiv, "pondere_debit", "pondere_credit")
.column8.header1.Caption = Iif(m.plActiv, "Pondere credit (%)", "Pondere debit (%)")
.column8.ControlSource = Iif(m.plActiv, "pondere_credit", "pondere_debit")
Endwith
popc.titlufrumos1.Caption = "Pondere " + Lower(m.lctip) + " - " + Alltrim(m.pcperioada)
popc.Show(1)
Use In (Select('cPondereF'))
Endproc && pondere_clienti_furnizori