Files
roastart/Programe/updatecheck.prg
Marius Mutu b241a639b1 Import initial: surse ROASTART + text FoxBin2Prg in arbore
Binarele VFP raman pe SVN si sunt git-ignored; COMUN e gestionat separat.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01A5okKjUKMM5Xk1egq2w81P
2026-08-03 09:34:12 +03:00

222 lines
7.5 KiB
Plaintext

*!* 24.11.2016
*!* marius.mutu
*!* UpdateRoastart - nu mai verific romfast_suport.exe de pe site-ul romfast.ro. Unele calculatoare nu au internet si sta mult sa verifice.
#Define crlf Chr(13)+Chr(10)
Procedure citeste_server_info
Local lColNumeServer, lcSelect, lcCursor, lnSucces
lcSelect = "select distinct f.nume_server ;
from nom_firme f inner join def_util_grup ug on ;
f.id_firma = ug.id_firma and ug.id_util = " + Transform(gnIdUtil) + ;
" where f.sters = 0 and ug.sters = 0"
lcCursor = "crsServerUtil"
lnSucces = goExecutor.oExecute(lcSelect, lcCursor)
lColNumeServer = lnSucces > 0
lcSelect = "SELECT VALUE,ID_SERVER_INFO FROM SERVER_INFO where Name='NAME'"
lcCursor = "crstempsrv"
lnSucces = goExecutor.oExecute(lcSelect, lcCursor)
If lColNumeServer
Select c.* From crstempsrv c INNER Join crsServerUtil S On c.Value=S.nume_server Into Cursor crstempsrv1
Use In crstempsrv
Select * From crstempsrv1 Into Cursor crstempsrv
Endif
If Used('crsserverinfo')
Use In crsserverinfo
Endif
Create Cursor crsserverinfo (Value c(35),id_server_info N(3))
If lnSucces > 0
Insert Into crsserverinfo Select Alltrim(Substr(Value,1,35)),id_server_info From crstempsrv Order By id_server_info
Select crsserverinfo
Go Top
Endif
If Used('crstempsrv')
Use In crstempsrv
Endif
Endproc
********************************************
* Verifica daca programul care ruleaza
* este la ultima versiune de pe server
********************************************
Procedure UpdateRoastart
Local iniHandler As Object,lnTipFisier,lcdefa,lnTipActualizare,loUpdatei
IF !DIRECTORY(gcSecurityPath)
MD (gcSecurityPath)
ENDIF
llXMLStart=.T.
polog.Log("S-a pornit actualizarea Roastart.xml.",Program())
lotemp=Createobject("EditBox")
If !File(gcDirMare+"settings.ini")
updatecheckfiles("settings.ini")
Endif
iniHandler=Createobject("iniaccess")
loUpdatei = Createobject("oUpdate",[ROASTART],loTemp)
If Type('loUpdatei') = 'O'
*!* modificare v 2.1.8 : romfast_suport.exe
* loUpdatei.updatecheckTxt([romfast_suport], .T.) && nu mai verific romfast_suport de pe site-ul romfast.ro, pentru ca sunt unele calculatoare fara acces la internet si dureaza mult verificarea
*!* modificare v 2.1.8 ^
loUpdatei.createUpdateCursor("cRoastartXml")
Select cRoastartXml
Scan
If !Deleted()
lcitem=UPPER(Alltrim(cRoastartXml.Item))
lnTipActualizare = IIF(lcItem = [ROASTART],2,1)
Do Case
Case Upper(Alltrim(Left(lcitem,4)))="USER" Or Like("*_USER*",Upper(lcitem))
lcitem = Iif(Upper(Alltrim(Left(lcitem,4)))="USER",lcitem,Substr(lcitem,At("_USER",lcitem)+1))
idstring=""
Try
idstring=Filetostr(gcDirMare+lcitem+"\"+lcitem+"_id.txt")
Catch
idstring=Upper(Alltrim(lcitem))
Endtry
If idstring#""
loUpdatei.updatecheck(idstring,.F.,lnTipActualizare,lcitem)
lnRecno = Recno()
Delete From cRoastartXml Where Like("*"+lcitem+"*",Item)
Go lnRecno
Endif
Case Upper(Alltrim(lcitem))="SECURITY"
Delete File(gcSecurityPath+"ROA_SECURITY.TXT")
Otherwise
loUpdatei.updatecheck(lcitem,.F.,lnTipActualizare)
Endcase
Endif
Endscan
If Used("cRoastartXml")
Use In cRoastartXml
Endif
If !File(gcSecurityPath+"ROA_SECURITY.TXT")
updatecheckfiles("ROA_SECURITY.XML",.T.) && modificare 25.06.2012 : sa nu mai apara mesajul de eroare daca nu exista ROA_SECURITY.XML pe server
Endif
Endif
Release lotemp,loUpdatei
Endproc
Function UpdatePrograme
#Define crlf Chr(13)+Chr(10)
Local lcdefa,loUpdates
polog.Log("S-a pornit formularul de actualizari in masa.",Program())
loUpdates=Createobject("oUpdate",IIF(Reccount('crsserverinfo') = 0,[],Alltrim(crsserverinfo.Value)))
iniHandler=Createobject("iniaccess")
If Type('loUpdates') = 'O'
Local lcLanPath
If (iniHandler.getDefault()="NetworkPath")
lcdefa=Alltrim(Sys(5))+Curdir()
cale=iniHandler.getNetworkPath()
polog.Log("Calea de retea : "+ADDBS(cale),Program())
Try
Set Default To Justpath(Alltrim(cale))
Catch
aMessagebox("Nu s-a putut ajunge la calea de retea.",16,"Eroare")
polog.Log("Nu s-a putut ajunge la "+ADDBS(cale),Program())
Return .F.
Endtry
If Reccount('crsserverinfo') = 0
polog.Log("NU exista tabela SERVER_INFO",Program())
Else
***!* Daca exista fisierul xml pentru un server
****
lcServerName = Alltrim(crsserverinfo.Value)
polog.Log("Se aduce lista programelor din "+Addbs(cale)+lcServerName+".xml",Program())
Select cProgrameUpdate
*!* Parcurgere programe
Scan
lcidentifier=cProgrameUpdate.nume
XmlData=loUpdates.getVersion(Alltrim(lcidentifier)) &&se verifica versiunea
Select cProgrameUpdate
If(XmlData#"nu s-a putut conecta" And XmlData#"<>(){}")
If(Not Compareversion(stripXmlVersion(XmlData),XmlData,Alltrim(lcidentifier),.T.))
*!* Daca versiunea programului este aceeasi cu cea din xml nu se mai trece in lista
Delete
Else
*!* modificare v 2.0.6
*!* Scatter Name oTest Blank
Scatter Name oTest Fields versiune,imagine
*!* modificare v 2.0.6 ^
*UPDATE cProgrameUpdate SET versiune="&lcVersionData" WHERE nume=lcidentifier
oTest.versiune=stripXmlVersion(XmlData)
*!* modificare v 2.0.6
If Not File(oTest.imagine)
oTest.imagine="na.png"
Endif
*!* Gather Name oTest Fields versiune
Gather Name oTest Fields versiune,imagine
*!* modificare v 2.0.6 ^
Endif
Else
Delete
Endif
Endscan
*!* Curatari----------------&&|
Set Default To (lcdefa) &&|
Go Top &&|
*!* ---------------------------
****
Endif
Else
*!* ------------------ web
*-------------------------
*!* clocalfile=Alltrim(Sys(5))+Alltrim(Curdir())+"temp.txt"
*!* loUpdate=Createobject("wwCodeUpdate")
*!* polog.Log("Calea de internet : "+iniHandler.getURL(),Program())
If Reccount('crsserverinfo') = 0
polog.Log("NU s-a gasit tabela Server_Info",Program())
Else
lcServerName = Alltrim(crsserverinfo.Value)
Select cProgrameUpdate
*!* Parcurgere programe
Scan
lcidentifier=cProgrameUpdate.nume
XmlData=loUpdates.getVersion(Alltrim(cProgrameUpdate.nume)) &&se verifica versiunea
polog.Log("Se cauta in "+lcServerName+".XML programul : "+Alltrim(lcidentifier),Program())
If(XmlData#"nu s-a putut conecta" And XmlData#"<>(){}")
If(Not Compareversion(stripXmlVersion(XmlData),XmlData,Alltrim(lcidentifier),.T.))
polog.Log("Programul din XML are aceeasi versiune cu programul de pe disc.Nu se mai adauga in lista",Program())
*!* Daca versiunea programului este aceeasi cu cea din xml nu se mai trece in lista
Delete
Else
polog.Log("Programul din XML este diferit fata de programul de pe disc.Se adauga in lista : "+Alltrim(lcidentifier)+" "+Alltrim(stripXmlVersion(XmlData)),Program())
Select cProgrameUpdate
Scatter Name oTest Fields versiune,imagine
*UPDATE cProgrameUpdate SET versiune="&lcVersionData" WHERE nume=lcidentifier
oTest.versiune=stripXmlVersion(XmlData)
If Not File(oTest.imagine)
oTest.imagine="na.png"
Endif
Gather Name oTest Fields versiune,imagine
Endif
Else
*!* Daca pentru program nu s-a gasit un fisier xml nu se mai verifica versiunea
*!* se sterge direct din lista
Delete
Endif
*!* /Parcurgere programe
Endscan
Endif
Endif
Release loUpdates
Release iniHandler
Return .T.
Else
Return .F.
Endif
Endfunc