*!* Parameters tnScrie_Sterge, tlModificare, tlRul *!* #Define crlf Chr(13) + Chr(10) *!* Local lnSucces *!* ON ERROR deconecteaza() *!* lnSucces = -1 *!* If Reccount('actactan') = 0 *!* Messagebox('Nu s-a inregistrat nota contabila.') *!* Return lnSucces *!* Endif *!* If Empty(tnScrie_Sterge) Or Isnull(tnScrie_Sterge) *!* tnScrie_Sterge = 0 *!* Endif *!* If !Used('ACTACTAN') *!* Messagebox('Nu exista fisierul .') *!* Return lnSucces *!* Endif *!* If tnScrie_Sterge = 2 *!* Select actactan *!* Locate *!* lnCod = cod *!* Endif *!* *!* modificare 18.09.2007 *!* If tnScrie_Sterge = 2 And !tlModificare And Used('rul_temp') And Reccount('rul_temp') > 0 *!* Private pcMesaj *!* Store '' To pcMesaj *!* lcSql = [begin ] + gcS +[.verifica_stoc(] + Alltrim(Str(lnCod)) + [,?@pcMesaj); end;] *!* lnSucces = executaSql(lcSql,"",.t.) *!* If lnSucces < 0 *!* * Messagebox(goExecutor.oPrelucrareEroare(),16,"Eroare") *!* Return lnSucces *!* Endif *!* If !Isnull(pcMesaj) *!* Messagebox(pcMesaj,48,"Atentie") *!* Release pcMesaj *!* Return -5 *!* Endif *!* Release pcMesaj *!* Endif *!* *!* modificare 18.09.2007 ^ *!* && RESETARE VARIABILE *!* lcSql = [begin pack_contafin.reset_variables(); end;] *!* lnSucces = executaSql(lcSql,'',.t.) *!* If lnSucces < 0 *!* * Messagebox('Resetare variabile ' + Chr(13) + goExecutor.cEroare,0+16,"Eroare") *!* Return lnSucces *!* Endif *!* &&------------------------------------------------------------------------------------ *!* llManualTransactions = Iif(SQLGetprop(gnhandle,"Transactions")=2,.T.,.F.) *!* If lnSucces > 0 *!* If !tlModificare And !llManualTransactions *!* lnSucces = SQLSetprop(gnhandle,"Transactions",2) *!* Endif *!* Endif *!* && SETARE VARIABILE *!* If lnSucces > 0 *!* lcSql = [begin pack_contafin.set_idutil(?gnIdUtil); end;] *!* lnSucces = executaSql(lcSql,'',.t.) *!* If lnSucces < 0 *!* * Messagebox('Setare ID utilizator ' + Chr(13) + goExecutor.cEroare,0+16,"Eroare") *!* Endif *!* Endif *!* If lnSucces > 0 *!* pddata = {} *!* lcSql = [begin pack_contafin.set_dataora(?pddata); end;] *!* lnSucces = executaSql(lcSql,'',.t.) *!* *!* If lnSucces < 0 *!* *!* Messagebox('Setare DataOra ' + Chr(13) + goExecutor.cEroare,0+16,"Eroare") *!* *!* Endif *!* Endif *!* If lnSucces > 0 *!* lcSql = [begin pack_contafin.set_an(?gnAn); end;] *!* lnSucces = executaSql(lcSql,'',.t.) *!* *!* If lnSucces < 0 *!* *!* Messagebox('Setare An ' + Chr(13) + goExecutor.cEroare,0+16,"Eroare") *!* *!* Endif *!* Endif *!* If lnSucces > 0 *!* lcSql = [begin pack_contafin.set_luna(?gnLuna); end;] *!* lnSucces = executaSql(lcSql,'',.t.) *!* *!* If lnSucces < 0 *!* *!* Messagebox('Setare Luna ' + Chr(13) + goExecutor.cEroare,0+16,"Eroare") *!* *!* Endif *!* Endif *!* If lnSucces > 0 And tnScrie_Sterge <> 2 *!* && genereaza un cod de operatie *!* lcSql = [begin pack_contafin.SET_COD('] + gcS +['); end;] *!* lnSucces = executaSql(lcSql,'',.t.) *!* *!* If lnSucces < 0 *!* *!* Messagebox(goExecutor.cEroare,0+16,"Eroare") *!* *!* Endif *!* Endif *!* &&------------------------------------------------------------------------------------ *!* If lnSucces > 0 *!* && seteaza id_sucursala *!* lcSql = [begin pack_contafin.SET_ID_SUCURSALA(?gnIdSucursala); end;] *!* lnSucces = executaSql(lcSql,'',.t.) *!* *!* If lnSucces < 0 *!* *!* Messagebox(goExecutor.cEroare,0+16,"Eroare") *!* *!* Endif *!* Endif *!* If lnSucces > 0 *!* lnSucces = sql_temp_insert('actactan','ACT_TEMP') *!* If lnSucces > 0 And tlRul *!* If Used('rul_temp') And Reccount('rul_temp')>0 *!* lnSucces = sql_temp_insert('rul_temp','RUL_TEMP') *!* Endif *!* If Used('RUL_TEMP_OBINV') And Reccount('RUL_TEMP_OBINV')>0 *!* lnSucces = sql_temp_insert('rul_temp_obinv','RUL_TEMP_OBINV') *!* Endif *!* Endif *!* Endif *!* If lnSucces > 0 *!* && SCRIE IN ACT *!* If tnScrie_Sterge <> 2 *!* If lnSucces > 0 *!* lcSql = [begin pack_contafin.SCRIE_IN_ACT('] + gcS +['); end;] *!* lnSucces = executaSql(lcSql,'',.t.) *!* *!* If lnSucces < 0 *!* *!* Messagebox('SCRIE_IN_ACT ' + Chr(13) + goExecutor.cEroare,0+16,"Eroare") *!* *!* Endif *!* Endif *!* Else *!* If tlModificare *!* lnSterge = 0 *!* Else *!* lnSterge = 1 *!* Endif *!* lcSql = [begin pack_contafin.STERGE_DIN_ACT('] + gcS +[',] + Alltrim(Str(gnAn)) + [,] + Alltrim(Str(gnLuna)) + [,] + Alltrim(Str(lnCod)) + [,] + Alltrim(Str(gnIdUtil)) + [,] + Alltrim(Str(lnSterge))+ [); end;] *!* lnSucces = executaSql(lcSql,'',.t.) *!* *!* If lnSucces < 0 *!* *!* Messagebox('STERGE_DIN_ACT ' + Chr(13) + goExecutor.cEroare,0+16,"Eroare") *!* *!* Endif *!* Endif *!* Endif *!* If lnSucces > 0 And tlRul *!* && SCRIE IN RUL *!* If tnScrie_Sterge <> 2 *!* lcSql = [begin pack_contafin.SCRIE_IN_RUL(?gcS); end;] *!* lnSucces = executaSql(lcSql,'',.t.) *!* *!* If lnSucces < 0 *!* *!* Messagebox('SCRIE IN RUL ' + Chr(13) + goExecutor.cEroare,0+16,"Eroare") *!* *!* Endif *!* Else *!* lcSql = [begin pack_contafin.STERGE_DIN_RUL('] + gcS +[',] + Alltrim(Str(gnAn)) + [,] + Alltrim(Str(gnLuna)) + [,] + Alltrim(Str(lnCod)) + [,] + Alltrim(Str(gnIdUtil)) + [); end;] *!* lnSucces = executaSql(lcSql,'',.t.) *!* *!* If lnSucces < 0 *!* *!* Messagebox('STERGE DIN RUL ' + Chr(13) + goExecutor.cEroare,0+16,"Eroare") *!* *!* Endif *!* Endif *!* Endif *!* If lnSucces > 0 And tlRul And Used('RUL_TEMP_OBINV') And Reccount('RUL_TEMP_OBINV')>0 *!* && SCRIE IN RUL_OBINV *!* If tnScrie_Sterge <> 2 *!* lcSql = [begin pack_contafin.SCRIE_IN_RUL_OBINV(?gcS); end;] *!* lnSucces = executaSql(lcSql,'',.t.) *!* *!* If lnSucces < 0 *!* *!* Messagebox('SCRIE IN RUL_OBINV ' + Chr(13) + goExecutor.cEroare,0+16,"Eroare") *!* *!* Endif *!* Else *!* lcSql = [begin pack_contafin.STERGE_DIN_RUL_OBINV('] + gcS +[',] + Alltrim(Str(gnAn)) + [,] + Alltrim(Str(gnLuna)) + [,] + Alltrim(Str(lnCod)) + [,] + Alltrim(Str(gnIdUtil)) + [); end;] *!* lnSucces = executaSql(lcSql,'',.t.) *!* *!* If lnSucces < 0 *!* *!* Messagebox('STERGE DIN RUL_OBINV ' + Chr(13) + goExecutor.cEroare,0+16,"Eroare") *!* *!* Endif *!* Endif *!* Endif *!* If lnSucces > 0 *!* && SCRIE IN BALANTA *!* lcSql = [begin pack_contafin.SCRIE_IN_BALANTA('] + gcS +[',] + Alltrim(Str(gnAn)) + [,] + Alltrim(Str(gnLuna)) + [,] + Alltrim(Str(tnScrie_Sterge)) + [); end;] *!* lnSucces = executaSql(lcSql,'',.t.) *!* *!* If lnSucces < 0 *!* *!* Messagebox('SCRIE_IN_BALANTA ' +goExecutor.cEroare,0+16,"Eroare") *!* *!* Endif *!* Endif *!* If lnSucces > 0 *!* && SCRIE IN BALANTA_PARTENERI *!* lcSql = [begin pack_contafin.SCRIE_IN_BALANTA_PARTENERI('] + gcS +[',] + Alltrim(Str(gnAn)) + [,] + Alltrim(Str(gnLuna)) + [,'',] + Alltrim(Str(tnScrie_Sterge)) + [); end;] *!* lnSucces = executaSql(lcSql,'',.t.) *!* *!* If lnSucces < 0 *!* *!* Messagebox('SCRIE_IN_BALANTA_PARTENERI '+goExecutor.cEroare,0+16,"Eroare") *!* *!* Endif *!* Endif *!* If lnSucces > 0 *!* && SCRIE IN IREG_PARTENERI *!* * lcSql = [begin pack_contafin.SCRIE_IN_IREG_PARTENERI('] + gcS +[',] + ALLTRIM(STR(gnAn)) + [,] + ALLTRIM(STR(gnLuna)) + [,'',] + ALLTRIM(STR(tnScrie_Sterge)) + [,1); end;] *!* lcSql = [begin pack_contafin.EXECUTA_SCRIE_IN_IREG('] + gcS +[',] + Alltrim(Str(gnAn)) + [,] + Alltrim(Str(gnLuna)) + [,'',] + Alltrim(Str(tnScrie_Sterge)) + [,0); end;] *!* lnSucces = executaSql(lcSql,'',.t.) *!* *!* If lnSucces < 0 *!* *!* Messagebox('Executa_SCRIE_IN_INREGISTRARI_PARTENERI '+goExecutor.cEroare,0+16,"Eroare") *!* *!* Endif *!* Endif *!* If lnSucces > 0 *!* && SCRIE IN CUMP *!* Select infisiere *!* Locate For Cont = '4426' *!* lcCorespD = Alltrim(coresp_d) *!* lcCorespC = Alltrim(coresp_c) *!* lcCorespDtva = Alltrim(coresp_d) + [,4428,4427] *!* lcCorespCtva = Alltrim(coresp_c) *!* lcExceptii = [-1] *!* lcSql = [select distinct cont_c as exceptie from ] + gcS + [.exceptii_ireg where cont in (] + ; *!* lcCorespD + [) and invers = 1] *!* lnSucces = executaSql(lcSql,'cont_exceptii',.t.) *!* If lnSucces > 0 *!* Select cont_exceptii *!* Scan *!* lcExceptii = lcExceptii + ',' + Alltrim(exceptie) *!* Endscan *!* Use In cont_exceptii *!* Endif *!* If gnAn >= 2007 *!* lcSql = [begin PACK_CONTAFIN.SCRIE_JV_2007(?gnAn, ?gnLuna, ] + ; *!* Iif(tnScrie_Sterge <> 2, 'pack_contafin.nScriere', 'pack_contafin.nStergere') + [); end;] *!* Else *!* lcSql = [begin pack_contafin.EXECUTA_SCRIE_TVA('] + gcS +[', 'cump', 1.19, 1.09, '] + ; *!* lcCorespDtva +[', '] + lcCorespD +[', '] + lcCorespCtva +[', '] + lcCorespC + ; *!* [','4426', '] + lcExceptii +[',] + pcan + [, ] + pcnl + [,] + Alltrim(Str(tnScrie_Sterge)) + [ ); end;] *!* Endif *!* lnSucces = executaSql(lcSql,'',.t.) *!* *!* If lnSucces < 0 *!* *!* Messagebox('SCRIE_IN_CUMP ' +goExecutor.cEroare,0+16,"Eroare") *!* *!* Endif *!* Endif *!* If lnSucces > 0 *!* && SCRIE IN VANZ *!* Select infisiere *!* Locate For Cont = '4427' *!* lcCorespD = Alltrim(coresp_d) *!* lcCorespC = Alltrim(coresp_c)+ [,5121,5311] *!* lcCorespDtva = Alltrim(coresp_d) *!* lcCorespCtva = Alltrim(coresp_c) + [,4428,4426] *!* * lcExceptii = [667,622,419] *!* lcExceptii = [419] *!* lcSql = [select distinct cont_c as exceptie from ] + gcS + [.exceptii_ireg where cont in (] + lcCorespC + [) and invers = 1] *!* lnSucces = executaSql(lcSql,'cont_exceptii',.t.) *!* If lnSucces > 0 *!* Select cont_exceptii *!* Scan *!* lcExceptii = lcExceptii + ',' + Alltrim(exceptie) *!* Endscan *!* Use In cont_exceptii *!* Endif *!* If gnAn >= 2007 *!* lcSql = [begin PACK_CONTAFIN.SCRIE_JC_2007(?gnAn, ?gnLuna, ] + ; *!* Iif(tnScrie_Sterge <> 2, 'pack_contafin.nScriere', 'pack_contafin.nStergere') + [); end;] *!* Else *!* lcSql = [begin pack_contafin.EXECUTA_SCRIE_TVA('] + gcS +[', 'vanz', 1.19, 1.09, '] + ; *!* lcCorespDtva +[', '] + lcCorespD +[', '] + lcCorespCtva +[', '] + lcCorespC +[','4427', '] + ; *!* lcExceptii +[',] + pcan + [, ] + pcnl + [,] + Alltrim(Str(tnScrie_Sterge)) + [ ); end;] *!* Endif *!* lnSucces = executaSql(lcSql,'',.t.) *!* *!* If lnSucces < 0 *!* *!* Messagebox('SCRIE_IN_VANZ '+goExecutor.cEroare,0+16,"Eroare") *!* *!* Endif *!* Endif *!* *!* lcSql = [SELECT * FROM ] + gcS + [.ACT_TEMP] *!* *!* lcCursor = [crsACT_TEMP] *!* *!* lnSucces = executaSql(lcSql,lcCursor) *!* *!* SELECT crsACT_TEMP *!* *!* BROWSE *!* *!* USE IN CRSACT_TEMP *!* If lnSucces > 0 And tlRul *!* Private pcTabel *!* pcTabel = [STOC] *!* pcIdTabel = [ID_STOC] *!* pcConditie = [2=2] *!* lcSql = [begin pack_contafin.SCRIE_IN_Stoc(?gcS,?gnAn,?gnLuna,0,?pcTabel,?pcIdTabel,?pcConditie); end;] *!* lnSucces = executaSql(lcSql,'',.t.) *!* *!* If lnSucces < 0 *!* *!* Messagebox('SCRIE IN STOC ' + Chr(13) + goExecutor.cEroare,0+16,"Eroare") *!* *!* Endif *!* Endif *!* If lnSucces > 0 And tlRul And Used('RUL_TEMP_OBINV') And Reccount('RUL_TEMP_OBINV')>0 *!* Private pcTabel *!* pcTabel = [STOC_OBINV] *!* pcIdTabel = [ID_STOC] *!* pcConditie = [2=2] *!* lcSql = [begin pack_contafin.SCRIE_IN_Stoc_OBINV(?gcS,?gnAn,?gnLuna,0,?pcTabel,?pcIdTabel,?pcConditie); end;] *!* lnSucces = executaSql(lcSql,'',.t.) *!* *!* If lnSucces < 0 *!* *!* Messagebox('SCRIE IN STOC_OBINV ' + Chr(13) + goExecutor.cEroare,0+16,"Eroare") *!* *!* Endif *!* Endif *!* If lnSucces > 0 *!* Private pcMesajRefacereNota *!* pcMesajRefacereNota = "" *!* lcSql = [begin pack_refacere_nota.refacere_nota(?gnAn,?gnLuna,?@pcMesajRefacereNota); end;] *!* lnSucces = executaSql(lcSql,'',.t.) *!* *!* If lnSucces < 0 *!* *!* Messagebox(goExecutor.cEroare,0+16,"Eroare") *!* *!* Endif *!* If !Empty(Nvl(pcMesajRefacereNota,'')) *!* Messagebox(pcMesajRefacereNota,0+48,'Atentie') *!* Endif *!* Release pcMesajRefacereNota *!* Endif *!* If !tlModificare And !llManualTransactions *!* If lnSucces < 0 *!* lcSql = "ROLLBACK" *!* Else *!* lcSql = "COMMIT" *!* Endif *!* lnSucces2 = executaSql(lcSql,'',.t.) *!* *!* If lnSucces2 < 0 *!* *!* Messagebox(lcSql + Chr(13) + goExecutor.cEroare,0+16,"Eroare") *!* *!* Endif *!* lnSucces2 = SQLSetprop(gnhandle,"Transactions",1) *!* If lnSucces2 < 0 *!* Messagebox([Programul nu a reusit sa treaca pe tranzactie automata. ] + ; *!* [Iesiti din program si intrati din nou!],0+48,'Atentie!') *!* Endif *!* Endif *!* *!* IF USED('CRS_ACT') *!* *!* USE IN CRS_ACT *!* *!* ENDIF *!* *!* IF USED('rul_temp') *!* *!* USE IN rul_temp *!* *!* ENDIF *!* *!* IF USED('rul_temp_obinv') *!* *!* USE IN rul_temp_obinv *!* *!* ENDIF *!* Return lnSucces #Define crlf Chr(13) + Chr(10) Public gcdatapath, gcapppath, gnhandle gnhandle = conecteaza([jcsserver],[mariusm_auto],[123]) gcapppath = Justpath(Sys(16,0)) *!* gcapppath = Addbs(Justpath(Sys(16,0))) *!* gcapppath = Left(gcapppath,Rat("\",gcapppath,2)) *!* gcdatapath = ADDBS(gcapppath) + [datemenu] *!* SET PATH TO (gcdatapath) Set Path To (gcapppath) sql_temp_insert([xnote],[xnote]) && ------------------------------------------------------------------------------------ Procedure sql_temp_insert Lparameters tcAlias,tcTableName If !Used(Addbs(gcapppath) + tcAlias) Use (Addbs(gcapppath) + tcAlias) Endif Local lcAlias,lcCursor,lnSucces Private poIreg Local lcVariable If Empty(tcAlias) lcAlias = 'ACTACTAN' Else lcAlias = Upper(Alltrim(tcAlias)) Endif If Empty(tcTableName) lcTableName = 'ACT_TEMP' Else lcTableName = Upper(Alltrim(tcTableName)) Endif lcCursor = 'crs_Coloane' lcSql = [SELECT COLUMN_NAME AS COLOANA from user_tab_columns WHERE table_name = ?lcTableName] lnSucces = executaSql(lcSql,lcCursor,.T.) *!* If lnSucces < 0 *!* Messagebox('Eroare la selectare coloane din ' + lcTableName + Chr(13) + goExecutor.cEroare,0+16,'Eroare') *!* Endif If lnSucces > 0 *** Select (lcAlias) lnCount = Fcount() Select (lcAlias) lcFields = [] lcValues = [] lcInsert = [] Scatter Name poIreg For i = 1 To lnCount ?i Select (lcAlias) lcFieldName = Upper(Alltrim(Field(i))) lcFieldType = Type(lcFieldName) lcFieldValue = Evaluate(lcFieldName) Do Case Case lcFieldType = "C" lcVariable = '?ALLTRIM(poIreg.' + lcFieldName + ')' * CASE lcfieldtype = "L" * lcvariable = IIF(&poIreg.lcFieldName,[1,],[0,] Otherw lcVariable = '?poIreg.' + lcFieldName Endcase Select CRS_COLOANE Locate For Upper(Alltrim(COLOANA)) == lcFieldName If !Found() Loop Endif lcFields = lcFields + [,] + lcFieldName lcNumber = '0' lcDate = '' lcString = '' && FAC NULL ID-URILE CU VALOARE 0 If Inlist(lcFieldName, 'ID_SUCURSALA') If poIreg.id_sucursala = 0 poIreg.id_sucursala = Null Endif Endif lcValues = lcValues + [,] + lcVariable Endfor lcFields = Substr(lcFields,2) lcValues = Substr(lcValues,2) && INSERT INTO ACT_TEMP lcInsert = [INSERT INTO ] + lcTableName + [ (] + lcFields + [) VALUES (] + lcValues + [)] Scan lnSucces = executaSql(lcInsert,'',.T.) If lnSucces < 0 Messagebox([eroare]) Exit Endif Endscan Endif If Used('crs_coloane') Use In CRS_COLOANE Endif USE IN (SELECT(Addbs(gcapppath) + tcAlias)) Return lnSucces Endproc && sql_temp_insert ************************ inceput conecteaza *************************** Procedure conecteaza Lparameters tcHost, tcUser, tcPassword gnhandle = SQLConnect(tcHost, tcUser, tcPassword) If gnhandle < 1 Aerror(laEroare) Messagebox(laEroare(2)) Endif Return gnhandle Endproc **************************** inceput executaSql *************************** Function executaSql Lparameters cmdSql, crsName, tlShowErr Local lnSucces lnSucces = -1 If Pcount() < 2 And !m.tlShowErr crsName="" Endif If gnhandle > 0 lnSucces=SQLExec(gnhandle,cmdSql,crsName) If lnSucces < 0 And m.tlShowErr Aerror(laEroare) eroaresql(@laEroare,cmdSql) Endif Endif Return lnSucces Endfunc ************************* inceput deconecteaza ************************ Function deconecteaza *Lparameters lnConn Local lnSucces lnSucces = -1 If lnConn > 0 lnSucces = SQLDisconnect(gnhandle) Endif On Error Return lnSucces Endfunc ******************************* inceput eroareSql ********************************** Procedure eroaresql Lparameters laErr, lcSql External Array laErr Local lcMesaj lcMesaj = [Eroare # : ] + Alltrim(Str(laErr(1))) + crlf + ; [Mesajul : ] + laErr(2) + ; IIF(!Empty(laErr(3)), [Eroare OLE : ] + laErr(3) ,[]) + ; [Aplicatie : ] + laErr(4) + ; IIF(Pcount() = 2, crlf + lcSql, []) Messagebox(lcMesaj,0+16) Endproc