- Programe/orapoarte.prg:1994 - verificarea split TVA pe o data din trecut cere explicit ordinea MASA (cache intai); :2312 - varianta pe data curenta cere UNIC (ANAF intai, cache-ul ramane plasa de siguranta). - changelog_roacont.txt - intrarile 2.11.68 si 2.11.69. - versiune_db.txt - 2026_08_01_02. - CLAUDE.md - regula de continut pentru changelog si stilul de raspuns cerut. - TODOS.md - amanarile din review-ul transei cache ANAF, P4 marcat preluat. - roacont.pj2 - resincronizat cu git_sync. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JCzVWfqscv1xyo5uvJiWiW
2352 lines
101 KiB
Plaintext
2352 lines
101 KiB
Plaintext
*!* 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" && <toate conturile> si <toti partenerii>
|
|
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) && "<TOATE INREGISTRARILE>" *!* 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) && "<TOATE INREGISTRARILE>" *!* 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) && "<TOATE INREGISTRARILE>" *!* 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) && "<TOATE INREGISTRARILE>"
|
|
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 '<TOTI PARTENERII>' 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, '<<ultima_zi_din_luna>>', Alltrim(Dtoc(m.pdData)),1,10,1)
|
|
*!* pcMesaj3 = Strtran(m.pcMesaj3, '<<suma_in_contul>>', 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 = <<m.gnAn>> and a.luna = <<m.gnLuna>> and a.sters = 0 and a.dataact between to_date('<<DTOS(m.pdDataI)>>', 'yyyymmdd') and to_date('<<DTOS(m.pdDataF)>>', 'yyyymmdd') And
|
|
a.scd <<IIF(m.lcCont = '5311', [in ('5311','473')], IIF(m.lcCont = '5121', [in ('5121','5126')], IIF(m.lcCont = '5124', [in ('5124','5127')], [= '] + m.lcCont + ['])))>> And a.scc in ('411', '4111', '418', '461', '4118', '4511') And NVL(pd.denumire, 'X') not like '%COMPENS%' <<Strtran(m.gcCondSucursala, [id_sucursala], [a.id_sucursala])>>
|
|
ENDTEXT
|
|
ELSE
|
|
TEXT TO lcWhereA NOSHOW TEXTMERGE
|
|
a.an = <<m.gnAn>> and a.luna = <<m.gnLuna>> and a.sters = 0 and a.dataact between to_date('<<DTOS(m.pdDataI)>>', 'yyyymmdd') and to_date('<<DTOS(m.pdDataF)>>', 'yyyymmdd') And
|
|
a.scc <<IIF(m.lcCont = '5311', [in ('5311','542')], IIF(m.lcCont = '5121', [in ('5121','5126')], IIF(m.lcCont = '5124', [in ('5124','5127')], [= '] + m.lcCont + ['])))>> And a.scd in ('401', '404', '408', '462', '473', '4511') And NVL(pc.denumire, 'X') not like '%COMPENS%' <<Strtran(m.gcCondSucursala, [id_sucursala], [a.id_sucursala])>>
|
|
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 <<m.lcWhereA>>
|
|
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 <<m.lcWhereA>>
|
|
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
|
|
<<lcSelectBanca>>
|
|
from (<<m.lcSelectAct>>)
|
|
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,
|
|
<<IIF(m.llIncasari, '(ip.precdeb+ip.debit)', '(ip.preccred+ip.credit)')>> as totalfact,
|
|
<<IIF(m.llIncasari, '(ip.preccred+ip.credit)', '(ip.precdeb+ip.debit)')>> as totalachitat,
|
|
<<IIF(m.llIncasari, '(ip.precdeb+ip.debit-ip.preccred-ip.credit)','(ip.preccred+ip.credit-ip.precdeb-ip.debit)')>> 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
|
|
<<m.lcSelectBanca2>>
|
|
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 <<m.lcWhereA>>
|
|
|
|
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 <<IIF(m.llIncasari, 'jv2007', 'jc2007')>> j
|
|
join (select distinct ip.id_part,
|
|
ip.id_fact,
|
|
ip.nract,
|
|
ip.cont,
|
|
ip.dataact,
|
|
ip.serie_act,
|
|
ip.id_sucursala
|
|
from (<<m.lcSelectAct>>) 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
|
|
*!* 31.07.2026 marius.mutu: ordine explicita MASA (CACHE,ANAF) - corect pentru data trecuta pdDataI
|
|
SELECT distinct cod_fiscal FROM cFacturiTVA INTO CURSOR cCodFiscalTemp
|
|
loVerificareANAF = CREATEOBJECT("VerificareANAF")
|
|
loVerificareANAF.VerificaListaCIF("cCodFiscalTemp", m.pdDataI, "crsANAF", "MASA")
|
|
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(<<IIF(m.llActiv, 'i.precdeb + i.debit', 'i.preccred + i.credit')>>) as totalfact,
|
|
sum(<<IIF(m.llActiv, 'i.preccred + i.credit', 'i.precdeb + i.debit')>>) as totalachitat,
|
|
SUM(<<IIF(m.llActiv, 'i.precdeb + i.debit - i.preccred - i.credit', 'i.preccred + i.credit - i.precdeb - i.debit')>>) 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 <<m.lcWhereIreg>>
|
|
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 <<IIF(m.llActiv, 'jv2007', 'jc2007')>> j
|
|
join (select distinct id_part,
|
|
id_fact,
|
|
nract,
|
|
dataact,
|
|
serie_act
|
|
from ireg_parteneri i
|
|
where <<m.lcWhereIreg>>) 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
|
|
*!* 31.07.2026 marius.mutu: ordine explicita UNIC (ANAF intai) - starea de azi, cache-ul ramane plasa de siguranta
|
|
SELECT distinct cod_fiscal FROM cFacturiTVA INTO CURSOR cCodFiscalTemp
|
|
loVerificareANAF = CREATEOBJECT("VerificareANAF")
|
|
loVerificareANAF.VerificaListaCIF("cCodFiscalTemp", Date(), "crsANAF", "UNIC")
|
|
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 |