*!* 04.03.2013 *!* marius.mutu *!* genereaza_xml_roa *!* se retin numele xml-urilor pentru clientii roa in settings.ini in sectiunea [folder] #Define crlf Chr(13) + Chr(10) Procedure EditTask Parameters tnId Private poRec lcSql = [select * from tasks where ] + Iif(!Empty(tnId), [ id = ?tnId], [1=2]) lcCursor = Sys(2015) lnSucces = goExecutor.oexecute(lcSql, lcCursor) If lnSucces > 0 Select (lcCursor) Scatter Name poRec Memo Do Form frm_adaugare_task Endif Return lnSucces Endproc *****============================================================== Procedure EditLucrare Parameters tnIdLucrare Local lnSucces, lcCursor, lcSql Private poRec *!* IF EMPTY(tnid) *!* endif lcSql = [select * from luc_vlucrari_tot where ] + ; Iif(!Empty(tnIdLucrare), [ id = ?tnIdLucrare ], [1=2]) lcCursor = Sys(2015) lnSucces = goExecutor.oexecute(lcSql, lcCursor) If lnSucces > 0 Select (lcCursor) Scatter Name poRec Memo poRec.datal = Ttod(poRec.datal) Do Form frm_lucrare_noua Endif Return lnSucces Endproc ************************** ************************** * se apeleaza tasks.exe cu parametru din Windows Task Scheduller * se genereaza xml pentru toti clientii ROA ************************** Procedure genereaza_xml_roa_tot Local lcSql, llAuto, llSilent Text To lcSql SELECT DISTINCT CUSTOMER_ID, CUSTOMER FROM (select CUSTOMER_ID, CUSTOMER, DATA_PLEC from VSC_PROGRAME_CLIENTI t WHERE PROGRAM = 'ROACONT' AND DATA_PLEC BETWEEN TRUNC(SYSDATE) - 60 AND SYSDATE) order by CUSTOMER Endtext executaSql(lcSql, [cCustomersTemp], .T.) llSilent = .T. llAuto = .T. Select cCustomersTemp Scan Wait Window Transform(Recno()) + Transform(Reccount()) + ' ' + cCustomersTemp.customer Nowait Select cCustomersTemp Do genereaza_xml_roa With customer_id, customer, m.llSilent, m.llAuto In proceduri.prg Endscan Use In (Select('cCustomersTemp')) Endproc && genereaza_xml_roa_tot *** Procedure genereaza_xml_roa Lparameters tnCustomerId, tcName, tlSilent, tlAuto * tlSilent: .T. = nu arata dialogul SaveAs pentru xml, decat daca nu are configurat numele fisierului * tlAuto: .T. = genereaza automat numele fisierului xml, daca nu este configurat in settings.ini *!* 09.08.2010 *!* marius.mutu *!* nu se mai creeaza vechiul fisier xml cu aplicatiile, ci doar noul fisier *!* 28.06.2012 *!* arhivele nu mai au extensia .exe, ci .zip ( am adaugat lcExtensieArhive ) *!* 20.07.2012 *!* am adaugat tcName Local lcSql, lcfile, cVersiune, lcClipText, lcSir, lcFisier, lcDir, lcFisVersDif Local lcfileVersiuniMax, lnSucces, lnCustomerId, liat, lcFileAfis, lcExtensieArhive Local laEroare[1], lcVersiune, x, lcXMLFolder Local llSilent, llAuto llSilent = m.tlSilent llAuto = m.tlAuto lcExtensieArhive = [.ZIP] liat = 0 lnCustomerId = m.tnCustomerId *!* 20.07.2012 : am adaugat m.lcCustomerName lcCustomerName = m.tcName lcClipText = [] lcSir = [] lcFisier = [] lcDir = [] lcFisVersDif = [] *!* 25.01.2011 *!* x = SQLConnect("JCSSERVER","SOFT_SERII","123") x = SQLConnect(goApp.cHostSerii, goApp.cUsernameSerii, goApp.cPasswordSerii) If x < 0 Aerror(laEroare) Messagebox(laEroare(3)) Return Endif *!* 25.01.2011 ^ *!* 17.06.2011 : am adaugat id_grup_clienti = 1 ( clienti ROA ) lcSql = [select DISTINCT customer_id, NUME, ID_PROGRAM, (CASE WHEN Upper(PROGRAM) ] + ; [LIKE 'INDEX%' THEN 'MANUAL' ELSE PROGRAM END) AS PROGRAM from vgen_programe ] + ; [where customer_id = ] + Alltrim(Str(m.lnCustomerId)) + [ and id_grup_clienti = 1] lnSucces = SQLExec(x, lcSql, "crsProgsTemp1") If lnSucces < 0 Return Endif SQLDisconnect(x) *!* selectie combobox - un client, programele cu licenta pentru client *!* 17.06.2011 : am adaugat comun ca sa pot face ROASTART.xml si .XML *!* 20.07.2012 : am inlocuit crs2xml.id cu m.lnCustomerId executaSql([select 0 as ales, v.customer, v.program, v.versiune, v.versiune_maxima, ] + ; [v.id, v.customer_id, v.comun from vsc_versiune_max_inst_dv v ] + ; [where v.customer_id = ] + Alltrim(Str(m.lnCustomerId)), "crsprogstemp2", .T.) *!* selectie combobox - un client, programele cu licenta pentru client ^ executaSql([select * from programs], "crsPrograms", .T.) executaSql([select * from sc_versiune_programe], "crsVersProg", .T.) *** directorul xml_aplicatii lcXMLFolder = Nvl(readINI(goApp.cinifile, "folder", "xml_aplicatii"), "") If Empty(m.lcXMLFolder) llSilent = .F. ENDIF *** 04.03.2013 *** citesc numele fisierului xml pentru client din clientului din settings.ini lcCustomerNameSaved = Nvl(readINI(goApp.cinifile, "folder", "xml_aplicatii_" + Alltrim(Str(m.lnCustomerId))), "") If !Empty(Nvl(m.lcCustomerNameSaved, '')) lcCustomerName = Juststem(m.lcCustomerNameSaved) ELSE IF m.llAuto lcCustomerName = 'customer_' + ALLTRIM(STR(m.lnCustomerId)) WriteINI(goApp.cinifile, "folder", "xml_aplicatii_" + Alltrim(Str(m.lnCustomerId)), m.lcCustomerName) ELSE llSilent = .F. ENDIF Endif If !m.llSilent *!* 20.07.2012 : am inlocuit crs2xml.Name cu m.lcCustomerName lcfile = Putfile("Alegeti calea", Iif(Empty(m.lcXMLFolder), "", Addbs(m.lcXMLFolder)) + Upper(Alltrim(Strtran(m.lcCustomerName, ' ', ''))) + '.xml', 'xml') If !Empty(m.lcfile) writeINI(goApp.cinifile, 'folder', "xml_aplicatii_" + Alltrim(Str(m.lnCustomerId)), Juststem(m.lcfile)) Endif Else lcfile = Addbs(m.lcXMLFolder) + Upper(Alltrim(Strtran(m.lcCustomerName, ' ', ''))) + '.xml' Endif *!* 17.06.2011 : am adaugat comun ca sa pot face ROASTART.xml si .XML Select a.nume As customer, a.Program, b.versiune, b.versiune_maxima, a.customer_id, a.id_program, b.comun ; From crsprogstemp2 b ; INNER Join crsProgsTemp1 a On a.customer_id = b.customer_id And b.Id = a.id_program ; Order By 7 Desc, 2 ; Into Cursor crsXmlOut Select Program As Item, versiune As Version, ; '\_ARHIVE\' + Alltrim(Program) + '\' + Alltrim(Program) + '-' + Alltrim(versiune) + lcExtensieArhive As fileURL, ; '' As usermsg ; From crsXmlOut Where comun = 0 ; Into Cursor crsXmlOutNew *!* 17.06.2011 : am adaugat comun pentru ROASTART.xml ( trebuie redenumit manual in ROASTART.xml ) *!* 20.07.2012 : am modificat coloanele item ( program as item ) si fileURL ( '\_ARHIVE\' + Alltrim(Program) + '\' + Alltrim(Program) + '-' + Alltrim(versiune) + lcExtensieArhive ) Select Iif(At([USERREPORTS], Alltrim(Program)) <> 0 And At([-], Program, 1) <> 0, Substr(Alltrim(Program), 1, At([-], Alltrim(Program), 1) - 1), Alltrim(Program)) As Item, versiune As Version, ; '\_ARHIVE\' + Iif(At([USERREPORTS], Alltrim(Program)) <> 0, [USERREPORTS], Alltrim(Program)) + '\' + Alltrim(Program) + '-' + Alltrim(versiune) + lcExtensieArhive As fileURL, ; '' As usermsg ; From crsXmlOut Where comun = 1 ; Into Cursor crsXmlOutNewS *SELECT c.customer, c.program, c.versiune, c.customer_id FROM crsprogstemp2 c ; JOIN crsprograms p ON p.id = c.id ORDER BY 2 ; WHERE !EMPTY(NVL(c.versiune,[])) ; INTO CURSOR crsProgLic Select crsXmlOut lcClipText = lcClipText + Alltrim(customer) + crlf + "VERSIUNI EXISTENTE: " lcVersiune = "" Set Textmerge On To Memvar lcVersiune Noshow Set Textmerge Delimiters To '{{', '}}' \ Select crsXmlOut *SELECT crsProgLic Scan For customer_id = lnCustomerId \<{{Alltrim(Program)}}> \ \{{Alltrim(versiune)}} \{{'\_ARHIVE\' + Alltrim(Program) + '\' + Alltrim(Program) + '-' + Alltrim(versiune) + lcExtensieArhive}} \S-a gasit {{Alltrim(Program)}} versiunea {{Alltrim(versiune)}}. Programul va incepe procedurile de actualizare ! \ \ lcClipText = lcClipText + Alltrim(Program) + '-' + Alltrim(versiune) + ', ' Endscan Set Textmerge To *!* 09.02.2010 *!* Cursortoxml("crsXmlOutNew", Addbs(Justpath(m.lcfile)) + Juststem(m.lcfile) + '.new.xml', 1, 0+512, 0, "1") Cursortoxml("crsXmlOutNew", Addbs(Justpath(m.lcfile)) + Juststem(m.lcfile) + '.xml', 1, 0 + 512, 0, "1") *!* 17.06.2011 Cursortoxml("crsXmlOutNewS", Addbs(Justpath(m.lcfile)) + 'ROASTART_' + Juststem(m.lcfile) + '.xml', 1, 0 + 512, 0, "1") * Creez si un ROASTART.xml pentru firmele de pe ROA_ROMFAST, pentru ca ele descarca ROASTART.xml direct de pe ROA_CENTRAL, nu de pe ROA_ROMFAST If Upper(Juststem(m.lcfile)) = 'ROMFAST' Cursortoxml("crsXmlOutNewS", Addbs(Justpath(m.lcfile)) + 'ROASTART' + '.xml', 1, 0 + 512, 0, "1") Endif *!* 17.06.2011 ^ *!* Strtofile(lcVersiune, m.lcfile) *!* 09.02.2010 ^ *** salvez director xml aplicatii writeINI(goApp.cinifile, 'folder', 'xml_aplicatii', Justpath(m.lcfile)) *Use In (Select("crsProgLic")) Use In (Select("crsprograms")) Use In (Select("crsProgsTemp1")) Use In (Select("crsProgsTemp2")) Use In (Select("crsxmlout")) Use In (Select("crsxmloutnew")) Use In (Select("crsxmloutnewS")) && 17.06.2011 Use In (Select("crsVersProg")) _Cliptext = Nvl(lcClipText, []) Endproc && genereaza_xml_roa ******************************************* Procedure genereaza_xml_contafin Local lcAppPath, lcCheckSum, lcCustomerId, lcFileExe, lcFileZip, lcFisiere, lcSql, lcText, lcWhere Local lcXML, lcXML2, lcfile, lnHandle, lnSucces, lcAppPath lcXMLPath = readINI(goApp.cinifile, "folder", "contafin_arhive") lcXMLPath = Addbs(m.lcXMLPath) *!* lnHandle = SQLConnect('roa_romfast','soft','soft') *!* If lnHandle < 0 *!* ProcessError() *!* Return *!* Endif Text To lcSql Noshow Textmerge SELECT vp.name as program, vc.versiune_curenta as versiune, vc.customer_id From vprograme vp Left Join sc_versiune_programe vc On vc.id_program = vp.Id Left Join programs_groups pg On pg.id_program = vp.Id Where vc.appupdate = 1 Endtext *!* lnSucces = SQLExec(lnHandle, lcSql, "cProgrameTemp") *!* If lnSucces < 0 *!* ProcessError() *!* Return *!* Endif executaSql(lcSql, "cProgrameTemp", .T.) *!* 28.10.2010 Create Cursor crsCheckSum (fisier c(250), checksum c(100)) *!* 28.10.2010 ^ *!* APPUPDATE *!* http://83.103.197.79:3002/contafinupdate/default.aspx/update/download/|licenta|/appupdate-1.0.3.exe *!* http://83.103.197.79:3002/contafinupdate/default.aspx/update/download/|licenta|/changelog_appupdate.txt *!* 1.0.3 lcFisiere = '' Select Distinct customer_id From cProgrameTemp Into Cursor cCustomers Order By customer_id Select cCustomers Scan If !Empty(Nvl(customer_id, 0)) lcWhere = "inlist(nvl(customer_id,0), 0, " + Alltrim(Str(customer_id)) + ")" lcCustomerId = Alltrim(Str(customer_id)) Else lcWhere = "NVL(customer_id,0) = 0" lcCustomerId = "" Endif Select Program, versiune, ; [http://83.103.197.79:3002/contafinupdate/default.aspx/update/download/|licenta|/] + Alltrim(Program) + [-] + Alltrim(versiune) + [.exe] As fisier, ; [http://83.103.197.79:3002/contafinupdate/default.aspx/update/download/|licenta|/changelog_] + Alltrim(Program) + [.txt] As Log, ; Space(100) As checksum ; From cProgrameTemp ; Where &lcWhere ; Order By Program ; Into Cursor crsXML Readwrite Select crsXML Scan lcFileExe = lcXMLPath + Alltrim(Program) + [-] + Alltrim(versiune) + [.exe] lcFileZip = lcXMLPath + Alltrim(Program) + [-] + Alltrim(versiune) + [.zip] lcfile = lcFileExe If !File(lcFileExe) If File(lcFileZip) lcfile = lcFileZip Endif Endif Wait Window 'CUSTOMER_ID ' + lcCustomerId + ' ' + Transform(Recno()) + '/' + Transform(Reccount()) + ' ' + lcfile Nowait If File(lcfile) Select crsCheckSum Locate For Upper(Alltrim(fisier)) = Upper(Alltrim(lcfile)) If Found() lcCheckSum = checksum Else lcText = Filetostr(lcfile) lcCheckSum = Sys(2007, lcText, 0, 1) lcText = "" Insert Into crsCheckSum (fisier, checksum) Values (lcfile, lcCheckSum) Endif *** completez checksum-ul si schimb extensia fisierului din exe in zip, daca este cazul Replace checksum With lcCheckSum, fisier With Forceext(Alltrim(fisier), Justext(m.lcfile)) In crsXML Else Messagebox('Nu exista fisierul ' + lcfile, 0 + 48, _Screen.Caption) Endif Endscan lcXML = lcXMLPath + 'contafin' + Iif(!Empty(lcCustomerId), '_' + lcCustomerId, '') + '.xml' && CONTAFIN.XML, CONTAFIN_26.XML lcXML2 = lcXMLPath + 'contafin_local' + Iif(!Empty(lcCustomerId), '_' + lcCustomerId, '') + '.xml' && CONTAFIN.XML, CONTAFIN_26.XML Cursortoxml('crsXML', lcXML, 1, 512, 0, "1") Select crsXML Replace All fisier With Strtran(fisier, '83.103.197.79:3002', '10.0.20.122:81'), Log With Strtran(Log, '83.103.197.79:3002', '10.0.20.122:81') Cursortoxml('crsXML', lcXML2, 1, 512, 0, "1") Use In crsXML lcFisiere = lcFisiere + lcXML + crlf Endscan Use In (Select('cCustomers')) Use In (Select('cProgrameTemp')) Use In (Select('crsCheckSum')) Messagebox('S-au creat fisierele ' + lcFisiere) Endproc && genereaza_xml_contafin ************************************************************* *** converteste un nume de script in elementele componente ************************************************************* Procedure ParseScriptName Lparameters tcScript, tcScriptPrefix, tdScriptDate, tnScriptSeq, tcScriptType Local lcScript, lnAn, lnLuna, lnPos, lnZi lcScript = Juststem(m.tcScript) tcScriptPrefix = "" tdScriptDate = {} tnScriptSeq = 0 tcScriptType = "" If !Empty(m.lcScript) tcScriptPrefix = Getwordnum(m.lcScript, 1, '_') lnAn = Val(Getwordnum(m.lcScript, 2, '_')) lnLuna = Val(Getwordnum(m.lcScript, 3, '_')) lnZi = Val(Getwordnum(m.lcScript, 4, '_')) tdScriptDate = Date(m.lnAn, m.lnLuna, m.lnZi) tnScriptSeq = Int(Val(Juststem(Getwordnum(m.lcScript, 5, '_')))) lnPos = At('_', m.lcScript, 5) If m.lnPos > 0 tcScriptType = Juststem(Substr(m.lcScript, m.lnPos + 1)) Endif Endif Endproc && ParseScriptName