Files
roaimob/Programe/oproceduri_listari.prg

1326 lines
48 KiB
Plaintext

*!* 16.11.2009
*!* marius.mutu
*!* RegistruNrInventar, RegNrInvInCurs - export xls
*!* RegNrInvInCurs - conditie sucursala
*!* ListaImobInCurs - am mutat codul din meniu in procedura
*!* 16.05.2024
*!* marius.mutu
*!* list_inchid_amortizari - corectie apel inchidere amortizari - defalcare dupa lucrari
*--------------------------------------------------------------------------------------------------------------
Procedure _old_listare_amortizari_lunare()
Parameters Tip
*!* datain=CTOD('01/'+ALLTRIM(STR(v_luni.nrluna))+'/'+ALLTRIM(v_luni.an))
*!* datadela=CTOD("01/"+loluna.nl+"/"+loluna.an)
*!* IF Tip=1
*!* lcsql = "select * from "+gcS+".imob_vamortizarilunare_mf_c"
*!* ELSE
*!* lcsql = "select * from "+gcS+".imob_vamortizarilunare_mf_n"
*!* ENDIF
*!* lnSucces=goExecutor.oExecute(lcsql,'crsamortizarelunara1')
*!* *SELECT distinct * FROM crsamortizarelunara1 WHERE ;
*!* CTOD('01/'+ALLTRIM(STR(luna))+'/'+ALLTRIM(STR(an)))>=datadela AND ;
*!* CTOD('01/'+ALLTRIM(STR(luna))+'/'+ALLTRIM(STR(an)))<=datain INTO CURSOR crsamortizarelunara
*!* SELECT DISTINCT * FROM crsamortizarelunara1 WHERE;
*!* luna_rata >= datadela AND luna_rata <= datain INTO CURSOR crsamortizarelunara READWRITE
*!* SELECT crsamortizarelunara
*!* REPLACE ALL data_exp WITH CTOD('01/'+STR((MONTH(data_pif)+dns_ramas%12)%12)+'/'+STR(( YEAR(data_pif)+ INT( dns_ramas/12 )+INT((MONTH(data_pif)+dns_ramas%12 )/12) )))
*!* *brow
*!* REPORT FORM amortanaliz_grup TO PRINTER PROMPT PREVIEW
*!* goExecutor.oReset()
Endproc
*--------------------------------------------------------------------------------------------------------------
Procedure _old_listare_la_imprimanta()
Parameters Tip
*!* IF tip=1
*!* lcsql = "select * from "+gcS+".IMOB_Vlistimprimanta_MF_C"
*!* ELSE
*!* lcsql = "select * from "+gcS+".IMOB_Vlistimprimanta_MF_N"
*!* ENDIF
*!* lnSucces=goExecutor.oExecute(lcSql,'crslistmfcota')
*!* IF lnSucces<0
*!* MESSAGEBOX("Nu a mers SQL-ul")
*!* return
*!* ENDIF
*!* SELECT crslistmfcota
Select crslista
Report Form listmfcota To Printer Prompt Preview
*!* goExecutor.oReset()
Endproc
*------------------------------------------------------------------------------------------------------------
Procedure _old_listare_istoric_amoritizare()
Parameters Tip
If Tip = 1
lcsql = "select * from " + gcS + ".IMOB_VISTAMORTIZARE_MF_c "
Else
lcsql = "select * from " + gcS + ".IMOB_VISTAMORTIZARE_MF_N "
Endif
lnSucces = goExecutor.oExecute(lcsql, 'crsamortizare')
If lnSucces < 0
aMESSAGEBOX(goExecutor.cEroare, 16, "Eroare")
Return
Endif
Select crsamortizare
*REPLACE ALL data_exp WITH CTOD('01/'+STR((MONTH(luna)+dns_ramas%12)%12)+'/'+STR(( YEAR(luna)+ INT( dns_ramas/12 )+INT((MONTH(luna)+dns_ramas%12 )/12) )))
Report Form amortizare To Printer Prompt Preview
goExecutor.oReset()
Endproc
*------------------------------------------------------------------------------------------------------------
Procedure _old_list_corp_general
list_general(1)
Endproc
*------------------------------------------------------------------------
Procedure _old_list_necorp_general
list_general(2)
Endproc
*------------------------------------------------------------------------
Procedure _old_list_general && CORPORALE/NECORPORALE 'cu totaluri generale'
Parameters tnTip
* tnTip 1) Corp. 2) Necorp
Private poLista, locauta
Store '' To poLista
Store "" To locauta
Private pnIdGest, pnTip
pcTitlu = "LISTA IMOBILIZARILOR " + Iif(tnTip = 1, "CORPORALE", "NECORPORALE") + " IN LUNA"
pnIdGest = 0
If Pcount() > 0 And Type('tnTip') = 'N'
pnTip = tnTip
Else
pnTip = 1
Endif
pcselect = ['select nume_gestiune,id_gestiune FROM vnom_gestiuni where inactiv=0']
pcfiltru = [1=2]
pcschema = ['']
pcorder = [nume_gestiune]
pccoloane = [nume_gestiune]
pcTitlu = [Alegeti gestiunea]
pcTitluColoane = [Gestiune]
locauta = cauta_alfa(pcselect, pcfiltru, pcschema, pcorder, pccoloane, pcTitlu, pcTitluColoane, "", .T.)
If gnButon = 2
Release locuta
Return
Endif
pcCond = [id_tip_imobilizare = ] + Alltrim(Str(m.pnTip)) + [ and id_tip_operatie <> 4]
If !Empty(locauta.nume_gestiune) And locauta.id_gestiune <> 0
pnIdGest = locauta.id_gestiune
pcCond = pcCond + [ and id_gestiune = ] + Alltrim(Str(pnIdGest))
Endif
pdDataI = Date(gnAn, gnLuna, 1)
pdDataF = pdDataI
pnFiscala = 0
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 = ] + Alltrim(Str(m.pnTip)) + [ and iesit_din_gest = 0] + Iif(!Empty(m.pnIdGest), [ and id_gestiune = ] + Alltrim(Str(m.pnIdGest)), []) + m.gcCondSucursala
llSucces = goExecutor.oExecuta('begin pack_imob.setlunacurenta(?pdDataI); end;')
If m.llSucces
lcSel = [SELECT * FROM ] + Iif(m.pnFiscala = 0, [imob_vsituatie_lunara], [imobf_vsituatie_lunara]) + [ WHERE ] + m.lcFiltru
llSucces = goExecutor.oExecuta(m.lcSel, m.lcCursor)
Endif
Else
lcSel = [{call pack_imob.CALCUL_SITUATIE_LUNARA(?pdDataI,?pdDataF,?pcCond,?pnFiscala,?gnIdSucursala)}]
llSucces = goExecutor.oExecuta(lcSel, lcCursor)
Endif
If m.llSucces
Select * From crslista Into Cursor crsRap Order By gestiune, data_achizitie
Report Form listmfcota To Printer Prompt Preview
Endif
Release poLista
Release locauta
Use In (Select('crslista'))
Use In (Select('crsRap'))
Endproc
*---------------------------------------------------------------------------
Procedure _old_list_corp_peluni
list_peluni(1)
Endproc
*------------------------------------------------------------------------
Procedure _old_list_necorp_peluni
list_peluni(2)
Endproc
*------------------------------------------------------------------------
Procedure _old_list_peluni && CORPORALE/NECORPORALE 'cu totaluri pe luni'
Parameters tnTip
* tnTip 1) Corp. 2) Necorp
Private poLista, locauta
Store '' To poLista
Store "" To locauta
Private pnIdGest, pnTip
pnIdGest = 0
If Pcount() > 0 And Type('tnTip') = 'N'
pnTip = tnTip
Else
pnTip = 1
Endif
pcselect = ['select nume_gestiune,id_gestiune FROM vnom_gestiuni where inactiv=0']
pcfiltru = [1=2]
pcschema = ['']
pcorder = [nume_gestiune]
pccoloane = [nume_gestiune]
pcTitlu = [Alegeti gestiunea]
pcTitluColoane = [Gestiune]
locauta = cauta_alfa(pcselect, pcfiltru, pcschema, pcorder, pccoloane, pcTitlu, pcTitluColoane, "", .T.)
If gnButon = 2
Release locuta
Return
Endif
pcCond = [id_tip_imobilizare = ] + Alltrim(Str(pnTip)) + [ and id_tip_operatie <> 4]
If !Empty(locauta.nume_gestiune) And locauta.id_gestiune <> 0
pnIdGest = locauta.id_gestiune
pcCond = pcCond + [ and id_gestiune = ] + Alltrim(Str(pnIdGest ))
Endif
pdDataI = Date(gnAn, gnLuna, 1)
pdDataF = pdDataI
pnFiscala = 0
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 = ] + Alltrim(Str(m.pnTip)) + [ and iesit_din_gest = 0] + Iif(!Empty(m.pnIdGest), [ and id_gestiune = ] + Alltrim(Str(m.pnIdGest)), []) + m.gcCondSucursala
llSucces = goExecutor.oExecuta('begin pack_imob.setlunacurenta(?pdDataI); end;')
If m.llSucces
lcSel = [SELECT * FROM ] + Iif(m.pnFiscala = 0, [imob_vsituatie_lunara], [imobf_vsituatie_lunara]) + [ WHERE ] + m.lcFiltru
llSucces = goExecutor.oExecuta(m.lcSel, m.lcCursor)
Endif
Else
lcSel = [{call pack_imob.CALCUL_SITUATIE_LUNARA(?pdDataI,?pdDataF,?pcCond,?pnFiscala,?gnIdSucursala)}]
llSucces = goExecutor.oExecuta(lcSel, lcCursor)
Endif
pcTitlu = "LISTA IMOBILIZARILOR " + Iif(tnTip = 1, "CORPORALE", "NECORPORALE") + " IN LUNA"
If m.llSucces
Select * From crslista Into Cursor crsRap Order By gestiune, data_pif, Cont
Report Form listmflunicota To Printer Prompt Preview
Endif
Release poLista
Release locauta
If Used('crslista')
Use In crslista
Endif
If Used('crsRap')
Use In crsRap
Endif
Endproc
*---------------------------------------------------------------------------
Procedure _old_list_corp_pegrup
list_pegrup(1)
Endproc
*------------------------------------------------------------------------
Procedure _old_list_necorp_pegrup
list_pegrup(2)
Endproc
*------------------------------------------------------------------------
Procedure _old_list_pegrup && CORPORALE/NECORPORALE 'cu totaluri pe grupe'
Parameters tnTip
* tnTip 1) Corp. 2) Necorp
Private poLista, locauta
Store '' To poLista
Store "" To locauta
Private pnIdGest, pnTip
pnIdGest = 0
If Pcount() > 0 And Type('tnTip') = 'N'
pnTip = tnTip
Else
pnTip = 1
Endif
pcselect = ['select nume_gestiune,id_gestiune FROM vnom_gestiuni where inactiv=0']
pcfiltru = [1=2]
pcschema = ['']
pcorder = [nume_gestiune]
pccoloane = [nume_gestiune]
pcTitlu = [Alegeti gestiunea]
pcTitluColoane = [Gestiune]
locauta = cauta_alfa(pcselect, pcfiltru, pcschema, pcorder, pccoloane, pcTitlu, pcTitluColoane, "", .T.)
If gnButon = 2
Release locuta
Return
Endif
pcCond = [id_tip_imobilizare = ] + Alltrim(Str(pnTip)) + [ and id_tip_operatie <> 4]
If !Empty(locauta.nume_gestiune) And locauta.id_gestiune <> 0
pnIdGest = locauta.id_gestiune
pcCond = pcCond + [ and id_gestiune = ] + Alltrim(Str(pnIdGest ))
Endif
pdDataI = Date(gnAn, gnLuna, 1)
pdDataF = pdDataI
pnFiscala = 0
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'
pcTitlu = "LISTA IMOBILIZARILOR " + Iif(tnTip = 1, "CORPORALE", "NECORPORALE") + " IN LUNA"
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 = ] + Alltrim(Str(m.pnTip)) + [ and iesit_din_gest = 0] + Iif(!Empty(m.pnIdGest), [ and id_gestiune = ] + Alltrim(Str(m.pnIdGest)), []) + m.gcCondSucursala
llSucces = goExecutor.oExecuta('begin pack_imob.setlunacurenta(?pdDataI); end;')
If m.llSucces
lcSel = [SELECT * FROM ] + Iif(m.pnFiscala = 0, [imob_vsituatie_lunara], [imobf_vsituatie_lunara]) + [ WHERE ] + m.lcFiltru
llSucces = goExecutor.oExecuta(m.lcSel, m.lcCursor)
Endif
Else
lcSel = [{call pack_imob.CALCUL_SITUATIE_LUNARA(?pdDataI,?pdDataF,?pcCond,?pnFiscala,?gnIdSucursala)}]
llSucces = goExecutor.oExecuta(lcSel, lcCursor)
Endif
If m.llSucces
Select * From crslista Into Cursor crsRap Order By gestiune, Cont
Report Form listmfscdcota To Printer Prompt Preview
Endif
Release poLista
Release locauta
If Used('crslista')
Use In crslista
Endif
If Used('crsRap')
Use In crsRap
Endif
Endproc
*---------------------------------------------------------------------------
Procedure _old_list_corp_pesectii
list_pesectii(1)
Endproc
*------------------------------------------------------------------------
Procedure _old_list_necorp_pesectii
list_pesectii(2)
Endproc
*------------------------------------------------------------------------
Procedure _old_list_pesectii && CORPORALE/NECORPORALE 'cu totaluri pe sectii'
Parameters tnTip
* tnTip 1) Corp. 2) Necorp
Private poLista, locauta
Store '' To poLista
Store "" To locauta
Private pnIdSectie, pnTip
pnIdSectie = 0
If Pcount() > 0 And Type('tnTip') = 'N'
pnTip = tnTip
Else
pnTip = 1
Endif
pcselect = ['select sectie, id_sectie FROM vnom_sectii where inactiv=0']
pcfiltru = [1=2]
pcschema = ['']
pcorder = [sectie]
pccoloane = [sectie]
pcTitlu = [Alegeti sectie]
pcTitluColoane = [Sectii]
locauta = cauta_alfa(pcselect, pcfiltru, pcschema, pcorder, pccoloane, pcTitlu, pcTitluColoane, "", .T.)
If gnButon = 2
Release locuta
Return
Endif
pcCond = [id_tip_imobilizare = ] + Alltrim(Str(pnTip)) + [ and id_tip_operatie <> 4]
If !Empty(locauta.sectie) And locauta.id_sectie <> 0
pnIdSectie = locauta.id_sectie
pcCond = pcCond + [ and id_sectie = ] + Alltrim(Str(pnIdSectie))
Endif
pdDataI = Date(gnAn, gnLuna, 1)
pdDataF = pdDataI
pnFiscala = 0
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'
pcTitlu = "LISTA IMOBILIZARILOR " + Iif(tnTip = 1, "CORPORALE", "NECORPORALE") + " IN LUNA"
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 = ] + Alltrim(Str(m.pnTip)) + [ and iesit_din_gest = 0] + Iif(!Empty(m.pnIdSectie), [ and id_sectie = ] + Alltrim(Str(m.pnIdSectie)), []) + m.gcCondSucursala
llSucces = goExecutor.oExecuta('begin pack_imob.setlunacurenta(?pdDataI); end;')
If m.llSucces
lcSel = [SELECT * FROM ] + Iif(m.pnFiscala = 0, [imob_vsituatie_lunara], [imobf_vsituatie_lunara]) + [ WHERE ] + m.lcFiltru
llSucces = goExecutor.oExecuta(m.lcSel, m.lcCursor)
Endif
Else
lcSel = [{call pack_imob.CALCUL_SITUATIE_LUNARA(?pdDataI,?pdDataF,?pcCond,?pnFiscala,?gnIdSucursala)}]
llSucces = goExecutor.oExecuta(lcSel, lcCursor)
Endif
If m.llSucces
Select * From crslista Into Cursor crsRap Order By gestiune, Cont, data_pif
If Reccount('crsRap') > 0
Private pcDataOra
pcDataOra = get_ora(2)
Select crsRap
Report Form listmf_grup To Printer Prompt Preview
Release pcDataOra
Else
aMESSAGEBOX("Nu exista inregistrari pentru listare!", 48, "Atentie")
Endif
Endif
Release poLista
Release locauta
If Used('crslista')
Use In crslista
Endif
If Used('crsRap')
Use In crsRap
Endif
Endproc
*---------------------------------------------------------------------------
Procedure lista_fiselor_corp && CORPORALE 'lista fiselor'
LPARAMETERS tlOperatii
lnTip = 1 && corporale
lnFiscala = 0 && amortizare contabila
llOperatii = m.tlOperatii && standard/cu operatii
lista_fiselor(m.lnTip, m.lnFiscala, m.llOperatii)
Endproc
*---------------------------------------------------------------------------
Procedure lista_fiselor_necorp && NECORPORALE 'lista fiselor'
LPARAMETERS tlOperatii
lnTip = 2 && necorporale
lnFiscala = 0 && amortizare contabila
llOperatii = m.tlOperatii && standard/cu operatii
lista_fiselor(m.lnTip, m.lnFiscala, m.llOperatii)
Endproc
*---------------------------------------------------------------------------
Procedure lista_fiselor
Parameters tnTip, tnFiscala, tlOperatii
****
* 1) imob.corporale
* 2) imob.necorporale
****
Local lcCursor, lcFiltru, lcSchema, lcSel, llExperimental, llSucces, lnFiscala, llOperatii
Private pcCond, pdDataF, pdDataI, pnFiscala
lnFiscala = IIF(!EMPTY(m.tnFiscala), m.tnFiscala, 0)
llOperatii = IIF(!EMPTY(m.tlOperatii), m.tlOperatii, .F.)
Use In (Select('crslista'))
pdDataI = Date(gnAn, gnLuna, 1)
pdDataF = pdDataI
pcCond = [1=1]
pnFiscala = 0
lcSchema = ['']
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 = ] + Alltrim(Str(m.tnTip)) + [ and iesit_din_gest = 0] + m.gcCondSucursala
llSucces = goExecutor.oExecuta('begin pack_imob.setlunacurenta(?pdDataI); end;')
If m.llSucces
lcSel = [SELECT * FROM ] + Iif(m.pnFiscala = 0, [imob_vsituatie_lunara], [imobf_vsituatie_lunara]) + [ WHERE ] + m.lcFiltru
llSucces = goExecutor.oExecuta(m.lcSel, m.lcCursor)
Endif
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 crslista
Set Filter To id_tip_imobilizare = tnTip And iesit_din_gest = 0
SET STEP ON
IF m.llOperatii
* Jurnal operatii-rate
lcSql = [select * from ] + Iif(m.lnFiscala = 0, [imob_vjurnal_rate],[imobf_vjurnal_rate]) + [ where id_tip_imobilizare = ] + ALLTRIM(STR(m.tnTip)) + [ order by data_operatie]
llSucces = goExecutor.oExecuta(m.lcSql, "crsLista2")
SELECT crsLista
INDEX on id_mf TAG id_mf
SELECT crsLista2
INDEX on id_mf TAG id_mf
SET RELATION TO crsLista.id_mf INTO crsLista2
ENDIF
lcRaport = IIF(m.llOperatii, IIF(m.tnTip = 1, "fisa_mf_istoric_rate", "fisa_mf2"), IIF(m.tnTip = 1, "fisa_mf_istoric", "fisa_mf2"))
goExport.export2frx([crslista], "fisa_mf_istoric", , , , , , .T.)
Use In (SELECT('crsLista'))
USE IN (SELECT('crsLista2'))
Endproc
*---------------------------------------------------------------------------
*!* Lista de inventar imobilizari corporale model 1
*!* am inlocuit-o cu DO list_inventar WITH 1,0 IN oproceduri_listari.prg
Procedure lista_inv_m1_c
lista_inv_m1(1)
Endproc
*---------------------------------------------------------------------------
*!* Lista de inventar imobilizari necorporale model 1
*!* am inlocuit-o cu DO list_inventar WITH 2,0 IN oproceduri_listari.prg
Procedure lista_inv_m1_n
lista_inv_m1(2)
Endproc
*---------------------------------------------------------------------------
Procedure lista_inv_m1
Parameters tnTip
* tnTip 1) Corp. 2) Necorp
Private poLista, locauta
Store '' To poLista
Store "" To locauta
Private pnIdGest
pnIdGest = 0
pcselect = ['select nume_gestiune,id_gestiune FROM ] + gcS + [.vnom_gestiuni where inactiv=0']
pcfiltru = [1=2]
pcschema = ['']
pcorder = [nume_gestiune]
pccoloane = [nume_gestiune]
pcTitlu = [Alegeti gestiunea]
pcTitluColoane = [Gestiune]
locauta = cauta_alfa(pcselect, pcfiltru, pcschema, pcorder, pccoloane, pcTitlu, pcTitluColoane, "", .T.)
If !Empty(locauta.nume_gestiune)
lcCondGestiune = [1=1]
If Alltrim(locauta.nume_gestiune) # [<TOATE INREGISTRARILE>]
pnIdGest = locauta.id_gestiune
lcCondGestiune = lcCondGestiune + [ and id_gestiune = ?pnIdGest]
Endif
Use In (Select('crslista'))
pdDataI = Date(gnAn, gnLuna, 1)
pdDataF = pdDataI
pcCond = [1=1]
pnFiscala = 0
lcSchema = ['']
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 = ] + Alltrim(Str(m.pnTip)) + [ and iesit_din_gest = 0] + Iif(!Empty(m.pnIdGest), [ and id_gestiune = ] + Alltrim(Str(m.pnIdGest)), []) + m.gcCondSucursala
llSucces = goExecutor.oExecuta('begin pack_imob.setlunacurenta(?pdDataI); end;')
If m.llSucces
lcSel = [SELECT * FROM ] + Iif(m.pnFiscala = 0, [imob_vsituatie_lunara], [imobf_vsituatie_lunara]) + [ WHERE ] + m.lcFiltru
llSucces = goExecutor.oExecuta(m.lcSel, m.lcCursor)
Endif
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 * From crslista With (Buffering = .T.) Where id_tip_imobilizare = tnTip And iesit_din_gest = 0 And &lcCondGestiune Into Cursor crs_rap Order By gestiune, Cont
If Used('crsLista')
Use In crslista
Endif
If Reccount('crs_rap') > 0
Private pcDataOra
pcDataOra = get_ora(2)
Select crs_rap
* thisform.AlwaysOnTop = .F.
Report Form listmf_inv To Printer Prompt Preview
* thisform.AlwaysOnTop = .T.
Release pcDataOra
Else
aMESSAGEBOX("Nu exista inregistari pentru listare!", 48, "Atentie")
Endif
If Used('crslista')
Use In crslista
Endif
If Used('crs_rap')
Use In crs_rap
Endif
Endif
Release poLista
Endproc
*---------------------------------------------------------------------------
Procedure lista_inv_m2_c
lista_inv_m2(1)
Endproc
*---------------------------------------------------------------------------
Procedure lista_inv_m2_n
lista_inv_m2(2)
Endproc
*---------------------------------------------------------------------------
Procedure lista_inv_m2
Parameters tnTip
* tnTip 1) Corp. 2) Necorp
Private poLista, locauta
Store '' To poLista
Store "" To locauta
Private nid_gestiune
nid_gestiune = 0
pcselect = ['select nume_gestiune,id_gestiune FROM ] + gcS + [.vnom_gestiuni where inactiv=0']
pcfiltru = [1=2]
pcschema = ['']
pcorder = [nume_gestiune]
pccoloane = [nume_gestiune]
pcTitlu = [Alegeti gestiunea]
pcTitluColoane = [Gestiune]
locauta = cauta_alfa(pcselect, pcfiltru, pcschema, pcorder, pccoloane, pcTitlu, pcTitluColoane, "", .T.)
If !Empty(locauta.nume_gestiune)
nid_gestiune = locauta.id_gestiune
pcgestiune = Alltrim(locauta.nume_gestiune)
pcschema = ['']
pcselect = ['select * from ] + gcS + [.imob_vjurnal2 where 1=2']
pcorder = [gestiune,denumire]
*pcFiltru = [id_tip_imobilizare=?tnTip and iesit_din_gest=0 and id_gestiune=?nid_gestiune]
pcfiltru = [id_tip_imobilizare=?tnTip and iesit_din_gest=0] + Iif(nid_gestiune = 0, [], [and id_gestiune=?nid_gestiune])
llAfiseaza = .F.
gencursor('poLista', 'crslista', pcselect, pcfiltru, pcschema, pcorder, llAfiseaza)
poLista.ca_baza1.afisare()
pcTitlu = "LISTA IMOBILIZARILOR " + Iif(tnTip = 1, "CORPORALE", "NECORPORALE") + " IN LUNA"
If Reccount('crslista') > 0
Private pcDataOra
pcDataOra = get_ora(2)
Select crslista
*thisform.AlwaysOnTop = .F.
Report Form nota_inv2005 To Printer Prompt Preview
Release pcDataOra
*thisform.AlwaysOnTop = .T.
Else
aMESSAGEBOX("Nu exista inregistrari pentru listare!", 48, "Atentie")
Endif
Endif
Release poLista
Endproc
*---------------------------------------------------------------------------
Procedure evidenta_mf && CORPORALE 'Evidenta MF'
Parameters tnTip
Private pcDataOra
Local lcCursor, lcFiltru, lcSchema, lcSel, llExperimental, llSucces
Private pcCond, pdDataF, pdDataI, pnFiscala
pcDataOra = []
pdDataI = Date(gnAn, gnLuna, 1)
pdDataF = pdDataI
pcCond = [1=1]
pnFiscala = 0
lcSchema = ['']
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 = ] + Alltrim(Str(m.tnTip)) + m.gcCondSucursala
llSucces = goExecutor.oExecuta('begin pack_imob.setlunacurenta(?pdDataI); end;')
If m.llSucces
lcSel = [SELECT * FROM ] + Iif(m.pnFiscala = 0, [imob_vsituatie_lunara], [imobf_vsituatie_lunara]) + [ WHERE ] + m.lcFiltru
llSucces = goExecutor.oExecuta(m.lcSel, m.lcCursor)
Endif
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 Cont, Sum(valoare) As valoare, Sum(amort_prec + rata) As amortizare_totala, ;
Sum(valoare - amort_prec - rata) As valoare_ramasa, Sum(valoare_ramasa) As valoare_justa, ;
Sum(rata) As rata, Count(*) As numar ;
From &lcCursor Where id_tip_imobilizare = tnTip And iesit_din_gest = 0 Into Cursor crsevidentamf Group By Cont Order By Cont
If Used(lcCursor)
Use In (lcCursor)
Endif
*!* lcsql= " SELECT cont ,sum(valoare) as valoare,sum(amort_prec+rata) as amortizare_totala,"+;
*!* " sum(valoare_ramasa-amort_prec-rata) as valoare_ramasa,sum(valoare_ramasa-amort_prec_rata) as ramas_bilant, "+;
*!* " sum(rata) as rata,count(*) as numar "+;
*!* " FROM "+gcS+".imob_vjurnal2 where id_tip_imobilizare=1 and iesit_din_gest=0 GROUP BY cont ORDER BY cont"
*!* lnSucces=goExecutor.oExecute(lcsql,'crsevidentamf')
*!* IF lnSucces<0
*!* MESSAGEBOX("Nu a mers SQL-ul")
*!* RETURN
*!* ENDIF
*STRTOFILE(lcsql,'c:\t.txt')
If Reccount('crsevidentamf') > 0
pcDataOra = get_ora(2)
Select crsevidentamf
*thisform.AlwaysOnTop = .F.
* Report Form evidenta_mf To Printer Prompt Preview
goExport.export2frx('crsevidentamf', "evidenta_mf", , , , , , .T.)
*thisform.AlwaysOnTop = .T.
Select crsevidentamf
If Reccount() > 0
If aMESSAGEBOX('Doriti sa exportati in format XLS?', 4 + 32, _Screen.Caption) = 6
export_xls("crsevidentamf", "evidenta MF")
Endif
Endif
Else
aMESSAGEBOX("Nu exista inregistrari pentru listare!", 48, "Atentie")
Endif
Use In (SELECT('crsevidentamf'))
Endproc
*---------------------------------------------------------------------------
Procedure list_inchid_amortizari
Lparameters tnTip
Private pcTitlu, pcDataOra
Local lcCursor, lnLucrare, lnSectie
pcTitlu = "Raport amortizare lunara " + Iif(tnTip = 1, "imobilizari corporale", "imobilizari necorporale")
pcDataOra = get_ora(2)
Local lnTip, lnSectie
If Empty(tnTip)
lnTip = 1 && corporale
Else
lnTip = tnTip
Endif
lnSectie = 0
*!* 07.05.2007
*!* optiune inchidere nota amortizare dupa sectie
If gnNotaImob = 2
lnSectie = 1
Else
*IF gnCampSectie = 1
If aMESSAGEBOX("Nota de inchidere amortizari se defalca dupa 'Sectie'?", 4 + 32, "Inchidere amortizari") = 6
lnSectie = 1
Endif
*ENDIF
Endif
lnLucrare = 0
IF m.gnCampLucrare = 1 AND AMESSAGEBOX("Inchiderea se face dupa campul 'Lucrare'?", 4 + 32, "Inchidere amortizari") = 6
lnLucrare = 1
ENDIF
lcCursor = GET_CURSOR_INCHIDERE_AMORTIZARI(m.lnTip, m.lnSectie, m.lnLucrare, m.gnAn, m.gnLuna, "crs_inchidere") && oproceduri_comune_imob.prg
If Used(lcCursor)
Select (lcCursor)
Set Filter To suma <> 0
goExport.export2frx(m.lcCursor, "act", , , , , , .T.)
Select (lcCursor)
If Reccount() > 0
If aMESSAGEBOX('Doriti sa exportati in format XLS?', 4 + 32, _Screen.Caption) = 6
export_xls(m.lcCursor, m.pcTitlu)
Endif
Endif
Endif
Use In (Select(lcCursor))
Endproc && list_inchid_amortizari
*----------------------------------------------------
Procedure list_inchid_amortizari_nec
Endproc && list_inchid_amortizari_nec
*-----------------------------------------------------------------------------------
Procedure rulaj_amortizment
LPARAMETERS tnFiscala
Private pcfelul
lcAlias = sitan(m.tnFiscala) && sitan.prg
rulaje('amortizare_lunara', lcAlias) && IN sitan.prg
Select rulaje
Go Top
ov = Create('frm_analitice1')
ov.lb_titlu_alb_b121.Caption = 'SITUATIE ANALITICA - RULAJ AMORTIZMENTE (In anul curent pana in luna curenta)' + IIF(EMPTY(m.tnFiscala), ' CONTABILA', ' FISCALA')
For i = 3 To ov._grdbase1.ColumnCount
ov._grdbase1.Columns[i].InputMask = get_mask(14, gnPa)
Endfor
ov.Show(1)
Use In rulaje
Endproc && rulaj_amortizment
*-----------------------------------------------------------------------------------
Procedure total_amortizment
LPARAMETERS tnFiscala
Private pcfelul
lcAlias = sitan(m.tnFiscala) && sitan.prg
rulaje('amortizare_totala', lcAlias) && IN sitan.prg
Select rulaje
Go Top
ov = Create('frm_analitice1')
ov.lb_titlu_alb_b121.Caption = 'SITUATIE ANALITICA - TOTAL AMORTIZMENTE (In anul curent pana in luna curenta)' + IIF(EMPTY(m.tnFiscala), ' CONTABILA', ' FISCALA')
For i = 3 To ov._grdbase1.ColumnCount
ov._grdbase1.Columns[i].InputMask = get_mask(14, gnPa)
Endfor
ov.Show(1)
Use In rulaje
Endproc && total_amortizment
***---------------------------------
Procedure list_situatie_lunara
Parameters tnTip, tnFiscala
&& tnTip : 1 = corporala, 2 = necorporala
&& tnFiscala : 0 = contabila, 1 = fiscala
Do Form rap_situatie_lunara With tnTip, tnFiscala
Endproc && list_situatie_lunara
***---------------------------------
Procedure list_inventar
Parameters tnTip, tnFiscala
&& tnTip : 1 = corporala, 2 = necorporala
&& tnFiscala : 0 = contabila, 1 = fiscala
Do Form rap_lista_inventar With tnTip, tnFiscala
Endproc && list_inventar
*** ---------------------------------------
Procedure compar_am_contab_fiscal
Parameters tnTip, tlXLS
*** tlXLS: .T. = export XLS, .F. (default) = listare
Local lcCursor, lcSchema, lcSel, llOk, lnSucces, loExcelXML
*:Global pcCond, pcDataora, pcTitlu, pdDataF, pdDataI, pnFiscala
pdDataI = Date(gnAn, gnLuna, 1)
pdDataF = pdDataI
*pcCond = [id_tip_imobilizare = ] + ALLTRIM(STR(tnTip)) && merge fffff greu
pcCond = [1=1]
pnFiscala = 0
lcCursor = 'crslistaC'
lcSchema = ['']
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 = ] + Alltrim(Str(m.tnTip)) + m.gcCondSucursala
llSucces = goExecutor.oExecuta('begin pack_imob.setlunacurenta(?pdDataI); end;')
If m.llSucces
lcSel = [SELECT * FROM ] + Iif(m.pnFiscala = 0, [imob_vsituatie_lunara], [imobf_vsituatie_lunara]) + [ WHERE ] + m.lcFiltru
llSucces = goExecutor.oExecuta(m.lcSel, m.lcCursor)
Endif
Else
lcSel = [{call pack_imob.CALCUL_SITUATIE_LUNARA(?pdDataI,?pdDataF,?pcCond,?pnFiscala,?gnIdSucursala)}]
llSucces = goExecutor.oExecuta(lcSel, lcCursor)
Endif
If !m.llSucces
Return
Endif
pnFiscala = 1
lcSchema = ['']
lcCursor = 'crslistaF'
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 = ] + Alltrim(Str(m.tnTip)) + m.gcCondSucursala
llSucces = goExecutor.oExecuta('begin pack_imob.setlunacurenta(?pdDataI); end;')
If m.llSucces
lcSel = [SELECT * FROM ] + Iif(m.pnFiscala = 0, [imob_vsituatie_lunara], [imobf_vsituatie_lunara]) + [ WHERE ] + m.lcFiltru
llSucces = goExecutor.oExecuta(m.lcSel, m.lcCursor)
Endif
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 c.denumire, c.nr_inventar, c.cod_mf, c.valoare As valoare_c, c.valoare_ramasa As valoare_justa_c, c.rata As rata_c, c.valoare - c.amort_prec - c.rata As valoare_ramasa_c, ;
F.valoare As valoare_f, F.valoare_ramasa As valoare_justa_f, F.rata As rata_f, F.valoare - F.amort_prec - F.rata As valoare_ramasa_f ;
From crslistaC c Join crslistaF F On c.id_mf = F.id_mf And c.id_tip_imobilizare = tnTip And F.id_tip_imobilizare = tnTip ;
Where c.rata <> F.rata Or c.valoare <> F.valoare ;
Order By c.nr_inventar, c.denumire ;
Into Cursor crs_list
pcTitlu = 'Raport diferente dintre amortizarea contabila si cea fiscala'
If Reccount('crs_list') > 0
pcDataOra = get_ora(2)
Select crs_list
If m.tlXLS
loExcelXML = Newobject("ExcelXML", "ExcelXML.VCX")
loExcelXML.SheetName = "Diferente amortizare"
loExcelXML.OpenAfterSaving = .T.
llOk = loExcelXML.Save("diferente_amortizare_" + Alltrim(Str(m.gnAn)) + Padl(m.gnLuna, 2, '0') + '.xls')
Else
goExport.export2frx([crs_list], "rap_diferente_cf", , , , , , .T.)
Endif
Else
aMESSAGEBOX("Nu exista inregistari pentru listare!", 48, "Atentie")
Endif
If Used('crslistaC')
Use In crslistaC
Endif
If Used('crslistaF')
Use In crslistaF
Endif
If Used('crs_list')
Use In crs_list
Endif
Endproc && compar_am_contab_fiscal
***---------------------------------------------------------
Procedure istoric_operatii
Parameters tnTip
pcselect = ['select denumire,nr_pif FROM ] + gcS + [.imob_vnom_mf where inactiv=0 and id_tip_imobilizare = ?tnTip']
pcfiltru = [1=2]
pcschema = ['']
pcorder = [denumire,nr_pif]
pccoloane = [denumire, nr_pif]
pcTitlu = [Alegeti MF]
pcTitluColoane = [Denumire MF, Nr. PIF]
locauta = cauta_alfa(pcselect, pcfiltru, pcschema, pcorder, pccoloane, pcTitlu, pcTitluColoane, "")
If Empty(locauta.id_mf)
Return
Endif
pnIdMf = locauta.id_mf
lcsql = 'SELECT a.denumire, a.nr_pif, a.data_pif, l.nr_inventar, l.cod_mf, ' + ;
'o.data_operatie, o.denumire as operatie, o.valoare, o.valoare_ramasa, o.dns_ramas,' + ;
'r.rata, r.data_ultima_rata, r.luna, r.an, r.luna_exp, r.an_exp, r.cota_an, 0 as fiscal ' + ;
'from imob_vnom_mf join a imob_vultimalista_mf l on a.id_mf = l.id_mf '
&& neterminat
Endproc && istoric_operatii
***------------------------ INCEPUT: RegistruNrInventar ---------------------------------------
Procedure RegistruNrInventar(tnIdTipImobilizare, tnIesitDinGest)
Private pcDataOra
Local lcCursor, lcFiltru, lcSchema, lcSel, llExperimental, llSucces, lnSucces
Private pcCond, pdDataF, pdDataI, pnFiscala
Use In (Select('crslista'))
pdDataI = Date(gnAn, gnLuna, 1)
pdDataF = m.pdDataI
pcCond = [1=1]
pnFiscala = 0
lcSchema = ['']
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 = ] + Alltrim(Str(m.tnIdTipImobilizare)) + [ and iesit_din_gest = ] + Alltrim(Str(m.tnIesitDinGest)) + m.gcCondSucursala
llSucces = goExecutor.oExecuta('begin pack_imob.setlunacurenta(?pdDataI); end;')
If m.llSucces
lcSel = [SELECT * FROM ] + Iif(m.pnFiscala = 0, [imob_vsituatie_lunara], [imobf_vsituatie_lunara]) + [ WHERE ] + m.lcFiltru
llSucces = goExecutor.oExecuta(m.lcSel, m.lcCursor)
Endif
Else
lcSel = [{call pack_imob.CALCUL_SITUATIE_LUNARA(?pdDataI,?pdDataF,?pcCond,?pnFiscala,?gnIdSucursala)}]
Endif
lnSucces = goExecutor.oExecute(lcSel, lcCursor)
If lnSucces < 0
aMESSAGEBOX(goExecutor.cEroare, 0 + 16, "Eroare")
Return
Endif
Select denumire, cod_mf As codmf, nr_inventar As nrinv, Nvl(gestiune, "") As gestiune, Nvl(sectie, "") As sectie, ;
Left(Alltrim(cod_mf), 3) As codleft ;
From crslista ;
Where id_tip_imobilizare = tnIdTipImobilizare And iesit_din_gest = tnIesitDinGest ;
Order By codleft, nrinv ;
Into Cursor crsRegNrInv
Use In crslista
If Reccount('crsRegNrInv') > 0
pcDataOra = get_ora(2)
Select crsRegNrInv
*!* Report Form reg_nr_inv To Printer Prompt Preview
goExport.export2frx([crsRegNrInv], [reg_nr_inv], , , , , , .T.)
If aMESSAGEBOX('Doriti sa exportati in format XLS?', 4 + 32, _Screen.Caption) = 6
export_xls('crsRegNrInv', 'Registru Numere Inventar')
Endif
Else
aMESSAGEBOX("Nu exista inregistrari pentru listare!", 48, "Atentie")
Endif
Use In crsRegNrInv
Endproc && RegistruNrInventar
***======================== SFARSIT: RegistruNrInventar =================================
***------------------------ INCEPUT: ListaImobInCurs ------------------------------------
Procedure ListaImobInCurs
LPARAMETERS tcGrupare
* tcGrupare (optional): LUCRARE
PRIVATE pcDataOra, pcGrupDenumire, pcGrupId, pcGrupTitlu
Local lnOptiune, lcFilter, lcCursor, lcOrder
poLista = ''
pcDataOra = ''
lcOrder = [data_achizitie, nr_inventar]
pcGrupId = '1=1'
pcGrupTitlu = ''
pcGrupDenumire = 'nrord'
If UPPER(TRANSFORM(tcGrupare)) = 'LUCRARE'
pcGrupId = 'id_lucrare'
pcGrupTitlu = 'Lucrare'
pcGrupDenumire = 'nrord'
lcOrder = [nrord, data_achizitie, nr_inventar]
ENDIF
lcsql = [select id_mf,id_lista_mf,nrord,nract,id_lucrare,id_responsabil,id_gestiune,] + ;
[id_sectie,data_achizitie,nr_inventar,denumire,explicatia,] + ;
[valoare, valoare_ramasa, cgest,gestiune,sectie,responsabil,cont,utilizator,dataora,id_operatie_mf ] + ;
[from imob_vlista_curs ] + Iif(!Empty(gcCondSucursala), [ WHERE ] + Substr(gcCondSucursala, 6), '') + [ ORDER BY ] + m.lcOrder
lnSucces = goExecutor.oExecute(lcsql, 'crsLista')
If lnSucces < 0
aMESSAGEBOX(goExecutor.cEroare, 0 + 64, 'Eroare')
Return
Endif
If Reccount('crslista') > 0
pcDataOra = get_ora(2)
Select crslista
*thisform.AlwaysOnTop = .F.
*!* Report Form listimobcurs To Printer Prompt Preview
goExport.export2frx([crslista], [listimobcurs], , , , , , .T.)
*thisform.AlwaysOnTop = .T.
Else
aMESSAGEBOX("Nu exista inregistrari pentru listare!", 48, "Atentie")
Endif
Release pcDataOra
Endproc && ListaImobInCurs
***======================== SFARSIT: ListaImobInCurs ====================================
***------------------------ Inceput: RegNrInvInCurs -------------------------------------
Procedure RegNrInvInCurs
Private poLista, pcschema, pcselect, pcorder, pcfiltru
Local llAfiseaza
Private pcDataOra
Store '' To poLista
If Used('crslista')
Use In crslista
Endif
pcschema = ['']
pcselect = [select id_mf,id_lista_mf,nrord,nract,id_lucrare,id_responsabil,id_gestiune,] + ;
[id_sectie,data_achizitie,nr_inventar,denumire,explicatia,] + ;
[valoare,cgest,gestiune,sectie,responsabil,cont,utilizator,dataora,id_operatie_mf ] + ;
[from ] + gcS + [.imob_vlista_curs where 2=2']
pcorder = [data_achizitie]
*!* 16.11.2009
pcfiltru = [valoare > 0 ] + Iif(!Empty(gcCondSucursala), gcCondSucursala, '')
*!* 16.11.2009 ^
llAfiseaza = .F.
gencursor('poLista', 'crslista', pcselect, pcfiltru, pcschema, pcorder, llAfiseaza)
poLista.ca_baza1.afisare()
Select denumire, "" As codmf, nr_inventar As nrinv, Nvl(gestiune, "") As gestiune, Nvl(sectie, "") As sectie, ;
"" As codleft ;
From crslista ;
Order By codleft, nrinv ;
Into Cursor crsRegNrInv
If Used('crslista')
Use In crslista
Endif
If Reccount('crsRegNrInv') > 0
pcDataOra = get_ora(2)
Select crsRegNrInv
*!* Report Form reg_nr_inv To Printer Prompt Preview
goExport.export2frx([crsRegNrInv], [reg_nr_inv], , , , , , .T.)
If aMESSAGEBOX('Doriti sa exportati in format XLS?', 4 + 32, _Screen.Caption) = 6
export_xls('crsRegNrInv', 'Registru Numere Inventar')
Endif
Else
aMESSAGEBOX("Nu exista inregistrari pentru listare!", 48, "Atentie")
Endif
If Used('crsRegNrInv')
Use In crsRegNrInv
Endif
Endproc && RegNrInvInCurs
***======================== SFARSIT: RegNrInvInCurs =====================================
****************************************************************
* verifica daca exista diferente intre modul standard (pack_imob.calcul_situatie_lunara) si modul experimental (selectie din view imob_vsituatie_lunara) de calcul amortizare
****************************************************************
Procedure raport_concordanta_experimental
Lparameters tnIdTipImobilizare
Private pdDataI, pdDataF, pcCond, pnFiscala
Local lcsql, lcCursorS, lcCursorE
Create Cursor cDiferenteImob (id_mf i, nr_inventar i, denumire c(200), amps N(16, 2) Null, ampe N(16, 2) Null, dif1 L, amls N(16, 2) Null, amle N(16, 2) Null, dif2 L, valas N(16, 2) Null, valae N(16, 2) Null, dif3 L, ;
valis N(16, 2) Null, valie N(16, 2) Null, dif4 L, valrs N(16, 2) Null, valre N(16, 2) Null, dif5 L, iesits N(1) Null, iesite N(1) Null, dif6 L, dataes D Null, dataee D Null, dif7 L, Tip N(1) Null)
pdDataI = Date(m.gnAn, m.gnLuna, 1)
pdDataF = m.pdDataI
pcCond = [2=2]
pnFiscala = 0
* STANDARD
lcCursorS = 'crsAmortizareStandard'
lcsql = [{call pack_imob.CALCUL_SITUATIE_LUNARA(?pdDataI,?pdDataF,?pcCond,?pnFiscala,?gnIdSucursala)}]
llSucces = goExecutor.oExecuta(m.lcsql, m.lcCursorS)
* EXPERIMENTAL
lcCursorE = 'crsAmortizareExperimentalTemp'
llSucces = goExecutor.oExecuta('begin pack_imob.setlunacurenta(?pdDataI); end;')
If m.llSucces
lcFiltru = [id_tip_imobilizare = ] + Alltrim(Str(m.tnIdTipImobilizare))
If !Isnull(m.gnIdSucursala)
lcFiltru = m.lcFiltru + [ and ID_SUCURSALA = ] + Alltrim(Str(m.gnIdSucursala))
Endif
lcsql = [SELECT * FROM ] + Iif(m.pnFiscala = 0, [imob_vsituatie_lunara], [imobf_vsituatie_lunara]) + ' WHERE ' + m.lcFiltru
llSucces = goExecutor.oExecuta(m.lcsql, m.lcCursorE)
Endif
Select *, .F. As verificat From (m.lcCursorE) Into Cursor crsAmortizareExperimental Readwrite
Select crsAmortizareStandard
Scan For id_tip_imobilizare = m.tnIdTipImobilizare
Scatter Name loS
Select crsAmortizareExperimental
Locate For id_mf = loS.id_mf
If Found()
Scatter Name loE
Replace verificat With .T.
Else
Scatter Name loE Blank
Endif
llDif1 = Nvl(loS.amort_prec, 0) <> Nvl(loE.amort_prec, 0)
llDif2 = Nvl(loS.rata, 0) <> Nvl(loE.rata, 0)
llDif3 = Nvl(loS.valoare_achizitie, 0) <> Nvl(loE.valoare_achizitie, 0) && valoare achizitie
llDif4 = Nvl(loS.valoare, 0) <> Nvl(loE.valoare, 0) && valoare inventar
llDif5 = Nvl(loS.valoare_ramasa, 0) <> Nvl(loE.valoare_ramasa, 0)
llDif6 = Nvl(loS.iesit_din_gest, 0) <> Nvl(loE.iesit_din_gest, 0)
llDif7 = Nvl(loS.data_expirare, 0) <> Nvl(loE.data_expirare, 0)
If (m.llDif1 Or m.llDif2 Or m.llDif3 Or m.llDif4 Or m.llDif5 Or m.llDif6 Or m.llDif7)
Insert Into cDiferenteImob (id_mf, nr_inventar, denumire, amps, ampe, amls, amle, valas, valae, valis, valie, valrs, valre, iesits, iesite, dataes, dataee, Tip, dif1, dif2, dif3, dif4, dif5, dif6, dif7) ;
Values (loS.id_mf, loS.nr_inventar, loS.denumire, loS.amort_prec, loE.amort_prec, loS.rata, loE.rata, loS.valoare_achizitie, loE.valoare_achizitie, loS.valoare, loE.valoare, loS.valoare_ramasa, loE.valoare_ramasa, ;
loS.iesit_din_gest, loE.iesit_din_gest, loS.data_expirare, loE.data_expirare, loS.id_tip_imobilizare, m.llDif1, m.llDif2, m.llDif3, m.llDif4, m.llDif5, m.llDif6, m.llDif7)
Endif
Endscan && crsAmortizareStandard
Insert Into cDiferenteImob (id_mf, nr_inventar, denumire, ampe, amle, valae, valie, valre, iesite, dataee, Tip, dif1, dif2, dif3, dif4, dif5, dif6, dif7) ;
Select id_mf, nr_inventar, denumire, amort_prec, rata, valoare_achizitie, valoare, valoare_ramasa, iesit_din_gest, data_expirare, id_tip_imobilizare, .T., .T., .T., .T., .T., .T., .T. ;
From crsAmortizareExperimental Where !verificat
Use In (Select('crsAmortizareStandard'))
Use In (Select('crsAmortizareExperimental'))
Select cDiferenteImob
Go Top
If Reccount() = 0
aMESSAGEBOX('Nu exista diferente intre calcul amortizare standard si experimental', 0 + 64, _Screen.Caption)
Else
Browse Title 'Diferente calcul standard - experimental'
If aMESSAGEBOX('Doriti sa exportati in format XLS?', 4 + 32, _Screen.Caption) = 6
export_xls('cDiferenteImob', 'Diferente calcul standard - experimental')
Endif
Endif
Use In (Select('cDiferenteImob'))
Endproc && raport_concordanta_experimental
********************************
Procedure list_situatie_reevaluare
LPARAMETERS tnIdTipImobilizare, tcIds
* tnIdTipImobilizare: 1=corporale, 2=necorporale, 3=in curs
* tcIds (optional): lista id_mf separate prin virgula
*!* Situatia de reevaluari a tuturor imobilizarilor
*!* 1. Am luat "valoarea de inventar" si "durata ramasa" de la toate operatiile de tip "Reevaluare".
*!* 2. Am comparat valoarea de inventar noua cu valoarea anterioara. Diferenta am impartit-o la durata ramasa (luni) si a rezultat o "rata".
*!* 3. Am generat apoi atatea inregistrari pentru "rata" respectiva cate luni ramase au fost la reevaluare.
*!* 4. Am generat aceasta situatie pentru toate lunile 2003-2020.
*!* Primele 2 coloane: an si luna reprezinta luna contabila in care sunt active ratele de majorare (de la luna operatiei de reevaluare pana la numarul de luni ramase).
*!* Exemplu: Pentru numarul de inventar 201001, AEROTERMA 15 KW sunt 2 reevaluari:
*!* - ianuarie 2004: valoare majorare: 304.07 lei, dns ramas: 72 luni, majorarea se imparte pana in decembrie 2009 (72 luni) in rate de 4.22 lei
*!* - decembrie 2006: valoare majorare: 92.76 lei, dns ramas: 36 luni, majorarea se imparte pana in noiembrie 2009 in rate de 2.58 lei
*!* ianuarie 2004 - noiembrie 2006: rata de 4.22 lei
*!* decembrie 2006 - noiembrie 2009: rata de 4.22 + 2.58 = 6.8 lei
*!* decembrie 2009: rata 4.22 lei
Local lcFileName, lcsql, llSucces, loPerioada, lcSelect
PRIVATE pnNrLuni1, pnNrLuni2, pcTitlu, pnIdTipImobilizare
lcSelect = SELECT()
pnIdTipImobilizare = IIF(!EMPTY(m.tnIdTipImobilizare), m.tnIdTipImobilizare, 1)
*!* AMESSAGEBOX('Alegeti perioada pentru care doriti sa generati raportul!', 0 + 64, _Screen.Caption)
loPerioada = AlegePerioada()
If Type('loPerioada') <> 'O'
Return
Endif
pnNrLuni1 = loPerioada.an1 * 12 + loPerioada.luna1
pnNrLuni2 = loPerioada.an2 * 12 + loPerioada.luna2
pcTitlu = 'Situatie reevaluari imobilizari ' + IIF(m.pnIdTipImobilizare = 1, 'corporale', 'necorporale') + ' ' + loPerioada.perioada
lcsql = [select * from imob_vsituatie_reevaluare r]
IF !EMPTY(m.tcIds)
lcsql = m.lcSql + [ JOIN (SELECT * FROM table(cast(CHARN2COLLECTION('] + m.tcIds + [', ',') as num_tab))) i ON r.ID_MF = i.X]
ENDIF
lcSql = m.lcSql + [ where r.an*12+r.luna between ?pnNrLuni1 and ?pnNrLuni2 and r.id_tip_imobilizare = ?pnIdTipImobilizare]
llSucces = goExecutor.oExecuta(m.lcsql, "cSituatieReevaluare")
If m.llSucces
goExport.export2frx([cSituatieReevaluare], [situatie_reevaluare], , , , , , .T.)
If AMESSAGEBOX('Doriti sa exportati in format XLS?', 4 + 32, _Screen.Caption) = 6
lcFileName = 'situatie_reevaluare_' + ALLTRIM(STR(INT(loPerioada.an1))) + PADL(INT(loPerioada.luna1),2,'0') + '_' + ALLTRIM(STR(INT(loPerioada.an2))) + PADL(INT(loPerioada.luna2),2,'0')
export_xls('cSituatieReevaluare', m.lcFileName)
Endif
Endif
Use In (Select('cSituatieReevaluare'))
SELECT (m.lcSelect)
Endproc && list_situatie_reevaluare
********************************
Procedure list_situatie_modificari
LPARAMETERS tnIdTipImobilizare, tcIds, tnIdTipOperatie
* tnIdTipImobilizare: 1=corporale, 2=necorporale, 3=in curs
* tcIds (optional): lista id_mf separate prin virgula
* tnIdTipOperatie (optional): 0/.F. = toate, 6 = majorare, 7 = reevaluare
*!* Situatia de majorari a tuturor imobilizarilor
*!* 1. Am luat "valoarea de inventar" de la toate operatiile de tip "Majorare".
*!* 2. Valoarea majorare = diferenta dintre valoarea de inventar noua si valoarea anterioara
Local lcFileName, lcsql, llSucces, loPerioada, lcSelect, lcTipOperatie, lnIdTipOperatie
PRIVATE pnNrLuni1, pnNrLuni2, pcTitlu, pnIdTipImobilizare
lcSelect = SELECT()
pnIdTipImobilizare = IIF(!EMPTY(m.tnIdTipImobilizare), m.tnIdTipImobilizare, 1)
lnIdTipOperatie = IIF(!EMPTY(m.tnIdTipOperatie), m.tnIdTipOperatie, 0)
lcTipOperatie = ''
DO CASE
CASE m.lnIdTipOperatie = 6
lcTipOperatie = 'majorare'
CASE m.lnIdTipOperatie = 7
lcTipOperatie = 'reevaluare'
ENDCASE
*!* AMESSAGEBOX('Alegeti perioada pentru care doriti sa generati raportul!', 0 + 64, _Screen.Caption)
loPerioada = AlegePerioada()
If Type('loPerioada') <> 'O'
Return
Endif
pnNrLuni1 = loPerioada.an1 * 12 + loPerioada.luna1
pnNrLuni2 = loPerioada.an2 * 12 + loPerioada.luna2
pcTitlu = 'Situatie operatii ' + IIF(!EMPTY(m.lcTipOperatie), m.lcTipOperatie + ' ', '') + 'imobilizari ' + IIF(m.pnIdTipImobilizare = 1, 'corporale', 'necorporale') + ' ' + loPerioada.perioada
lcsql = [select * from imob_vsituatie_modificari r]
IF !EMPTY(m.tcIds)
lcsql = m.lcSql + [ JOIN (SELECT * FROM table(cast(CHARN2COLLECTION('] + m.tcIds + [', ',') as num_tab))) i ON r.ID_MF = i.X]
ENDIF
lcSql = m.lcSql + [ where extract(year from r.data_operatie)*12+ extract(month from r.data_operatie) between ?pnNrLuni1 and ?pnNrLuni2 and r.id_tip_imobilizare = ?pnIdTipImobilizare]
IF !EMPTY(m.lnIdTipOperatie)
lcsql = m.lcSql + [ and r.id_tip_operatie = ] + ALLTRIM(STR(m.lnIdTipOperatie))
ENDIF
llSucces = goExecutor.oExecuta(m.lcsql, "cSituatieModificari")
If m.llSucces
IF RECCOUNT('cSituatieModificari') > 0
goExport.export2frx([cSituatieModificari], [situatie_modificari], , , , , , .T.)
If AMESSAGEBOX('Doriti sa exportati in format XLS?', 4 + 32, _Screen.Caption) = 6
lcFileName = 'situatie_operatii_' + IIF(!EMPTY(m.lcTipOperatie), m.lcTipOperatie + '_', '') + ALLTRIM(STR(INT(loPerioada.an1))) + PADL(INT(loPerioada.luna1),2,'0') + '_' + ALLTRIM(STR(INT(loPerioada.an2))) + PADL(INT(loPerioada.luna2),2,'0')
export_xls('cSituatieModificari', m.lcFileName)
ENDIF
ELSE
AMESSAGEBOX('Nu exista inregistrari pentru aceasta perioada',0+64,_screen.Caption)
ENDIF
ENDIF && llSucces
Use In (Select('cSituatieModificari'))
SELECT (m.lcSelect)
Endproc && list_situatie_modificari