*!* 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