Files
comun/clase/onom_curs.vc2

1719 lines
52 KiB
Plaintext

*--------------------------------------------------------------------------------------------------------------------------------------------------------
* (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="" />
*<DefinedPropArrayMethod>
*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
*</DefinedPropArrayMethod>
*<PropValue>
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 = <VFPData>
<memberdata name="ctempfile" display="cTempFile"/>
<memberdata name="clink" display="cLink"/>
<memberdata name="ccursor" display="cCursor"/>
<memberdata name="ddata" display="dData"/>
<memberdata name="ntip" display="nTip"/>
</VFPData>
*</PropValue>
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,[</OrigCurrency>],[</Body>])
lcData = Strextract(lcFisier,[date="],["])
lcFisier= Strtran(lcFisier,[date="]+lcData+["],[])
lcFisier= Strtran(Strtran(lcFisier,[">],[" curs="]),[</Rate>],[" />])
Xmltocursor(lcFisier,This.cCursor)
This.dData = Ttod(Ctot(lcData+[T000000]))+1
*!* modificare 03.06.2013
sterge_backup_cursoare(This.cCursor)
Else
repune_backup_cursoare(This.cCursor)
Endif
*!* modificare 03.06.2013 ^
Release loUpdate,loIp,loUrl,lcData,lnSize,lcFisier,lcData
ENDPROC
PROCEDURE Destroy
If Used(This.cCursor)
Use In (This.cCursor)
Endif
ENDPROC
PROCEDURE Init
Lparameters tnTip
This.nTip = Iif(Empty(tnTip),1,tnTip)
If !Directory(Justpath(This.cTempFile))
This.cTempFile = gcAppPath + Justfname(This.cTempFile)
Endif
ENDPROC
PROCEDURE initializeaza
Lparameters tdZiua
Private pdData
This.dData = tdZiua
pdData = This.dData
lcSql = [{call pack_curs.citeste_cotatii_curs(?pdData)}]
lnSucces = goExecutor.oExecute(lcSql,This.cCursor)
If lnSucces < 0
amessagebox(goExecutor.cEroare,16,"Eroare")
Else
If Reccount(This.cCursor)=0
ltDataOra = get_Ora()
Do Case
Case This.nTip = 1
Do Case
Case (This.dData = Ttod(ltDataOra) And Hour(ltDataOra) <13) Or (This.dData = Ttod(ltDataOra) + 1 And Hour(ltDataOra) >= 13)
This.citeste_curs_bnr()
Case This.dData < Ttod(ltDataOra) Or This.dData = Ttod(ltDataOra) And Hour(ltDataOra) >= 13
If amessagebox("Nu poate fi preluat automat cursul BNR. Doriti sa accesati pagina BNR?",4+32,"Confirmare") = 6
goUrl("http://www.bnr.ro") && din wwutils.prg
Endif
Otherwise
amessagebox("Nu exista cursul BNR pentru data specificata!",48,"Atentie")
Endcase
Case This.nTip = 2
If This.dData <= Ttod(ltDataOra)
This.citeste_curs_altesurse()
Else
amessagebox("Nu exista cursul BNR pentru data specificata!",48,"Atentie")
Endif
Case This.nTip = 3
Do Case
Case (This.dData = Ttod(ltDataOra) And Hour(ltDataOra) <13) Or (This.dData = Ttod(ltDataOra) + 1 And Hour(ltDataOra) >= 13)
This.citeste_curs_bnr()
Case This.dData < Ttod(ltDataOra) Or This.dData = Ttod(ltDataOra) And Hour(ltDataOra) >= 13
This.citeste_curs_altesurse()
Otherwise
amessagebox("Nu exista cursul BNR pentru data specificata!",48,"Atentie")
Endcase
Otherwise
If amessagebox("Doriti sa accesati pagina BNR?",4+32,"Confirmare") = 6
goUrl("http://www.bnr.ro") && din wwutils.prg
Endif
Endcase
If Reccount(This.cCursor)>0
This.scrie_curs_bnr()
Endif
Endif
Endif
ENDPROC
PROCEDURE scrie_curs_bnr
Private pdData,pcSirCursuri
pdData = This.dData
pcSirCursuri = []
Select (This.cCursor)
Scan
pcSirCursuri = pcSirCursuri + Alltrim(Currency) + [;] + Alltrim(Str(Iif(Empty(Nvl(multiplier,0)),1,multiplier))) + [;] + ;
ALLTRIM(Str(Curs,14,gnPCurs)) + [|]
Endscan
If Dow(pdData,2) = 6
lcSql = [begin pack_curs.scrie_cotatii_curs(?pdData,?pcSirCursuri,?gnIdUtil); ] + ;
[pack_curs.scrie_cotatii_curs(?pdData+1,?pcSirCursuri,?gnIdUtil);] + ;
[pack_curs.scrie_cotatii_curs(?pdData+2,?pcSirCursuri,?gnIdUtil); end;]
Else
lcSql = [begin pack_curs.scrie_cotatii_curs(?pdData,?pcSirCursuri,?gnIdUtil); end;]
Endif
lnSucces = goExecutor.oExecute(lcSql)
If lnSucces < 0
amessagebox(goExecutor.cEroare,16,"Eroare")
Endif
Release pdData,pcSirCursuri
ENDPROC
ENDDEFINE
DEFINE CLASS curs AS custom
*< CLASSDATA: Baseclass="custom" Timestamp="" Scale="Pixels" Uniqueid="" />
*<DefinedPropArrayMethod>
*m: calccurs && lnCurs = loCurs.calccurs(DATE(),'EUR')
*m: readurl
*m: retudata
*p: cbanca && BNR/BCE
*p: csite && site-ul pentru cursul valutar (ex:INFOVALUTAR)
*p: cvaluta && Valuta
*p: ddata && Data cursului valutar
*</DefinedPropArrayMethod>
*<PropValue>
cbanca = BNR
csite = INFOVALUTAR
cvaluta = EUR
ddata = {}
Height = 17
Name = "curs"
Width = 17
*</PropValue>
PROCEDURE calccurs && lnCurs = loCurs.calccurs(DATE(),'EUR')
Lparameters tdData, tcValuta as , tcBanca, tcSite
If Pcount() >= 1
This.dData = m.tdData
Endif
If Pcount() >= 2
This.cValuta = Upper(Alltrim(m.tcValuta))
Endif
If Pcount() >= 3
This.cBanca = Upper(Alltrim(m.tcBanca))
ENDIF
If Pcount() >= 4
This.cSite = Upper(Alltrim(m.tcSite))
Endif
Local lcUrl, lcBanca, ldData, lcSite, lnCurs, oldPoint, oldDecimals
lnCurs = 0
lcSite = Upper(This.cSite)
If Empty(m.lcSite)
lcSite = 'INFOVALUTAR'
Endif
ldData = Iif(Empty(Nvl(This.dData, {})) Or Type('this.dData') <> 'D', Date(), This.dData)
lcBanca = Iif(!Inlist(Upper(This.cBanca), 'BNR', 'BCE'), 'BNR', Upper(This.cBanca))
lcValuta = ALLTRIM(UPPER(this.cValuta))
If lcSite = 'INFOVALUTAR'
lcUrl="http://www.infovalutar.ro/" + This.retudata(m.ldData) + [/] + m.lcValuta + [.] + m.lcBanca
lcWebContent = This.ReadURL(m.lcUrl)
oldPoint = Set("Point")
oldDecimals = SET("Decimals")
Set Point To [.]
SET DECIMALS TO 4
lnCurs=Val(lcWebContent)
Set Point To &oldPoint
SET DECIMALS TO &oldDecimals
If Vartype(lnCurs) <> [N]
lnCurs = 0
Endif
ENDIF
Return lnCurs
ENDPROC
PROCEDURE Init
Lparameters tdData, tcValuta, tcBanca, tcSite
If Pcount() >= 1
This.dData = m.tdData
Endif
If Pcount() >= 2
This.cValuta = Upper(Alltrim(m.tcValuta))
Endif
If Pcount() >= 3
This.cBanca = Upper(Alltrim(m.tcBanca))
Endif
If Pcount() >= 4
This.cSite = Upper(Alltrim(m.tcSite))
Endif
ENDPROC
PROCEDURE readurl
* readurl.prg 06-Mar-98
* 06-Mar-98 pulled from Q174524 on March 98 Technet CD
* 06-Mar-98 bug fixed about the length of the sReadBuffer
*Any Internet or intranet URL can be passed as a parameter. Microsoft.com
*was chosen for this example.
*Note that Microsoft Internet Explorer must be installed on the computer.
* passed: URLName, in the form "http://www.microsoft.com"
*
* returns: the content of the URL
*
* usage:
*
* uWebContent = ReadURL( "http://www.microsoft.com" )
* uWebContent = ReadURL( "http://www.SomeSite.com/SomeJPG.jpg" )
* This next one provides feedback on the download every 4092 bytes:
* uWebContent = ReadURL( "http://www.SomeSite.com/SomeBigFile.exe",
* "GiveFeedback(lcBytesRead,llOK)", 4092 )
*
* notes:
* 1 - IE does not need to be running to use this, but must be installed
LPARAMETERS pcUrlName, pcOptFeedback, pnOptBuffSize, pcOptOutputFile
* These parameters are No good, pcOptOutputBuffer, pcOptOutputWhole
* because once they're passed as parameters, the original names get hidden, so the
* feedback function can't reference them that way, anyway.
*May 27, 03: Loader v1.01: Added parameter "pcOptOutputFile" to be able to download
* files bigger than 16MB
DECLARE INTEGER InternetOpen IN wininet.DLL STRING sAgent, ;
INTEGER lAccessType, STRING sProxyName, ;
STRING sProxyBypass, INTEGER lFlags
DECLARE INTEGER InternetOpenUrl IN wininet.DLL ;
INTEGER hInternetSession, STRING sUrl, STRING sHeaders, ;
INTEGER lHeadersLength, INTEGER lFlags, INTEGER lContext
DECLARE INTEGER InternetReadFile IN wininet.DLL INTEGER hfile, ;
STRING @sBuffer, INTEGER lNumberofBytesToRead, INTEGER @lBytesRead
DECLARE short InternetCloseHandle IN wininet.DLL INTEGER hInst
#DEFINE INTERNET_OPEN_TYPE_PRECONFIG 0
#DEFINE INTERNET_OPEN_TYPE_DIRECT 1
#DEFINE INTERNET_OPEN_TYPE_PROXY 3
#DEFINE SYNCHRONOUS 0
#DEFINE INTERNET_FLAG_RELOAD 2147483648
LOCAL lcAgent, lhInternetSession, lhUrlFile, llOk, lnOk, lcRetVal, lcReadBuffer, lnBytesRead, laDr[1], llCancel
if vartype(pcOptFeedback)='C'
* if we're given a feedback function, make sure it has both parentheses (looks like a function)
if not ( at('(',pcOptFeedback)>0 and (at('(',pcOptFeedback) < at(')',pcOptFeedback) ) )
pcOptFeedback = .f.
endif
endif
* what application is using Internet services?
lcAgent = "VFP"
lhInternetSession = InternetOpen( lcAgent, INTERNET_OPEN_TYPE_PRECONFIG, '', '', SYNCHRONOUS )
IF lhInternetSession = 0
WAIT WINDOW "Internet session cannot be established" TIME 2
RETURN .null.
ENDIF
lhUrlFile = InternetOpenUrl( lhInternetSession, pcUrlName, '', 0, INTERNET_FLAG_RELOAD, 0 )
IF lhUrlFile = 0
* URL cannot be opened
RETURN .null.
ENDIF
lcRetVal = ""
llOk = .t.
llCancel = .F.
lnTotalBytesRead = 0
lnBytesRead = 0
lcReadBuffer = ''
if VarType(pcOptFeedback)='C' && Call the feedback at the zero mark
=&pcOptFeedback
endif
* Clear output file, if it exists.
if type('pcOptOutputFile')='C' and ADIR(laDr,pcOptOutputFile)>0
DELETE FILE (pcOptOutputFile)
endif
DO WHILE llOK and NOT llCancel
* set aside a big buffer
lcReadBuffer = SPACE(iif(VarType(pnOptBuffSize)='N',pnOptBuffSize,32767))
lnBytesRead = 0
lnOK = InternetReadFile( lhUrlFile, @lcReadBuffer, LEN(lcReadBuffer), @lnBytesRead)
lnTotalBytesRead = lnTotalBytesRead + lnBytesRead
if ( lnBytesRead > 0 )
if type('pcOptOutputFile')='C'
StrToFile(left(lcReadBuffer,lnBytesRead),pcOptOutputFile,.T.) && Add to file.
else
lcRetVal = lcRetVal + left( lcReadBuffer, lnBytesRead )
endif
endif
*!* if vartype(pcOptOutputBuffer)='C'
*!* pcOptOutputBuffer = left( lcReadBuffer, lnBytesRead )
*!* endif
*!* if vartype(pcOptOutputWhole)='C'
*!* pcOptOutputWhole = lcRetVal
*!* endif
* error trap - either a read failure or read past eof()
llOk = ( lnOK = 1 ) and ( lnBytesRead > 0 )
if vartype(pcOptFeedback)='C'
if not &pcOptFeedback
llCancel = .T.
endif
endif
ENDDO
* close all the handles we opened
InternetCloseHandle( lhUrlFile )
InternetCloseHandle( lhInternetSession )
* IF saving to file, return Success status.
if type('pcOptOutputFile')='C'
RETURN NOT llCancel
endif
* return the URL contents
RETURN lcRetVal
ENDPROC
PROCEDURE retudata
Parameters dData
oldCentury=Set("Century")
oldDataFormat=Set("Date")
oldDateMark=Set("Mark")
Set Century On
Set Date YMD
Set Mark To [/]
lcDate=Dtoc(dData)
Set Century &oldCentury
Set Date &oldDataFormat
Set Mark To &oldDateMark
Return lcDate
ENDPROC
ENDDEFINE
DEFINE CLASS cus_odata_curs AS _cusodatabase OF "_cus_odata_base.vcx"
*< CLASSDATA: Baseclass="custom" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
Name = "cus_odata_curs"
*</PropValue>
PROCEDURE make_sql
Lparameters toRec,tnId
lcActiune = Alltrim(This.cActiune)
If Inlist(lcActiune, "UPDATE",'INSERT') And Type('toRec') != "O"
Return .F.
Endif
If Inlist(lcActiune, "UPDATE",'DELETE') And Type('tnId') != "N"
Return .F.
Endif
If Inlist(lcActiune, "UPDATE",'DELETE')
lcId = Alltrim(Str(tnId))
*!* lcnom = gcS + ".dev_masiniclienti"
*!* lcamp = "id_masiniclient"
*!* lclook = gcS + ".dev_vordl"
*!* lclookid = "id_masiniclient"
Endif
If Inlist(lcActiune, "UPDATE",'INSERT')
lcData = Dtos(toRec.Data)
lcData2 = Dtos(toRec.data2)
lcIdValuta = Nvl(Alltrim(Str(toRec.id_valuta)),"")
lcCurs = Alltrim(Str(toRec.Curs,14,gnPCurs))
lcMultiplicator = ALLTRIM(STR(toRec.multiplicator,10,0))
Endif
Do Case
Case lcActiune = "INSERT"
lcSql = [begin pack_curs.adauga_curs(to_date('] + lcData + [','YYYYMMDD'),] + ;
[to_date('] + lcData2 +[','YYYYMMDD'),] + lcIdValuta + [,] + ;
lcMultiplicator + [,] + lcCurs + [,] + Alltrim(Str(gnIdUtil)) + [); end;]
Case lcActiune = "UPDATE"
lcSql = [begin pack_curs.modifica_curs(] + lcId + [,to_date('] + lcData + [','YYYYMMDD'),] + ;
[to_date('] + lcData2 +[','YYYYMMDD'),] + lcIdValuta + [,] + lcMultiplicator + [,] + ;
lcCurs + [,] + Alltrim(Str(gnIdUtil)) + [); end;]
Case lcActiune = "DELETE"
lcSql = [begin pack_curs.sterge_curs(] + lcId + [,] + Alltrim(Str(gnIdUtil)) + [); end;]
Endcase
This.csql = lcSql
ENDPROC
ENDDEFINE
DEFINE CLASS frm_curs AS _frmbase OF "_frm_base.vcx"
*< CLASSDATA: Baseclass="form" Timestamp="" Scale="Pixels" Uniqueid="" />
*-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder
*< OBJECTDATA: ObjPath="But_nou1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="But_sterge1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grd_curs" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grd_curs.cData.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grd_curs.cData.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grd_curs.cData2.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grd_curs.cData2.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grd_curs.cNume_val.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grd_curs.cNume_val.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grd_curs.cCurs.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grd_curs.cCurs.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grd_curs.cMultiplicator.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grd_curs.cMultiplicator.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grd_curs.cIso_valuta.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grd_curs.cIso_valuta.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="But_modifica1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="ck_data" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Ck_nume_val" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="ck_data2" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="ck_zi_curs" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Cmd_cauta1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="tx_zi_curs" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Cmd_reset1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Gridextra1" UniqueID="" Timestamp="" />
*<DefinedPropArrayMethod>
*p: ddatacurs
*</DefinedPropArrayMethod>
*<PropValue>
BorderStyle = 3
cgridsortlist = grd_curs
ddatacurs = {}
DoCreate = .T.
Height = 590
Name = "frm_curs"
Width = 544
_shape1.Anchor = 10
_shape1.Height = 29
_shape1.Left = 0
_shape1.Name = "_shape1"
_shape1.Top = 0
_shape1.Width = 557
_shape1.ZOrderSet = 2
_shape2.Anchor = 8
_shape2.Height = 29
_shape2.Left = 420
_shape2.Name = "_shape2"
_shape2.Top = -1
_shape2.Width = 129
_shape2.ZOrderSet = 3
Lb_titlu_alb_b121.Caption = "CURS VALUTAR"
Lb_titlu_alb_b121.FontBold = .T.
Lb_titlu_alb_b121.Name = "Lb_titlu_alb_b121"
Lb_titlu_alb_b121.TabIndex = 10
Lb_titlu_alb_b121.ZOrderSet = 4
BUT_TERMIN1.Anchor = 8
BUT_TERMIN1.Left = 514
BUT_TERMIN1.Name = "BUT_TERMIN1"
BUT_TERMIN1.TabIndex = 8
BUT_TERMIN1.Top = 0
BUT_TERMIN1.ZOrderSet = 8
Gridsort1.Name = "Gridsort1"
*</PropValue>
ADD OBJECT 'But_modifica1' AS but_modifica WITH ;
Anchor = 8, ;
Left = 453, ;
Name = "But_modifica1", ;
TabIndex = 13, ;
Top = 0
*< END OBJECT: ClassLib="cmd_butoane.vcx" BaseClass="commandbutton" />
ADD OBJECT 'But_nou1' AS but_nou WITH ;
Anchor = 8, ;
Left = 422, ;
Name = "But_nou1", ;
TabIndex = 11, ;
Top = 0
*< END OBJECT: ClassLib="cmd_butoane.vcx" BaseClass="commandbutton" />
ADD OBJECT 'But_sterge1' AS but_sterge WITH ;
Anchor = 8, ;
Left = 484, ;
Name = "But_sterge1", ;
TabIndex = 12, ;
Top = 0
*< END OBJECT: ClassLib="cmd_butoane.vcx" BaseClass="commandbutton" />
ADD OBJECT 'ck_data' AS ck_filtru_numar WITH ;
Alignment = 0, ;
camp_nume = data, ;
Caption = "Data inceput", ;
Left = 23, ;
Name = "ck_data", ;
TabIndex = 1, ;
tip = D, ;
Top = 38
*< END OBJECT: ClassLib="caut_ora.vcx" BaseClass="checkbox" />
ADD OBJECT 'ck_data2' AS ck_filtru_numar WITH ;
Alignment = 0, ;
camp_nume = data2, ;
Caption = "Data sfarsit", ;
Left = 23, ;
Name = "ck_data2", ;
TabIndex = 2, ;
tip = D, ;
Top = 54
*< END OBJECT: ClassLib="caut_ora.vcx" BaseClass="checkbox" />
ADD OBJECT 'Ck_nume_val' AS ck_filtru_text WITH ;
Alignment = 0, ;
camp_nume = nume_val, ;
Caption = "Valuta", ;
Left = 23, ;
Name = "Ck_nume_val", ;
TabIndex = 3, ;
Top = 70, ;
Width = 56, ;
ZOrderSet = 11
*< END OBJECT: ClassLib="caut_ora.vcx" BaseClass="checkbox" />
ADD OBJECT 'ck_zi_curs' AS _checkbox WITH ;
Alignment = 0, ;
Caption = "Zi curs", ;
Left = 130, ;
Name = "ck_zi_curs", ;
TabIndex = 4, ;
Top = 39
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="checkbox" />
ADD OBJECT 'Cmd_cauta1' AS cmd_cauta WITH ;
Anchor = 8, ;
Left = 369, ;
Name = "Cmd_cauta1", ;
TabIndex = 6, ;
Top = 45, ;
ZOrderSet = 14
*< END OBJECT: ClassLib="cmd_butoane.vcx" BaseClass="commandbutton" />
ADD OBJECT 'Cmd_reset1' AS cmd_reset WITH ;
Anchor = 8, ;
Left = 456, ;
Name = "Cmd_reset1", ;
TabIndex = 9, ;
Top = 45, ;
ZOrderSet = 15
*< END OBJECT: ClassLib="cmd_butoane.vcx" BaseClass="commandbutton" />
ADD OBJECT 'grd_curs' AS _grdrow WITH ;
Anchor = 15, ;
ColumnCount = 6, ;
DeleteMark = .F., ;
Height = 480, ;
Left = 15, ;
Name = "grd_curs", ;
Panel = 1, ;
ReadOnly = .T., ;
RecordSource = "crscurs", ;
RowHeight = 19, ;
TabIndex = 7, ;
Top = 96, ;
Width = 525, ;
ZOrderSet = 7, ;
Column1.ControlSource = "data", ;
Column1.FontName = "Arial", ;
Column1.FontSize = 10, ;
Column1.Name = "cData", ;
Column1.ReadOnly = .T., ;
Column1.Visible = .T., ;
Column1.Width = 77, ;
Column2.ControlSource = "data2", ;
Column2.FontName = "Arial", ;
Column2.FontSize = 10, ;
Column2.Name = "cData2", ;
Column2.ReadOnly = .T., ;
Column2.Visible = .T., ;
Column2.Width = 77, ;
Column3.ColumnOrder = 3, ;
Column3.ControlSource = "nume_val", ;
Column3.FontName = "Arial", ;
Column3.FontSize = 10, ;
Column3.Name = "cNume_val", ;
Column3.ReadOnly = .T., ;
Column3.Visible = .T., ;
Column3.Width = 90, ;
Column4.ColumnOrder = 6, ;
Column4.ControlSource = "curs", ;
Column4.FontName = "Arial", ;
Column4.FontSize = 10, ;
Column4.InputMask = (get_mask(14,gnPCurs)), ;
Column4.Name = "cCurs", ;
Column4.ReadOnly = .T., ;
Column4.Visible = .T., ;
Column4.Width = 99, ;
Column5.ColumnOrder = 4, ;
Column5.ControlSource = "multiplicator", ;
Column5.FontName = "Arial", ;
Column5.FontSize = 10, ;
Column5.InputMask = (get_mask(10,0)), ;
Column5.Name = "cMultiplicator", ;
Column5.ReadOnly = .T., ;
Column5.Width = 73, ;
Column6.ColumnOrder = 5, ;
Column6.ControlSource = "iso_valuta", ;
Column6.FontName = "Arial", ;
Column6.FontSize = 10, ;
Column6.Name = "cIso_valuta", ;
Column6.ReadOnly = .T., ;
Column6.Width = 59
*< END OBJECT: ClassLib="_grd_base.vcx" BaseClass="grid" />
ADD OBJECT 'grd_curs.cCurs.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Curs", ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'grd_curs.cCurs.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
FontName = "Arial", ;
FontSize = 10, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1", ;
ReadOnly = .T., ;
SelectedBackColor = 100,185,255, ;
Visible = .T.
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'grd_curs.cData.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Data inceput", ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'grd_curs.cData.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
FontName = "Arial", ;
FontSize = 10, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1", ;
ReadOnly = .T., ;
SelectedBackColor = 100,185,255, ;
Visible = .T.
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'grd_curs.cData2.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Data sfarsit", ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'grd_curs.cData2.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
FontName = "Arial", ;
FontSize = 10, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1", ;
ReadOnly = .T., ;
SelectedBackColor = 100,185,255, ;
Visible = .T.
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'grd_curs.cIso_valuta.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Simbol", ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'grd_curs.cIso_valuta.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
FontName = "Arial", ;
FontSize = 10, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1", ;
SelectedBackColor = 100,185,255
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'grd_curs.cMultiplicator.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Multiplicator", ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'grd_curs.cMultiplicator.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
FontName = "Arial", ;
FontSize = 10, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1", ;
SelectedBackColor = 100,185,255
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'grd_curs.cNume_val.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Valuta", ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'grd_curs.cNume_val.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
FontName = "Arial", ;
FontSize = 10, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1", ;
ReadOnly = .T., ;
SelectedBackColor = 100,185,255, ;
Visible = .T.
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'Gridextra1' AS gridextra WITH ;
gridexpression = Thisform.grd_curs, ;
Left = 262, ;
Name = "Gridextra1", ;
Top = 60
*< END OBJECT: ClassLib="..\utile\gridextras\gridextras.vcx" BaseClass="custom" />
ADD OBJECT 'tx_zi_curs' AS _textbox WITH ;
Alignment = 3, ;
Height = 23, ;
Left = 130, ;
Name = "tx_zi_curs", ;
ReadOnly = .T., ;
TabIndex = 5, ;
Top = 57, ;
Value = {}, ;
Width = 84
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="textbox" />
PROCEDURE actualizeaza_grid1
Lparameters tcFiltru
Local lcFiltru
lcFiltru = tcFiltru
If Empty(lcFiltru)
lcFiltru = pocurs.ca_baza1.cfiltru
Endif
save_grid_comment(This.grd_curs)
pocurs.ca_baza1.cfiltru = lcFiltru
pocurs.ca_baza1.afisare()
restore_grid_comment(This.grd_curs)
ENDPROC
PROCEDURE do_adauga
Local lcRaport
x= xmenu('\<O valuta;\<Toate valutele din nomenclator')
If x > 0
Private pniesire
pniesire=0
*!* modificare ROAFACTURARE v 2.0.46
*!* ldData = Ttod(get_ora())
If Empty(Thisform.ddatacurs)
ldData = Ttod(get_ora())
Else
ldData = Thisform.ddatacurs
Endif
*!* modificare ROAFACTURARE v 2.0.46 ^
If x = 1
Select crscurs
Scatter Name loRec Blank
loRec.Data = ldData
loRec.data2 = ldData
Do Adauga_Modifica_Inregistrare With "curs",loRec,,"INSERT"
Else
lcCursor = [crsCursNou]
If Used(lcCursor)
Use In (lcCursor)
Endif
lcSql = [select id_valuta,nume_val,0.0000 as curs,0.0000 as curs_bnr,1 as multiplicator,nume_val2 as iso_valuta ] + ;
[ from ] + gcS + [.vnom_valute where moneda_nationala = 0 and inactiv = 0 order by nume_val]
lnSucces = goExecutor.oExecute(lcSql,lcCursor)
If lnSucces < 0
amessagebox(goExecutor.oPrelucrareEroare(),16,"Eroare")
Else
Private ofrmcursnou
ofrmcursnou = Createobject('frm_curs_nou_multiplu',ldData)
ofrmcursnou.Show(1)
Release ofrmcursnou
Endif
If Used(lcCursor)
Use In (lcCursor)
Endif
Endif
If pniesire=1
This.actualizeaza_grid1()
Endif
Endif
Thisform.grd_curs.SetFocus()
ENDPROC
PROCEDURE do_cauta
Local lcFiltru
Store [] To lcFiltru
If Thisform.ck_data.Value = 1
lcFiltru = lcFiltru + Thisform.ck_data.filtru
Endif
If Thisform.ck_data2.Value = 1
lcFiltru = lcFiltru + Thisform.ck_data2.filtru
Endif
If Thisform.ck_nume_val.Value = 1
lcFiltru = lcFiltru + Thisform.ck_nume_val.filtru
Endif
If Thisform.ck_zi_curs.Value = 1
lcData = Dtoc(Thisform.tx_zi_curs.Value,1)
lcFiltru = lcFiltru + [ and data <= to_date('] + lcData + [','YYYYMMDD') ] + ;
[and data2 >= to_date('] + lcData + [','YYYYMMDD') ]
Endif
If !Empty(lcFiltru)
lcFiltru=Substr(lcFiltru,6)
Else
lcFiltru=[2=2]
Endif
Thisform.actualizeaza_grid1(lcFiltru)
If Reccount('crscurs')=0
amessagebox("Cautarea nu a intors rezultate!",64,"Info cautare")
Thisform.ck_data.SetFocus()
Else
Thisform.grd_curs.SetFocus()
Endif
ENDPROC
PROCEDURE do_modifica
If Reccount('crscurs')>0
Private pniesire
pniesire=0
Select crscurs
Scatter Name loRec
Do Adauga_Modifica_Inregistrare With "curs",loRec,loRec.id_curs,"UPDATE"
If pniesire=1
This.actualizeaza_grid1()
Endif
Thisform.grd_curs.SetFocus()
Else
amessagebox("Nu puteti face modificari,deoarece in aceasta selectie nu exista inregistrari!",0+48,"Atentie")
Thisform.ck_data.SetFocus()
Endif
ENDPROC
PROCEDURE do_reset
Thisform.ck_data.Value = 0
Thisform.ck_data2.Value = 0
Thisform.ck_nume_val.Value = 0
Thisform.ck_zi_curs.Value = 0
Thisform.ck_data.SetFocus()
Thisform.Refresh
ENDPROC
PROCEDURE do_sterge
If Reccount('crscurs')>0
Select crscurs
Scatter Name loRec
Do STERGE_INREGISTRARE With "curs",loRec.id_curs
This.actualizeaza_grid1()
Else
amessagebox("Nu puteti sterge,deoarece in aceasta selectie nu exista inregistrari!",0+48,"Atentie")
Endif
ENDPROC
PROCEDURE Init
*!* modificare ROAFACTURARE v 2.0.46
Lparameters tdDataCurs
DoDefault()
If !Empty(tdDataCurs)
Thisform.ddatacurs = tdDataCurs
Thisform.ck_zi_curs.Value = 1
Thisform.tx_zi_curs.Value = tdDataCurs
Endif
*!* modificare ROAFACTURARE v 2.0.46 ^
this.gridextra1.setup()
ENDPROC
PROCEDURE ck_zi_curs.InteractiveChange
If This.Value = 1
Thisform.tx_zi_curs.ReadOnly = .F.
Thisform.tx_zi_curs.SetFocus()
Else
Thisform.tx_zi_curs.ReadOnly = .T.
Thisform.tx_zi_curs.Value = {}
Endif
ENDPROC
PROCEDURE ck_zi_curs.ProgrammaticChange
This.InteractiveChange()
ENDPROC
ENDDEFINE
DEFINE CLASS frm_curs_nou AS _frmbase OF "_frm_base.vcx"
*< CLASSDATA: Baseclass="form" Timestamp="" Scale="Pixels" Uniqueid="" />
*-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder
*< OBJECTDATA: ObjPath="clb_data" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="clb_data2" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="But_renunt1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Cus_odata_curs1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Clb_tx_curs" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Ct_clb_nume_val" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Clb_tx_multiplicator" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Clb_tx_curs_bnr" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="BUT_MODIPARAM1" UniqueID="" Timestamp="" />
*<DefinedPropArrayMethod>
*m: actualizeaza_curs_bnr
*m: do_cauta_marca
*m: do_cauta_valuta
*p: nid
*p: oactualizare
*p: orec
*</DefinedPropArrayMethod>
*<PropValue>
DoCreate = .T.
Height = 240
Name = "frm_curs_nou"
oactualizare =
Width = 374
_shape1.Name = "_shape1"
_shape2.Height = 29
_shape2.Left = 312
_shape2.Name = "_shape2"
_shape2.Top = 0
_shape2.Width = 64
Lb_titlu_alb_b121.Caption = "CURS VALUTAR"
Lb_titlu_alb_b121.FontBold = .T.
Lb_titlu_alb_b121.Name = "Lb_titlu_alb_b121"
Lb_titlu_alb_b121.TabIndex = 9
BUT_TERMIN1.Left = 344
BUT_TERMIN1.Name = "BUT_TERMIN1"
BUT_TERMIN1.TabIndex = 7
BUT_TERMIN1.Top = 1
GRIDSORT1.Name = "GRIDSORT1"
*</PropValue>
ADD OBJECT 'BUT_MODIPARAM1' AS but_modiparam WITH ;
caction = do_modifica, ;
Left = 328, ;
Name = "BUT_MODIPARAM1", ;
TabIndex = 10, ;
Top = 191
*< END OBJECT: ClassLib="cmd_butoane.vcx" BaseClass="commandbutton" />
ADD OBJECT 'But_renunt1' AS but_renunt WITH ;
Left = 314, ;
Name = "But_renunt1", ;
TabIndex = 8, ;
Top = 1
*< END OBJECT: ClassLib="cmd_butoane.vcx" BaseClass="commandbutton" />
ADD OBJECT 'clb_data' AS clb_tx_simplu WITH ;
Left = 20, ;
Name = "clb_data", ;
TabIndex = 1, ;
Top = 48, ;
Text_simplu1.ControlSource = "porec.data", ;
Text_simplu1.MaxLength = 10, ;
Text_simplu1.Name = "Text_simplu1", ;
Lb_simplu1.Caption = "Data inceput", ;
Lb_simplu1.Name = "Lb_simplu1"
*< END OBJECT: ClassLib="lb_tx.vcx" BaseClass="container" />
ADD OBJECT 'clb_data2' AS clb_tx_simplu WITH ;
Left = 20, ;
Name = "clb_data2", ;
TabIndex = 2, ;
Top = 76, ;
Text_simplu1.ControlSource = "porec.data2", ;
Text_simplu1.Name = "Text_simplu1", ;
Lb_simplu1.Caption = "Data sfarsit", ;
Lb_simplu1.Name = "Lb_simplu1"
*< END OBJECT: ClassLib="lb_tx.vcx" BaseClass="container" />
ADD OBJECT 'Clb_tx_curs' AS clb_tx_simplu WITH ;
Left = 20, ;
Name = "Clb_tx_curs", ;
TabIndex = 6, ;
Top = 188, ;
Text_simplu1.ControlSource = "porec.curs", ;
Text_simplu1.InputMask = (get_mask(14,gnPCurs)), ;
Text_simplu1.Name = "Text_simplu1", ;
Lb_simplu1.Caption = "Curs", ;
Lb_simplu1.Name = "Lb_simplu1"
*< END OBJECT: ClassLib="lb_tx.vcx" BaseClass="container" />
ADD OBJECT 'Clb_tx_curs_bnr' AS clb_tx_simplu WITH ;
Left = 20, ;
Name = "Clb_tx_curs_bnr", ;
TabIndex = 5, ;
Top = 160, ;
Text_simplu1.ControlSource = "porec.curs_bnr", ;
Text_simplu1.InputMask = (get_mask(14,gnPCurs)), ;
Text_simplu1.Name = "Text_simplu1", ;
Text_simplu1.ReadOnly = .T., ;
Lb_simplu1.Caption = "Curs BNR", ;
Lb_simplu1.Name = "Lb_simplu1"
*< END OBJECT: ClassLib="lb_tx.vcx" BaseClass="container" />
ADD OBJECT 'Clb_tx_multiplicator' AS clb_tx_simplu WITH ;
Left = 20, ;
Name = "Clb_tx_multiplicator", ;
TabIndex = 4, ;
Top = 132, ;
Text_simplu1.ControlSource = "porec.multiplicator", ;
Text_simplu1.InputMask = (get_mask(10,0)), ;
Text_simplu1.Name = "Text_simplu1", ;
Text_simplu1.ReadOnly = .T., ;
Lb_simplu1.Caption = "Multiplicator", ;
Lb_simplu1.Name = "Lb_simplu1"
*< END OBJECT: ClassLib="lb_tx.vcx" BaseClass="container" />
ADD OBJECT 'Ct_clb_nume_val' AS ct_clb_cautare WITH ;
cconditie = EMPTY(porec.id_valuta), ;
cprocedura = thisform.do_cauta_valuta, ;
cvar_afisata = porec.nume_val, ;
Left = 19, ;
Name = "Ct_clb_nume_val", ;
TabIndex = 3, ;
Top = 103, ;
img_cautare.Name = "img_cautare", ;
clb_tx_cautare.Lb_simplu1.Caption = "Valuta", ;
clb_tx_cautare.Lb_simplu1.Name = "Lb_simplu1", ;
clb_tx_cautare.Name = "clb_tx_cautare", ;
clb_tx_cautare.Text_simplu1.Name = "Text_simplu1"
*< END OBJECT: ClassLib="caut_ora.vcx" BaseClass="container" />
ADD OBJECT 'Cus_odata_curs1' AS cus_odata_curs WITH ;
Left = 324, ;
Name = "Cus_odata_curs1", ;
Top = 48
*< END OBJECT: ClassLib="onom_curs.vcx" BaseClass="custom" />
PROCEDURE actualizeaza_curs_bnr
Thisform.LockScreen = .T.
This.oactualizare.citeste_curs(poRec.Data,poRec.iso_valuta)
Thisform.LockScreen = .F.
poRec.multiplicator = This.oactualizare.nmultiplicator
poRec.curs_bnr = This.oactualizare.ncurs
If poRec.curs_bnr = 0
This.clb_tx_multiplicator.text_simplu1.ReadOnly = .F.
Else
This.clb_tx_multiplicator.text_simplu1.ReadOnly = .T.
IF EMPTY(NVL(poRec.curs,0))
poRec.curs = poRec.curs_bnr
ENDIF
Endif
Thisform.clb_tx_multiplicator.Refresh()
Thisform.clb_tx_curs_bnr.Refresh()
ENDPROC
PROCEDURE Destroy
Unbindevents(poRec,"data",Thisform,"actualizeaza_curs_bnr")
Unbindevents(poRec,"iso_valuta",Thisform,"actualizeaza_curs_bnr")
ENDPROC
PROCEDURE do_cauta_marca
ENDPROC
PROCEDURE do_cauta_valuta
locauta=caut_valuta(,,.T.)
If !Isnull(locauta)
porec.id_valuta = locauta.id_valuta
porec.iso_valuta = locauta.nume_val2
porec.nume_val = locauta.nume_val
Thisform.ct_clb_nume_val.Refresh()
Thisform.clb_tx_curs.SetFocus()
Endif
ENDPROC
PROCEDURE do_modifica
Local lnOptiune
lnOptiune = xmenu("\<Copiaza cursul BNR;Aplica un \<procent cursului BNR")
Do Case
Case lnOptiune = 1
poRec.Curs = poRec.curs_bnr
Case lnOptiune = 2
lcProcent = Inputbox("Introduceti procentul care se aplica cursului BNR","Procent","0")
poRec.Curs = Round(poRec.curs_bnr * (Val(Nvl(lcProcent,"0"))/100+1),gnPCurs)
Endcase
Thisform.clb_tx_curs.Refresh()
ENDPROC
PROCEDURE inainte_de_do_termin
Local PLRETURN
lccontrol = Upper(This.ActiveControl.BaseClass )
If Inlist(lccontrol,"TEXTBOX","EDITBOX","COMBOBOX")
lcval=This.ActiveControl.ControlSource
&lcval=Thisform.ActiveControl.Value
Endif
Do Case
Case Empty(porec.Data) Or Isnull(porec.Data)
amessagebox('Nu ati completat data de inceput!',0+48,"Atentie")
This.clb_data.SetFocus()
PLRETURN=.F.
Case Empty(porec.data2) Or Isnull(porec.data2)
amessagebox('Nu ati completat data de sfarsit!',0+48,"Atentie")
This.clb_data2.SetFocus()
PLRETURN=.F.
Case Empty(porec.id_valuta)
amessagebox('Nu ati completat valuta!',0+48,"Atentie")
This.ct_clb_nume_val.SetFocus()
PLRETURN=.F.
Case Empty(porec.Curs)
amessagebox('Nu ati completat cursul!',0+48,"Atentie")
This.clb_tx_curs.SetFocus()
PLRETURN=.F.
*!* modificare 31.08.2011
CASE EMPTY(porec.multiplicator)
amessagebox('Multiplicatorul nu poate fi 0!',0+48,"Atentie")
This.clb_tx_multiplicator.text_simplu1.SetFocus()
plReturn = .F.
*!* modificare 31.08.2011 ^
Otherwise
PLRETURN=This.cus_odata_curs1.salvare(This.OREC,This.NID)
If !PLRETURN
Thisform.clb_data.SetFocus()
Endif
Endcase
Return PLRETURN
ENDPROC
PROCEDURE Init
Lparameters toRec, tnId, tcActiune
DoDefault()
This.orec= toRec
This.nid = tnId
This.cus_odata_curs1.cactiune = tcActiune
If tcActiune='UPDATE'
Thisform.ct_clb_nume_val.do_dezactiveaza()
*!* update_modele_masini(porec.id_marca_masina)
*!* Thisform.cb_model._CBBASE1.RowSource=[crsmodelemasini.model_masina,id_model_masina]
*!* Thisform.cb_model._CBBASE1.RowSourceType= 6
*!* Select crsmodelemasini
*!* Locate For model_masina=porec.model_masina
*!* Thisform.cb_model._CBBASE1.Requery
*!* Thisform.cb_model._CBBASE1.Refresh()
ENDIF
Bindevent(poRec,"data",Thisform,"actualizeaza_curs_bnr",1)
Bindevent(poRec,"iso_valuta",Thisform,"actualizeaza_curs_bnr",1)
Thisform.oactualizare = Createobject("actualizare_curs_bnr",gnTipActualizareCurs)
ENDPROC
ENDDEFINE
DEFINE CLASS frm_curs_nou_multiplu AS _frmbase OF "_frm_base.vcx"
*< CLASSDATA: Baseclass="form" Timestamp="" Scale="Pixels" Uniqueid="" />
*-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder
*< OBJECTDATA: ObjPath="clb_data" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="clb_data2" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grd_curs" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grd_curs.cNume_val.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grd_curs.cNume_val.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grd_curs.cCurs.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grd_curs.cCurs.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grd_curs.cMultiplicator.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grd_curs.cMultiplicator.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grd_curs.cCurs_BNR.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grd_curs.cCurs_BNR.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grd_curs.cIso_valuta.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grd_curs.cIso_valuta.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="But_renunt1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="BUT_MODIPARAM1" UniqueID="" Timestamp="" />
*<DefinedPropArrayMethod>
*m: actualizeaza_curs_bnr
*p: ddata
*p: nid
*p: oactualizare
*p: orec
*</DefinedPropArrayMethod>
*<PropValue>
BorderStyle = 1
ddata = {}
DoCreate = .T.
Height = 400
Name = "frm_curs_nou_multiplu"
oactualizare = .NULL.
Width = 441
_shape1.Height = 29
_shape1.Left = 0
_shape1.Name = "_shape1"
_shape1.Top = 0
_shape1.Width = 442
_shape2.Height = 29
_shape2.Left = 383
_shape2.Name = "_shape2"
_shape2.Top = 0
_shape2.Width = 64
Lb_titlu_alb_b121.Caption = "CURS VALUTAR"
Lb_titlu_alb_b121.FontBold = .T.
Lb_titlu_alb_b121.Name = "Lb_titlu_alb_b121"
Lb_titlu_alb_b121.TabIndex = 6
BUT_TERMIN1.Left = 411
BUT_TERMIN1.Name = "BUT_TERMIN1"
BUT_TERMIN1.TabIndex = 4
BUT_TERMIN1.Top = 1
GRIDSORT1.Name = "GRIDSORT1"
*</PropValue>
ADD OBJECT 'BUT_MODIPARAM1' AS but_modiparam WITH ;
caction = do_modifica, ;
Left = 401, ;
Name = "BUT_MODIPARAM1", ;
Top = 70
*< END OBJECT: ClassLib="cmd_butoane.vcx" BaseClass="commandbutton" />
ADD OBJECT 'But_renunt1' AS but_renunt WITH ;
Left = 381, ;
Name = "But_renunt1", ;
TabIndex = 5, ;
Top = 1
*< END OBJECT: ClassLib="cmd_butoane.vcx" BaseClass="commandbutton" />
ADD OBJECT 'clb_data' AS clb_tx_simplu WITH ;
Left = 12, ;
Name = "clb_data", ;
TabIndex = 1, ;
Top = 41, ;
Text_simplu1.ControlSource = "Thisform.ddata", ;
Text_simplu1.MaxLength = 10, ;
Text_simplu1.Name = "Text_simplu1", ;
Lb_simplu1.Caption = "Data inceput", ;
Lb_simplu1.Name = "Lb_simplu1"
*< END OBJECT: ClassLib="lb_tx.vcx" BaseClass="container" />
ADD OBJECT 'clb_data2' AS clb_tx_simplu WITH ;
Left = 12, ;
Name = "clb_data2", ;
TabIndex = 2, ;
Top = 69, ;
Text_simplu1.Name = "Text_simplu1", ;
Lb_simplu1.Caption = "Data sfarsit", ;
Lb_simplu1.Name = "Lb_simplu1"
*< END OBJECT: ClassLib="lb_tx.vcx" BaseClass="container" />
ADD OBJECT 'grd_curs' AS _grdrow WITH ;
Anchor = 15, ;
ColumnCount = 5, ;
DeleteMark = .F., ;
Height = 276, ;
Left = 10, ;
Name = "grd_curs", ;
Panel = 1, ;
ReadOnly = .F., ;
RecordSource = "crscursnou", ;
RowHeight = 19, ;
TabIndex = 3, ;
Top = 108, ;
Width = 424, ;
ZOrderSet = 7, ;
Column1.ColumnOrder = 1, ;
Column1.ControlSource = "nume_val", ;
Column1.FontName = "Arial", ;
Column1.FontSize = 10, ;
Column1.Name = "cNume_val", ;
Column1.ReadOnly = .T., ;
Column1.Width = 72, ;
Column2.BackColor = 170,213,255, ;
Column2.ColumnOrder = 5, ;
Column2.ControlSource = "curs", ;
Column2.DynamicBackColor = "RGB(170,213,255)", ;
Column2.FontName = "Arial", ;
Column2.FontSize = 10, ;
Column2.InputMask = (get_mask(14,gnPCurs)), ;
Column2.Name = "cCurs", ;
Column2.ReadOnly = .F., ;
Column2.Width = 94, ;
Column3.ColumnOrder = 2, ;
Column3.ControlSource = "multiplicator", ;
Column3.DynamicBackColor = "IIF(curs_bnr=0,RGB(255,255,180),RGB(255,255,255))", ;
Column3.FontName = "Arial", ;
Column3.FontSize = 10, ;
Column3.InputMask = (get_mask(10,0)), ;
Column3.Name = "cMultiplicator", ;
Column3.ReadOnly = .T., ;
Column3.Width = 77, ;
Column4.ColumnOrder = 4, ;
Column4.ControlSource = "curs_bnr", ;
Column4.FontName = "Arial", ;
Column4.FontSize = 10, ;
Column4.InputMask = (get_mask(14,gnPCurs)), ;
Column4.Name = "cCurs_BNR", ;
Column4.ReadOnly = .T., ;
Column4.Width = 78, ;
Column5.ColumnOrder = 3, ;
Column5.ControlSource = "iso_valuta", ;
Column5.FontName = "Arial", ;
Column5.FontSize = 10, ;
Column5.Name = "cIso_valuta", ;
Column5.ReadOnly = .T., ;
Column5.Width = 56
*< END OBJECT: ClassLib="_grd_base.vcx" BaseClass="grid" />
ADD OBJECT 'grd_curs.cCurs.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Curs", ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'grd_curs.cCurs.Text1' AS textbox WITH ;
BackColor = 170,213,255, ;
BorderStyle = 0, ;
FontName = "Arial", ;
FontSize = 10, ;
Margin = 0, ;
Name = "Text1", ;
ReadOnly = .F., ;
SelectedBackColor = 100,185,255, ;
Visible = .T.
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'grd_curs.cCurs_BNR.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Curs BNR", ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'grd_curs.cCurs_BNR.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
FontName = "Arial", ;
FontSize = 10, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1", ;
ReadOnly = .T., ;
SelectedBackColor = 100,185,255
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'grd_curs.cIso_valuta.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Simbol", ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'grd_curs.cIso_valuta.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
FontName = "Arial", ;
FontSize = 10, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1", ;
ReadOnly = .T., ;
SelectedBackColor = 100,185,255
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'grd_curs.cMultiplicator.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Multiplicator", ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'grd_curs.cMultiplicator.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
FontName = "Arial", ;
FontSize = 10, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1", ;
ReadOnly = .T., ;
SelectedBackColor = 100,185,255
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'grd_curs.cNume_val.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Valuta", ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'grd_curs.cNume_val.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
FontName = "Arial", ;
FontSize = 10, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1", ;
ReadOnly = .T., ;
SelectedBackColor = 100,185,255, ;
Visible = .T.
*< END OBJECT: BaseClass="textbox" />
PROCEDURE actualizeaza_curs_bnr
Thisform.LockScreen = .T.
Thisform.oactualizare.citeste_curs(Thisform.ddata)
Thisform.LockScreen = .F.
Thisform.grd_curs.salveaza_grid()
copiaza_structura_cursor([crscursnou],[crscursnout])
Insert Into crscursnout Select * From crscursnou
Use In crscursnou
Select a.id_valuta,a.nume_val,a.Curs,Cast(Nvl(b.Curs,0.0000) As N(14,4)) As curs_bnr,;
CAST(Iif(Empty(Nvl(b.multiplier,0)),Nvl(a.multiplicator,1),b.multiplier) As N(10)) As multiplicator,a.iso_valuta ;
FROM crscursnout a Left Join (This.oactualizare.cCursor) b On Alltrim(a.iso_valuta) = Alltrim(b.Currency) ;
INTO Cursor crscursnou Readwrite Order By nume_val
Select crscursnou
Go Top
Thisform.grd_curs.incarca_grid()
ENDPROC
PROCEDURE Destroy
Unbindevents(Thisform.clb_data.text_simplu1,"InteractiveChange",Thisform,"actualizeaza_curs_bnr")
ENDPROC
PROCEDURE do_modifica
Local lnOptiune,lnRecno
lnOptiune = xmenu("\<Copiaza cursul BNR pentru valutele care nu au cursul completat;" + ;
"C\<opiaza cursul BNR pentru toate valutele;\-;Se aplica un \<procent cursului BNR pentru valutele care nu au cursul completat;" + ;
"Se aplica un p\<rocent cursului BNR pentru toate valutele;\-;\<Reseteaza toate cursurile")
Select crsCursNou
lnRecno = Recno()
Do Case
Case lnOptiune = 1
Replace Curs With curs_bnr For Curs = 0
Case lnOptiune = 2
Replace All Curs With curs_bnr
Case lnOptiune = 4
lcProcent = Inputbox("Introduceti procentul care se aplica cursului BNR","Procent","0")
Replace Curs With Round(curs_bnr * (Val(Nvl(lcProcent,"0"))/100+1),gnPCurs) For Curs = 0
Case lnOptiune = 5
lcProcent = Inputbox("Introduceti procentul care se aplica cursului BNR","Procent","0")
Replace All Curs With Round(curs_bnr * (Val(Nvl(lcProcent,"0"))/100+1),gnPCurs)
Case lnOptiune = 7
Replace All Curs With 0
Endcase
Go lnRecno
ENDPROC
PROCEDURE inainte_de_do_termin
Local PLRETURN
lccontrol = Upper(This.ActiveControl.BaseClass )
If Inlist(lccontrol,"TEXTBOX","EDITBOX","COMBOBOX")
lcval=This.ActiveControl.ControlSource
&lcval=Thisform.ActiveControl.Value
Endif
ldData = Thisform.ddata
ldData2 = Thisform.clb_data2.text_simplu1.Value
*!* modificare 31.08.2011
Select crscursnou
Locate For multiplicator = 0
If Found()
amessagebox("Multiplicatorul nu poate fi 0!",48,"Atentie")
Thisform.grd_curs.SetFocus()
PLRETURN=.F.
Else
Go Top
*!* modificare 31.08.2011 ^
Do Case
Case Empty(ldData) Or Isnull(ldData)
amessagebox('Nu ati completat data de inceput!',0+48,"Atentie")
This.clb_data.SetFocus()
PLRETURN=.F.
Case Empty(ldData2) Or Isnull(ldData2)
amessagebox('Nu ati completat data de sfarsit!',0+48,"Atentie")
This.clb_data2.SetFocus()
PLRETURN=.F.
Otherwise
lcData = Dtos(ldData)
lcData2 = Dtos(ldData2)
lcSql = [] && modificare ROAFACTURARE v 2.0.71
Select crscursnou
Scan For Curs <> 0
lcSql = lcSql + [pack_curs.adauga_curs(to_date('] + lcData + [','YYYYMMDD'),] + ;
[to_date('] + lcData2 +[','YYYYMMDD'),] + Alltrim(Str(id_valuta)) + [,] + ;
ALLTRIM(Str(multiplicator)) + [,] + Alltrim(Str(Curs,14,4)) + [,?gnIdUtil);]
Endscan
*!* modificare ROAFACTURARE v 2.0.71
If Empty(lcSql)
amessagebox("Nu ati completat cursul pentru nicio valuta!",48,"Atentie")
PLRETURN = .F.
Else
*!* modificare ROAFACTURARE v 2.0.71 ^
lcSql = [begin ] + lcSql + [ end;]
lnSucces = goExecutor.oExecute(lcSql)
If lnSucces < 0
amessagebox(goExecutor.oPrelucrareEroare(),16,"Eroare")
Thisform.clb_data.SetFocus()
PLRETURN = .F.
Else
PLRETURN = .T.
Endif
*!* modificare ROAFACTURARE v 2.0.71
Endif
*!* modificare ROAFACTURARE v 2.0.71 ^
Endcase
*!* modificare 31.08.2011
Endif
*!* modificare 31.08.2011 ^
Return PLRETURN
ENDPROC
PROCEDURE Init
Lparameters tdData
Thisform.ddata = tdData
Thisform.clb_data2.text_simplu1.Value = tdData
DoDefault()
Thisform.oactualizare = Createobject("actualizare_curs_bnr",gnTipActualizareCurs)
Thisform.actualizeaza_curs_bnr()
Bindevent(Thisform,"ddata",Thisform,"actualizeaza_curs_bnr",1)
ENDPROC
PROCEDURE grd_curs.cMultiplicator.Text1.GotFocus
If curs_bnr = 0
This.ReadOnly = .F.
This.Parent.ReadOnly = .F.
Else
This.ReadOnly = .T.
This.Parent.ReadOnly = .T.
Endif
ENDPROC
PROCEDURE grd_curs.Init
*
ENDPROC
ENDDEFINE