Files
vfp_roaauto/COMUN/programe/oproceduri_curs.prg

126 lines
5.3 KiB
Plaintext

***************************************************************************************************************
**** Proceduri:
**** vizualizeaza_curs
**** citeste_cursuri_stoc
**** citeste_curs_zi
***************************************************************************************************************
****************************************** INCEPUT: vizualizeaza_curs *****************************************
Procedure vizualizeaza_curs
*!* modificare ROAFACTURARE v 2.0.46
Lparameters tdDataCurs
*!* modificare ROAFACTURARE v 2.0.46 ^
Private poCurs
Local lcSelect, lcFiltru, lcSchema, lcOrder, llAfiseaza, loFrmCurs
Store .F. To llAfiseaza
Store '' To poCurs
If Used('crscurs')
Use In crscurs
Endif
lcSchema = ['id_curs n(10),id_valuta n(10),data d,data2 d,nume_val c(100),curs n(20,gnPCurs),multiplicator N(10),id_valuta_iso N(10),iso_valuta C(3),curs_bnr n(20,4)']
lcSelect = ['select id_curs,id_valuta,data,data2,nume_val,curs,multiplicator,id_valuta_iso,iso_valuta,curs_bnr from ] + gcS + [.vcurs where 2=2']
lcOrder = [data]
*!* modificare ROAFACTURARE v 2.0.46
*!* lcFiltru = [1 = 2]
lcFiltru = Iif(Empty(tdDataCurs),[1 = 2],[data <= to_date('] + Dtoc(tdDataCurs,1) + [','YYYYMMDD') ] + ;
[and data2 >= to_date('] + Dtoc(tdDataCurs,1) + [','YYYYMMDD') ])
*!* modificare ROAFACTURARE v 2.0.46 ^
llAfiseaza = .F.
gencursor('poCurs', 'crscurs', lcSelect, lcFiltru, lcSchema, lcOrder, llAfiseaza)
poCurs.ca_baza1.afisare()
*!* modificare ROAFACTURARE v 2.0.46
*!* loFrmCurs = Createobject("frm_curs")
loFrmCurs = Createobject("frm_curs",tdDataCurs)
*!* modificare ROAFACTURARE v 2.0.46 ^
loFrmCurs.Show(1)
Release loFrmCurs, poCurs
If Used('crscurs')
Use In crscurs
Endif
Endproc
****************************************** SFARSIT: vizualizeaza_curs *****************************************
***************************************** INCEPUT: citeste_cursuri_stoc ****************************************
Function citeste_cursuri_stoc
Lparameters tdData,tnIdValuta
Private pdDataCurs,pnIdValuta
Local lcCursor, llContinuare,lcListaValute
pdDataCurs = tdData
pnIdValuta = tnIdValuta
lcCursor = [crscursuri]
llVerificare = .T.
llContinuare = .T.
lnIncercari = 1
Do While llVerificare
If llContinuare
If Used(lcCursor)
Use In (lcCursor)
Endif
lcSql = [select a.id_valuta, b.curs, b.multiplicator, c.nume_val, c.moneda_nationala from ] + ;
[(select distinct id_valuta from ] + gcS + [.stoc where an = ?gnAn and luna = ?gnLuna ] + gcCondSucursala + ;
[and id_gestiune in (select distinct b.id_gestiune from ] + gcS + [.gest_coresp_util_grupe a ] + ;
[left join ] + gcS + [.gest_coresp_grupe_gestiuni b on a.id_grupe = b.id_grupe ] + ;
[left join ] + gcS + [.nom_gestiuni c on b.id_gestiune = c.id_gestiune ] + ;
[where a.id_util = ?gnIdUtil and a.sters = 0 and b.sters = 0 and c.nr_pag ] + IIF(gnTipGest=6,[=],[<>]) + [ 6) ] + ;
[union select ?pnIdValuta as id_valuta from dual) a ] + ;
[left join ] + gcS + [.curs b on a.id_valuta = b.id_valuta and b.data <= ?pdDataCurs and b.data2 >= ?pdDataCurs and b.sters = 0 ] + ;
[left join ] + gcS +[.nom_valute c on a.id_valuta = c.id_valuta ] + ;
[where c.moneda_nationala = 0 and a.id_valuta is not null]
lnSucces = goExecutor.oExecute(lcSql,lcCursor)
If lnSucces < 0
amessagebox(goExecutor.oPrelucrareEroare(),16,"Eroare")
llVerificare = .F.
llContinuare = .F.
Else
If Reccount(lcCursor) > 0
lcListaValute = []
Select (lcCursor)
Scan For Isnull(Curs)
lcListaValute = lcListaValute + Alltrim(Upper(nume_val)) + [,]
Endscan
If !Empty(lcListaValute)
If Used(lcCursor)
Use In (lcCursor)
Endif
If lnIncercari >= 2 And aMessagebox("Doriti sa continuati introducerea datelor?",4+32,"Confirmare continuare")==7
llVerificare = .F.
llContinuare = .F.
Else
lcListaValute = Substr(lcListaValute,1,Len(lcListaValute)-1) + [ !]
amessagebox("Pentru data de "+Dtoc(pdDataCurs)+" nu exista cursul pentru " + ;
IIF(Getwordcount(lcListaValute,[,])=1,"valuta ","valutele ")+lcListaValute,48,"Atentie")
vizualizeaza_curs()
Endif
Else
llVerificare = .F.
Endif
Else
amessagebox("Cautarea cursurilor pentru ziua de "+Dtoc(pdDataCurs)+" nu a intors rezultate!",16,"Eroare")
llVerificare = .F.
llContinuare = .F.
Endif
Endif
Endif
lnIncercari = lnIncercari + 1
Enddo
Return llContinuare
Endfunc && citeste_cursuri_stoc
***************************************** SFARSIT: citeste_cursuri_stoc ****************************************
***************************************** INCEPUT: citeste_curs_zi ****************************************
Procedure citeste_cursuri_zi
Lparameters tdDataCurs
Local lcCursor
lcCursor = [crscursuri]
lcSql = [select nume_val,curs,id_valuta,multiplicator from ] + gcS + [.vcurs where data <= to_date('] + Dtoc(tdDataCurs,1) + [','YYYYMMDD') ] + ;
[and data2 >= to_date('] + Dtoc(tdDataCurs,1) + [','YYYYMMDD') order by nume_val]
lnSucces = goExecutor.oExecute(lcSql,lcCursor)
If lnSucces < 0
amessagebox(goExecutor.oPrelucrareEroare(),16,"Eroare")
EndIf
Release lcCursor
Endproc && citeste_curs_zi
***************************************** SFARSIT: citeste_curs_zi ****************************************