******** Procedure sitan LPARAMETERS tnFiscala Local lcCursor, lcCursorTemp, lcFiltru, lcSchema, lcSel, llExperimental, llSucces, lnLuna PRIVATE pcCond, pdDataF, pdDataI, pdData, pnFiscala pdDataI = Date(gnAn, 1, 1) pdDataF = Date(gnAn, gnLuna, 1) pcCond = [1=1] IF EMPTY(m.tnFiscala) OR TYPE('tnFiscala') <> 'N' pnFiscala = 0 ELSE pnFiscala = m.tnFiscala ENDIF lcSchema = [''] &&['ceck n(1),totdebit n(16,gnPa),totcredit n(16,gnPa),id_fact n(10),id_part n(10),nume c(50),dataact D,dataireg D,nract n(14),datascad D,cont c(4),acont c(4)'] lcCursor = 'crslista' llExperimental = .T. && 25.11.2021 llExperimental = (goApp.nExperimental = 1) If m.llExperimental * EXPERIMENTAL SELECTIE DIN IMOB_VSITUATIE_LUNARA IN LOC DE PACK_IMOB.CALCUL_SITUATIE_LUNARA() * Setez luna pentru view lcFiltru = [id_tip_imobilizare in (1,2)] + m.gcCondSucursala For lnLuna = 1 To m.gnLuna pdData = DATE(m.gnAn, m.lnLuna, 1) WAIT WINDOW 'Luna ' + PADL(m.lnLuna,2,'0') + '/' + ALLTRIM(STR(m.gnAn)) NOWAIT llSucces = goExecutor.oExecuta('begin pack_imob.setlunacurenta(?pdData); end;') If m.llSucces lcSel = [SELECT * FROM ] + Iif(m.pnFiscala = 0, [imob_vsituatie_lunara], [imobf_vsituatie_lunara]) + [ WHERE ] + m.lcFiltru lcCursorTemp = Sys(2015) llSucces = goExecutor.oExecuta(m.lcSel, m.lcCursorTemp) If !Used(m.lcCursor) Select * From (m.lcCursorTemp) Into Cursor (m.lcCursor) Readwrite Else Select (m.lcCursor) Append From Dbf(m.lcCursorTemp) Endif Use In (Select(m.lcCursorTemp)) Endif Endfor Else lcSel = [{call pack_imob.CALCUL_SITUATIE_LUNARA(?pdDataI,?pdDataF,?pcCond,?pnFiscala,?gnIdSucursala)}] llSucces = goExecutor.oExecuta(lcSel, lcCursor) Endif If !m.llSucces Return Endif Select Sum(rata) As amortizare_lunara, Sum(rata + amort_prec) As amortizare_totala, data_test As ddata, Cont ; FROM &lcCursor ; WITH (Buffering = .T.) ; WHERE Inlist(id_tip_imobilizare, 1, 2) ; INTO Cursor sitmf ; GROUP By ddata, Cont Use In (SELECT(m.lcCursor)) Return [sitmf] Endproc && sitan *--------------------------------------------------------------------------- Procedure rulaje Parameters tcCamp, tcAlias datain = Ctod('01/' + Alltrim(Str(v_luni.nrluna)) + '/' + Alltrim(v_luni.an)) lcCamp = Alltrim(tcCamp) If Empty(tcAlias) lcAlias = [sitmf] Else lcAlias = Alltrim(tcAlias) Endif Select Distinct Cont From (lcAlias) Into Cursor conturi *!* SELECT distinct ddata as luna FROM (lcAlias) INTO CURSOR luni Select Distinct ddata As luna From (lcAlias) Into Cursor crsluni Create Cursor luni (luna c(8)) Select crsluni Scan Scatter Name aaa Select luni Append Blank Replace luna With Alltrim(Str(Month(aaa.luna))) + "/" + Alltrim(Str(Year(aaa.luna))) Select crsluni Endscan *!* tt='create cursor rulaje (total c(6),luna d(8)' tt = 'create cursor rulaje ( _ c(6),luna c(8)' Select conturi Scan * SCAT MEMV tt = tt + ',c' + Alltrim(Nvl(Cont, '')) + ' n(14,gnpa)' * SELECT conturi Endscan tt = tt + ')' &tt Select rulaje Append From Dbf('luni') Use In luni *sume--- Select (lcAlias) Scan Scatter Memv Select rulaje Locate For Alltrim(luna) = Alltrim(Str(Month(m.ddata))) + "/" + Alltrim(Str(Year(m.ddata))) *!* LOCATE FOR luna=m.ddata tt = 'REPLACE c' + Alltrim(Nvl(m.cont, '')) + ' with ' + lcCamp &tt Select (lcAlias) Endscan *totaluri--- If Lower(Alltrim(tcCamp)) = [amortizare_lunara] Local m.c m.c = 0 Select rulaje Append Blank Replace _ With 'TOTAL' Select conturi Scan Scatter Memv Select rulaje tt = 'sum c' + Alltrim(Nvl(m.cont, '')) + ' to m.c FOR ddata<=datain' &tt Select rulaje Go Bott tt = 'REPLACE c' + Alltrim(Nvl(Cont, '')) + ' with m.c' &tt Select conturi Endscan Endif If Used('conturi') Use In conturi Endif If Used('luni') Use In conturi Endif If Used(lcAlias) Use In (lcAlias) Endif *------------------------------------------------------------------------------------------------