*!* 04.11.2010 *!* marius.mutu *!* fisa_cont_noua *!* fisa de cont in valuta nedefalcata pe conturi corespondente *!* am pus suma pe fiecare document pe debit sau pe credit, in functie de tipul contului *!* doar la documentele care au si debit si credit *!* #2756 Conpress *!* 08.12.2010 *!* *!* marius.mutu *!* list_inventar_p *!* listare sold 0 (fara documente) + export XLS (goExport.export2frx) *!* # 2804 Conpress *!* 08.12.2010 *!* marius.mutu *!* fisa_cont_noua *!* soldul precedent se reseteaza la schimbarea lunii = precdeb-preccred, in loc de soldul cumulat de la operatia precedenta *!* in fisegrup3.frx - totalurile lunare se calculeaza din sumele afisate in tabel, in loc de totdeb si totcred *!* daca totdeb si totcred nu sunt corect initializate in balanta parteneri, nu mai dau matematic cu sumele din tabel *!* 24.10.2011 *!* marius.mutu *!* raport_regvanz2007_restrans *!* am corectat selectia *!* 18.11.2011 *!* marius.mutu *!* fisa_cont_noua *!* fisa de cont se listeaza cu foxypreviewer *!* 08.02.2013 *!* marius.mutu *!* raport_regvanz2007_restrans *!* TVA INCASARE *!* 25.06.2014 *!* marius.mutu *!* fisa_cont_noua: *!* se tine cont si de analiticul ales *!* optiune daca se calculeaza sau nu sold documente *!* 25.01.2017 *!* marius.mutu *!* raport_regvanz2007_restrans *!* + RO19NB, RO19NT *!* 02.01.2018 *!* marius.mutu *!* + TVADefalcatIncasariBanca *!* Raport facturi incasate in luna curenta prin banca (conturi curente, conturi TVA) + baza/tva din registrul de vanzari *!* contine atentionari la facturile care nu sunt incasate corect baza/tva in contul curent/TVA *!* 15.01.2018 *!* marius.mutu *!* TVADefalcatIncasariBanca *!* inainte sa defalc suma incasata curent pe cote tva, diminuez sumele pe cote TVA cu suma incasata anterior *!* 05.03.2018 *!* marius.mutu *!* + TVADefalcatFacturiFurnizori tva defalcat pentru soldul facturilor de funizori *!* TVADefalcatIncasariBanca + stare tva, splittva, tva incasare, inactiv *!* 07.03.2018 *!* marius.mutu *!* TVADefalcatIncasariBanca - 5121/5311 = 473 operare monetare Conpress *!* 13.03.2018 *!* marius.mutu *!* TVADefalcatIncasariPlati *!* s-au inclus si incasari de tipul 5311/473 = 4111... pentru bonurile fiscale Conpress Group *!* se poate genera si raportul pentru plati din casa 401 ... = 5311 *!* TVADefalcatIncasariPlati *!* 473 doar daca este raportul de incasari casa lei 5311, nu si pentru banca lei 5121 *!* + se includ si incasari/plati la 4511 *!* TVADefalcatFacturiFurnizori *!* se poate defalca o valoare diferita de sold, pentru o singura factura *!* 22.03.2018 *!* marius.mutu *!* TVADefalcatFacturi, TVADefalcatIncasariPlati - facturi, incasari doar de pe sucursala curenta; corectat sold baza si sold tva cu suma incasata anterior *!* TVADefalcatFacturi - si facturi clienti, nu doar furnizori, doar facturi cu sold *!* 23.03.2018 *!* marius.mutu *!* TVADefalcatIncasariPlati *!* se iau in considerare si platile din 542 la platile din casa *!* 28.03.2018 *!* marius.mutu *!* TVADefalcatIncasariPlati *!* se tine cont de sucursala si analiticul contului 4111.. la join incasari cu facturi *!* 29.03.2018 *!* marius.mutu *!* TVADefalcatIncasariPlati *!* se tine cont de contul 5126 la incasarile prin banca 5121 - nu apareau incasarile prin 5126 *!* 30.03.2018 *!* marius.mutu *!* TVADefalcatIncasariPlati *!* corectat eroare iif *!* 03.04.2018 *!* marius.mutu *!* TVADefalcatIncasariPlati *!* corectat defalcare incasari/plati cu semn diferit fata de semnul facturii *!* 11.07.2018 *!* marius.mutu *!* fisa_cont_noua - denumirea contului *!* 10.06.2019 *!* marius.mutu *!* fisa_cont_noua - lucrare este acum camp distinct pentru exportul xls *!* 24.11.2025 *!* fisa_cont_noua - MAX(LEFT(explicatia,255)) rezolvat eroare la group by mai mare de 255 caractere #Define ListenerPreview 1 ************************************ **** procedura viz_form_rapbal ***** ************************************ Procedure viz_form_rapbal Parameters tcRaport *!* PRIVATE T, lccont1, lccont2 *!* STORE '' TO lccont1, lccont2 *!* T='.t.' lnLuna = gnLuna lnAn = gnAn Do make_tbalanta With .F., lnLuna, lnAn, lnLuna, lnAn If glEMama Select * From tbalanta Where Inlist(BNIVEL, 6, 7) Into Cursor tbalanta Readwrite Endif orap_bal = Createobject("frm_rap_balana") orap_bal.raport = tcRaport orap_bal.Show(1) Use In tbalanta Endproc ******* sfartsit viz_form_rapbal ************************************ **** procedura viz_form_rapjurnal ***** ************************************ Procedure viz_form_rapjurnal Parameters tcRaport *!* PRIVATE poregjur, pcschema, pclcampuri *!* STORE '' TO poregjur *!* pcschema=['LUNA N(2),AN N(4),NRACT N(14),DATAACT D,EXPLICATIA C(150),'+]+; *!* ['SCD C(4),ASCD C(4),SCC C(4), ASCC C(4),SUMA N(19,gnPa),PERECHED N(14),PERECHEC N(14),'+]+; *!* ['NRORD C(30),PARTC C(50),PARTD C(50),FDOC C(30),'+]+; *!* ['EXPLICATIA4 C(100),EXPLICATIA5 C(100)',id_valuta n(5),suma_val n(16,gnPval),curs n(6,gnPcurs),nume_val c(10)] *!* pclcampuri = [LUNA, AN, NRACT, DATAACT, NVL(EXPLICATIA,' '), SCD, ASCD, SCC, ASCC, SUMA, ] + ; *!* [PERECHED, PERECHEC, NVL(NRORD,' '), NVL(PARTC,' '), NVL(PARTD,' '), NVL(FDOC,' '), ] +; *!* [NVL(EXPLICATIA4,' '), NVL(EXPLICATIA5,' '),NVL(id_valuta,0), suma_val, curs, nume_val ] *!* pcselect=["select ] + pclcampuri + [ from ] + gcS + [.vact where 1=2"] *!* *pcfiltru=[luna=]+ALLTRIM(STR(gnluna))+[ and an=]+ALLTRIM(STR(gnan)) *!* pcFiltru = [1=1] *!* IF AT([6;],gcAcces)>0 *!* pcfiltru = pcfiltru + [ AND ID_UTIL=]+ALLTRIM(STR(gnidutil))+[ ] *!* ENDIF *!* pcorder=[dataact] *!* llAfisare=.F. *!* gencursor('poregjur','regjurnal',pcselect,pcfiltru,pcschema,pcorder,llAfisare) *!* *!* poregjur.ca_baza1.afisare() *!* SELECT * FROM regjurnal1 INTO CURSOR regjurnal READWRITE *!* SELECT regjurnal orap_jurnal = Createobject("frm_rap_jurnal") orap_jurnal.raport = tcRaport *!* orap_jurnal.oObj = [poregjur] *!* orap_jurnal.ctabel = [regjurnal] *!* orap_jurnal.cFiltru = pcFiltru orap_jurnal.Show(1) *USE IN regjurnal Endproc ******* sfartsit viz_form_rapjurnal ******************************************* INCEPUT:fisa_cont_noua ****************** Procedure fisa_cont_noua *!* modificare v 2.0.58 Lparameters tlInValuta *!* modificare v 2.0.58 ^ *!* modificare v 2.0.64 - 12.09.2008 * Fisa contului pt. toate conturile unui partener * adaugat in selectia lcSqlT coloana cont * ramuri pt. empty(cont) Local llConturiCorespondente, llDocumenteSold, llLucrari llConturiCorespondente = .T. llDocumenteSold = .F. llLucrari = .F. && defalcare dupa lucrari gnbuton = 2 Private xrec, pnOptiune, plExcel Store 1 To pnOptiune && modificare v 2.0.125 Store .F. To plExcel xrec = Createobject('custom') xrec.AddProperty('id_part', '0') xrec.AddProperty('cont', '') xrec.AddProperty('acont', '') xrec.AddProperty('dencont', '') xrec.AddProperty('lunai', Padl(Alltrim(Str(gnLuna)), 2, '0')) xrec.AddProperty('lunaf', Padl(Alltrim(Str(gnLuna)), 2, '0')) xrec.AddProperty('activ', '') xrec.AddProperty('ani', Alltrim(Str(gnAn))) xrec.AddProperty('anf', Alltrim(Str(gnAn))) xrec.AddProperty('numepart', '') *!* modificare v 2.0.58 xrec.AddProperty('in_valuta', Iif(tlInValuta, 1, 0)) xrec.AddProperty('id_valuta', 0) xrec.AddProperty('nume_val', [LEI]) xrec.AddProperty('conturicorespondente', m.llConturiCorespondente) xrec.AddProperty('documentesold', m.llDocumenteSold) && daca se calculeaza sold pe documente (valabil doar pentru conturicorespondente = .F.) xrec.AddProperty('lucrari', m.llLucrari) If xrec.in_valuta = 1 Local loCauta loCauta = caut_valuta(.F., .F., .T.) If gnbuton = 1 xrec.id_valuta = loCauta.id_valuta xrec.nume_val = loCauta.nume_val gnbuton = 2 Release loCauta Else Release loCauta Return Endif Endif *!* modificare v 2.0.58 ^ Do Form fisa_cont_noua Noshow Name loFisaCont Linked loFisaCont.clb_luna_intre1.tx_n1.Value = xrec.lunai + xrec.ani loFisaCont.clb_luna_intre1.tx_n2.Value = xrec.lunaf + xrec.anf loFisaCont.Show(1) If Used('v_nom_cont') Use In v_nom_cont Endif If Used('v_acont_tot') Use In v_acont_tot Endif If Used('v_nom_cont') Use In v_nom_cont Endif If gnbuton = 2 Return Endif Local loTherm, lcTask, lnPercent, lnSeconds, x, i i = 0 loTherm = Newobject("_thermometer", "_therm", "", 'FISA CONT ' + xrec.Cont) lcTask = "Progres" loTherm.Show() If Empty(xrec.Cont) And xrec.id_part = "0" && si AMESSAGEBOX('Alegeti partenerul!', 0 + 48, 'Atentie') Return Endif llConturiCorespondente = xrec.conturicorespondente llDocumenteSold = xrec.documentesold llLucrari = xrec.lucrari xrec.Cont = Alltrim(Nvl(xrec.Cont, '')) xrec.acont = Alltrim(Nvl(xrec.acont, '')) lcBal = IIF(LEFT(xrec.cont,1) = '8', 'vbal_c8', IIF(LEFT(xrec.cont,1) = '9', 'vbal_c9', 'vbal')) lcBalana = IIF(LEFT(xrec.cont,1) = '8', 'vbalana_c8', IIF(LEFT(xrec.cont,1) = '9', 'vbalana_c9', 'vbalana')) xrec.id_part = Alltrim(xrec.id_part) lcNrLuni1 = Transform(Val(xrec.ani) * 12 + Val(xrec.lunai)) lcNrLuni2 = Transform(Val(xrec.anf) * 12 + Val(xrec.lunaf)) && explicatia = partener ( partd) ,partener coresp ,explicatia,explicatie4 si explicatie 5 *!* modificare v 2.0.58 *!* lcPrecDeb = [pack_sesiune.suma_ron(a.precdeb,a.an,a.luna,] + Alltrim(Str(gnpa)) + [)] *!* lcPrecCred = [pack_sesiune.suma_ron(a.preccred,a.an,a.luna,] + Alltrim(Str(gnpa)) + [)] *!* lcRulDeb = [pack_sesiune.suma_ron(a.ruldeb,a.an,a.luna,] + Alltrim(Str(gnpa)) + [)] *!* lcRulCred = [pack_sesiune.suma_ron(a.rulcred,a.an,a.luna,] + Alltrim(Str(gnpa)) + [)] *!* lcTotDeb = [pack_sesiune.suma_ron(a.totdeb,a.an,a.luna,] + Alltrim(Str(gnpa)) + [)] *!* lcTotCred = [pack_sesiune.suma_ron(a.totcred,a.an,a.luna,] + Alltrim(Str(gnpa)) + [)] *!* lcSumaAct = [pack_sesiune.suma_ron(a.suma,a.an,a.luna,] + Alltrim(Str(gnpa)) + [)] *!* lcBal = [vbal] *!* in valuta : *!* lcPrecDeb = [a.precvaldeb] *!* lcPrecCred = [a.precvalcred] *!* lcRulDeb = [a.valdebit] *!* lcRulCred = [a.valcredit] *!* lcTotDeb = [a.totvaldeb] *!* lcTotCred = [a.totvalcred] *!* lcSumaAct = [a.suma_val] *!* lcBal = [vbalanta_parteneri] *!* modificare v 2.0. *!* am adaugat in lcSqlT "||' ; '|| TRIM(a.explicatia4)" pe coloana "explicatia" If xrec.in_valuta = 1 lcSql = [select a.cont,] + ; [SUM(a.precvaldeb) as precdeb,] + ; [SUM(a.precvalcred) as preccred,] + ; [SUM(a.valdebit) as ruldeb,] + ; [SUM(a.valcredit) as rulcred,] + ; [SUM(a.totvaldeb) as totdeb,] + ; [SUM(a.totvalcred) as totcred,] + ; [a.luna,a.an from ] If xrec.id_part <> "0" * Cu partener If Empty(xrec.Cont) && "" *!* modificare v 2.0.64 * Fara Cont lcSqlT = [select a.an,a.luna,a.nract,a.serie_act,a.dataact,a.dataireg,a.fdoc, ] + ; [decode(a.id_partd,] + xrec.id_part + [,a.suma_val,0) as debit,] + ; [decode(a.id_partc,] + xrec.id_part + [,a.suma_val,0) as credit,] + ; [decode(a.id_partd,] + xrec.id_part + [,a.scd,a.scc) as cont,] + ; [decode(a.id_partd,] + xrec.id_part + [,a.ascd,a.ascc) as ana_cont,] + ; [decode(a.id_partd,] + xrec.id_part + [,a.scc,a.scd) as cont_cor,] + ; [decode(a.id_partd,] + xrec.id_part + [,a.ascc,a.ascd) as ana_coresp,] + ; [NVL(partd,'') || (case when partc is not null then ', ' || NVL(partc,' ') else '' end) || ] + ; [(case when a.nresp is not null then '; ' || TRIM(a.nresp) else '' end) || ] + ; [(case when a.nrord is not null then '; ' || TRIM(a.nrord) else '' end) || ] + ; [(case when a.explicatia is not null then '; ' || TRIM(a.explicatia) else '' end) || ] + ; [(case when a.explicatia4 is not null then '; '|| TRIM(a.explicatia4) else '' end) as explicatia, ] + ; iif(m.llLucrari, 'a.nrord' , ['']) + [ as lucrare] + ; [ from ] Else * Cu Cont lcSqlT = [select a.an,a.luna,a.nract,a.serie_act,a.dataact,a.dataireg,a.fdoc, ] + ; [ (case when a.id_partd = ] + xrec.id_part + [ and a.scd= '] + xrec.Cont + ['] + Iif(!Empty(xrec.acont), [ and a.ascd = '] + xrec.acont + ['], []) + [ then a.suma_val else 0 end) as debit, ] + ; [ (case when a.id_partc = ] + xrec.id_part + [ and a.scc= '] + xrec.Cont + ['] + Iif(!Empty(xrec.acont), [ and a.ascc = '] + xrec.acont + ['], []) + [ then a.suma_val else 0 end) as credit, ] + ; [decode(a.scd,'] + xrec.Cont + [',a.scd,a.scc) as cont,] + ; [decode(a.scd,'] + xrec.Cont + [',a.ascd,a.ascc) as ana_cont,] + ; [decode(a.scd,'] + xrec.Cont + [',a.scc,a.scd) as cont_cor,] + ; [decode(a.scd,'] + xrec.Cont + [',a.ascc,a.ascd) as ana_coresp,] + ; [NVL(partd,'') || (case when partc is not null then ', ' || NVL(partc,' ') else '' end) || ] + ; [(case when a.nresp is not null then '; ' || TRIM(a.nresp) else '' end) || ] + ; [(case when a.nrord is not null then '; ' || TRIM(a.nrord) else '' end) || ] + ; [(case when a.explicatia is not null then '; ' || TRIM(a.explicatia) else '' end) || ] + ; [(case when a.explicatia4 is not null then '; '|| TRIM(a.explicatia4) else '' end) as explicatia, ] + ; iif(m.llLucrari, 'a.nrord' , ['']) + [ as lucrare] + ; [ from ] Endif && Empty(xrec.Cont) Else * Fara partener lcSqlT = [select a.an,a.luna,a.nract,a.serie_act,a.dataact,a.dataireg,a.fdoc, ] + ; [case when a.scd= '] + xrec.Cont + ['] + Iif(!Empty(xrec.acont), [ and a.ascd = '] + xrec.acont + ['], []) + [ then a.suma_val else 0 end as debit,] + ; [case when a.scc= '] + xrec.Cont + ['] + Iif(!Empty(xrec.acont), [ and a.ascc = '] + xrec.acont + ['], []) + [ then a.suma_val else 0 end as credit,] + ; [decode(a.scd,'] + xrec.Cont + [',a.scd,a.scc) as cont,] + ; [decode(a.scd,'] + xrec.Cont + [',a.ascd,a.ascc) as ana_cont,] + ; [decode(a.scd,'] + xrec.Cont + [',a.scc,a.scd) as cont_cor,] + ; [decode(a.scd,'] + xrec.Cont + [',a.ascc,a.ascd) as ana_coresp,] + ; [NVL(partd,'') || (case when partc is not null then ', ' || NVL(partc,' ') else '' end) || ] + ; [(case when a.nresp is not null then '; ' || TRIM(a.nresp) else '' end) || ] + ; [(case when a.nrord is not null then '; ' || TRIM(a.nrord) else '' end) || ] + ; [(case when a.explicatia is not null then '; ' || TRIM(a.explicatia) else '' end) || ] + ; [(case when a.explicatia4 is not null then '; '|| TRIM(a.explicatia4) else '' end) as explicatia, ] + ; iif(m.llLucrari, 'a.nrord' , ['']) + [ as lucrare] + ; [ from ] Endif && xrec.id_part <> "0" *** Sold initial Do Case Case xrec.id_part = '0' If Empty(Nvl(xrec.acont, '')) Or Nvl(xrec.acont, '') = '-1' lcSql = lcSql + ; [vbalanta_parteneri a where a.cont = '] + xrec.Cont + [' and ] + ; [(a.an * 12 + a.luna between ] + lcNrLuni1 + [ and ] + lcNrLuni2 + [) and a.id_valuta = ] + Alltrim(Str(xrec.id_valuta)) + ; Strtran(gcCondSucursala, [id_sucursala], [a.id_sucursala]) + ; [ group by a.cont,a.an,a.luna] lcSqlT = lcSqlT + ; [vact a where (a.scd = '] + xrec.Cont + [' or a.scc = '] + xrec.Cont + [') and ] + ; [(a.an * 12 + a.luna between ] + lcNrLuni1 + [ and ] + lcNrLuni2 + [) and a.id_valuta = ] + Alltrim(Str(xrec.id_valuta)) + ; Strtran(gcCondSucursala, [id_sucursala], [a.id_sucursala]) Else lcSql = lcSql + ; [vbalanta_parteneri a where a.cont = '] + xrec.Cont + [' and a.acont = '] + xrec.acont + ; [' and a.an * 12 + a.luna between ] + lcNrLuni1 + [ and ] + lcNrLuni2 + [ and a.id_valuta = ] + Alltrim(Str(xrec.id_valuta)) + ; Strtran(gcCondSucursala, [id_sucursala], [a.id_sucursala]) + ; [ group by a.cont,a.acont,a.luna,a.an] lcSqlT = lcSqlT + ; [vact a where ((a.scd = '] + xrec.Cont + [' and a.ascd = '] + xrec.acont + [') or (a.scc = '] + ; xrec.Cont + [' and a.ascc = '] + xrec.acont + [')) and ] + ; [(a.an * 12 + a.luna between ] + lcNrLuni1 + [ and ] + lcNrLuni2 + [) and a.id_valuta = ] + Alltrim(Str(xrec.id_valuta)) + ; Strtran(gcCondSucursala, [id_sucursala], [a.id_sucursala]) Endif Case Empty(Nvl(xrec.acont, '')) Or Nvl(xrec.acont, '') = '-1' If Empty(xrec.Cont) && "" *!* modificare v 2.0.64 lcSql = [select a.cont,] + ; [SUM(a.precvaldeb) as precdeb,] + ; [SUM(a.precvalcred) as preccred,] + ; [SUM(a.valdebit) as ruldeb,] + ; [SUM(a.valcredit) as rulcred,] + ; [SUM(a.precvaldeb + a.valdebit) as totdeb,] + ; [SUM(a.precvalcred + a.valcredit) as totcred,] + ; [a.luna,a.an from ] + ; [vbalanta_parteneri a where a.id_part = ] + xrec.id_part + [ and ] + ; [(a.an * 12 + a.luna between ] + lcNrLuni1 + [ and ] + lcNrLuni2 + [) and a.id_valuta = ] + Alltrim(Str(xrec.id_valuta)) + ; Strtran(gcCondSucursala, [id_sucursala], [a.id_sucursala]) + ; [ group by a.cont,a.id_part,a.an,a.luna] lcSqlT = lcSqlT + ; [vact a where (a.id_partd = ] + xrec.id_part + [ or a.id_partc = ] + xrec.id_part + [) ] + ; [and (a.an * 12 + a.luna between ] + lcNrLuni1 + [ and ] + lcNrLuni2 + [) ] + ; [and a.id_valuta = ] + Alltrim(Str(xrec.id_valuta)) + ; Strtran(gcCondSucursala, [id_sucursala], [a.id_sucursala]) Else lcSql = [select a.cont,] + ; [SUM(a.precvaldeb) as precdeb,] + ; [SUM(a.precvalcred) as preccred,] + ; [SUM(a.valdebit) as ruldeb,] + ; [SUM(a.valcredit) as rulcred,] + ; [SUM(a.precvaldeb + a.valdebit) as totdeb,] + ; [SUM(a.precvalcred + a.valcredit) as totcred,] + ; [a.luna,a.an from ] + ; [vbalanta_parteneri a where a.cont = '] + xrec.Cont + [' and a.id_part = ] + xrec.id_part + [ and ] + ; [(a.an * 12 + a.luna between ] + lcNrLuni1 + [ and ] + lcNrLuni2 + [) and a.id_valuta = ] + Alltrim(Str(xrec.id_valuta)) + ; Strtran(gcCondSucursala, [id_sucursala], [a.id_sucursala]) + ; [ group by a.cont,a.id_part,a.an,a.luna] lcSqlT = lcSqlT + ; [vact a where ((a.id_partd = ] + xrec.id_part + [ AND a.scd = '] + xrec.Cont + [') or (a.id_partc = ] + xrec.id_part + [ AND a.scc = '] + xrec.Cont + [')) ] + ; [and (a.an * 12 + a.luna between ] + lcNrLuni1 + [ and ] + lcNrLuni2 + [) ] + ; [and a.id_valuta = ] + Alltrim(Str(xrec.id_valuta)) + ; Strtran(gcCondSucursala, [id_sucursala], [a.id_sucursala]) Endif Otherwise lcSql = [select a.cont,] + ; [SUM(a.precvaldeb) as precdeb,] + ; [SUM(a.precvalcred) as preccred,] + ; [SUM(a.valdebit) as ruldeb,] + ; [SUM(a.valcredit) as rulcred,] + ; [SUM(a.precvaldeb + a.valdebit) as totdeb,] + ; [SUM(a.precvalcred + a.valcredit) as totcred,] + ; [a.luna,a.an from ] + ; [vbalanta_parteneri a where a.cont = '] + xrec.Cont + [' and a.acont = '] + xrec.acont + ; [' and a.id_part = ] + xrec.id_part + [ and ] + ; [(a.an * 12 + a.luna between ] + lcNrLuni1 + [ and ] + lcNrLuni2 + [) and a.id_valuta = ] + Alltrim(Str(xrec.id_valuta)) + ; Strtran(gcCondSucursala, [id_sucursala], [a.id_sucursala]) + ; [ group by a.cont,a.id_part,a.acont,a.an,a.luna] lcSqlT = lcSqlT + ; [vact a where ((a.id_partd=] + xrec.id_part + [ AND a.scd = '] + xrec.Cont + [' and a.ascd = '] + xrec.acont + [') or ] + ; [(a.id_partc = ] + xrec.id_part + [ AND a.scc = '] + xrec.Cont + [' and a.ascc = '] + xrec.acont + [')) AND ] + ; [(a.an * 12 + a.luna between ] + lcNrLuni1 + [ and ] + lcNrLuni2 + [) and a.id_valuta = ] + Alltrim(Str(xrec.id_valuta)) + ; Strtran(gcCondSucursala, [id_sucursala], [a.id_sucursala]) Endcase Else *** Suma in lei *!* modificare v 2.0.58 ^ lcSql = [select a.cont,] + ; [SUM(pack_sesiune.suma_ron(a.precdeb,a.an,a.luna,] + Alltrim(Str(gnpa)) + [)) as precdeb,] + ; [SUM(pack_sesiune.suma_ron(a.preccred,a.an,a.luna,] + Alltrim(Str(gnpa)) + [)) as preccred,] + ; [SUM(pack_sesiune.suma_ron(a.ruldeb,a.an,a.luna,] + Alltrim(Str(gnpa)) + [)) as ruldeb,] + ; [SUM(pack_sesiune.suma_ron(a.rulcred,a.an,a.luna,] + Alltrim(Str(gnpa)) + [)) as rulcred,] + ; [SUM(pack_sesiune.suma_ron(a.totdeb,a.an,a.luna,] + Alltrim(Str(gnpa)) + [)) as totdeb,] + ; [SUM(pack_sesiune.suma_ron(a.totcred,a.an,a.luna,] + Alltrim(Str(gnpa)) + [)) as totcred,] + ; [a.luna,a.an from ] If xrec.id_part <> "0" *!* modificare v 2.0.58 aveam coloana credit inca o data : *!* [ decode(a.scc,'] + xrec.Cont + [',pack_sesiune.suma_ron(a.suma,a.an,a.luna,] + Alltrim(Str(gnpa)) + [),0) as credit,] *!* modificare v 2.0.58 ^ * Cu partener If Empty(xrec.Cont) && "" *!* modificare v 2.0.64 * Fara cont lcSqlT = [select a.an,a.luna,a.nract,a.serie_act,a.dataact,a.dataireg,a.fdoc, ] + ; [ (case when a.id_partd =] + xrec.id_part + [ then ] + ; [ pack_sesiune.suma_ron(a.suma,a.an,a.luna,] + Alltrim(Str(gnpa)) + [) else 0 end) as debit, ] + ; [ (case when a.id_partc =] + xrec.id_part + [ then ] + ; [ pack_sesiune.suma_ron(a.suma,a.an,a.luna,] + Alltrim(Str(gnpa)) + [) else 0 end) as credit, ] + ; [decode(a.id_partd,'] + xrec.id_part + [',a.scd,a.scc) as cont,] + ; [decode(a.id_partd,'] + xrec.id_part + [',a.ascd,a.ascc) as ana_cont,] + ; [decode(a.id_partd,'] + xrec.id_part + [',a.scc,a.scd) as cont_cor,] + ; [decode(a.id_partd,'] + xrec.id_part + [',a.ascc,a.ascd) as ana_coresp,] + ; [NVL(partd,'') || (case when partc is not null then ', ' || NVL(partc,' ') else '' end) || ] + ; [(case when a.nresp is not null then '; ' || TRIM(a.nresp) else '' end) || ] + ; [(case when a.nrord is not null then '; ' || TRIM(a.nrord) else '' end) || ] + ; [(case when a.explicatia is not null then '; ' || TRIM(a.explicatia) else '' end) || ] + ; [(case when a.explicatia4 is not null then '; '|| TRIM(a.explicatia4) else '' end) as explicatia, ] + ; iif(m.llLucrari, 'a.nrord' , ['']) + [ as lucrare] + ; [ from ] Else * Cu cont lcSqlT = [select a.an,a.luna,a.nract,a.serie_act,a.dataact,a.dataireg,a.fdoc, ] + ; [ (case when a.id_partd =] + xrec.id_part + [ and a.scd= '] + xrec.Cont + ['] + Iif(!Empty(xrec.acont), [ and a.ascd = '] + xrec.acont + ['], []) + [ then ] + ; [ pack_sesiune.suma_ron(a.suma,a.an,a.luna,] + Alltrim(Str(gnpa)) + [) else 0 end) as debit, ] + ; [ (case when a.id_partc =] + xrec.id_part + [ and a.scc= '] + xrec.Cont + ['] + Iif(!Empty(xrec.acont), [ and a.ascc = '] + xrec.acont + ['], []) + [ then ] + ; [ pack_sesiune.suma_ron(a.suma,a.an,a.luna,] + Alltrim(Str(gnpa)) + [) else 0 end) as credit, ] + ; [decode(a.scd,'] + xrec.Cont + [',a.scd,a.scc) as cont,] + ; [decode(a.scd,'] + xrec.Cont + [',a.ascd,a.ascc) as ana_cont,] + ; [decode(a.scd,'] + xrec.Cont + [',a.scc,a.scd) as cont_cor,] + ; [decode(a.scd,'] + xrec.Cont + [',a.ascc,a.ascd) as ana_coresp,] + ; [NVL(partd,'') || (case when partc is not null then ', ' || NVL(partc,' ') else '' end) || ] + ; [(case when a.nresp is not null then '; ' || TRIM(a.nresp) else '' end) || ] + ; [(case when a.nrord is not null then '; ' || TRIM(a.nrord) else '' end) || ] + ; [(case when a.explicatia is not null then '; ' || TRIM(a.explicatia) else '' end) || ] + ; [(case when a.explicatia4 is not null then '; '|| TRIM(a.explicatia4) else '' end) as explicatia, ] + ; iif(m.llLucrari, 'a.nrord' , ['']) + [ as lucrare] + ; [ from ] Endif && Empty(xrec.Cont) Else * Fara partener lcSqlT = [select a.an,a.luna,a.nract,a.serie_act,a.dataact,a.dataireg,a.fdoc,] + ; [case when a.scd= '] + xrec.Cont + ['] + Iif(!Empty(xrec.acont), [ and a.ascd = '] + xrec.acont + ['], []) + [ then pack_sesiune.suma_ron(a.suma,a.an,a.luna,] + Alltrim(Str(gnpa)) + [) else 0 end as debit,] + ; [case when a.scc= '] + xrec.Cont + ['] + Iif(!Empty(xrec.acont), [ and a.ascc = '] + xrec.acont + ['], []) + [ then pack_sesiune.suma_ron(a.suma,a.an,a.luna,] + Alltrim(Str(gnpa)) + [) else 0 end as credit,] + ; [decode(a.scd,'] + xrec.Cont + [',a.scd,a.scc) as cont,] + ; [decode(a.scd,'] + xrec.Cont + [',a.ascd,a.ascc) as ana_cont,] + ; [decode(a.scd,'] + xrec.Cont + [',a.scc,a.scd) as cont_cor,] + ; [decode(a.scd,'] + xrec.Cont + [',a.ascc,a.ascd) as ana_coresp,] + ; [NVL(partd,'') || (case when partc is not null then ', ' || NVL(partc,' ') else '' end) || ] + ; [(case when a.nresp is not null then '; ' || TRIM(a.nresp) else '' end) || ] + ; [(case when a.nrord is not null then '; ' || TRIM(a.nrord) else '' end) || ] + ; [(case when a.explicatia is not null then '; ' || TRIM(a.explicatia) else '' end) || ] + ; [(case when a.explicatia4 is not null then '; '|| TRIM(a.explicatia4) else '' end) as explicatia, ] + ; iif(m.llLucrari, 'a.nrord' , ['']) + [ as lucrare] + ; [ from ] Endif && xrec.id_part <> "0" Do Case Case xrec.id_part = '0' If Empty(Nvl(xrec.acont, '')) Or Nvl(xrec.acont, '') = '-1' lcSql = lcSql + ; m.lcBal + [ a where a.cont = '] + xrec.Cont + [' and ] + ; [(a.an * 12 + a.luna between ] + lcNrLuni1 + [ and ] + lcNrLuni2 + [) ] + ; Strtran(gcCondSucursala, [id_sucursala], [a.id_sucursala]) + ; [ group by a.cont,a.an,a.luna] lcSqlT = lcSqlT + ; [vact a where (a.scd = '] + xrec.Cont + [' or a.scc = '] + xrec.Cont + [') and ] + ; [(a.an * 12 + a.luna between ] + lcNrLuni1 + [ and ] + lcNrLuni2 + [) ] + ; Strtran(gcCondSucursala, [id_sucursala], [a.id_sucursala]) Else lcSql = lcSql + ; m.lcBalana + [ a where a.cont = '] + xrec.Cont + [' and a.acont = '] + xrec.acont + ; [' and ] + ; [(a.an * 12 + a.luna between ] + lcNrLuni1 + [ and ] + lcNrLuni2 + [) ] + ; Strtran(gcCondSucursala, [id_sucursala], [a.id_sucursala]) + ; [ group by a.cont,a.acont,a.luna,a.an] lcSqlT = lcSqlT + ; [vact a where ((a.scd = '] + xrec.Cont + [' and a.ascd = '] + xrec.acont + [') or (a.scc = '] + ; xrec.Cont + [' and a.ascc = '] + xrec.acont + [')) and ] + ; [(a.an * 12 + a.luna between ] + lcNrLuni1 + [ and ] + lcNrLuni2 + [) ] + ; Strtran(gcCondSucursala, [id_sucursala], [a.id_sucursala]) Endif Case Empty(Nvl(xrec.acont, '')) Or Nvl(xrec.acont, '') = '-1' If Empty(xrec.Cont) && "" lcSql = [select a.cont,] + ; [SUM(pack_sesiune.suma_ron(a.precdeb,a.an,a.luna,] + Alltrim(Str(gnpa)) + [)) as precdeb,] + ; [SUM(pack_sesiune.suma_ron(a.preccred,a.an,a.luna,] + Alltrim(Str(gnpa)) + [)) as preccred,] + ; [SUM(pack_sesiune.suma_ron(a.debit,a.an,a.luna,] + Alltrim(Str(gnpa)) + [)) as ruldeb,] + ; [SUM(pack_sesiune.suma_ron(a.credit,a.an,a.luna,] + Alltrim(Str(gnpa)) + [)) as rulcred,] + ; [SUM(pack_sesiune.suma_ron(a.precdeb + a.debit,a.an,a.luna,] + Alltrim(Str(gnpa)) + [)) as totdeb,] + ; [SUM(pack_sesiune.suma_ron(a.preccred + a.credit,a.an,a.luna,] + Alltrim(Str(gnpa)) + [)) as totcred,] + ; [a.luna,a.an from ] + ; [vbalanta_parteneri a where id_part = ] + xrec.id_part + [ and ] + ; [(a.an * 12 + a.luna between ] + lcNrLuni1 + [ and ] + lcNrLuni2 + [) ] + ; Strtran(gcCondSucursala, [id_sucursala], [a.id_sucursala]) + ; [ group by a.cont,a.id_part,a.an,a.luna] lcSqlT = lcSqlT + ; [vact a where (a.id_partd = ] + xrec.id_part + ; [ or a.id_partc = ] + xrec.id_part + [) and ] + ; [(a.an * 12 + a.luna between ] + lcNrLuni1 + [ and ] + lcNrLuni2 + [) ] + ; Strtran(gcCondSucursala, [id_sucursala], [a.id_sucursala]) Else lcSql = [select a.cont,] + ; [SUM(pack_sesiune.suma_ron(a.precdeb,a.an,a.luna,] + Alltrim(Str(gnpa)) + [)) as precdeb,] + ; [SUM(pack_sesiune.suma_ron(a.preccred,a.an,a.luna,] + Alltrim(Str(gnpa)) + [)) as preccred,] + ; [SUM(pack_sesiune.suma_ron(a.debit,a.an,a.luna,] + Alltrim(Str(gnpa)) + [)) as ruldeb,] + ; [SUM(pack_sesiune.suma_ron(a.credit,a.an,a.luna,] + Alltrim(Str(gnpa)) + [)) as rulcred,] + ; [SUM(pack_sesiune.suma_ron(a.precdeb + a.debit,a.an,a.luna,] + Alltrim(Str(gnpa)) + [)) as totdeb,] + ; [SUM(pack_sesiune.suma_ron(a.preccred + a.credit,a.an,a.luna,] + Alltrim(Str(gnpa)) + [)) as totcred,] + ; [a.luna,a.an from ] + ; [vbalanta_parteneri a where a.cont = '] + xrec.Cont + [' and id_part = ] + xrec.id_part + [ and ] + ; [(a.an * 12 + a.luna between ] + lcNrLuni1 + [ and ] + lcNrLuni2 + [) ] + ; Strtran(gcCondSucursala, [id_sucursala], [a.id_sucursala]) + ; [ group by a.cont,a.id_part,a.an,a.luna] lcSqlT = lcSqlT + ; [vact a where ((a.id_partd = ] + xrec.id_part + [ AND a.scd = '] + xrec.Cont + [')] + ; [ OR (a.id_partc = ] + xrec.id_part + [ and a.scc = '] + xrec.Cont + ['))] + ;&&&&&&&& 25.02.2009 [ and ] + ; [(a.an * 12 + a.luna between ] + lcNrLuni1 + [ and ] + lcNrLuni2 + [) ] + ; Strtran(gcCondSucursala, [id_sucursala], [a.id_sucursala]) Endif Otherwise lcSql = [select a.cont,] + ; [SUM(pack_sesiune.suma_ron(a.precdeb,a.an,a.luna,] + Alltrim(Str(gnpa)) + [)) as precdeb,] + ; [SUM(pack_sesiune.suma_ron(a.preccred,a.an,a.luna,] + Alltrim(Str(gnpa)) + [)) as preccred,] + ; [SUM(pack_sesiune.suma_ron(a.debit,a.an,a.luna,] + Alltrim(Str(gnpa)) + [)) as ruldeb,] + ; [SUM(pack_sesiune.suma_ron(a.credit,a.an,a.luna,] + Alltrim(Str(gnpa)) + [)) as rulcred,] + ; [SUM(pack_sesiune.suma_ron(a.precdeb + a.debit,a.an,a.luna,] + Alltrim(Str(gnpa)) + [)) as totdeb,] + ; [SUM(pack_sesiune.suma_ron(a.preccred + a.credit,a.an,a.luna,] + Alltrim(Str(gnpa)) + [)) as totcred,] + ; [a.luna,a.an from ] + ; [vbalanta_parteneri a where a.cont = '] + xrec.Cont + [' and a.acont = '] + xrec.acont + ; [' and id_part = ] + xrec.id_part + [ and ] + ; [(a.an * 12 + a.luna between ] + lcNrLuni1 + [ and ] + lcNrLuni2 + [) ] + ; Strtran(gcCondSucursala, [id_sucursala], [a.id_sucursala]) + ; [ group by a.cont,a.id_part,a.acont,a.an,a.luna] lcSqlT = lcSqlT + ; &&&&&&&&& 25.02.09 [vact a where ((a.id_partd=] + xrec.id_part + [ AND a.scd = '] + xrec.Cont + [' and a.ascd = '] + xrec.acont + [')] + ; [ or (a.id_partc = ] + xrec.id_part + [ and a.scc = '] + xrec.Cont + [' and a.ascc = '] + xrec.acont + [')) ] + ; [ and (a.an * 12 + a.luna between ] + lcNrLuni1 + [ and ] + lcNrLuni2 + [) ] + ; Strtran(gcCondSucursala, [id_sucursala], [a.id_sucursala]) Endcase *!* modificare v 2.0.58 Endif *!* modificare v 2.0.58 ^ lcCursor = [v_fisa_cont] lnSucces = goExecutor.oExecute(lcSqlT, lcCursor) If lnSucces < 0 AMESSAGEBOX(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif lcCursor = [v_sold_fisa] lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 AMESSAGEBOX(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif If !Empty(xrec.Cont) lcCursorCont = update_plcont(xrec.Cont, gnAn) Else lcCursorCont = update_plcont('', gnAn) Endif *!* 09.08.2010 *!* modificare v 2.0.61 : am pus MAX(LEFT(explicatia,500)) in loc de 250 If !m.llConturiCorespondente Select an, luna, nract, serie_act, dataact, dataireg, fdoc, Cont, ana_cont, lucrare, Max(Left(explicatia, 255)) As explicatia, '' As cont_cor, '' As ana_coresp, ; Sum(debit) As debit, Sum(credit) As credit ; From v_fisa_cont ; Group By 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ; Into Cursor v_fisa_contTemp Use In (Select('v_fisa_cont')) Select * From v_fisa_contTemp Into Cursor v_fisa_cont Readwrite Use In (Select('v_fisa_contTemp')) Endif *!* 09.08.2010 ^ Select Nvl(F.Cont, v.Cont) As Cont, ; Iif(Empty(xrec.Cont), p.tip_sold, xrec.Activ) As tip_sold, ; CAST(IIF(NVL(f.debit,0)<>0, ALLTRIM(NVL(f.cont,'')) + IIF(!EMPTY(NVL(f.ana_cont,'')), '.' + ALLTRIM(f.ana_cont), ''), ALLTRIM(NVL(f.cont_cor, '')) + IIF(!EMPTY(NVL(f.ana_coresp,'')), '.' + ALLTRIM(f.ana_coresp), '')) as C(10)) as scd, ; CAST(IIF(NVL(f.credit,0)<>0, ALLTRIM(NVL(f.cont,'')) + IIF(!EMPTY(NVL(f.ana_cont,'')), '.' + ALLTRIM(f.ana_cont), ''), ALLTRIM(NVL(f.cont_cor, '')) + IIF(!EMPTY(NVL(f.ana_coresp,'')), '.' + ALLTRIM(f.ana_coresp), '')) as C(10)) as scc, ; Nvl(F.an, v.an) As an, ; Nvl(F.luna, v.luna) As luna, ; Nvl(F.nract, 00000000000000) As nract, ; Nvl(Ttod(F.dataact), {}) As dataact, ; Nvl(F.serie_act, []) As serie_act, ; Nvl(Ttod(F.dataireg), {}) As dataireg, ; Nvl(F.fdoc, Space(20)) As fdoc, ; Nvl(F.debit, 000000000000.0000) As debit, Nvl(F.credit, 000000000000.0000) As credit, ; F.ana_cont, F.cont_cor, F.ana_coresp, F.explicatia, F.lucrare, ; v.precdeb, v.preccred, v.ruldeb, v.rulcred, v.totdeb, v.totcred, 00000000000000.0000 As sold_op, ; 00000000000000.0000 As sold_prec ; && modificare v 2.0.125 From v_fisa_cont F ; Right Join v_sold_fisa v On F.luna = v.luna And F.an = v.an And F.Cont = v.Cont ; Join (lcCursorCont) p On p.Cont = v.Cont ; Into Cursor fisa_final Readwrite ; Order By v.Cont, v.an, v.luna, F.dataact, F.nract *!* SELECT * FROM v_fisa_cont INTO TABLE C:\fisacont.dbf *!* SELECT * FROM v_sold_fisa INTO TABLE C:\soldfisa.dbf *!* SELECT * FROM fisa_final INTO TABLE C:\fisafinal.dbf *!* 04.11.2010 If m.llDocumenteSold && !llConturiCorespondente Update fisa_final Set debit = debit - credit, credit = 0 Where tip_sold = 'A' And debit <> 0 And credit <> 0 Update fisa_final Set credit = credit - debit, debit = 0 Where tip_sold = 'P' And debit <> 0 And credit <> 0 Endif *!* 04.11.2010 ^ If Used(lcCursorCont) Use In (lcCursorCont) Endif Local lnsold, lcCont, lcContPrec, lnSoldPrec && modificare v 2.0.125 : lnSoldPrec Store '' To lcCont, lcContPrec Select fisa_final x = Reccount() lnNrLuna = 0 Scan lcCont = Cont If lcCont <> lcContPrec lcContPrec = lcCont lnsold = 0 lnSoldPrec = 0 && modificare v 2.0.125 Endif If Empty(xrec.Cont) If an * 12 + luna = lnNrLuna lnsold = lnsold + Iif(xrec.Activ = 'A', 1, -1) * (debit - credit) Else lnsold = Iif(xrec.Activ = 'A', 1, -1) * ((precdeb - preccred) + (debit - credit)) *!* 18.05.2011 lnSoldPrec = Iif(xrec.Activ = 'A', 1, -1) * (precdeb - preccred) *!* 18.05.2011 ^ lnNrLuna = an * 12 + luna Endif Else If an * 12 + luna = lnNrLuna lnsold = lnsold + Iif(tip_sold = 'P', -1, 1) * (debit - credit) Else lnsold = Iif(tip_sold = 'P', -1, 1) * ((precdeb - preccred) + (debit - credit)) *!* 18.05.2011 lnSoldPrec = Iif(tip_sold = 'P', -1, 1) * (precdeb - preccred) *!* 18.05.2011 ^ lnNrLuna = an * 12 + luna Endif Endif *!* modificare v 2.0.125 *!* Replace sold_op With lnsold Replace sold_op With lnsold, sold_prec With lnSoldPrec lnSoldPrec = lnsold *!* modificare v 2.0.125 ^ i = i + 1 lnPercent = i / x * 100 loTherm.Update(lnPercent, lcTask) Select fisa_final Endscan *!* modificare v 2.0.125 If pnOptiune = 2 Local lnPrecDeb, lnPrecCred, lcCont If Used('crstmpsold') Use In crstmpsold Endif Select Distinct precdeb, preccred, Cont From fisa_final Where an = Val(xrec.ani) And luna = Val(xrec.lunai) ; Into Cursor crstmpsold Select crstmpsold *!* SELECT * FROM crstmpsold INTO TABLE C:\crstmpsold.dbf Scan lnPrecDeb = precdeb lnPrecCred = preccred lcCont = Cont Select fisa_final Replace sold_prec With Iif(an = Val(xrec.ani) And luna = Val(xrec.lunai), (-1) * Iif(tip_sold = 'P', lnPrecDeb - lnPrecCred, lnPrecCred - lnPrecDeb), sold_prec), ; precdeb With precdeb - lnPrecDeb, totdeb With totdeb - lnPrecDeb, ; preccred With preccred - lnPrecCred, totcred With totcred - lnPrecCred ; For Cont = lcCont Select crstmpsold Endscan Use In crstmpsold Release lnPrecDeb, lnPrecCred, lcCont Else Select fisa_final Replace sold_prec With Iif(tip_sold = 'P', - (precdeb - preccred), - (preccred - precdeb)) For an = Val(xrec.ani) And luna = Val(xrec.lunai) Endif *!* modificare v 2.0.125 ^ *!* Select * From fisa_final Into Table c:\fisa_final.Dbf loTherm.Complete() Release loTherm If Used('v_sold_fisa') Use In v_sold_fisa Endif If Used('v_fisa_cont') Use In v_fisa_cont Endif *!* modificare v 2.0.125 If !m.plExcel *!* modificare v 2.0.125 ^ *!* modificare v 2.0.58 *!* pctitlu = "FISA CONTULUI " + xrec.Cont + Iif(!Empty(xrec.acont) And xrec.acont#'-1'," . " + xrec.acont,'') pctitlu = "FISA CONTULUI " + ALLTRIM(xrec.Cont) + Iif(!Empty(Nvl(xrec.acont, '')) And Nvl(xrec.acont, '') # '-1', " . " + ALLTRIM(xrec.acont), '') + [ - ] + ALLTRIM(NVL(xrec.dencont,'')) + [ - ] + xrec.nume_val *!* modificare v 2.0.58 ^ *!* 18.11.2011 goExport.export2frx([fisa_final], [fisegrup3], , , , , , .T.) *!* 18.11.2011 ^ plExcel = (AMESSAGEBOX('Doriti export in format xls?',4+32,_screen.Caption) = 6) ENDIF If m.plExcel Create Cursor inregistrari_fisa(fdoc c(60) Null, dataact d Null, dataireg d Null, serie_act c(20) Null, nract N(20) Null, explicatia c(200) Null, debit N(14, gnpa) Null, credit N(14, gnpa) Null, sold_op N(14, gnpa) Null, sold_prec N(14, gnpa) Null, cont_cor c(4) Null, ana_coresp c(4) Null, lucrare C(100) null, scd c(10) NULL, scc c(10) NULL) Select fisa_final Go Top Scatter Name lorec Memo lorec.explicatia = 'SUME PRECEDENTE LUNA ' + Alltr(Str(luna)) + ' / ' + Alltr(Str(an)) + ' ' + xrec.numepart lorec.credit = lorec.preccred lorec.debit = lorec.precdeb *lorec.sold_op=Iif(xrec.Activ='A',lorec.precdeb-lorec.preccred,lorec.preccred-lorec.precdeb) lorec.sold_op = Iif(tip_sold = 'P', - (lorec.precdeb - lorec.preccred), - (lorec.preccred - lorec.precdeb)) lorec.dataact = Null lorec.dataireg = Null lorec.fdoc = "" lorec.serie_act = "" lorec.nract = Null lorec.cont_cor = "" lorec.ana_coresp = "" Select inregistrari_fisa Insert Into inregistrari_fisa From Name lorec Append From Dbf('fisa_final') * Insert into fisa_final(Debit,Credit,Sold_Op,Explicatia) values(Precdeb,Preccred,IIF(xrec.activ='A',precdeb-preccred,preccred-precdeb),'ABCD') export_xls('inregistrari_fisa') Endif If Used('fisa_final') Use In fisa_final Endif Release xrec Endproc && fisa_cont_noua ******************************************* SFARSIT: fisa_cont_noua ***************** ******************************************* INCEPUT : notificari ***************** Procedure meniu_notificari Local lcSql, lcCursor, lcCursorParteneri, lcMeniu, lnOptiune, loFrm lcSql = [select * from notificari where sters = 0 order by ordine] lcCursor = [crsnotificari] lcCursorParteneri = [crsparteneri] lcCursorParteneriNot = [crspartnot] lcMeniu = [] If goExecutor.oExecuta(lcSql, lcCursor) If Reccount(lcCursor) > 0 Select (lcCursor) Scan lcMeniu = lcMeniu + [;] + Alltrim(titlu) Endscan lnOptiune = xmenu(Substr(lcMeniu, 2)) If Between(lnOptiune, 1, Reccount(lcCursor)) Select (lcCursor) Go (lnOptiune) Scatter Name loDateNotificare Memo lcSql = [{call parteneri_notificari(] + Alltrim(Str(loDateNotificare.id_notificare)) + [,?gnAn,?gnIdSucursala)}] If goExecutor.oExecuta(lcSql, lcCursorParteneri) Select 0 As ales, a.* From (lcCursorParteneri) a ; Into Cursor (lcCursorParteneriNot) Readwrite loFrm = Createobject("frm_notificari", loDateNotificare) lnCol = Fcount(lcCursorParteneriNot) loFrm.grid_parteneri.RecordSource = lcCursorParteneriNot loFrm.grid_parteneri.ColumnCount = lnCol - 4 lnDiferenta = 0 For i = 1 To lnCol Select (lcCursorParteneriNot) lcField = Upper(Alltrim(Field(i))) lcI = Alltrim(Str(i - lnDiferenta)) Do Case Case lcField = [ALES] loFrm.grid_parteneri.Column&lcI..ControlSource = lcField Case Inlist(lcField, [ADRESA], [COD_FISCAL], [REG_COMERT]) lnDiferenta = lnDiferenta + 1 Case lcField <> [ID_PART] lcHeader = lcField With loFrm.grid_parteneri .Column&lcI..ControlSource = lcField If Val(Substr(lcField, 2)) <> 0 && sct "_" de la _401, _411, etc... .Column&lcI..ControlSource = [IIF(!empty(] + lcField + [),"X"," ")] lcHeader = Substr(lcField, 2) Endif .Column&lcI..header1.Caption = lcHeader .Column&lcI..header1.FontName = 'Arial Narrow' Endwith Otherwise lnDiferenta = lnDiferenta + 1 Endcase Endfor loFrm.grid_parteneri.AutoFit() loFrm.Show(1) If Used(lcCursorParteneri) Use In (lcCursorParteneri) Endif Endif Endif Else AMESSAGEBOX("Nu au fost definite modele de notificari!", 48, "Atentie") Endif If Used(lcCursor) Use In (lcCursor) Endif Endif Release lcSql, lcCursor, lcMeniu, lnOptiune, loFrm Endproc ******************************************* SFARSIT: notificari ***************** Procedure inventar_patrimoniu Local lcSelCont, lcSelFact, lcSelX, lnSucces lnSucces = 1 lcSelX = [{call pack_situatii_financiare.inventar_patrimoniu(?gnAn,?gnLuna,'1=1',?gnIdSucursala)}] lcSelCont = [select cont, explicatie, 0 as ales from ] + gcS + [.config_cont_ireg order by cont] *where cu_inregistrari = 1 *!* lcSelFact = [select i.fel_cont, p.cont, p.acont ,p.id_part,e.NUME,e.cod_fiscal,e.reg_comert,e.adresa,e.localitate,p.dataact,p.serie_act,p.nract,p.datascad, ] + ; *!* [SUM(case i.fel_cont when 0 then p.precdeb+p.debit else p.preccred+p.credit end) as totctva, ] +; *!* [SUM(case i.fel_cont when 0 then p.preccred+p.credit else p.precdeb+p.debit end) as achitat, ] +; *!* [SUM((case i.fel_cont when 0 then 1 else -1 end)*(p.precdeb+p.debit-p.preccred-p.credit)) as sold ] +; *!* [from ] + gcS + [.config_cont_ireg i ] +; *!* [left join ] + gcS + [.ireg_parteneri p on i.cont = p.cont ] +; *!* [left join ] + gcS + [.vnom_parteneri e on p.id_part = e.id_part ] If lnSucces > 0 lcCursor = 'crs_parteneri' lnSucces = goExecutor.oExecute(lcSelX, lcCursor) If lnSucces < 0 AMESSAGEBOX('Call inventar_patrimoniu' + Chr(13) + goExecutor.cEroare, 0 + 16, "Eroare") Endif Endif If lnSucces > 0 lcCursor = 'crs_conturi' lnSucces = goExecutor.oExecute(lcSelCont, lcCursor) If lnSucces < 0 AMESSAGEBOX('Select conturi cu inregistrari' + Chr(13) + goExecutor.cEroare, 0 + 16, "Eroare") Endif Endif If lnSucces > 0 oinvp = Createobject('frm_part_cont') && in orapoarte.vcx Select crs_parteneri *REPLACE nume WITH '' FOR id_part = -1 lnCol = Fcount() oinvp.grid_parteneri.RecordSource = [crs_parteneri] oinvp.grid_parteneri.ColumnCount = lnCol For i = 1 To lnCol lcI = Alltrim(Str(i)) lcField = Upper(Alltrim(Field(i))) lcHeader = lcField With oinvp.grid_parteneri .Column&lcI..ControlSource = lcField If Val(Substr(lcField, 2)) <> 0 && sct "_" de la _401, _411, etc... .Column&lcI..Width = 25 .Column&lcI..ControlSource = [IIF(!empty(] + lcField + [),"X"," ")] lcHeader = Substr(lcField, 2) Endif .Column&lcI..header1.Caption = lcHeader .Column&lcI..header1.FontName = 'Arial' Endwith If lcField = [ID_PART] oinvp.grid_parteneri.Column&lcI..Visible = .F. Endif Endfor With oinvp.ct_grid_search1 *!* .cselect = lcSelFact *!* .cschema = [fel_cont n(1),cont c(4),acont c(4),id_part n(10),nume c(50),e.cod_fiscal c(20), reg_comert c(20), adresa c(250), localitate c(100), dataact d,nract n(9),datascad d,totctva n(14,2),achitat n(14,2),sold n(14,2)] .cTitlu_coloane = [Nume,Data act,Serie act,Nr.act,Data scad.,Valoare Document,Achitat/Facturat,Sold,Valoare Document Valuta,Achitat/Facturat Valuta,Sold Valuta,Nume Valuta,Cont,Analitic,Explicatia] .cNume_coloane = [nume;dataact;serie_act;nract;datascad;totctva;achitat;sold;valtotctva;achitatval;soldval;nume_val;cont;acont;explicatia] .cMask = "[1]=;[2]=;[3]=;[4]=replicate('9',12);[5]=;[6]=get_mask(12,gnPc);[7]=get_mask(12,gnPc);[8]=get_mask(12,gnPc);[9]=get_mask(12,gnPc);[10]=get_mask(12,gnPc);[11]=get_mask(12,gnPc);[12]=;[13]=;[14]=;[15]=" *!* .cMask = "[1]=;[2]=;[3]=;[4]=replicate('9',12);[5]=;[6]=get_mask(12,gnPc);[7]=get_mask(12,gnPc);[8]=get_mask(12,gnPc);[9]=;[10]=" *!* .cFiltruOriginal = [i.cu_inregistrari = 1 and (p.precdeb+p.debit-p.preccred-p.credit) <> 0 and p.an = ?gnAn and p.luna = ?gnLuna ] .cFiltru = [] *!* .cOrder = [e.nume,p.cont,p.acont] *!* .cGroup = [i.fel_cont, p.id_part,e.NUME,e.cod_fiscal,e.reg_comert,e.adresa,e.localitate,p.dataact,p.nract,p.datascad,p.cont,p.acont] .cTitlu = [INREGISTRARI] .cnumeCursor = [crs_facturi] .lmodparam = .T. *!* .cSelect = [select pack_situatii_financiare.inventar_patrimoniu_ireg(?pcSchema, ?pnAn, ?pnLuna, ?pnId_Part, ?pnCont, ?pnAcont) from dual] .cSelect = [{call pack_situatii_financiare.inventar_patrimoniu_ireg(?pnAn, ?pnLuna, ?pnId_Part, ?pnCont, ?pnAcont, ?gnIdSucursala)}] Endwith oinvp.Show(1) Endif If Used('crs_parteneri') Use In crs_parteneri Endif If Used('crs_conturi') Use In crs_conturi Endif If Used('crs_facturi') Use In crs_facturi Endif Endproc &&inventar_patrimoniu ***-------------------------------------------------------------------------------------------------------- Procedure list_inventar_p Parameters tcCursor, tnGroup, tlValuta, tnTipRaport * tnGroup = 1 : grupare dupa cont * tnGroup = 2 : grupare dupa analitic * tnGroup = 3 : grupare dupa cont, analitic * tnTipRaport: 1=STANDARD (text + lista facturi), 2= INAINTARE (doar text si total sold, fara facturi) + ANEXA (lista facturi pe conturi) Private pcNumeProc, pcMesaj1, pcMesaj2, pcmesaj3, pcdataora, pcGrupCont, pcSumainCont, pdData, plValuta Local lcVal, lnTipRaport, lcRaport, lcSelect, lcSql Store '' To pcMesaj1, pcMesaj2, pcmesaj3 plValuta = m.tlValuta pcSumainCont = 'suma de .................................. in contul ....... ' pdData = {} lnTipRaport = m.tnTipRaport lcSelect = SELECT() If Empty(tcCursor) Or Type('tcCursor') # 'C' tcCursor = 'crs_facturi' ENDIF If Empty(tnGroup) Or Type('tnGroup') # 'N' tnGroup = 3 ENDIF Do Case Case tnGroup = 1 pcGrupCont = [NVL(cont,'')] Case tnGroup = 2 pcGrupCont = [NVL(acont,'')] Case tnGroup = 3 pcGrupCont = [LEFT(NVL(cont,''),4)+'.'+LEFT(NVL(acont,''),4)] Otherwise pcGroupCont = [] Endcase lcRaport = [rap_inventar_patrimoniu] Use In (SELECT('crs_texte')) pcNumeProc = IIF(m.lnTipRaport = 1, [INVENTAR_PATRIMONIU], [INVENTAR_PATRIMONIU_INAINTARE]) lcSql = [select id_mesaj,mesaj,numar from mesaje where procedura = ?pcNumeProc] lcCursor = 'crs_texte' lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 AMESSAGEBOX('Select texte' + Chr(13) + goExecutor.cEroare, 0 + 16, "Eroare") Return Endif pdData = Gomonth(Date(gnAn, gnLuna, 1), 1) - 1 && ultima zi din luna Select crs_texte Locate For numar = 1 If Found() pcMesaj1 = Alltrim(mesaj) lnidmesaj1 = id_mesaj Endif Locate For numar = 2 If Found() pcMesaj2 = Alltrim(mesaj) lnidmesaj2 = id_mesaj Endif Locate For numar = 3 If Found() pcMesaj3 = Alltrim(mesaj) lnidmesaj3 = id_mesaj Endif omsg = Createobject('frm_text_inventar') *!* omsg.Ed_tx_simplu1._edbase1.Value = pcMesaj1 omsg.Ed_tx_simplu1.Tag = Transform(lnidmesaj1) *!* omsg.Ed_tx_simplu2._edbase1.Value = pcMesaj2 omsg.Ed_tx_simplu2.Tag = Transform(lnidmesaj2) *!* omsg.Ed_tx_simplu3._edbase1.Value = pcmesaj3 omsg.Ed_tx_simplu3.Tag = Transform(lnidmesaj3) omsg.Show() pcMesaj1 = Strtran(pcMesaj1, 'DD/MM/YYYY', Alltrim(Dtoc(m.pdData)),1,10,1) pcMesaj1 = Strtran(pcMesaj1, '<>', Alltrim(Dtoc(m.pdData)),1,10,1) *!* pcMesaj3 = Strtran(m.pcMesaj3, '<>', m.pcSumainCont,1,10,1) If gnbuton = 1 DO CASE CASE m.lnTipRaport = 1 lcRaport = [rap_inventar_patrimoniu] goExport.export2frx(m.tcCursor, m.lcRaport, , , , , , .T.) CASE m.lnTipRaport = 2 * Daca nu am aceeasi explicatie la toate inregistrarile, nu o arat * Vreau sa arat explicatia doar pentru conturile care nu au inregistrari, si explicatia este aceeasi din planul de conturi SELECT id_part, nume, cod_fiscal, reg_comert, email, LEFT(adresa,250) as adresa, cont, acont, nume_val, ; CAST(MIN(IIF(EMPTY(NVL(nract,0)) AND EMPTY(NVL(dataact,{})),NVL(explicatia,''), '')) as C(100)) as explicatia, ; SUM(totctva) as totctva, SUM(achitat) as achitat, SUM(valtotctva) as valtotctva, SUM(achitatval) as achitatval ; FROM (m.tcCursor) ; GROUP BY 1,2,3,4,5,6,7,8, 9 ; ORDER BY nume, cod_fiscal ; INTO CURSOR cInventarTemp readwrite lcRaport = [rap_inventar_patrimoniu_inaintare] goExport.export2frx([cInventarTemp], m.lcRaport, , , , , , .T.) USE IN (SELECT('cInventarTemp')) IF (AMESSAGEBOX('Doriti sa listati anexa?',4+32,_Screen.Caption) = 6) lcRaport = [rap_inventar_patrimoniu_anexa] goExport.export2frx(m.tcCursor, m.lcRaport, , , , , , .T.) ENDIF ENDCASE ENDIF && gnbuton *!* 08.12.2010 ^ Release pcGrupCont Use In (SELECT('crs_texte')) SELECT (m.lcSelect) Endproc &&list_inventar_p ***-------------------------------------------------------------------------------------------------------- ************************************ * Intoarce text pentru raportul rap_inventar_patrimoniu, rap_inventar_patrimoniu_inaintare ************************************ FUNCTION GetSumainCont LPARAMETERS tnIdPart LOCAL lcSumainCont, lcSelect lcSelect = SELECT() SELECT distinct cont, nume_val ; FROM crs_list ; WHERE id_part = m.tnIdPart ; ORDER BY cont ; INTO CURSOR cGrupContTotalTemp lcSumainCont = '' SELECT cGrupContTotalTemp SCAN lcSumainCont = m.lcSumainCont + 'suma de ..................' + ALLTRIM(nume_val) + ' in contul ' + ALLTRIM(cont) lcSumainCont = m.lcSumainCont + IIF(RECNO()<>RECCOUNT(), ', ', '') ENDSCAN IF EMPTY(m.lcSumainCont) lcSumainCont = 'suma de .................................. in contul ....... ' ENDIF SELECT (m.lcSelect) RETURN m.lcSumainCont ENDFUNC ************************************ Procedure datorii_buget PcTitluCol = [] pcNumeCol = [] lcSel = [{call pack_situatii_financiare.datorii_buget(?gnAn,?gnLuna,?gnIdSucursala)}] lcSchema = [] lcCursor = 'crs_Datorii' lnSucces = goExecutor.oExecute(lcSel, lcCursor) If lnSucces < 0 AMESSAGEBOX(goExecutor.cEroare, 0 + 16, "Eroare") Return Endif Select crs_datorii odat = Crea('frm_datorii_buget') odat.Show(1) Endproc ***-------------------------------------------------------------- ** =============================================================== ** listeaza cartea mare pentru o lista de conturi ** do cartea_mare with 4111,401 in orapoarte.prg ** tcCorespondente debitoare/creditoare:D/C ** am luat initial din oracle corespondentele debitoare si creditoare - dar se pare ca trebuie doar creditoare ** nu am mai modificat selectia din oracle - am filtrat doar rezultatele in foxpro ** =============================================================== Procedure cartea_mare Lparameters tcListaConturi, tcCorespondente If Pcount() = 0 Or Type('tcListaConturi') <> 'C' Or Empty(tcListaConturi) Return Endif Local i, j, lcSql, lcCursor, lnSucces, lcListaColoane, lorec, loRecTemp, nConturi, lnConturi, loHash Local lcField, lcColumn, lcCreateCursor, lcSumColumns, lnColumnCount, lnGrupe12, lnRest12, llUltimaPagina llUltimaPagina = .F. Private pcCont, pnAn, pnLuna, pcConturiCorespondente, pnSold, pcdataora, pcCorespondente Private pnTotalPagini, pnPaginaCurenta pnTotalPagini = 0 pnPaginaCurenta = 0 If Empty(tcCorespondente) Or Pcount() < 2 Or Type('tcCorespondente') <> 'C' pcCorespondente = 'C' Else pcCorespondente = Iif(tcCorespondente $ 'D/C', tcCorespondente, 'C') Endif Private Array c, d Dimension c[100], d[100] Store '' To c, d Local ox As ReportListener *-- Create a ReportListener ox = Createobject('ReportListener') ox.DynamicLineHeight = .F. ox.ListenerType = 1 && Preview loHash = GetHash() loHash.SetValue("oListener", ox) pcConturiCorespondente = "" pnSold = 0 lnConturi = Getwordcount(tcListaConturi, ",") For nConturi = 1 To lnConturi llUltimulCont = nConturi = lnConturi If !llUltimulCont LCNOPAGEEJECT = 'NOPAGEEJECT' Else LCNOPAGEEJECT = 'TO PRINTER PROMPT' Endif pcCont = Getwordnum(tcListaConturi, nConturi, ",") pnAn = gnAn pnLuna = gnLuna Wait Window 'CONT: ' + pcCont Nowait && sold initial la 1 ianuarie lcSql = [select ABS(precdeb - preccred) as sold from vbal where an = ?pnAn and luna = 1 and cont = ?pcCont] + ; gcCondSucursala lcCursor = 'cSold' lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 AMESSAGEBOX(goExecutor.cEroare, 0 + 16, "Eroare") Return Endif pnSold = cSold.sold Use In cSold && cursorul crostabulat cu coloane de tipul LUNA, NUMELUNA, D701, D702, C4427 lcSql = [{call pack_contab_rapoarte.cartea_mare(?pcCont, ?pcCorespondente, ?pnAn, ?pnLuna, ?gnIdSucursala)}] lcCursor = 'cCarteaMare1' lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 AMESSAGEBOX(goExecutor.cEroare, 0 + 16, "Eroare") Return Endif lcListaColoane = "" Select cCarteaMare1 For i = 3 To Fcount() lcField = Upper(Field(i)) If Inlist(lcField, 'TOTDEB', 'TOTCRED', 'SOLDDEB', 'SOLDCRED') Loop Endif lcListaColoane = lcListaColoane + "," + lcField Endfor lcListaColoane = "LUNA, NUMELUNA " + Iif(!Empty(lcListaColoane), lcListaColoane, "") + ", TOTDEB, TOTCRED, SOLDDEB, SOLDCRED" ** CREEZ CARTEA MARE PENTRU CONTURILE DEBITOARE SI CARTEA MARE PENTRU CONTURILE CREDITOARE lnColumnCount = 0 * listez doar corespondentele DEBITOARE sau CREDITOARE If Empty(lcListaColoane) Loop Endif lcSelect = "select " + lcListaColoane + " from cCarteaMare1 into cursor cCarteaMare nofilter" &lcSelect pcConturiCorespondente = Iif(tcCorespondente = 'D', "CREDITOARE", "DEBITOARE") ** CREEZ UN CURSOR CU 99 DE COLOANE C01, C02, ..C30 ** COMPLETEZ ARRAY-UL D[1], C[lnFcount] cu numele coloanelor D701, D702, D703, D707 lcCreateCursor = "CREATE CURSOR cCarteaMareTemp(numeluna c(30), luna n(2), trimestru n(1), totdeb n(20,4), totcred n(20,4), solddeb n(20,4), soldcred n(20,4)" lnFcount = Fcount('cCarteaMare') && cCarteaMare(luna, numeluna, D701, D702, ETC) lcSumColumns = "" Store "" To c, d For i = 3 To 101 lcColumn = "c" + Padl(i - 2, 2, "0") If i <= lnFcount - 4 && FARA TOTDEB, TOTCRED, SOLDDEB, SOLDCRED lcField = Field(i, "cCarteaMare") If Inlist(Left(lcField, 1), 'D', 'C') d[i - 2] = Substr(lcField, 2) lcSumColumns = lcSumColumns + ", sum(" + lcColumn + ") as " + lcColumn lnColumnCount = lnColumnCount + 1 && numarul de coloane cu sume Endif Endif lcCreateCursor = lcCreateCursor + ", " + lcColumn + " N(20,4)" Endfor && i = 3 TO 102 lcSumColumns = Iif(!Empty(Alltrim(lcSumColumns)), Substr(Alltrim(lcSumColumns), 2) + ", ", "") + " SUM(totdeb) as totdeb, SUM(totcred) as totcred" lcCreateCursor = lcCreateCursor + ")" &lcCreateCursor Select cCarteaMare Scan Scatter Name lorec Select cCarteaMareTemp Scatter Name loRecTemp Blank && cCarteaMareTemp.C01 = cCarteaMare.D701, cCarteaMareTemp.C02 = cCarteaMare.D702 ETC For i = 3 To lnFcount - 4 lcField = "lorec." + Field(i, "cCarteaMare") If Inlist(Left(Field(i, "cCarteaMare"), 1), 'D', 'C') lnValue = Nvl(Evaluate(lcField), 0.00) lcFieldTemp = "loRecTemp.c" + Padl(i - 2, 2, "0") &lcFieldTemp = lnValue Endif Endfor loRecTemp.totdeb = Nvl(lorec.totdeb, 0) loRecTemp.totcred = Nvl(lorec.totcred, 0) loRecTemp.solddeb = Nvl(lorec.solddeb, 0) loRecTemp.soldcred = Nvl(lorec.soldcred, 0) loRecTemp.luna = lorec.luna loRecTemp.numeluna = lorec.numeluna Do Case Case Between(lorec.luna, 1, 3) loRecTemp.trimestru = 1 Case Between(lorec.luna, 4, 6) loRecTemp.trimestru = 2 Case Between(lorec.luna, 7, 9) loRecTemp.trimestru = 3 Otherwise loRecTemp.trimestru = 4 Endcase Insert Into cCarteaMareTemp From Name loRecTemp && TOTALURI If Inlist(lorec.luna, 3, 6, 9, 12) lcSelectTotals = "SELECT " + lcSumColumns + " from cCarteaMareTemp where LEFT(NUMELUNA,2) # 'TR' INTO CURSOR cTotaluriTemp" &lcSelectTotals Select cTotaluriTemp Scatter Name loTotal && numeluna c(20), luna n(2), trimestru n(1), totdeb n(20,4), totcred, n(20,4), solddeb n(20,4), soldcred n(20,4) AddProperty(loTotal, "numeluna", "TR " + Iif(lorec.luna = 3, "I", Iif(lorec.luna = 6, "I+II", Iif(lorec.luna = 9, "I+II+III", "I+II+III+IV"))) ) AddProperty(loTotal, "luna", lorec.luna) AddProperty(loTotal, "trimestru", loRecTemp.trimestru) AddProperty(loTotal, "solddeb", loRecTemp.trimestru) AddProperty(loTotal, "soldcred", loRecTemp.trimestru) Select cCarteaMareTemp loTotal.solddeb = Iif(pnSold + loTotal.totdeb - loTotal.totcred >= 0, Abs(pnSold + loTotal.totdeb - loTotal.totcred), 0) loTotal.soldcred = Iif(pnSold + loTotal.totdeb - loTotal.totcred < 0, Abs(pnSold + loTotal.totdeb - loTotal.totcred), 0) Insert Into cCarteaMareTemp From Name loTotal Endif && TOTALURI Endscan && cCarteaMare pcdataora = get_ora(2) lnGrupe12 = Int(lnColumnCount / 12) lnRest12 = Mod(lnColumnCount, 12) If lnRest12 > 8 lnGrupe12 = lnGrupe12 + 1 lnRest12 = 0 Endif pnTotalPagini = lnGrupe12 + Iif(lnRest12 > 0, 1, 0) pnTotalPagini = Iif(pnTotalPagini > 0, pnTotalPagini, 1) pnPaginaCurenta = 0 llUltimaPagina = .F. For i = 1 To 5 Store '' To c If llUltimaPagina Exit Endif lnOffset = (i - 1) * 12 lcSelect1 = "" lcSelect2 = "" For j = 1 To 12 If i <= lnGrupe12 && AND lnOffset + j <= lnColumnCount If lnOffset + j <= lnColumnCount lcSelect1 = lcSelect1 + ", C" + Padl(lnOffset + j, 2, '0') + " as C" + Padl(j, 2, '0') Else lcSelect1 = lcSelect1 + ", 0 as C" + Padl(j, 2, '0') Endif Else If j <= 8 && AND lnOffset + j <= lnColumnCount If lnOffset + j <= lnColumnCount lcSelect2 = lcSelect2 + ", C" + Padl(lnOffset + j, 2, '0') + " as C" + Padl(j, 2, '0') Else lcSelect2 = lcSelect2 + ", 0 as C" + Padl(j, 2, '0') Endif Endif Endif c[j] = d[(i - 1) * 12 + j] Endfor If !Empty(lcSelect1) lcSelect1 = "select luna, numeluna " + lcSelect1 + " from cCarteaMareTemp into cursor cCarteaMareTempCurent" &lcSelect1 Select cCarteaMareTempCurent With loHash .SetValue("cRaport", "rap_carteamare1") .SetValue("cCommandClauses", "NOPAGEEJECT") Endwith pnPaginaCurenta = pnPaginaCurenta + 1 LISTAREUSERREPORT_HASH(loHash) && oproceduri_rapoarte * goExport.export2frx('cCarteaMareTempCurent', 'rap_carteamare1', , , , 'NOPAGEEJECT', , .T.) Use In (Select ('cCarteaMareTempCurent')) Else llUltimaPagina = .T. lcSelect2 = "select luna, numeluna " + lcSelect2 + ", totdeb,totcred,solddeb,soldcred from cCarteaMareTemp into cursor cCarteaMareTempCurent" &lcSelect2 Select cCarteaMareTempCurent With loHash .SetValue("cRaport", "rap_carteamare") .SetValue("cCommandClauses", LCNOPAGEEJECT) Endwith pnPaginaCurenta = pnPaginaCurenta + 1 Keyboard '{CTRL+F10}' LISTAREUSERREPORT_HASH(loHash) && proceduri_rapoarte *goExport.export2frx('cCarteaMareTempCurent', 'rap_carteamare', , , , m.LCNOPAGEEJECT, , .T.) Use In (Select ('cCarteaMareTempCurent')) Endif Endfor Use In (Select('cCarteaMareTemp')) Use In (Select('cCarteaMareTemp1')) Use In (Select('cTotaluriTemp')) Endfor && nConturi = 1 TO lnConturi *!* SET REPORTBEHAVIOR &lcReportBehaviour Endproc && cartea mare ***-------------------------------------------------------------- *************************************************************************** Function raport_regvanz2007_restrans Lparameters tnTip, tcCursor Private pnTipZile Store 0 To pnTipZile Select Distinct 0 As ales, fel_document, id_fdoc From (tcCursor) ; Order By fel_document Into Cursor crsdocumente Readwrite Select Distinct 0 As ales, id_part, denumire, cod_fiscal From (tcCursor) ; Order By denumire, cod_fiscal Into Cursor crsparteneri Readwrite ofrmcriterii = Createobject('frm_regvanz2007_restrans') ofrmcriterii.Show(1) If gnbuton = 1 && pnTipZile *!* select id_jv,an,luna,cod,dataact,cod_fiscal,nract,serie_act,id_part,id_fdoc,totctva,ro19b,ro19t,ro9b, *!* ro9t,roti,cescdd1,cescdd2,wrscdd,fodd,fofdd,wrscfdd,wrn,fel_document,denumire from (tcCursor) Do Case Case gnAn * 12 + gnLuna < 2010 * 12 + 7 If pnTipZile = 1 *!* cumulat pe perioada Select 0 As tip, Min(dataact) As dataact, cod_fiscal, Min(nract) As nract, serie_act, id_part, id_fdoc, Sum(totctva) As totctva, ; Sum(ro19b) As ro19b, Sum(ro19t) As ro19t, Sum(ro9b) As ro9b, Sum(ro9t) As ro9t, ; Sum(ro5b) As ro5b, Sum(ro5t) As ro5t, Sum(roti) As roti, ; Sum(cescdd1 + ceoptr) As cescdd1, Sum(cescdd2) As cescdd2, Sum(wrscdd) As wrscdd, ; Sum(fodd + cesvdd) As fodd, Sum(fofdd + cesvfdd) As fofdd, Sum(cesvfs) As cesvfs, ; Sum(wrscfdd) As wrscfdd, Sum(wrn) As wrn, fel_document, denumire From (tcCursor) ; Where id_fdoc In (Select id_fdoc From crsdocumente Where ales = 1) And ; id_part In (Select id_part From crsparteneri Where ales = 1) ; Group By serie_act, cod_fiscal, id_part, id_fdoc, fel_document, denumire ; Union All ; Select 0 As tip, a.dataact, a.cod_fiscal, a.nract, a.serie_act, a.id_part, a.id_fdoc, a.totctva, a.ro19b, a.ro19t, ; a.ro9b, a.ro9t, a.ro5b, a.ro5t, ; a.roti, a.cescdd1 + a.ceoptr As cescdd1, a.cescdd2, a.wrscdd, ; a.fodd + a.cesvdd As fodd, a.fofdd + a.cesvfdd As fofdd, a.cesvfs, ; a.wrscfdd, a.wrn, a.fel_document, a.denumire ; From (tcCursor) a ; Where a.id_fdoc Not In (Select id_fdoc From crsdocumente Where ales = 1) ; Or (a.id_fdoc In (Select id_fdoc From crsdocumente Where ales = 1) And ; a.id_part Not In (Select id_part From crsparteneri Where ales = 1)) ; Order By a.dataact, a.nract Into Cursor cListRC Else *!* cumulat in fiecare zi a perioadei Select 0 As tip, dataact, cod_fiscal, Min(nract) As nract, serie_act, id_part, id_fdoc, Sum(totctva) As totctva, Sum(ro19b) As ro19b, ; Sum(ro19t) As ro19t, Sum(ro9b) As ro9b, Sum(ro9t) As ro9t, Sum(ro5b) As ro5b, Sum(ro5t) As ro5t, ; Sum(roti) As roti, Sum(cescdd1 + ceoptr) As cescdd1, ; Sum(cescdd2) As cescdd2, Sum(wrscdd) As wrscdd, Sum(fodd + cesvdd) As fodd, Sum(fofdd + cesvfdd) As fofdd, ; Sum(cesvfs) As cesvfs, Sum(wrscfdd) As wrscfdd, ; Sum(wrn) As wrn, fel_document, denumire From (tcCursor) ; Where id_fdoc In (Select id_fdoc From crsdocumente Where ales = 1) And ; id_part In (Select id_part From crsparteneri Where ales = 1) ; Group By serie_act, dataact, cod_fiscal, id_part, id_fdoc, fel_document, denumire ; Union All ; Select 0 As tip, a.dataact, a.cod_fiscal, a.nract, a.serie_act, a.id_part, a.id_fdoc, a.totctva, a.ro19b, a.ro19t, ; a.ro9b, a.ro9t, a.ro5b, a.ro5t, ; a.roti, a.cescdd1 + a.ceoptr As cescdd1, a.cescdd2, a.wrscdd, ; a.fodd + a.cesvdd As fodd, a.fofdd + a.cesvfdd As fofdd, a.cesvfs, ; a.wrscfdd, a.wrn, a.fel_document, a.denumire ; From (tcCursor) a ; Where a.id_fdoc Not In (Select id_fdoc From crsdocumente Where ales = 1) ; Or (a.id_fdoc In (Select id_fdoc From crsdocumente Where ales = 1) And ; a.id_part Not In (Select id_part From crsparteneri Where ales = 1)) ; Order By a.dataact, a.nract Into Cursor cListRC Endif Case gnAn * 12 + gnLuna < 2012 * 12 + 12 *!* 24.10.2011 If pnTipZile = 1 *!* cumulat pe perioada Select 0 As tip, Min(dataact) As dataact, cod_fiscal, Min(nract) As nract, serie_act, id_part, id_fdoc, Sum(totctva) As totctva, ; Sum(ro24b) As ro24b, Sum(ro24t) As ro24t, Sum(ro19b) As ro19b, Sum(ro19t) As ro19t, Sum(ro9b) As ro9b, Sum(ro9t) As ro9t, ; Sum(ro5b) As ro5b, Sum(ro5t) As ro5t, Sum(roti) As roti, ; Sum(cescdd1) As cescdd1, Sum(cescdd2) As cescdd2, Sum(ceoptr) As ceoptr, Sum(wrscdd) As wrscdd, ; Sum(fodd) As fodd, Sum(cesvdd) As cesvdd, Sum(fofdd) As fofdd, Sum(cesvfdd) As cesvfdd, Sum(cesvfs) As cesvfs, ; Sum(wrscfdd) As wrscfdd, Sum(wrn) As wrn, fel_document, denumire From (tcCursor) ; Where id_fdoc In (Select id_fdoc From crsdocumente Where ales = 1) And ; id_part In (Select id_part From crsparteneri Where ales = 1) ; Group By serie_act, cod_fiscal, id_part, id_fdoc, fel_document, denumire ; Union All ; Select 0 As tip, a.dataact, a.cod_fiscal, a.nract, a.serie_act, a.id_part, a.id_fdoc, a.totctva, a.ro24b, a.ro24t, a.ro19b, a.ro19t, ; a.ro9b, a.ro9t, a.ro5b, a.ro5t, ; a.roti, a.cescdd1, a.ceoptr, a.cescdd2, a.wrscdd, ; a.fodd, a.cesvdd, a.fofdd, a.cesvfdd, a.cesvfs, ; a.wrscfdd, a.wrn, a.fel_document, a.denumire ; From (tcCursor) a ; Where a.id_fdoc Not In (Select id_fdoc From crsdocumente Where ales = 1) ; Or (a.id_fdoc In (Select id_fdoc From crsdocumente Where ales = 1) And ; a.id_part Not In (Select id_part From crsparteneri Where ales = 1)) ; Order By a.dataact, a.nract Into Cursor cListRC Else *!* cumulat in fiecare zi a perioadei Select 0 As tip, dataact, cod_fiscal, Min(nract) As nract, serie_act, id_part, id_fdoc, Sum(totctva) As totctva, ; Sum(ro24b) As ro24b, Sum(ro24t) As ro24t, Sum(ro19b) As ro19b, Sum(ro19t) As ro19t, Sum(ro9b) As ro9b, Sum(ro9t) As ro9t, ; Sum(ro5b) As ro5b, Sum(ro5t) As ro5t, Sum(roti) As roti, ; Sum(cescdd1) As cescdd1, Sum(cescdd2) As cescdd2, Sum(ceoptr) As ceoptr, Sum(wrscdd) As wrscdd, ; Sum(fodd) As fodd, Sum(cesvdd) As cesvdd, Sum(fofdd) As fofdd, Sum(cesvfdd) As cesvfdd, Sum(cesvfs) As cesvfs, ; Sum(wrscfdd) As wrscfdd, Sum(wrn) As wrn, fel_document, denumire From (tcCursor) ; Where id_fdoc In (Select id_fdoc From crsdocumente Where ales = 1) And ; id_part In (Select id_part From crsparteneri Where ales = 1) ; Group By serie_act, dataact, cod_fiscal, id_part, id_fdoc, fel_document, denumire ; Union All ; Select 0 As tip, a.dataact, a.cod_fiscal, a.nract, a.serie_act, a.id_part, a.id_fdoc, a.totctva, a.ro24b, a.ro24t, a.ro19b, a.ro19t, ; a.ro9b, a.ro9t, a.ro5b, a.ro5t, ; a.roti, a.cescdd1, a.ceoptr, a.cescdd2, a.wrscdd, ; a.fodd, a.cesvdd, a.fofdd, a.cesvfdd, a.cesvfs, ; a.wrscfdd, a.wrn, a.fel_document, a.denumire ; From (tcCursor) a ; Where a.id_fdoc Not In (Select id_fdoc From crsdocumente Where ales = 1) ; Or (a.id_fdoc In (Select id_fdoc From crsdocumente Where ales = 1) And ; a.id_part Not In (Select id_part From crsparteneri Where ales = 1)) ; Order By a.dataact, a.nract Into Cursor cListRC Endif Otherwise && 01/2013 && TVA INCASARE If pnTipZile = 1 *!* cumulat pe perioada Select 0 As tip, Max(COD) As COD, Max(id_fact) As id_fact, Min(dataact) As dataact, cod_fiscal, Min(nract) As nract, serie_act, id_part, id_fdoc, Sum(totctva) As totctva, ; tva_incasare, Sum(totftvatax) As totftvatax, Sum(tottvatax) As tottvatax, ; Sum(ro24b) As ro24b, Sum(ro24t) As ro24t, Sum(ro20b) As ro20b, Sum(ro20t) As ro20t, Sum(ro19b) As ro19b, Sum(ro19t) As ro19t, Sum(ro9b) As ro9b, Sum(ro9t) As ro9t, ; Sum(ro5b) As ro5b, Sum(ro5t) As ro5t, Sum(roti) As roti, ; Sum(ro24nb) As ro24nb, Sum(ro24nt) As ro24nt, Sum(ro20nb) As ro20nb, Sum(ro20nt) As ro20nt, Sum(ro19nb) As ro19nb, Sum(ro19nt) As ro19nt, Sum(ro9nb) As ro9nb, Sum(ro9nt) As ro9nt, Sum(ro5nb) As ro5nb, Sum(ro5nt) As ro5nt, ; Sum(cescdd1) As cescdd1, Sum(cescdd2) As cescdd2, Sum(ceoptr) As ceoptr, Sum(wrscdd) As wrscdd, ; Sum(fodd) As fodd, Sum(cesvdd) As cesvdd, Sum(fofdd) As fofdd, Sum(cesvfdd) As cesvfdd, Sum(cesvfs) As cesvfs, ; Sum(wrscfdd) As wrscfdd, Sum(wrn) As wrn, fdoc, denumire From (tcCursor) ; Where id_fdoc In (Select id_fdoc From crsdocumente Where ales = 1) And ; id_part In (Select id_part From crsparteneri Where ales = 1) ; Group By serie_act, cod_fiscal, id_part, id_fdoc, fdoc, denumire, tva_incasare ; Union All ; Select 0 As tip, a.COD, a.id_fact, a.dataact, a.cod_fiscal, a.nract, a.serie_act, a.id_part, a.id_fdoc, a.totctva, ; a.tva_incasare, a.totftvatax, a.tottvatax, ; a.ro24b, a.ro24t, a.ro20b, a.ro20t, a.ro19b, a.ro19t, ; a.ro9b, a.ro9t, a.ro5b, a.ro5t, ; a.ro24nb, a.ro24nt, a.ro20nb, a.ro20nt, a.ro19nb, a.ro19nt, a.ro9nb, a.ro9nt, a.ro5nb, a.ro5nt, ; a.roti, a.cescdd1, a.ceoptr, a.cescdd2, a.wrscdd, ; a.fodd, a.cesvdd, a.fofdd, a.cesvfdd, a.cesvfs, ; a.wrscfdd, a.wrn, a.fdoc, a.denumire ; From (tcCursor) a ; Where a.id_fdoc Not In (Select id_fdoc From crsdocumente Where ales = 1) ; Or (a.id_fdoc In (Select id_fdoc From crsdocumente Where ales = 1) And ; a.id_part Not In (Select id_part From crsparteneri Where ales = 1)) ; Order By a.dataact, a.nract Into Cursor cListRC Else *!* cumulat in fiecare zi a perioadei Select 0 As tip, Max(COD) As COD, Max(id_fact) As id_fact, dataact, cod_fiscal, Min(nract) As nract, serie_act, id_part, id_fdoc, Sum(totctva) As totctva, ; tva_incasare, Sum(totftvatax) As totftvatax, Sum(tottvatax) As tottvatax, ; Sum(ro24b) As ro24b, Sum(ro24t) As ro24t, Sum(ro20b) As ro20b, Sum(ro20t) As ro20t, Sum(ro19b) As ro19b, Sum(ro19t) As ro19t, Sum(ro9b) As ro9b, Sum(ro9t) As ro9t, ; Sum(ro5b) As ro5b, Sum(ro5t) As ro5t, Sum(roti) As roti, ; Sum(ro24nb) As ro24nb, Sum(ro24nt) As ro24nt, Sum(ro20nb) As ro20nb, Sum(ro20nt) As ro20nt, Sum(ro19nb) As ro19nb, Sum(ro19nt) As ro19nt, Sum(ro9nb) As ro9nb, Sum(ro9nt) As ro9nt, Sum(ro5nb) As ro5nb, Sum(ro5nt) As ro5nt, ; Sum(cescdd1) As cescdd1, Sum(cescdd2) As cescdd2, Sum(ceoptr) As ceoptr, Sum(wrscdd) As wrscdd, ; Sum(fodd) As fodd, Sum(cesvdd) As cesvdd, Sum(fofdd) As fofdd, Sum(cesvfdd) As cesvfdd, Sum(cesvfs) As cesvfs, ; Sum(wrscfdd) As wrscfdd, Sum(wrn) As wrn, fdoc, denumire From (tcCursor) ; Where id_fdoc In (Select id_fdoc From crsdocumente Where ales = 1) And ; id_part In (Select id_part From crsparteneri Where ales = 1) ; Group By serie_act, dataact, cod_fiscal, id_part, id_fdoc, fdoc, denumire, tva_incasare ; Union All ; Select 0 As tip, a.COD, a.id_fact, a.dataact, a.cod_fiscal, a.nract, a.serie_act, a.id_part, a.id_fdoc, a.totctva, ; a.tva_incasare, a.totftvatax, a.tottvatax, ; a.ro24b, a.ro24t, a.ro20b, a.ro20t, a.ro19b, a.ro19t, a.ro9b, a.ro9t, a.ro5b, a.ro5t, ; a.ro24nb, a.ro24nt, a.ro20nb, a.ro20nt, a.ro19nb, a.ro19nt, a.ro9nb, a.ro9nt, a.ro5nb, a.ro5nt, ; a.roti, a.cescdd1, a.ceoptr, a.cescdd2, a.wrscdd, ; a.fodd, a.cesvdd, a.fofdd, a.cesvfdd, a.cesvfs, ; a.wrscfdd, a.wrn, a.fdoc, a.denumire ; From (tcCursor) a ; Where a.id_fdoc Not In (Select id_fdoc From crsdocumente Where ales = 1) ; Or (a.id_fdoc In (Select id_fdoc From crsdocumente Where ales = 1) And ; a.id_part Not In (Select id_part From crsparteneri Where ales = 1)) ; Order By a.dataact, a.nract Into Cursor cListRC Endif Endcase lnTip = tnTip Else lnTip = 0 Endif If Used('crsdocumente') Use In crsdocumente Endif If Used('crsparteneri') Use In crsparteneri Endif Release ofrmcriterii, pnTipZile Return lnTip Endfunc && raport_regvanz2007_restrans *************************************************************************** Procedure registrul_inventar Local lnAn, lnLuna, lcSelect lcSelect = SELECT() lnLuna = m.gnLuna lnAn = m.gnAn Do make_tbalanta With .F., m.lnLuna, m.lnAn, m.lnLuna, m.lnAn If m.glEMama Select * From tbalanta Where Inlist(BNIVEL, 6, 7) Into Cursor tbalanta Readwrite Endif SELECT tbalanta SET FILTER TO !EMPTY(NVL(cont, '')) AND EMPTY(NVL(acont, '')) goExport.export2frx("tbalanta", "registru_inventar.frx", , , , , , .T.) Use In (Select('tbalanta')) SELECT (m.lcSelect) Endproc && registrul_inventar ***************** *** Raport facturi incasate in luna curenta prin banca (conturi curente, conturi TVA) + baza/tva din registrul de vanzari *** contine atentionari la facturile care nu sunt incasate corect baza/tva in contul curent/TVA ***************** Procedure TVADefalcatIncasariPlati LPARAMETERS tcCont, tcTip * tcCont: cont banca sau casa 5121/5311 * tcTip: INCASARI/PLATI ex: TVADefalcatIncasariPlati('5311', 'PLATI') = plati prin casa Private pdDataI, pdDataF Local lofrm As "frm_perioada_zzllaaaa" Local laCoteTVA[1], lcField, lcIndex, lcItem, lcSelect, lcSelectAct, lcSelectBanca, lcSelectBanca2 Local lcSir, lcSirActcv, lcSirBaza, lcSirBazaTVA, lcSirNeimpozabil, lcSirTVA, lcSirTVAAltele Local lcWhereA, lcXlsFile, lcnume, ldDataCurenta, llSucces, lnBaza, lnBazaIncasat, lnCotaTVA Local lnField, lnIncasat, lnItem, lnItems, lnTVA, lnTVAIncasat, loFact, loFactTVACE, loFactTVAFO Local loFactTVARO, loFactTVAWR, lcTipJurnal LOCAL lcCont, llFound, lnIdFact, llIncasari, lcTip, lnSign lcCont = IIF(TYPE('tcCont') = 'C' and !EMPTY(m.tcCont), m.tcCont, '5121') && incasari banca default lcTip = IIF(TYPE('tcTip') = 'C' and !EMPTY(m.tcTip), UPPER(ALLTRIM(m.tcTip)), 'INCASARI') lcTip = IIF(INLIST(m.lcTip, "INCASARI", "PLATI"), m.lcTip, "INCASARI") llIncasari = (m.lcTip = "INCASARI") lcTipJurnal = IIF(m.llIncasari, "JV", "JC") ldDataCurenta = Date() If m.gnAn * 12 + m.gnLuna = Year(m.ldDataCurenta) * 12 + Month(m.ldDataCurenta) pdDataI = m.ldDataCurenta Else pdDataI = DATE(m.gnAn, m.gnLuna, 1) Endif pdDataF = m.pdDataI *** alegere perioada lofrm = Createobject("frm_perioada_zzllaaaa") lofrm.Show(1) If m.gnButon = 2 Or EMPTY(NVL(m.pdDataI, {})) Or EMPTY(NVL(m.pdDataF, {})) Return Endif IF m.llIncasari TEXT TO lcWhereA NOSHOW TEXTMERGE a.an = <> and a.luna = <> and a.sters = 0 and a.dataact between to_date('<>', 'yyyymmdd') and to_date('<>', 'yyyymmdd') And a.scd <> And a.scc in ('411', '4111', '418', '461', '4118', '4511') And NVL(pd.denumire, 'X') not like '%COMPENS%' <> ENDTEXT ELSE TEXT TO lcWhereA NOSHOW TEXTMERGE a.an = <> and a.luna = <> and a.sters = 0 and a.dataact between to_date('<>', 'yyyymmdd') and to_date('<>', 'yyyymmdd') And a.scc <> And a.scd in ('401', '404', '408', '462', '473', '4511') And NVL(pc.denumire, 'X') not like '%COMPENS%' <> ENDTEXT ENDIF *** Selectez incasarile/platile prin/din banca/casa din Registrul Jurnal IF m.llIncasari TEXT TO lcSelectAct NOSHOW TEXTMERGE Select a.an, a.luna, a.dataact, a.id_partc as id_part, pc.denumire As partener, pc.cod_fiscal, id_factc as id_fact, perechec As nrfact, a.id_partd as id_banca, pd.denumire As banca, stringagg(a.scd) as contc, a.scc As cont, a.id_sucursala, SUM(a.suma) as suma From act a left join nom_parteneri pd on a.id_partd = pd.id_part left join nom_parteneri pc on a.id_partc = pc.id_part Where <> group by a.an, a.luna, a.dataact, a.id_partc, pc.denumire, pc.cod_fiscal, id_factc, perechec, a.id_partd, pd.denumire, a.scc, a.id_sucursala ENDTEXT ELSE TEXT TO lcSelectAct NOSHOW TEXTMERGE Select a.an, a.luna, a.dataact, a.id_partd as id_part, pd.denumire As partener, pd.cod_fiscal, id_factd as id_fact, pereched As nrfact, a.id_partc as id_banca, pc.denumire As banca, stringagg(a.scc) as contc, a.scd As cont, a.id_sucursala, SUM(a.suma) as suma From act a left join nom_parteneri pc on a.id_partc = pc.id_part left join nom_parteneri pd on a.id_partd = pd.id_part Where <> group by a.an, a.luna, a.dataact, a.id_partd, pd.denumire, pd.cod_fiscal, id_factd, pereched, a.id_partc, pc.denumire, a.scd, a.id_sucursala ENDTEXT ENDIF llSucces = goExecutor.oExecuta(m.lcSelectAct, "cIncasariBanca") IF !m.llSucces RETURN ENDIF If RECCOUNT('cIncasariBanca') = 0 AMESSAGEBOX('Nu exista inregistrari pentru perioada aleasa!', 0 + 48, _Screen.Caption) Use In (Select('cIncasariBanca')) Return ENDIF Select Distinct BANCA, BANCA As cbanca, Iif('TVA' $ BANCA, 2, 1) As ordine From cIncasariBanca Order By 3, 2 Into Cursor cbanca Readwrite Update cbanca Set cbanca = Strtran(Strtran(Alltrim(cbanca), ' ', '_'), '-', '_') Update cbanca Set cbanca = 'contx_' + Strtran(Alltrim(cbanca), '__', '_') lcSelectBanca = '' lcSelectBanca2 = '' Select cbanca Scan lcSelectBanca = lcSelectBanca + [, SUM(CASE banca WHEN '] + Alltrim(BANCA) + [' THEN suma ELSE 0.00 END) as "] + LEFT(Alltrim(cbanca),30) + ["] lcSelectBanca2 = lcSelectBanca2 + [, "] + LEFT(Alltrim(cbanca),30) + ["] Endscan *** Selectez datele facturilor din Ireg_parteneri (nract, dataact, serie_act, total_fact, total_achitat) TEXT TO lcSelect NOSHOW textmerge WITH actsel as (SELECT an, luna, dataact, id_part, partener, cod_fiscal, id_fact, nrfact, SUBSTR(stringagg(contc),1, 100) as contc, cont, id_sucursala, SUM(suma) as total_cont_incasat, SUM(CASE when banca like '%TVA%' then 0.00 else suma end) as cont_curent, SUM(CASE when banca like '%TVA%' then suma else 0.00 end) as cont_tva <> from (<>) group by an, luna, dataact,id_part,partener,cod_fiscal,id_fact,nrfact, cont, id_sucursala) select b.dataact, b.id_part, b.partener, b.cod_fiscal, b.id_fact, b.nrfact, b.contc, b.cont, ip.dataact as datafact, ip.serie_act as seriefact, b.id_sucursala, <> as totalfact, <> as totalachitat, <> as totalsold, CAST(0 as Number(20,4)) as total_baza_si_tva, CAST(0 as Number(20,4)) as baza, CAST(0 as Number(20,4)) as tva, CAST(0 as Number(20,4)) as neimpozabil, CAST(0 as Number(20,4)) as alte_tva, CAST(0 as Number(20,4)) as baza_incasat, CAST(0 as Number(20,4)) as tva_incasat, CAST(0 as Number(20,4)) as difbaza, CAST(0 as Number(20,4)) as diftva, b.total_cont_incasat, b.cont_curent, b.cont_tva <> from actsel b left join (select ip1.dataact, ip1.serie_act, ip1.cont, ip1.id_fact, ip1.an, ip1.luna, ip1.id_sucursala, sum(ip1.precdeb) as precdeb, sum(ip1.preccred) as preccred, sum(ip1.debit) as debit, sum(ip1.credit) as credit from ireg_parteneri ip1 join actsel b1 on b1.cont = ip1.cont and b1.id_fact = ip1.id_fact and b1.an = ip1.an and b1.luna = ip1.luna and NVL(b1.id_sucursala, 0) = NVL(ip1.id_sucursala, 0) group by ip1.dataact, ip1.serie_act, ip1.cont, ip1.id_fact, ip1.an, ip1.luna, ip1.id_sucursala) ip on b.cont = ip.cont and b.id_fact = ip.id_fact and b.an = ip.an and b.luna = ip.luna and NVL(b.id_sucursala, 0) = NVL(ip.id_sucursala, 0) order by b.dataact, b.partener, b.nrfact, b.cont ENDTEXT llSucces = goExecutor.oExecuta(m.lcSelect, "cIncasariBanca2") Use In (Select('cIncasariBanca')) IF !m.llSucces RETURN ENDIF *** Selectez prima aparitie a facturilor din Jurnalul de Vanzari, pentru a lua sume pe cote TVA *!* SELECT distinct a.an, *!* a.luna, *!* a.dataact, *!* a.id_partc as id_part, *!* id_factc as id_fact, *!* perechec As nrfact, *!* scc As cont *!* from act a left join nom_parteneri pd on a.id_partd = pd.id_part *!* where <> TEXT TO lcSelect TEXTMERGE NOSHOW select * from (select j.*, rank() over(partition by j.nract, j.serie_act, j.dataact, j.id_part order by j.an, j.luna) as rn from <> j join (select distinct ip.id_part, ip.id_fact, ip.nract, ip.cont, ip.dataact, ip.serie_act, ip.id_sucursala from (<>) b join ireg_parteneri ip on b.cont = ip.cont and b.id_fact = ip.id_fact and b.an = ip.an and b.luna = ip.luna and NVL(b.id_sucursala,0) = NVL(ip.id_sucursala,0)) f on j.id_part = f.id_part and j.dataact = f.dataact and nvl(j.serie_act, 'xxx') = nvl(f.serie_act, 'xxx') and j.nract = f.nract and nvl(j.id_fact,f.id_fact) = f.id_fact and NVL(j.id_sucursala,0) = NVL(f.id_sucursala,0)) where rn = 1 ENDTEXT llSucces = goExecutor.oExecuta(m.lcSelect, "cJurnalTVATemp") IF !m.llSucces USE IN (SELECT('cIncasariBanca2')) RETURN ENDIF REPLACE ALL serie_act WITH '' FOR ISNULL(serie_act) IN cJurnalTVATemp REPLACE ALL seriefact WITH '' FOR ISNULL(seriefact) IN cIncasariBanca2 Select cJurnalTVATemp Index On Padr(id_part, 20, ' ') + Dtos(dataact) + Padr(serie_act, 10, ' ') + Padl(nract, 14, '0') + PADL(NVL(id_sucursala,0), 10, '0') Tag ordine INDEX on id_fact TAG id_fact lcSir = '' lcSirBaza = '0' lcSirTVA = '0' lcSirNeimpozabil = '0' lcSirTVAAltele = '0' lcSirBazaTVA = '0' For lnField = 1 To Fcount() lcField = UPPER(Field(m.lnField)) If Inlist(Left(lcField, 2), 'RO', 'CE', 'WR', 'FO') lcSir = lcSir + ',j.' + m.lcField Do Case Case Left(m.lcField, 2) = 'RO' And Right(m.lcField, 1) = 'B' lcSirBaza = m.lcField + '+' + m.lcSirBaza Case Left(m.lcField, 2) = 'RO' And Right(m.lcField, 1) = 'T' lcSirTVA = m.lcField + '+' + m.lcSirTVA Case Left(m.lcField, 2) = 'RO' lcSirNeimpozabil = m.lcField + '+' + m.lcSirNeimpozabil Otherwise lcSirTVAAltele = m.lcField + '+' + m.lcSirTVAAltele Endcase lcSirBazaTVA = m.lcField + '+' + m.lcSirBazaTVA Endif && Inlist(Left(lcField, 2), 'RO', 'CE', 'WR', 'FO') Endfor && lnField If Used('cJurnalTVATemp') Select cIncasariBanca2 lcSirActcv = '' For lnField = 1 To Fcount() lcField = Field(m.lnField) lcSirActcv = lcSirActcv + ',a.' + m.lcField Endfor lcSirActcv = Substr(m.lcSirActcv, 2) lcSelect = [SELECT ] + m.lcSirActcv + ; [, SPACE(2) as platitortva, SPACE(2) as splittva, SPACE(2) as tvaincasare, SPACE(2) as inactiv ] + ; lcSir + ; [ FROM cIncasariBanca2 a, cJurnalTVATemp j where .F. INTO CURSOR cFacturiTVA READWRITE] &lcSelect Select cIncasariBanca2 Scan Scatter Name loFact lcIndex = Padr(id_part, 20, ' ') + Dtos(datafact) + Padr(seriefact, 10, ' ') + Padl(nrfact, 14, '0') + PADL(NVL(id_sucursala,0), 10, '0') lnIdFact = id_fact Select cFacturiTVA Append Blank Gather Name loFact llFound = .F. Select cJurnalTVATemp If !Seek(m.lnIdFact,"cJurnalTVATemp","id_fact") If Seek(m.lcIndex,"cJurnalTVATemp","ordine") llFound = .T. ENDIF ELSE llFound = .T. ENDIF IF m.llFound Scatter Name loFactTVARO Fields Like 'RO*' Scatter Name loFactTVACE Fields Like 'CE*' Scatter Name loFactTVAWR Fields Like 'WR*' Scatter Name loFactTVAFO Fields Like 'FO*' Select cFacturiTVA Gather Name loFactTVARO Gather Name loFactTVACE Gather Name loFactTVAWR Gather Name loFactTVAFO Replace baza With Evaluate(m.lcSirBaza), TVA With Evaluate(m.lcSirTVA), ; neimpozabil With Evaluate(m.lcSirNeimpozabil), alte_tva With Evaluate(m.lcSirTVAAltele), ; total_baza_si_tva With Evaluate(m.lcSirBazaTVA) *** Defalcare suma incasata pe cote TVA lnIncasat = total_cont_incasat lnIncasatAnterior = loFact.totalachitat - m.lnIncasat lnSign = SIGN(loFact.totalfact) Create Cursor cCoteTVAFactura(cota N(5, 2), baza N(20, 4), TVA N(20, 4)) lnItems = Amembers(laCoteTVA, loFactTVARO) For lnItem = 1 To m.lnItems lcItem = Upper(laCoteTVA[m.lnItem]) && RO19B, RO19T, RO19NB, RO19NT lnBaza = 0 lnTVA = 0 If Right(m.lcItem, 1) = 'T' lnTVA = EVALUATE('loFactTVARO.' + m.lcItem) ELSE lnBaza = EVALUATE('loFactTVARO.' + m.lcItem) Endif lnCotaTVA = Val(Strtran(m.lcItem, 'RO', '')) Select cCoteTVAFactura Locate For cota = m.lnCotaTVA If Found() REPLACE baza WITH baza + m.lnBaza, TVA WITH TVA + m.lnTVA Else Insert Into cCoteTVAFactura(cota, baza, TVA) Values (m.lnCotaTVA, m.lnBaza, m.lnTVA) Endif Endfor Select cota, Sum(baza) As baza, Sum(TVA) As TVA, Cast(0 As N(20, 4)) As bazaincasat, Cast(0 As N(20, 4)) As tvaincasat ; From cCoteTVAFactura ; Group By cota ; Order By cota Desc ; Into Cursor cCoteTVAFactura2 Readwrite Use In (Select('cCoteTVAFactura')) *** Actualizez suma pe cote TVA conform sumei incasate anterior IF m.lnIncasatAnterior <> 0 Select cCoteTVAFactura2 Scan If (baza <> 0 OR tva <> 0) AND (ABS(m.lnIncasatAnterior) < ABS(baza + TVA) OR SIGN(m.lnIncasatAnterior) <> SIGN(baza+tva)) lnTVA = ROUND(cota / (100 + cota) * m.lnIncasatAnterior, 2) lnBaza = (m.lnIncasatAnterior - m.lnTVA) Else lnTVA = tva lnBaza = baza Endif Replace tva With tva - m.lnTVA, baza With baza - m.lnBaza lnIncasatAnterior = m.lnIncasatAnterior - (m.lnBaza + m.lnTVA) If m.lnIncasatAnterior = 0 && OR SIGN(m.lnIncasatAnterior) <> m.lnSign Exit Endif ENDSCAN ENDIF && m.lnIncasatAnterior <> 0 *** Scad suma achitata curent conform cote TVA, din sold Select cCoteTVAFactura2 Scan If (baza <> 0 OR tva <> 0) AND (ABS(m.lnIncasat) < ABS(baza + TVA) OR SIGN(m.lnIncasat) <> SIGN(baza+tva)) Replace tvaincasat With ROUND(cota / (100 + cota) * m.lnIncasat, 2) Replace bazaincasat With m.lnIncasat - tvaincasat Else Replace tvaincasat With TVA, bazaincasat With baza Endif lnIncasat = m.lnIncasat - (bazaincasat + tvaincasat) If m.lnIncasat = 0 Exit Endif Endscan Calculate Sum(bazaincasat), Sum(tvaincasat) To lnBazaIncasat, lnTVAIncasat In cCoteTVAFactura2 Use In (Select('cCoteTVAFactura2')) * Daca a mai ramas un rest de incasat fara cota de tva, il pun pe baza incasat SELECT cFacturiTVA Replace baza_incasat With m.lnBazaIncasat + (total_cont_incasat - m.lnBazaIncasat - m.lnTVAIncasat), tva_incasat With m.lnTVAIncasat REPLACE difbaza WITH cont_curent - baza_incasat, diftva WITH cont_tva - tva_incasat Endif && SEEK(m.lcIndex) Endscan && ales Endif && USED('cJurnalTVATemp') Use In (Select('cIncasariBanca2')) *** Verific pe ANAF starea split tva la data curenta SELECT distinct cod_fiscal FROM cFacturiTVA INTO CURSOR cCodFiscalTemp loVerificareANAF = CREATEOBJECT("VerificareANAF") loVerificareANAF.VerificaListaCIF("cCodFiscalTemp", m.pdDataI, "crsANAF") USE IN (SELECT('cCodFiscalTemp')) IF USED("crsAnaf") *!* crsANAF (cui N(13), data D, denumire V(100), firma V(100), adresa C(244), scpTVA L, data_inceput_ScpTVA D, data_sfarsit_ScpTVA D, data_anul_imp_ScpTVA D, mesaj_ScpTVA C(244), ; *!* dataInceputTvaInc D, dataSfarsitTvaInc D, dataActualizareTvaInc D, dataPublicareTvaInc D, tipActTvaInc C(100), statusTvaIncasare L, dataInactivare D, dataReactivare D, dataPublicare D, dataRadiere D, statusInactivi L, ; *!* dataInceputSplitTVA D, dataAnulareSplitTVA D, statusSplitTVA L, ; *!* tva L, tvaincasare L, splittva L, inactiv L, ; *!* mesaj V(100), judet V(100), strada V(100), nr V(20), localitate V(100), Bloc V(20), scara V(20), etaj V(20), apart V(20)) SELECT crsANAF SCAN SCATTER NAME loANAF UPDATE cFacturiTVA SET platitortva = IIF(loANAF.TVA, "DA", "NU"), ; splittva = IIF(loANAF.splittva, "DA", "NU"), ; tvaincasare = IIF(loANAF.tvaincasare, "DA", "NU"), ; inactiv = IIF(loANAF.inactiv, "DA", "NU") ; WHERE ALLTRIM(STR(loANAF.cui))$cod_fiscal ENDSCAN ENDIF lcnume = '' Select cFacturiTVA If Reccount() > 0 Go Top lcnume = 'splittva' lcXlsFile = Putfile('Facturi TVA defalcat', 'facturitva_' + LOWER(m.lcTip) + '_' + m.lcCont + '_' + Alltrim(Str(gnAn)) + '_' + Padl(m.gnLuna, 2, '0') + '_' + DTOS(m.pdDataI) + '_' + DTOS(m.pdDataF) + '_' + m.lcnume, 'xls') If !Empty(m.lcXlsFile) Select cFacturiTVA Copy To (m.lcXlsFile) Type Xl5 OPEN_DEFAULT_APP(m.lcXlsFile) Endif Endif Use In (Select('cFacturiTVA')) Use In (Select('cJurnalTVATemp')) Endproc && TVADefalcatIncasariPlati ***************** *** Raport facturi funizori/clienti pentru un parteneri + baza/tva din registrul de vanzari *** pentru a sti ce suma TVA trebuie achitata in contul de TVA al furnizorului *** Optional tnIdFact, tnValoare - doar pentru o factura ***************** Procedure TVADefalcatFacturi LPARAMETERS tcCont, tlActiv, tnIdPart, tnIdFact, tnValoare * tcCont: (obligatoriu) contul 401/4111... * tlActiv: (obligatoriu) contul este de activ sau pasiv - pentru JV sau JC * tnIdPart: (obligatoriu) id_partener pentru care se face raportul * tnIdFact: (optional) id-ul facturii pentru care se face raportul * tnValoare: (optional) valoarea achitata pentru care se calculeaza raportul, pentru o singura factura Private pdDataI, pdDataF Local lofrm As "frm_perioada_zzllaaaa" Local laCoteTVA[1], lcField, lcIndex, lcItem, lcSelect, lcSelectAct, lcSelectBanca, lcSelectBanca2 Local lcSir, lcSirActcv, lcSirBaza, lcSirBazaTVA, lcSirNeimpozabil, lcSirTVA, lcSirTVAAltele Local lcWhereA, lcXlsFile, lcnume, ldDataCurenta, llSucces, lnBaza, lnBazaIncasat, lnCotaTVA Local lnField, lnIncasat, lnItem, lnItems, lnTVA, lnTVAIncasat, loFact, loFactTVACE, loFactTVAFO Local loFactTVARO, loFactTVAWR, lcTipJurnal LOCAL lcCont, llFound, lnIdFact, llActiv lcCont = IIF(TYPE('tcCont') = 'C' and !EMPTY(m.tcCont), m.tcCont, '401') && 401 furnizori default llActiv = m.tlActiv lcTipJurnal = IIF(m.llActiv, "JV", "JC") lcWhereIreg = [i.an = ] + ALLTRIM(STR(m.gnAn)) + [ and i.luna = ] + ALLTRIM(STR(m.gnLuna)) + [ and i.cont = '] + ALLTRIM(m.lcCont) + ; [' and i.id_part = ] + ALLTRIM(STR(m.tnIdPart)) + IIF(!EMPTY(m.tnIdFact), [ and i.id_fact = ] + ALLTRIM(STR(m.tnIdFact)), []) + ; [ and i.precdeb + i.debit - i.preccred - i.credit <> 0] + ; Strtran(m.gcCondSucursala, [id_sucursala], [i.id_sucursala]) *** Selectez datele facturilor din Ireg_parteneri (nract, dataact, serie_act, total_fact, total_achitat) TEXT TO lcSelect NOSHOW textmerge SELECT i.dataact, i.id_part, p.denumire as partener, p.cod_fiscal, i.id_fact, i.nract as nrfact, i.cont, CAST(stringagg(i.acont) as varchar2(100)) as acont, i.dataact as datafact, i.serie_act as seriefact, sum(<>) as totalfact, sum(<>) as totalachitat, SUM(<>) as sold, CAST(0 as Number(20, 4)) as total_baza_si_tva, CAST(0 as Number(20, 4)) as baza, CAST(0 as Number(20, 4)) as tva, CAST(0 as Number(20, 4)) as neimpozabil, CAST(0 as Number(20, 4)) as alte_tva, CAST(0 as Number(20, 4)) as total_achitat, CAST(0 as Number(20, 4)) as baza_achitat, CAST(0 as Number(20, 4)) as tva_achitat from ireg_parteneri i LEFT JOIN NOM_PARTENERI P ON I.ID_PART = P.ID_PART where <> group by i.dataact, i.id_part, p.denumire, p.cod_fiscal, i.id_fact, i.nract, i.cont, i.dataact, i.serie_act order by i.dataact, p.denumire, i.nract, i.cont ENDTEXT llSucces = goExecutor.oExecuta(m.lcSelect, "cIncasariBanca2") Use In (Select('cIncasariBanca')) IF !m.llSucces RETURN ENDIF *** Selectez prima aparitie a facturilor din Jurnalul de Vanzari, pentru a lua sume pe cote TVA TEXT TO lcSelect TEXTMERGE NOSHOW select * from (select j.*, rank() over(partition by j.nract, j.serie_act, j.dataact, j.id_part order by j.an, j.luna) as rn from <> j join (select distinct id_part, id_fact, nract, dataact, serie_act from ireg_parteneri i where <>) f on j.id_part = f.id_part and j.dataact = f.dataact and nvl(j.serie_act, 'xxx') = nvl(f.serie_act, 'xxx') and j.nract = f.nract and nvl(j.id_fact,f.id_fact) = f.id_fact) where rn = 1 ENDTEXT llSucces = goExecutor.oExecuta(m.lcSelect, "cJurnalTVATemp") IF !m.llSucces USE IN (SELECT('cIncasariBanca2')) RETURN ENDIF REPLACE ALL serie_act WITH '' FOR ISNULL(serie_act) IN cJurnalTVATemp REPLACE ALL seriefact WITH '' FOR ISNULL(seriefact) IN cIncasariBanca2 Select cJurnalTVATemp Index On Padr(id_part, 20, ' ') + Dtos(dataact) + Padr(serie_act, 10, ' ') + Padl(nract, 14, '0') Tag ordine INDEX on id_fact TAG id_fact lcSir = '' lcSirBaza = '0' lcSirTVA = '0' lcSirNeimpozabil = '0' lcSirTVAAltele = '0' lcSirBazaTVA = '0' For lnField = 1 To Fcount() lcField = UPPER(Field(m.lnField)) If Inlist(Left(lcField, 2), 'RO', 'CE', 'WR', 'FO') lcSir = lcSir + ',j.' + m.lcField Do Case Case Left(m.lcField, 2) = 'RO' And Right(m.lcField, 1) = 'B' lcSirBaza = m.lcField + '+' + m.lcSirBaza Case Left(m.lcField, 2) = 'RO' And Right(m.lcField, 1) = 'T' lcSirTVA = m.lcField + '+' + m.lcSirTVA Case Left(m.lcField, 2) = 'RO' lcSirNeimpozabil = m.lcField + '+' + m.lcSirNeimpozabil Otherwise lcSirTVAAltele = m.lcField + '+' + m.lcSirTVAAltele Endcase lcSirBazaTVA = m.lcField + '+' + m.lcSirBazaTVA Endif && Inlist(Left(lcField, 2), 'RO', 'CE', 'WR', 'FO') Endfor && lnField If Used('cJurnalTVATemp') Select cIncasariBanca2 lcSirActcv = '' For lnField = 1 To Fcount() lcField = Field(m.lnField) lcSirActcv = lcSirActcv + ',a.' + m.lcField Endfor lcSirActcv = Substr(m.lcSirActcv, 2) lcSelect = [SELECT ] + m.lcSirActcv + ; [, SPACE(2) as platitortva, SPACE(2) as splittva, SPACE(2) as tvaincasare, SPACE(2) as inactiv ] + ; lcSir + ; [ FROM cIncasariBanca2 a, cJurnalTVATemp j where .F. INTO CURSOR cFacturiTVA READWRITE] &lcSelect Select cIncasariBanca2 Scan Scatter Name loFact lcIndex = Padr(id_part, 20, ' ') + Dtos(datafact) + Padr(seriefact, 10, ' ') + Padl(nrfact, 14, '0') lnIdFact = id_fact Select cFacturiTVA Append Blank Gather Name loFact llFound = .F. Select cJurnalTVATemp If !Seek(m.lnIdFact,"cJurnalTVATemp","id_fact") If Seek(m.lcIndex,"cJurnalTVATemp","ordine") llFound = .T. ENDIF ELSE llFound = .T. ENDIF IF m.llFound Scatter Name loFactTVARO Fields Like 'RO*' Scatter Name loFactTVACE Fields Like 'CE*' Scatter Name loFactTVAWR Fields Like 'WR*' Scatter Name loFactTVAFO Fields Like 'FO*' Select cFacturiTVA Gather Name loFactTVARO Gather Name loFactTVACE Gather Name loFactTVAWR Gather Name loFactTVAFO Replace baza With Evaluate(m.lcSirBaza), TVA With Evaluate(m.lcSirTVA), ; neimpozabil With Evaluate(m.lcSirNeimpozabil), alte_tva With Evaluate(m.lcSirTVAAltele), ; total_baza_si_tva With Evaluate(m.lcSirBazaTVA) *** Defalcare suma incasata pe cote TVA lnIncasat = IIF(EMPTY(m.tnIdFact), loFact.sold, m.tnValoare) && defalc soldul sau valoarea trimisa ca parametru pentru o singura factura lnIncasatAnterior = loFact.totalachitat lnSign = SIGN(loFact.totalfact) REPLACE total_achitat WITH m.lnIncasat Create Cursor cCoteTVAFactura(cota N(5, 2), baza N(20, 4), TVA N(20, 4)) lnItems = Amembers(laCoteTVA, loFactTVARO) For lnItem = 1 To m.lnItems lcItem = Upper(laCoteTVA[m.lnItem]) && RO19B, RO19T, RO19NB, RO19NT lnBaza = 0 lnTVA = 0 If Right(m.lcItem, 1) = 'T' lnTVA = EVALUATE('loFactTVARO.' + m.lcItem) ELSE lnBaza = EVALUATE('loFactTVARO.' + m.lcItem) Endif lnCotaTVA = Val(Strtran(m.lcItem, 'RO', '')) Select cCoteTVAFactura Locate For cota = m.lnCotaTVA If Found() REPLACE baza WITH baza + m.lnBaza, TVA WITH TVA + m.lnTVA Else Insert Into cCoteTVAFactura(cota, baza, TVA) Values (m.lnCotaTVA, m.lnBaza, m.lnTVA) Endif Endfor Select cota, Sum(baza) As baza, Sum(TVA) As TVA, Cast(0 As N(20, 4)) As bazaincasat, Cast(0 As N(20, 4)) As tvaincasat ; From cCoteTVAFactura ; Group By cota ; Order By cota Desc ; Into Cursor cCoteTVAFactura2 Readwrite Use In (Select('cCoteTVAFactura')) *** Diminuez baza si TVA pe cote TVA cu suma incasate anterior IF m.lnIncasatAnterior <> 0 Select cCoteTVAFactura2 SCAN If ABS(m.lnIncasatAnterior) < ABS(baza + TVA) lnTVA = ROUND(cota / (100 + cota) * m.lnIncasatAnterior, 2) lnBaza = (m.lnIncasatAnterior - m.lnTVA) Else lnTVA = tva lnBaza = baza Endif Replace tva With tva - m.lnTVA, baza With baza - m.lnBaza lnIncasatAnterior = m.lnIncasatAnterior - (m.lnBaza + m.lnTVA) If m.lnIncasatAnterior = 0 OR SIGN(m.lnIncasatAnterior) <> m.lnSign Exit Endif ENDSCAN ENDIF && m.lnIncasatAnterior <> 0 *** Scad suma achitata curent conform cote TVA, din sold Select cCoteTVAFactura2 Scan If ABS(m.lnIncasat) < ABS(baza + TVA) Replace tvaincasat With ROUND(cota / (100 + cota) * m.lnIncasat, 2) Replace bazaincasat With m.lnIncasat - tvaincasat Else Replace tvaincasat With TVA, bazaincasat With baza Endif lnIncasat = lnIncasat - (bazaincasat + tvaincasat) If m.lnIncasat = 0 OR SIGN(m.lnIncasat) <> m.lnSign Exit Endif Endscan Calculate Sum(bazaincasat), Sum(tvaincasat) To lnBazaIncasat, lnTVAIncasat In cCoteTVAFactura2 Use In (Select('cCoteTVAFactura2')) * Daca a mai ramas un rest de incasat fara cota de tva, il pun pe baza incasat * Daca am transmis o valoare de defalcat, nu mai adaug nimic ??? nu imi da corect SELECT cFacturiTVA Replace baza_achitat With m.lnBazaIncasat + IIF(EMPTY(m.tnIdFact),(sold - m.lnBazaIncasat - m.lnTVAIncasat), 0), tva_achitat With m.lnTVAIncasat *!* REPLACE difbaza WITH cont_curent - baza_sold, diftva WITH cont_tva - tva_sold Endif && SEEK(m.lcIndex) Endscan && ales Endif && USED('cJurnalTVATemp') Use In (Select('cIncasariBanca2')) *** Verific pe ANAF starea split tva la data curenta SELECT distinct cod_fiscal FROM cFacturiTVA INTO CURSOR cCodFiscalTemp loVerificareANAF = CREATEOBJECT("VerificareANAF") loVerificareANAF.VerificaListaCIF("cCodFiscalTemp", Date(), "crsANAF") USE IN (SELECT('cCodFiscalTemp')) IF USED("crsAnaf") *!* crsANAF (cui N(13), data D, denumire V(100), firma V(100), adresa C(244), scpTVA L, data_inceput_ScpTVA D, data_sfarsit_ScpTVA D, data_anul_imp_ScpTVA D, mesaj_ScpTVA C(244), ; *!* dataInceputTvaInc D, dataSfarsitTvaInc D, dataActualizareTvaInc D, dataPublicareTvaInc D, tipActTvaInc C(100), statusTvaIncasare L, dataInactivare D, dataReactivare D, dataPublicare D, dataRadiere D, statusInactivi L, ; *!* dataInceputSplitTVA D, dataAnulareSplitTVA D, statusSplitTVA L, ; *!* tva L, tvaincasare L, splittva L, inactiv L, ; *!* mesaj V(100), judet V(100), strada V(100), nr V(20), localitate V(100), Bloc V(20), scara V(20), etaj V(20), apart V(20)) SELECT crsANAF SCAN SCATTER NAME loANAF UPDATE cFacturiTVA SET platitortva = IIF(loANAF.TVA, "DA", "NU"), ; splittva = IIF(loANAF.splittva, "DA", "NU"), ; tvaincasare = IIF(loANAF.tvaincasare, "DA", "NU"), ; inactiv = IIF(loANAF.inactiv, "DA", "NU") ; WHERE ALLTRIM(STR(loANAF.cui))$cod_fiscal ENDSCAN ENDIF lcnume = '' Select cFacturiTVA If Reccount() > 0 Go Top lcNume = 'splittva_' + ALLTRIM(cFacturiTVA.cod_fiscal) lcXlsFile = Putfile('Facturi TVA defalcat', 'facturitva_achitat_' + m.lcCont + '_' + lcTipJurnal + '_' + Alltrim(Str(gnAn)) + Padl(m.gnLuna, 2, '0') + '_' + m.lcnume, 'xls') If !Empty(m.lcXlsFile) Select cFacturiTVA Copy To (m.lcXlsFile) Type Xl5 OPEN_DEFAULT_APP(m.lcXlsFile) Endif Endif Use In (Select('cFacturiTVA')) Use In (Select('cJurnalTVATemp')) Endproc && TVADefalcatFacturi