Files
vfp_roaauto/COMUN/programe/oinainte_de.prg

412 lines
12 KiB
Plaintext

*!* 27.02.2012
*!* marius.mutu
*!* verificare inainte_de in functie de optiune 0 = VERIFICARE, 1 = NU SE VERIFICA, 2 = INTREBARE UTILIZATOR
*!* 14.07.2017
*!* marius.mutu
*!* INAINTE_DE_STOC
*!* adaugat parametru tcListaIdGestiuni (optional) pentru verificarea unei liste de gestiuni la adaugare inventar
*******************************************
* PROCEDURE INAINTE( tcProc, tcCont )
* Data/ora : 10/27/04, 11:30:19
* autor : liana.macinic
* descriere:
****** PARAMETER BLOCK **************
* Parametri : 2
* Parameter 1: numele procedurii de pe server
* Parameter 2: contul
*
*******************************************
*!* do inainte WITH "IREG_parteneri",lcContPart in oinainte_de.prg
Procedure INAINTE( tcProc, tcCont, tcVMesaj, tcVTip, tcExceptii, tcCoresp, tnLuna, tnAn )
Local lcProc, lcCont, lcMesaj, lcTip, llProgress, lnLuna, lnAn
*!* 27.02.2012
If Type('gnVerificareInainte') <> 'N'
Local gnVerificareInainte
gnVerificareInainte = 0
Endif
*** FARA VERIFICARE
If gnVerificareInainte = 1
Wait Window 'Nu se verifica corelatiile...' Nowait
Return
Endif
*** INTREBARE UTILIZATOR
If gnVerificareInainte = 2
lnOptiune = xmenu("\<Fara verificare corelatii;\-;\<Verificare corelatii")
If m.lnOptiune = 1
Wait Window 'Nu se verifica corelatiile...' Nowait
Return
Endif
Endif
*!* 27.02.2012 ^
If Empty(tnLuna)
lnLuna = gnLuna
Else
lnLuna = tnLuna
Endif
If Empty(tnAn)
lnAn = gnAn
Else
lnAn = tnAn
Endif
*!* IF !EMPTY(tcCont) AND tcCont = '4118'
*!* DEBUG
*!* SUSPEND
*!* ENDIF
lcProc = "INAINTE_DE_" + Alltrim(tcProc)
If Empty(tcCont)
lcCont = ""
Else
lcCont = [, '] + Alltrim(tcCont) + [']
Endif
*---le-am bagat pentru lista conturilor corespondente (vanz)
If !Empty(tcExceptii)
lcCont = lcCont + [,] + tcExceptii
Endif
If !Empty(tcCoresp)
lcCont = lcCont + [,] + tcCoresp
Endif
*---le-am bagat pentru lista conturilor corespondente
If Empty(tcVMesaj)
llProgress = .T.
Else
llProgress = .F.
Endif
lcSql = [select PACK_INAINTE_DE.] + lcProc + [(] + Alltrim(Str(lnAn)) + [,] + Alltrim(Str(lnLuna)) + [,?gnIdSucursala] + lcCont + [) AS VALOARE FROM DUAL]&&[select * from ] + gcS + [.calendar]
lcCursor = [crsRezultate]
lnSucces = goExecutor.oExecute(lcSql, lcCursor, llProgress)
If lnSucces < 0
aMessagebox(goExecutor.cEroare, 0 + 16, "Eroare")
Else
Select crsRezultate
If !Empty(valoare) And !Isnull(valoare)
lcMasaj = crsRezultate.valoare
If 'VANZ2007' $ Upper(lcProc) Or 'CUMP2007' $ Upper(lcProc)
aMessagebox(lcMasaj, 0 + 48, 'Diferente')
Else
lnOccurs = Occurs(crlf, lcMasaj)
For i = 1 To lnOccurs
lcString = Strextract(lcMasaj, ':', crlf, i)
If Substr(lcString, 1, 1) = "<" && diferente intre suma analiticelor si sintetice
lcString1 = Substr(lcString, 2, Len(lcString) - 2)
Else
lcString1 = Transform(Val(Strtran(lcString, ' ', '')), '999 999 999 999 999.9999')
Endif
lcMasaj = Strtran(lcMasaj, lcString, " " + Alltrim(lcString1))
Endfor
If Substr(valoare, 2, 2) == Chr(13) + Chr(10)
lcTip = Substr(valoare, 1, 1)
lcMesaj = Substr(lcMasaj, 4)
Else
lcTip = ""
lcMesaj = lcMasaj
Endif
If Empty(tcVMesaj)
lcMasaj = Substr(lcMasaj, 4)
If !Empty(lcMasaj)
aMessagebox(lcMasaj, 0 + 48, 'Diferente ' + STRTRAN(STRTRAN(TRANSFORM(m.lcCont), [,], []), ['], [],1,2))
*!* ooo = CREATEOBJECT('frm_inainte_de')
*!* ooo.cMesaj = lcMasaj
*!* ooo.edit1.HEIGHT = lnOccurs*20
*!* ooo.HEIGHT = 54 + lnOccurs*20
*!* ooo.AUTOCENTER = .T.
*!* ooo.SHOW()
*!* RELEASE ooo
Endif
Else
If !Empty(tcVTip)
&tcVTip = lcTip
Endif
&tcVMesaj = lcMesaj
Endif
Endif && 'VANZ2007'$UPPER(lcProc) OR 'CUMP2007'$UPPER(lcProc)
Endif && !EMPTY(valoare) AND !ISNULL(valoare)
goExecutor.oReset()
Use In crsRezultate
Endif
Endproc
**********************sfarsit procedura INAINTE*******************
* PROCEDURE test_ireg( tcCont, tnActiv )
* Date : 02.11.2004, 16:05:34
* author : catalin.neagu
* description:
****** PARAMETER BLOCK **************
* Parameters : 2
* Parameter 1:
* Parameter 2:
*
******************************************* INCEPUT:test_ireg *******************************************
Procedure test_ireg( tcCont, tlActiv, tnLuna, tnAn )
Local lcCont, lnActiv, lnLuna, lnAn
lnActiv = 0
If tlActiv
lnActiv = 1
Endif
If Empty(tnLuna)
lnLuna = gnLuna
Else
lnLuna = tnLuna
Endif
If Empty(tnAn)
lnAn = gnAn
Else
lnAn = tnAn
Endif
lcCont = Alltrim(tcCont)
lcSql = [select PACK_INAINTE_DE.TEST_INREGISTRARI(] + Alltrim(Str(lnAn)) + [,] + Alltrim(Str(lnLuna)) + [,?gnIdSucursala,'] + lcCont + [',] + Alltrim(Str(lnActiv)) + [) AS VALOARE FROM DUAL]&&[select * from ] + gcS + [.calendar]
*!* STRTOFILE(lcSql,'c:\inaintedetest.txt')
lcCursor = [crsRezultate]
lnSucces = goExecutor.oExecute(lcSql, lcCursor)
If lnSucces < 0
aMessagebox(goExecutor.cEroare, 0 + 16, "Eroare")
Else
Select crsRezultate
If !Empty(valoare) And !Isnull(valoare)
valoare = Alltrim(valoare)
lcOcurr = Occurs('*', valoare)
lcValoare = Iif(Substr(valoare, 1, 1) = '*', '', '*') + valoare
Dimension laMesaje(lcOcurr)
For i = 1 To lcOcurr
laMesaje[i] = Strextract(lcValoare, '*', '*', i)
Endfor
Endif .
*!* PUBLIC ARRAY lam(1,3)
If Type('laMesaje') # "U"
otree = Createobject('teste_ireg', @laMesaje, lcCont, lnActiv)
otree.Show(1)
Release otree
Endif
goExecutor.oReset()
Use In crsRezultate
Endif
Endproc
******************************************* SFARSIT: test_ireg *******************************************
* PROCEDURE test_casa( tcCont, tnActiv )
* Date : 25.05.2005, 10:16:34
* author : georgiana.voicu
* description:
****** PARAMETER BLOCK **************
* Parameters : 2
* Parameter 1:
* Parameter 2:
*
******************************************* INCEPUT:test_casa *******************************************
Procedure test_casa
Lparameters tcCont
Private pcContTestCasa
pcContTestCasa = Alltrim(tcCont)
*!* 27.02.2012
If Type('gnVerificareInainte') <> 'N'
Local gnVerificareInainte
gnVerificareInainte = 0
Endif
*** FARA VERIFICARE
If gnVerificareInainte = 1
Wait Window 'Nu se verifica corelatiile...' Nowait
Return
Endif
*** INTREBARE UTILIZATOR
If gnVerificareInainte = 2
lnOptiune = xmenu("\<Fara test casa;\-;\<Test casa")
If m.lnOptiune = 1
Wait Window 'Nu se face test casa...' Nowait
Return
Endif
Endif
*!* 27.02.2012 ^
lcSql = [select PACK_INAINTE_DE.TEST_CASA(?gnAn,?gnLuna,?pcContTestCasa,?gnIdSucursala) AS VALOARE FROM DUAL]
lcCursor = [crsRezultate]
*!* lt1 = Datetime()
lnSucces = goExecutor.oExecute(lcSql, lcCursor)
*!* lt2 = Datetime()
If lnSucces < 0
aMessagebox(goExecutor.cEroare, 0 + 16, "Eroare")
Else
*!* MessageBox(Ttoc(lt1,3)+Chr(13)+Chr(10)+Ttoc(lt2,3)+Chr(13)+Chr(10)+Ttoc(lt3,3)+Chr(13)+Chr(10)+Ttoc(lt4,3)+Chr(13)+Chr(10))
Select crsRezultate
If !Empty(valoare) And !Isnull(valoare)
valoare = Alltrim(valoare)
lcOcurr = Occurs('*', valoare)
lcValoare = Iif(Substr(valoare, 1, 1) = '*', '', '*') + valoare
*!* modificare v 2.0.124
*!* Strtofile(Strtran(lcValoare,[*],Chr(13)+Chr(10)),[C:\2.txt])
If Type('goLog') = 'O'
goLog.Log(Strtran(lcValoare, [*], Chr(13) + Chr(10)))
Endif
*!* modificare v 2.0.124 ^
Dimension laMesaje(lcOcurr)
For i = 1 To lcOcurr
laMesaje[i] = Strextract(lcValoare, '*', '*', i)
Endfor
Endif
If Type('laMesaje') # "U"
otree = Createobject('teste_ireg', @laMesaje)
otree.Lb_titlu_alb_b121.Caption = [TEST CASA]
otree.Show(1)
Release otree
Endif
goExecutor.oReset()
If Used('crsRezultate')
Use In crsRezultate
Endif
Endif
Release pcContTestCasa
Endproc
******************************************* SFARSIT: test_casa *******************************************
******************************************* INCEPUT: verific_stoc_cu_balanta *******************************************
Procedure verific_stoc_cu_balanta
Parameters tcCont, tnOptiune
Local lcCont, lnOptiune, lnOccurs, lcValoare, i
i = 1
lnOptiune = tnOptiune
lcCont = Alltrim(tcCont)
*!* lcSql = [select PACK_INAINTE_DE.INAINTE_DE_STOC(']+lcCont+[',?gnAn,?gnLuna,]+ALLTRIM(STR(lnOptiune))+[,?gnIdSucursala) AS VALOARE FROM DUAL]
lcSql = [select pack_inainte_de.inainte_de_stoc('] + lcCont + [',] + Alltrim(Str(gnAn)) + "," + Alltrim(Str(gnLuna)) + "," + ;
+ Iif(Isnull(gnIdSucursala), "null", Alltrim(Str(gnIdSucursala))) + "," + Alltrim(Str(lnOptiune)) + ") as valoare from dual"
*STRTOFILE(lcsql,'c:\pack_inainte_destoc.txt')
lcCursor = [crsRezultate]
lnSucces = goExecutor.oExecute(lcSql, lcCursor)
If lnSucces < 0
aMessagebox(goExecutor.cEroare, 0 + 16, "Eroare")
Else
Select crsRezultate
lcValoare = Alltrim(valoare)
*STRTOFILE(lcValoare+CHR(13)+'Apare de :'+STR(OCCURS(CHR(10),lcValoare)),'c:\valoare.txt')
lcStr = Strextract(lcValoare, ' = ', ' ', i)
lcStr = Alltrim(lcStr)
Do While !Empty(lcStr)
lcStr = Strextract(lcValoare, ' = ', ' ', i)&& extrag elem i
lcStr = Alltrim(Strtran(lcStr, ' ', '') )&& in caz ca este formatat ii scoate spatiile libere
lcValoare = Strtran(lcValoare, ' ' + lcStr + ' ', ' ' + Alltrim(Transform(Val(lcStr), '999 999 999 999 999.99')) + ' ')
i = i + 1
lcStr = Strextract(lcValoare, ' = ', ' ', i)
*lcStr=ALLTRIM(STRTRAN(lcStr,' ','') )
Enddo
lnOccurs = Occurs(Chr(10), lcValoare)
ooo = Createobject('frm_inainte_de')
ooo.cMesaj = lcValoare
**ooo.width = 550
ooo.edit1.Height = lnOccurs * 20
ooo.Height = 54 + lnOccurs * 20
ooo.AutoCenter = .T.
ooo.Show()
Release ooo
Use In crsRezultate
Endif
Endproc
******************************************* SFARSIT: verific_stoc_cu_balanta *******************************************
************************
*** Verifica stocul cantitativ si valoric al lunii curente fata de luna precedenta
************************
Procedure INAINTE_DE_STOC
Parameters tnAn, tnLuna, tnTipGest, tnStocObinv, tcListaIdGestiuni
Local lcCursor, lcSql, lnSucces, lcSelect, lcValoare
Local lcIdGestiune, lnGestiune, lnGestiuni, lnIdGestiune, lcSeparator, lcListaIdGestiuni
lcValoare = ''
lcSeparator = '|'
lcSelect = Select()
If Empty(Nvl(tcListaIdGestiuni, ''))
lcListaIdGestiuni = 'null'
ELSE
&& elimin separatorul de lista, daca apare la sfarsit. considera ca este un element
lcListaIdGestiuni = IIF(RIGHT(ALLTRIM(m.tcListaIdGestiuni),1) = m.lcSeparator, LEFT(ALLTRIM(m.tcListaIdGestiuni), LEN(ALLTRIM(m.tcListaIdGestiuni)) - 1), ALLTRIM(m.tcListaIdGestiuni))
&& elimin "" sau ''
lcListaIdGestiuni = STRTRAN(STRTRAN(m.lcListaIdGestiuni, ["], []), ['], [])
Endif
lnGestiuni = Getwordcount(m.lcListaIdGestiuni, '|')
For lnGestiune = 1 To m.lnGestiuni
lcIdGestiune = Getwordnum(m.lcListaIdGestiuni, m.lnGestiune, '|')
Wait Window 'Verificare stoc precedent ... ' + ;
IIF(m.lcIdGestiune <> 'null', m.lcIdGestiune, 'toate gestiunile') + ;
IIF(m.tnTipGest = 2, ' tip materii prime/materiale', ;
IIF(m.tnTipGest = 3, ' tip obiecte inventar', ;
IIF(m.tnTipGest = 4, ' tip produse', ;
IIF(m.tnTipGest = 5, ' tip marfa pret achizitie', ;
IIF(m.tnTipGest = 6, ' tip marfa pret vanzare', ;
IIF(m.tnTipGest = 7, ' tip marfa pret achizitie*','')))))) NOWAIT
lnIdGestiune = Iif(LOWER(m.lcIdGestiune) = 'null', Null, Int(Val(m.lcIdGestiune)))
lcSql = "select pack_inainte_de.inainte_de_stoc(" + Alltrim(Str(tnAn)) + "," + Alltrim(Str(tnLuna)) + "," + ;
Alltrim(Str(tnTipGest)) + "," + Alltrim(Str(tnStocObinv)) + "," + Iif(Isnull(gnIdSucursala), "null", Alltrim(Str(gnIdSucursala))) + "," + Iif(Empty(Nvl(m.lnIdGestiune, '')), "null", Alltrim(Str(lnIdGestiune))) + ") as valoare from dual"
lcCursor = [crsRezultate]
lnSucces = goExecutor.oExecute(lcSql, lcCursor)
If lnSucces < 0
aMessagebox(goExecutor.cEroare, 0 + 16, "Eroare")
ELSE
Select crsRezultate
IF !EMPTY(ALLTRIM(Nvl(valoare, '')))
lcValoare = lcValoare + ALLTRIM(Nvl(valoare, '')) + Chr(13) + Chr(10)
ENDIF
Endif
Use In (Select('crsRezultate'))
Endfor
If !Empty(m.lcValoare)
aMessagebox(m.lcValoare, 0 + 48, "Verificare")
ENDIF
Select (m.lcSelect)
Return m.lcValoare
Endproc && INAINTE_DE_STOC