Files
roaimob/Programe/sitan.prg

157 lines
4.1 KiB
Plaintext

********
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
*------------------------------------------------------------------------------------------------