*--------------------------------------------------------------------------------------------------------------------------------------------------------
* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!!
*--------------------------------------------------------------------------------------------------------------------------------------------------------
*< FOXBIN2PRG: Version="1.21" SourceFile="onom_curs.vcx" CPID="1252" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
*
*
DEFINE CLASS actualizare_curs_bnr AS _custom OF "_baza.vcx"
*< CLASSDATA: Baseclass="custom" Timestamp="" Scale="Pixels" Uniqueid="" />
*
*m: citeste_curs
*m: citeste_curs_altesurse
*m: citeste_curs_bnr
*m: initializeaza
*m: scrie_curs_bnr
*p: ccursor
*p: clink
*p: ctempfile
*p: ddata
*p: ncurs
*p: nmultiplicator
*p: ntip && 1 - Se cauta cursul la adresa din This.cLink; 2 - Se cauta cursul folosind obiectul "curs".
*p: _memberdata && XML Metadata for customizable properties
*
*
ccursor = ccrsbnr
clink = https://www.bnr.ro/nbrfxrates.xml
ctempfile = C:\temp\temp.xml
ddata = {}
Height = 17
Name = "actualizare_curs_bnr"
ncurs = 0.0000
nmultiplicator = 1
ntip = 1
Width = 37
_memberdata =
*
PROCEDURE citeste_curs
Lparameters tdZiua,tcIsoValuta
This.nmultiplicator = 1
This.ncurs = 0.0000
If !Used(This.cCursor) Or tdZiua <> This.dData
This.initializeaza(tdZiua)
Endif
If !Empty(tcIsoValuta)
Select (This.cCursor)
Locate For Alltrim(Currency) = Alltrim(tcIsoValuta)
If Found()
This.nmultiplicator = Iif(Empty(Nvl(multiplier,0)),1,multiplier)
This.ncurs = Curs
Endif
Endif
ENDPROC
PROCEDURE citeste_curs_altesurse
Local loCurs,lnCurs,lcSql,lnSucces,loActualizareCurs,lnCurs,lcValuta,lnMultiplicator
If Empty(This.cCursor)
This.cCursor = [ccrsbnr]
Endif
If Used(This.cCursor)
Use In (This.cCursor)
Endif
lcSql = [{call pack_curs.citeste_valute()}]
lnSucces = goExecutor.oExecute(lcSql,This.cCursor)
If lnSucces < 0
amessagebox(goExecutor.cEroare,16,"Eroare")
Else
Wait "Se actualizeaza cursurile..." Window Nowait
loActualizareCurs = Createobject("curs",This.dData)
Select (This.cCursor)
Scan
lcValuta = Alltrim(Currency)
Wait Alltrim(Str(Recno())) + "/" + Alltrim(Str(Reccount())) + " - " + lcValuta + " ..." Window Nowait
lnCurs = loActualizareCurs.calccurs(This.dData,lcValuta)
lnMultiplicator = 1
If lnCurs <> 0
Do While lnCurs <> Round(lnCurs,4)
*!* daca cursurile au mai mult de 4 zecimale : inmultesc cu 100 pana raman doar cu 4 zecimale
lnMultiplicator = lnMultiplicator * 100
lnCurs = lnCurs * lnMultiplicator
Enddo
Endif
Replace multiplier With lnMultiplicator,Curs With lnCurs
Endscan
Delete For Curs = 0
Wait "Cursurile au fost actualizate!" Window Nowait
Endif
Release loCurs,lnCurs,lcSql,lnSucces,loActualizareCurs,lnCurs,lcValuta,lnMultiplicator
ENDPROC
PROCEDURE citeste_curs_bnr
Local loHTTP As 'winHTTP.winHTTPrequest.5.1'
Local lcData, lcFisier, lcServer
If Empty(This.cCursor)
This.cCursor = [ccrsbnr]
Endif
creeaza_backup_cursoare(This.cCursor) && modificare 03.06.2013
If Used(This.cCursor)
Use In (This.cCursor)
Endif
lcServer = This.cLink
loHTTP = Createobject('winHTTP.winHTTPrequest.5.1')
loHTTP.Open('GET', lcServer, .F.)
loHTTP.setRequestHeader("Content-Type", "application/xml;")
poLog.Log(m.lcServer)
loHTTP.Send()
If loHTTP.Status = 200
lcFisier = loHTTP.Responsebody
lcFisier = Strextract(lcFisier,[],[