sync SVN r18202
This commit is contained in:
@@ -8,6 +8,10 @@
|
||||
*!* marius.mutu
|
||||
*!* list_inchid_amortizari - corectie apel inchidere amortizari - defalcare dupa lucrari
|
||||
|
||||
*!* 23.09.2026
|
||||
*!* marius.mutu
|
||||
*!* listare_pvcasare_mf - Proces-verbal de casare, un PV per document (nrdoc+datadoc)
|
||||
|
||||
*--------------------------------------------------------------------------------------------------------------
|
||||
Procedure _old_listare_amortizari_lunare()
|
||||
Parameters Tip
|
||||
@@ -1323,4 +1327,77 @@ Procedure list_situatie_modificari
|
||||
|
||||
Use In (Select('cSituatieModificari'))
|
||||
SELECT (m.lcSelect)
|
||||
Endproc && list_situatie_modificari
|
||||
Endproc && list_situatie_modificari
|
||||
********************************
|
||||
Procedure listare_pvcasare_mf
|
||||
LPARAMETERS tcFiltru
|
||||
* crslista e deja filtrat pe server; tcFiltru (sintaxa Oracle) nu se reaplica local
|
||||
Local lcFiltruGrid
|
||||
lcFiltruGrid = Iif(Empty(Filter('crslista')), '.T.', Filter('crslista'))
|
||||
* Proces-verbal de casare: un PV per document (nrdoc+datadoc), fiecare pe pagina noua.
|
||||
Local lcSelect, lcSql, llSucces, lcIn, lcChunk, lnChunk
|
||||
lcSelect = SELECT()
|
||||
If Used('crsOpCasare')
|
||||
Use In crsOpCasare
|
||||
Endif
|
||||
If Used('crspvcasare')
|
||||
Use In crspvcasare
|
||||
Endif
|
||||
If Used('crsCasare')
|
||||
Use In crsCasare
|
||||
Endif
|
||||
Select id_mf, denumire, nr_inventar From crslista ;
|
||||
Where &lcFiltruGrid And Upper(Alltrim(Nvl(tip_iesire, ''))) = 'CASARE' ;
|
||||
Into Cursor crsCasare Readwrite
|
||||
If Reccount('crsCasare') = 0
|
||||
aMessagebox('Nu exista imobilizari casate pentru listare!', 48, 'Atentie')
|
||||
Use In crsCasare
|
||||
Select (m.lcSelect)
|
||||
Return
|
||||
Endif
|
||||
* ultima operatie de iesire (tip 4, id_tip_iesire 2) a fiecarui MF; ORA-01795: max 1000 id-uri per IN
|
||||
lcIn = ''
|
||||
lcChunk = ''
|
||||
lnChunk = 0
|
||||
Select crsCasare
|
||||
Scan
|
||||
lcChunk = m.lcChunk + Iif(Empty(m.lcChunk), '', ',') + Alltrim(Str(id_mf))
|
||||
lnChunk = m.lnChunk + 1
|
||||
If m.lnChunk = 1000
|
||||
lcIn = m.lcIn + Iif(Empty(m.lcIn), '', ' or ') + 'id_mf in (' + m.lcChunk + ')'
|
||||
lcChunk = ''
|
||||
lnChunk = 0
|
||||
Endif
|
||||
Endscan
|
||||
If !Empty(m.lcChunk)
|
||||
lcIn = m.lcIn + Iif(Empty(m.lcIn), '', ' or ') + 'id_mf in (' + m.lcChunk + ')'
|
||||
Endif
|
||||
lcSql = [select id_mf, nrdoc, datadoc, valoare, valoare_ramasa from (] + ;
|
||||
[select id_mf, nrdoc, datadoc, valoare, valoare_ramasa, ] + ;
|
||||
[row_number() over (partition by id_mf order by data_operatie desc, id_operatie_mf desc) rn ] + ;
|
||||
[from imob_voperatii_mf where id_tip_operatie = 4 and id_tip_iesire = 2 and (] + m.lcIn + [)) ] + ;
|
||||
[where rn = 1]
|
||||
llSucces = goExecutor.oExecuta(m.lcSql, 'crsOpCasare')
|
||||
If !m.llSucces
|
||||
Use In crsCasare
|
||||
Select (m.lcSelect)
|
||||
Return
|
||||
Endif
|
||||
Index On id_mf Tag id_mf
|
||||
Select c.id_mf, c.denumire, c.nr_inventar, ;
|
||||
Iif(Isnull(o.nrdoc), '', Alltrim(Str(o.nrdoc, 20))) As nrdoc, Nvl(o.datadoc, {}) As datadoc, ;
|
||||
'buc' As um, 1 As cantitate, ;
|
||||
Nvl(o.valoare, 0) As pret, Nvl(o.valoare, 0) As valoare, ;
|
||||
Nvl(o.valoare, 0) - Nvl(o.valoare_ramasa, 0) As amortizare ;
|
||||
From crsCasare c Left Join crsOpCasare o On c.id_mf = o.id_mf ;
|
||||
Into Cursor crspvcasare Readwrite
|
||||
Index On Alltrim(nrdoc) + '|' + Dtos(datadoc) + denumire Tag ord
|
||||
Set Order To ord
|
||||
* nr. crt. si totalurile PV sunt variabile de raport (reset pe grupul nrdoc+datadoc)
|
||||
Select crspvcasare
|
||||
goExport.export2frx([crspvcasare], 'pvcasare_mf', , , , , , .T.)
|
||||
Use In crsOpCasare
|
||||
Use In crspvcasare
|
||||
Use In crsCasare
|
||||
Select (m.lcSelect)
|
||||
Endproc && listare_pvcasare_mf
|
||||
|
||||
Reference in New Issue
Block a user