*!* 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= 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= 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)) = [] *!* 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)) = [] 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)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 (totctva0 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 <> then <> else 0 end) as prec_suma_factura, SUM(case an*12+luna when <> then <> else 0 end) as prec_suma_val_factura, SUM(<>) as suma_factura, Sum(<>) as suma_val_factura from vireg_parteneri where cont = ?pcCont and id_part = <> and an*12+luna between <> and <> <> 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 <> and id_partc = <> 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 <> and <> <>) 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 <> and id_partd = <> 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 <> and <> <>)) 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 ***-------------------------------------------------------------------------------------------------------- *** *** pondere clienti/furnizori *** *** CLIENTI/FURNIZORI *** *** 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