Import initial din SVN ROAAUTO/Trunk @HEAD
This commit is contained in:
137
COMUN/programe/Procese.prg
Normal file
137
COMUN/programe/Procese.prg
Normal file
@@ -0,0 +1,137 @@
|
||||
FUNCTION Createprocess(lcExe,lcCommandLine,lnShowWindow,llWaitForCompletion)
|
||||
LOCAL hProcess, cProcessInfo, cStartupInfo
|
||||
|
||||
DECLARE INTEGER CreateProcess IN kernel32 as _CreateProcess;
|
||||
STRING lpApplicationName,;
|
||||
STRING lpCommandLine,;
|
||||
INTEGER lpProcessAttributes,;
|
||||
INTEGER lpThreadAttributes,;
|
||||
INTEGER bInheritHandles,;
|
||||
INTEGER dwCreationFlags,;
|
||||
INTEGER lpEnvironment,;
|
||||
STRING lpCurrentDirectory,;
|
||||
STRING lpStartupInfo,;
|
||||
STRING @ lpProcessInformation
|
||||
|
||||
cProcessinfo = REPLICATE(CHR(0),128)
|
||||
cStartupInfo = GetStartupInfo(lnShowWindow)
|
||||
|
||||
|
||||
|
||||
IF !EMPTY(lcCommandLine)
|
||||
lcCommandLine = ["] + lcExe + [" ]+ lcCommandLine
|
||||
ELSE
|
||||
lcCommandLine = ""
|
||||
ENDIF
|
||||
lnResult = _CreateProcess(lcExe,lcCommandLine,0,0,1,0,0,;
|
||||
SYS(5)+CURDIR(),cStartupInfo,@cProcessInfo)
|
||||
lhProcess = CHARTOBIN( SUBSTR(cProcessInfo,1,4) )
|
||||
IF llWaitForCompletion
|
||||
#DEFINE WAIT_TIMEOUT 0x00000102
|
||||
DECLARE INTEGER WaitForSingleObject IN kernel32.DLL ;
|
||||
INTEGER hHandle, INTEGER dwMilliseconds
|
||||
DO WHILE .T.
|
||||
*** Update every 100 milliseconds
|
||||
IF WaitForSingleObject(lhProcess, 100) != WAIT_TIMEOUT
|
||||
EXIT
|
||||
ELSE
|
||||
DOEVENTS
|
||||
ENDIF
|
||||
ENDDO
|
||||
ENDIF
|
||||
|
||||
DECLARE INTEGER CloseHandle IN kernel32.DLL ;
|
||||
INTEGER hObject
|
||||
CloseHandle(lhProcess)
|
||||
RETURN IIF(lnResult=1,.t.,.f.)
|
||||
ENDFUNC
|
||||
|
||||
|
||||
|
||||
|
||||
FUNCTION getStartupInfo(lnShowWindow)
|
||||
LOCAL lnFlags
|
||||
* creates the STARTUP structure to specify main window
|
||||
* properties if a new window is created for a new process
|
||||
IF EMPTY(lnShowWindow)
|
||||
lnShowWindow = 1
|
||||
ENDIF
|
||||
*| typedef struct _STARTUPINFO {
|
||||
*| DWORD cb; 4
|
||||
*| LPTSTR lpReserved; 4
|
||||
*| LPTSTR lpDesktop; 4
|
||||
*| LPTSTR lpTitle; 4
|
||||
*| DWORD dwX; 4
|
||||
*| DWORD dwY; 4
|
||||
*| DWORD dwXSize; 4
|
||||
*| DWORD dwYSize; 4
|
||||
*| DWORD dwXCountChars; 4
|
||||
*| DWORD dwYCountChars; 4
|
||||
*| DWORD dwFillAttribute; 4
|
||||
*| DWORD dwFlags; 4
|
||||
*| WORD wShowWindow; 2
|
||||
*| WORD cbReserved2; 2
|
||||
*| LPBYTE lpReserved2; 4
|
||||
*| HANDLE hStdInput; 4
|
||||
*| HANDLE hStdOutput; 4
|
||||
*| HANDLE hStdError; 4
|
||||
*| } STARTUPINFO, *LPSTARTUPINFO; total: 68 bytes
|
||||
|
||||
|
||||
#DEFINE STARTF_USESTDHANDLES 0x0100
|
||||
#DEFINE STARTF_USESHOWWINDOW 1
|
||||
#DEFINE SW_HIDE 0
|
||||
#DEFINE SW_SHOWMAXIMIZED 3
|
||||
#DEFINE SW_SHOWNORMAL 1
|
||||
lnFlags = STARTF_USESHOWWINDOW
|
||||
RETURN binToChar(80) +;
|
||||
binToChar(0) + binToChar(0) + binToChar(0) +;
|
||||
binToChar(0) + binToChar(0) + binToChar(0) + binToChar(0) +;
|
||||
binToChar(0) + binToChar(0) + binToChar(0) +;
|
||||
binToChar(lnFlags) +;
|
||||
binToWordChar(lnShowWindow) +;
|
||||
binToWordChar(0) + binToChar(0) +;
|
||||
binToChar(0) + binToChar(0) + binToChar(0) + REPLICATE(CHR(0),30)
|
||||
ENDFUNC
|
||||
|
||||
|
||||
|
||||
FUNCTION CharToBin(lcBinString,llSigned)
|
||||
LOCAL m.i, lnWord
|
||||
lnWord = 0
|
||||
FOR m.i = 1 TO LEN(lcBinString)
|
||||
lnWord = lnWord + (ASC(SUBSTR(lcBinString, m.i, 1)) * (2 ^ (8 * (m.i - 1))))
|
||||
ENDFOR
|
||||
|
||||
IF llSigned AND lnWord > 0x80000000
|
||||
lnWord = lnWord - 1 - 0xFFFFFFFF
|
||||
ENDIF
|
||||
RETURN lnWord
|
||||
* wwAPI :: CharToBin
|
||||
ENDFUNC
|
||||
|
||||
************************************************************************
|
||||
FUNCTION BinToChar(lnValue)
|
||||
****************************************
|
||||
Local byte(4)
|
||||
If lnValue < 0
|
||||
lnValue = lnValue + 4294967296
|
||||
EndIf
|
||||
byte(1) = lnValue % 256
|
||||
byte(2) = BitRShift(lnValue, 8) % 256
|
||||
byte(3) = BitRShift(lnValue, 16) % 256
|
||||
byte(4) = BitRShift(lnValue, 24) % 256
|
||||
RETURN Chr(byte(1))+Chr(byte(2))+Chr(byte(3))+Chr(byte(4))
|
||||
* wwAPI :: BinToChar
|
||||
ENDFUNC
|
||||
|
||||
************************************************************************
|
||||
FUNCTION BinToWordChar(lnValue)
|
||||
****************************************
|
||||
*** Function: Creates a DWORD value from a number
|
||||
*** Pass: lnValue - VFP numeric integer (unsigned)
|
||||
*** Return: binary string
|
||||
************************************************************************
|
||||
RETURN Chr(MOD(m.lnValue,256)) + CHR(INT(m.lnValue/256))
|
||||
ENDFUNC
|
||||
|
||||
223
COMUN/programe/Reports/DynamicFormatting.prg
Normal file
223
COMUN/programe/Reports/DynamicFormatting.prg
Normal file
@@ -0,0 +1,223 @@
|
||||
* Define a class that knows how to apply effects to objects in a report.
|
||||
|
||||
DEFINE CLASS EffectsListener AS _ReportListener OF ;
|
||||
HOME() + 'ffc\_ReportListener.vcx'
|
||||
|
||||
oEffectHandlers = .NULL.
|
||||
&& a collection of effect handlers
|
||||
DIMENSION aRecords[1]
|
||||
&& an array of information for each record in the FRX
|
||||
|
||||
* Create a collection of effect handler objects and fill it with the handlers
|
||||
* we know about. A subclass or instance could be filled with additional ones.
|
||||
|
||||
FUNCTION INIT
|
||||
DODEFAULT()
|
||||
WITH THIS
|
||||
.oEffectHandlers = CREATEOBJECT('Collection')
|
||||
.oEffectHandlers.ADD(CREATEOBJECT('DynamicForeColorEffect'))
|
||||
.oEffectHandlers.ADD(CREATEOBJECT('DynamicStyleEffect'))
|
||||
ENDWITH
|
||||
ENDFUNC
|
||||
|
||||
* Dimension aRecords to as many records as there are in the FRX so we don't
|
||||
* have to redimension it as the report runs. The first column indicates if
|
||||
* we've processed that record in the FRX yet and the second column contains
|
||||
* a collection of effect handlers used to process the record.
|
||||
|
||||
FUNCTION BEFOREREPORT
|
||||
DODEFAULT()
|
||||
WITH THIS
|
||||
.SetFRXDataSession()
|
||||
DIMENSION .aRecords[reccount(), 2]
|
||||
.ResetDataSession()
|
||||
ENDWITH
|
||||
ENDFUNC
|
||||
|
||||
PROCEDURE ONPREVIEWCLOSE
|
||||
PARAMETERS lPrint
|
||||
LOCAL liRange
|
||||
|
||||
THIS.COMMANDCLAUSES.PROMPT = .T.
|
||||
DODEFAULT(lPrint)
|
||||
ENDPROC && OnPrevieClose
|
||||
|
||||
* Apply any effects that were requested to the field about to be rendered.
|
||||
|
||||
FUNCTION EVALUATECONTENTS(tnFRXRecno, toObjProperties)
|
||||
LOCAL loEffectObject, ;
|
||||
loEffectHandler, ;
|
||||
lcExpression
|
||||
WITH THIS
|
||||
|
||||
* If we haven't already checked if this field needs any effects, do so and
|
||||
* flag that we have checked it so we don't do it again.
|
||||
|
||||
IF NOT .aRecords[tnFRXRecno, 1]
|
||||
.aRecords[tnFRXRecno, 1] = .T.
|
||||
.aRecords[tnFRXRecno, 2] = .SetupEffectsForObject(tnFRXRecno)
|
||||
ENDIF NOT .aRecords[tnFRXRecno, 1]
|
||||
|
||||
* Go through the collection of effect handlers for the field (the collection
|
||||
* may be empty if the field doesn't need any effects), letting each one do its
|
||||
* thing.
|
||||
|
||||
FOR EACH loEffectObject IN .aRecords[tnFRXRecno, 2]
|
||||
loEffectHandler = loEffectObject.oEffectHandler
|
||||
lcExpression = loEffectObject.cExpression
|
||||
loEffectHandler.Execute(toObjProperties, lcExpression)
|
||||
NEXT loEffect
|
||||
ENDWITH
|
||||
|
||||
* Do the normal behavior.
|
||||
|
||||
DODEFAULT(tnFRXRecno, toObjProperties)
|
||||
ENDFUNC
|
||||
|
||||
* Go through each effect handler to see if it'll handle the current report
|
||||
* object. If so, add it to a collection of handlers for the object, and return
|
||||
* that collection.
|
||||
|
||||
FUNCTION SetupEffectsForObject(tnFRXRecno)
|
||||
LOCAL loFRX, ;
|
||||
loHandlers, ;
|
||||
loObject
|
||||
WITH THIS
|
||||
loFRX = .GetReportObject(tnFRXRecno)
|
||||
loHandlers = CREATEOBJECT('Collection')
|
||||
FOR EACH loEffectHandler IN .oEffectHandlers
|
||||
loObject = loEffectHandler.GetEffect(loFRX)
|
||||
IF VARTYPE(loObject) = 'O'
|
||||
loHandlers.ADD(loObject)
|
||||
ENDIF VARTYPE(loObject) = 'O'
|
||||
NEXT loEffectHandler
|
||||
ENDWITH
|
||||
RETURN loHandlers
|
||||
ENDFUNC
|
||||
|
||||
* Return a SCATTER NAME object for the specified record in the FRX.
|
||||
|
||||
PROCEDURE GetReportObject(tnFRXRecno)
|
||||
LOCAL loObject
|
||||
THIS.SetFRXDataSession()
|
||||
GO tnFRXRecno
|
||||
SCATTER MEMO NAME loObject
|
||||
THIS.ResetDataSession()
|
||||
RETURN loObject
|
||||
ENDPROC
|
||||
ENDDEFINE
|
||||
|
||||
* Create a class that holds a reference to an effect handler and the expression
|
||||
* the effect handler is supposed to act on for a particular record in the FRX.
|
||||
|
||||
DEFINE CLASS EffectObject AS CUSTOM
|
||||
oEffectHandler = .NULL.
|
||||
cExpression = ''
|
||||
ENDDEFINE
|
||||
|
||||
* Define an abstract class for effect handler objects.
|
||||
|
||||
DEFINE CLASS EffectHandler AS CUSTOM
|
||||
|
||||
* Execute is called by the EvaluateContents method of EffectsListener to
|
||||
* perform an effect.
|
||||
|
||||
FUNCTION Execute(toObjProperties, tcExpression)
|
||||
ENDFUNC
|
||||
|
||||
* GetEffects is called to return an object containing a reference to the
|
||||
* handler and the expression it's supposed to work on if the specified report
|
||||
* object needs this effect, or return null if not.
|
||||
|
||||
FUNCTION GetEffect(toFRX)
|
||||
LOCAL loObject
|
||||
loObject = .NULL.
|
||||
RETURN loObject
|
||||
ENDFUNC
|
||||
|
||||
* EvaluateExpression may be called by Execute to evaluate the specified
|
||||
* expression.
|
||||
|
||||
FUNCTION EvaluateExpression(tcExpression)
|
||||
RETURN EVALUATE(tcExpression)
|
||||
ENDFUNC
|
||||
ENDDEFINE
|
||||
|
||||
* Define an abstract class for effect handlers that look for
|
||||
* "*:EFFECTS <effectname> = <effectexpression>" in the USER memo.
|
||||
|
||||
DEFINE CLASS UserEffectHandler AS EffectHandler
|
||||
cEffectsDirective = '*:EFFECTS'
|
||||
&& the directive that indicates an effect is needed
|
||||
cEffectName = ''
|
||||
&& the effect name to look for (filled in in a subclass)
|
||||
|
||||
FUNCTION GetEffect(toFRX)
|
||||
LOCAL lcEffect, ;
|
||||
loObject
|
||||
lcEffect = THIS.cEffectsDirective + ' ' + THIS.cEffectName
|
||||
IF ATC(lcEffect, toFRX.USER) > 0
|
||||
loObject = CREATEOBJECT('EffectObject')
|
||||
loObject.oEffectHandler = THIS
|
||||
loObject.cExpression = STREXTRACT(toFRX.USER, lcEffect + ' = ', ;
|
||||
CHR(13), 1, 3)
|
||||
ELSE
|
||||
loObject = .NULL.
|
||||
ENDIF ATC(lcEffect, toFRX.USER) > 0
|
||||
RETURN loObject
|
||||
ENDFUNC
|
||||
ENDDEFINE
|
||||
|
||||
* Define a class to provide dynamic forecolor effects.
|
||||
|
||||
DEFINE CLASS DynamicForeColorEffect AS UserEffectHandler
|
||||
cEffectName = 'FORECOLOR'
|
||||
|
||||
* Evaluate the expression. If the result is a numeric value and doesn't match
|
||||
* the existing color of the object, change the object's color and set the
|
||||
* Reload flag to .T.
|
||||
|
||||
FUNCTION Execute(toObjProperties, tcExpression)
|
||||
LOCAL lnColor, ;
|
||||
lnPenRed, ;
|
||||
lnPenGreen, ;
|
||||
lnPenBlue
|
||||
lnColor = THIS.EvaluateExpression(tcExpression)
|
||||
IF VARTYPE(lnColor) = 'N'
|
||||
lnPenRed = BITAND(lnColor, 0x0000FF)
|
||||
lnPenGreen = BITRSHIFT(BITAND(lnColor, 0x00FF00), 8)
|
||||
lnPenBlue = BITRSHIFT(BITAND(lnColor, 0xFF0000), 16)
|
||||
WITH toObjProperties
|
||||
IF .PenRed <> lnPenRed OR ;
|
||||
.PenGreen <> lnPenGreen OR ;
|
||||
.PenBlue <> lnPenBlue
|
||||
.PenRed = lnPenRed
|
||||
.PenGreen = lnPenGreen
|
||||
.PenBlue = lnPenBlue
|
||||
.Reload = .T.
|
||||
ENDIF .PenRed <> lnPenRed ...
|
||||
ENDWITH
|
||||
ENDIF VARTYPE(lnColor) = 'N'
|
||||
ENDFUNC
|
||||
ENDDEFINE
|
||||
|
||||
* Define a class to provide dynamic style effects.
|
||||
|
||||
DEFINE CLASS DynamicStyleEffect AS UserEffectHandler
|
||||
cEffectName = 'STYLE'
|
||||
|
||||
* Evaluate the expression. If the result is a numeric value and doesn't match
|
||||
* the existing style of the object, change the object's style and set the
|
||||
* Reload flag to .T.
|
||||
|
||||
FUNCTION Execute(toObjProperties, tcExpression)
|
||||
LOCAL lnStyle
|
||||
lnStyle = THIS.EvaluateExpression(tcExpression)
|
||||
WITH toObjProperties
|
||||
IF VARTYPE(lnStyle) = 'N' AND .FontStyle <> lnStyle
|
||||
.FontStyle = lnStyle
|
||||
.Reload = .T.
|
||||
ENDIF VARTYPE(lnStyle) = 'N' ...
|
||||
ENDWITH
|
||||
ENDFUNC
|
||||
ENDDEFINE
|
||||
306
COMUN/programe/acces_meniu.prg
Normal file
306
COMUN/programe/acces_meniu.prg
Normal file
@@ -0,0 +1,306 @@
|
||||
*!* 08.08.2011
|
||||
*!* marius.mutu
|
||||
*!* dezactiveaza_imagini - am marit distanta dintre imagini - ca sa nu se ingramadeasca textul cu shortcut-ul
|
||||
|
||||
*!* 09.12.2021
|
||||
*!* marius..mutu
|
||||
*!* dezactiveaza_meniuri - adaugare meniu Verificare, Import
|
||||
**********************************************************************************************
|
||||
Procedure verifica_drepturi
|
||||
Lparameters tcObiectFundal, tcPageFrame
|
||||
citeste_drepturi(gnIdUtil)
|
||||
dezactiveaza_obiecte_pageframe(65, tcObiectFundal + [.] + tcPageFrame)
|
||||
dezactiveaza_imagini(tcObiectFundal)
|
||||
dezactiveaza_meniuri(90)
|
||||
Endproc
|
||||
**********************************************************************************************
|
||||
Procedure citeste_drepturi
|
||||
Lparameters tnIdUtil
|
||||
|
||||
If Used('crsdrepturi')
|
||||
Select crsdrepturi
|
||||
Locate For id_firma = gnIdFirma
|
||||
If Found()
|
||||
Return
|
||||
Else
|
||||
Use In crsdrepturi
|
||||
Endif
|
||||
Endif
|
||||
lcSql = [select cheie,id_firma from contafin_oracle.vdef_util_obiecte ] + ;
|
||||
[where id_util = ?gnIdUtil and id_program=?gnIdProgram and id_firma=?gnIdFirma]
|
||||
lnSucces = goExecutor.oExecute(lcSql, 'crsdrepturi')
|
||||
If lnSucces < 0
|
||||
aMESSAGEBOX(goExecutor.cEroare, 0 + 16, 'Eroare')
|
||||
Return
|
||||
Endif
|
||||
|
||||
Endproc
|
||||
**********************************************************************************************
|
||||
Procedure dezactiveaza_imagini
|
||||
Lparameters loObiect
|
||||
Local i, k, j, l, lnMinLeft
|
||||
Dimension laImaginiVizibile(20, 2)
|
||||
k = 0
|
||||
&& left=3 pentru prima imagine
|
||||
With &loObiect
|
||||
For i = 1 To .ControlCount
|
||||
If Alltrim(Upper(.Objects(i).Class)) = 'IMAGINE'
|
||||
lcCheie = .Objects(i).ccod
|
||||
If Right(lcCheie, 1) # ';'
|
||||
lcCheie = lcCheie + ';'
|
||||
Endif
|
||||
lnPozitieS = 1
|
||||
For j = 1 To Occurs([;], lcCheie)
|
||||
lnPozitieF = At([;], lcCheie, j)
|
||||
lcCheie2 = Substr(lcCheie, lnPozitieS, lnPozitieF - lnPozitieS)
|
||||
lcAcces = []
|
||||
Select crsdrepturi
|
||||
Locate For Substr(cheie, 1, Len(lcCheie2)) = lcCheie2
|
||||
If Found()
|
||||
Set Filter To Substr(cheie, 1, Len(lcCheie2)) = lcCheie2
|
||||
Scan
|
||||
lcAcces = lcAcces + Substr(cheie, Len(lcCheie2) + 1, 1) + [;]
|
||||
Endscan
|
||||
Set Filter To
|
||||
k = k + 1
|
||||
If !Empty(lcAcces) And Alltrim(lcAcces) <> [;]
|
||||
.Objects(i).coptiuni_active = lcAcces
|
||||
Endif
|
||||
.Objects(i).Visible = .T.
|
||||
laImaginiVizibile(k, 1) = i
|
||||
laImaginiVizibile(k, 2) = .Objects(i).Left
|
||||
Exit
|
||||
Else
|
||||
.Objects(i).Visible = .F.
|
||||
Endif
|
||||
lnPozitieS = lnPozitieF + 1
|
||||
Endfor
|
||||
Endif
|
||||
Endfor
|
||||
If k > 0
|
||||
lnLungime = .Objects(laImaginiVizibile(1, 1)).Width
|
||||
For j = 1 To k - 1
|
||||
For l = j + 1 To k
|
||||
If laImaginiVizibile(j, 2) > laImaginiVizibile(l, 2)
|
||||
lnPozitie = laImaginiVizibile(l, 1)
|
||||
lnLeft = laImaginiVizibile(l, 2)
|
||||
laImaginiVizibile(l, 1) = laImaginiVizibile(j, 1)
|
||||
laImaginiVizibile(l, 2) = laImaginiVizibile(j, 2)
|
||||
laImaginiVizibile(j, 1) = lnPozitie
|
||||
laImaginiVizibile(j, 2) = lnLeft
|
||||
Endif
|
||||
Endfor
|
||||
Endfor
|
||||
For j = 1 To k
|
||||
*!* 08.08.2011
|
||||
.Objects(laImaginiVizibile(j, 1)).Left = 5 + (j - 1) * (lnLungime + 0)
|
||||
*!* 08.08.2011 ^
|
||||
Endfor
|
||||
Endif
|
||||
Endwith
|
||||
Endproc
|
||||
**********************************************************************************************
|
||||
Procedure dezactiveaza_obiecte_pageframe
|
||||
Lparameters lnKey, lcPageFrame, lcTata
|
||||
Local lcKey, lcProp, lcOptiune, lnPozitie, i, j, k, l, lnObiecteActive
|
||||
Store [] To lcKey, lcProp, lcOptiune
|
||||
Store 0 To lnNivel, lnPozitie, i, j, k, l
|
||||
If Empty(lcTata)
|
||||
lcTata = Null
|
||||
Endif
|
||||
Set Exact On
|
||||
With &lcPageFrame
|
||||
For i = 1 To .PageCount
|
||||
For j = 1 To .PageCount
|
||||
If .Pages(j).PageOrder = i
|
||||
Exit
|
||||
Endif
|
||||
Endfor
|
||||
With .Pages(j)
|
||||
.Enabled = .T.
|
||||
lnObiecteActive = 0
|
||||
lcKey = Nvl(lcTata, []) + Chr(lnKey)
|
||||
If Used('crstotal')
|
||||
Use In crstotal
|
||||
Endif
|
||||
Select Count(*) As Total From crsdrepturi Where Substr(cheie, 1, Len(lcKey)) = lcKey Into Cursor crstotal
|
||||
Select crstotal
|
||||
lnObiecteActive = Total
|
||||
Use In crstotal
|
||||
*!* If lnObiecteActive>0
|
||||
For l = 1 To .ControlCount
|
||||
Do Case
|
||||
Case Alltrim(Upper(.Objects(l).Class)) = 'PAGEFRAME'
|
||||
lcNume = lcPageFrame + '.' + Alltrim(.Name) + '.' + Alltrim(Upper(.Objects(l).Name))
|
||||
dezactiveaza_obiecte_pageframe(65, lcNume, lcKey)
|
||||
Case Left(Alltrim(Upper(.Objects(l).Class)), 2) = 'CW'
|
||||
lcOptiune = .Objects(l).label_item1.Caption
|
||||
lcCheie = lcKey + Padl(Alltrim(Str(.Objects(l).nid_cw)), 2, [0])
|
||||
lcAcces = []
|
||||
.Objects(l).ccheie = lcCheie
|
||||
Select crsdrepturi
|
||||
Locate For Substr(cheie, 1, Len(lcCheie)) = lcCheie
|
||||
If Found()
|
||||
Set Filter To Substr(cheie, 1, Len(lcCheie)) = lcCheie
|
||||
Scan
|
||||
lcAcces = lcAcces + Substr(cheie, Len(lcCheie) + 1, 1) + [;]
|
||||
Endscan
|
||||
Set Filter To
|
||||
.Objects(l).coptiuni_active = lcAcces
|
||||
.Objects(l).activeaza()
|
||||
Else
|
||||
.Objects(l).dezactiveaza()
|
||||
Endif
|
||||
Endcase
|
||||
Endfor
|
||||
*!* Else
|
||||
If lnObiecteActive = 0
|
||||
.Enabled = .F.
|
||||
Endif
|
||||
Endwith
|
||||
lnKey = lnKey + 1
|
||||
Endfor
|
||||
Endwith
|
||||
*!* Set Exact Off
|
||||
Endproc
|
||||
**********************************************************************************************
|
||||
Procedure dezactiveaza_meniuri()
|
||||
Lparameters lnKey
|
||||
Local lcKey, lcKey2, i, j, k
|
||||
Do Case
|
||||
Case gnIdProgram = 2 && ROACONT
|
||||
Dimension laPad[5]
|
||||
laPad[1] = [initializa]
|
||||
laPad[2] = [_1bs12qror]
|
||||
laPad[3] = [verificari]
|
||||
laPad[4] = [_5100zlkwx]
|
||||
laPad[5] = [eFactura]
|
||||
Case gnIdProgram = 5 && ROAGEST
|
||||
Dimension laPad[1]
|
||||
laPad[1] = [actualizar]
|
||||
Case gnIdProgram = 8 && ROAAUTO
|
||||
Return
|
||||
Case gnIdProgram = 7 && ROAMANAGER
|
||||
Dimension laPad[3]
|
||||
laPad[1] = [optiuni]
|
||||
laPad[2] = [vizualizar]
|
||||
laPad[3] = [rapoartege]
|
||||
Case gnIdProgram = 75 && ROASALSPEC modificare 16.10.2012
|
||||
Dimension laPad[2]
|
||||
laPad[1] = [_3mm0vdyef]
|
||||
laPad[2] = [_3mm0ve0rs]
|
||||
Case gnIdProgram = 4 && ROARES
|
||||
Dimension laPad[3]
|
||||
laPad[1] = [initializa]
|
||||
laPad[2] = [configurar]
|
||||
laPad[3] = [migrare]
|
||||
Otherwise && Restul
|
||||
Return
|
||||
Endcase
|
||||
|
||||
lcKey = Chr(lnKey)
|
||||
lnKey2 = 65
|
||||
For j = 1 To Alen(laPad)
|
||||
k = 0
|
||||
Try
|
||||
If Cntbar(laPad[j]) > 0
|
||||
lcKey2 = lcKey + Chr(lnKey2)
|
||||
lnKey2 = lnKey2 + 1
|
||||
For i = 1 To Cntbar(laPad[j])
|
||||
lcOptiune = Prmbar(laPad[j], i)
|
||||
If !Empty(lcOptiune)
|
||||
k = k + 1
|
||||
lcCheie = lcKey2 + Padl(Alltrim(Str(k)), 2, [0])
|
||||
Select crsdrepturi
|
||||
Locate For Substr(cheie, 1, Len(lcCheie)) = lcCheie
|
||||
If Found()
|
||||
*!* WAIT WINDOW laPad[j]+" "+lcCheie+" gasita"
|
||||
Set Skip Of Bar i Of &laPad[j] .F.
|
||||
Else
|
||||
*!* WAIT WINDOW laPad[j]+" "+lcCheie+" negasita"
|
||||
*!* messagebox(skpbar (laPad[j],i),48,laPad[j]+" "+alltrim(str(i)))
|
||||
Set Skip Of Bar i Of &laPad[j] .T.
|
||||
*!* messagebox(skpbar (laPad[j],i),48,laPad[j]+" "+alltrim(str(i)))
|
||||
Endif
|
||||
Endif
|
||||
Endfor
|
||||
Endif
|
||||
Catch
|
||||
Endtry
|
||||
Endfor
|
||||
Endproc
|
||||
|
||||
**********************************************************************************************
|
||||
*** Citeste accesul pentru o optiune dupa cod
|
||||
*** Ex. pentru initializarea accesului la lansarea unui formular direct din meniu
|
||||
Function GetAccesByCod
|
||||
Lparameters tcCod, tcAccesDefault
|
||||
* tcCod = codul optiunii din meniu (ex: ZA01/ZA02/ZB01)
|
||||
* tcAccesDefault = codul de acces in caz ca nu sunt definite drepturi pe acel cod ("1;2;3;4")
|
||||
|
||||
Local lcAcces, lcAccesDefault, lcCheie, lcCheie2, lcSelect, lnPozitieF, lnPozitieS, j, k
|
||||
lcAccesDefault = Iif(!Empty(m.tcAccesDefault), m.tcAccesDefault, "")
|
||||
lcAcces = ""
|
||||
|
||||
lcSelect = Select()
|
||||
|
||||
lcCheie = Upper(Alltrim(m.tcCod))
|
||||
k = 0
|
||||
If Right(lcCheie, 1) # ';'
|
||||
lcCheie = lcCheie + ';'
|
||||
Endif
|
||||
lnPozitieS = 1
|
||||
For j = 1 To Occurs([;], lcCheie)
|
||||
lnPozitieF = At([;], lcCheie, j)
|
||||
lcCheie2 = Substr(lcCheie, lnPozitieS, lnPozitieF - lnPozitieS)
|
||||
lcAcces = []
|
||||
Select crsdrepturi
|
||||
Locate For Substr(cheie, 1, Len(lcCheie2)) = lcCheie2
|
||||
If Found()
|
||||
Set Filter To Substr(cheie, 1, Len(lcCheie2)) = lcCheie2
|
||||
Scan
|
||||
lcAcces = lcAcces + Substr(cheie, Len(lcCheie2) + 1, 1) + [;]
|
||||
Endscan
|
||||
Set Filter To
|
||||
k = k + 1
|
||||
Exit
|
||||
Endif && found
|
||||
lnPozitieS = lnPozitieF + 1
|
||||
ENDFOR
|
||||
IF EMPTY(m.lcAcces) AND !EMPTY(m.lcAccesDefault)
|
||||
lcAcces = m.lcAccesDefault
|
||||
ENDIF
|
||||
|
||||
Select (m.lcSelect)
|
||||
RETURN m.lcAcces
|
||||
ENDFUNC && GetAccesByCod
|
||||
|
||||
**********************************************************************************************
|
||||
Procedure actualizeaza_acces_forma
|
||||
Lparameters loObiect, tcAcces
|
||||
Local lcProp
|
||||
For i = 1 To Len(tcAcces)
|
||||
lcProp = 'this.lactiv' + Alltrim(Substr(tcAcces, i, 1))
|
||||
&lcProp = .T.
|
||||
Endfor
|
||||
Endproc
|
||||
**********************************************************************************************
|
||||
*!* Procedure setari_grupuri
|
||||
*!* Private pogrupuri,pcschema1,pcselect1
|
||||
*!* Store '' To pogrupuri
|
||||
*!* *!* pcschema1=['id_util n(5),utilizator c(30)']
|
||||
*!* *!* pcselect1=['select id_util,utilizator from vutil_drept where 1=2']
|
||||
*!* *!* pcorder1=[utilizator]
|
||||
*!* *!* pcfiltru1=[id_firma=?gnIdFirma and id_prog=?gnIdProgram]
|
||||
|
||||
*!* pcschema1=['id_grup n(5),grup c(30)']
|
||||
*!* pcselect1=['select id_grup,grup from vdef_grup where 1=2']
|
||||
*!* pcorder1=[grup]
|
||||
*!* pcfiltru1=[2=2]
|
||||
*!* llAfiseaza=.F.
|
||||
*!* gencursor('pogrupuri','crsgrupuri',pcselect1,pcfiltru1,pcschema1,pcorder1,llAfiseaza)
|
||||
*!* pogrupuri.ca_baza1.afisare()
|
||||
*!* ofrmgrupuri=Createobject('frm_grupuri')
|
||||
*!* ofrmgrupuri.Show(1)
|
||||
*!* Release pogrupuri
|
||||
*!* Endproc
|
||||
103
COMUN/programe/acces_meniu2.prg
Normal file
103
COMUN/programe/acces_meniu2.prg
Normal file
@@ -0,0 +1,103 @@
|
||||
&& este versiunea pentru programele care nu au definite obiecte
|
||||
**********************************************************************************************
|
||||
Procedure verifica_drepturi2
|
||||
Lparameters tcObiectFundal,tcPageFrame,tlImagini
|
||||
dezactiveaza_obiecte_pageframe2(65,tcObiectFundal+[.]+tcPageFrame)
|
||||
If Empty(tlImagini) Or tlImagini
|
||||
dezactiveaza_imagini2(tcObiectFundal)
|
||||
Endif
|
||||
Endproc
|
||||
**********************************************************************************************
|
||||
Procedure dezactiveaza_imagini2
|
||||
Lparameters loObiect
|
||||
Local i,k,j,l,lnMinLeft
|
||||
Dimension laImaginiVizibile(20,2)
|
||||
k=0
|
||||
&& left=3 pentru prima imagine
|
||||
With &loObiect
|
||||
For i=1 To .ControlCount
|
||||
If Alltrim(Upper(.Objects(i).Class))='IMAGINE'
|
||||
k=k+1
|
||||
lcCheie=.Objects(i).ccod
|
||||
lcAcces=[1;2;3;4;5;7;]
|
||||
.Objects(i).coptiuni_active=lcAcces
|
||||
.Objects(i).Visible=.T.
|
||||
laImaginiVizibile(k,1)=i
|
||||
laImaginiVizibile(k,2)=.Objects(i).Left
|
||||
Endif
|
||||
Endfor
|
||||
If k>0
|
||||
lnLungime=.Objects(laImaginiVizibile(1,1)).Width
|
||||
For j=1 To k-1
|
||||
For l=j+1 To k
|
||||
If laImaginiVizibile(j,2)>laImaginiVizibile(l,2)
|
||||
lnPozitie=laImaginiVizibile(l,1)
|
||||
lnLeft=laImaginiVizibile(l,2)
|
||||
laImaginiVizibile(l,1)=laImaginiVizibile(j,1)
|
||||
laImaginiVizibile(l,2)=laImaginiVizibile(j,2)
|
||||
laImaginiVizibile(j,1)=lnPozitie
|
||||
laImaginiVizibile(j,2)=lnLeft
|
||||
Endif
|
||||
Endfor
|
||||
Endfor
|
||||
For j=1 To k
|
||||
.Objects(laImaginiVizibile(j,1)).Left=5+(j-1)*lnLungime
|
||||
Endfor
|
||||
Endif
|
||||
Endwith
|
||||
Endproc
|
||||
**********************************************************************************************
|
||||
Procedure dezactiveaza_obiecte_pageframe2
|
||||
Lparameters lnKey,lcPageFrame,lcTata
|
||||
Local lcKey,lcProp,lcOptiune,lnPozitie,i,j,k,l,lnObiecteActive
|
||||
Store [] To lcKey,lcProp,lcOptiune
|
||||
Store 0 To lnNivel,lnPozitie,i,j,k,l
|
||||
If Empty(lcTata)
|
||||
lcTata=Null
|
||||
ENDIF
|
||||
|
||||
LOCAL lcSetExact
|
||||
lcSetExact = SET("Exact")
|
||||
Set Exact On
|
||||
With &lcPageFrame
|
||||
For i=1 To .PageCount
|
||||
For j=1 To .PageCount
|
||||
If .Pages(j).PageOrder=i
|
||||
Exit
|
||||
Endif
|
||||
Endfor
|
||||
With .Pages(j)
|
||||
lcKey=Nvl(lcTata,[])+Chr(lnKey)
|
||||
For l=1 To .ControlCount
|
||||
Do Case
|
||||
Case Alltrim(Upper(.Objects(l).Class))='PAGEFRAME'
|
||||
lcNume=lcPageFrame+'.'+Alltrim(.Name)+'.'+Alltrim(Upper(.Objects(l).Name))
|
||||
dezactiveaza_obiecte_pageframe2(65,lcNume,lcKey)
|
||||
Case Alltrim(Upper(.Objects(l).Class))='CW'
|
||||
lcOptiune=.Objects(l).label_item1.Caption
|
||||
lcCheie=lcKey+Padl(Alltrim(Str(.Objects(l).nid_cw)),2,[0])
|
||||
lcAcces=[1;2;3;4;7;]
|
||||
.Objects(l).ccheie=lcCheie
|
||||
.Objects(l).coptiuni_active=lcAcces
|
||||
.Objects(l).activeaza()
|
||||
Endcase
|
||||
Endfor
|
||||
Endwith
|
||||
lnKey=lnKey+1
|
||||
Endfor
|
||||
ENDWITH
|
||||
|
||||
SET EXACT &lcSetExact
|
||||
* Set Exact Off
|
||||
|
||||
Endproc
|
||||
**********************************************************************************************
|
||||
Procedure actualizeaza_acces_forma
|
||||
Lparameters loObiect,tcAcces
|
||||
Local lcProp
|
||||
For i=1 To Len(tcAcces)
|
||||
lcProp='this.lactiv'+Alltrim(Substr(tcAcces,i,1))
|
||||
&lcProp=.T.
|
||||
Endfor
|
||||
Endproc
|
||||
**********************************************************************************************
|
||||
134
COMUN/programe/actualizare_aplicatie.prg
Normal file
134
COMUN/programe/actualizare_aplicatie.prg
Normal file
@@ -0,0 +1,134 @@
|
||||
LPARAMETERS tcProgram, tcVersiuneURL
|
||||
*** IN LUCRU
|
||||
* tcProgram: ROAEFACTURA
|
||||
* tcVersiuneURL: https://www.romfast.ro/romfastsuport/files/suport.xml
|
||||
|
||||
#DEFINE CRLF CHR(13) + CHR(10)
|
||||
|
||||
lcProgram = IIF(!EMPTY(m.tcProgram), UPPER(ALLTRIM(m.tcProgram)), UPPER(ALLTRIM(SYS(16,0))))
|
||||
lcServer = IIF(!EMPTY(m.tcVersiuneURL), m.tcVersiuneURL, [https://www.romfast.ro/romfastsuport/files/suport.xml])
|
||||
|
||||
llSucces = .F.
|
||||
Try
|
||||
loHTTP = Createobject('winHTTP.winHTTPrequest.5.1')
|
||||
llSucces = .T.
|
||||
CATCH TO loEx
|
||||
This.Log('Actualizare aplicatie - Eroare: ' + loEx.Message)
|
||||
ENDTRY
|
||||
|
||||
IF m.llSucces
|
||||
llSucces = .F.
|
||||
TRY
|
||||
This.Log(m.lcServer)
|
||||
loHTTP.Open('GET', lcServer, .F.)
|
||||
loHTTP.setRequestHeader("Content-Type", "application/xml")
|
||||
loHTTP.Send()
|
||||
llSucces = .T.
|
||||
Catch To loEx
|
||||
This.Log('Actualizare aplicatie - Eroare: ' + loEx.Message)
|
||||
Endtry
|
||||
|
||||
ENDIF
|
||||
|
||||
IF m.llSucces
|
||||
If loHTTP.Status <> 200
|
||||
This.Log('Actualizare aplicatie ' + loHTTP.StatusText)
|
||||
llSucces = .F.
|
||||
ELSE
|
||||
goApp.Log('Actualizare aplicatie - versiunexml: SUCCES')
|
||||
Endif
|
||||
ENDIF
|
||||
|
||||
|
||||
IF m.llSucces
|
||||
llSucces = .F.
|
||||
* Versiunea programului
|
||||
lcVersiuneClient = get_version(.F.,.T.)
|
||||
|
||||
* Versiunea de pe server
|
||||
TRY
|
||||
lcVersiuneXML = loHTTP.ResponseText
|
||||
XMLTOCURSOR(m.lcVersiuneXML, 'crsVersiuni')
|
||||
|
||||
lcVersiuneServer = ''
|
||||
lcServer = ''
|
||||
SELECT crsVersiuni
|
||||
LOCATE FOR UPPER(ALLTRIM(program)) = m.lcProgram
|
||||
IF FOUND()
|
||||
lcVersiuneServer = ALLTRIM(UPPER(versiune))
|
||||
lcServer = ALLTRIM(fisier) && url aplicatie.exe
|
||||
llSucces = .T.
|
||||
ENDIF
|
||||
CATCH TO loEx
|
||||
This.Log('Actualizare aplicatie - Eroare: ' + loEx.Message)
|
||||
ENDTRY
|
||||
ENDIF
|
||||
|
||||
If m.llSucces AND m.lcVersiuneServer <> m.lcVersiuneClient AND !EMPTY(m.lcServer)
|
||||
llSucces = .F.
|
||||
TRY
|
||||
This.Log(m.lcServer)
|
||||
loHTTP.Open('GET', lcServer, .F.)
|
||||
loHTTP.setRequestHeader("Content-Type", "application/vnd.microsoft.portable-executable")
|
||||
loHTTP.Send()
|
||||
llSucces = .T.
|
||||
Catch To loEx
|
||||
This.Log('Actualizare aplicatie - Eroare: ' + loEx.Message)
|
||||
Endtry
|
||||
IF m.llSucces
|
||||
If loHTTP.Status <> 200
|
||||
This.Log('Actualizare aplicatie - Eroare: ' + loHTTP.StatusText)
|
||||
llSucces = .F.
|
||||
ELSE
|
||||
|
||||
This.Log('Actualizare aplicatie - program.exe Succes')
|
||||
ENDIF
|
||||
ENDIF
|
||||
Endif
|
||||
|
||||
|
||||
If !llDownloaded
|
||||
Return
|
||||
ENDIF
|
||||
|
||||
lcBatFile = Addbs(Justpath(m.lcDestinationFile)) + 'UPDATE.BAT'
|
||||
Set Textmerge On To (m.lcBatFile) Noshow
|
||||
*!* wait 5 seconds for the application to quit
|
||||
\@ping 127.0.0.1 -n 10 -w 1000 > nul
|
||||
*!* rename original application
|
||||
\REN "<<m.lcApplicationFile>>" "<<JUSTFNAME(m.lcBackupApplicationFile)>>"
|
||||
*!* execute the new sfx archive - the sfx archive will start the application by itself
|
||||
\START "" "<<m.lcDestinationFile>>"
|
||||
\@ping 127.0.0.1 -n 5 -w 1000 > nul
|
||||
*!* delete the archive
|
||||
\DEL "<<m.lcDestinationFile>>"
|
||||
Set Textmerge To
|
||||
|
||||
*!* DEZARHIVEZ APLICATIA DESCARCATA
|
||||
llSucces = .F.
|
||||
Try
|
||||
Cd (Justpath(m.lcApplicationFile))
|
||||
|
||||
loProcess=Createobject("api_apprun", m.lcBatFile)
|
||||
|
||||
goApp.Log("EXECUTARE PROGRAM;"+ " " + Alltrim(m.lcBatFile))
|
||||
loProcess.launchapp()
|
||||
llSucces = .T.
|
||||
|
||||
Catch To loException
|
||||
goApp.Log("EXECUTARE PROGRAM;"+ " " + Alltrim(m.lcBatFile) + " " + CRLF + loEx.Message)
|
||||
Messagebox("EXECUTARE PROGRAM;"+ " " + Alltrim(m.lcBatFile) + " " + CRLF + loEx.Message,0+16, _Screen.Caption)
|
||||
Endtry
|
||||
If llSucces
|
||||
On Error
|
||||
On Shutdown
|
||||
Set Procedure To
|
||||
Set Library To
|
||||
Set Classlib To
|
||||
Clear Events
|
||||
If _vfp.StartMode <> 0
|
||||
Quit
|
||||
Else
|
||||
Return .F.
|
||||
Endif
|
||||
Endif
|
||||
218
COMUN/programe/adaugare_drepturi.prg
Normal file
218
COMUN/programe/adaugare_drepturi.prg
Normal file
@@ -0,0 +1,218 @@
|
||||
Procedure citeste_obiecte
|
||||
Local lcMeniu,lcPageframe
|
||||
lcMeniu=[roadef]
|
||||
lcPageframe=[gofundal._pgfrmbase1]
|
||||
Create Cursor CRSOBIECTE(ID_PROG N(1),CHEIE C(20),NIVEL N(2),EXPLICATIE C(100),TATA C(20),COD C(2),ID_OBIECT N(10),ID_TATA N(10))
|
||||
plCursor=.T.
|
||||
citeste_meniu(90,lcmeniu,"Meniu")
|
||||
citeste_pageframe(65,lcpageframe)
|
||||
select * FROM crsobiecte INTO TABLE C:\crsobiecte.dbf
|
||||
Endproc
|
||||
************************************************************************
|
||||
Procedure citeste_meniu
|
||||
Lparameters lnKey,lcNumeMeniu,lcOptiune
|
||||
lcKey=Chr(lnKey)
|
||||
*!* This.Nodes.Add(,1,lcKey,lcOptiune)
|
||||
If plCursor
|
||||
Insert Into CRSOBIECTE (CHEIE,NIVEL,EXPLICATIE,TATA) Values(lcKey,1,lcOptiune,[ ])
|
||||
Endif
|
||||
lnKey2=65
|
||||
*!* k=0
|
||||
*!* Try
|
||||
*!* lcKey2=lcKey+Chr(lnKey2)
|
||||
*!* lnKey2=lnKey2+1
|
||||
*!* This.Nodes.Add(lcKey,4,lcKey2,'Utile')
|
||||
*!* If plCursor
|
||||
*!* Insert Into CRSOBIECTE (CHEIE,NIVEL,EXPLICATIE,TATA) Values(lcKey2,4,[Utile],lcKey)
|
||||
*!* Endif
|
||||
*!* For i=1 To Cntbar('utile')
|
||||
*!* lcOptiune=Prmbar('utile',i)
|
||||
*!* If !Empty(lcOptiune)
|
||||
*!* k=k+1
|
||||
*!* This.Nodes.Add(lcKey2,4,lcKey2+Padl(Alltrim(Str(k)),2,[0]),lcOptiune)
|
||||
*!* If plCursor
|
||||
*!* Insert Into CRSOBIECTE (CHEIE,NIVEL,EXPLICATIE,TATA) Values(lcKey2+Padl(Alltrim(Str(k)),2,[0]),4,lcOptiune,lcKey2)
|
||||
*!* Endif
|
||||
*!* Endif
|
||||
*!* Endfor
|
||||
*!* Catch
|
||||
*!* ENDTRY
|
||||
k=0
|
||||
Try
|
||||
lcKey2=lcKey+Chr(lnKey2)
|
||||
lnKey2=lnKey2+1
|
||||
*!* This.Nodes.Add(lcKey,4,lcKey2,'Initializare')
|
||||
If plCursor
|
||||
Insert Into CRSOBIECTE (CHEIE,NIVEL,EXPLICATIE,TATA) Values(lcKey2,4,[Initializare],lcKey)
|
||||
Endif
|
||||
For i=1 To Cntbar('initializa')
|
||||
lcOptiune=Prmbar('initializa',i)
|
||||
If !Empty(lcOptiune)
|
||||
k=k+1
|
||||
*!* This.Nodes.Add(lcKey2,4,lcKey2+Padl(Alltrim(Str(k)),2,[0]),lcOptiune)
|
||||
If plCursor
|
||||
Insert Into CRSOBIECTE (CHEIE,NIVEL,EXPLICATIE,TATA) Values(lcKey2+Padl(Alltrim(Str(k)),2,[0]),4,lcOptiune,lcKey2)
|
||||
Endif
|
||||
Endif
|
||||
Endfor
|
||||
Catch
|
||||
Endtry
|
||||
k=0
|
||||
Try
|
||||
lcKey2=lcKey+Chr(lnKey2)
|
||||
*!* This.Nodes.Add(lcKey,4,lcKey2,'Actualizari')
|
||||
If plCursor
|
||||
Insert Into CRSOBIECTE (CHEIE,NIVEL,EXPLICATIE,TATA) Values(lcKey2,4,[Actualizari],lcKey)
|
||||
Endif
|
||||
For i=1 To Cntbar('_1bs12qror')
|
||||
lcOptiune=Prmbar('_1bs12qror',i)
|
||||
If !Empty(lcOptiune)
|
||||
k=k+1
|
||||
*!* This.Nodes.Add(lcKey2,4,lcKey2+Padl(Alltrim(Str(k)),2,[0]),lcOptiune)
|
||||
If plCursor
|
||||
Insert Into CRSOBIECTE (CHEIE,NIVEL,EXPLICATIE,TATA) Values(lcKey2+Padl(Alltrim(Str(k)),2,[0]),4,lcOptiune,lcKey2)
|
||||
Endif
|
||||
Endif
|
||||
Endfor
|
||||
Catch
|
||||
Endtry
|
||||
************************************************************************
|
||||
Procedure citeste_pageframe
|
||||
Lparameters lnKey,lcPageframe,lcTata
|
||||
Local lcKey,lcProp,lcOptiune,lnNivel,lnPozitie,i,j,k,l
|
||||
Store [] To lcKey,lcProp,lcOptiune
|
||||
Store 0 To lnNivel,lnPozitie,i,j,k,l
|
||||
If Empty(lcTata)
|
||||
lcTata=Null
|
||||
lnNivel=1
|
||||
Else
|
||||
lnNivel=4
|
||||
Endif
|
||||
Set Exact On
|
||||
With &lcPageframe
|
||||
For i=1 To .PageCount
|
||||
For j=1 To .PageCount
|
||||
If .Pages(j).PageOrder=i
|
||||
Exit
|
||||
Endif
|
||||
Endfor
|
||||
With .Pages(j)
|
||||
lcKey=Nvl(lcTata,[])+Chr(lnKey)
|
||||
*!* This.Nodes.Add(lcTata,lnNivel,lcKey,.Caption)
|
||||
lcProp="cnt"+lcKey
|
||||
*!* This.AddProperty(lcProp,0)
|
||||
If plCursor
|
||||
Insert Into CRSOBIECTE (CHEIE,NIVEL,EXPLICATIE,TATA) Values(lcKey,lnNivel,.Caption,Nvl(lcTata,[ ]))
|
||||
Endif
|
||||
lcProp="cnt"+lcKey
|
||||
*!* This.AddProperty(lcProp,0)
|
||||
Dimension copii(128,3)
|
||||
k=1
|
||||
For l=1 To .ControlCount
|
||||
Do Case
|
||||
Case Alltrim(Upper(.Objects(l).Class))='PAGEFRAME'
|
||||
lcNume=lcPageframe+'.'+Alltrim(.Name)+'.'+Alltrim(Upper(.Objects(l).Name))
|
||||
citeste_pageframe(65,lcNume,lcKey)
|
||||
Case Alltrim(Upper(.Objects(l).Class))='CW' And .Objects(l).nid_cw>0
|
||||
lcOptiune=.Objects(l).label_item1.Caption
|
||||
lnPozitie=.Objects(l).nid_cw
|
||||
copii(lnPozitie,1)=lcOptiune
|
||||
copii(lnPozitie,2)=.Objects(l).ntip
|
||||
copii(lnPozitie,3)=.Objects(l).cmeniu
|
||||
k=k+1
|
||||
Endcase
|
||||
Endfor
|
||||
For l=1 To k-1
|
||||
*!* This.Nodes.Add(lcKey,4,lcKey+Padl(Alltrim(Str(l)),2,[0]),copii(l,1))
|
||||
If plCursor
|
||||
Insert Into CRSOBIECTE (CHEIE,NIVEL,EXPLICATIE,TATA) Values(lcKey+Padl(Alltrim(Str(l)),2,[0]),4,copii(l,1),lcKey)
|
||||
Endif
|
||||
*!* If !Empty(copii(l,3))
|
||||
*!* This.adauga_meniuri(copii(l,3),copii(l,2),lcKey+Padl(Alltrim(Str(l)),2,[0]))
|
||||
*!* Else
|
||||
adauga_frunze(copii(l,2),lcKey+Padl(Alltrim(Str(l)),2,[0]))
|
||||
*!* Endif
|
||||
Endfor
|
||||
Endwith
|
||||
lnKey=lnKey+1
|
||||
Endfor
|
||||
Endwith
|
||||
Set Exact Off
|
||||
Endproc
|
||||
************************************************************************
|
||||
Procedure adauga_frunze
|
||||
Lparameters lnTip,lcKey
|
||||
Do Case
|
||||
Case lnTip=0 && introducere
|
||||
Case lnTip=1 && raport
|
||||
*!* lcProp="cnt"+lcKey
|
||||
*!* This.AddProperty(lcProp,0)
|
||||
*!* This.Nodes.Add(lcKey,4,lcKey+"1","Export")
|
||||
*!* This.Nodes.Add(lcKey,4,lcKey+"2","Listare")
|
||||
If plCursor
|
||||
Insert Into CRSOBIECTE (CHEIE,NIVEL,EXPLICATIE,TATA) Values(lcKey+"1",4,"Export",lcKey)
|
||||
Insert Into CRSOBIECTE (CHEIE,NIVEL,EXPLICATIE,TATA) Values(lcKey+"2",4,"Listare",lcKey)
|
||||
Endif
|
||||
Case lnTip=2 && registru
|
||||
*!* lcProp="cnt"+lcKey
|
||||
*!* This.AddProperty(lcProp,0)
|
||||
*!* This.Nodes.Add(lcKey,4,lcKey+"1","Export")
|
||||
*!* This.Nodes.Add(lcKey,4,lcKey+"2","Listare")
|
||||
*!* This.Nodes.Add(lcKey,4,lcKey+"3","Modificare")
|
||||
*!* This.Nodes.Add(lcKey,4,lcKey+"4","Refacere")
|
||||
If plCursor
|
||||
Insert Into CRSOBIECTE (CHEIE,NIVEL,EXPLICATIE,TATA) Values(lcKey+"1",4,"Export",lcKey)
|
||||
Insert Into CRSOBIECTE (CHEIE,NIVEL,EXPLICATIE,TATA) Values(lcKey+"2",4,"Listare",lcKey)
|
||||
Insert Into CRSOBIECTE (CHEIE,NIVEL,EXPLICATIE,TATA) Values(lcKey+"3",4,"Modificare",lcKey)
|
||||
Insert Into CRSOBIECTE (CHEIE,NIVEL,EXPLICATIE,TATA) Values(lcKey+"4",4,"Refacere",lcKey)
|
||||
Endif
|
||||
Case lnTip=3 && balanta\inreg.
|
||||
*!* lcProp="cnt"+lcKey
|
||||
*!* This.AddProperty(lcProp,0)
|
||||
*!* This.Nodes.Add(lcKey,4,lcKey+"1","Export")
|
||||
*!* This.Nodes.Add(lcKey,4,lcKey+"2","Listare")
|
||||
*!* This.Nodes.Add(lcKey,4,lcKey+"3","Modificare")
|
||||
*!* This.Nodes.Add(lcKey,4,lcKey+"4","Refacere")
|
||||
If plCursor
|
||||
Insert Into CRSOBIECTE (CHEIE,NIVEL,EXPLICATIE,TATA) Values(lcKey+"1",4,"Export",lcKey)
|
||||
Insert Into CRSOBIECTE (CHEIE,NIVEL,EXPLICATIE,TATA) Values(lcKey+"2",4,"Listare",lcKey)
|
||||
Insert Into CRSOBIECTE (CHEIE,NIVEL,EXPLICATIE,TATA) Values(lcKey+"3",4,"Modificare",lcKey)
|
||||
Insert Into CRSOBIECTE (CHEIE,NIVEL,EXPLICATIE,TATA) Values(lcKey+"4",4,"Refacere",lcKey)
|
||||
Endif
|
||||
Case lnTip=4 && vizualizare
|
||||
*!* lcProp="cnt"+lcKey
|
||||
*!* This.AddProperty(lcProp,0)
|
||||
*!* This.Nodes.Add(lcKey,4,lcKey+"1","Export")
|
||||
*!* This.Nodes.Add(lcKey,4,lcKey+"2","Listare")
|
||||
*!* This.Nodes.Add(lcKey,4,lcKey+"3","Modificare")
|
||||
*!* This.Nodes.Add(lcKey,4,lcKey+"4","Stergere")
|
||||
*!* This.Nodes.Add(lcKey,4,lcKey+"5","Vizualizare inreg. proprii")
|
||||
*!* This.Nodes.Add(lcKey,4,lcKey+"6","Vizualizare toate inreg.")
|
||||
If plCursor
|
||||
Insert Into CRSOBIECTE (CHEIE,NIVEL,EXPLICATIE,TATA) Values(lcKey+"1",4,"Export",lcKey)
|
||||
Insert Into CRSOBIECTE (CHEIE,NIVEL,EXPLICATIE,TATA) Values(lcKey+"2",4,"Listare",lcKey)
|
||||
Insert Into CRSOBIECTE (CHEIE,NIVEL,EXPLICATIE,TATA) Values(lcKey+"3",4,"Modificare",lcKey)
|
||||
Insert Into CRSOBIECTE (CHEIE,NIVEL,EXPLICATIE,TATA) Values(lcKey+"4",4,"Stergere",lcKey)
|
||||
Insert Into CRSOBIECTE (CHEIE,NIVEL,EXPLICATIE,TATA) Values(lcKey+"5",4,"Vizualizare inreg.proprii",lcKey)
|
||||
Insert Into CRSOBIECTE (CHEIE,NIVEL,EXPLICATIE,TATA) Values(lcKey+"6",4,"Vizualizare tot",lcKey)
|
||||
ENDIF
|
||||
Case lnTip=5 && personalizat
|
||||
*!* lcProp="cnt"+lcKey
|
||||
*!* This.AddProperty(lcProp,0)
|
||||
*!* This.Nodes.Add(lcKey,4,lcKey+"1","Export")
|
||||
*!* This.Nodes.Add(lcKey,4,lcKey+"2","Listare")
|
||||
*!* This.Nodes.Add(lcKey,4,lcKey+"3","Modificare")
|
||||
*!* This.Nodes.Add(lcKey,4,lcKey+"4","Stergere")
|
||||
*!* This.Nodes.Add(lcKey,4,lcKey+"7","Altele...")
|
||||
*!* This.Nodes.Add(lcKey,4,lcKey+"8","Altele...")
|
||||
If plCursor
|
||||
Insert Into CRSOBIECTE (CHEIE,NIVEL,EXPLICATIE,TATA) Values(lcKey+"1",4,"Export",lcKey)
|
||||
Insert Into CRSOBIECTE (CHEIE,NIVEL,EXPLICATIE,TATA) Values(lcKey+"2",4,"Listare",lcKey)
|
||||
Insert Into CRSOBIECTE (CHEIE,NIVEL,EXPLICATIE,TATA) Values(lcKey+"3",4,"Modificare",lcKey)
|
||||
Insert Into CRSOBIECTE (CHEIE,NIVEL,EXPLICATIE,TATA) Values(lcKey+"4",4,"Stergere",lcKey)
|
||||
Insert Into CRSOBIECTE (CHEIE,NIVEL,EXPLICATIE,TATA) Values(lcKey+"7",4,"Altele...",lcKey)
|
||||
Insert Into CRSOBIECTE (CHEIE,NIVEL,EXPLICATIE,TATA) Values(lcKey+"8",4,"Altele...",lcKey)
|
||||
Endif
|
||||
Endcase
|
||||
Endproc
|
||||
************************************************************************
|
||||
3806
COMUN/programe/anaf_efactura.prg
Normal file
3806
COMUN/programe/anaf_efactura.prg
Normal file
File diff suppressed because it is too large
Load Diff
921
COMUN/programe/ashowcursor.prg
Normal file
921
COMUN/programe/ashowcursor.prg
Normal file
@@ -0,0 +1,921 @@
|
||||
**
|
||||
** wwshowcursor.fxp
|
||||
**
|
||||
EXTERNAL ARRAY lvHeader
|
||||
ENDPROC
|
||||
*
|
||||
DEFINE CLASS aShowCursor AS CUSTOM
|
||||
DIMENSION afIeldlist[1]
|
||||
nfIeldcount = 0
|
||||
ctAbletitle = ""
|
||||
chEaderstring = ""
|
||||
chEaderbgcolor = "DarkBlue"
|
||||
chEadercolor = "White"
|
||||
chEaderfont = "Verdana,Helvetica"
|
||||
ctAblebgcolor = "#EEEEEE"
|
||||
caLternatingbgcolor = "#B0DAFF"
|
||||
laLternaterows = .F.
|
||||
ctAblewidth = "98%"
|
||||
ctAbleborder = "2"
|
||||
ceXtratabletags = 'style="font:normal normal 10pt Verdana;border-collapse: collapse;border-color:black" bordercolor="darkgray"'
|
||||
ccEllpadding = "3"
|
||||
ccEllspacing = "0"
|
||||
naSciileftcolumns = 20
|
||||
nmEmowidth = 25
|
||||
lcEntertable = .T.
|
||||
lsUmnumerics = .F.
|
||||
lsHowastable = .T.
|
||||
lsOrtable = .F.
|
||||
npAge_itemsperpage = 0
|
||||
npAge_showpage = 0
|
||||
npAge_totalpages = 0
|
||||
npAge_nextpage = 0
|
||||
npAge_prevpage = 0
|
||||
cpAge_pageurl = ""
|
||||
cpAge_linkhtml = ""
|
||||
cpAge_oldalias = ""
|
||||
nfOrcetoprelist = 40000
|
||||
ohTml = .NULL.
|
||||
cbAseurl = ""
|
||||
ckEyfield = ""
|
||||
ckEytype = "N"
|
||||
ctAblefieldlist = ""
|
||||
ctAbleeditfieldlist = ""
|
||||
ctAblerecordfieldlist = ""
|
||||
ctAblesortcolumn = ""
|
||||
laLlowadd = .T.
|
||||
laLlowdelete = .T.
|
||||
coLdalias = ""
|
||||
cnEwalias = ""
|
||||
cSumLista= ""
|
||||
lSumLista = .F.
|
||||
*
|
||||
PROCEDURE INIT
|
||||
LPARAMETER loHtml
|
||||
IF VARTYPE(loHtml)<>"O"
|
||||
THIS.ohTml = CREATEOBJECT('wwResponseStringNoBuffer')
|
||||
ELSE
|
||||
THIS.ohTml = loHtml
|
||||
ENDIF
|
||||
THIS.nfIeldcount = AFIELDS(THIS.afIeldlist)
|
||||
|
||||
|
||||
ENDPROC
|
||||
*
|
||||
PROCEDURE SetCursor
|
||||
LPARAMETER lcDbf
|
||||
lcDbf = IIF(TYPE("lcDBF")="C", lcDbf, "")
|
||||
lcStem = JUSTSTEM(lcDbf)
|
||||
IF .NOT. USED(lcStem)
|
||||
THIS.coLdalias = ALIAS()
|
||||
USE (lcDbf) IN 0
|
||||
ENDIF
|
||||
SELECT (lcStem)
|
||||
ENDPROC
|
||||
*
|
||||
PROCEDURE DESTROY
|
||||
IF .NOT. EMPTY(THIS.coLdalias) .AND. USED(THIS.coLdalias)
|
||||
USE IN (THIS.cnEwalias)
|
||||
IF .NOT. EMPTY(THIS.coLdalias)
|
||||
SELECT (THIS.coLdalias)
|
||||
ENDIF
|
||||
THIS.coLdalias = ""
|
||||
THIS.cnEwalias = ""
|
||||
ENDIF
|
||||
ENDPROC
|
||||
*
|
||||
PROCEDURE BuildFieldListHeader
|
||||
LPARAMETER lvHeader, llPrelist
|
||||
LOCAL lcHeader, lnX
|
||||
lcHeader = ""
|
||||
IF .NOT. EMPTY(THIS.chEaderstring)
|
||||
RETURN
|
||||
ENDIF
|
||||
IF THIS.lsOrtable .AND. EMPTY(THIS.cbAseurl)
|
||||
THIS.cbAseurl = REQUEST.geTcurrenturl()+"&"
|
||||
ENDIF
|
||||
IF .NOT. llPrelist
|
||||
IF TYPE("lvHeader[1]")<>"U"
|
||||
lcHeader = ""
|
||||
THIS.nfIeldcount = ALEN(lvHeader, 1)
|
||||
FOR lnX = 1 TO THIS.nfIeldcount
|
||||
lcHeader = lcHeader+'<TH><font FACE="'+ ;
|
||||
THIS.chEaderfont+'" color="'+ ;
|
||||
THIS.chEadercolor+'">'+lvHeader(lnX)+ ;
|
||||
'</font></TH>'
|
||||
ENDFOR
|
||||
ELSE
|
||||
FOR lnX = 1 TO THIS.nfIeldcount
|
||||
IF THIS.afIeldlist(lnX,2)="M"
|
||||
THIS.afIeldlist[lnX, 3] = THIS.nmEmowidth
|
||||
ENDIF
|
||||
IF THIS.afIeldlist(lnX,2)="T"
|
||||
THIS.afIeldlist[lnX, 3] = 20
|
||||
ENDIF
|
||||
IF THIS.afIeldlist(lnX,2)="I"
|
||||
THIS.afIeldlist[lnX, 3] = 9
|
||||
ENDIF
|
||||
IF THIS.lsOrtable .AND. THIS.afIeldlist(lnX,2)$"CNIL"
|
||||
lcFieldName = PROPER(CHRTRAN(THIS.afIeldlist[lnX,1],"_"," ")) + " " + [<a href="] + THIS.cbAseurl + [Sorted=] + TRANSFORM(lnX) +[" ] + [style="color:]+THIS.chEadercolor+[;font:normal normal 12pt WebDings;text-decoration:none" title="Sort Ascending">] + CHR(0x35) +"</a> " + [<a href="] + THIS.cbAseurl + [Sorted=] + TRANSFORM(lnX) +[&SortDescending=True" ] + [style="color:]+THIS.chEadercolor+[;font:normal normal 12pt WebDings;text-decoration:none" title="Sort Descending">] + CHR(0x36) +"</a> " + CHR(13)+CHR(10)
|
||||
ELSE
|
||||
lcFieldName = PROPER(CHRTRAN(THIS.afIeldlist(lnX, ;
|
||||
1), "_", " "))
|
||||
ENDIF
|
||||
lcHeader = lcHeader+'<TH><font FACE="'+ ;
|
||||
THIS.chEaderfont+'" color="'+ ;
|
||||
THIS.chEadercolor+'">'+lcFieldName+ ;
|
||||
'</font></TH>'
|
||||
ENDFOR
|
||||
ENDIF
|
||||
THIS.chEaderstring = '<TR BGCOLOR="'+THIS.chEaderbgcolor+'">'+ ;
|
||||
lcHeader+'</TR>'
|
||||
ELSE
|
||||
IF TYPE("lvHeader[1]")="U"
|
||||
lcHeader = ""
|
||||
FOR lnX = 1 TO lnFields
|
||||
IF LEN(TRIM(THIS.afIeldlist(lnX,1)))> ;
|
||||
THIS.afIeldlist(lnX,3)
|
||||
THIS.afIeldlist[lnX, 3] = ;
|
||||
LEN(TRIM(THIS.afIeldlist(lnX,1)))
|
||||
ENDIF
|
||||
IF THIS.afIeldlist(lnX,2)="M"
|
||||
THIS.afIeldlist[lnX, 3] = THIS.nmEmowidth
|
||||
ENDIF
|
||||
IF THIS.afIeldlist(lnX,2)="T"
|
||||
THIS.afIeldlist[lnX, 3] = 20
|
||||
ENDIF
|
||||
IF THIS.afIeldlist(lnX,2)="I"
|
||||
THIS.afIeldlist[lnX, 3] = 9
|
||||
ENDIF
|
||||
IF THIS.afIeldlist(lnX,2)$"NFBIY"
|
||||
lcHeader = lcHeader+"<b>"+ ;
|
||||
PADC(THIS.afIeldlist(lnX,1), ;
|
||||
THIS.afIeldlist(lnX,3))+"</b> "
|
||||
ELSE
|
||||
lcHeader = lcHeader+"<b>"+ ;
|
||||
PADC(THIS.afIeldlist(lnX,1), ;
|
||||
THIS.afIeldlist(lnX,3))+"</b> "
|
||||
ENDIF
|
||||
ENDFOR
|
||||
ELSE
|
||||
lcHeader = ""
|
||||
FOR lnX = 1 TO ALEN(lvHeader, 1)
|
||||
IF LEN(TRIM(lvHeader(lnX)))>THIS.afIeldlist(lnX,3)
|
||||
THIS.afIeldlist[lnX, 3] = ;
|
||||
LEN(TRIM(THIS.afIeldlist(lnX,1)))
|
||||
ENDIF
|
||||
IF THIS.afIeldlist(lnX,2)="M"
|
||||
THIS.afIeldlist[lnX, 3] = 20
|
||||
ENDIF
|
||||
IF THIS.afIeldlist(lnX,2)="T"
|
||||
THIS.afIeldlist[lnX, 3] = 20
|
||||
ENDIF
|
||||
lnSizeloc = ATC(":", lvHeader(lnX))
|
||||
IF lnSizeloc>0
|
||||
lnSize = VAL(SUBSTR(ALLTRIM(lvHeader(lnX)), ;
|
||||
lnSizeloc+1))
|
||||
lvHeader[lnX] = SUBSTR(lvHeader(lnX), 1, lnSizeloc-1)
|
||||
ELSE
|
||||
lnSize = THIS.afIeldlist(lnX,3)
|
||||
ENDIF
|
||||
IF THIS.afIeldlist(lnX,2)$"NFBIY"
|
||||
lcHeader = lcHeader+"<b>"+PADC(lvHeader(lnX), ;
|
||||
lnSize)+"</b> "
|
||||
ELSE
|
||||
lcHeader = lcHeader+"<b>"+PADC(lvHeader(lnX), ;
|
||||
lnSize)+"</b> "
|
||||
ENDIF
|
||||
ENDFOR
|
||||
ENDIF
|
||||
THIS.chEaderstring = lcHeader
|
||||
ENDIF
|
||||
ENDPROC
|
||||
*
|
||||
FUNCTION ShowCursor
|
||||
LOCAL lcHeader, lnX, laTotals, lcOutput, lnSizeloc, lnSize, lvValue
|
||||
IF EMPTY(ALIAS())
|
||||
RETURN ""
|
||||
ENDIF
|
||||
IF THIS.lsOrtable
|
||||
lnSort = VAL(REQUEST.quErystring("Sorted"))
|
||||
IF lnSort>0
|
||||
THIS.ctAblesortcolumn = TRANSFORM(lnSort)
|
||||
IF .NOT. EMPTY(REQUEST.quErystring("SortDescending"))
|
||||
THIS.ctAblesortcolumn = THIS.ctAblesortcolumn+ ;
|
||||
" DESCENDING"
|
||||
ENDIF
|
||||
ENDIF
|
||||
ENDIF
|
||||
IF .NOT. EMPTY(THIS.ctAblefieldlist)
|
||||
lcFields = THIS.ctAblefieldlist
|
||||
lcOrder = IIF( .NOT. EMPTY(THIS.ctAblesortcolumn), "ORDER BY "+ ;
|
||||
THIS.ctAblesortcolumn, "")
|
||||
SELECT &lcFields FROM ALIAS() &lcOrder INTO CURSOR __TQuery
|
||||
THIS.nfIeldcount = AFIELDS(THIS.afIeldlist)
|
||||
ELSE
|
||||
IF .NOT. EMPTY(THIS.ctAblesortcolumn)
|
||||
lcOrder = IIF( .NOT. EMPTY(THIS.ctAblesortcolumn), ;
|
||||
"ORDER BY "+THIS.ctAblesortcolumn, "")
|
||||
SELECT * FROM ( ALIAS() ) &lcOrder INTO CURSOR __TQuery
|
||||
ENDIF
|
||||
ENDIF
|
||||
lcOutput = ""
|
||||
lnFields = THIS.nfIeldcount
|
||||
lnReccount = RECCOUNT()
|
||||
IF THIS.npAge_itemsperpage<>0
|
||||
THIS.paGefilter()
|
||||
lnReccount = RECCOUNT()
|
||||
ENDIF
|
||||
* IF thIs.lsUmnumerics
|
||||
DIMENSION laTotals[1, lnFields]
|
||||
laTotals = 0
|
||||
* ENDIF
|
||||
|
||||
IF THIS.lSumLista
|
||||
LOCAL lalistacol
|
||||
DIMENSION lalistacol[1, lnFields]
|
||||
|
||||
lista2array(THIS.cSumLista,@lalistacol)
|
||||
|
||||
ENDIF
|
||||
|
||||
IF THIS.lsHowastable .AND. lnReccount*lnFields<=THIS.nfOrcetoprelist+1
|
||||
IF .NOT. EMPTY(THIS.ctAbletitle)
|
||||
lcTitle = '<TR><TH COLSPAN='+ALLTRIM(STR(lnFields))+ ;
|
||||
' ALIGN="CENTER"><H2>'+THIS.ctAbletitle+ ;
|
||||
'</H2></TH></TR>'
|
||||
ELSE
|
||||
lcTitle = ""
|
||||
ENDIF
|
||||
THIS.ohTml.WRITE(IIF(THIS.lcEntertable, '<CENTER>'+CHR(13)+ ;
|
||||
CHR(10), '')+'<TABLE BGCOLOR="'+ ;
|
||||
THIS.ctAblebgcolor+'" CELLPADDING="'+ ;
|
||||
THIS.ccEllpadding+'" CELLSPACING="'+ ;
|
||||
THIS.ccEllspacing+'" BORDER="'+ ;
|
||||
THIS.ctAbleborder+'" '+IIF( .NOT. ;
|
||||
EMPTY(THIS.ctAblewidth), ' WIDTH="'+ ;
|
||||
THIS.ctAblewidth+'"', "")+' '+ ;
|
||||
THIS.ceXtratabletags+'>'+CHR(13)+CHR(10)+IIF( ;
|
||||
.NOT. EMPTY(lcTitle), lcTitle+CHR(13)+CHR(10), ""))
|
||||
THIS.BuildFieldListHeader()
|
||||
THIS.ohTml.WRITE(THIS.chEaderstring)
|
||||
llAlternate = .T.
|
||||
SCAN
|
||||
lcRow = ""
|
||||
FOR lnX = 1 TO lnFields
|
||||
lcFieldName = THIS.afIeldlist(lnX,1)
|
||||
lcFieldtype = THIS.afIeldlist(lnX,2)
|
||||
lvValue = EVALUATE(lcFieldName)
|
||||
DO CASE
|
||||
CASE ISNULL(lvValue)
|
||||
lcRow = lcRow+"<TD>n/a</TD>"
|
||||
CASE lcFieldtype="C"
|
||||
lcRow = lcRow+"<TD>"+IIF(EMPTY(lvValue), ;
|
||||
"<BR>", TRIM(lvValue))+"</TD>"
|
||||
CASE lcFieldtype="M"
|
||||
lcRow = lcRow+"<TD >"+IIF(EMPTY(lvValue), ;
|
||||
"<BR>", ;
|
||||
THIS.ohTml.wrItememo(lvValue,.T.))+ ;
|
||||
"</TD>"
|
||||
CASE lcFieldtype$"NFBIY"
|
||||
lcRow = lcRow+'<TD ALIGN=RIGHT>'+ ;
|
||||
LTRIM(STR(lvValue, ;
|
||||
THIS.afIeldlist(lnX,3), ;
|
||||
THIS.afIeldlist(lnX,4)))+'</TD>'
|
||||
IF THIS.lsUmnumerics OR (THIS.lSumLista AND ASCAN(lalistacol,ALLTRIM(STR(lnX)))>0)
|
||||
laTotals[1, lnX] = laTotals(1,lnX)+lvValue
|
||||
ENDIF
|
||||
|
||||
CASE lcFieldtype="L"
|
||||
lcRow = lcRow+'<TD ALIGN=CENTER>'+ ;
|
||||
IIF(lvValue, "True", "False")+'</TD>'
|
||||
CASE lcFieldtype="D"
|
||||
lcRow = lcRow+'<TD ALIGN=CENTER>'+ ;
|
||||
IIF(EMPTY(lvValue), "<BR>", ;
|
||||
DTOC(lvValue))+'</TD>'
|
||||
CASE lcFieldtype="T"
|
||||
lcRow = lcRow+'<TD ALIGN=CENTER>'+ ;
|
||||
IIF(EMPTY(lvValue), "<BR>", ;
|
||||
LOWER(TTOC(lvValue)))+'</TD>'
|
||||
ENDCASE
|
||||
ENDFOR
|
||||
IF THIS.laLternaterows .AND. llAlternate
|
||||
lcRow = '<TR style="background:'+ ;
|
||||
THIS.caLternatingbgcolor+'" VALIGN=TOP>'+ ;
|
||||
lcRow+"</TR>"
|
||||
ELSE
|
||||
lcRow = '<TR VALIGN=TOP>'+lcRow+"</TR>"
|
||||
ENDIF
|
||||
llAlternate = .NOT. llAlternate
|
||||
THIS.ohTml.WRITE(lcRow+CHR(13)+CHR(10))
|
||||
ENDSCAN
|
||||
IF THIS.lsUmnumerics OR THIS.lSumLista &&
|
||||
lcRow = ""
|
||||
FOR lnX = 1 TO lnFields
|
||||
lcFieldName = THIS.afIeldlist(lnX,1)
|
||||
lcFieldtype = THIS.afIeldlist(lnX,2)
|
||||
IF lcFieldtype$"NFBIY"
|
||||
lnTotal = laTotals(1,lnX)
|
||||
IF this.lsumlista AND ASCAN(lalistacol,ALLTRIM(STR(lnX)))<=0
|
||||
lcRow = lcRow+"<TD></TD>"
|
||||
ELSE
|
||||
lcRow = lcRow+'<TD ALIGN=RIGHT><font color="'+ ;
|
||||
THIS.chEadercolor+'"><B>'+STR(lnTotal, ;
|
||||
THIS.afIeldlist(lnX,3)+1, ;
|
||||
THIS.afIeldlist(lnX,4))+'</b></font></TD>'
|
||||
ENDIF
|
||||
ELSE
|
||||
lcRow = lcRow+"<TD></TD>"
|
||||
ENDIF
|
||||
|
||||
ENDFOR
|
||||
THIS.ohTml.WRITE('<TR BGCOLOR="'+THIS.chEaderbgcolor+ ;
|
||||
'"><B>'+lcRow+'</B></TR>'+CHR(13)+CHR(10))
|
||||
ENDIF
|
||||
IF THIS.npAge_itemsperpage<>0
|
||||
IF USED("_TXQuery")
|
||||
USE IN _TXQuery
|
||||
ENDIF
|
||||
IF USED(THIS.cpAge_oldalias)
|
||||
SELECT (THIS.cpAge_oldalias)
|
||||
ENDIF
|
||||
IF .NOT. EMPTY(THIS.cpAge_linkhtml)
|
||||
THIS.ohTml.faStwrite('<tr bgcolor="'+ ;
|
||||
THIS.chEaderbgcolor+'"><td align="right" colspan="'+ ;
|
||||
TRANSFORM(lnFields)+'">'+'<font color="'+ ;
|
||||
THIS.chEadercolor+'">'+THIS.cpAge_linkhtml+ ;
|
||||
'</font></td></tr>')
|
||||
ENDIF
|
||||
ENDIF
|
||||
THIS.ohTml.WRITE("</TABLE>"+IIF(THIS.lcEntertable, '</CENTER>', ;
|
||||
'')+CHR(13)+CHR(10))
|
||||
ELSE
|
||||
THIS.ohTml.WRITE('<PRE>'+CHR(13)+CHR(10)+IIF(THIS.lcEntertable, ;
|
||||
'<CENTER>'+CHR(13)+CHR(10), ''))
|
||||
IF .NOT. EMPTY(THIS.ctAbletitle)
|
||||
lcTitle = '<H2>'+THIS.ctAbletitle+'</H2>'
|
||||
ELSE
|
||||
lcTitle = ""
|
||||
ENDIF
|
||||
THIS.chEaderstring = ""
|
||||
THIS.BuildFieldListHeader( ,.T.)
|
||||
THIS.ohTml.faStwrite(THIS.chEaderstring+CHR(13)+CHR(10))
|
||||
SCAN
|
||||
lcRow = ""
|
||||
FOR lnX = 1 TO lnFields
|
||||
lcFieldName = THIS.afIeldlist(lnX,1)
|
||||
lcFieldtype = THIS.afIeldlist(lnX,2)
|
||||
lvValue = EVALUATE(lcFieldName)
|
||||
DO CASE
|
||||
CASE ISNULL(lvValue)
|
||||
lcRow = lcRow+PADC("n/a", ;
|
||||
THIS.afIeldlist(lnX,3))
|
||||
CASE lcFieldtype="C"
|
||||
lcRow = lcRow+PADR(lvValue, ;
|
||||
THIS.afIeldlist(lnX,3))
|
||||
CASE lcFieldtype="M"
|
||||
lcRow = lcRow+PADR(MLINE(lvValue, 1), 25)
|
||||
CASE lcFieldtype$"NFBIY"
|
||||
lcRow = lcRow+STR(lvValue, ;
|
||||
THIS.afIeldlist(lnX,3), ;
|
||||
THIS.afIeldlist(lnX,4))
|
||||
IF THIS.lsUmnumerics OR (THIS.lSumLista AND ASCAN(lalistacol,ALLTRIM(STR(lnX)))>0)
|
||||
laTotals[1, lnX] = laTotals(1,lnX)+lvValue
|
||||
ENDIF
|
||||
CASE lcFieldtype="L"
|
||||
lcRow = lcRow+PADR(IIF(lvValue, "True ", ;
|
||||
"False"), THIS.afIeldlist(lnX,3))
|
||||
CASE lcFieldtype="D"
|
||||
lcRow = lcRow+DTOC(lvValue)
|
||||
CASE lcFieldtype="T"
|
||||
lcRow = lcRow+TTOC(lvValue)
|
||||
ENDCASE
|
||||
lcRow = lcRow+" | "
|
||||
ENDFOR
|
||||
THIS.ohTml.faStwrite(lcRow+CHR(13)+CHR(10))
|
||||
ENDSCAN
|
||||
IF THIS.lsUmnumerics OR THIS.lSumLista
|
||||
lcRow = ""
|
||||
FOR lnX = 1 TO lnFields
|
||||
lcFieldName = THIS.afIeldlist(lnX,1)
|
||||
lcFieldtype = THIS.afIeldlist(lnX,2)
|
||||
IF lcFieldtype$"NFBIY"
|
||||
lnTotal = laTotals(1,lnX) &&
|
||||
IF this.lSumLista AND ASCAN(lalistacol,ALLTRIM(STR(lnX)))<=0
|
||||
lcRow = lcRow+SPACE(THIS.afIeldlist(lnX,3)+3)
|
||||
ELSE
|
||||
lcRow = lcRow+STR(lnTotal, THIS.afIeldlist(lnX, ;
|
||||
3), THIS.afIeldlist(lnX,4))+" "
|
||||
ENDIF
|
||||
ELSE
|
||||
lcRow = lcRow+SPACE(THIS.afIeldlist(lnX,3)+3)
|
||||
ENDIF
|
||||
|
||||
ENDFOR
|
||||
THIS.ohTml.faStwrite('<b>'+lcRow+'</b>')
|
||||
ENDIF
|
||||
THIS.ohTml.faStwrite(IIF(THIS.lcEntertable, '</CENTER>'+ ;
|
||||
CHR(13)+CHR(10), '')+"</PRE>")
|
||||
ENDIF
|
||||
IF .NOT. EMPTY(THIS.ctAblefieldlist)
|
||||
IF USED("__TQuery")
|
||||
USE IN __TQuery
|
||||
ENDIF
|
||||
ENDIF
|
||||
RETURN
|
||||
ENDFUNC
|
||||
*
|
||||
PROCEDURE ShowASCIIRecord
|
||||
LOCAL lnX, lcFieldcaption, lnFieldcount, lcFieldtype, lcFieldName
|
||||
lcOutput = ""
|
||||
lcFieldcaption = ""
|
||||
IF .NOT. EMPTY(DBC()) .AND. INDBC(ALIAS()+'.'+THIS.afIeldlist(1,1), ;
|
||||
'Field') .AND. TYPE(ALIAS()+"."+THIS.afIeldlist(1,1))<>"U"
|
||||
FOR lnX = 1 TO THIS.nfIeldcount
|
||||
lcFieldcaption = PROPER(PADL(DBGETPROP(ALIAS()+"."+ ;
|
||||
THIS.afIeldlist(lnX,1), "FIELD", ;
|
||||
"Caption"), 25))+": "
|
||||
THIS.afIeldlist[lnX, 11] = lcFieldcaption
|
||||
ENDFOR
|
||||
ELSE
|
||||
FOR lnX = 1 TO THIS.nfIeldcount
|
||||
THIS.afIeldlist[lnX, 11] = ;
|
||||
PADL(PROPER(THIS.afIeldlist(lnX,1)), ;
|
||||
THIS.naSciileftcolumns)+": "
|
||||
ENDFOR
|
||||
ENDIF
|
||||
FOR lnX = 1 TO THIS.nfIeldcount
|
||||
lcFieldName = THIS.afIeldlist(lnX,1)
|
||||
lcFieldtype = THIS.afIeldlist(lnX,2)
|
||||
lcFieldcaption = THIS.afIeldlist(lnX,11)
|
||||
lvValue = EVALUATE(lcFieldName)
|
||||
lcRow = lcFieldcaption
|
||||
DO CASE
|
||||
CASE ISNULL(lvValue)
|
||||
lcRow = lcRow+"n/a"
|
||||
CASE lcFieldtype="C"
|
||||
lcRow = lcRow+TRIM(lvValue)
|
||||
CASE lcFieldtype="M"
|
||||
lcRow = lcRow+THIS.ohTml.wrItememo(TRIM(lvValue),.T.)
|
||||
CASE lcFieldtype$"NFBIY"
|
||||
lcRow = lcRow+LTRIM(STR(lvValue, THIS.afIeldlist(lnX, ;
|
||||
3), THIS.afIeldlist(lnX,4)))
|
||||
CASE lcFieldtype="L"
|
||||
lcRow = lcRow+IIF(lvValue, "True", "False")
|
||||
CASE lcFieldtype="D"
|
||||
lcRow = lcRow+DTOC(lvValue)
|
||||
CASE lcFieldtype="T"
|
||||
lcRow = lcRow+TTOC(lvValue)
|
||||
ENDCASE
|
||||
THIS.ohTml.WRITE(lcRow+CHR(13)+CHR(10))
|
||||
ENDFOR
|
||||
ENDPROC
|
||||
*
|
||||
PROCEDURE ShowRecord
|
||||
LOCAL lnX, lcFieldcaption, lnFieldcount, lcFieldtype, lcFieldName
|
||||
lcOutput = ""
|
||||
lcFieldcaption = ""
|
||||
lcFieldlist = THIS.ctAblerecordfieldlist
|
||||
IF .NOT. EMPTY(lcFieldlist)
|
||||
lcFields = lcFieldlist
|
||||
lnRecno = RECNO()
|
||||
SELECT &lcFields FROM ALIAS() WHERE RECNO() = lnRecno INTO CURSOR __TQuery
|
||||
THIS.nfIeldcount = AFIELDS(THIS.afIeldlist)
|
||||
ENDIF
|
||||
THIS.ohTml.WRITE(IIF(THIS.lcEntertable, '<CENTER>'+CHR(13)+CHR(10), ;
|
||||
'')+'<TABLE BGCOLOR="'+THIS.ctAblebgcolor+ ;
|
||||
'" CELLPADDING='+THIS.ccEllpadding+' CELLSPACING='+ ;
|
||||
THIS.ccEllspacing+' BORDER='+THIS.ctAbleborder+ ;
|
||||
' WIDTH='+THIS.ctAblewidth+' '+THIS.ceXtratabletags+'>')
|
||||
IF .NOT. EMPTY(DBC()) .AND. INDBC(ALIAS()+'.'+THIS.afIeldlist(1,1), ;
|
||||
'Field') .AND. TYPE(ALIAS()+"."+THIS.afIeldlist(1,1))<>"U"
|
||||
FOR lnX = 1 TO THIS.nfIeldcount
|
||||
lcCaption = DBGETPROP(ALIAS()+"."+THIS.afIeldlist(lnX,1), ;
|
||||
"FIELD", "Caption")
|
||||
lcCaption = IIF( .NOT. EMPTY(lcCaption), lcCaption, ;
|
||||
PROPER(THIS.afIeldlist(lnX,1)))
|
||||
lcCaption = PROPER(STRTRAN(lcCaption, "_", " "))
|
||||
lcFieldcaption = '<TR><TD VALIGN=TOP BGCOLOR='+ ;
|
||||
THIS.chEaderbgcolor+'><b><font color="'+ ;
|
||||
THIS.chEadercolor+'">'+lcCaption+":"+ ;
|
||||
'</font></b></TD>'
|
||||
THIS.afIeldlist[lnX, 11] = lcFieldcaption
|
||||
ENDFOR
|
||||
ELSE
|
||||
FOR lnX = 1 TO THIS.nfIeldcount
|
||||
THIS.afIeldlist[lnX, 11] = '<TR><TD VALIGN=TOP BGCOLOR='+ ;
|
||||
THIS.chEaderbgcolor+'><b><font color="'+ ;
|
||||
THIS.chEadercolor+'">'+ ;
|
||||
PROPER(STRTRAN(THIS.afIeldlist(lnX,1), "_", ;
|
||||
" "))+'</font></b></TD>'
|
||||
ENDFOR
|
||||
ENDIF
|
||||
FOR lnX = 1 TO THIS.nfIeldcount
|
||||
lcFieldName = THIS.afIeldlist(lnX,1)
|
||||
lcFieldtype = THIS.afIeldlist(lnX,2)
|
||||
lcFieldcaption = THIS.afIeldlist(lnX,11)
|
||||
lvValue = EVALUATE(lcFieldName)
|
||||
lcRow = lcFieldcaption
|
||||
DO CASE
|
||||
CASE ISNULL(lvValue)
|
||||
lcRow = lcRow+"<TD>n/a</TD>"
|
||||
CASE lcFieldtype="C" .OR. lcFieldtype="M"
|
||||
lcRow = lcRow+"<TD>"+IIF(EMPTY(lvValue), "<BR>", ;
|
||||
THIS.ohTml.wrItememo(lvValue,.T.))+"</TD>"
|
||||
CASE lcFieldtype$"NFBY"
|
||||
lcRow = lcRow+'<TD>'+LTRIM(STR(lvValue, ;
|
||||
THIS.afIeldlist(lnX,3), THIS.afIeldlist(lnX, ;
|
||||
4)))+'</TD>'
|
||||
CASE lcFieldtype="I"
|
||||
lcRow = lcRow+'<TD>'+TRANSFORM(lvValue)+'</TD>'
|
||||
CASE lcFieldtype="L"
|
||||
lcRow = lcRow+'<TD>'+IIF(lvValue, "True", "False")+'</TD>'
|
||||
CASE lcFieldtype="D"
|
||||
lcRow = lcRow+'<TD>'+IIF(EMPTY(lvValue), "<BR>", ;
|
||||
DTOC(lvValue))+'</TD>'
|
||||
CASE lcFieldtype="T"
|
||||
lcRow = lcRow+'<TD>'+IIF(EMPTY(lvValue), "<BR>", ;
|
||||
TTOC(lvValue))+'</TD>'
|
||||
ENDCASE
|
||||
THIS.ohTml.WRITE(lcRow+"</TR>"+CHR(13)+CHR(10))
|
||||
ENDFOR
|
||||
THIS.ohTml.WRITE("</TABLE>"+CHR(13)+CHR(10)+IIF(THIS.lcEntertable, ;
|
||||
'</CENTER>'+CHR(13)+CHR(10), ""))
|
||||
ENDPROC
|
||||
*
|
||||
PROCEDURE ShowObject
|
||||
LPARAMETER loObject
|
||||
LOCAL lnX, lcFieldcaption, lnFieldcount, lcFieldtype, lcFieldName, lcRow
|
||||
lcOutput = ""
|
||||
THIS.ohTml.WRITE(IIF(THIS.lcEntertable, '<CENTER>'+CHR(13)+CHR(10), ;
|
||||
'')+'<TABLE BGCOLOR="'+THIS.ctAblebgcolor+ ;
|
||||
'" CELLPADDING='+THIS.ccEllpadding+' CELLSPACING='+ ;
|
||||
THIS.ccEllspacing+' BORDER='+THIS.ctAbleborder+ ;
|
||||
' WIDTH='+THIS.ctAblewidth+' '+THIS.ceXtratabletags+'>')
|
||||
lnFieldcount = AMEMBERS(laFields, loObject)
|
||||
FOR lnX = 1 TO lnFieldcount
|
||||
lcField = laFields(lnX)
|
||||
lcRow = '<TR><TD VALIGN=TOP BGCOLOR='+THIS.chEaderbgcolor+ ;
|
||||
'><b><font color="'+THIS.chEadercolor+'">'+ ;
|
||||
PROPER(lcField)+":"+'</font></b></TD>'
|
||||
lvValue = EVALUATE("loObject."+lcField)
|
||||
lcType = VARTYPE(lvValue)
|
||||
DO CASE
|
||||
CASE ISNULL(lvValue)
|
||||
lcValue = "null"
|
||||
CASE lcType="C"
|
||||
IF EMPTY(lvValue)
|
||||
lcValue = " "
|
||||
ELSE
|
||||
lcValue = diSplaymemo(lvValue)
|
||||
ENDIF
|
||||
CASE lcType="D"
|
||||
lcValue = TRANSFORM(lvValue)
|
||||
CASE lcType="T"
|
||||
lcValue = tiMetoc(lvValue)
|
||||
CASE lcType="L"
|
||||
lcValue = IIF(lvValue, "True", "False")
|
||||
CASE lcType="O"
|
||||
lcValue = "Object"
|
||||
CASE lcType="U"
|
||||
lcValue = "Undefined"
|
||||
OTHERWISE
|
||||
lcValue = TRANSFORM(lvValue)
|
||||
ENDCASE
|
||||
THIS.ohTml.WRITE(lcRow+"<td>"+lcValue+"</td></tr>"+CHR(13)+CHR(10))
|
||||
ENDFOR
|
||||
THIS.ohTml.WRITE(IIF(THIS.lcEntertable, '</CENTER>'+CHR(13)+CHR(10), ;
|
||||
"")+"</TABLE>"+CHR(13)+CHR(10))
|
||||
ENDPROC
|
||||
*
|
||||
PROCEDURE EditRecord
|
||||
LOCAL lnX, lcFieldcaption, lnFieldcount, lcFieldtype, lcFieldName, ;
|
||||
lcKeyvalue
|
||||
lcOutput = ""
|
||||
lcFieldcaption = ""
|
||||
lcFieldlist = THIS.ctAbleeditfieldlist
|
||||
IF .NOT. EMPTY(THIS.ckEyfield)
|
||||
lcKeyvalue = EVALUATE(THIS.ckEyfield)
|
||||
ELSE
|
||||
lcKeyvalue = ""
|
||||
ENDIF
|
||||
IF .NOT. EMPTY(lcFieldlist)
|
||||
lcFields = lcFieldlist
|
||||
lnRecno = RECNO()
|
||||
SELECT &lcFields FROM ALIAS() WHERE RECNO() = lnRecno INTO CURSOR __TQuery
|
||||
THIS.nfIeldcount = AFIELDS(THIS.afIeldlist)
|
||||
ENDIF
|
||||
THIS.ohTml.WRITE(IIF(THIS.lcEntertable, '<CENTER>'+CHR(13)+CHR(10), ;
|
||||
'')+'<TABLE BGCOLOR="'+THIS.ctAblebgcolor+ ;
|
||||
'" CELLPADDING='+THIS.ccEllpadding+' CELLSPACING='+ ;
|
||||
THIS.ccEllspacing+' BORDER='+THIS.ctAbleborder+ ;
|
||||
' WIDTH='+THIS.ctAblewidth+' '+THIS.ceXtratabletags+ ;
|
||||
'>'+CHR(13)+CHR(10))
|
||||
IF .NOT. EMPTY(DBC()) .AND. INDBC(ALIAS()+'.'+THIS.afIeldlist(1,1), ;
|
||||
'Field') .AND. TYPE(ALIAS()+"."+THIS.afIeldlist(1,1))<>"U"
|
||||
FOR lnX = 1 TO THIS.nfIeldcount
|
||||
lcCaption = DBGETPROP(ALIAS()+"."+THIS.afIeldlist(lnX,1), ;
|
||||
"FIELD", "Caption")
|
||||
lcCaption = IIF( .NOT. EMPTY(lcCaption), lcCaption, ;
|
||||
PROPER(THIS.afIeldlist(lnX,1)))
|
||||
lcCaption = PROPER(STRTRAN(lcCaption, "_", " "))
|
||||
lcFieldcaption = '<TR><TD VALIGN=TOP BGCOLOR="'+ ;
|
||||
THIS.chEaderbgcolor+'"><b><font color="'+ ;
|
||||
THIS.chEadercolor+'">'+lcCaption+":"+ ;
|
||||
'</font></b></TD>'+CHR(13)+CHR(10)
|
||||
THIS.afIeldlist[lnX, 11] = lcFieldcaption
|
||||
ENDFOR
|
||||
ELSE
|
||||
FOR lnX = 1 TO THIS.nfIeldcount
|
||||
THIS.afIeldlist[lnX, 11] = '<TR><TD VALIGN=TOP BGCOLOR="'+ ;
|
||||
THIS.chEaderbgcolor+'"><b><font color="'+ ;
|
||||
THIS.chEadercolor+'">'+ ;
|
||||
PROPER(STRTRAN(THIS.afIeldlist(lnX,1), "_", ;
|
||||
" "))+'</font></b></TD>'+CHR(13)+CHR(10)
|
||||
ENDFOR
|
||||
ENDIF
|
||||
FOR lnX = 1 TO THIS.nfIeldcount
|
||||
lcFieldName = THIS.afIeldlist(lnX,1)
|
||||
lcFieldtype = THIS.afIeldlist(lnX,2)
|
||||
lnFieldwidth = THIS.afIeldlist(lnX,3)
|
||||
lcFieldcaption = THIS.afIeldlist(lnX,11)
|
||||
lvValue = EVALUATE(lcFieldName)
|
||||
lcRow = lcFieldcaption
|
||||
DO CASE
|
||||
CASE lcFieldtype="C"
|
||||
lcRow = lcRow+'<td><input type="text" name="'+ ;
|
||||
lcFieldName+'" size='+ ;
|
||||
TRANSFORM(lnFieldwidth)+' value="'+lvValue+ ;
|
||||
'"></td>'
|
||||
CASE lcFieldtype="M"
|
||||
lcRow = lcRow+ ;
|
||||
'<TD><textArea wrap=virtual cols=55 rows=5 name="'+ ;
|
||||
lcFieldName+'">'+lvValue+'</textarea></TD>'
|
||||
CASE lcFieldtype$"NFBIY"
|
||||
lcRow = lcRow+'<td><input type="text" name="'+ ;
|
||||
lcFieldName+'" size='+TRANSFORM(lnFieldwidth+ ;
|
||||
1)+' value="'+TRANSFORM(lvValue)+'"></td>'
|
||||
CASE lcFieldtype="L"
|
||||
lcRow = lcRow+'<td><input type="text" name="'+ ;
|
||||
lcFieldName+'" size=1 value="'+IIF(lvValue, ;
|
||||
"T", "F")+'"></td>'
|
||||
CASE lcFieldtype="D"
|
||||
lcRow = lcRow+'<td><input type="text" name="'+ ;
|
||||
lcFieldName+'" size=10 value="'+ ;
|
||||
TRANSFORM(lvValue)+'"></td>'
|
||||
CASE lcFieldtype="T"
|
||||
lcRow = lcRow+'<td><input type="text" name="'+ ;
|
||||
lcFieldName+'" size=15 value="'+ ;
|
||||
LOWER(TRANSFORM(lvValue))+'"></td>'
|
||||
ENDCASE
|
||||
THIS.ohTml.WRITE(lcRow+"</tr>"+CHR(13)+CHR(10))
|
||||
ENDFOR
|
||||
IF .NOT. EMPTY(lcKeyvalue)
|
||||
THIS.ohTml.WRITE('<input type="hidden" name="'+THIS.ckEyfield+ ;
|
||||
'" value="'+TRANSFORM(lcKeyvalue)+'">')
|
||||
ENDIF
|
||||
THIS.ohTml.WRITE("</TABLE>"+IIF(THIS.lcEntertable, '</CENTER>'+ ;
|
||||
CHR(13)+CHR(10), "")+CHR(13)+CHR(10))
|
||||
ENDPROC
|
||||
*
|
||||
PROCEDURE SaveRecord
|
||||
LOCAL lnX, lcFieldcaption, lnFieldcount, lcFieldtype, lcFieldName
|
||||
FOR lnX = 1 TO THIS.nfIeldcount
|
||||
lcFieldName = THIS.afIeldlist(lnX,1)
|
||||
lcFieldtype = THIS.afIeldlist(lnX,2)
|
||||
IF .NOT. REQUEST.isFormvar(lcFieldName)
|
||||
LOOP
|
||||
ENDIF
|
||||
lvValue = REQUEST.FORM(lcFieldName)
|
||||
DO CASE
|
||||
CASE lcFieldtype="C" .OR. lcFieldtype="M"
|
||||
REPLACE &lcFieldName WITH lvValue
|
||||
CASE lcFieldtype$"NFBIY"
|
||||
REPLACE &lcFieldName WITH VAL(lvValue)
|
||||
CASE lcFieldtype="L"
|
||||
REPLACE &lcFieldName WITH IIF(lvValue="T",.T.,.F.)
|
||||
CASE lcFieldtype="D"
|
||||
REPLACE &lcFieldName WITH CTOD(lvValue)
|
||||
CASE lcFieldtype="T"
|
||||
REPLACE &lcFieldName WITH CTOT(lvValue)
|
||||
ENDCASE
|
||||
ENDFOR
|
||||
ENDPROC
|
||||
*
|
||||
PROCEDURE EditTable
|
||||
LOCAL lcFields
|
||||
lcAction = UPPER(REQUEST.quErystring("Action"))
|
||||
lcId = REQUEST.quErystring("ID")
|
||||
DO CASE
|
||||
CASE lcAction="EDIT" .OR. lcAction="ADD"
|
||||
IF .NOT. THIS.laLlowadd
|
||||
THIS.ohTml.WRITE( ;
|
||||
"Sorry! Adding is not allowed at this time..." ;
|
||||
)
|
||||
RETURN
|
||||
ENDIF
|
||||
IF lcAction="ADD"
|
||||
llAdd = .T.
|
||||
ELSE
|
||||
llAdd = .F.
|
||||
ENDIF
|
||||
loResponse = THIS.ohTml
|
||||
lcKeyfield = THIS.ckEyfield
|
||||
IF llAdd
|
||||
LOCATE FOR .F.
|
||||
loResponse.WRITE([<form action="] + THIS.cbAseurl + [&Action=SaveNew&ID=] + lcId + [" method="POST">] +CHR(13)+CHR(10))
|
||||
ELSE
|
||||
IF THIS.ckEytype="N"
|
||||
LOCATE FOR &lcKeyfield = VAL(lcId)
|
||||
ELSE
|
||||
LOCATE FOR &lcKeyfield = lcId
|
||||
ENDIF
|
||||
IF .NOT. FOUND()
|
||||
loResponse.stAndardpage( ;
|
||||
"Couldn't edit record. Invalid Key Field...", , ;
|
||||
"NONE")
|
||||
RETURN
|
||||
ENDIF
|
||||
loResponse.WRITE([<form action="] + THIS.cbAseurl + [&Action=Save&ID=] + lcId + [" method="POST">] +CHR(13)+CHR(10))
|
||||
ENDIF
|
||||
loResponse.WRITE([<form action="] + THIS.cbAseurl + [&Action=SaveNew&ID=] + lcId + [" method="POST">] +CHR(13)+CHR(10))
|
||||
loResponse.WRITE( ;
|
||||
'<input type="submit" name="btnSubmit" value=" Save " ACCESSKEY="S"><p>' ;
|
||||
)
|
||||
THIS.EditRecord()
|
||||
loResponse.WRITE( ;
|
||||
'<p><input type="submit" name="btnSubmit" value=" Save ">' ;
|
||||
)
|
||||
loResponse.WRITE('</form>'+CHR(13)+CHR(10))
|
||||
CASE lcAction="SHOW"
|
||||
loResponse = THIS.ohTml
|
||||
lcKeyfield = THIS.ckEyfield
|
||||
IF THIS.ckEytype="N"
|
||||
LOCATE FOR &lcKeyfield = VAL(lcId)
|
||||
ELSE
|
||||
LOCATE FOR &lcKeyfield = lcId
|
||||
ENDIF
|
||||
IF .NOT. FOUND()
|
||||
loResponse.stAndardpage( ;
|
||||
"Couldn't edit record. Invalid Key Field...", ,"NONE")
|
||||
RETURN
|
||||
ENDIF
|
||||
THIS.ShowRecord()
|
||||
CASE lcAction="SAVE"
|
||||
loResponse = THIS.ohTml
|
||||
lcKeyfield = THIS.ckEyfield
|
||||
IF lcAction="SAVENEW"
|
||||
APPEND BLANK
|
||||
ELSE
|
||||
IF THIS.ckEytype="N"
|
||||
LOCATE FOR &lcKeyfield = VAL(lcId)
|
||||
ELSE
|
||||
LOCATE FOR &lcKeyfield = lcId
|
||||
ENDIF
|
||||
IF .NOT. FOUND()
|
||||
loResponse.erRormsg( ;
|
||||
"Couldn't edit record. Invalid Key Field...")
|
||||
RETURN
|
||||
ENDIF
|
||||
ENDIF
|
||||
THIS.SaveRecord()
|
||||
reSponse.reDirect(THIS.cbAseurl)
|
||||
CASE lcAction="DELETE"
|
||||
lcKeyfield = THIS.ckEyfield
|
||||
IF .NOT. THIS.laLlowdelete
|
||||
THIS.ohTml.WRITE( ;
|
||||
"Sorry! Deleting is not allowed at this time..." ;
|
||||
)
|
||||
RETURN
|
||||
ENDIF
|
||||
IF THIS.ckEytype="N"
|
||||
LOCATE FOR &lcKeyfield = VAL(lcId)
|
||||
ELSE
|
||||
LOCATE FOR &lcKeyfield = lcId
|
||||
ENDIF
|
||||
IF .NOT. FOUND()
|
||||
THIS.ohTml.stAndardpage( ;
|
||||
"Couldn't delete record. Invalid Key Field...")
|
||||
RETURN
|
||||
ENDIF
|
||||
DELETE
|
||||
reSponse.reDirect(THIS.cbAseurl)
|
||||
OTHERWISE
|
||||
IF THIS.laLlowadd
|
||||
THIS.ohTml.WRITE('<a href="'+THIS.cbAseurl+ ;
|
||||
'Action=Add">Add a new record</a><p>')
|
||||
ENDIF
|
||||
lcKeyfield = THIS.ckEyfield
|
||||
IF EMPTY(THIS.ctAblefieldlist)
|
||||
lcFields = "*"
|
||||
ELSE
|
||||
lcFields = THIS.ctAblefieldlist
|
||||
ENDIF
|
||||
lcOrder = IIF( .NOT. EMPTY(THIS.ctAblesortcolumn), ;
|
||||
"ORDER BY "+THIS.ctAblesortcolumn, "")
|
||||
SELECT &lcFields, PADR([<a href="] + THIS.cbAseurl + [Action=SHOW&ID=]+TRANS(&lcKeyfield)+[">Show</a> | <a href="] + THIS.cbAseurl + [Action=EDIT&Id=]+TRANS(&lcKeyfield)+[">Edit</a>] + IIF(THIS.laLlowdelete,[ | <a href="] + THIS.cbAseurl + [Action=DELETE&Id=]+TRANS(&lcKeyfield)+[">Delete</a>],[]), 254) AS Action FROM ALIAS() &lcOrder INTO CURSOR __TxQuery
|
||||
THIS.nfIeldcount = AFIELDS(THIS.afIeldlist)
|
||||
lcOldtablefieldlist = THIS.ctAblefieldlist
|
||||
THIS.ctAblefieldlist = ""
|
||||
THIS.ShowCursor()
|
||||
THIS.ctAblefieldlist = lcOldtablefieldlist
|
||||
USE IN __TxQuery
|
||||
ENDCASE
|
||||
ENDPROC
|
||||
*
|
||||
FUNCTION GetOutput
|
||||
IF .NOT. ISNULL(THIS.ohTml)
|
||||
RETURN THIS.ohTml.GetOutput()
|
||||
ENDIF
|
||||
RETURN ""
|
||||
ENDFUNC
|
||||
*
|
||||
PROCEDURE paGefilter
|
||||
LOCAL lnX, lcOutput, lcStyle, lnPages, lnReclow, lnHighrec, ;
|
||||
lnEndpage, lnStartpage, lcNolinkstyle, lnReccount
|
||||
IF EMPTY(THIS.npAge_showpage)
|
||||
THIS.npAge_showpage = VAL(REQUEST.quErystring("PAGE"))
|
||||
IF THIS.npAge_showpage<1
|
||||
THIS.npAge_showpage = 1
|
||||
ENDIF
|
||||
ENDIF
|
||||
lnReccount = RECCOUNT()
|
||||
IF lnReccount<=THIS.npAge_itemsperpage
|
||||
RETURN
|
||||
ENDIF
|
||||
THIS.cpAge_oldalias = ALIAS()
|
||||
lnPages = lnReccount/THIS.npAge_itemsperpage
|
||||
IF INT(lnPages)<lnPages
|
||||
lnPages = INT(lnPages)+1
|
||||
THIS.npAge_totalpages = lnPages
|
||||
ELSE
|
||||
THIS.npAge_totalpages = INT(lnPages)
|
||||
ENDIF
|
||||
IF THIS.npAge_showpage<lnPages
|
||||
THIS.npAge_nextpage = THIS.npAge_showpage+1
|
||||
ELSE
|
||||
THIS.npAge_nextpage = 0
|
||||
ENDIF
|
||||
IF THIS.npAge_showpage>1
|
||||
THIS.npAge_prevpage = THIS.npAge_showpage-1
|
||||
ELSE
|
||||
THIS.npAge_prevpage = 0
|
||||
ENDIF
|
||||
IF THIS.npAge_showpage=0
|
||||
THIS.npAge_showpage = 1
|
||||
ENDIF
|
||||
IF THIS.npAge_showpage<=lnPages
|
||||
lnReclow = (THIS.npAge_showpage-1)*THIS.npAge_itemsperpage+1
|
||||
lnHighrec = THIS.npAge_showpage*THIS.npAge_itemsperpage
|
||||
SELECT * FROM (THIS.cpAge_oldalias) WHERE RECNO()>=lnReclow ;
|
||||
AND RECNO()<=lnHighrec INTO CURSOR _TXQuery
|
||||
ENDIF
|
||||
IF .NOT. EMPTY(THIS.cpAge_pageurl)
|
||||
IF lnPages<=10
|
||||
lnStartpage = 1
|
||||
lnEndpage = lnPages
|
||||
ELSE
|
||||
lnStartpage = THIS.npAge_showpage-4
|
||||
IF lnStartpage<1
|
||||
lnStartpage = 1
|
||||
ENDIF
|
||||
lnEndpage = THIS.npAge_showpage+5
|
||||
IF lnEndpage>lnPages
|
||||
lnEndpage = lnPages
|
||||
ENDIF
|
||||
ENDIF
|
||||
lcOutput="Pages: "
|
||||
lcStyle = ' STYLE="color:'+THIS.chEadercolor+ ;
|
||||
';text-decoration:none underline"'
|
||||
lcNolinkstyle = ' STYLE="color:'+THIS.chEadercolor+';"'
|
||||
FOR lnX = lnStartpage TO lnEndpage
|
||||
IF lnX=THIS.npAge_showpage
|
||||
lcOutput = lcOutput+' <b '+lcNolinkstyle+'>'+ ;
|
||||
TRANSFORM(lnX)+'</b> '
|
||||
ELSE
|
||||
lcOutput = lcOutput+'<a href="'+THIS.cpAge_pageurl+ ;
|
||||
'Page='+TRANSFORM(lnX)+'"'+lcStyle+'>'+ ;
|
||||
TRANSFORM(lnX)+'</a> '
|
||||
ENDIF
|
||||
ENDFOR
|
||||
lcOutput=lcOutput + [<b> <a href="] + THIS.cpAge_pageurl + [Page=1"] +lcStyle + [>1</a>]
|
||||
lcOutput=lcOutput + [..<a href="] + THIS.cpAge_pageurl + [Page=] +TRANSFORM(lnPages) + ["] +lcStyle + [>] + TRANSFORM(lnPages) + [</a> ]
|
||||
IF THIS.npAge_prevpage<>0
|
||||
lcOutput = lcOutput+' <a href="'+THIS.cpAge_pageurl+ ;
|
||||
'Page='+TRANSFORM(THIS.npAge_prevpage)+'"'+ ;
|
||||
lcStyle+'>Prev</a>'
|
||||
ELSE
|
||||
lcOutput=lcOutput + [ </b><span ] +lcNolinkstyle + [>Prev</span><b>]
|
||||
ENDIF
|
||||
IF THIS.npAge_nextpage<>0
|
||||
lcOutput=lcOutput + [ <a href="] + THIS.cpAge_pageurl + [Page=] +TRANSFORM(THIS.npAge_nextpage) + ["] +lcStyle + [>Next</a>]
|
||||
ELSE
|
||||
lcOutput=lcOutput + [ </b><span ] +lcNolinkstyle + [>Next</span><b>]
|
||||
ENDIF
|
||||
THIS.cpAge_linkhtml=lcOutput + " </b>"
|
||||
ENDIF
|
||||
RETURN
|
||||
ENDPROC
|
||||
*
|
||||
ENDDEFINE
|
||||
*
|
||||
266
COMUN/programe/blat.prg
Normal file
266
COMUN/programe/blat.prg
Normal file
@@ -0,0 +1,266 @@
|
||||
*!* 23.06.2014
|
||||
*!* marius.mutu
|
||||
*!* SendViaBlat: Am pus calea copleta catre blat.dll
|
||||
|
||||
*******************************
|
||||
*!* Example of using SendViaBLAT
|
||||
*******************************
|
||||
#Define PRIORITYHIGH 1
|
||||
#Define PRIORITYLOW 0
|
||||
|
||||
|
||||
*!* SET PROCEDURE TO blat.prg ADDITIVE
|
||||
#If .F.
|
||||
Dimension aryAttach(2)
|
||||
aryAttach(1) = "G:\conpress_ziare\PUBLICATIISERVER\log\server_PUBLICATIISERVER_20090810.log" && change to an actual file that exists on your computer
|
||||
aryAttach(2) = "G:\conpress_ziare\PUBLICATIISERVER\log\serverupdate_PUBLICATIISERVER_20090810.log" && change to an actual file that exists on your computer
|
||||
|
||||
Local lcFrom, lcTo, lcSubject, lcBody, lcCC, lcBCC, lcMailServer, lcUserName, lcPassword, lnPort, lnPriority, llHTMLFormat, lcErrReturn
|
||||
|
||||
lcFrom = "publicatiiserver@conpressgroup.ro"
|
||||
lcTo = "marius.mutu@romfast.ro"
|
||||
lcSubject = "Hey Have You Tried VFP Email?"
|
||||
*!* Sending the body in HTML format
|
||||
llHTMLFormat = .T. && change to .F. to send plain text message
|
||||
lcBody = "<a href='http://www.sweetpotatosoftware.com/SPSBlog/default.aspx'>" + ;
|
||||
"Hey Have You Tried VFP Email?" + ;
|
||||
"</a>"
|
||||
lcCC = "mmarius28@yahoo.com"
|
||||
lcBCC = "mmarius28@google.com"
|
||||
lcMailServer = "romfast.ro" && my SMTP Server
|
||||
lnPort = 25 && default SMTP Server port
|
||||
lcUserName = "marius.mutu" && my SMTP username
|
||||
lcPassword = "parola" && my SMTP password
|
||||
lnPriority = PRIORITYHIGH
|
||||
|
||||
SendViaBLAT(@lcErrReturn, lcFrom, lcTo, lcSubject, lcBody, @aryAttach, lcCC, lcBCC, lcMailServer, lnPort, lcUserName, lcPassword, lnPriority, llHTMLFormat)
|
||||
|
||||
If Empty(lcErrReturn)
|
||||
Messagebox("'" + lcSubject + "' sent successfullly.", 64, "Send email via BLAT")
|
||||
Else
|
||||
Messagebox("'" + lcSubject + "' failed to be sent. Reason:" + Chr(13) + lcErrReturn, 64, "Send email via BLAT")
|
||||
Endif
|
||||
|
||||
|
||||
*!* BlatEmail.SendViaBlat RETURNS .T. IF SUCCES
|
||||
*!* BlatEmail.IsError
|
||||
*!* BlatEmail.ErrorMessage
|
||||
loBlatEmail = Createobject("BlatEmail")
|
||||
|
||||
loBlatEmail.From = 'my@server.ro'
|
||||
loBlatEmail.To = 'marius.mutu@romfast.ro'
|
||||
loBlatEmail.Subject = 'Subject'
|
||||
loBlatEmail.HtmlFormat = .T.
|
||||
loBlatEmail.Body = 'Body'
|
||||
loBlatEmail.CC = 'marius.mutu@yahoo.com'
|
||||
loBlatEmail.BCC = ''
|
||||
loBlatEmail.Files = "c:\file1.txt,c:\file2.txt"
|
||||
loBlatEmail.MailServer = 'mail.romfast.ro'
|
||||
loBlatEmail.Port = 25
|
||||
loBlatEmail.UserName = 'marius.mutu'
|
||||
loBlatEmail.Password = 'parola'
|
||||
|
||||
llReturn = loBlatEmail.SendViaBLAT()
|
||||
If llReturn
|
||||
Messagebox("'" + loBlatEmail.Subject + "' sent successfullly.", 64, "Send email via BLAT")
|
||||
Else
|
||||
Messagebox("'" + loBlatEmail.Subject + "' failed to be sent. Reason:" + Chr(13) + loBlatEmail.ErrorMessage, 64, "Send email via BLAT")
|
||||
Endif
|
||||
|
||||
#Endif
|
||||
|
||||
Define Class BlatEmail As Custom
|
||||
From = ''
|
||||
To = ''
|
||||
Subject = ''
|
||||
HtmlFormat = .T.
|
||||
Body = ''
|
||||
CC = ''
|
||||
BCC = ''
|
||||
MailServer = ''
|
||||
Port = 25
|
||||
UserName = ''
|
||||
Password = ''
|
||||
Priority = PRIORITYLOW
|
||||
Files = ''
|
||||
|
||||
ErrorMessage = ''
|
||||
ISERROR = .F.
|
||||
|
||||
|
||||
*******************************************
|
||||
Procedure SetAttachment
|
||||
Lparameters tcFile
|
||||
This.Files = This.Files + Iif(!Empty(This.Files), [,], []) + tcFile
|
||||
Endproc && SetAttachment
|
||||
|
||||
*******************************************
|
||||
Procedure ResetAttachments
|
||||
This.Files = ''
|
||||
Endproc && ResetAttachments
|
||||
|
||||
Procedure SendViaBLAT
|
||||
Local lcErrReturn, lcFrom, lcTo, lcSubject, lcBody, lcCC, lcBCC, lcMailServer, lnPort, lcUserName, lcPassword, lnPriority, llHTMLFormat
|
||||
|
||||
lcErrReturn = ''
|
||||
lcFrom = This.From
|
||||
lcTo = This.To
|
||||
lcSubject = This.Subject
|
||||
lcBody = This.Body
|
||||
lcCC = This.CC
|
||||
lcBCC = This.BCC
|
||||
lcMailServer= This.MailServer
|
||||
lnPort = This.Port
|
||||
lcUserName = This.UserName
|
||||
lcPassword = This.Password
|
||||
lnPriority = This.Priority
|
||||
llHTMLFormat = This.HtmlFormat
|
||||
lcFiles = This.Files
|
||||
|
||||
SendViaBLAT(@lcErrReturn, lcFrom, lcTo, lcSubject, lcBody, lcFiles, lcCC, lcBCC, lcMailServer, lnPort, lcUserName, lcPassword, lnPriority, llHTMLFormat)
|
||||
This.ISERROR = !Empty(lcErrReturn)
|
||||
This.ErrorMessage = lcErrReturn
|
||||
|
||||
Return !This.ISERROR
|
||||
Endproc
|
||||
Enddefine && BlatEmail
|
||||
|
||||
|
||||
*******************************************
|
||||
Procedure SendViaBLAT(tcReturn, tcFrom, tcTo, tcSubject, tcBody, tcFiles, tcCC, tcBCC, tcMailServer, tnPort, tcUserName, tcPassword, tnPriority, tlHtmlFormat)
|
||||
*******************************************
|
||||
Local lcBlatParam, lcBodyFile, lnCountAttachments, lnResult, loError As Exception, lcFiles
|
||||
lcBodyFile = ""
|
||||
|
||||
Try
|
||||
*!* Include full path in Declare, such as "C:\Blat240\full\blat.dll"
|
||||
*!* or make sure that blat.dll is included in the system's PATH variable
|
||||
lcBlatPath = ADDBS(m.dirgen) + [COMUNROA\blat.dll]
|
||||
Declare Integer Send In (m.lcBlatPath) String cParam
|
||||
|
||||
lcBodyFile = Addbs(Sys(2023)) + Sys(2015) + ".txt"
|
||||
Strtofile(tcBody, lcBodyFile, 0) && body is placed in a text file to be sent by BLAT
|
||||
|
||||
lcBlatParam = GetShortPath(lcBodyFile)
|
||||
|
||||
If Type("tcTo") = "C"
|
||||
lcBlatParam = lcBlatParam + " -to " + Alltrim(tcTo)
|
||||
Endif
|
||||
If Type("tcFrom") = "C"
|
||||
lcBlatParam = lcBlatParam + " -f " + Alltrim(tcFrom)
|
||||
Endif
|
||||
If Type("tcCC") = "C" And !Empty(tcCC)
|
||||
lcBlatParam = lcBlatParam + " -cc " + Alltrim(tcCC)
|
||||
Endif
|
||||
If Type("tcBCC") = "C" And !Empty(tcBCC)
|
||||
lcBlatParam = lcBlatParam + " -bcc " + Alltrim(tcBCC)
|
||||
Endif
|
||||
If Type("tcSubject") = "C" And !Empty(tcSubject)
|
||||
lcBlatParam = lcBlatParam + [ -s "] + Alltrim(tcSubject) + ["]
|
||||
Endif
|
||||
If Type("tcMailserver") = "C" And !Empty(tcMailServer)
|
||||
lcBlatParam = lcBlatParam + " -server " + Alltrim(tcMailServer)
|
||||
Endif
|
||||
If Type("tnPort") = "N" And !Empty(tnPort)
|
||||
lcBlatParam = lcBlatParam + ":" + Transform(tnPort)
|
||||
Endif
|
||||
If Type("tcUsername") = "C" And !Empty(tcUserName)
|
||||
lcBlatParam = lcBlatParam + " -u " + Alltrim(tcUserName)
|
||||
Endif
|
||||
If Type("tcPassword") = "C" And !Empty(tcPassword)
|
||||
lcBlatParam = lcBlatParam + " -pw " + Alltrim(tcPassword)
|
||||
Endif
|
||||
If Type("tnPriority") = "N" And Between(tnPriority, 0, 1)
|
||||
lcBlatParam = lcBlatParam + " -priority " + Transform(tnPriority)
|
||||
Endif
|
||||
If Type("tlHTMLFormat") = "L" And tlHtmlFormat
|
||||
lcBlatParam = lcBlatParam + " -html"
|
||||
Endif
|
||||
|
||||
*!* If Type("taFiles", 1) = "A"
|
||||
*!* lcBlatParam = lcBlatParam + " -attach "
|
||||
*!* For lnCountAttachments = 1 To Alen(taFiles)
|
||||
*!* lcBlatParam = lcBlatParam + GetShortPath(Alltrim(taFiles(lnCountAttachments))) + ","
|
||||
*!* Endfor
|
||||
*!* lcBlatParam = Left(lcBlatParam, Len(lcBlatParam) - 1) && Remove Extra Comma
|
||||
*!* Endif
|
||||
|
||||
If Vartype(tcFiles) = "C" And !Empty(tcFiles)
|
||||
tcFiles = Strtran(tcFiles, [;], [,])
|
||||
lcFiles = ""
|
||||
For lnCountAttachments = 1 To Getwordcount(tcFiles,",")
|
||||
lcFile = GetShortPath(Alltrim(Getwordnum(tcFiles,lnCountAttachments,",")))
|
||||
If File(lcFile)
|
||||
lcFiles = lcFiles + GetShortPath(Alltrim(Getwordnum(tcFiles,lnCountAttachments,","))) + ","
|
||||
Endif
|
||||
Endfor
|
||||
If !Empty(lcFiles)
|
||||
lcBlatParam = lcBlatParam + " -attach "
|
||||
lcBlatParam = lcBlatParam + lcFiles
|
||||
lcBlatParam = Left(lcBlatParam, Len(lcBlatParam) - 1) && Remove Extra Comma
|
||||
Endif
|
||||
Endif
|
||||
|
||||
lnResult = Send(Alltrim(lcBlatParam))
|
||||
|
||||
If lnResult != 0
|
||||
Do Case
|
||||
Case lnResult = -2
|
||||
Throw "The server actively denied our connection./The mail server doesn't like the sender name. "
|
||||
Case lnResult = -1
|
||||
Throw "Unable to open SMTP socket" Or ;
|
||||
"SMTP get line did not return 220" Or ;
|
||||
"command unable to write to socket" Or ;
|
||||
"Server does not like To: address" Or ;
|
||||
"Mail server error accepting message data."
|
||||
Case lnResult = 1
|
||||
Throw "File name (message text) not given" Or ;
|
||||
"Bad argument given"
|
||||
Case lnResult = 2
|
||||
Throw "File (message text) does not exist"
|
||||
Case lnResult = 3
|
||||
Throw "Error reading the file (message text) or attached file"
|
||||
Case lnResult = 4
|
||||
Throw "File (message text) not of type FILE_TYPE_DISK "
|
||||
Case lnResult = 5
|
||||
Throw "Error Reading File (message text)"
|
||||
Case lnResult = 12
|
||||
Throw "-server or -f options not specified and not found in registry"
|
||||
Case lnResult = 13
|
||||
Throw "Error opening temporary file in temp directory"
|
||||
Otherwise
|
||||
Throw "Unknown Error"
|
||||
Endcase
|
||||
Endif
|
||||
|
||||
Catch To loError
|
||||
tcReturn = [Error: ] + Str(loError.ErrorNo) + Chr(13) + ;
|
||||
[LineNo: ] + Str(loError.Lineno) + Chr(13) + ;
|
||||
[Message: ] + loError.Message + Chr(13) + ;
|
||||
[Procedure: ] + loError.Procedure + Chr(13) + ;
|
||||
[Details: ] + loError.Details + Chr(13) + ;
|
||||
[StackLevel: ] + Str(loError.StackLevel) + Chr(13) + ;
|
||||
[LineContents: ] + loError.LineContents
|
||||
Finally
|
||||
Clear Dlls "Send"
|
||||
If File(lcBodyFile)
|
||||
Erase (lcBodyFile)
|
||||
Endif
|
||||
Endtry
|
||||
Endproc
|
||||
|
||||
****************************************
|
||||
Function GetShortPath
|
||||
****************************************
|
||||
Lparameters lcFileName
|
||||
Local lnReturn, lcBuffer
|
||||
|
||||
Declare Integer GetShortPathNameA In Win32API As GetShortPathName String, String, Integer
|
||||
|
||||
lcBuffer = Space(255)
|
||||
lnReturn= GetShortPathName(lcFileName, @lcBuffer, 255)
|
||||
|
||||
Clear Dlls "GetShortPathName"
|
||||
|
||||
Return (Left(lcBuffer, lnReturn))
|
||||
Endfunc
|
||||
598
COMUN/programe/cauta_alfa.prg
Normal file
598
COMUN/programe/cauta_alfa.prg
Normal file
@@ -0,0 +1,598 @@
|
||||
*!* 24.07.2009
|
||||
*!* marius.mutu
|
||||
*!* cauta_alfa(tcStringCriterii pentru formularul cauta_alfa_form_plus)
|
||||
|
||||
*------------------------------------------------------------
|
||||
* Description: cauta_alfa - cautare generica
|
||||
* Parameters: tcselect,tcfiltru,tcschema,tcorder,tccoloana,tcTitlu,tcTitluColoana,tcNume_Proc,tl_AllInList,tcFiltruOriginal,tcPrimaColoana, tnPornire, tnTipReturn, tcIdColumn, tlDesktop, tcGroup, tcGridDynamiBackColor
|
||||
* Return: tnTipReturn = 0 => object (scatter name pe inregistrarea curenta) ; tnTipReturn = 1 => xml (din inregistrarile selectate)
|
||||
* Use:
|
||||
*------------------------------------------------------------
|
||||
* Id Date By Description
|
||||
* 1 23/06/2006 marius.mutu Initial Creation
|
||||
* 2 23/06/2006 marius.mutu TipReturn - se presupune ca tcSelect contine o coloana <ales>
|
||||
* 19/05.2021 liana.neagu adaugare tcLocate
|
||||
*------------------------------------------------------------
|
||||
Procedure cauta_alfa
|
||||
Parameters tcselect,tcfiltru,tcschema,tcorder,tccoloana,tcTitlu,tcTitluColoana, ;
|
||||
tcNume_Proc,tl_AllInList,tcFiltruOriginal,tcPrimaColoana, tnPornire, tnTipReturn, ;
|
||||
tcIdColumn, tlDesktop, tcGroup, tcGridDynamicBackColor, tcGridToolTip, tlModParam, tcStringCriterii, ;
|
||||
tcProceduraVerifica, tcProceduraCopiaza,tcLocate
|
||||
|
||||
&& tcStringCriterii : pentru butonul de cautare but_Start_criterii (daca este completat parametrul se foloseste cauta_alfa_form_plus)
|
||||
&& tnPornire: 1-incepe cu..., 2..... 6-toate
|
||||
Local llModParam, lnRecc, lcCursorXML, lcIdColumn, llDesktop, lcGroup,lorec
|
||||
llModParam = .F.
|
||||
If Empty(tnTipReturn)
|
||||
tnTipReturn = 0
|
||||
Endif
|
||||
|
||||
If !Empty(tcIdColumn)
|
||||
lcIdColumn = tcIdColumn
|
||||
Else
|
||||
lcIdColumn = "id"
|
||||
Endif
|
||||
|
||||
llDesktop = tlDesktop
|
||||
|
||||
Private pcAles
|
||||
pcAles = ""
|
||||
|
||||
Local lccoloana,lcTitlu,pnbuton,lcPrimaColoana
|
||||
Private deca_baza1,oForm_cautare,oReturnScattObj
|
||||
Store "" To deca_baza1
|
||||
Local lcCamp,lcCursor,lcCursort
|
||||
Store "" To lccoloana,lcPrimaColoana,lcCamp,lcCursor,lcCursort
|
||||
|
||||
lccoloana = tccoloana
|
||||
lcTitluColoana = tcTitluColoana
|
||||
lcTitlu = tcTitlu
|
||||
lcSelect = Upper(Alltrim(tcselect))
|
||||
|
||||
If Empty(tcPrimaColoana)
|
||||
lcPrimaColoana=""
|
||||
Else
|
||||
lcPrimaColoana=Alltrim(tcPrimaColoana)
|
||||
Endif
|
||||
|
||||
If Empty(tl_AllInList) Or Type('tl_AllInList') # 'L'
|
||||
ll_AllInList = .F.
|
||||
Else
|
||||
ll_AllInList = tl_AllInList
|
||||
Endif
|
||||
If Empty(tcFiltruOriginal) Or Type('tcFiltruOriginal') # 'C'
|
||||
lcFiltOriginal = ''
|
||||
Else
|
||||
lcFiltOriginal = tcFiltruOriginal
|
||||
Endif
|
||||
If Empty(tcNume_Proc)
|
||||
lcNume_Proc = ""
|
||||
Else
|
||||
lcNume_Proc = Upper(Alltrim(tcNume_Proc))
|
||||
**caut tip partener daca sunt in cazul nom. de parteneri:
|
||||
lnPosComma = At(';', lcNume_Proc)
|
||||
If lnPosComma > 0
|
||||
lcNume_Proc = Left(lcNume_Proc, lnPosComma - 1) + [_nou with ] + ;
|
||||
ALLTRIM(Substr(lcNume_Proc, lnPosComma + 1))
|
||||
Else
|
||||
lcNume_Proc = lcNume_Proc + "_nou"
|
||||
Endif
|
||||
|
||||
If Left(lcNume_Proc,1) = 'V'
|
||||
lcNume_Proc = Substr(lcNume_Proc,2)
|
||||
Endif
|
||||
Endif
|
||||
|
||||
lnPos = At('WHERE',lcSelect)
|
||||
lnpos2 = Max(Rat(['],lcSelect),Rat(["],lcSelect))
|
||||
If lnpos2 = 0
|
||||
lnpos2 = Len(lcSelect)+1
|
||||
Endif
|
||||
|
||||
|
||||
If !Inlist(Left(lcSelect,1),['],["],"[")
|
||||
llModParam = .T.
|
||||
Endif
|
||||
|
||||
If lnPos = 0
|
||||
lcFiltru = ""
|
||||
*!* llModParam = .T.
|
||||
Else
|
||||
If llModParam
|
||||
lcFiltru = ""
|
||||
Else
|
||||
lcFiltru = Alltrim(Substr(lcSelect,lnPos + 6,lnpos2-lnPos-6))
|
||||
*!* llModParam = .F.
|
||||
Endif
|
||||
Endif
|
||||
lcGroup = Iif(Empty(tcGroup) Or Type('tcGroup') <> 'C', '', tcGroup)
|
||||
|
||||
*!* 24.07.2009
|
||||
If Empty(tcStringCriterii)
|
||||
lcStringCriterii = ""
|
||||
Else
|
||||
lcStringCriterii = Alltrim(tcStringCriterii)
|
||||
ENDIF
|
||||
*!* 24.07.2009 ^
|
||||
|
||||
lcCursor=Sys(2015)
|
||||
lcCursort = Alltrim(lcCursor) + 't'
|
||||
If ll_AllInList = .T.
|
||||
&& sa adauge "<Toate>" in cursor
|
||||
gencursor('deca_baza1',lcCursort,tcselect,tcfiltru,tcschema,tcorder,.F.,lcGroup, llModParam, lcFiltOriginal)
|
||||
deca_baza1.ca_baza1.afisare()
|
||||
Select *, 0 As ales From &lcCursort Where .F. Into Cursor &lcCursor Readwrite
|
||||
Select (lcCursor)
|
||||
If Occurs([,],tccoloana) > 0
|
||||
lcField = Left(tccoloana,At([,],tccoloana)-1)
|
||||
|
||||
lcCamp = lcCursort + '.' + lcField
|
||||
|
||||
*IF TYPE('cursor_temp.&lcField')# 'C'
|
||||
If Type(lcCamp) # 'C'
|
||||
lcField = Field(1)
|
||||
Endif
|
||||
Else
|
||||
lcField = tccoloana
|
||||
|
||||
lcCamp = lcCursort + '.' + lcField
|
||||
|
||||
Endif
|
||||
*IF (RECCOUNT(lccursort)>0) AND TYPE('cursor_temp.&lcField')= 'C'
|
||||
If (Reccount(lcCursort)>0) And Type(lcCamp)= 'C'
|
||||
Insert Into &lcCursor (&lcField) Values("<TOATE INREGISTRARILE>")
|
||||
Endif
|
||||
Select (lcCursor)
|
||||
*APPEND FROM DBF("cursor_temp")
|
||||
Append From Dbf(lcCursort)
|
||||
Go Top
|
||||
Use In (lcCursort)
|
||||
|
||||
Else
|
||||
gencursor('deca_baza1',lcCursor,tcselect,tcfiltru,tcschema,tcorder,.F.,lcGroup, llModParam ,lcFiltOriginal)
|
||||
deca_baza1.ca_baza1.afisare()
|
||||
Endif
|
||||
|
||||
*!* modificare 30.11.2006
|
||||
If Type("poRec") = "O"
|
||||
lorec = poRec
|
||||
Endif
|
||||
*!* modificare 30.11.2006 ^
|
||||
|
||||
lnPornire = tnPornire
|
||||
pnbuton=1
|
||||
Select (lcCursor)
|
||||
lnRecc = Reccount()
|
||||
** v adaugare 19.05.2021 - Liana - Sa se pozitioneze pe o anumita inregistrare
|
||||
IF !EMPTY(tcLocate)
|
||||
Select (lcCursor)
|
||||
LOCATE FOR &tcLocate
|
||||
|
||||
ENDIF
|
||||
*!* 24.07.2009
|
||||
DO CASE
|
||||
CASE !EMPTY(lcStringCriterii)
|
||||
oForm_cautare=Createobject('cauta_alfa_form_plus',lcCursor,lcNume_Proc,lcTitluColoana,;
|
||||
lccoloana,ll_AllInList,lcPrimaColoana, lnPornire, tcGridDynamicBackColor, tcGridToolTip, lcStringCriterii)
|
||||
|
||||
CASE llDesktop
|
||||
oForm_cautare=Createobject('cauta_alfa_form_desktop',lcCursor,lcNume_Proc,lcTitluColoana,;
|
||||
lccoloana,ll_AllInList,lcPrimaColoana, lnPornire, tcGridDynamicBackColor, tcGridToolTip, ;
|
||||
tcProceduraVerifica, tcProceduraCopiaza)
|
||||
OTHERWISE
|
||||
oForm_cautare=Createobject('cauta_alfa_form',lcCursor,lcNume_Proc,lcTitluColoana,lccoloana,;
|
||||
ll_AllInList,lcPrimaColoana, lnPornire, tcGridDynamicBackColor, tcGridToolTip, ;
|
||||
tcProceduraVerifica, tcProceduraCopiaza)
|
||||
ENDCASE
|
||||
*!* IF llDesktop
|
||||
*!* oForm_cautare=Createobject('cauta_alfa_form_desktop',lcCursor,lcNume_Proc,lcTitluColoana,;
|
||||
*!* lccoloana,ll_AllInList,lcPrimaColoana, lnPornire, tcGridDynamicBackColor, tcGridToolTip)
|
||||
*!* ELSE
|
||||
*!* oForm_cautare=Createobject('cauta_alfa_form',lcCursor,lcNume_Proc,lcTitluColoana,lccoloana,;
|
||||
*!* ll_AllInList,lcPrimaColoana, lnPornire, tcGridDynamicBackColor, tcGridToolTip)
|
||||
*!* ENDIF
|
||||
*!* 24.07.2009 ^
|
||||
|
||||
With oForm_cautare
|
||||
.crs_cursor = lcCursor
|
||||
.crs_cursort = lcCursort
|
||||
If !Empty(lcFiltru)
|
||||
.cfiltru_original = lcFiltru
|
||||
Endif
|
||||
|
||||
.Lb_titlu_alb_b121.Caption=lcTitlu
|
||||
.lAles = Iif(tnTipReturn = 1, .T., .F.)
|
||||
If .lAles
|
||||
.cAles = Replicate(" ",lnRecc)
|
||||
Endif
|
||||
.cIdColumn = lcIdColumn
|
||||
Endwith
|
||||
oForm_cautare.Show()
|
||||
|
||||
*!* modificare 30.11.2006
|
||||
If Type("lorec") = "O"
|
||||
poRec = lorec
|
||||
Endif
|
||||
*!* modificare 30.11.2006 ^
|
||||
|
||||
lcCursorXML = ""
|
||||
Select (lcCursor)
|
||||
If gnbuton=1
|
||||
Do Case
|
||||
Case tnTipReturn = 0
|
||||
Scatter Name oReturnScattObj Memo
|
||||
Otherwise
|
||||
Select * From (lcCursor) With (Buffering = .T.) Where Substr(pcAles,Recno(),1) = 'X' ;
|
||||
INTO Cursor crsReturnAlfa
|
||||
Cursortoxml("crsReturnAlfa", "lcCursorXML", 2, 0+2+8, 0, "1")
|
||||
Use In crsReturnAlfa
|
||||
Endcase
|
||||
Else
|
||||
Do Case
|
||||
Case tnTipReturn = 0
|
||||
Scatter Name oReturnScattObj Blank
|
||||
Otherwise
|
||||
lcCursorXML = ""
|
||||
Endcase
|
||||
Endif
|
||||
|
||||
Release oForm_cautare
|
||||
|
||||
|
||||
Use In (lcCursor)
|
||||
|
||||
Do Case
|
||||
Case tnTipReturn = 0
|
||||
Return oReturnScattObj
|
||||
Otherwise
|
||||
Return lcCursorXML
|
||||
Endcase
|
||||
|
||||
Endproc && cauta_alfa
|
||||
***********************************************************************************************************************
|
||||
Procedure cauta_alfa_vfp
|
||||
Parameters tcselect,tcfiltru,tcschema,tcorder,tccoloana,tcTitlu,tcTitluColoana,tcNume_Proc,tl_AllInList,tcFiltruOriginal,tnCriteriu,tcFiltruAfisat
|
||||
*!* modificare 04.08.2011 : am adaugat tnCriteriu, tcFiltruAfisat
|
||||
Local llModParam
|
||||
llModParam = .F.
|
||||
|
||||
Private lccoloana,lcTitlu,pnbuton,lorec
|
||||
Store "" To lccoloana
|
||||
lccoloana = tccoloana
|
||||
lcTitluColoana = tcTitluColoana
|
||||
lcTitlu = tcTitlu
|
||||
lcSelect = Upper(Alltrim(tcselect))
|
||||
|
||||
If Empty(tl_AllInList) Or Type('tl_AllInList') # 'L'
|
||||
ll_AllInList = .F.
|
||||
Else
|
||||
ll_AllInList = tl_AllInList
|
||||
Endif
|
||||
*!* modificare 14.12.2011
|
||||
*!* If Empty(tcFiltruOriginal) Or Type('tcFiltruOriginal') # 'C'
|
||||
*!* lcFiltOriginal = ''
|
||||
*!* Else
|
||||
*!* lcFiltOriginal = tcFiltruOriginal
|
||||
*!* Endif
|
||||
*!* modificare 14.12.2011 ^
|
||||
If Empty(tcNume_Proc)
|
||||
lcNume_Proc = ""
|
||||
Else
|
||||
lcNume_Proc = Upper(Alltrim(tcNume_Proc))
|
||||
*!* **caut tip partener daca sunt in cazul nom. de parteneri:
|
||||
*!* If (Occurs("ID_TIP_PART",lcSelect)>0)
|
||||
*!* lnId_tip_part_gasit = Val( Substr(lcSelect,At("= ",lcSelect)+1) )
|
||||
*!* lcNume_Proc = lcNume_Proc + "_nou with " + Alltrim(Str(lnId_tip_part_gasit))
|
||||
*!* Else
|
||||
*!* lcNume_Proc = lcNume_Proc + "_nou"
|
||||
*!* Endif
|
||||
|
||||
*!* If Left(lcNume_Proc,1) = 'V'
|
||||
*!* lcNume_Proc = Substr(lcNume_Proc,2)
|
||||
*!* Endif
|
||||
Endif
|
||||
|
||||
lnPos = At('WHERE',lcSelect)
|
||||
lnpos2 = Max(Rat(['],lcSelect),Rat(["],lcSelect))
|
||||
If lnpos2 = 0
|
||||
lnpos2 = Len(lcSelect)+1
|
||||
Endif
|
||||
|
||||
&& 11.07.2007
|
||||
If !Inlist(Left(lcSelect,1),['],["],"[")
|
||||
llModParam = .T.
|
||||
Endif
|
||||
|
||||
If lnPos = 0
|
||||
lcFiltru = ""
|
||||
*!* llModParam = .T.
|
||||
Else
|
||||
If llModParam
|
||||
lcFiltru = ""
|
||||
Else
|
||||
lcFiltru = Alltrim(Substr(lcSelect,lnPos + 6,lnpos2-lnPos-6))
|
||||
*!* llModParam = .F.
|
||||
Endif
|
||||
Endif
|
||||
|
||||
*!* modificare 14.12.2011
|
||||
If !Empty(tcFiltruOriginal) And Type('tcFiltruOriginal') = 'C'
|
||||
lcSelect = lcSelect + [ WHERE ] + tcFiltruOriginal
|
||||
Endif
|
||||
*!* modificare 14.12.2011 ^
|
||||
|
||||
If ll_AllInList = .T. && sa adauge "<Toate>" in cursor
|
||||
lcSelectTemp=lcSelect+[ into cursor cursor_temp]
|
||||
&lcSelectTemp
|
||||
Select * From cursor_temp Where .F. Into Cursor cursor_curent Readwrite
|
||||
Select cursor_curent
|
||||
If Occurs([,],tccoloana) > 0
|
||||
lcField = Left(tccoloana,At([,],tccoloana)-1)
|
||||
If Type('cursor_temp.&lcField')# 'C'
|
||||
lcField = Field(1)
|
||||
Endif
|
||||
Else
|
||||
lcField = tccoloana
|
||||
Endif
|
||||
|
||||
If (Reccount('cursor_temp')>0) And Type('cursor_temp.&lcField')= 'C'
|
||||
Insert Into cursor_curent(&lcField) Values("<TOATE INREGISTRARILE>")
|
||||
Endif
|
||||
Select cursor_curent
|
||||
Append From Dbf('cursor_temp')
|
||||
Go Top
|
||||
Use In cursor_temp
|
||||
Select cursor_curent
|
||||
Else
|
||||
lcSelect=lcSelect+[ into cursor cursor_curent]
|
||||
&lcSelect
|
||||
Endif
|
||||
|
||||
*!* modificare 30.11.2006
|
||||
If Type("poRec") = "O"
|
||||
lorec = poRec
|
||||
Endif
|
||||
*!* modificare 30.11.2006 ^
|
||||
|
||||
Select cursor_curent
|
||||
*!* modificare 04.08.2011 : am adaugat tnCriteriu, tcFiltruAfisat
|
||||
oForm_cautare=Createobject('cauta_alfa_form_vfp',lcNume_Proc,lcTitluColoana,lccoloana,ll_AllInList,tnCriteriu,tcFiltruAfisat)
|
||||
pnbuton=1
|
||||
oForm_cautare.Lb_titlu_alb_b121.Caption=lcTitlu
|
||||
oForm_cautare.Show()
|
||||
|
||||
*!* modificare 30.11.2006
|
||||
If Type("lorec") = "O"
|
||||
poRec = lorec
|
||||
Endif
|
||||
*!* modificare 30.11.2006 ^
|
||||
|
||||
Select cursor_curent
|
||||
If pnbuton=1
|
||||
Scatter Name oReturnScattObj Memo
|
||||
Else
|
||||
Scatter Name oReturnScattObj Blank
|
||||
Endif
|
||||
Release oForm_cautare
|
||||
|
||||
**release
|
||||
Use In cursor_curent
|
||||
**Release deca_baza1
|
||||
Return oReturnScattObj
|
||||
Endproc && cauta_alfa_vfp
|
||||
***********************************************************************************************************************
|
||||
Procedure cauta_alfa_gs
|
||||
Parameters tcselect,tcfiltru,tcschema,tcorder,tccoloana,tcTitlu,tcTitluColoana,tcNume_Proc,tl_AllInList,tcFiltruOriginal,tcPrimaColoana, tnPornire, tnTipReturn, tcIdColumn, tlDesktop, toValoarePropusa
|
||||
&& toValoarePropusa = valoarea cu care se completeaza textboxul de la cautare
|
||||
&& tnPornire: 1-incepe cu..., 2..... 6-toate
|
||||
Local llModParam, lnRecc, lcCursorXML, lcIdColumn, llDesktop,lorec
|
||||
llModParam = .F.
|
||||
If Empty(tnTipReturn)
|
||||
tnTipReturn = 0
|
||||
Endif
|
||||
|
||||
If !Empty(tcIdColumn)
|
||||
lcIdColumn = tcIdColumn
|
||||
Else
|
||||
lcIdColumn = "id"
|
||||
Endif
|
||||
|
||||
llDesktop = tlDesktop
|
||||
|
||||
Private pcAles
|
||||
pcAles = ""
|
||||
|
||||
Local lccoloana,lcTitlu,pnbuton,lcPrimaColoana
|
||||
Private oForm_cautare,oReturnScattObj,deca_baza1
|
||||
Store "" To deca_baza1
|
||||
Local lcCursor
|
||||
Store "" To lccoloana,lcPrimaColoana,lcCamp,lcCursor,lcCursort
|
||||
lcSchema = tcschema
|
||||
lcNumeColoane = Strtran(tccoloana,[,],[;])
|
||||
lcTitluColoane = tcTitluColoana
|
||||
lcTitlu = tcTitlu
|
||||
lcSelect = Upper(Alltrim(tcselect))
|
||||
|
||||
If Empty(tcPrimaColoana)
|
||||
lcPrimaColoana=""
|
||||
Else
|
||||
lcPrimaColoana=Alltrim(tcPrimaColoana)
|
||||
Endif
|
||||
|
||||
If Empty(tl_AllInList) Or Type('tl_AllInList') # 'L'
|
||||
ll_AllInList = .F.
|
||||
Else
|
||||
ll_AllInList = tl_AllInList
|
||||
Endif
|
||||
If Empty(tcFiltruOriginal) Or Type('tcFiltruOriginal') # 'C'
|
||||
lcFiltruOriginal = ''
|
||||
Else
|
||||
lcFiltruOriginal = tcFiltruOriginal
|
||||
Endif
|
||||
If Empty(tcNume_Proc)
|
||||
lcNume_Proc = ""
|
||||
Else
|
||||
lcNume_Proc = Upper(Alltrim(tcNume_Proc))
|
||||
**caut tip partener daca sunt in cazul nom. de parteneri:
|
||||
lnPosComma = At(';', lcNume_Proc)
|
||||
If lnPosComma > 0
|
||||
lcNume_Proc = Left(lcNume_Proc, lnPosComma - 1) + [_nou with ] + Alltrim(Substr(lcNume_Proc, lnPosComma + 1))
|
||||
Else
|
||||
lcNume_Proc = lcNume_Proc + "_nou"
|
||||
Endif
|
||||
|
||||
If Left(lcNume_Proc,1) = 'V'
|
||||
lcNume_Proc = Substr(lcNume_Proc,2)
|
||||
Endif
|
||||
Endif
|
||||
|
||||
lnPos = At('WHERE',lcSelect)
|
||||
lnpos2 = Max(Rat(['],lcSelect),Rat(["],lcSelect))
|
||||
If lnpos2 = 0
|
||||
lnpos2 = Len(lcSelect)+1
|
||||
Endif
|
||||
|
||||
&& 11.07.2007
|
||||
If !Inlist(Left(lcSelect,1),['],["],"[")
|
||||
llModParam = .T.
|
||||
Endif
|
||||
|
||||
If lnPos = 0
|
||||
lcFiltru = ""
|
||||
*!* llModParam = .T.
|
||||
Else
|
||||
If llModParam
|
||||
lcFiltru = ""
|
||||
Else
|
||||
lcFiltru = Alltrim(Substr(lcSelect,lnPos + 6,lnpos2-lnPos-6))
|
||||
*!* llModParam = .F.
|
||||
Endif
|
||||
Endif
|
||||
|
||||
*!* modificare 30.11.2006
|
||||
If Type("poRec") = "O"
|
||||
lorec = poRec
|
||||
Endif
|
||||
*!* modificare 30.11.2006 ^
|
||||
|
||||
lcCursor=Sys(2015)
|
||||
lcCursort = Alltrim(lcCursor) + 't'
|
||||
lnPornire = tnPornire
|
||||
pnbuton=1
|
||||
*!* IF llDesktop
|
||||
*!* oForm_cautare=Createobject('cauta_alfa_form_desktop', lcCursor, lcNume_Proc, lcTitlu , lcTitluColoane, lcNumeColoane, lcSelect, lcSchema, lcFiltru, lcFiltruOriginal, lcOrder, ll_AllInList, lnPornire)
|
||||
*!* ELSE
|
||||
oForm_cautare=Createobject('cauta_alfa_form_gs', lcCursor, lcNume_Proc, lcTitlu , lcTitluColoane, lcNumeColoane, lcSelect, lcSchema, lcFiltru, lcFiltruOriginal, lcOrder, ll_AllInList, lnPornire, toValoarePropusa)
|
||||
*!* ENDIF
|
||||
|
||||
With oForm_cautare
|
||||
.lAles = Iif(tnTipReturn = 1, .T., .F.)
|
||||
If .lAles
|
||||
.cAles = Replicate(" ",lnRecc)
|
||||
Endif
|
||||
Endwith
|
||||
oForm_cautare.Show()
|
||||
|
||||
*!* modificare 30.11.2006
|
||||
If Type("lorec") = "O"
|
||||
poRec = lorec
|
||||
Endif
|
||||
*!* modificare 30.11.2006 ^
|
||||
|
||||
lcCursorXML = ""
|
||||
Select (lcCursor)
|
||||
If gnbuton=1
|
||||
Do Case
|
||||
Case tnTipReturn = 0
|
||||
Scatter Name oReturnScattObj Memo
|
||||
Otherwise
|
||||
Select * From (lcCursor) With (Buffering = .T.) Where Substr(pcAles,Recno(),1) = 'X' Into Cursor crsReturnAlfa
|
||||
Cursortoxml("crsReturnAlfa", "lcCursorXML", 2, 0+2+8, 0, "1")
|
||||
Use In crsReturnAlfa
|
||||
Endcase
|
||||
Else
|
||||
Do Case
|
||||
Case tnTipReturn = 0
|
||||
Scatter Name oReturnScattObj Blank
|
||||
Otherwise
|
||||
lcCursorXML = ""
|
||||
Endcase
|
||||
Endif
|
||||
|
||||
Release oForm_cautare
|
||||
|
||||
|
||||
Use In (lcCursor)
|
||||
|
||||
Do Case
|
||||
Case tnTipReturn = 0
|
||||
Return oReturnScattObj
|
||||
Otherwise
|
||||
Return lcCursorXML
|
||||
Endcase
|
||||
|
||||
Endproc && cauta_alfa_gs
|
||||
***********************************************************************************************************************
|
||||
|
||||
Procedure cauta_alfa_hash
|
||||
Parameters toHash
|
||||
|
||||
Local lcSelect,lcFiltru, lcSchema, lcOrder, lccoloana,lcTitlu, lcTitluColoana, lcNumeProc, llAllInList,lcFiltruOriginal,lcPrimaColoana, lnPornire, lnTipReturn, lcIdColumn, llDesktop, lcGridToolTip, llModParam
|
||||
Local loCauta
|
||||
loCauta = Null
|
||||
|
||||
*!* loHash = GetHash()
|
||||
*!* loHash.SetValue("cSelect", lcSelect)
|
||||
*!* loHash.SetValue("cFiltru", lcFiltru)
|
||||
*!* loHash.SetValue("cSchema", lcSchema)
|
||||
*!* loHash.SetValue("cOrder", lcOrder)
|
||||
*!* loHash.SetValue("cColoana", lccoloane)
|
||||
*!* loHash.SetValue("cTitlu", lcTitlu)
|
||||
*!* loHash.SetValue("cTitluColoana", lcTitluColoane)
|
||||
*!* loHash.SetValue("cNumeProc", lcNumeProc)
|
||||
*!* loHash.SetValue("lToateIreg", llToateIreg)
|
||||
*!* loHash.SetValue("cFiltruOriginal", lcFiltruOriginal)
|
||||
*!* loHash.SetValue("cPrimaColoana", lcPrimaColoana)
|
||||
*!* loHash.SetValue("nPornire", lnPornire)
|
||||
*!* loHash.SetValue("nTipReturn", lnTipReturn)
|
||||
*!* loHash.SetValue("cIdColumn", lcIdColumn)
|
||||
*!* loHash.SetValue("cStringCriterii", lcStringCriterii)
|
||||
*!* toHash.SetValue('lModParam', llModParam)
|
||||
*!* toHash.SetValue('cProceduraVerifica', lcProceduraVerifica)
|
||||
*!* toHash.SetValue('cProceduraCopiaza', lcProceduraCopiaza)
|
||||
|
||||
|
||||
lcSelect = toHash.GetValue('cselect')
|
||||
lcFiltru = toHash.GetValue('cFiltru')
|
||||
lcSchema = toHash.GetValue('cSchema')
|
||||
lcOrder = toHash.GetValue('cOrder')
|
||||
lcGroup = toHash.GetValue('cGroup')
|
||||
lccoloana = toHash.GetValue('cColoana')
|
||||
lcTitlu = toHash.GetValue('cTitlu')
|
||||
lcTitluColoana = toHash.GetValue('cTitluColoana')
|
||||
lcNumeProc = toHash.GetValue('cNumeProc')
|
||||
llAllInList = toHash.GetValue('lAllInList')
|
||||
lcFiltruOriginal = toHash.GetValue('cFiltruOriginal')
|
||||
lcPrimaColoana = toHash.GetValue('cPrimaColoana')
|
||||
lnPornire = toHash.GetValue('nPornire')
|
||||
lnTipReturn = toHash.GetValue('nTipReturn')
|
||||
lcIdColumn = toHash.GetValue('cIdColumn')
|
||||
llDesktop = toHash.GetValue('lDesktop')
|
||||
lcGridDynamicBackColor = toHash.GetValue('cGridDynamicBackColor')
|
||||
lcGridToolTip = toHash.GetValue('cGridToolTip')
|
||||
lcStringCriterii = toHash.GetValue('cStringCriterii')
|
||||
llModParam = toHash.GetValue('lModParam')
|
||||
If !llModParam And !Inlist(Left(lcSelect,1),['],["],"[")
|
||||
llModParam = .T.
|
||||
ENDIF
|
||||
lcProceduraVerifica = toHash.GetValue('cProceduraVerifica')
|
||||
lcProceduraCopiaza = toHash.GetValue('cProceduraCopiaza')
|
||||
|
||||
loCauta = cauta_alfa(lcSelect,lcFiltru, lcSchema, lcOrder, lccoloana,lcTitlu, lcTitluColoana, lcNumeProc, llAllInList,lcFiltruOriginal,lcPrimaColoana, lnPornire, lnTipReturn, lcIdColumn, llDesktop, lcGroup, lcGridDynamicBackColor, lcGridToolTip, llModParam, lcStringCriterii, lcProceduraVerifica, lcProceduraCopiaza)
|
||||
|
||||
Return loCauta
|
||||
Endproc && cauta_alfa_hash
|
||||
|
||||
|
||||
|
||||
|
||||
316
COMUN/programe/cdo2000.prg
Normal file
316
COMUN/programe/cdo2000.prg
Normal file
@@ -0,0 +1,316 @@
|
||||
* https://www.berezniker.com/content/pages/visual-foxpro/cdo-2000-class-sending-emails
|
||||
|
||||
#DEFINE cdoSendPassword "http://schemas.microsoft.com/cdo/configuration/sendpassword"
|
||||
#DEFINE cdoSendUserName "http://schemas.microsoft.com/cdo/configuration/sendusername"
|
||||
#DEFINE cdoSendUsingMethod "http://schemas.microsoft.com/cdo/configuration/sendusing"
|
||||
#DEFINE cdoSMTPAuthenticate "http://schemas.microsoft.com/cdo/configuration/smtpauthenticate"
|
||||
#DEFINE cdoSMTPConnectionTimeout "http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout"
|
||||
#DEFINE cdoSMTPServer "http://schemas.microsoft.com/cdo/configuration/smtpserver"
|
||||
#DEFINE cdoSMTPServerPort "http://schemas.microsoft.com/cdo/configuration/smtpserverport"
|
||||
#DEFINE cdoSMTPUseSSL "http://schemas.microsoft.com/cdo/configuration/smtpusessl"
|
||||
#DEFINE cdoURLGetLatestVersion "http://schemas.microsoft.com/cdo/configuration/urlgetlatestversion"
|
||||
#DEFINE cdoAnonymous 0 && Perform no authentication (anonymous)
|
||||
#DEFINE cdoBasic 1 && Use the basic (clear text) authentication mechanism.
|
||||
#DEFINE cdoSendUsingPort 2 && Send the message using the SMTP protocol over the network.
|
||||
#DEFINE cdoXMailer "urn:schemas:mailheader:x-mailer"
|
||||
|
||||
DEFINE CLASS cdo2000 AS Custom
|
||||
|
||||
PROTECTED aErrors[1], nErrorCount, oMsg, oCfg, cXMailer
|
||||
|
||||
nErrorCount = 0
|
||||
|
||||
* Message attributes
|
||||
oMsg = Null
|
||||
|
||||
cFrom = ""
|
||||
cReplyTo = ""
|
||||
cTo = ""
|
||||
cCC = ""
|
||||
cBCC = ""
|
||||
cAttachment = ""
|
||||
|
||||
cSubject = ""
|
||||
cHtmlBody = ""
|
||||
cTextBody = ""
|
||||
cHtmlBodyUrl = ""
|
||||
|
||||
cCharset = ""
|
||||
|
||||
* Priority: Normal, High, Low or empty value (Default)
|
||||
cPriority = ""
|
||||
|
||||
* Configuration object fields values
|
||||
oCfg = Null
|
||||
cServer = ""
|
||||
nServerPort = 25
|
||||
* Use SSL connection
|
||||
lUseSSL = .F.
|
||||
nConnectionTimeout = 30 && Default 30 sec's
|
||||
nAuthenticate = cdoAnonymous
|
||||
cUserName = ""
|
||||
cPassword = ""
|
||||
* Do not use cache for cHtmlBodyUrl
|
||||
lURLGetLatestVersion = .T.
|
||||
|
||||
* Optional. Creates your own X-MAILER field in the header
|
||||
cXMailer = "VFP CDO 2000 mailer Ver 1.1.100 2010"
|
||||
|
||||
PROTECTED PROCEDURE Init
|
||||
This.ClearErrors()
|
||||
ENDPROC
|
||||
|
||||
* Send message
|
||||
PROCEDURE Send
|
||||
|
||||
IF This.GetErrorCount() > 0
|
||||
RETURN This.GetErrorCount()
|
||||
ENDIF
|
||||
|
||||
WITH This
|
||||
.ClearErrors()
|
||||
.oCfg = CREATEOBJECT("CDO.Configuration")
|
||||
.oMsg = CREATEOBJECT("CDO.Message")
|
||||
.oMsg.Configuration = This.oCfg
|
||||
ENDWITH
|
||||
|
||||
* Fill message attributes
|
||||
LOCAL lnind, laList[1], loHeader, laDummy[1], lcMailHeader
|
||||
|
||||
IF This.SetConfiguration() > 0
|
||||
RETURN This.GetErrorCount()
|
||||
ENDIF
|
||||
|
||||
IF EMPTY(This.cFrom)
|
||||
This.AddError("ERROR : From is empty.")
|
||||
ENDIF
|
||||
IF EMPTY(This.cSubject)
|
||||
This.AddError("ERROR : Subject is empty.")
|
||||
ENDIF
|
||||
|
||||
IF EMPTY(This.cTo) AND EMPTY(This.cCC) AND EMPTY(This.cBCC)
|
||||
This.AddError("ERROR : To, CC and BCC are all empty.")
|
||||
ENDIF
|
||||
|
||||
IF This.GetErrorCount() > 0
|
||||
RETURN This.GetErrorCount()
|
||||
ENDIF
|
||||
|
||||
This.SetHeader()
|
||||
|
||||
WITH This.oMsg
|
||||
|
||||
.From = This.cFrom
|
||||
.ReplyTo = This.cReplyTo
|
||||
|
||||
.To = This.cTo
|
||||
.CC = This.cCC
|
||||
.BCC = This.cBCC
|
||||
.Subject = This.cSubject
|
||||
|
||||
* Create HTML body from external HTML (file, URL)
|
||||
IF NOT EMPTY(This.cHtmlBodyUrl)
|
||||
.CreateMHTMLBody(This.cHtmlBodyUrl)
|
||||
ENDIF
|
||||
|
||||
* Send HTML body. Creates TextBody as well
|
||||
IF NOT EMPTY(This.cHtmlBody)
|
||||
.HtmlBody = This.cHtmlBody
|
||||
ENDIF
|
||||
|
||||
* Send Text body. Could be different from HtmlBody, if any
|
||||
IF NOT EMPTY(This.cTextBody)
|
||||
.TextBody = This.cTextBody
|
||||
ENDIF
|
||||
|
||||
IF NOT EMPTY(This.cCharset)
|
||||
IF NOT EMPTY(.HtmlBody)
|
||||
.HtmlBodyPart.Charset = This.cCharset
|
||||
ENDIF
|
||||
|
||||
IF NOT EMPTY(.TextBody)
|
||||
.TextBodyPart.Charset = This.cCharset
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
* Process attachments
|
||||
IF NOT EMPTY(This.cAttachment)
|
||||
* Accepts comma or semicolon
|
||||
* VFP 7.0 and later
|
||||
*FOR lnind=1 TO ALINES(laList, This.cAttachment, [,], [;])
|
||||
* VFP 6.0 and later compatible
|
||||
FOR lnind=1 TO ALINES(laList, CHRTRAN(This.cAttachment, [,;], CHR(13) + CHR(13)))
|
||||
lcAttachment = ALLTRIM(laList[lnind])
|
||||
* Ignore empty values
|
||||
IF EMPTY(laList[lnind])
|
||||
LOOP
|
||||
ENDIF
|
||||
|
||||
* Make sure that attachment exists
|
||||
IF ADIR(laDummy, lcAttachment) = 0
|
||||
This.AddError("ERROR: Attachment not Found - " + lcAttachment)
|
||||
ELSE
|
||||
* The full path is required.
|
||||
IF UPPER(lcAttachment) <> UPPER(FULLPATH(lcAttachment))
|
||||
lcAttachment = FULLPATH(lcAttachment)
|
||||
ENDIF
|
||||
.AddAttachment(lcAttachment)
|
||||
ENDIF
|
||||
ENDFOR
|
||||
ENDIF
|
||||
|
||||
IF NOT EMPTY(This.cCharset)
|
||||
.BodyPart.Charset = This.cCharset
|
||||
ENDIF
|
||||
|
||||
* Priority
|
||||
IF NOT EMPTY(This.cPriority)
|
||||
lcMailHeader = "urn:schemas:mailheader:"
|
||||
.Fields(lcMailHeader + "Priority") = LOWER(This.cPriority)
|
||||
.Fields(lcMailHeader + "Importance") = LOWER(This.cPriority)
|
||||
DO CASE
|
||||
CASE This.cPriority = "High"
|
||||
.Fields(lcMailHeader + "X-Priority") = 1 && 5=Low, 3=Normal, 1=High
|
||||
CASE This.cPriority = "Normal"
|
||||
.Fields(lcMailHeader + "X-Priority") = 3 && 5=Low, 3=Normal, 1=High
|
||||
CASE This.cPriority = "Low"
|
||||
.Fields(lcMailHeader + "X-Priority") = 5 && 5=Low, 3=Normal, 1=High
|
||||
ENDCASE
|
||||
.Fields.Update()
|
||||
ENDIF
|
||||
ENDWITH
|
||||
|
||||
IF This.GetErrorCount() > 0
|
||||
RETURN This.GetErrorCount()
|
||||
ENDIF
|
||||
|
||||
This.oMsg.Send()
|
||||
|
||||
RETURN This.GetErrorCount()
|
||||
|
||||
ENDPROC
|
||||
|
||||
* Clear errors collection
|
||||
PROCEDURE ClearErrors()
|
||||
This.nErrorCount = 0
|
||||
DIMENSION This.aErrors[1]
|
||||
This.aErrors[1] = Null
|
||||
RETURN This.nErrorCount
|
||||
ENDPROC
|
||||
|
||||
* Return # of errors in the error collection
|
||||
PROCEDURE GetErrorCount
|
||||
RETURN This.nErrorCount
|
||||
ENDPROC
|
||||
|
||||
* Return error by index
|
||||
PROCEDURE GetError
|
||||
LPARAMETERS tnErrorno
|
||||
IF tnErrorno <= This.GetErrorCount()
|
||||
RETURN This.aErrors[tnErrorno]
|
||||
ELSE
|
||||
RETURN Null
|
||||
ENDIF
|
||||
ENDPROC
|
||||
|
||||
* Populate configuration object
|
||||
PROTECTED PROCEDURE SetConfiguration
|
||||
|
||||
* Validate supplied configuration values
|
||||
IF EMPTY(This.cServer)
|
||||
This.AddError("ERROR: SMTP Server isn't specified.")
|
||||
ENDIF
|
||||
IF NOT INLIST(This.nAuthenticate, cdoAnonymous, cdoBasic)
|
||||
This.AddError("ERROR: Invalid Authentication protocol ")
|
||||
ENDIF
|
||||
IF This.nAuthenticate = cdoBasic ;
|
||||
AND (EMPTY(This.cUserName) OR EMPTY(This.cPassword))
|
||||
This.AddError("ERROR: User name/Password is required for basic authentication")
|
||||
ENDIF
|
||||
|
||||
IF This.GetErrorCount() > 0
|
||||
RETURN This.GetErrorCount()
|
||||
ENDIF
|
||||
|
||||
WITH This.oCfg.Fields
|
||||
|
||||
* Send using SMTP server
|
||||
.Item(cdoSendUsingMethod) = cdoSendUsingPort
|
||||
.Item(cdoSMTPServer) = This.cServer
|
||||
.Item(cdoSMTPServerPort) = This.nServerPort
|
||||
.Item(cdoSMTPConnectionTimeout) = This.nConnectionTimeout
|
||||
|
||||
.Item(cdoSMTPAuthenticate) = This.nAuthenticate
|
||||
IF This.nAuthenticate = cdoBasic
|
||||
.Item(cdoSendUserName) = This.cUserName
|
||||
.Item(cdoSendPassword) = This.cPassword
|
||||
ENDIF
|
||||
.Item(cdoURLGetLatestVersion) = This.lURLGetLatestVersion
|
||||
.Item(cdoSMTPUseSSL) = This.lUseSSL
|
||||
|
||||
.Update()
|
||||
ENDWITH
|
||||
|
||||
RETURN This.GetErrorCount()
|
||||
|
||||
ENDPROC
|
||||
|
||||
*----------------------------------------------------
|
||||
* Add message to the error collection
|
||||
PROTECTED PROCEDURE AddError
|
||||
LPARAMETERS tcErrorMsg
|
||||
This.nErrorCount = This.nErrorCount + 1
|
||||
DIMENSION This.aErrors[This.nErrorCount]
|
||||
This.aErrors[This.nErrorCount] = tcErrorMsg
|
||||
RETURN This.nErrorCount
|
||||
ENDPROC
|
||||
|
||||
*----------------------------------------------------
|
||||
* Format an error message and add to the error collection
|
||||
PROTECTED PROCEDURE AddOneError
|
||||
LPARAMETERS tcPrefix, tnError, tcMethod, tnLine
|
||||
LOCAL lcErrorMsg, laList[1]
|
||||
IF INLIST(tnError, 1427,1429)
|
||||
AERROR(laList)
|
||||
lcErrorMsg = TRANSFORM(laList[7], "@0") + " " + laList[3]
|
||||
ELSE
|
||||
lcErrorMsg = MESSAGE()
|
||||
ENDIF
|
||||
This.AddError(tcPrefix + ":" + TRANSFORM(tnError) + " # " + ;
|
||||
tcMethod + " # " + TRANSFORM(tnLine) + " # " + lcErrorMsg)
|
||||
RETURN This.nErrorCount
|
||||
ENDPROC
|
||||
|
||||
*----------------------------------------------------
|
||||
* Simple Error handler. Adds VFP error to the objects error collection
|
||||
PROTECTED PROCEDURE Error
|
||||
LPARAMETERS tnError, tcMethod, tnLine
|
||||
This.AddOneError("ERROR: ", tnError, tcMethod, tnLine )
|
||||
RETURN This.nErrorCount
|
||||
ENDPROC
|
||||
|
||||
*-------------------------------------------------------
|
||||
* Set mail header fields, if necessary. For now sets X-MAILER, if specified
|
||||
PROTECTED PROCEDURE SetHeader
|
||||
LOCAL loHeader
|
||||
IF NOT EMPTY(This.cXMailer)
|
||||
loHeader = This.oMsg.Fields
|
||||
WITH loHeader
|
||||
.Item(cdoXMailer) = This.cXMailer
|
||||
.Update()
|
||||
ENDWITH
|
||||
ENDIF
|
||||
ENDPROC
|
||||
|
||||
*----------------------------------------------------
|
||||
*
|
||||
PROTECTED PROCEDURE cPriority_assign(tvVal)
|
||||
* Check for incorrect values
|
||||
IF INLIST("~" + PROPER(tvVal) + "~", "~High~", "~Normal~", "~Low~") OR EMPTY(tvVal)
|
||||
This.cPriority = PROPER(ALLTRIM(tvVal))
|
||||
ELSE
|
||||
This.AddError("ERROR: Invalid value for cPriority property.")
|
||||
ENDIF
|
||||
ENDPROC
|
||||
|
||||
ENDDEFINE
|
||||
139
COMUN/programe/chatbot.prg
Normal file
139
COMUN/programe/chatbot.prg
Normal file
@@ -0,0 +1,139 @@
|
||||
Lparameters tcQuestion, lcChatId, tlMarkDown2Html, tcChatBot
|
||||
|
||||
* tlMarkDown2Html (optional, implicit .T.): converteste MarkDown in Html
|
||||
|
||||
Local loHTTP As 'MSXML2.ServerXMLHTTP'
|
||||
|
||||
Local lcChatId, lcQuestion, lcRaspuns, lcResponse, lcSampleReponse, lcURL, llSucces, loEx, loJson, llMarkDown2Html
|
||||
LOCAL lcChatBot, lcChatBotId
|
||||
lcRaspuns = ''
|
||||
|
||||
llMarkDown2Html = Iif(Pcount() <= 3, .T., m.tlMarkDown2Html)
|
||||
|
||||
tcQuestion = Strtran(m.tcQuestion, Chr(13), ' ',1,1000,1)
|
||||
tcQuestion = Strtran(m.tcQuestion, '"', '\"',1,1000,1)
|
||||
|
||||
lcChatId = Iif(!Empty(m.lcChatId), m.lcChatId, '')
|
||||
|
||||
TEXT TO lcQuestion TEXTMERGE NOSHOW
|
||||
{"question": "<<m.tcQuestion>>"<<IIF(!EMPTY(m.lcChatId), [, "chatId": "] + m.lcChatId + ["], [])>>
|
||||
}
|
||||
ENDTEXT
|
||||
|
||||
*!* {"question": "Care este numele meu?",
|
||||
*!* "chatId": "913bf69d-7838-4f55-9c6d-d7ca8645be15"}
|
||||
|
||||
IF EMPTY(m.tcChatBot)
|
||||
lcChatBot = 'maria'
|
||||
ELSE
|
||||
lcChatBot = ALLTRIM(LOWER(m.tcChatbot))
|
||||
IF !INLIST(LOWER(m.tcChatbot), 'maria', 'cezar')
|
||||
lcChatBot = 'maria'
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
DO CASE
|
||||
CASE m.lcChatBot = 'cezar'
|
||||
lcChatBotId = [462dabb9-6995-4f7e-ad8e-30624ae56be5]
|
||||
CASE m.lcChatBot = 'maria'
|
||||
lcChatBotId = [d4911620-07fe-41f8-adb4-f2f52d6ec766]
|
||||
OTHERWISE
|
||||
lcChatBotId = [462dabb9-6995-4f7e-ad8e-30624ae56be5]
|
||||
ENDCASE
|
||||
|
||||
lcURL = [https://mutual-special-koala.ngrok-free.app/api/v1/prediction/] + m.lcChatBotId
|
||||
|
||||
TRY
|
||||
loHTTP = Createobject('MSXML2.ServerXMLHTTP')
|
||||
loHTTP.Open('POST', lcURL, .F.)
|
||||
loHTTP.setRequestHeader("Content-Type", "application/json; charset=utf-8")
|
||||
loHTTP.setRequestHeader("Accept-Charset", "UTF-8")
|
||||
|
||||
loHTTP.Send(m.lcQuestion)
|
||||
llSucces = (loHTTP.Status = 200)
|
||||
CATCH TO loEx
|
||||
llSucces = .F.
|
||||
AMESSAGEBOX(loEx.message,48,_Screen.Caption)
|
||||
lcRaspuns = loEx.message
|
||||
ENDTRY
|
||||
|
||||
If m.llSucces
|
||||
lcResponse = loHTTP.ResponseText
|
||||
Try
|
||||
loJson = nfjsonread(m.lcResponse)
|
||||
Catch To loEx
|
||||
llSucces = .F.
|
||||
lcRaspuns = loEx.message
|
||||
AMESSAGEBOX(loEx.Message,48,_Screen.Caption)
|
||||
Endtry
|
||||
If Type('loJson.chatId') = 'C'
|
||||
lcChatId = loJson.chatId
|
||||
Endif
|
||||
|
||||
If Type('loJson.text') = 'C'
|
||||
lcRaspuns = loJson.Text
|
||||
|
||||
If m.llMarkDown2Html
|
||||
lcRaspuns = MarkdownToHtml(m.lcRaspuns)
|
||||
Endif
|
||||
Else
|
||||
lcRaspuns = m.lcResponse
|
||||
ENDIF
|
||||
Endif
|
||||
|
||||
TEXT TO lcSampleReponse
|
||||
{
|
||||
"chatId": "feec0271-7ab1-4f07-8953-3e3d9630a87e",
|
||||
"chatMessageId": "2c076f7c-3097-4d38-99d5-24ad2d319b85",
|
||||
"isStreamValid": true,
|
||||
"memoryType": "Buffer Window Memory",
|
||||
"question": "Care este procedura pentru borderoul efactura?",
|
||||
"sessionId": "feec0271-7ab1-4f07-8953-3e3d9630a87e",
|
||||
"text": "Procedura pentru Borderoul eFactura este urmatoarea:\n\n1. Dupa emiterea facturilor, la sfarsitul zilei, sau a doua zi, daca se poate, in Borderoul eFactura: \n * Se citesc periodic Raspunsurile din ultimele 1-60 zile (depinde de cate zile nu s-au citit raspunsurile).\n * Facturile validate de ANAF au Tip Mesaj Raspuns = \"FACTURA PRIMITA\".\n * Facturile invalide au Tip Mesaj Raspuns = \"ERORI FACTURA\" ?i fundal de culoare ro?ie.\n * Se trimit facturile netrimise (culoare fundal galben pai) ?i cu erori, daca s-au corectat erorile, (culoare fundal rosu) din ziua curenta (daca operatia se face la sfarsitul zilei) sau din ziua precedenta (daca se poate).\n2. Se citesc Raspunsurile ?i se retrimite eFactura doar daca s-a primit raspuns tip \"ERORI FACTURA\".\n3. Din Borderoul eFactura, <20>n paginile Facturi Trimise ?i Primite se poate lista centralizatorul facturilor trimise/primite <20>n SPV cu Id Descarcare/Id <20>ncarcare, pe care <20>l pute?i ata?a la Registrele de TVA V<>nzare/Cumparare."
|
||||
}
|
||||
ENDTEXT
|
||||
|
||||
Return m.lcRaspuns
|
||||
|
||||
* Markdown to HTML Converter in Visual FoxPro
|
||||
Function MarkdownToHtml
|
||||
Lparameters lcMarkdown
|
||||
|
||||
Local lcHTML, laLines[1], lnI, lcLine, lcTemp
|
||||
lcHTML = ""
|
||||
|
||||
* Split the Markdown into lines
|
||||
Alines(laLines, lcMarkdown)
|
||||
|
||||
* Process each line
|
||||
For lnI = 1 To Alen(laLines)
|
||||
lcLine = Alltrim(laLines[lnI])
|
||||
|
||||
* Check for headers
|
||||
Do Case
|
||||
Case Left(lcLine, 2) == '# '
|
||||
lcHTML = lcHTML + '<h1>' + Substr(lcLine, 3) + '</h1>' + Chr(13) + Chr(10)
|
||||
Case Left(lcLine, 3) == '## '
|
||||
lcHTML = lcHTML + '<h2>' + Substr(lcLine, 4) + '</h2>' + Chr(13) + Chr(10)
|
||||
Case Left(lcLine, 4) == '### '
|
||||
lcHTML = lcHTML + '<h3>' + Substr(lcLine, 5) + '</h3>' + Chr(13) + Chr(10)
|
||||
OTHERWISE
|
||||
lcHtml = lcHtml + m.lcLine
|
||||
Endcase
|
||||
Endfor
|
||||
|
||||
* Check for bold and italic
|
||||
|
||||
lcHTML = Strtran(m.lcHTML , '**', '<strong>',1,1000,1)
|
||||
lcHTML = Strtran(m.lcHTML , '**', '</strong>',1,1000,1)
|
||||
lcHTML = Strtran(m.lcHTML , '*', '<em>',1,1000,1)
|
||||
lcHTML = Strtran(m.lcHTML , '*', '</em>',1,1000,1)
|
||||
|
||||
|
||||
lcHTML = Strtran(m.lcHTML , '\n', '<br>',1,1000,1)
|
||||
lcHTML = Strtran(m.lcHTML , '\t', ' ',1,1000,1)
|
||||
lcHTML = Strtran(m.lcHTML , '\"', '"',1,1000,1)
|
||||
|
||||
Return m.lcHTML
|
||||
Endfunc
|
||||
|
||||
70
COMUN/programe/controllere/appbcontroller.prg
Normal file
70
COMUN/programe/controllere/appbcontroller.prg
Normal file
@@ -0,0 +1,70 @@
|
||||
#INCLUDE COMUN.H
|
||||
|
||||
Define Class appBaseController As Custom
|
||||
oSettings = Null
|
||||
lError = .F.
|
||||
cErrorMessage = ''
|
||||
oLog = Null
|
||||
*
|
||||
Procedure Init
|
||||
This.oSettings = Createobject("settingsBaseController")
|
||||
This.oLog = Iif(Type('goLog') = 'O', goLog, Createobject("logBaseController"))
|
||||
Endproc && INIT
|
||||
*
|
||||
Procedure ProcessError(toHash)
|
||||
Declare laErrors[1]
|
||||
|
||||
lnErrorLines = Aerror(laErrors)
|
||||
|
||||
lnError = Iif(toHash.HasProperty("nError"), toHash.GetValue("nError"), Transform(laErrors(1)) + ' ' + Transform(laErrors(5)))
|
||||
lcMethod = toHash.GetValue("cMethod")
|
||||
lnLine = toHash.GetValue("nLine")
|
||||
lcError = Iif(toHash.HasProperty("cError"), toHash.GetValue("cError"), Transform(laErrors(2)))
|
||||
lcCode = Iif(toHash.HasProperty("cCode"), toHash.GetValue("cCode"), Message(1) )
|
||||
lcCallStack = GetCallStack()
|
||||
lcUserMessage = toHash.GetValue("cUserMessage")
|
||||
|
||||
This.cErrorMessage = lcUserMessage + CRLF + CRLF + ;
|
||||
'Eroarea nr: ' + Transform(lnError) + CRLF + ;
|
||||
'Eroarea: ' + Transform(lcError) + CRLF + ;
|
||||
'Procedura: ' + Transform(lcMethod) + CRLF + ;
|
||||
'Linia: ' + Transform(lnLine) + CRLF + ;
|
||||
'Codul: ' + Transform(lcCode) + CRLF + ;
|
||||
lcCallStack
|
||||
|
||||
This.lError = .T.
|
||||
This.oLog.WriteLog(This.cErrorMessage)
|
||||
|
||||
aMessagebox(This.cErrorMessage,0+16,'Eroare')
|
||||
*!* IF MESSAGEBOX(THIS.cErrorMessage + CRLF + 'Doriti sa iesiti?',16+4,'Eroare') = 6
|
||||
*!* RETURN TO MASTER
|
||||
*!* ENDIF
|
||||
Endproc && ProcessError
|
||||
*
|
||||
Procedure Log
|
||||
Lparameters tcMessage
|
||||
This.oLog.WriteLog(tcMessage)
|
||||
Endproc && Log
|
||||
*
|
||||
Function GetError
|
||||
Return This.cErrorMessage
|
||||
Endfunc && GetError
|
||||
*
|
||||
Function HasError
|
||||
Return This.lError
|
||||
Endfunc && HasError
|
||||
|
||||
*
|
||||
Function Gethost
|
||||
Return ""
|
||||
Endfunc && GetHost
|
||||
*
|
||||
Function GetUser
|
||||
Return ""
|
||||
Endfunc && GetUser
|
||||
*
|
||||
Function GetPassword
|
||||
Return ""
|
||||
Endfunc && GetPassword
|
||||
|
||||
Enddefine
|
||||
339
COMUN/programe/controllere/dbaccesscontroller.prg
Normal file
339
COMUN/programe/controllere/dbaccesscontroller.prg
Normal file
@@ -0,0 +1,339 @@
|
||||
Define Class DBAccessController As Custom
|
||||
|
||||
cServer = Null
|
||||
cSchema = Null
|
||||
cParola = Null
|
||||
oExecutor = Null
|
||||
oConn = Null
|
||||
nHandle = Null
|
||||
nSucces = 0
|
||||
lAfiseazaEroare = .T.
|
||||
***********************************************************************
|
||||
Procedure Init
|
||||
If Type('goConn') = 'O'
|
||||
This.oConn = goConn
|
||||
Else
|
||||
This.oConn = Createobject("oConn")
|
||||
Public goConn
|
||||
goConn = This.oConn
|
||||
Endif
|
||||
If Type('goExecutor') = 'O'
|
||||
This.oExecutor = goExecutor
|
||||
Else
|
||||
This.oExecutor = Createobject("oExecutor")
|
||||
Public goExecutor
|
||||
goExecutor = This.oExecutor
|
||||
Endif
|
||||
If Type('gnHandle') = 'N'
|
||||
This.nHandle = gnHandle
|
||||
Else
|
||||
This.nHandle = -1
|
||||
Public gnHandle
|
||||
gnHandle = -1
|
||||
Endif
|
||||
Endproc
|
||||
***********************************************************************
|
||||
PROCEDURE conecteaza
|
||||
Lparameters tcSchema,tcParola
|
||||
This.cSchema = tcSchema
|
||||
This.cParola = tcParola
|
||||
This.nHandle = This.oConn.Connect(This.cServer,This.cSchema,This.cParola)
|
||||
ENDPROC
|
||||
***********************************************************************
|
||||
PROCEDURE deconecteaza
|
||||
This.oConn.Disconnect(This.nHandle)
|
||||
This.cSchema = Null
|
||||
This.cParola = Null
|
||||
This.nHandle = -1
|
||||
ENDPROC
|
||||
***********************************************************************
|
||||
Procedure setServer
|
||||
Lparameters tcServer
|
||||
This.cServer = tcServer
|
||||
Endproc
|
||||
***********************************************************************
|
||||
Procedure setSchemaParola
|
||||
Lparameters tcSchema,tcParola
|
||||
If This.nHandle <> -1
|
||||
This.oConn.Disconnect(This.nHandle)
|
||||
Endif
|
||||
This.conecteaza(tcSchema,tcParola)
|
||||
Endproc
|
||||
***********************************************************************
|
||||
Procedure copiaza_structura_cursor
|
||||
Lparameters tcSursa,tcDestinatie
|
||||
LOCAL lnIndex
|
||||
If !Empty(tcSursa) And !Empty(tcDestinatie)
|
||||
If Used(tcSursa)
|
||||
Dimension laStructura(1,18)
|
||||
If Used(tcDestinatie)
|
||||
Use In (tcDestinatie)
|
||||
Endif
|
||||
Afields(laStructura,tcSursa)
|
||||
*!* lnIndex = ALEN(laStructura,1)+1
|
||||
*!* DIMENSION laStructura(lnIndex,18)
|
||||
*!* laStructura[lnIndex,1] = "RN"
|
||||
*!* laStructura[lnIndex,2] = "N"
|
||||
*!* laStructura[lnIndex,3] = 10
|
||||
*!* laStructura[lnIndex,4] = 0
|
||||
*!* laStructura[lnIndex,5] = .F.
|
||||
*!* laStructura[lnIndex,6] = laStructura[lnIndex-1,6]
|
||||
*!* laStructura[lnIndex,7] = []
|
||||
*!* laStructura[lnIndex,8] = []
|
||||
*!* laStructura[lnIndex,9] = []
|
||||
*!* laStructura[lnIndex,10] = laStructura[lnIndex-1,10]
|
||||
*!* laStructura[lnIndex,11] = laStructura[lnIndex-1,11]
|
||||
*!* laStructura[lnIndex,12] = laStructura[lnIndex-1,12]
|
||||
*!* laStructura[lnIndex,13] = []
|
||||
*!* laStructura[lnIndex,14] = []
|
||||
*!* laStructura[lnIndex,15] = []
|
||||
*!* laStructura[lnIndex,16] = []
|
||||
*!* laStructura[lnIndex,17] = 1
|
||||
*!* laStructura[lnIndex,18] = 1
|
||||
Create Cursor (tcDestinatie) From Array laStructura
|
||||
Release laStructura
|
||||
Else
|
||||
amessagebox("Eroare interna 2 - copiaza structura cursor",16,"Eroare")
|
||||
Endif
|
||||
Else
|
||||
amessagebox("Eroare interna 1 - copiaza structura cursor",16,"Eroare")
|
||||
Endif
|
||||
Endproc
|
||||
***********************************************************************
|
||||
Function apeleaza_sql_hash
|
||||
Lparameters toHash,tcNumeCursor
|
||||
LOCAL lcSql
|
||||
lcSql = [select ] + toHash.getValue('cColumns') + ;
|
||||
[ from ] + toHash.getValue('cTables') + ;
|
||||
IIF(!Empty(toHash.getValue('cWhere')),[ where ] + toHash.getValue('cWhere'),[]) + ;
|
||||
IIF(!Empty(toHash.getValue('cGroupBy')),[ group by ] + toHash.getValue('cGroupBy'),[]) + ;
|
||||
IIF(!Empty(toHash.getValue('cOrderBy')),[ order by ] + toHash.getValue('cOrderBy'),[])
|
||||
RETURN This.apeleaza_sql(lcSql,tcNumeCursor)
|
||||
endfunc
|
||||
***********************************************************************
|
||||
Function apeleaza_sql
|
||||
Lparameters tcSql,tcNumeCursor
|
||||
Local lcNumeCursor,lcAlias,llSucces
|
||||
llSucces = .F.
|
||||
lcAlias = Alias()
|
||||
lcNumeCursor = [codbctemp]
|
||||
If Used(lcNumeCursor)
|
||||
Use In (lcNumeCursor)
|
||||
Endif
|
||||
This.nSucces = This.oExecutor.oExecute(tcSql,lcNumeCursor)
|
||||
llSucces = This.verificaSucces()
|
||||
If llSucces
|
||||
If !Used(tcNumeCursor)
|
||||
This.copiaza_structura_cursor(lcNumeCursor,tcNumeCursor)
|
||||
Endif
|
||||
Select (tcNumeCursor)
|
||||
Zap In (tcNumeCursor)
|
||||
Append From Dbf(lcNumeCursor)
|
||||
Go Top
|
||||
If Used(lcNumeCursor)
|
||||
Use In (lcNumeCursor)
|
||||
Endif
|
||||
If !Empty(lcAlias)
|
||||
Select (lcAlias)
|
||||
Endif
|
||||
Endif
|
||||
Return llSucces
|
||||
Endfunc
|
||||
***********************************************************************
|
||||
Function apeleaza_procedura
|
||||
Lparameters tcApelProcedura,tcNumeCursor
|
||||
Local lcNumeCursor,lcAlias,llSucces,lcDeclaratie
|
||||
llSucces = .F.
|
||||
lcAlias = Alias()
|
||||
If !Empty(tcNumeCursor)
|
||||
lcNumeCursor = [codbctemp]
|
||||
lcSql = [{call ] + tcApelProcedura + [}]
|
||||
If Used(lcNumeCursor)
|
||||
Use In (lcNumeCursor)
|
||||
Endif
|
||||
Else
|
||||
lcSql = [begin ] + tcApelProcedura + [; end;]
|
||||
Endif
|
||||
|
||||
This.nSucces = This.oExecutor.oExecute(lcSql,lcNumeCursor)
|
||||
|
||||
llSucces = This.verificaSucces()
|
||||
If llSucces And !Empty(tcNumeCursor)
|
||||
If !Used(tcNumeCursor)
|
||||
This.copiaza_structura_cursor(lcNumeCursor,tcNumeCursor)
|
||||
Endif
|
||||
Select (tcNumeCursor)
|
||||
Zap In (tcNumeCursor)
|
||||
Append From Dbf(lcNumeCursor)
|
||||
Go Top
|
||||
If Used(lcNumeCursor)
|
||||
Use In (lcNumeCursor)
|
||||
Endif
|
||||
Endif
|
||||
If !Empty(lcAlias)
|
||||
Select (lcAlias)
|
||||
Endif
|
||||
Return llSucces
|
||||
Endfunc
|
||||
***********************************************************************
|
||||
Function apeleaza_procedura_o
|
||||
Lparameters tcApelProcedura,tcSirTip
|
||||
Local lcNumeCursor,lcAlias,llSucces,lcNumeVariabila,lnParametri, lcTip
|
||||
Dimension laSir[1]
|
||||
llSucces = .F.
|
||||
lcAlias = Alias()
|
||||
lnParametri = Getwordcount(tcSirTip,[|])
|
||||
Dimension laSir[lnParametri]
|
||||
For i = 1 To lnParametri
|
||||
lcTip = Getwordnum(tcSirTip,i,[|])
|
||||
lcNumeVariabila = [p] + lcTip + [Parametru] + Alltrim(Str(i))
|
||||
lcDeclaratie = [Private ] + lcNumeVariabila
|
||||
&lcDeclaratie
|
||||
DO case
|
||||
CASE UPPER(lcTip) = 'N'
|
||||
lcDeclaratie = lcNumeVariabila + [ = 0]
|
||||
CASE UPPER(lcTip) = 'C'
|
||||
lcDeclaratie = lcNumeVariabila + [ = '']
|
||||
Otherwise
|
||||
lcDeclaratie = lcNumeVariabila + [ = Null]
|
||||
endcase
|
||||
&lcDeclaratie
|
||||
tcApelProcedura = Strtran(tcApelProcedura,[@p]+Padl(Alltrim(Str(i)),2,[0]),[@]+lcNumeVariabila)
|
||||
Endfor
|
||||
lcSql = [{call ] + tcApelProcedura + [}]
|
||||
This.nSucces = This.oExecutor.oExecute(lcSql)
|
||||
llSucces = This.verificaSucces()
|
||||
If llSucces
|
||||
For i = 1 To lnParametri
|
||||
lcNumeVariabila = [p] + Getwordnum(tcSirTip,i,[|]) + [Parametru] + Alltrim(Str(i))
|
||||
loVariabila = &lcNumeVariabila
|
||||
laSir[i] = loVariabila
|
||||
lcDeclaratie = [Release ] + lcNumeVariabila
|
||||
&lcDeclaratie
|
||||
Endfor
|
||||
ELSE
|
||||
For i = 1 To lnParametri
|
||||
laSir[i] = Null
|
||||
Endfor
|
||||
Endif
|
||||
If !Empty(lcAlias)
|
||||
Select (lcAlias)
|
||||
Endif
|
||||
Return laSir
|
||||
Endfunc
|
||||
***********************************************************************
|
||||
Function apeleaza_functie
|
||||
Lparameters tcApelFunctie,tcTip
|
||||
Local lcCursor,luReturn
|
||||
lcCursor = [crstaf010101]
|
||||
lcSql = [select ] + tcApelFunctie + [ as valoare from dual]
|
||||
This.nSucces = This.oExecutor.oExecute(lcSql,lcCursor)
|
||||
If This.verificaSucces()
|
||||
Select (lcCursor)
|
||||
luReturn = valoare
|
||||
If Used(lcCursor)
|
||||
Use In (lcCursor)
|
||||
Endif
|
||||
Do Case
|
||||
Case Isnull(luReturn)
|
||||
Return Null
|
||||
Case Type('luReturn') <> tcTip
|
||||
Return Val(luReturn)
|
||||
Otherwise
|
||||
Return luReturn
|
||||
Endcase
|
||||
Else
|
||||
Return Null
|
||||
Endif
|
||||
Endfunc
|
||||
***********************************************************************
|
||||
Function getEroare
|
||||
Return Iif(Between(This.oExecutor.nEroare,20000,21000),This.oExecutor.cEroare,[])
|
||||
Endfunc
|
||||
***********************************************************************
|
||||
Function getSucces
|
||||
Return This.nSucces
|
||||
Endfunc
|
||||
***********************************************************************
|
||||
Function getSchema
|
||||
Return This.cSchema
|
||||
Endfunc
|
||||
***********************************************************************
|
||||
Procedure setAfiseazaEroare
|
||||
Lparameters tlAfiseazaEroare
|
||||
This.lAfiseazaEroare = tlAfiseazaEroare
|
||||
Endproc
|
||||
***********************************************************************
|
||||
Procedure getAfiseazaEroare
|
||||
Return This.lAfiseazaEroare
|
||||
Endproc
|
||||
***********************************************************************
|
||||
Function verificaSucces
|
||||
Local llReturn
|
||||
llReturn = .T.
|
||||
If This.nSucces < 0
|
||||
IF This.lAfiseazaEroare OR (!BETWEEN(This.oExecutor.nEroare,20000,21000))
|
||||
amessagebox(This.oExecutor.cEroare,16,"Eroare")
|
||||
ENDIF
|
||||
llReturn = .F.
|
||||
Endif
|
||||
Return llReturn
|
||||
Endfunc
|
||||
***********************************************************************
|
||||
Function setTranzactieManuala
|
||||
Local lnSucces
|
||||
lnSucces = SQLSetprop(This.nHandle,"Transactions",2)
|
||||
If lnSucces < 0
|
||||
If This.lAfiseazaEroare
|
||||
amessagebox("Programul nu a reusit sa treaca pe tranzactie manuala! Reintrati in program si incercati din nou!",16,"Eroare")
|
||||
Endif
|
||||
llReturn = .F.
|
||||
Else
|
||||
llReturn = .T.
|
||||
Endif
|
||||
Return llReturn
|
||||
Endfunc
|
||||
***********************************************************************
|
||||
Function setTranzactieAutomata
|
||||
Local lnSucces,llReturn
|
||||
lnSucces = SQLSetprop(This.nHandle,"Transactions",1)
|
||||
If lnSucces < 0
|
||||
If This.lAfiseazaEroare
|
||||
amessagebox("Programul nu a reusit sa treaca pe tranzactie automata! Iesiti din program si intrati din nou!",16,"Eroare")
|
||||
Endif
|
||||
llReturn = .F.
|
||||
Else
|
||||
llReturn = .T.
|
||||
Endif
|
||||
Return llReturn
|
||||
Endfunc
|
||||
***********************************************************************
|
||||
Function confirmaOperatii
|
||||
Local lnSucces,llReturn
|
||||
lnSucces = Sqlcommit(This.nHandle)
|
||||
If lnSucces < 0
|
||||
If This.lAfiseazaEroare
|
||||
amessagebox("Eroare la COMMIT!",16,"Eroare")
|
||||
Endif
|
||||
llReturn = .F.
|
||||
Else
|
||||
llReturn = .T.
|
||||
Endif
|
||||
Return llReturn
|
||||
Endfunc
|
||||
***********************************************************************
|
||||
Function revocaOperatii
|
||||
Local lnSucces,llReturn
|
||||
lnSucces = Sqlrollback(This.nHandle)
|
||||
If lnSucces < 0
|
||||
If This.lAfiseazaEroare
|
||||
amessagebox("Eroare la ROLLBACK!",16,"Eroare")
|
||||
Endif
|
||||
llReturn = .F.
|
||||
Else
|
||||
llReturn = .T.
|
||||
Endif
|
||||
Return llReturn
|
||||
Endfunc
|
||||
***********************************************************************
|
||||
Enddefine
|
||||
66
COMUN/programe/controllere/logbcontroller.prg
Normal file
66
COMUN/programe/controllere/logbcontroller.prg
Normal file
@@ -0,0 +1,66 @@
|
||||
#INCLUDE COMUN.H
|
||||
|
||||
Define Class logBaseController As Session
|
||||
cLog = ''
|
||||
cOutputFile = ''
|
||||
lAdditive = .T.
|
||||
|
||||
********************************************************************
|
||||
Procedure Init
|
||||
Lparameters tcOutputfile, tlAdditive
|
||||
|
||||
If !Empty(tcOutputfile) And Type('tcOutputFile') = 'C'
|
||||
This.cOutputFile = tcOutputfile
|
||||
Endif
|
||||
If Pcount() = 2 And Type('tlAdditive') = 'L'
|
||||
This.lAdditive = tlAdditive
|
||||
Endif
|
||||
|
||||
This.Log()
|
||||
Endproc
|
||||
********************************************************************
|
||||
Procedure Log
|
||||
Lparameters tcMessage, tcProgram
|
||||
Local lcLog
|
||||
If Pcount() = 0 Or Type('tcMessage') # 'C' Or Empty(tcMessage)
|
||||
lcLog = CRLF
|
||||
Else
|
||||
lcLog = Ttoc(Datetime()) + ' ' + Sys(0) + CRLF + tcMessage + CRLF
|
||||
Endi
|
||||
This.cLog = This.cLog + lcLog
|
||||
This.WRITELOG()
|
||||
Endproc
|
||||
********************************************************************
|
||||
Procedure ResetLog
|
||||
This.cLog = ''
|
||||
Endproc
|
||||
********************************************************************
|
||||
Procedure WRITELOG
|
||||
Lparameters tcMessage, tcOutputfile, tlAdditive
|
||||
Local lcOutputfile, llAdditive, lcLog
|
||||
If !Empty(tcOutputfile) And Type('tcOutputFile') = 'C'
|
||||
lcOutputfile = tcOutputfile
|
||||
Else
|
||||
lcOutputfile = This.cOutputFile
|
||||
Endif
|
||||
If Pcount() < 3 Or Type('tlAdditive') # 'L'
|
||||
llAdditive = This.lAdditive
|
||||
Else
|
||||
llAdditive = tlAdditive
|
||||
Endif
|
||||
If Type('tcMessage') = 'C'
|
||||
If Empty(tcMessage)
|
||||
lcLog = CRLF
|
||||
Else
|
||||
lcLog = Ttoc(Datetime()) + ' ' + Sys(0) + CRLF + tcMessage + CRLF
|
||||
Endif
|
||||
Else
|
||||
lcLog = This.cLog
|
||||
Endif
|
||||
If !Empty(lcOutputfile)
|
||||
Strtofile(lcLog, lcOutputfile, llAdditive)
|
||||
Endif
|
||||
Endproc
|
||||
********************************************************************
|
||||
Enddefine
|
||||
*
|
||||
249
COMUN/programe/controllere/logincontroller.prg
Normal file
249
COMUN/programe/controllere/logincontroller.prg
Normal file
@@ -0,0 +1,249 @@
|
||||
#INCLUDE COMUN.H
|
||||
#INCLUDE MVC.H
|
||||
|
||||
Define Class LoginController As Custom
|
||||
oDBController = Null
|
||||
oControllerSetari = Null
|
||||
oUtilizator = Null
|
||||
*!* oFirma = Null
|
||||
oView = Null
|
||||
nTipLogin = Null
|
||||
cFormLogin = Null
|
||||
cProcLogin = Null
|
||||
nTipVerificare = 0
|
||||
*!* 0 = verificare utilizator si parola
|
||||
*!* 1 = verificare utilizator si parola cu id-ul dat ca parametru
|
||||
*!* 2 = verificare utilizator si parola cu nivelul dat ca parametru
|
||||
nIdUtil = Null
|
||||
nNivelAcces = Null
|
||||
cExplicatie = "Autentificare"
|
||||
cRestaurant = Null
|
||||
***********************************************************************
|
||||
Procedure Init
|
||||
Lparameters toDbController,toControllerSetari,tnTipVerificare,tnParametru,tcDenumire
|
||||
This.oDBController = toDbController
|
||||
This.oControllerSetari = toControllerSetari
|
||||
This.oUtilizator = Createobject("UtilizatorModel")
|
||||
*!* This.oFirma = CREATEOBJECT("FirmaModel")
|
||||
This.nTipLogin = 2
|
||||
This.cFormLogin = [Login] + Iif(This.nTipLogin=2,[CodBare],[])
|
||||
This.cProcLogin = [Login] + Iif(This.nTipLogin=2,[CodBare],[])
|
||||
This.nTipVerificare = IIF(TYPE('tnTipVerificare')<>'N',0,tnTipVerificare)
|
||||
Do Case
|
||||
Case This.nTipVerificare = 1
|
||||
This.nIdUtil = tnParametru
|
||||
This.nNivelAcces = Null
|
||||
This.cExplicatie = This.cExplicatie + [ ] + ALLTRIM(tcDenumire)
|
||||
Case This.nTipVerificare = 2
|
||||
This.nNivelAcces = tnParametru
|
||||
This.nIdUtil = Null
|
||||
This.cExplicatie = This.cExplicatie + [ nivel minim : ] + ALLTRIM(tcDenumire)
|
||||
Otherwise
|
||||
This.oDBController.setLoginController(This)
|
||||
This.nIdUtil = Null
|
||||
This.nNivelAcces = Null
|
||||
Endcase
|
||||
Endfunc && INIT
|
||||
***********************************************************************
|
||||
Procedure conecteaza
|
||||
Local lcParolaSchema,lcServer,lcSchema,lcParola
|
||||
lcServer = This.oControllerSetari.getServerSetari()
|
||||
This.oDBController.setServer(lcServer)
|
||||
This.oDBController.setSchemaParola(This.oControllerSetari.getSchemaSecurity(lcServer),This.oControllerSetari.getParolaSecurity(lcServer))
|
||||
lnIdFirmaSetari = This.oControllerSetari.getIdFirmaSetari()
|
||||
If !Empty(lnIdFirmaSetari)
|
||||
lcParolaSchema = This.oDBController.getParolaSchema(lnIdFirmaSetari)
|
||||
IF !EMPTY(lcParolaSchema)
|
||||
lnPoz = AT('$',lcParolaSchema)
|
||||
lcSchema = SUBSTR(lcParolaSchema,1,lnPoz-1)
|
||||
lcParola = SUBSTR(lcParolaSchema,lnPoz+1)
|
||||
This.oDBController.setSchemaParola(lcSchema,lcParola)
|
||||
If This.nTipVerificare = 0
|
||||
This.oControllerSetari.verificaVersiuni()
|
||||
Endif
|
||||
ENDIF
|
||||
Endif
|
||||
Endproc
|
||||
***********************************************************************
|
||||
PROCEDURE deconecteaza
|
||||
This.oDBController.deconecteaza()
|
||||
This.oUtilizator.reseteazaDate()
|
||||
ENDPROC
|
||||
***********************************************************************
|
||||
Function getIdUtil
|
||||
Return This.oUtilizator.getIdUtil()
|
||||
Endfunc
|
||||
***********************************************************************
|
||||
Function getUtilizator
|
||||
Return This.oUtilizator.getUtilizator()
|
||||
Endfunc
|
||||
***********************************************************************
|
||||
Function getSex
|
||||
Return This.oUtilizator.getSex()
|
||||
Endfunc
|
||||
***********************************************************************
|
||||
Procedure setInTura
|
||||
LPARAMETERS tlInTura
|
||||
This.oUtilizator.setInTura(tlInTura)
|
||||
Endproc
|
||||
***********************************************************************
|
||||
Function getInTura
|
||||
Return This.oUtilizator.getInTura()
|
||||
Endfunc
|
||||
***********************************************************************
|
||||
Function getNivelAcces
|
||||
Return This.oUtilizator.getNivelAcces()
|
||||
Endfunc
|
||||
***********************************************************************
|
||||
Function getIdRestaurant
|
||||
Return This.oControllerSetari.getIdRestaurant()
|
||||
Endfunc
|
||||
***********************************************************************
|
||||
FUNCTION setRestaurant
|
||||
LPARAMETERS tcRestaurant
|
||||
This.cRestaurant = tcRestaurant
|
||||
_Screen.Caption = gcExplicatieProgram + [ * ] + tcRestaurant
|
||||
ENDFUNC
|
||||
***********************************************************************
|
||||
FUNCTION getRestaurant
|
||||
RETURN This.cRestaurant
|
||||
ENDFUNC
|
||||
***********************************************************************
|
||||
Function getIdSucursala
|
||||
Return This.oControllerSetari.getIdSucursala()
|
||||
Endfunc
|
||||
*********************************************************************
|
||||
Function getIdMama
|
||||
Return This.oControllerSetari.getIdMama()
|
||||
Endfunc
|
||||
*********************************************************************
|
||||
Function getEMama
|
||||
Return This.oControllerSetari.getEMama()
|
||||
Endfunc
|
||||
*********************************************************************
|
||||
FUNCTION getFirma
|
||||
LOCAL loFirma
|
||||
loFirma = This.oControllerSetari.getoFirma()
|
||||
RETURN NVL(loFirma.firma,[ ])
|
||||
endfunc
|
||||
***********************************************************************
|
||||
Procedure lanseazaLogin
|
||||
If This.conecteaza()
|
||||
Do Form (This.cFormLogin) With This,This.cExplicatie Name This.oView
|
||||
Else
|
||||
amessagebox("Nu s-a putut stabili conexiunea cu serverul!",16,"Eroare")
|
||||
Endif
|
||||
Endproc && List
|
||||
***********************************************************************
|
||||
Procedure verificaUtilizator
|
||||
Parameters tcParola,tcUtilizator
|
||||
Local lcCod,lcUtilizator
|
||||
This.oDBController.setAfiseazaEroare(.F.)
|
||||
lcCod = This.oDBController.verifica_drepturi_utilizator(tcParola,;
|
||||
This.oControllerSetari.getIdFirmaSetari(),This.oControllerSetari.getNumeProgram(),;
|
||||
This.nTipVerificare,IIF(This.nTipVerificare=2,This.nNivelAcces,This.nIdUtil),tcUtilizator)
|
||||
|
||||
If !ISNULL(lcCod)
|
||||
This.oUtilizator.actualizeazaDate(tcParola,lcCod,tcUtilizator)
|
||||
IF this.nTipVerificare = 0
|
||||
This.oControllerSetari.citesteSetariSchema(This.oUtilizator.getIdUtil())
|
||||
This.setRestaurant(This.oDBController.initializeaza_restaurant(This.oControllerSetari.getIdRestaurant()))
|
||||
ENDIF
|
||||
Else
|
||||
This.oUtilizator.reseteazaDate()
|
||||
Endif
|
||||
|
||||
IF This.verificaSucces()
|
||||
This.oView.Release()
|
||||
Else
|
||||
If This.nTipLogin = 1
|
||||
*!* lcErrorMessage = "Combinatie utilizator/parola invalida!"
|
||||
This.oView.txtUtilizator.SetFocus()
|
||||
Else
|
||||
*!* lcErrorMessage = "Cod invalid!"
|
||||
This.oView.txtParola.Value = []
|
||||
This.oView.txtParola.SetFocus()
|
||||
Endif
|
||||
*!* This.oView.lblMessage.Caption = lcErrorMessage
|
||||
This.oView.lblMessage.Caption = This.oDBController.getEroare()
|
||||
Endif
|
||||
This.oDBController.setAfiseazaEroare(.T.)
|
||||
Endproc
|
||||
***********************************************************************
|
||||
FUNCTION verificaSucces
|
||||
LOCAL llReturn
|
||||
IF This.esteAutentificat()
|
||||
*!* AND ((This.nTipVerificare = 0) OR ;
|
||||
*!* (This.nTipVerificare = 1 AND This.oUtilizator.getIdUtil() = This.nIdUtil) OR ;
|
||||
*!* (This.nTipVerificare = 2 AND This.oUtilizator.getNivelAcces() >= This.nNivelAcces))
|
||||
llReturn = .T.
|
||||
ELSE
|
||||
llReturn = .F.
|
||||
ENDIF
|
||||
RETURN llReturn
|
||||
ENDFUNc
|
||||
***********************************************************************
|
||||
Function esteAutentificat
|
||||
Return This.oUtilizator.esteAutentificat()
|
||||
Endfunc
|
||||
***********************************************************************
|
||||
Procedure SetEventsHandlers
|
||||
Bindevent(This.oView.cmdLogin, "CLICK", This, This.cProcLogin )
|
||||
Bindevent(This.oView.cmdCancel, "CLICK", This, This.cProcLogin )
|
||||
Endproc && SetEventsHandler
|
||||
***********************************************************************
|
||||
Procedure Login
|
||||
Local lnRows, lcCommand, lcErrorMessage, lcUtilizator, lcParola, loUtilizator
|
||||
|
||||
Declare laEvents[3]
|
||||
lcErrorMessage = ""
|
||||
lnRows = Aevents(laEvents,0)
|
||||
|
||||
If lnRows = 3
|
||||
lcCommand = Upper(laEvents(1).Name)
|
||||
Else
|
||||
lcCommand = ""
|
||||
Endif
|
||||
If lcCommand = 'CMDLOGIN'
|
||||
lcUtilizator = Alltrim(This.oView.cboUtilizator.Value)
|
||||
lcParola = Alltrim(This.oView.txtParola.Value)
|
||||
|
||||
This.verificaUtilizator(lcParola,lcUtilizator)
|
||||
Else
|
||||
This.oView.Release()
|
||||
Endif
|
||||
|
||||
Endproc && Login
|
||||
***********************************************************************
|
||||
Procedure LoginCodBare
|
||||
Local lnRows, lcCommand, lcErrorMessage, lcUtilizator, lcParola, loUtilizator
|
||||
Declare laEvents[3]
|
||||
lcErrorMessage = ""
|
||||
lnRows = Aevents(laEvents,0)
|
||||
If lnRows = 3
|
||||
lcCommand = Upper(laEvents(1).Name)
|
||||
Else
|
||||
lcCommand = ""
|
||||
Endif
|
||||
|
||||
If Inlist(lcCommand, 'CMDLOGIN')
|
||||
lcCodBare = Alltrim(This.oView.txtParola.Value)
|
||||
*!* lcUtilizator = Left(lcCodBare,At("$", lcCodBare)-1)
|
||||
*!* lcParola = Substr(lcCodBare,At("$", lcCodBare)+1)
|
||||
lcParola = lcCodBare
|
||||
This.verificaUtilizator(lcParola)
|
||||
Else
|
||||
This.oView.Release()
|
||||
Endif
|
||||
|
||||
Endproc && LoginCodBare
|
||||
***********************************************************************
|
||||
PROCEDURE reinitializeazaDate
|
||||
This.oControllerSetari.citesteSetariSchema(This.oUtilizator.getIdUtil())
|
||||
ENDPROC
|
||||
***********************************************************************
|
||||
PROCEDURE release
|
||||
This.oUtilizator.Release()
|
||||
ENDPROC
|
||||
***********************************************************************
|
||||
Enddefine
|
||||
184
COMUN/programe/controllere/orasettingscontroller.prg
Normal file
184
COMUN/programe/controllere/orasettingscontroller.prg
Normal file
@@ -0,0 +1,184 @@
|
||||
Define Class oraSettingsController As Custom
|
||||
|
||||
oDBController = Null
|
||||
oDateCalendar = Null
|
||||
oDateFirma = Null
|
||||
nIdSucursala = Null
|
||||
nIdMama = Null
|
||||
lEMama = Null
|
||||
|
||||
Procedure Init
|
||||
Lparameters toDBController
|
||||
This.oDBController = toDBController
|
||||
Endproc
|
||||
******************************************************************
|
||||
Procedure initializeaza_firma
|
||||
Lparameters tnIdFirma,tnIdUtil
|
||||
This.initializeaza_date_firma(tnIdFirma)
|
||||
This.initializeaza_calendar()
|
||||
This.initializeaza_optiuni()
|
||||
This.initializeaza_utilizator(tnIdUtil)
|
||||
Endproc
|
||||
******************************************************************
|
||||
Procedure initializeaza_utilizator
|
||||
Lparameters tnIdUtil
|
||||
This.initializeaza_optiuni_utilizator(tnIdUtil)
|
||||
This.initializeaza_sesiune_server(tnIdUtil)
|
||||
Endproc
|
||||
******************************************************************
|
||||
Procedure initializeaza_date_firma
|
||||
Lparameters tnIdFirma
|
||||
Local loFirma,lcCursor
|
||||
This.oDateFirma = Null
|
||||
lcCursor = [crsdatefirma]
|
||||
If Used(lcCursor)
|
||||
Use In (lcCursor)
|
||||
Endif
|
||||
If This.oDBController.apeleaza_sql_hash(getHash([cColumns=>*??cTables=>syn_nom_firme??cWhere=>id_firma=] + Alltrim(Str(tnIdFirma))),lcCursor)
|
||||
Select (lcCursor)
|
||||
Scatter Name loFirma
|
||||
This.oDateFirma = loFirma
|
||||
This.nIdSucursala = Iif(Nvl(loFirma.id_mama,0) <> 0, loFirma.Id_Firma, Null) && DACA ESTE SUCURSALA - ID-UL SUCURSALA PE CARE IL SCRIU IN TABELE
|
||||
This.nIdMama = Iif(Nvl(loFirma.id_mama,0) <> 0, loFirma.id_mama, Null)
|
||||
This.lEMama = Nvl(loFirma.e_mama,0) <> 0
|
||||
Endif
|
||||
If Used(lcCursor)
|
||||
Use In (lcCursor)
|
||||
Endif
|
||||
Endproc
|
||||
******************************************************************
|
||||
Procedure initializeaza_calendar
|
||||
Local loCalendar,lcCursor
|
||||
This.oDateCalendar = Null
|
||||
lcCursor = [crscalendar]
|
||||
If Used(lcCursor)
|
||||
Use In (lcCursor)
|
||||
Endif
|
||||
If This.oDbController.apeleaza_sql_hash(getHash([cColumns=>*??cTables=>(select * from calendar order by id_calendar desc)??cWhere=>rownum = 1]),lcCursor)
|
||||
If Reccount(lcCursor) = 0
|
||||
amessagebox("Nu exista luni deschise in calendar!",48,"Atentie")
|
||||
Else
|
||||
Select (lcCursor)
|
||||
Scatter Name loCalendar
|
||||
This.oDateCalendar = loCalendar
|
||||
Endif
|
||||
Endif
|
||||
If Used(lcCursor)
|
||||
Use In (lcCursor)
|
||||
Endif
|
||||
Endproc
|
||||
******************************************************************
|
||||
PROCEDURE initializeaza_optiuni_utilizator
|
||||
LPARAMETERS tnIdUtil
|
||||
LOCAL lcCursor
|
||||
lcCursor = [crsOptiuniUtilizator]
|
||||
If Used(lcCursor)
|
||||
Use In (lcCursor)
|
||||
Endif
|
||||
This.oDbController.apeleaza_sql_hash(getHash([cColumns=>*??cTables=>optiuni_util??cWhere=>id_util=] +ALLTRIM(STR(tnIdUtil)) + [??cOrderBy=>varname]),lcCursor)
|
||||
ENDPROC
|
||||
******************************************************************
|
||||
Procedure initializeaza_optiuni
|
||||
Local lcNumeCursor
|
||||
lcNumeCursor = [v_optiuni]
|
||||
If This.citeste_optiuni(lcNumeCursor)
|
||||
Select(lcNumeCursor)
|
||||
Scan For !Empty(varname) And (Isnull(programe) Or gcNumeProgram$programe)
|
||||
lcvarname = Alltrim(&lcNumeCursor..varname)
|
||||
lcvartype = Upper(Alltrim(&lcNumeCursor..Vartype))
|
||||
Do Case
|
||||
Case lcvartype = "CHARACTER"
|
||||
Public gc&lcvarname.
|
||||
luvarvalue = Alltrim(&lcNumeCursor..varvalue)
|
||||
gc&lcvarname. = luvarvalue
|
||||
Case lcvartype = "CURRENCY"
|
||||
Public gy&lcvarname.
|
||||
luvarvalue = Ntom(Val(&lcNumeCursor..varvalue))
|
||||
gy&lcvarname. = luvarvalue
|
||||
Case lcvartype = "NUMERIC"
|
||||
Public gn&lcvarname.
|
||||
luvarvalue = Val(&lcNumeCursor..varvalue)
|
||||
gn&lcvarname. = luvarvalue
|
||||
Case lcvartype = "DATETIME"
|
||||
Public gt&lcvarname.
|
||||
luvarvalue = Ctot(&lcNumeCursor..varvalue)
|
||||
gt&lcvarname. = luvarvalue
|
||||
Case lcvartype = "DATE"
|
||||
Public gd&lcvarname.
|
||||
luvarvalue = Ctod(&lcNumeCursor..varvalue)
|
||||
gd&lcvarname. = luvarvalue
|
||||
Case lcvartype = "LOGICAL"
|
||||
Public gl&lcvarname.
|
||||
luvarvalue = Iif(Inlist(Upper(Left(&lcNumeCursor..varvalue, 1)), "T", "Y"), .T., .F.)
|
||||
gl&lcvarname. = luvarvalue
|
||||
Otherwise
|
||||
pcmsgbuff = "Tip de variabila globala invalid!"
|
||||
pcmsgbuff = pcmsgbuff + Chr(13) + Chr(13) + "Numele variabilei: " + lcvarname
|
||||
pcmsgbuff = pcmsgbuff + Chr(13) + "Tipul variabilei: " + lcvartype
|
||||
pcmsgbuff = pcmsgbuff + Chr(13) + Chr(13) + "Contactati suportul tehnic."
|
||||
=aMessagebox(pcmsgbuff, 48)
|
||||
pcmsgbuff = ""
|
||||
Endcase
|
||||
Endscan
|
||||
|
||||
Endif
|
||||
If Used(lcNumeCursor)
|
||||
Use In (lcNumeCursor)
|
||||
Endif
|
||||
Endproc
|
||||
******************************************************************
|
||||
PROCEDURE initializeaza_sesiune_server
|
||||
Lparameters tnIdUtil
|
||||
Local lcProceduri
|
||||
lcProceduri = [pack_sesiune.set_Id_Util(] + ALLTRIM(STR(tnIdUtil)) + [);] + ;
|
||||
[pack_sesiune.setluna(] + ALLTRIM(STR(This.oDateCalendar.luna)) + [);] + ;
|
||||
[pack_sesiune.setan(] + ALLTRIM(STR(This.oDateCalendar.anul)) + [);] + ;
|
||||
[pack_sesiune.setlunabal(] + ALLTRIM(STR(This.oDateCalendar.luna)) + [);] + ;
|
||||
[pack_sesiune.setanbal(] + ALLTRIM(STR(This.oDateCalendar.anul)) + [);] + ;
|
||||
[pack_contafin.set_data_ron('] + ALLTRIM(This.oDateFirma.schema) + [');] + ;
|
||||
[pack_sesiune.set_data_ron('] + ALLTRIM(This.oDateFirma.schema) + [');] + ;
|
||||
[pack_contafin.set_id_sucursala(] + Iif(Nvl(This.oDateFirma.id_mama,0) <> 0, ALLTRIM(STR(This.oDateFirma.Id_Firma)), [NULL]) + [);] + ;
|
||||
[pack_contafin.set_id_firma(] + ALLTRIM(STR(This.oDateFirma.id_firma)) + [)]
|
||||
This.oDBController.apeleaza_procedura(lcProceduri)
|
||||
ENDPROC
|
||||
******************************************************************
|
||||
Function scrie_optiuni
|
||||
Local lcProcedura
|
||||
lcProcedura = [scrie_optiuni(USER)]
|
||||
Return This.oDBController.apeleaza_procedura(lcProcedura)
|
||||
Endfunc
|
||||
******************************************************************
|
||||
FUNCTION verificaVersiuni
|
||||
LPARAMETERS tcNumeProgram,tcVersiuneProgram,tcVersiuneDBTxt
|
||||
LOCAL lcFunctie
|
||||
lcFunctie = [pack_migrare.VerificaVersiune(']+tcNumeProgram+[', ']+tcVersiuneProgram+[',']+tcVersiuneDBTxt+[')]
|
||||
Return This.oDBController.apeleaza_functie(lcFunctie,[C])
|
||||
ENDfunc
|
||||
******************************************************************
|
||||
Function citeste_optiuni
|
||||
Lparameters tcNumeCursor
|
||||
This.scrie_optiuni()
|
||||
Return This.oDBController.apeleaza_sql_hash(getHash([cColumns=>*??cTables=>optiuni??cOrderBy=>varname]),tcNumeCursor)
|
||||
Endfunc
|
||||
******************************************************************
|
||||
Function getoFirma
|
||||
Return This.oDateFirma
|
||||
Endfunc
|
||||
******************************************************************
|
||||
Function getoCalendar
|
||||
Return This.oDateCalendar
|
||||
Endfunc
|
||||
******************************************************************
|
||||
Function getIdSucursala
|
||||
Return This.nIdSucursala
|
||||
Endfunc
|
||||
******************************************************************
|
||||
Function getIdMama
|
||||
Return This.nIdMama
|
||||
Endfunc
|
||||
******************************************************************
|
||||
Function getEMama
|
||||
Return This.lEMama
|
||||
Endfunc
|
||||
******************************************************************
|
||||
Enddefine
|
||||
202
COMUN/programe/controllere/roabaseapplication.prg
Normal file
202
COMUN/programe/controllere/roabaseapplication.prg
Normal file
@@ -0,0 +1,202 @@
|
||||
Define Class ROABaseApplication As Custom
|
||||
cLastSetClassLib = Null
|
||||
cLastSetTalk = Null
|
||||
cLastSetPath = Null
|
||||
|
||||
cNumeProgram = [ROA]
|
||||
cCopyRight = [<5B> ROA Romfast SRL]
|
||||
cUserNameApp = Null
|
||||
cExplicatieProgram = Null
|
||||
|
||||
cROAPath = Null
|
||||
cAppPath = Null
|
||||
cSecurityPath = Null
|
||||
cGeneralIniFile = Null
|
||||
|
||||
oLog = Null
|
||||
oExecutor = Null
|
||||
oConn = Null
|
||||
oExport = Null
|
||||
oMyXmlHttp = Null
|
||||
|
||||
Procedure Init
|
||||
Lparameters tcNumeProgram
|
||||
This.cNumeProgram = Upper(Alltrim(tcNumeProgram))
|
||||
_Screen.Icon = tcNumeProgram + [.ico]
|
||||
_Screen.Visible=.F.
|
||||
This.definesteConstante()
|
||||
This.setMediu()
|
||||
This.setClase()
|
||||
This.setProceduri()
|
||||
This.declaraDLL()
|
||||
This.setVariabile()
|
||||
This.setAlteProceduri()
|
||||
This.initializeazaControllere()
|
||||
This.setExplicatieProgram()
|
||||
Endproc
|
||||
|
||||
PROCEDURE setVariabile
|
||||
This.cAppPath = Addbs(ShortPath(GetAppStartPath()))
|
||||
This.cROAPath = Addbs(Left(This.cAppPath,Rat("\",This.cAppPath,2)-1))
|
||||
This.cSecurityPath = This.cROAPath + 'Security\'
|
||||
This.cGeneralIniFile = This.cROAPath + "settings.ini"
|
||||
ENDPROC
|
||||
|
||||
PROCEDURE setAlteProceduri
|
||||
Set Path To Addbs(Substr(This.cAppPath,1,Rat([\],This.cAppPath,2)))+[COMUNROA\] Additive
|
||||
ENDPROC
|
||||
|
||||
PROCEDURE setExplicatieProgram
|
||||
Local laVersion
|
||||
Dimension laVersion(12)
|
||||
If Agetfileversion(laVersion, Sys(16,0)) > 0
|
||||
This.cExplicatieProgram = laVersion(10)
|
||||
IF TYPE('gcExplicatieProgram') = 'C'
|
||||
gcExplicatieProgram = This.cExplicatieProgram
|
||||
ENDIF
|
||||
Endif
|
||||
Release laVersion
|
||||
ENDPROC
|
||||
|
||||
Procedure definesteConstante
|
||||
Public LF,CR,CRLF,CTAB,CT_INSUCCES,CT_SUCCES
|
||||
Store Chr(10) To LF
|
||||
Store Chr(13) To CR
|
||||
Store Chr(13) + Chr(10) To CRLF
|
||||
Store Chr(9) To CTAB
|
||||
Store -1 To CT_INSUCCES
|
||||
Store 1 To CT_SUCCES
|
||||
Endproc
|
||||
|
||||
Procedure initializeazaControllere
|
||||
This.oLog = Createobject("logBaseController",This.cAppPath + "log_" + This.cNumeProgram + "_" + DTOS(DATE()) + ".txt")
|
||||
This.oExecutor = Createobject("oExecutor")
|
||||
This.oConn = Createobject("oConn")
|
||||
This.oExport = Createobject("oExportConfig")
|
||||
This.oMyXmlHttp = Createobject("MyXMLHTTP", getini(gcGeneralIniFile,'errors','host'))
|
||||
Endproc
|
||||
|
||||
Procedure declaraDLL
|
||||
Declare Integer Beep In kernel32;
|
||||
INTEGER dwFreq,;
|
||||
INTEGER dwDuration
|
||||
Declare Integer CoCreateGuid In OLE32.Dll String @lcBuffer
|
||||
Endproc
|
||||
|
||||
Procedure setClase
|
||||
Set Classlib To registry Additive
|
||||
Set Classlib To Messagebox Additive
|
||||
Endproc
|
||||
|
||||
Procedure setProceduri
|
||||
Set Procedure To wwxmlhttp.prg Additive
|
||||
Set Procedure To wwutils.prg Additive
|
||||
Set Procedure To wwApi.prg Additive
|
||||
SET PROCEDURE TO oproceduri_comune.prg additive
|
||||
SET PROCEDURE TO ini.prg additive
|
||||
Endproc
|
||||
|
||||
Procedure setMediu
|
||||
This.backupMediu()
|
||||
|
||||
Set Path To ;Date;Include;FERESTRE;GRAFICE;Help;CLASE;MENIURI;PROGRAME;RAPOARTE;PROGS;LIBS
|
||||
Push Menu _Msysmenu
|
||||
Set Century On
|
||||
Set Date Dmy
|
||||
Set Ansi On
|
||||
Set Exact On
|
||||
Set Talk Off
|
||||
Set Console Off
|
||||
Set Safety Off
|
||||
Close Databases All
|
||||
Set Deleted On
|
||||
Set Point To '.'
|
||||
Set Hours To 24
|
||||
Set NullDisplay To "*"
|
||||
Set Mark To '/'
|
||||
Set Exclusive Off
|
||||
Set Cpdialog Off
|
||||
Set Escape Off
|
||||
Set Notify Off
|
||||
Set Seconds Off
|
||||
Set Decimals To 4
|
||||
Endproc
|
||||
|
||||
Procedure backupMediu
|
||||
This.cLastSetClassLib=Set("CLASSLIB")
|
||||
This.cLastSetTalk=Set("TALK")
|
||||
This.cLastSetPath=Set("PATH")
|
||||
Endproc
|
||||
|
||||
Procedure ResetMediu
|
||||
If Cntbar("_msysmenu")<>7
|
||||
Pop Menu _Msysmenu
|
||||
Endif
|
||||
|
||||
On Error
|
||||
On Shutdown
|
||||
Set Classlib To
|
||||
Set Path To
|
||||
Close All
|
||||
Clear Events
|
||||
|
||||
If Inlist(Application.StartMode,4) && EXE
|
||||
Quit
|
||||
Endif
|
||||
|
||||
This.restoreMediu()
|
||||
Endproc
|
||||
|
||||
Procedure restoreMediu
|
||||
If Empty(Nvl(This.cLastSetPath,[]))
|
||||
Set Path To
|
||||
Else
|
||||
Set Path To &(This.cLastSetPath)
|
||||
Endif
|
||||
If This.cLastSetTalk=="ON"
|
||||
Set Talk On
|
||||
Else
|
||||
Set Talk Off
|
||||
Endif
|
||||
Endproc
|
||||
|
||||
Function Shutdown
|
||||
If Type("goApp")=="O" And Not Isnull(goApp)
|
||||
If Pemstatus(goApp,"OnShutdown",5)
|
||||
Return goApp.OnShutDown()
|
||||
Endif
|
||||
Endif
|
||||
This.ResetMediu()
|
||||
Endfunc
|
||||
|
||||
Function ErrorHandler(nError,cMethod,nLine)
|
||||
Local lcErrorMsg,lcCodeLineMsg,lcUserName
|
||||
Wait Clear
|
||||
lcErrorMsg=Message()+Chr(13)+Chr(13)
|
||||
lcErrorMsg=lcErrorMsg+"Method: "+cMethod
|
||||
lcCodeLineMsg=Message(1)
|
||||
If Between(nLine,1,10000) And Not lcCodeLineMsg="..."
|
||||
lcErrorMsg=lcErrorMsg+Chr(13)+"Line: "+Alltrim(Str(nLine))
|
||||
If Not Empty(lcCodeLineMsg)
|
||||
lcErrorMsg=lcErrorMsg+Chr(13)+Chr(13)+lcCodeLineMsg
|
||||
Endif
|
||||
Endif
|
||||
lcErrorMsg = Sys(0) + ":" + Iif(Type('GCS')='C'," " + gcS,"") + Chr(13) +Chr(10) + lcErrorMsg
|
||||
lcUserName = This.cUserNameApp
|
||||
lcProgram = Juststem(Sys(16,0))
|
||||
This.oMyXMLHTTP.postError(lcErrorMsg, lcUserName, lcProgram)
|
||||
|
||||
If aMessagebox(lcErrorMsg,17,_Screen.Caption)#1
|
||||
On Error
|
||||
Return .F.
|
||||
Endif
|
||||
Endfunc
|
||||
|
||||
Function verificaAplicatie
|
||||
If !Like(This.cNumeProgram + '*', Upper(Alltrim(Juststem(Sys(16,0)))))
|
||||
aMessagebox("Nu puteti porni acest program!",0+16,"Atentie")
|
||||
Return .F.
|
||||
Endif
|
||||
Endfunc
|
||||
|
||||
Enddefine
|
||||
376
COMUN/programe/controllere/settingsbcontroller.prg
Normal file
376
COMUN/programe/controllere/settingsbcontroller.prg
Normal file
@@ -0,0 +1,376 @@
|
||||
#include security.h
|
||||
*!* #Define WINDOWHIDE 0x80
|
||||
*!* #Define WINDOWSHOW 0x40
|
||||
*!* #define TBAR_AUTOHIDE 1
|
||||
*!* #define TBAR_KEEPONTOP 2
|
||||
*!* #define ABM_GETSTATE 0x00000004
|
||||
*!* #define ABM_SETSTATE 0x0000000A
|
||||
|
||||
Define Class settingsBaseController As Custom
|
||||
cNumeProgram = ''
|
||||
cAppName = ''
|
||||
cAppPath = ''
|
||||
cIniFile = ''
|
||||
cVersiuneProgram = ''
|
||||
cVersiuneDBTxt = ''
|
||||
cROAClientPath = ''
|
||||
cROAClientIniFile = ''
|
||||
cIniText = ''
|
||||
lLog = .F.
|
||||
cHostErrors = ''
|
||||
cCursorHost = [crshost]
|
||||
nTipCriptare = 0
|
||||
oOraSettingsController = Null
|
||||
|
||||
*!* 0 = fara
|
||||
*!* 1 = vechi
|
||||
*!* 2 = nou
|
||||
|
||||
Procedure Init
|
||||
Lparameters tcNumeProgram
|
||||
Declare Long FindWindow In "user32" String lpClassName, String lpWindowName
|
||||
Declare Long SetWindowPos In "user32" Long HWnd, Long hWndInsertAfter, Long x, Long Y, Long cx, Long cy, Long wFlags
|
||||
Declare Long SHAppBarMessage In "shell32.dll" Long dwMessage,String @pData
|
||||
|
||||
This.cNumeProgram = tcNumeProgram
|
||||
This.cAppPath = Addbs(ShortPath(GetAppStartPath()))
|
||||
This.cAppName = Allt(Uppe(Juststem(Sys(16,0))))
|
||||
This.cIniFile = This.cAppPath + 'settings.ini'
|
||||
This.cROAClientPath = Addbs(Left(This.cAppPath,Rat("\",This.cAppPath,2)-1))
|
||||
This.cROAClientIniFile = This.cROAClientPath + 'settings.ini'
|
||||
|
||||
If !File(This.cIniFile)
|
||||
This.InitSettings()
|
||||
Endif
|
||||
|
||||
This.ReadSettings()
|
||||
This.citesteVersiuneProgram()
|
||||
This.citesteVersiuneDBTxt()
|
||||
Endproc
|
||||
*********************************************************************
|
||||
Procedure setDBController
|
||||
Lparameters toDBController
|
||||
This.oOraSettingsController = Createobject('orasettingscontroller',toDBController)
|
||||
Endproc
|
||||
*********************************************************************
|
||||
Procedure verificaVersiuni
|
||||
Local lcMesaj,lcMesajVerificare
|
||||
lcMesajVerificare = This.oOraSettingsController.verificaVersiuni(This.cNumeProgram,This.cVersiuneProgram,This.cVersiuneDBTxt)
|
||||
If !Empty(Nvl(lcMesajVerificare,[]))
|
||||
Do Case
|
||||
Case This.cNumeProgram$Upper(lcMesajVerificare)
|
||||
lcMesaj = "Trebuie actualizat " + This.cNumeProgram + " la versiunea " + Getwordnum(lcMesajVerificare, 2, ":") + Chr(13) + Chr(10) + ;
|
||||
"Versiunea actuala este " + Getwordnum(lcMesajVerificare, 3, ":")
|
||||
Case "DB"$Upper(lcMesajVerificare)
|
||||
lcMesaj = "Trebuie actualizata baza de date la versiunea " + Getwordnum(lcMesajVerificare, 2, ":") + Chr(13) + Chr(10) + ;
|
||||
"Versiunea actuala este " + Getwordnum(lcMesajVerificare, 3, ":")
|
||||
Endcase
|
||||
AMESSAGEBOX(lcMesaj,0+48, "Actualizare")
|
||||
Endif
|
||||
Release lcMesaj,lcMesajVerificare
|
||||
Endproc
|
||||
*********************************************************************
|
||||
Procedure citesteVersiuneProgram
|
||||
Local lcFisierExe
|
||||
lcFisierExe = This.cAppPath + This.cAppName + [.exe]
|
||||
If Agetfileversion(aVersion, lcFisierExe) > 0
|
||||
This.cVersiuneProgram = Alltrim(aVersion(4))
|
||||
Else
|
||||
This.cVersiuneProgram = []
|
||||
Endif
|
||||
If Type('aVersion') <> 'U'
|
||||
Release aVersion
|
||||
Endif
|
||||
Endproc
|
||||
*********************************************************************
|
||||
Procedure citesteVersiuneDBTxt
|
||||
Local lcFisierVersiuneDB
|
||||
lcFisierVersiuneDB = This.cAppPath + 'versiune_db.txt'
|
||||
If File(lcFisierVersiuneDB)
|
||||
This.cVersiuneDBTxt = Alltrim(Filetostr(lcFisierVersiuneDB))
|
||||
Else
|
||||
This.cVersiuneDBTxt = []
|
||||
Endif
|
||||
Release lcFileVersiuneDB
|
||||
Endproc
|
||||
*********************************************************************
|
||||
Procedure InitSettings
|
||||
If Empty(This.cIniText)
|
||||
Return
|
||||
Endif
|
||||
Strtofile(This.cIniText, This.cIniFile)
|
||||
Endproc && InitSettings
|
||||
*!* *********************************************************************
|
||||
*!* Function HideTaskBar
|
||||
*!* Local lnHandle,lcInfoBuffer
|
||||
*!* lnHandle = FindWindow("Shell_TrayWnd", "")
|
||||
*!* *!* SetWindowPos(lnHandle, 0, 0, 0, 0, 0, WINDOWHIDE)
|
||||
*!* DEBUG
|
||||
*!* SUSPEND
|
||||
*!* lcInfoBuffer = This.num2dword(0) + ;
|
||||
*!* This.num2dword(lnHandle) + ;
|
||||
*!* This.num2dword(0) + ;
|
||||
*!* This.num2dword(0) + ;
|
||||
*!* This.num2dword(0) + ;
|
||||
*!* This.num2dword(0)
|
||||
*!* SHAppBarMessage(ABM_GETSTATE,@lcInfoBuffer)
|
||||
*!* lcInfoBuffer = This.num2dword(50000) + ;
|
||||
*!* This.num2dword(lnHandle) + ;
|
||||
*!* This.num2dword(0) + ;
|
||||
*!* This.num2dword(0) + ;
|
||||
*!* This.num2dword(0) + ;
|
||||
*!* This.num2dword(BITNOT(TBAR_KEEPONTOP))
|
||||
*!* SHAppBarMessage(ABM_SETSTATE,@lcInfoBuffer)
|
||||
*!* Endfunc
|
||||
*!* *********************************************************************
|
||||
*!* Function ShowTaskBar
|
||||
*!* Local lnHandle
|
||||
*!* lnHandle = FindWindow("Shell_TrayWnd", "")
|
||||
*!* *!* SetWindowPos(lnHandle, 0, 0, 0, 0, 0, WINDOWSHOW)
|
||||
*!* Endfunc
|
||||
*!* *********************************************************************
|
||||
*!* FUNCTION num2dword
|
||||
*!* LPARAMETERS tnValue
|
||||
*!* #DEFINE m0 256
|
||||
*!* #DEFINE m1 65536
|
||||
*!* #DEFINE m2 16777216
|
||||
*!* LOCAL b0, b1, b2, b3
|
||||
*!* b3 = Int(tnValue/m2)
|
||||
*!* b2 = Int((tnValue- b3*m2)/m1)
|
||||
*!* b1 = Int((tnValue- b3*m2 - b2*m1)/m0)
|
||||
*!* b0 = Mod(tnValue, m0)
|
||||
*!* RETURN Chr(b0)+Chr(b1)+Chr(b2)+Chr(b3)
|
||||
*!* endfunc
|
||||
*!* *********************************************************************
|
||||
Procedure ReadSettings
|
||||
This.cHostErrors = This.GetVariable([errors],[host])
|
||||
If Upper(Alltrim(This.GetVariable([errors],[log]))) = [TRUE]
|
||||
This.lLog = .T.
|
||||
Else
|
||||
This.lLog = .F.
|
||||
Endif
|
||||
|
||||
*!* This.citesteSecurity()
|
||||
Endproc
|
||||
*********************************************************************
|
||||
Function getHostErrors
|
||||
Return This.cHostErrors
|
||||
Endfunc
|
||||
*********************************************************************
|
||||
Function getlLog
|
||||
Return This.lLog
|
||||
Endfunc
|
||||
*********************************************************************
|
||||
Function getLogPath
|
||||
Return Iif(This.lLog,This.cAppPath + [log_]+ This.cNumeProgram + [_] + Dtos(Date()) + [.txt],[])
|
||||
Endfunc
|
||||
*********************************************************************
|
||||
Function getUpdateServer
|
||||
Return This.GetVariable([update],[server])
|
||||
Endfunc
|
||||
*********************************************************************
|
||||
Function getNumeProgram
|
||||
Return This.cNumeProgram
|
||||
Endfunc
|
||||
*********************************************************************
|
||||
Function getSchemaSecurity
|
||||
Lparameters tcNumeServer
|
||||
Local lcAliasVechi,lcSchema
|
||||
lcSchema = []
|
||||
lcAliasVechi = Alias()
|
||||
Select (This.cCursorHost)
|
||||
Locate For Upper(Alltrim(Host)) = Upper(Alltrim(tcNumeServer))
|
||||
If Found()
|
||||
lcSchema = Upper(Alltrim(schema))
|
||||
Endif
|
||||
If Used(lcAliasVechi)
|
||||
Select (lcAliasVechi)
|
||||
Endif
|
||||
Return lcSchema
|
||||
Endfunc
|
||||
*********************************************************************
|
||||
Function getParolaSecurity
|
||||
Lparameters tcNumeServer
|
||||
Local lcAliasVechi,lcParola
|
||||
lcParola = []
|
||||
lcAliasVechi = Alias()
|
||||
Select (This.cCursorHost)
|
||||
Locate For Upper(Alltrim(Host)) = Upper(Alltrim(tcNumeServer))
|
||||
If Found()
|
||||
lcParola = Alltrim(pwd)
|
||||
lcParola = Iif(Alltrim(isEncrypted) = [1],EncryptDecrypt(lcParola,ENCRYPTKEY,"decrypt",Iif(This.nTipCriptare=2,"blowfish","old")),lcParola)
|
||||
Endif
|
||||
If Used(lcAliasVechi)
|
||||
Select (lcAliasVechi)
|
||||
Endif
|
||||
Return lcParola
|
||||
Endfunc
|
||||
*********************************************************************
|
||||
Function citesteSecurity
|
||||
Lparameters tcFileExt
|
||||
Local lcSecurityFile,lcSecurityPath,lnValid,lcFileExt,lcSecurityText,llSucces
|
||||
llSucces = .T.
|
||||
lcFileExt = Iif(Empty(tcFileExt),[XML],tcFileExt)
|
||||
|
||||
lcSecurityPath = This.cROAClientPath + [SECURITY\]
|
||||
lcSecurityFile = lcSecurityPath + [roa_security.] + lcFileExt
|
||||
lnValid = 0
|
||||
|
||||
If !File(lcSecurityFile)
|
||||
AMESSAGEBOX('Nu exista fisierul ' + lcSecurityFile + ' !',0+16,'Atentie')
|
||||
llSucces = .F.
|
||||
Else
|
||||
If Used(This.cCursorHost)
|
||||
Use In (This.cCursorHost)
|
||||
Endif
|
||||
|
||||
Create Cursor (This.cCursorHost)(Host c(100), schema c(100), pwd v(100), isEncrypted c(1))
|
||||
lcSecurityText = Filetostr(lcSecurityFile)
|
||||
If lcFileExt = [XML]
|
||||
Try
|
||||
Xmltocursor(lcSecurityFile, "cXML", 512)
|
||||
Select cXml
|
||||
Go Top
|
||||
Scatter Name lofirstrecord
|
||||
|
||||
If lofirstrecord.Host="ENCRYPTION"
|
||||
This.nTipCriptare = 2
|
||||
Delete
|
||||
Else
|
||||
This.nTipCriptare = 1
|
||||
Endif
|
||||
|
||||
Insert Into (This.cCursorHost) (Host, schema, pwd, isEncrypted) ;
|
||||
SELECT Host, schema, pwd, "1" As isEncrypted ;
|
||||
from cXml
|
||||
lnValid = Reccount('cXML')
|
||||
|
||||
Use In cXml
|
||||
Catch To loex
|
||||
*!* Local loEx As Exception
|
||||
AMESSAGEBOX('Mesaj: ' + loex.Message + CRLF + ;
|
||||
'Eroare nr: ' + Alltrim(Transform(loex.ErrorNo)) + CRLF + ;
|
||||
'Cod: ' + loex.LineContents + CRLF + 'Procedura: ' + loex.Procedure + CRLF + ;
|
||||
'Linia nr: ' + Alltrim(Transform(loex.Lineno)),0+16,'Eroare')
|
||||
llSucces = .F.
|
||||
Finally
|
||||
Use In (Select('cXML'))
|
||||
Endtry
|
||||
|
||||
Else
|
||||
Local laHost
|
||||
Dimension laHost[1]
|
||||
|
||||
lnLen = Alines(laHost, lcSecurityText)
|
||||
|
||||
If lnLen > 0
|
||||
For i = 1 To lnLen
|
||||
lcLinie = laHost[i]
|
||||
|
||||
lcHost = Getwordnum(lcLinie, 1, ';')
|
||||
lcSchema = Getwordnum(lcLinie, 2, ';')
|
||||
lcPassword = Getwordnum(lcLinie, 3, ';')
|
||||
lcMode = "0" && necriptat - security.txt
|
||||
|
||||
If Empty(lcHost) Or Empty(lcSchema) Or Empty(lcPassword)
|
||||
Loop
|
||||
Endif
|
||||
|
||||
lnValid = lnValid + 1
|
||||
Insert Into (This.cCursorHost) (Host, schema, pwd, isEncrypted) Values (lcHost, lcSchema, lcPassword, Iif(Empty(lcMode), '0', lcMode))
|
||||
Endfor
|
||||
This.nTipCriptare = 0
|
||||
Endif
|
||||
Endif
|
||||
Endif
|
||||
|
||||
Return llSucces
|
||||
Endfunc
|
||||
*********************************************************************
|
||||
Procedure citesteSetariSchema
|
||||
Lparameters tnIdUtil
|
||||
This.oOraSettingsController.initializeaza_firma(This.nId,tnIdUtil)
|
||||
Endproc
|
||||
******************************************************************
|
||||
Function getoFirma
|
||||
Return This.oOraSettingsController.getoFirma()
|
||||
Endfunc
|
||||
******************************************************************
|
||||
Function getAn
|
||||
Return This.oOraSettingsController.getoCalendar().an
|
||||
Endfunc
|
||||
******************************************************************
|
||||
Function getLuna
|
||||
Return This.oOraSettingsController.getoCalendar().luna
|
||||
Endfunc
|
||||
*********************************************************************
|
||||
Function getIdSucursala
|
||||
Return This.oOraSettingsController.getIdSucursala()
|
||||
Endfunc
|
||||
*********************************************************************
|
||||
Function getIdMama
|
||||
Return This.oOraSettingsController.getIdMama()
|
||||
Endfunc
|
||||
*********************************************************************
|
||||
Function getEMama
|
||||
Return This.oOraSettingsController.getEMama()
|
||||
Endfunc
|
||||
*********************************************************************
|
||||
Procedure SetVariable
|
||||
Lparameters tcSection, tcVarname, tuValue
|
||||
Local lcSection, lcVarname, lcValue
|
||||
|
||||
lcSection = Lower(Alltrim(tcSection))
|
||||
lcVarname = Lower(Alltrim(tcVarname))
|
||||
lcValue = Transform(tuValue)
|
||||
SetIni(This.cIniFile, lcSection, lcVarname, lcValue)
|
||||
|
||||
Endproc && SetVariable
|
||||
*********************************************************************
|
||||
Procedure GetVariable
|
||||
Lparameters tcSection, tcVarname
|
||||
|
||||
Local lcSection, lcVarname, lcValue
|
||||
|
||||
lcSection = Lower(Alltrim(tcSection))
|
||||
lcVarname = Lower(Alltrim(tcVarname))
|
||||
lcValue = GetIni(This.cIniFile, lcSection, lcVarname)
|
||||
lcValue = Nvl(lcValue, '')
|
||||
If Empty(lcValue) And File(This.cROAClientIniFile)
|
||||
lcValue = GetIni(This.cROAClientIniFile, lcSection, lcVarname)
|
||||
lcValue = Nvl(lcValue, '')
|
||||
Endif
|
||||
|
||||
Return lcValue
|
||||
Endproc && GetVariable
|
||||
*********************************************************************
|
||||
Function getIniFilePath
|
||||
Return This.cIniFile
|
||||
Endfunc
|
||||
*********************************************************************
|
||||
*!* FUNCTION GetValue
|
||||
*!* LPARAMETERS tcSetting
|
||||
*!*
|
||||
*!* LOCAL lcSetting, luValue
|
||||
*!* lcSetting = "THIS." + tcSetting
|
||||
*!* luValue = ''
|
||||
*!* IF TYPE(lcSetting) # 'U'
|
||||
*!* luValue = &lcSetting
|
||||
*!* ENDIF
|
||||
*!* RETURN luValue
|
||||
*!*
|
||||
*!* ENDFUNC
|
||||
*!* *********************************************************************
|
||||
*!* PROCEDURE SetValue
|
||||
*!* LPARAMETERS tcSetting, tuValue
|
||||
*!*
|
||||
*!* LOCAL lcSetting, luValue
|
||||
*!* lcSetting = "THIS." + tcSetting
|
||||
*!* luValue = tuValue
|
||||
*!* IF TYPE(lcSetting) # 'U'
|
||||
*!* &lcSetting = luValue
|
||||
*!* ENDIF
|
||||
*!*
|
||||
*!* ENDPROC
|
||||
*!* *********************************************************************
|
||||
Enddefine && settingsBaseController
|
||||
303
COMUN/programe/controllerecr.prg
Normal file
303
COMUN/programe/controllerecr.prg
Normal file
@@ -0,0 +1,303 @@
|
||||
|
||||
*!* marius.mutu
|
||||
*!* 12.07.2016
|
||||
*!* initializeaza_cai: citire cale bon din settings.ini [ecr]calebon, caleroaprint
|
||||
|
||||
*!* 07.02.2024
|
||||
*!* bon2ecr : tratare discount, pret negativ/cantitate negativa = reducere valorica la casa de marcat
|
||||
|
||||
*#INCLUDE COMUN.H
|
||||
#IFNDEF COMUN_H
|
||||
#DEFINE COMUN_H
|
||||
|
||||
#DEFINE LF CHR(10)
|
||||
#DEFINE CR CHR(10)
|
||||
#DEFINE CRLF CHR(13) + CHR(10)
|
||||
#DEFINE CTAB CHR(9)
|
||||
|
||||
#DEFINE CT_INSUCCES -1
|
||||
#DEFINE CT_SUCCES 1
|
||||
#ENDIF
|
||||
|
||||
* #INCLUDE MVC.H
|
||||
#IFNDEF ROARETAIL_H
|
||||
#DEFINE ROARETAIL_H
|
||||
|
||||
#DEFINE RR_TIPCURSOR 1
|
||||
#DEFINE RR_TIPARRAY 2
|
||||
#DEFINE RR_TIPCOLLECTION 3
|
||||
#ENDIF
|
||||
|
||||
Define Class oControllerEcr As Custom
|
||||
cNrDispozitiv = []
|
||||
nNumarBon = 0
|
||||
nNumarTichete1 = 0
|
||||
nPretTichet1 = 0
|
||||
nNumarTichete2 = 0
|
||||
nPretTichet2 = 0
|
||||
nValoareTichete = 0
|
||||
nValoareCard = 0
|
||||
nValoareReducere= 0
|
||||
nProcentReducere= 0
|
||||
nValoareNumerar = 0
|
||||
nValoareTotal = 0
|
||||
cCursor = Null
|
||||
cNumeFirma = Null
|
||||
cFirma = Null
|
||||
cUtilizator = Null
|
||||
cNumeProgram = Null
|
||||
cDescriere = Null
|
||||
cCaleProgramIni = [C:\ROAPRINT\ROAPRINT.EXE]
|
||||
cCaleFisierIni = [C:\ROA.BON]
|
||||
cCaleProgram = Null
|
||||
cCaleFisier = Null
|
||||
tDataOra = {}
|
||||
|
||||
cSchemaTip = [0;TIP N(2);DENUMIRE C(50);CANTITATE N(10,4);PRET N(10,4);UM C(10);COTATVA N(5,2);DEPARTAMENT N(2);]
|
||||
**********************************************************************************************************************************
|
||||
Procedure Init
|
||||
This.cNumeProgram = gcNumeProgram
|
||||
Endproc
|
||||
**********************************************************************************************************************************
|
||||
Procedure Reset
|
||||
With This
|
||||
.cNrDispozitiv = []
|
||||
.nNumarBon = 0
|
||||
.nNumarTichete1 = 0
|
||||
.nPretTichet1 = 0
|
||||
.nNumarTichete2 = 0
|
||||
.nPretTichet2 = 0
|
||||
.nValoareTichete = 0
|
||||
.nValoareCard = 0
|
||||
.nValoareReducere = 0
|
||||
.nProcentReducere = 0
|
||||
.nValoareNumerar = 0
|
||||
.nValoareTotal = 0
|
||||
.cCursor = Null
|
||||
.cNumeFirma = Null
|
||||
.tDataOra = {}
|
||||
.cCaleProgram = .cCaleProgramIni
|
||||
.cCaleFisier = .cCaleFisierIni
|
||||
.cFirma = Null
|
||||
.cUtilizator = Null
|
||||
.cDescriere = Null
|
||||
Endwith
|
||||
Endproc
|
||||
**********************************************************************************************************************************
|
||||
Procedure initializeaza_util_firma
|
||||
Lparameters tcUtilizator,tcNumeFirma,tcFirma,tcDescriere
|
||||
This.cUtilizator = tcUtilizator
|
||||
This.cNumeFirma = tcNumeFirma
|
||||
This.cFirma = tcFirma
|
||||
This.cDescriere = tcDescriere
|
||||
Endproc
|
||||
**********************************************************************************************************************************
|
||||
Procedure initializeaza_date
|
||||
Lparameters toHash
|
||||
Local ltDataOra,lnNumarTichete1,lnNumarTichete2
|
||||
With This
|
||||
lnNumarTichete1 = toHash.getValue("nNumarTichete1")
|
||||
lnNumarTichete2 = toHash.getValue("nNumarTichete2")
|
||||
ltDataOra = toHash.getValue("tDataOra")
|
||||
|
||||
.cNrDispozitiv = toHash.getValue("cTip")
|
||||
.cCursor = toHash.getValue("cCursor")
|
||||
.nNumarBon = toHash.getValue("nNumarBon")
|
||||
.nValoareNumerar = toHash.getValue("nValoareNumerar")
|
||||
.nValoareCard = toHash.getValue("nValoareCard")
|
||||
.nProcentReducere = toHash.getValue("nProcentReducere")
|
||||
.nValoareReducere = toHash.getValue("nValoareReducere")
|
||||
.nValoareTotal = toHash.getValue("nValoareTotal")
|
||||
IF EMPTY(NVL(.cNumeFirma,[]))
|
||||
.cNumeFirma = gcS
|
||||
ENDIF
|
||||
.tDataOra = Iif(Empty(Nvl(ltDataOra,{})),Datetime(),ltDataOra)
|
||||
IF EMPTY(NVL(.cUtilizator,[]))
|
||||
.cUtilizator = gcUsernameApp
|
||||
ENDIF
|
||||
IF EMPTY(NVL(.cFirma,[]))
|
||||
.cFirma = gcFirma
|
||||
ENDIF
|
||||
If !Empty(Nvl(lnNumarTichete1,0))
|
||||
.nNumarTichete1 = lnNumarTichete1
|
||||
.nPretTichet1 = toHash.getValue("nPretTichet1")
|
||||
Endif
|
||||
If !Empty(Nvl(lnNumarTichete2,0))
|
||||
.nNumarTichete2 = lnNumarTichete2
|
||||
.nPretTichet2 = toHash.getValue("nPretTichet2")
|
||||
Endif
|
||||
If !Empty(Nvl(lnNumarTichete1,0)) Or !Empty(Nvl(lnNumarTichete2,0))
|
||||
.nValoareTichete = toHash.getValue("nValoareTichete")
|
||||
Endif
|
||||
|
||||
Endwith
|
||||
Endproc
|
||||
**********************************************************************************************************************************
|
||||
Procedure initializeaza_cai
|
||||
Local lcBonFile,lcRoaPrint, loEx
|
||||
Store "" To lcBonFile,lcRoaPrint
|
||||
DO case
|
||||
CASE Type('goApp.oSettings') <> 'U'
|
||||
lcBonFile = goApp.oSettings.GetValue("calebon")
|
||||
lcRoaPrint = goApp.oSettings.GetValue("caleroaprint")
|
||||
CASE TYPE('gcGeneralIniFile') = 'C' AND FILE(m.gcGeneralIniFile)
|
||||
TRY
|
||||
lcBonFile = getini(m.gcGeneralIniFile,"ecr","calebon")
|
||||
lcRoaPrint = getini(m.gcGeneralIniFile,"ecr","caleroaprint")
|
||||
|
||||
IF EMPTY(m.lcRoaPrint)
|
||||
lcRoaPrint = Addbs(Left(gcAppPath,Rat("\",gcAppPath,2)-1)) + [ROAPRINT\ROAPRINT.EXE]
|
||||
ENDIF
|
||||
IF EMPTY(m.lcBonFile) AND DIRECTORY('C:\temp')
|
||||
lcBonFile = [c:\temp\roa.bon]
|
||||
ENDIF
|
||||
CATCH TO loEx
|
||||
lcRoaPrint = Addbs(Left(gcAppPath,Rat("\",gcAppPath,2)-1)) + [ROAPRINT\ROAPRINT.EXE]
|
||||
ENDTRY
|
||||
OTHERWISE
|
||||
lcRoaPrint = Addbs(Left(gcAppPath,Rat("\",gcAppPath,2)-1)) + [ROAPRINT\ROAPRINT.EXE]
|
||||
ENDCASE
|
||||
|
||||
This.cCaleFisier = Iif(Empty(lcBonFile),This.cCaleFisierIni,lcBonFile)
|
||||
This.cCaleProgram = Iif(Empty(lcRoaPrint),This.cCaleProgramIni,lcRoaPrint)
|
||||
Endproc
|
||||
**********************************************************************************************************************************
|
||||
Procedure imprima
|
||||
Lparameters toHash
|
||||
Local lcCursor
|
||||
lcCursor = toHash.GetValue("cCursor")
|
||||
If !Empty(Nvl(lcCursor,[])) And Used(lcCursor)
|
||||
With This
|
||||
.initializeaza_date(toHash)
|
||||
.initializeaza_cai()
|
||||
.bon2ecr()
|
||||
.Reset()
|
||||
Endwith
|
||||
Endif
|
||||
Endproc
|
||||
**********************************************************************************************************************************
|
||||
Procedure bon2ecr
|
||||
Local lcRun, lcCurentDir
|
||||
Local lcSelect, lnSucces
|
||||
Local loEx As Exception
|
||||
Local lcBon, lcDirectoryCaleFisier
|
||||
lcBon = ""
|
||||
lnSucces = CT_INSUCCES
|
||||
|
||||
lcSelect = Select()
|
||||
*!* ROAX FIRMATEST 1;2;3; MARIUS A 12:00:00 AM 7/7/2006
|
||||
*!* 0;TIP N(2);DENUMIRE C(50);CANTITATE N(10,4);PRET N(10,4);UM C(10);COTATVA N(5,2);DEPARTAMENT N(2);
|
||||
|
||||
lcBon = This.cNumeProgram + CTAB + Allt(This.cNumeFirma) + CTAB + Allt(this.cNrDispozitiv) + CTAB + Allt(This.cUtilizator) + CTAB + Ttoc(This.tDataOra) + ;
|
||||
CTAB + allt(NVL(This.cFirma,[])) + CTAB + allt(NVL(This.cDescriere,[])) + CTAB + allt(str(NVL(This.nNumarBon,0))) + CRLF
|
||||
lcBon = lcBon + This.cSchemaTip + CRLF
|
||||
*!* modificare 15.07.2010 : am adaugat coloanele PROCENT si DISCOUNT
|
||||
*!* (lcCursor) trebuie sa aiba coloanele : DENUMIRE C(100), UM C(10), CANT N(10,4), PRET N(18,4), DEPARTAMENT N(2), PROC_TVAV N(5,2), PROCENT N(5,2), DISCOUNT N(2)
|
||||
*!* modificare 15.07.2010
|
||||
*!* Select (This.cCursor)
|
||||
*!* Scan
|
||||
*!* *!* 1;ARDEI GRAS CU LIPTAUER 120 GR;1;0.1;PORTIE;1.19;1;
|
||||
*!*
|
||||
*!* lcBon = lcBon + [1;] + Alltrim(DENUMIRE) + [;] + Alltrim(Transform(CANT)) + [;] + Alltrim(Transform(Pret)) + [;] + Alltrim(NVL(UM,[])) + [;] + Alltrim(Transform(PROC_TVAV)) + [;] + Alltrim(Transform(Nvl(DEPARTAMENT,1))) + [;] + CRLF
|
||||
*!* *!* modificare 0.9.27 : NVL(um,[])
|
||||
*!* Endscan
|
||||
lnCampuri = AFIELDS(laColoaneBon,This.cCursor)
|
||||
If lnCampuri = 8
|
||||
Select (This.cCursor)
|
||||
Scan
|
||||
Do Case
|
||||
Case discount = 1 && discount articol anterior
|
||||
lcBon = lcBon + [3;] + Alltrim(DENUMIRE) + [;] + Alltrim(Transform(CANT)) + [;] + Alltrim(Transform(procent)) + [;] + Alltrim(Nvl(UM,[BUC])) + [;] + Alltrim(Transform(PROC_TVAV)) + [;] + Alltrim(Transform(Nvl(DEPARTAMENT,1))) + [;] + CRLF
|
||||
Case discount = 2 && discount subtotal
|
||||
lcBon = lcBon + [4;] + Alltrim(DENUMIRE) + [;] + Alltrim(Transform(CANT)) + [;] + Alltrim(Transform(procent)) + [;] + Alltrim(Nvl(UM,[BUC])) + [;] + Alltrim(Transform(PROC_TVAV)) + [;] + Alltrim(Transform(Nvl(DEPARTAMENT,1))) + [;] + CRLF
|
||||
Case cant < 0 AND pret > 0 && discount valoric subtotal; cantitatea nu poate fi negativa la casa de marcat. o tratez ca o reducere valorica
|
||||
lcBon = lcBon + [41;] + Alltrim(DENUMIRE) + [;] + [1] + [;] + Alltrim(Transform(ABS(cant*pret))) + [;] + Alltrim(Nvl(UM,[BUC])) + [;] + Alltrim(Transform(PROC_TVAV)) + [;] + Alltrim(Transform(Nvl(DEPARTAMENT,1))) + [;] + CRLF
|
||||
Case pret < 0 AND cant > 0 && discount valoric subtotal; bon fiscal conform factura, se cumuleaza articolele, iar discount-ul global apare cu cantitate = 1 si sum(pret) negativ
|
||||
lcBon = lcBon + [41;] + Alltrim(DENUMIRE) + [;] + [1] + [;] + Alltrim(Transform(ABS(cant*pret))) + [;] + Alltrim(Nvl(UM,[BUC])) + [;] + Alltrim(Transform(PROC_TVAV)) + [;] + Alltrim(Transform(Nvl(DEPARTAMENT,1))) + [;] + CRLF
|
||||
Otherwise
|
||||
lcBon = lcBon + [1;] + Alltrim(DENUMIRE) + [;] + Alltrim(Transform(CANT)) + [;] + Alltrim(Transform(Pret)) + [;] + Alltrim(Nvl(UM,[BUC])) + [;] + Alltrim(Transform(PROC_TVAV)) + [;] + Alltrim(Transform(Nvl(DEPARTAMENT,1))) + [;] + CRLF
|
||||
Endcase
|
||||
Endscan
|
||||
Else
|
||||
Select (This.cCursor)
|
||||
Scan
|
||||
*!* 1;ARDEI GRAS CU LIPTAUER 120 GR;1;0.1;PORTIE;1.19;1;
|
||||
|
||||
lcBon = lcBon + [1;] + Alltrim(DENUMIRE) + [;] + Alltrim(Transform(CANT)) + [;] + Alltrim(Transform(Pret)) + [;] + Alltrim(Nvl(UM,[BUC])) + [;] + Alltrim(Transform(PROC_TVAV)) + [;] + Alltrim(Transform(Nvl(DEPARTAMENT,1))) + [;] + CRLF
|
||||
*!* modificare 0.9.27 : NVL(um,[])
|
||||
Endscan
|
||||
Endif
|
||||
*!* modificare 15.07.2010 ^
|
||||
*!* 2;NUMERAR;0;0.5;
|
||||
*!* 2;PROCENTDISCOUNT;0;10.50;
|
||||
|
||||
*!* modificare ROARESTAURANT v 0.9.30
|
||||
*!* If This.nProcentReducere > 0
|
||||
*!* lcBon = lcBon + [2;PROCENTDISCOUNT;0;] + ALLTRIM(TRANSFORM(This.nProcentReducere)) + [;] + CRLF
|
||||
*!* *!* lcBon = lcBon + [2;REDUCERE;0;] + Alltrim(Transform(This.nValoareReducere)) + [;] + CRLF
|
||||
*!* Endif
|
||||
IF This.nProcentReducere > 0
|
||||
lcBon = lcBon + [2;DISCOUNT;0;] + ALLTRIM(TRANSFORM(This.nValoareReducere)) + [;] + CRLF
|
||||
lcBon = lcBon + [2;PROCENTDISCOUNT;0;] + ALLTRIM(TRANSFORM(This.nProcentReducere)) + [;] + CRLF
|
||||
*!* lcBon = lcBon + [2;REDUCERE;0;] + Alltrim(Transform(This.nValoareReducere)) + [;] + CRLF
|
||||
ENDIF
|
||||
*!* modificare ROARESTAURANT v 0.9.30 ^
|
||||
|
||||
If This.nNumarTichete1 > 0
|
||||
lcBon = lcBon + [2;NUMARTICHETE1;0;] + Alltrim(Transform(This.nNumarTichete1)) + [;] + CRLF
|
||||
lcBon = lcBon + [2;PRETTICHET1;0;] + Alltrim(Transform(This.nPretTichet1)) + [;] + CRLF
|
||||
Endif
|
||||
If This.nNumarTichete2 > 0
|
||||
lcBon = lcBon + [2;NUMARTICHETE2;0;] + Alltrim(Transform(This.nNumarTichete2)) + [;] + CRLF
|
||||
lcBon = lcBon + [2;PRETTICHET2;0;] + Alltrim(Transform(This.nPretTichet2)) + [;] + CRLF
|
||||
Endif
|
||||
|
||||
If This.nValoareCard > 0
|
||||
lcBon = lcBon + [2;CARD;0;] + Alltrim(Transform(This.nValoareCard)) + [;] + CRLF
|
||||
Endif
|
||||
|
||||
If This.nValoareNumerar > 0
|
||||
lcBon = lcBon + [2;NUMERAR;0;] + Alltrim(Transform(This.nValoareNumerar)) + [;] + CRLF
|
||||
Endif
|
||||
|
||||
lcDirectoryCaleFisier = JUSTPATH(This.cCaleFisier)
|
||||
IF !DIRECTORY(m.lcDirectoryCaleFisier)
|
||||
TRY
|
||||
MD (m.lcDirectoryCaleFisier)
|
||||
CATCH
|
||||
AMESSAGEBOX('Nu exista directorul ' + m.lcDirectoryCaleFisier + ' si nu s-a putut crea! Creati-l manual!',0+32,_screen.Caption)
|
||||
ENDTRY
|
||||
|
||||
ENDIF
|
||||
Try
|
||||
Strtofile(lcBon, This.cCaleFisier)
|
||||
|
||||
If File(This.cCaleProgram)
|
||||
lcCurentDir = Sys(5) + Curdir()
|
||||
Cd Justpath(This.cCaleProgram)
|
||||
|
||||
lcRun = Juststem(This.cCaleProgram) + [("] + This.cCaleFisier + [")]
|
||||
llSucces = &lcRun
|
||||
|
||||
Cd (lcCurentDir)
|
||||
lnSucces = Iif(llSucces, CT_SUCCES, CT_INSUCCES)
|
||||
Else
|
||||
lnSucces = CT_INSUCCES
|
||||
AMESSAGEBOX('Nu exista ' + This.cCaleProgram + ' !',16,'Eroare')
|
||||
Endif
|
||||
Catch To loEx
|
||||
goLog.Log(m.lcBon)
|
||||
goLog.log('Fisier bon this.cCaleFisier: ' + this.cCaleFisier + " exista: " + TRANSFORM(FILE(this.cCaleFisier)))
|
||||
goLog.Log('This.cCaleProgram: ' + This.cCaleProgram)
|
||||
|
||||
lnSucces = CT_INSUCCES
|
||||
AMESSAGEBOX(loEx.Message + CRLF + loEx.Procedure + CRLF + loEx.LineContents + CRLF + loEx.LineContents + CRLF + ;
|
||||
'Fisier bon this.cCaleFisier: ' + this.cCaleFisier + " exista: " + TRANSFORM(FILE(this.cCaleFisier)),16,'Eroare')
|
||||
Endtry
|
||||
|
||||
Select (lcSelect)
|
||||
|
||||
Return lnSucces
|
||||
Endproc && bon2ecr
|
||||
**********************************************************************************************************************************
|
||||
Enddefine
|
||||
1556
COMUN/programe/email.prg
Normal file
1556
COMUN/programe/email.prg
Normal file
File diff suppressed because it is too large
Load Diff
51
COMUN/programe/exportare.prg
Normal file
51
COMUN/programe/exportare.prg
Normal file
@@ -0,0 +1,51 @@
|
||||
LPARAMETERS tabel, initial, final
|
||||
LOCAL nrc, i, c
|
||||
STORE 0 TO nrc, i
|
||||
STORE '' TO c
|
||||
|
||||
lcDir = ADDBS(gcTempPath)
|
||||
CD (lcDir)
|
||||
|
||||
|
||||
exista_excel=.F.
|
||||
|
||||
initial = ','+initial+',' &&Pentru a recunoste coloanele'
|
||||
final = ','+final+',' &&---||---
|
||||
|
||||
nrc = OCCURS(',', '&initial')
|
||||
nrc=nrc-1 && scade vircula din fata
|
||||
|
||||
LOCAL ARRAY c_initial(nrc)
|
||||
LOCAL ARRAY c_final(nrc)
|
||||
|
||||
FOR i = 1 TO nrc
|
||||
n = AT(',', '&initial', i)
|
||||
n2 =AT(',', '&initial', i+1)
|
||||
c_Initial[i] = SUBSTR('&initial', n+1, n2-n-1)
|
||||
*MESSAGEBOX(c_initial[i])
|
||||
n = AT(',', '&final', i)
|
||||
n2 =AT(',', '&final', i+1)
|
||||
c_final[i] = SUBSTR('&final', n+1, n2-n-1)
|
||||
*MESSAGEBOX(c_final[i])
|
||||
ENDFOR
|
||||
|
||||
FOR i=1 TO nrc
|
||||
IF i=nrc
|
||||
c=c+c_initial[i]+' as '+c_final[i]
|
||||
ELSE
|
||||
c=c+c_initial[i]+' as '+c_final[i]+','
|
||||
ENDIF
|
||||
ENDFOR
|
||||
|
||||
calea_fis = PUTFILE('Nume fisier:', 'Foaie_Excel', 'XLS')
|
||||
IF EMPTY(calea_fis) && Esc pressed
|
||||
RETURN
|
||||
ENDIF
|
||||
|
||||
SELECT &c FROM &tabel INTO CURSOR cur
|
||||
SELECT cur
|
||||
EXPORT TO (calea_fis) TYPE XL5
|
||||
|
||||
OPEN_default_app(calea_fis)
|
||||
USE IN cur
|
||||
|
||||
209
COMUN/programe/filebringer.prg
Normal file
209
COMUN/programe/filebringer.prg
Normal file
@@ -0,0 +1,209 @@
|
||||
Function BringFile
|
||||
Lparameters cFilePath,lcprogram,tcLocalFile
|
||||
*!* modificare ROARESTAURANT v 1.0.0
|
||||
LOCAL lnTransferTotal
|
||||
lnTransferTotal = -1
|
||||
*!* modificare ROARESTAURANT v 1.0.0 ^
|
||||
If !Empty(tcLocalFile)
|
||||
lcLocalFile=tcLocalFile
|
||||
Else
|
||||
If At("_",lcprogram)#0
|
||||
lccurrentUR=Substr(lcprogram,At("_",lcprogram)+1)
|
||||
* MESSAGEBOX(lccurrentUR)
|
||||
Else
|
||||
lccurrentUR=lcprogram
|
||||
Endif
|
||||
mypath=GetIniPath()
|
||||
mypath=Substr(mypath,1,Rat("\",mypath,1))
|
||||
|
||||
Try
|
||||
Md mypath+lccurrentUR+"\"
|
||||
Catch To loex
|
||||
Endtry
|
||||
lcLocalFile=Alltrim(GetCurrentTempPath(lcprogram))
|
||||
Endif
|
||||
* Do Form waitwindow Name frmwait
|
||||
polog.Log("Fisierul care trebuie descarcat este "+cFilePath,Program())
|
||||
If (Occurs('/', cFilePath)>0)
|
||||
*WAIT WINDOW AT 10,10 NOWAIT "Se downloadeaza fisierul..."
|
||||
polog.Log([Createobject("wwCodeUpdate")],Program())
|
||||
|
||||
loUpdate=Createobject("wwCodeUpdate")
|
||||
*!* loUpdate.cExeFile = lcprogram+".exe"
|
||||
|
||||
If Isnull(loUpdate.oHTTP)
|
||||
loIP = loUpdate.CreateHTTPClient()
|
||||
Else
|
||||
loIP = loUpdate.oHTTP
|
||||
Endif
|
||||
|
||||
loIP.lShowDialog = .T.
|
||||
|
||||
loUrl = loIP.InternetCrackUrl(cFilePath)
|
||||
|
||||
If Isnull(loUrl)
|
||||
Return .F.
|
||||
Endif
|
||||
|
||||
myinihandler=Createobject("iniaccess")
|
||||
loIP.nhttpport=Val(loUrl.cPort)
|
||||
If loIP.HTTPConnect(loUrl.cServer,myinihandler.getUsername(),myinihandler.getPassword(),;
|
||||
IIF(Lower(loUrl.cProtocol)="https",.T.,.F.)) # 0
|
||||
loUpdate.SetError(loIP.cErrorMsg)
|
||||
Release myinihandler
|
||||
polog.Log([loIP.HTTPConnect(] + loUrl.cServer + [)#0],Program())
|
||||
Return .F.
|
||||
Else
|
||||
Release myinihandler
|
||||
|
||||
lcTFile = lcLocalFile
|
||||
lcData = ""
|
||||
lnSize = 0
|
||||
polog.Log([loIP.HTTPGetEx(] + Trim(loUrl.cPath) + [)],Program())
|
||||
If(loIP.HTTPGetEx( Trim(loUrl.cPath),@lcData,@lnSize,,lcTFile)=0)
|
||||
|
||||
polog.Log([lnSize=] + alltrim(transform(m.lnSize)),Program())
|
||||
TransferHandlerResult=lnSize
|
||||
else
|
||||
polog.Log([loIp.cerrormsg=] + alltrim(transf(loIp.nerror)) + ' ' + alltrim(transform(nvl(loIp.cerrormsg,''))),Program())
|
||||
TransferHandlerResult=0
|
||||
endif
|
||||
polog.Log([lnSize=] + alltrim(transform(m.lnSize)),Program())
|
||||
polog.Log([loIP.nContentSize=] + alltrim(transform(loIP.nContentSize)),Program())
|
||||
If lnSize#loIP.nContentSize
|
||||
TransferHandlerResult=0
|
||||
Endif
|
||||
|
||||
|
||||
Endif
|
||||
|
||||
|
||||
|
||||
* TransferHandlerResult= DownLoadURL(cFilePath,cLocalFile,"FeedBack",1000,.T.)
|
||||
polog.Log("TransferHandlerResult = "+Alltrim(Transform(TransferHandlerResult)),Program())
|
||||
Else
|
||||
*WAIT WINDOW NOWAIT "Se copiaza fisierul..."
|
||||
*!* If Left(cFilePath,1)="\"
|
||||
*!* cFilePath=Right(cFilePath,Len(cFilePath)-1)
|
||||
*!* Endif
|
||||
*!* cFilePath=lcNetworkPath+cFilePath
|
||||
If(PathFileExists(cFilePath)=1)
|
||||
scomp=Set('comp')
|
||||
Set Compatible On
|
||||
nsize=Fsize(cFilePath)
|
||||
Set Compatible &scomp
|
||||
loProgressForm = Createobject("wwProgressForm")
|
||||
loProgressForm.SetCaption("Se descarc<72> actualizarea...")
|
||||
*!* loProgressForm.ShowCancelButton()
|
||||
loProgressForm.Show()
|
||||
*!* IF loProgressForm.lCancelled
|
||||
loProgressForm.SetDescription("S-au primit de la "+Justpath(cFilePath)+":" +Chr(13)+;
|
||||
"0 din "+Ltrim(Transform(nsize,"999,999,999"))+ " bytes")
|
||||
*!* THIS.oProgressForm.SetDescription("Received from " + THIS.cServer + ":" +CHR(13) +;
|
||||
*!* LTRIM( TRANSFORM(lnbytes,"999,999,999") ) + " of " +;
|
||||
*!* LTRIM(TRANSFORM(THIS.nContentSize,"999,999,999"))+ " bytes")
|
||||
*!* THIS.oProgressForm.SetProgress(lnbytes/THIS.nContentSize * 100)
|
||||
loProgressForm.SetProgress(0)
|
||||
loProgressForm.SetDescription("S-au primit de la "+Justpath(cFilePath)+":" +Chr(13)+;
|
||||
LTRIM(Transform(nsize*0.05,"999,999,999"))+" din "+Ltrim(Transform(nsize,"999,999,999"))+ " bytes")
|
||||
loProgressForm.SetProgress(5)
|
||||
TransferHandlerResult= CopyFile(cFilePath, lcLocalFile, .F.)
|
||||
loProgressForm.SetDescription("S-au primit de la "+Justpath(cFilePath)+":" +Chr(13)+;
|
||||
LTRIM(Transform(nsize,"999,999,999"))+" din "+Ltrim(Transform(nsize,"999,999,999"))+ " bytes")
|
||||
loProgressForm.SetProgress(100)
|
||||
loProgressForm = .F.
|
||||
Else
|
||||
*MESSAGEBOX("Update-ul nu a fost gasit la locatia XML-ului")
|
||||
polog.Log("A incercat cu CopyFile si nu a mers = ",Program())
|
||||
TransferHandlerResult=0
|
||||
Endif
|
||||
|
||||
Endif
|
||||
* frmwait.Release()
|
||||
*WAIT CLEAR
|
||||
If (TransferHandlerResult!=0 And TransferHandlerResult!=-1)
|
||||
*!* modificare ROARESTAURANT v 1.0.0
|
||||
*!* If gTransferTotal!=-1
|
||||
IF lnTransferTotal != -1
|
||||
If TransferHandlerResult=gTransferTotal
|
||||
lnTransferTotal = -1
|
||||
*!* gTransferTotal=-1
|
||||
Return .T.
|
||||
Else
|
||||
lnTransferTotal = -1
|
||||
*!* gTransferTotal=-1
|
||||
polog.Log("TransferHandlerresult != TransferTotal ",Program())
|
||||
Return .F.
|
||||
Endif
|
||||
Endif
|
||||
*!* modificare ROARESTAURANT v 1.0.0 ^
|
||||
|
||||
Return .T.
|
||||
Else
|
||||
If TransferHandlerResult=0
|
||||
polog.Log("TransferHandlerresult = 0",Program())
|
||||
Endif
|
||||
If TransferHandlerResult=-1
|
||||
polog.Log("TransferHandlerresult = -1",Program())
|
||||
Endif
|
||||
|
||||
|
||||
Return .F.
|
||||
Endif
|
||||
Endfunc
|
||||
|
||||
Function StripXmlFile
|
||||
Lparameters cXmlString
|
||||
Return Strextract(Alltrim(cXmlString),"(",")",1)
|
||||
Endfunc
|
||||
|
||||
|
||||
Function FeedBack
|
||||
* if this function returned with .f., downloading would terminate
|
||||
* it is called after each 100 byte downloaded. (You can alter this value!)
|
||||
Lparameters tiAll, tiCount
|
||||
gTransferTotal=tiAll
|
||||
frmwait.label1.Caption = "Desc<73>rcare " + Alltrim(Str(tiCount/1000)) + " kb din " + Alltrim(Str(tiAll/1000)) + " kb"
|
||||
procent = (tiCount*100)/tiAll
|
||||
frmwait._progressbar1.Update(procent)
|
||||
|
||||
If !gcmdCancelDownload
|
||||
Return .T.
|
||||
Else
|
||||
gcmdCancelDownload= .F.
|
||||
Return .F.
|
||||
Endif
|
||||
Endfunc
|
||||
|
||||
Function CheckProcess
|
||||
Lparameters ProgramCheck
|
||||
|
||||
ProgramtoCheck=Addbs(gcDirMare) + ProgramCheck + "\"+ProgramCheck + ".exe"
|
||||
ProgramProba= Addbs(gcDirMare) + ProgramCheck + "\" + ProgramCheck + "Proba.exe"
|
||||
|
||||
Local loex As Exception
|
||||
err=.F.
|
||||
If File("&ProgramtoCheck")
|
||||
Copy File &ProgramtoCheck To &ProgramProba
|
||||
Else
|
||||
Return .F.
|
||||
Endif
|
||||
|
||||
|
||||
Try
|
||||
Delete File &ProgramtoCheck
|
||||
Catch To loex
|
||||
If loex.ErrorNo=1705
|
||||
err= .T.
|
||||
Endif
|
||||
Endtry
|
||||
|
||||
If err=.F.
|
||||
Copy File &ProgramProba To &ProgramtoCheck
|
||||
Delete File &ProgramProba
|
||||
Endif
|
||||
|
||||
|
||||
|
||||
Return err
|
||||
Endfunc
|
||||
132
COMUN/programe/gencursor.prg
Normal file
132
COMUN/programe/gencursor.prg
Normal file
@@ -0,0 +1,132 @@
|
||||
PROCEDURE gencursor
|
||||
PARAMETERS tcnume, tcalias, tcselect, tcfiltru, tcschema, tcorder, tlAfisare, tcgroup, tlModParam, tcFiltruOriginal
|
||||
|
||||
&& lcSelect, lcFiltru, lcSchema, lcOrder, llAfisare, lcGroup, llModParam, lcFiltruOriginal
|
||||
&& MODIFICAT 28.02.2005
|
||||
&& tlModParam = .T. daca gencursor functioneaza fara WHERE inclus in tcSelect original
|
||||
&& tcFiltruOriginal : .T. daca conditia care urmeaza dupa where este salvata si adaugata la query-urile ulterioare
|
||||
|
||||
LOCAL llModParam, lcFiltruOriginal
|
||||
|
||||
IF EMPTY(tlModParam) OR TYPE('tlModParam') # 'L'
|
||||
llModParam = .F.
|
||||
ELSE
|
||||
llModParam = tlModParam
|
||||
ENDIF
|
||||
|
||||
IF EMPTY(tcFiltruOriginal) OR TYPE('tcFiltruOriginal') # 'C'
|
||||
lcFiltruOriginal = ''
|
||||
ELSE
|
||||
lcFiltruOriginal = ALLTRIM(tcFiltruOriginal)
|
||||
ENDIF
|
||||
|
||||
&tcnume=NEWOBJECT('deca_baza')
|
||||
&tcnume..ADDOBJECT('ca_baza1','ca_baza')
|
||||
|
||||
IF TYPE('goConn') = 'O'
|
||||
&tcNume..datasource = goConn.nHandle
|
||||
ELSE
|
||||
IF TYPE('gnHandle') = 'N'
|
||||
&tcNume..datasource = gnHandle
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
*lcSelect = TRANSFORM(UPPER(ALLTRIM(tcSelect)),[']
|
||||
|
||||
|
||||
|
||||
LOCAL laEroare
|
||||
DECLARE laEroare[1]
|
||||
|
||||
lnpCount = PCOUNT()
|
||||
llAfisare = tlAfisare
|
||||
|
||||
WITH &tcnume..ca_baza1
|
||||
IF lnpCount > 6
|
||||
.lAfisare = llAfisare
|
||||
ENDIF
|
||||
.ALIAS=ALLTRIM(UPPER(tcalias))
|
||||
IF !EMPTY(tcschema)
|
||||
IF INLIST(LEFT(tcschema,1),['],["],'[')
|
||||
.CURSORSCHEMA=&tcschema
|
||||
ELSE
|
||||
IF LEN(tcschema) > 250
|
||||
lngrupe = CEILING(LEN(tcschema)/250)
|
||||
lcgrupa = tcschema
|
||||
FOR i = 1 TO lngrupe
|
||||
lcgrupat = LEFT(lcgrupa,250)
|
||||
.CURSORSCHEMA = .CURSORSCHEMA + lcGrupat
|
||||
lcgrupa = SUBSTR(lcgrupa,251)
|
||||
ENDFOR
|
||||
ELSE
|
||||
.CURSORSCHEMA=tcschema
|
||||
ENDIF
|
||||
ENDIF
|
||||
ENDIF
|
||||
IF INLIST(LEFT(tcselect,1),['],["],'[')
|
||||
.SELECTCMD = &tcselect
|
||||
.cSelect = &tcselect
|
||||
ELSE
|
||||
IF LEN(tcselect) > 250
|
||||
lngrupe = CEILING(LEN(tcSelect)/250)
|
||||
lcgrupa = tcSelect
|
||||
FOR i = 1 TO lngrupe
|
||||
lcgrupat = LEFT(lcgrupa,250)
|
||||
.SELECTCMD = .SELECTCMD + lcGrupat
|
||||
.cSelect = .cSelect + lcGrupat
|
||||
lcgrupa = SUBSTR(lcgrupa,251)
|
||||
ENDFOR
|
||||
ELSE
|
||||
.SELECTCMD = tcselect
|
||||
.cSelect = tcselect
|
||||
ENDIF
|
||||
ENDIF
|
||||
*!* STRTOFILE(.selectcmd,[c:\selectcmd.txt])
|
||||
|
||||
.cfiltru=ALLTRIM(UPPER(tcfiltru))
|
||||
IF !EMPTY(tcorder)
|
||||
.cOrder=ALLTRIM(UPPER(tcorder))
|
||||
ENDIF
|
||||
IF !EMPTY(tcgroup)
|
||||
.cGroup=ALLTRIM(UPPER(tcgroup))
|
||||
ENDIF
|
||||
.lModParam = llModParam
|
||||
.cFiltruOriginal = lcFiltruOriginal
|
||||
ENDWITH
|
||||
|
||||
*!* IF !USED(tcAlias)
|
||||
*!* AERROR(laEroare)
|
||||
*!* IF TYPE('LAEROARE')!= 'U'
|
||||
*!* IF ALEN(laEroare) > 1
|
||||
*!* IF TYPE('goLog')='O'
|
||||
|
||||
*!* lcLog = laEroare(3) + CHR(13) + 'SELECT: ' + tcSelect + CHR(13) + 'SCHEMA: ' + tcSchema + CHR(13) + 'FILTRU: ' + tcFiltru + CHR(13) + 'ORDINE: ' + tcOrder
|
||||
*!* goLog.Log(lcLog,PROGRAM())
|
||||
*!* ENDIF
|
||||
*!* MESSAGEBOX(laEroare(3),0+16,"Eroare")
|
||||
|
||||
*!* ENDIF
|
||||
*!* ENDIF
|
||||
*!* ENDIF
|
||||
*!* RELEASE laEroare
|
||||
ENDPROC
|
||||
|
||||
PROCEDURE gencursor_hash
|
||||
PARAMETERS toHash
|
||||
|
||||
LOCAL lcNume, lcAlias, lcSelect, lcFiltru, lcSchema, lcOrder, llAfisare, lcGroup, llModParam, lcFiltruOriginal
|
||||
|
||||
lcNume = toHash.GetValue('cNume')
|
||||
lcAlias = toHash.GetValue('cAlias')
|
||||
lcSelect = toHash.GetValue('cSelect')
|
||||
lcFiltru = toHash.GetValue('cFiltru')
|
||||
lcSchema = toHash.GetValue('cSchema')
|
||||
lcOrder = toHash.GetValue('cOrder')
|
||||
llAfisare = toHash.GetValue('lAfisare')
|
||||
lcGroup = toHash.GetValue('cGroup')
|
||||
llModParam = toHash.GetValue('lModParam')
|
||||
lcFiltruOriginal = toHash.GetValue('cFiltruOriginal')
|
||||
|
||||
= gencursor(lcnume, lcalias, lcselect, lcfiltru, lcschema, lcorder, llAfisare, lcgroup, llModParam, lcFiltruOriginal)
|
||||
|
||||
ENDPROC && gencursor_hash
|
||||
177
COMUN/programe/get_schema.prg
Normal file
177
COMUN/programe/get_schema.prg
Normal file
@@ -0,0 +1,177 @@
|
||||
LPARAMETERS tcConnection, tcTable, tlNull, tcFormat, tnMaxCharFormat, tcPrefix, tcSufix
|
||||
*!* EX:
|
||||
*!* Set Procedure To GET_SCHEMA.PRG Additive
|
||||
*!* LOSCHEMA = GET_SCHEMA("JCSSERVER;MARIUSM_AUTO;123","VACT",.F.,"FOX", 100, "['", " '] + ;")
|
||||
*!* DO GET_SCHEMA - PUNE IN _CLIPBOARD COLOANELE SI SCHEMA
|
||||
#DEFINE CRLF CHR(13) + CHR(10)
|
||||
|
||||
LOCAL lcTable, lcConnection, loReturn
|
||||
LOCAL lcSelect, lcSchema, i, lcGrupat, lcGrupa
|
||||
lcTable = ''
|
||||
lcConnection = ''
|
||||
|
||||
loReturn = CREATEOBJECT("empty")
|
||||
ADDPROPERTY(loReturn,"cSelect", "")
|
||||
ADDPROPERTY(loReturn,"cSchema", "")
|
||||
|
||||
|
||||
IF !EMPTY(tcConnection)
|
||||
lcConnection = tcConnection
|
||||
ELSE
|
||||
lcConnection = 'JCSSERVER;MARIUSM_AUTO;123'
|
||||
lcConnection = INPUTBOX('Conexiune', 'Conexiune', lcConnection)
|
||||
ENDIF
|
||||
IF !(EMPTY(lcConnection) OR OCCURS(';', lcConnection) < 2)
|
||||
IF !EMPTY(tcTable)
|
||||
lcTable = tcTable
|
||||
ELSE
|
||||
lcTable = INPUTBOX('Tabel', 'Tabel', lcTable)
|
||||
ENDIF
|
||||
IF !EMPTY(lcTable)
|
||||
lcTable = UPPER(lcTable)
|
||||
IF PCOUNT() = 0 && am apelat functia fara parametri
|
||||
tcFormat = INPUTBOX("Formatare","FOX","FOX")
|
||||
ENDIF
|
||||
IF PCOUNT() = 0
|
||||
tlNull = .T.
|
||||
ENDIF
|
||||
|
||||
lcCursor = 'cResult'
|
||||
lcSelect = [select COLUMN_NAME, DATA_TYPE, DATA_PRECISION, DATA_SCALE, DATA_LENGTH, NULLABLE ] + ;
|
||||
[ FROM user_tab_columns where table_name = '] + lcTable + [' order by column_id]
|
||||
|
||||
*!* lcSelect = [SELECT stringagg(COLUMN_NAME) CSELECT,] + ;
|
||||
*!* [ stringagg(COLUMN_NAME || ' ' ||] + ;
|
||||
*!* [ DECODE(DATA_TYPE,] + ;
|
||||
*!* [ 'NUMBER',] + ;
|
||||
*!* [ 'N(' || LEAST(NVL(DATA_PRECISION,DATA_LENGTH), 20) ||] + ;
|
||||
*!* [ (CASE NVL(DATA_SCALE,0)] + ;
|
||||
*!* [ WHEN 0 THEN] + ;
|
||||
*!* [ ')'] + ;
|
||||
*!* [ ELSE] + ;
|
||||
*!* [ ',' || DATA_SCALE || ')'] + ;
|
||||
*!* [ END) || (CASE NULLABLE WHEN 'N' THEN ' NOT NULL' ELSE ' NULL' END),] + ;
|
||||
*!* [ 'DATE',] + ;
|
||||
*!* [ (CASE] + ;
|
||||
*!* [ WHEN COLUMN_NAME LIKE 'DATAORA%' THEN] + ;
|
||||
*!* [ 'T'] + ;
|
||||
*!* [ ELSE] + ;
|
||||
*!* [ 'D'] + ;
|
||||
*!* [ END) || (CASE NULLABLE WHEN 'N' THEN ' NOT NULL' ELSE ' NULL' END),] + ;
|
||||
*!* [ 'VARCHAR2',] + ;
|
||||
*!* [ (CASE WHEN NVL(DATA_LENGTH,0) > 254 THEN 'M' ELSE ] + ;
|
||||
*!* [ 'V(' || DATA_LENGTH || ')' END)|| (CASE NULLABLE WHEN 'N' THEN ' NOT NULL' ELSE ' NULL' END),] + ;
|
||||
*!* [ 'CHAR',] + ;
|
||||
*!* [ (CASE WHEN NVL(DATA_LENGTH,0) > 254 THEN 'M' ELSE ] + ;
|
||||
*!* [ 'V(' || DATA_LENGTH || ')' END) || (CASE NULLABLE WHEN 'N' THEN ' NOT NULL' ELSE ' NULL' END),] + ;
|
||||
*!* [ 'CLOB',] + ;
|
||||
*!* [ 'M' || (CASE NULLABLE WHEN 'N' THEN ' NOT NULL' ELSE ' NULL' END),] + ;
|
||||
*!* [ 'M' || (CASE NULLABLE WHEN 'N' THEN ' NOT NULL' ELSE ' NULL' END))) CSCHEMA] + ;
|
||||
*!* [ FROM (select COLUMN_NAME,] + ;
|
||||
*!* [ DATA_TYPE,] + ;
|
||||
*!* [ DATA_PRECISION,] + ;
|
||||
*!* [ DATA_SCALE,] + ;
|
||||
*!* [ DATA_LENGTH,] + ;
|
||||
*!* [ NULLABLE] + ;
|
||||
*!* [ FROM user_tab_columns] + ;
|
||||
*!* [ where table_name = '] + lcTable + ['] + ;
|
||||
*!* [ order by column_id)]
|
||||
|
||||
lcHost = GETWORDNUM(lcConnection,1,';')
|
||||
lcUser = GETWORDNUM(lcConnection,2,';')
|
||||
lcPassword = GETWORDNUM(lcConnection,3,';')
|
||||
|
||||
X= SQLCONNECT(lcHost, lcUser, lcPassword)
|
||||
IF X < 0
|
||||
AERROR(laErr)
|
||||
MESSAGEBOX(laErr(3))
|
||||
RETURN
|
||||
ENDIF
|
||||
|
||||
lnSucces = SQLEXEC(X, lcSelect, lcCursor)
|
||||
IF lnSucces < 0
|
||||
AERROR(laErr)
|
||||
MESSAGEBOX(laErr(3))
|
||||
ELSE
|
||||
lcSchema = ""
|
||||
lcSelect = ""
|
||||
|
||||
SELECT (lcCursor)
|
||||
SCAN
|
||||
DO CASE
|
||||
CASE DATA_TYPE = 'NUMBER'
|
||||
lcItemSchema = 'N(' + ALLTRIM(STR(MIN(NVL(DATA_PRECISION,DATA_LENGTH), 20))) + ;
|
||||
IIF(NVL(DATA_SCALE,0) = 0, ')', ',' + ALLTRIM(STR(DATA_SCALE)) + ')')
|
||||
CASE DATA_TYPE = 'DATE'
|
||||
lcItemSchema = IIF('DATAORA'$COLUMN_NAME, 'T', 'D')
|
||||
CASE DATA_TYPE = 'VARCHAR2'
|
||||
lcItemSchema = IIF(NVL(DATA_LENGTH,0) > 254, 'M', 'V(' + ALLTRIM(STR(NVL(DATA_LENGTH,0))) + ')')
|
||||
CASE DATA_TYPE = 'CHAR'
|
||||
lcItemSchema = IIF(NVL(DATA_LENGTH,0) > 254, 'M', 'C(' + ALLTRIM(STR(NVL(DATA_LENGTH,0))) + ')')
|
||||
OTHERWISE
|
||||
lcItemSchema = 'M'
|
||||
ENDCASE
|
||||
lcSchema = lcSchema + ALLTRIM(COLUMN_NAME) + ' ' + lcItemSchema + IIF(tlNull, IIF(NULLABLE = 'N',' NOT NULL',' NULL'), '') + ','
|
||||
lcSelect = lcSelect + ALLTRIM(COLUMN_NAME) + ','
|
||||
ENDSCAN
|
||||
IF !EMPTY(lcItemSchema)
|
||||
lcSchema = LEFT(lcSchema , LEN(lcSchema )-1)
|
||||
lcSelect = LEFT(lcSelect , LEN(lcSelect )-1)
|
||||
ENDIF
|
||||
|
||||
USE IN SELECT(lcCursor)
|
||||
|
||||
&& FORMATARE TEXT - 250 CARACTERE PE RAND
|
||||
IF UPPER(ALLTRIM(TRANSFORM(tcFormat))) = 'FOX'
|
||||
lcSelect = format_fox(lcSelect, tnMaxCharFormat, tcPrefix, tcSufix)
|
||||
lcSchema = format_fox(lcSchema, tnMaxCharFormat, tcPrefix, tcSufix)
|
||||
ENDIF && UPPER(tcFormat) = 'FOX'
|
||||
|
||||
_CLIPTEXT = ALLTRIM(lcSelect) + CHR(13) + CHR(10) + ALLTRIM(lcSchema)
|
||||
loReturn.cSelect = ALLTRIM(lcSelect)
|
||||
loReturn.cSchema = ALLTRIM(lcSchema)
|
||||
|
||||
ENDIF
|
||||
|
||||
SQLDISCONNECT(X)
|
||||
WAIT WINDOW 'Schema este in Clipboard' NOWAIT
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
RETURN loReturn
|
||||
|
||||
|
||||
PROCEDURE format_fox
|
||||
LPARAMETERS tcText, tnMaxCharFormat, tcPrefix, tcSufix
|
||||
|
||||
LOCAL lcText, lcGrupa, lcRezultat
|
||||
lcRezultat = ""
|
||||
lcText = tcText
|
||||
|
||||
IF PCOUNT() < 2 OR EMPTY(tnMaxCharFormat) OR TYPE('tnMaxCharFormat') <> 'N'
|
||||
tnMaxCharFormat = 250
|
||||
ENDIF
|
||||
|
||||
tnMaxCharFormat = MIN(tnMaxCharFormat, 250)
|
||||
IF PCOUNT() < 3 OR TYPE('tcPrefix') <> 'C' OR EMPTY(tcPrefix)
|
||||
tcPrefix = "["
|
||||
ENDIF
|
||||
|
||||
IF PCOUNT() < 4 OR TYPE('tcSufix') <> 'C' OR EMPTY(tcSufix)
|
||||
tcSufix = " ] + ;"
|
||||
ENDIF
|
||||
|
||||
|
||||
DO WHILE LEN(lcText) > tnMaxCharFormat
|
||||
lcGrupa = LEFT(lcText, tnMaxCharFormat)
|
||||
lnAt = RAT(',', lcGrupa)
|
||||
lcGrupa = LEFT(lcGrupa, lnAt)
|
||||
lcRezultat = lcRezultat + tcPrefix + lcGrupa + tcSufix + CRLF
|
||||
lcText = SUBSTR(lcText, lnAt+1)
|
||||
ENDDO
|
||||
IF LEN(lcText) > 0
|
||||
lcRezultat = lcRezultat + tcPrefix + lcText + tcSufix + CRLF
|
||||
ENDIF
|
||||
|
||||
RETURN lcRezultat
|
||||
ENDPROC && format_fox
|
||||
9
COMUN/programe/gridproc.prg
Normal file
9
COMUN/programe/gridproc.prg
Normal file
@@ -0,0 +1,9 @@
|
||||
PROCEDURE ALL
|
||||
SET FILTER TO
|
||||
ENDPROC
|
||||
|
||||
PROCEDURE custom_filter
|
||||
RETURN
|
||||
osearchform=CREATEOBJECT("searchform")
|
||||
osearchform.SHOW()
|
||||
ENDPROC
|
||||
229
COMUN/programe/import_efactura.prg
Normal file
229
COMUN/programe/import_efactura.prg
Normal file
@@ -0,0 +1,229 @@
|
||||
* ointroduceri_efactura.prg
|
||||
|
||||
*!* 13.08.2024
|
||||
*!* vizImportEFactura + discountfaratva
|
||||
|
||||
Procedure importEfacturaPrimite
|
||||
DO vizImportEFactura WITH 'PRIMITE'
|
||||
ENDPROC
|
||||
|
||||
PROCEDURE importEfacturaTrimise
|
||||
DO vizImportEFactura WITH 'TRIMISE'
|
||||
ENDPROC
|
||||
|
||||
PROCEDURE vizImportEFactura
|
||||
LPARAMETERS tcTip
|
||||
* tcTIP: PRIMITE/TRIMISE
|
||||
|
||||
Private poFacturi, poFacturiDetalii
|
||||
Local loFrmFacturi As "frm_efactura_import", lcTip, llPrimite
|
||||
Local lcData1, lcFiltru, lcFiltruOriginal, lcOrder, lcSchema, lcgroup, llAfiseaza, llModParam
|
||||
poFacturi = Null
|
||||
poFacturiDetalii = Null
|
||||
|
||||
lcTip = IIF(TYPE('tcTip') = 'C' and !EMPTY(m.tcTip), UPPER(ALLTRIM(m.tcTip)), 'PRIMITE')
|
||||
llPrimite = (m.lcTip = 'PRIMITE')
|
||||
|
||||
lcTabel = IIF(m.lcTip = 'PRIMITE', 'anaf_vefactura_primit', 'anaf_vefactura_trimis')
|
||||
|
||||
* FACTURI PRIMITE/TRIMISE
|
||||
lcData1 = '01' + Padl(Int(m.gnLuna),2,'0') + Alltrim(Str(m.gnAn))
|
||||
TEXT To lcSchema Noshow
|
||||
ales N(1), id N(20), id_fact N(20), data_act D, data_scad D, numar_act C(30), xfurnizor C(200), xclient C(200), partener C(200), id_incarcare C(36), id_descarcare c(36) null, tip_mesaj_raspuns C(50) null,mesaj_raspuns C(250) null, data_raspuns D null, trimis N(1) null, data_trimis T null, cod_fiscal C(30) null, cod_fiscal_emitent C(30) null, cod_fiscal_beneficiar C(30) null, detalii M null, total_fara_tva N(16,4), total_tva N(16,4), total_tva_ron N(16,4), total_cu_tva N(16,4), discount_fara_tva N(16,4), taxe_fara_tva N(16,4), valoare_fara_tva N(16,4), total_de_plata N(16,4), nume_valuta C(5), test N(1) null, jtotctva N(16,4), descriere M null, detalii_plata M null, diferenta N(16,4), procesat N(1), SerieActRoa V(10) Null, NrActRoa N(14) Null, IdPartRoa N(10) Null, PartenerRoa V(100) null, codFiscalROA V(20), idValutaROA N(5) null,numeValutaROA V(5) null, cursROA N(16,6) null,Cont c(4) Null,ACont c(4) Null,TVAIncasare N(1),Fdoc V(20) null,Id_Fdoc N(5) Null,Nrord V(100) null,Id_Lucrare I Null,Contract V(100) Null,Id_Ctr I Null,Sectie V(100) null,Id_Sectie I Null,dst_chlt V(100) null, Id_venchelt I NUll, nresp V(100) null, Id_responsabil I NUll , completat N(1), completatdet N(1), creditnote N(1), explicatiaROA V(100) null
|
||||
ENDTEXT
|
||||
|
||||
TEXT To lcSelect TEXTMERGE Noshow
|
||||
SELECT 0 as ales, id, id_fact, data_act, data_scad, numar_act, xfurnizor, xclient, partener, id_incarcare, id_descarcare, tip_mesaj_raspuns, mesaj_raspuns, data_raspuns, NVL(trimis,0) as trimis, data_trimis, cod_fiscal, cod_fiscal_emitent, cod_fiscal_beneficiar, '' as detalii, total_fara_tva, total_tva, total_tva_ron, total_cu_tva, discount_fara_tva, taxe_fara_tva, valoare_fara_tva, total_de_plata, nume_valuta, test, jtotctva, descriere, detalii_plata, NVL(total_cu_tva, 0.00)-NVL(jtotctva, 0.00) as diferenta, procesat,
|
||||
'' as SerieActRoa, CAST(null as Number(14)) as NrActRoa, CAST(null as Number(20)) as idPartRoa, '' as PartenerRoa, '' as codFiscalROA, CAST(null as Number(10)) as idValutaROA, '' as numeValutaROA, CAST(null as Number(16,6)) as cursROA,
|
||||
'' as Cont, '' as acont, 0 as TVAIncasare, '' as Fdoc, CAST(0 as Number(5)) as Id_Fdoc, '' as Nrord, CAST(0 as Number(10)) as id_Lucrare, '' as Contract, CAST(null as Number(10)) as id_ctr,
|
||||
'' Sectie, CAST(0 as Number(10)) as id_Sectie, '' as dst_chlt, CAST(0 as Number(10)) as id_Venchelt, '' as nresp, CAST(0 as Number(10)) as id_responsabil, 0 as completat, 0 as completatdet, creditnote, '' as explicatiaROA
|
||||
FROM <<m.lcTabel>>
|
||||
ENDTEXT
|
||||
|
||||
lcOrder = [data_act,numar_act,data_raspuns]
|
||||
lcgroup = []
|
||||
lcFiltru = [(extract(year from data_act) = ?gnAn and extract(month from data_act) = ?gnLuna) or (data_act is null and data_raspuns >= to_date('] + m.lcData1 + [','ddmmyyyy'))]
|
||||
lcFiltruOriginal = []
|
||||
llModParam = .T.
|
||||
llAfiseaza = .F.
|
||||
|
||||
gencursor('poFacturi', 'crsFacturi', lcSelect, lcFiltru, lcSchema, lcOrder, llAfiseaza, lcgroup, llModParam, lcFiltruOriginal)
|
||||
poFacturi.ca_baza1.afisare()
|
||||
Select crsFacturi
|
||||
Go Top
|
||||
|
||||
* DETALII FACTURI PRIMITE/TRIMISE/EMISE
|
||||
TEXT To lcSchema Noshow
|
||||
distribuie N(1), id_tip N(10) null, id_articol N(20) null, id_gestiune N(20) null, cont C(4) null, acont C(4) null, id N(20), id_efactura N(20), nr N(5), articol V(250), descriere V(250), detalii M, cantitate N(18,6), um V(20), um_iso V(50), um_roa V(50), pret N(20,6), proctva N(7,2), tiptva V(2), valoarefaratva N(20,6), discountfaratva N(20,6), in_stoc N(1), articol_roa V(250), codmat_roa V(50), codbare V(50), codclient V(100), codfurnizor V(100), codcpv V(50), codnc8 V(50), nume_gestiune V(50), cgest V(20), tva N(20,6), pretv N(20,6), tvav N(20,6), pretvtva N(20,6)
|
||||
ENDTEXT
|
||||
TEXT To lcSelect Noshow
|
||||
select 0 as distribuie, CAST(0 as number(10)) as id_tip, id_articol, id_gestiune, cont, acont, id, id_efactura, nr, articol, descriere, detalii, cantitate, um, um_iso, um_roa, pret, proctva, tiptva, valoarefaratva, discountfaratva, in_stoc, articol_roa, codmat_roa, codbare, codclient, codfurnizor, codcpv, codnc8, nume_gestiune, cgest, 0 as tva, 0 as pretv, 0 as tvav, 0 as pretvtva from anaf_vefactura_detalii
|
||||
ENDTEXT
|
||||
lcOrder = [nr]
|
||||
lcgroup = []
|
||||
lcFiltru = [1=2] && IIF(!EMPTY(NVL(crsFacturiPrimite.id,0)), [id_efactura=] + ALLTRIM(STR(crsFacturiPrimite.id)), [1=2])
|
||||
lcFiltruOriginal = []
|
||||
llModParam = .T.
|
||||
llAfiseaza = .F.
|
||||
|
||||
* In acest cursor se iau doar detaliile pentru factura curenta
|
||||
gencursor('poFacturiDetalii', 'crsDetaliiFacturiTemp', lcSelect, lcFiltru, lcSchema, lcOrder, llAfiseaza, lcgroup, llModParam, lcFiltruOriginal)
|
||||
poFacturiDetalii.ca_baza1.afisare()
|
||||
|
||||
* In acest cursor se vor adauga detaliile de la factura curenta, daca nu exista
|
||||
* Acest cursor se foloseste in formular
|
||||
SELECT * FROM crsDetaliiFacturiTemp INTO CURSOR crsDetaliiFacturi READWRITE
|
||||
|
||||
* Cursoare helper
|
||||
CREATE CURSOR cTipArticoleP (id I, in_stoc N(1), tip V(50), cont V(4), ordine I)
|
||||
INSERT INTO cTipArticoleP (id, tip, cont, in_stoc, ordine) VALUES (0, 'Nedefinit','', 0, 0)
|
||||
INSERT INTO cTipArticoleP (id, tip, cont, in_stoc, ordine) VALUES (1, 'Mat. nestoc.','604', 0, 1)
|
||||
INSERT INTO cTipArticoleP (id, tip, cont, in_stoc, ordine) VALUES (2, 'Energie','6051', 0, 2)
|
||||
INSERT INTO cTipArticoleP (id, tip, cont, in_stoc, ordine) VALUES (3, 'Apa','6052', 0, 3)
|
||||
INSERT INTO cTipArticoleP (id, tip, cont, in_stoc, ordine) VALUES (4, 'Gaze','6053', 0, 4)
|
||||
INSERT INTO cTipArticoleP (id, tip, cont, in_stoc, ordine) VALUES ( 5, 'Chirii','6123', 0, 5)
|
||||
INSERT INTO cTipArticoleP (id, tip, cont, in_stoc, ordine) VALUES (6, 'Colaboratori','621', 0, 6)
|
||||
INSERT INTO cTipArticoleP (id, tip, cont, in_stoc, ordine) VALUES (7, 'Comisioane','622', 0, 7)
|
||||
INSERT INTO cTipArticoleP (id, tip, cont, in_stoc, ordine) VALUES (8, 'Protocol','623', 0, 8)
|
||||
INSERT INTO cTipArticoleP (id, tip, cont, in_stoc, ordine) VALUES (9, 'Transp. bunuri/pers.','624', 0, 9)
|
||||
INSERT INTO cTipArticoleP (id, tip, cont, in_stoc, ordine) VALUES (10, 'Deplasari','625', 0, 10)
|
||||
INSERT INTO cTipArticoleP (id, tip, cont, in_stoc, ordine) VALUES (11, 'Posta/telecom.','626', 0, 11)
|
||||
INSERT INTO cTipArticoleP (id, tip, cont, in_stoc, ordine) VALUES (12, 'Terti','628', 0, 12)
|
||||
INSERT INTO cTipArticoleP (id, tip, cont, in_stoc, ordine) VALUES (13, 'Altele','461', 0, 13)
|
||||
INSERT INTO cTipArticoleP (id, tip, cont, in_stoc, ordine) VALUES (14, '-----------------','', 0, 14)
|
||||
INSERT INTO cTipArticoleP (id, tip, cont, in_stoc, ordine) VALUES (15, 'Marfuri','371', 1, 15)
|
||||
INSERT INTO cTipArticoleP (id, tip, cont, in_stoc, ordine) VALUES (16, 'Materii prime','301', 1, 16)
|
||||
INSERT INTO cTipArticoleP (id, tip, cont, in_stoc, ordine) VALUES (17, 'Materiale auxiliare','3021', 1, 17)
|
||||
INSERT INTO cTipArticoleP (id, tip, cont, in_stoc, ordine) VALUES (18, 'Ambalaje','381', 1, 18)
|
||||
INSERT INTO cTipArticoleP (id, tip, cont, in_stoc, ordine) VALUES (19, 'Obiecte de inventar','303', 1, 19)
|
||||
INSERT INTO cTipArticoleP (id, tip, cont, in_stoc, ordine) VALUES (20, 'Amenajari provizorii','323', 1, 20)
|
||||
INSERT INTO cTipArticoleP (id, tip, cont, in_stoc, ordine) VALUES (21, 'Mat. spre prelucrare','8032', 1, 21)
|
||||
INSERT INTO cTipArticoleP (id, tip, cont, in_stoc, ordine) VALUES (22, 'Mat. in pastrare/consig.','8033', 1, 22)
|
||||
INSERT INTO cTipArticoleP (id, tip, cont, in_stoc, ordine) VALUES (23, 'Discount financiar intrari','767', 0, 23)
|
||||
INSERT INTO cTipArticoleP (id, tip, cont, in_stoc, ordine) VALUES (24, 'Combustibili','3022', 1, 24)
|
||||
INSERT INTO cTipArticoleP (id, tip, cont, in_stoc, ordine) VALUES (25, 'Piese de schimb','3024', 1, 25)
|
||||
INSERT INTO cTipArticoleP (id, tip, cont, in_stoc, ordine) VALUES (26, 'Alte mat. consumabile','3028', 1, 26)
|
||||
INSERT INTO cTipArticoleP (id, tip, cont, in_stoc, ordine) VALUES (27, 'Discount comercial intrari','609', 0, 27)
|
||||
INSERT INTO cTipArticoleP (id, tip, cont, in_stoc, ordine) VALUES (28, 'Ambalaje SGR','461', 0, 28)
|
||||
|
||||
SELECT cTipArticoleP
|
||||
GO TOP IN cTipArticoleP
|
||||
INDEX on ordine TAG ordine
|
||||
|
||||
CREATE CURSOR cTipArticoleE (id I, in_stoc N(1), tip V(50), cont V(4), ordine I)
|
||||
INSERT INTO cTipArticoleE (id, tip, cont, in_stoc, ordine) VALUES (0, 'Nedefinit','', 0, 0)
|
||||
INSERT INTO cTipArticoleE (id, tip, cont, in_stoc, ordine) VALUES (29, 'Marfuri','707', 1, 1)
|
||||
INSERT INTO cTipArticoleE (id, tip, cont, in_stoc, ordine) VALUES (30, 'Produse finite','701', 1, 2)
|
||||
INSERT INTO cTipArticoleE (id, tip, cont, in_stoc, ordine) VALUES (31, 'Produse reziduale','703', 1, 3)
|
||||
INSERT INTO cTipArticoleE (id, tip, cont, in_stoc, ordine) VALUES (32, 'Semifabricate','702', 1, 4)
|
||||
INSERT INTO cTipArticoleE (id, tip, cont, in_stoc, ordine) VALUES (33, 'Discount financiar iesiri','667', 0, 5)
|
||||
INSERT INTO cTipArticoleE (id, tip, cont, in_stoc, ordine) VALUES (34, 'Servicii vandute','704', 0, 6)
|
||||
INSERT INTO cTipArticoleE (id, tip, cont, in_stoc, ordine) VALUES (35, 'Discount comercial iesiri','709', 0, 7)
|
||||
INSERT INTO cTipArticoleE (id, tip, cont, in_stoc, ordine) VALUES (36, 'Ambalaje SGR','461', 0, 8)
|
||||
|
||||
SELECT cTipArticoleE
|
||||
GO TOP IN cTipArticoleE
|
||||
INDEX on ordine TAG ordine
|
||||
|
||||
IF m.llPrimite
|
||||
SELECT id, tip, cont, in_stoc, ordine FROM cTipArticoleP ORDER BY ordine INTO CURSOR cTip
|
||||
ELSE
|
||||
SELECT id, tip, cont, in_stoc, ordine FROM cTipArticoleE ORDER BY ordine INTO CURSOR cTip
|
||||
ENDIF
|
||||
SELECT cTip
|
||||
INDEX on id TAG id
|
||||
|
||||
*!* llSucces = goExecutor.oExecuta("select id_articol, denumire, codmat from vnom_articole where inactiv = 0", 'cArticole')
|
||||
|
||||
*!* SELECT cArticole
|
||||
*!* INDEX on id_articol TAG id_articol
|
||||
|
||||
llSucces = goExecutor.oExecuta([select distinct nume_gestiune,cgest,id_gestiune,nr_pag,cont from vgest_gestiuni_util where inactiv = 0 and id_util = ] + Alltrim(Str(m.gnIdUtil)), 'cGestiuni')
|
||||
SELECT cGestiuni
|
||||
APPEND BLANK
|
||||
INDEX on id_gestiune TAG id_gest
|
||||
|
||||
select cast(alltrim(nume_gestiune) + '-' + alltrim(nvl(cgest, '')) as V(50)) as nume_gestiune, id_gestiune from cGestiuni order by nume_gestiune into cursor cGestiuni2
|
||||
|
||||
llSucces = goExecutor.oExecuta("select cod_um_iso, um_iso from syn_vnom_um_iso", 'cUMISO')
|
||||
SELECT cUMISO
|
||||
INDEX on cod_um_iso TAG cod_um_iso
|
||||
|
||||
llSucces = goExecutor.oExecuta("select id, um, cod_um_iso, um_iso from vnom_um", 'cUM')
|
||||
SELECT cUM
|
||||
INDEX on id TAG id
|
||||
|
||||
Select crsFacturi
|
||||
loFrmFacturi = Createobject("frm_import_efactura", m.llPrimite)
|
||||
* Do Form frm_import_efactura Name loFrmFacturi Linked With m.llPrimite Noshow
|
||||
|
||||
loFrmFacturi.Show(1)
|
||||
|
||||
Use In (Select('crsFacturi'))
|
||||
Use In (Select('crsDetaliiFacturi'))
|
||||
USE IN (SELECT('crsDetaliiFacturiTemp'))
|
||||
Use In (Select('cTip'))
|
||||
Use In (Select('cArticole'))
|
||||
Use In (Select('cGestiuni'))
|
||||
Use In (Select('cGestiuni2'))
|
||||
Use In (Select('cTip'))
|
||||
Use In (Select('cTipArticoleP'))
|
||||
Use In (Select('cTipArticoleE'))
|
||||
Endproc && vizFacturiPrimite
|
||||
|
||||
**********************
|
||||
* Completez anaf_efactura_detalii.id_articol la importul eFactura
|
||||
**********************
|
||||
PROCEDURE UpdateEFacturaArticolROA
|
||||
LPARAMETERS tnIdEFactura
|
||||
|
||||
Local lcSql, llSucces, lcSelect
|
||||
PRIVATE pnIdArticol, pnId, pnIdGestiune, pcCont
|
||||
|
||||
lcSelect = SELECT()
|
||||
lcSql = "update anaf_efactura_detalii set id_articol = ?pnIdArticol, id_gestiune = ?pnIdGestiune, cont = ?pcCont, acont = ?pcAcont where id = ?pnId"
|
||||
llSucces = .T.
|
||||
|
||||
SELECT id, id_articol, id_gestiune, cont, acont FROM crsDetaliiFacturi INTO CURSOR cArticoleTemp
|
||||
|
||||
SELECT cArticoleTemp
|
||||
SCAN
|
||||
pnId = id
|
||||
pnIdArticol = IIF(EMPTY(NVL(id_articol, 0)), NULL, id_articol)
|
||||
pnIdGestiune = IIF(EMPTY(NVL(id_gestiune, 0)), null, id_gestiune)
|
||||
pcCont = ALLTRIM(NVL(cont, ''))
|
||||
pcAcont = ALLTRIM(NVL(acont, ''))
|
||||
|
||||
llSucces = goExecutor.oExecuta(m.lcSql)
|
||||
IF !m.llSucces
|
||||
EXIT
|
||||
ENDIF
|
||||
ENDSCAN
|
||||
|
||||
USE IN (SELECT('cArticoleTemp'))
|
||||
SELECT (m.lcSelect)
|
||||
|
||||
RETURN m.llSucces
|
||||
ENDPROC && UpdateEFacturaArticolROA
|
||||
|
||||
**********************
|
||||
* Completez anaf_efactura_detalii.id_fact la importul eFactura achizitie
|
||||
**********************
|
||||
PROCEDURE UpdateEFacturaIdFact
|
||||
LPARAMETERS tnIdEFactura, tnIdFact
|
||||
|
||||
Local lcSql, llSucces, lcSelect
|
||||
PRIVATE pnId, pnIdFact
|
||||
|
||||
lcSelect = SELECT()
|
||||
lcSql = "update anaf_efactura set id_fact = ?pnIdFact where id = ?pnId and NVL(id_fact,0) = 0"
|
||||
llSucces = .T.
|
||||
pnId = m.tnIdEfactura
|
||||
pnIdFact = m.tnIdFact
|
||||
|
||||
llSucces = goExecutor.oExecuta(m.lcSql)
|
||||
|
||||
SELECT (m.lcSelect)
|
||||
|
||||
RETURN m.llSucces
|
||||
ENDPROC && UpdateEFacturaIdFact
|
||||
1393
COMUN/programe/importfromxlsx.prg
Normal file
1393
COMUN/programe/importfromxlsx.prg
Normal file
File diff suppressed because it is too large
Load Diff
371
COMUN/programe/ini.prg
Normal file
371
COMUN/programe/ini.prg
Normal file
@@ -0,0 +1,371 @@
|
||||
FUNCTION setini
|
||||
PARAMETER pcinifile, pcsection, ;
|
||||
pcvar, pcval
|
||||
PRIVATE lasect
|
||||
PRIVATE lavars
|
||||
PRIVATE ALL LIKE j*
|
||||
DIMENSION lasect[1], lavars[ 1,3]
|
||||
jlsuccess = .T.
|
||||
IF .NOT. EMPTY(pcinifile)
|
||||
jcfilename = IIF(AT('.', ;
|
||||
pcinifile) > 0, ;
|
||||
pcinifile, ;
|
||||
pcinifile + ;
|
||||
'.INI')
|
||||
pcsection = ALLTRIM(pcsection)
|
||||
pcvar = ALLTRIM(pcvar)
|
||||
pcval = ALLTRIM(pcval)
|
||||
IF FILE(jcfilename)
|
||||
jnhandle = FOPEN(jcfilename, ;
|
||||
2)
|
||||
IF jnhandle < 0
|
||||
jlsuccess = .F.
|
||||
= messagebox( ;
|
||||
'Unable to open file: ' + ;
|
||||
jcfilename, ;
|
||||
'File Open Error', ;
|
||||
0)
|
||||
RETURN jlsuccess
|
||||
ENDIF
|
||||
ELSE
|
||||
jnhandle = -1
|
||||
ENDIF
|
||||
= buildarray(jnhandle, ;
|
||||
@lasect,@lavars)
|
||||
IF jnhandle > -1
|
||||
= FCLOSE(jnhandle)
|
||||
ENDIF
|
||||
jsuccess = buildini(jcfilename, ;
|
||||
pcsection,pcvar, ;
|
||||
pcval,@lasect, ;
|
||||
@lavars)
|
||||
ELSE
|
||||
jlsuccess = .F.
|
||||
ENDIF
|
||||
RETURN jlsuccess
|
||||
ENDFUNC && setini
|
||||
*!*
|
||||
FUNCTION buildini
|
||||
PARAMETER pcfilename, pcsection, ;
|
||||
pcvar, pcval, pasect, ;
|
||||
pavars
|
||||
PRIVATE ALL LIKE j*
|
||||
jlsuccess = .T.
|
||||
jnfhandle = 0
|
||||
jlfoundvar = .F.
|
||||
jnfound = 0
|
||||
IF .NOT. EMPTY(pasect)
|
||||
FOR jncount = 1 TO ;
|
||||
ALEN(pasect, 1)
|
||||
IF UPPER(pasect(jncount)) == ;
|
||||
UPPER(pcsection)
|
||||
jnfound = jncount
|
||||
EXIT
|
||||
ENDIF
|
||||
ENDFOR
|
||||
ENDIF
|
||||
IF jnfound > 0
|
||||
FOR jncount = 1 TO ;
|
||||
ALEN(pavars, 1)
|
||||
IF pavars(jncount,1) == ;
|
||||
pcvar .AND. ;
|
||||
pavars(jncount,3) == ;
|
||||
jnfound
|
||||
pavars[ jncount, ;
|
||||
2] = pcval
|
||||
jlfoundvar = .T.
|
||||
EXIT
|
||||
ENDIF
|
||||
ENDFOR
|
||||
IF .NOT. jlfoundvar
|
||||
IF .NOT. ;
|
||||
EMPTY(pavars(1))
|
||||
jnlen2 = ALEN(pavars, ;
|
||||
1) + 1
|
||||
DIMENSION pavars[ ;
|
||||
jnlen2, ;
|
||||
3]
|
||||
ELSE
|
||||
jnlen2 = 1
|
||||
ENDIF
|
||||
pavars[ jnlen2, 1] = ;
|
||||
pcvar
|
||||
pavars[ jnlen2, 2] = ;
|
||||
pcval
|
||||
pavars[ jnlen2, 3] = ;
|
||||
jnfound
|
||||
ENDIF
|
||||
ELSE
|
||||
IF .NOT. EMPTY(pasect(1))
|
||||
jnlen = ALEN(pasect, 1) + ;
|
||||
1
|
||||
DIMENSION pasect[ ;
|
||||
jnlen]
|
||||
ELSE
|
||||
jnlen = 1
|
||||
ENDIF
|
||||
pasect[ jnlen] = pcsection
|
||||
IF .NOT. EMPTY(pavars(1))
|
||||
jnlen2 = ALEN(pavars, ;
|
||||
1) + 1
|
||||
DIMENSION pavars[ ;
|
||||
jnlen2, 3]
|
||||
ELSE
|
||||
jnlen2 = 1
|
||||
ENDIF
|
||||
pavars[ jnlen2, 1] = pcvar
|
||||
pavars[ jnlen2, 2] = pcval
|
||||
pavars[ jnlen2, 3] = jnlen
|
||||
ENDIF
|
||||
IF FILE(pcfilename)
|
||||
jcoldfile = SUBSTR(pcfilename, ;
|
||||
1, AT('.', ;
|
||||
pcfilename) - 1) + ;
|
||||
'.BAK'
|
||||
IF FILE(jcoldfile)
|
||||
DELETE FILE (jcoldfile)
|
||||
ENDIF
|
||||
RENAME (pcfilename) TO ;
|
||||
(jcoldfile)
|
||||
ENDIF
|
||||
jnfhandle = FCREATE(pcfilename)
|
||||
IF .NOT. jnfhandle == -1 .AND. ;
|
||||
.NOT. EMPTY(pasect)
|
||||
FOR ncount = 1 TO ;
|
||||
ALEN(pasect, 1)
|
||||
IF (';' $ ;
|
||||
pasect(ncount)) .OR. ;
|
||||
EMPTY(pasect(ncount))
|
||||
= FPUTS(jnfhandle, ;
|
||||
pasect(ncount))
|
||||
ELSE
|
||||
= FPUTS(jnfhandle, ;
|
||||
'[' + ;
|
||||
pasect(ncount) + ;
|
||||
']')
|
||||
ENDIF
|
||||
FOR ncount2 = 1 TO ;
|
||||
ALEN(pavars, 1)
|
||||
IF pavars(ncount2, ;
|
||||
3) == ncount
|
||||
= FPUTS(jnfhandle, ;
|
||||
pavars(ncount2, ;
|
||||
1) + ' = ' + ;
|
||||
pavars(ncount2, ;
|
||||
2))
|
||||
ENDIF
|
||||
ENDFOR
|
||||
ENDFOR
|
||||
= FCLOSE(jnfhandle)
|
||||
ELSE
|
||||
= messagebox( ;
|
||||
'Unable to create file: ' + ;
|
||||
jcfilename, ;
|
||||
'File create error',0)
|
||||
jlsuccess = .F.
|
||||
ENDIF
|
||||
RETURN jlsuccess
|
||||
ENDFUNC && buildini
|
||||
*!*
|
||||
FUNCTION buildarray
|
||||
PARAMETER pnfhandle, pasect, ;
|
||||
pavars
|
||||
PRIVATE ALL LIKE j*
|
||||
jnalen = 1
|
||||
jnvarlen = 1
|
||||
IF pnfhandle > -1
|
||||
= FSEEK(pnfhandle, 0)
|
||||
DO WHILE .NOT. ;
|
||||
FEOF(pnfhandle)
|
||||
jcline = FGETS(pnfhandle)
|
||||
IF ';' $ jcline .OR. ;
|
||||
EMPTY(jcline)
|
||||
IF EMPTY(pasect(1))
|
||||
pasect[ 1] = ;
|
||||
jcline
|
||||
ELSE
|
||||
jnalen = ALEN(pasect, ;
|
||||
1) + ;
|
||||
1
|
||||
DIMENSION pasect[ ;
|
||||
jnalen]
|
||||
pasect[ ;
|
||||
jnalen] = ;
|
||||
jcline
|
||||
ENDIF
|
||||
ELSE
|
||||
jnfound1 = AT('[', jcline)
|
||||
jnfound2 = AT(']', jcline)
|
||||
IF jnfound1 > 0 .AND. jnfound2 > 0
|
||||
jcsection = SUBSTR(jcline, ;
|
||||
jnfound1 + ;
|
||||
1, ;
|
||||
jnfound2 - ;
|
||||
2)
|
||||
IF EMPTY(pasect(1))
|
||||
pasect[ ;
|
||||
1] = ;
|
||||
jcsection
|
||||
ELSE
|
||||
jnalen = ;
|
||||
ALEN(pasect, ;
|
||||
1) + 1
|
||||
DIMENSION ;
|
||||
pasect[ ;
|
||||
jnalen]
|
||||
pasect[ ;
|
||||
jnalen] = ;
|
||||
jcsection
|
||||
ENDIF
|
||||
jnalen = ALEN(pasect, ;
|
||||
1)
|
||||
ELSE
|
||||
IF AT('=', ;
|
||||
jcline) > ;
|
||||
0
|
||||
IF EMPTY(pavars(1, ;
|
||||
1))
|
||||
pavars[ ;
|
||||
1, ;
|
||||
1] = ;
|
||||
ALLTRIM(SUBSTR(jcline, ;
|
||||
1, ;
|
||||
AT( ;
|
||||
'=', ;
|
||||
jcline) - ;
|
||||
1))
|
||||
pavars[ ;
|
||||
1, ;
|
||||
2] = ;
|
||||
ALLTRIM(SUBSTR(jcline, ;
|
||||
AT( ;
|
||||
'=', ;
|
||||
jcline) + ;
|
||||
1))
|
||||
pavars[ ;
|
||||
1, ;
|
||||
3] = ;
|
||||
jnalen
|
||||
ELSE
|
||||
jnvarlen = ;
|
||||
ALEN(pavars, ;
|
||||
1) + ;
|
||||
1
|
||||
DIMENSION ;
|
||||
pavars[ ;
|
||||
jnvarlen, ;
|
||||
3]
|
||||
pavars[ ;
|
||||
jnvarlen, ;
|
||||
1] = ;
|
||||
ALLTRIM(SUBSTR(jcline, ;
|
||||
1, ;
|
||||
AT( ;
|
||||
'=', ;
|
||||
jcline) - ;
|
||||
1))
|
||||
pavars[ ;
|
||||
jnvarlen, ;
|
||||
2] = ;
|
||||
ALLTRIM(SUBSTR(jcline, ;
|
||||
AT( ;
|
||||
'=', ;
|
||||
jcline) + ;
|
||||
1))
|
||||
pavars[ ;
|
||||
jnvarlen, ;
|
||||
3] = ;
|
||||
jnalen
|
||||
ENDIF
|
||||
ENDIF
|
||||
ENDIF
|
||||
ENDIF
|
||||
ENDDO
|
||||
ENDIF
|
||||
RETURN .T.
|
||||
ENDFUNC && buildarray
|
||||
*!*
|
||||
FUNCTION getini
|
||||
PARAMETER pcinifile, pcsection, ;
|
||||
pcvar
|
||||
PRIVATE ALL LIKE j*
|
||||
jcretval = ''
|
||||
IF .NOT. EMPTY(pcinifile)
|
||||
jcfilename = IIF(AT('.', ;
|
||||
pcinifile) > 0, ;
|
||||
pcinifile, ;
|
||||
pcinifile + ;
|
||||
'.INI')
|
||||
IF FILE(jcfilename)
|
||||
jnhandle = FOPEN(jcfilename)
|
||||
IF jnhandle < 0
|
||||
jlsuccess = .F.
|
||||
= messagebox( ;
|
||||
'Unable to open file: ' + ;
|
||||
jcfilename, ;
|
||||
'File Open Error', ;
|
||||
0)
|
||||
ELSE
|
||||
pcsection = ALLTRIM(UPPER(pcsection))
|
||||
pcvar = ALLTRIM(UPPER(pcvar))
|
||||
jcretval = readini(@jnhandle, ;
|
||||
pcsection, ;
|
||||
pcvar)
|
||||
= FCLOSE(jnhandle)
|
||||
ENDIF
|
||||
ENDIF
|
||||
ENDIF
|
||||
RETURN jcretval
|
||||
ENDFUNC && getini
|
||||
*!*
|
||||
FUNCTION readini
|
||||
PARAMETER pnfhandle, pcsection, ;
|
||||
pcvar
|
||||
PRIVATE ALL LIKE j*
|
||||
jcline = ''
|
||||
jcsection = ''
|
||||
jnfound1 = 0
|
||||
jnfound2 = 0
|
||||
jnfound3 = 0
|
||||
jnalen = 0
|
||||
jcretval = ''
|
||||
IF .NOT. EMPTY(pnfhandle)
|
||||
= FSEEK(pnfhandle, 0)
|
||||
DO WHILE .NOT. ;
|
||||
FEOF(pnfhandle)
|
||||
jcline = FGETS(pnfhandle)
|
||||
jnfound1 = AT('[', ;
|
||||
jcline)
|
||||
jnfound2 = AT(']', ;
|
||||
jcline)
|
||||
IF jnfound1 > 0 .AND. ;
|
||||
jnfound2 > 0
|
||||
jcsection = UPPER(SUBSTR(jcline, ;
|
||||
jnfound1 + ;
|
||||
1, ;
|
||||
jnfound2 - ;
|
||||
2))
|
||||
ENDIF
|
||||
IF jcsection == ;
|
||||
pcsection
|
||||
jnfound3 = AT('=', ;
|
||||
jcline)
|
||||
IF jnfound3 > 0
|
||||
IF ALLTRIM(UPPER(SUBSTR(jcline, ;
|
||||
1, ;
|
||||
jnfound3 - ;
|
||||
1))) == ;
|
||||
pcvar
|
||||
jcretval = ;
|
||||
ALLTRIM(SUBSTR(jcline, ;
|
||||
jnfound3 + ;
|
||||
1))
|
||||
EXIT
|
||||
ENDIF
|
||||
ENDIF
|
||||
ENDIF
|
||||
ENDDO
|
||||
ENDIF
|
||||
RETURN jcretval
|
||||
ENDFUNC && readini
|
||||
|
||||
148
COMUN/programe/iniacces.prg
Normal file
148
COMUN/programe/iniacces.prg
Normal file
@@ -0,0 +1,148 @@
|
||||
#include comun\include\security.h
|
||||
|
||||
Define Class iniaccess As Custom
|
||||
cIniFile=""
|
||||
|
||||
Function Init
|
||||
This.cIniFile=shortpath(GetIniPath())
|
||||
Endfunc
|
||||
|
||||
Function setCValue
|
||||
Lparameters tcSection, tcSetting, tcValue
|
||||
Local lcFisierIni
|
||||
lcFisierIni = This.cIniFile
|
||||
|
||||
DECLARE INTEGER WritePrivateProfileString ;
|
||||
IN WIN32API ;
|
||||
STRING cSection,STRING cEntry,STRING cEntry,;
|
||||
STRING cFileName
|
||||
|
||||
Return WritePrivateProfileString(tcSection,tcSetting,tcValue,lcFisierIni)
|
||||
Endfunc
|
||||
|
||||
Function getCValue As Character
|
||||
Lparameters tcSection,tcSetting
|
||||
Local lcFisierIni
|
||||
lcFisierIni=This.cIniFile
|
||||
lcBuffer=Space(255)
|
||||
|
||||
DECLARE INTEGER GetPrivateProfileString ;
|
||||
IN WIN32API ;
|
||||
STRING cSection,;
|
||||
STRING cEntry,;
|
||||
STRING cDefault,;
|
||||
STRING @cRetVal,;
|
||||
INTEGER nSize,;
|
||||
STRING cFileName
|
||||
|
||||
GetPrivateProfileString(tcSection,tcSetting,"",@lcBuffer, Len(lcBuffer), lcFisierIni)
|
||||
lcBuffer = Strtran(lcBuffer,Chr(0),"")
|
||||
lcBuffer = Alltrim(lcBuffer)
|
||||
Return lcBuffer
|
||||
Endfunc
|
||||
|
||||
Function setUF
|
||||
Lparameters cUFvalue
|
||||
Return This.setCValue("update","UpdateFrequency",cUFvalue)
|
||||
Endfunc
|
||||
|
||||
Function setNetworkPath
|
||||
Lparameters cNPvalue
|
||||
Return This.setCValue("update","NetworkPath",cNPvalue)
|
||||
Endfunc
|
||||
|
||||
Function setURL
|
||||
Lparameters cURLvalue
|
||||
Return This.setCValue("update","InternetPath",cURLvalue)
|
||||
Endfunc
|
||||
|
||||
Function setUsername
|
||||
Lparameters cUsername
|
||||
Return This.setCValue("update","Username",cUsername)
|
||||
Endfunc
|
||||
|
||||
Function setPassword
|
||||
Lparameters cPassword
|
||||
cPassword=EncryptDecrypt(cPassword, ENCRYPTKEY, "encrypt","blowfish")
|
||||
cPassword=Strconv(cPassword,13)
|
||||
Return This.setCValue("update","Password",cPassword)
|
||||
Endfunc
|
||||
|
||||
Function setPasswordDirect
|
||||
Lparameters cPassword
|
||||
Return This.setCValue("update","Password",cPassword)
|
||||
Endfunc
|
||||
|
||||
Function SetDefault
|
||||
Lparameters cDefaultvalue
|
||||
Return This.setCValue("update","DefaultPath",cDefaultvalue)
|
||||
Endfunc
|
||||
|
||||
Function setLocalExe
|
||||
Lparameters cDefaultvalue
|
||||
Return This.setCValue("update","exepath",cDefaultvalue)
|
||||
Endfunc
|
||||
|
||||
Function setAllowConfirm
|
||||
Lparameters cDefaultvalue
|
||||
Return This.setCValue("update","AllowConfirm",cDefaultvalue)
|
||||
Endfunc
|
||||
|
||||
Function setLastServer
|
||||
Lparameters cLastServer
|
||||
Return This.setCValue("server","last",cLastServer)
|
||||
Endfunc
|
||||
|
||||
Function getUF As Character
|
||||
Return This.getCValue("update","UpdateFrequency")
|
||||
Endfunc
|
||||
|
||||
Function getNetworkPath As Character
|
||||
Return This.getCValue("update","NetworkPath")
|
||||
Endfunc
|
||||
|
||||
Function getLocalExe As Character
|
||||
Return This.getCValue("update","exepath")
|
||||
Endfunc
|
||||
|
||||
Function getURL As Character
|
||||
Return This.getCValue("update","InternetPath")
|
||||
Endfunc
|
||||
|
||||
Function getDefault As Character
|
||||
Return This.getCValue("update","DefaultPath")
|
||||
Endfunc
|
||||
|
||||
Function getUsername As Character
|
||||
Return This.getCValue("update","Username")
|
||||
Endfunc
|
||||
|
||||
Function getPassword As Character
|
||||
Local lcParola
|
||||
lcParola = This.getCValue("update","Password")
|
||||
If Len(lcParola)>0
|
||||
lcParola =Alltrim(Strconv(lcParola ,14))
|
||||
lcParola = EncryptDecrypt(lcParola, ENCRYPTKEY, "decrypt","blowfish")
|
||||
Endif
|
||||
Return lcParola
|
||||
Endfunc
|
||||
|
||||
Function getPasswordDirect As Character
|
||||
Return This.getCValue("update","Password")
|
||||
Endfunc
|
||||
|
||||
Function getAllowConfirm As Boolean
|
||||
Local lcValoare
|
||||
lcValoare = This.getCValue( "update","AllowConfirm")
|
||||
If Upper(lcValoare)=Upper("True")
|
||||
Return .T.
|
||||
Else
|
||||
Return .F.
|
||||
Endif
|
||||
Endfunc
|
||||
|
||||
Function getLastServer As Character
|
||||
Return This.getCValue("server","last")
|
||||
Endfunc
|
||||
|
||||
Enddefine
|
||||
448
COMUN/programe/init_program.prg
Normal file
448
COMUN/programe/init_program.prg
Normal file
@@ -0,0 +1,448 @@
|
||||
&& ------------------------------INCEPUT: Citeste_Cheie ------------------------------
|
||||
*!* Functie: Citeste_Cheie
|
||||
*!* Parametri: tcKey, tcBranch, tcLeafe
|
||||
*!* Data/Ora generarii: 16/02/2004 14:26:22
|
||||
*!* Autor: MARIUS.MUTU
|
||||
FUNCTION Citeste_Cheie
|
||||
LPARAMETERS tcKey, tnBranch, tcLeafe
|
||||
|
||||
LOCAL lcRet,loApi, lcKey, lnBranch, lcLeafe
|
||||
|
||||
lcKey = ALLTRIM(tcKey)
|
||||
lnBranch = tnBranch
|
||||
lcLeafe = ALLTRIM(tcLeafe)
|
||||
lcRet = []
|
||||
|
||||
loApi = CREATE("registry")
|
||||
|
||||
IF loApi.iskey(lcKey, lnBranch)
|
||||
|
||||
loApi.openkey(lcKey, lnBranch,.F.)
|
||||
lcRet = loApi.getkeyvalue(lcLeafe,)
|
||||
ENDIF
|
||||
|
||||
RELEASE loApi
|
||||
RETURN lcRet
|
||||
|
||||
ENDFUNC
|
||||
&& ------------------------------SFARSIT: Citeste_Cheie ------------------------------
|
||||
|
||||
&& ------------------------------INCEPUT: Exista_Branch ------------------------------
|
||||
*!* Functie: Exista_Branch
|
||||
*!* Parametri: tcKey
|
||||
*!* Data/Ora generarii: 18/02/2004 14:01:29
|
||||
*!* Autor: MARIUS.MUTU
|
||||
FUNCTION Exista_Branch
|
||||
LPARAMETERS tcKey, tnBranch,tcCale
|
||||
|
||||
|
||||
LOCAL lcRet,loApi, lcKey, lnBranch
|
||||
|
||||
lccale="serverdate_"+STRTRAN(tcCale,"\","")
|
||||
|
||||
IF EMPTY(tcKey)
|
||||
lcKey = [contafin\] + lccale + [\util]
|
||||
ELSE
|
||||
lcKey = ALLTRIM(tcKey)
|
||||
ENDIF
|
||||
|
||||
IF EMPTY(tnBranch)
|
||||
lnBranch = -2147483647
|
||||
ELSE
|
||||
lnBranch = tnBranch
|
||||
ENDIF
|
||||
|
||||
|
||||
llRet = .F.
|
||||
loApi = CREATE("registry")
|
||||
IF loApi.iskey(lcKey, lnBranch)
|
||||
llRet = .T.
|
||||
ENDIF
|
||||
|
||||
RELEASE loApi
|
||||
|
||||
RETURN llRet
|
||||
|
||||
ENDFUNC
|
||||
&& ------------------------------SFARSIT: Exista_Branch ------------------------------
|
||||
|
||||
&& ------------------------------INCEPUT: Verific_Start ------------------------------
|
||||
*!* Functia: Verific_Start
|
||||
*!* Parametri: tcParam
|
||||
*!* Data/Ora generarii: 16/02/2004 13:32:11
|
||||
*!* Autor: MARIUS.MUTU
|
||||
*!* returneza TRUE daca parametrul trimis codat in binar este egal cu variabila <session> citita din registri
|
||||
FUNCTION Verific_Start
|
||||
LPARAMETERS tcSesiune,tcCale,tcAppName
|
||||
|
||||
LOCAL llRet,loApi, lcKey, lnBranch, lcSesiune
|
||||
|
||||
lccale="serverdate_"+STRTRAN(tcCale,"\","")
|
||||
IF EMPTY(tcAppName)
|
||||
lcAppName = JUSTSTEM(SYS(16,0))
|
||||
ELSE
|
||||
lcAppName = ALLTRIM(tcAppName)
|
||||
ENDIF
|
||||
lcAppName = LOWER(lcAppName)
|
||||
|
||||
*!* lcLog = '1 ' + tcSesiune + ', ' + tcCale +', ' + tcAppName
|
||||
*!* poLog.Log(lcLog,PROGRAM())
|
||||
|
||||
llRet = .T.
|
||||
lcKey = [contafin\]+lccale+[\util]
|
||||
lnBranch = -2147483647
|
||||
lcLeafe = [session]
|
||||
lcSesiune = []
|
||||
|
||||
IF EMPTY(tcSesiune)
|
||||
llRet = .F.
|
||||
|
||||
ELSE
|
||||
lcSesiune = tcSesiune
|
||||
|
||||
lcSesiune2 = VAL(Citeste_Cheie(lcKey, lnBranch, lcLeafe))
|
||||
|
||||
|
||||
|
||||
lcSesiune3 = BINTOC(lcSesiune2,4)
|
||||
|
||||
lcsesiune1=SUBSTR(lcSesiune3,1,1)+SUBSTR(lcSesiune3,3,2)
|
||||
|
||||
lcsesiune1 = STUFF(lcsesiune1,2,0,lcAppName)
|
||||
|
||||
lcSesiune = ALLTRIM(UPPER(lcSesiune))
|
||||
lcSesiune1 = ALLTRIM(UPPER(lcSesiune1))
|
||||
|
||||
lnLen1 = LEN(lcSesiune)
|
||||
lnLen2 = LEN(lcSesiune1)
|
||||
|
||||
lcCar1 = ''
|
||||
lcCar2 = ''
|
||||
FOR i = 1 TO lnLen1
|
||||
lcCar = SUBSTR(lcSesiune,i,1)
|
||||
lcCar1 = lcCar1 + TRANSFORM(ASC(lcCar)) + "_"
|
||||
ENDFOR
|
||||
FOR i = 1 TO lnLen2
|
||||
lcCar = SUBSTR(lcSesiune1,i,1)
|
||||
lcCar2 = lcCar2 + TRANSFORM(ASC(lcCar)) + "_"
|
||||
ENDFOR
|
||||
|
||||
*!* lcLog = '1 ' + lcCar1
|
||||
*!* poLog.Log(lcLog,PROGRAM())
|
||||
*!* lcLog = '2 ' + lcCar2
|
||||
*!* poLog.Log(lcLog,PROGRAM())
|
||||
|
||||
IF LEN(lcSesiune1)>LEN(lcSesiune)
|
||||
lcSesiune1 = LEFT(lcSesiune1,LEN(lcSesiune))
|
||||
ENDIF
|
||||
|
||||
lnLen1 = LEN(lcSesiune)
|
||||
lnLen2 = LEN(lcSesiune1)
|
||||
|
||||
lcCar1 = ''
|
||||
lcCar2 = ''
|
||||
FOR i = 1 TO lnLen1
|
||||
lcCar = SUBSTR(lcSesiune,i,1)
|
||||
lcCar1 = lcCar1 + TRANSFORM(ASC(lcCar)) + "_"
|
||||
ENDFOR
|
||||
FOR i = 1 TO lnLen2
|
||||
lcCar = SUBSTR(lcSesiune1,i,1)
|
||||
lcCar2 = lcCar2 + TRANSFORM(ASC(lcCar)) + "_"
|
||||
ENDFOR
|
||||
|
||||
*!* lcLog = '3 ' + lcCar1
|
||||
*!* poLog.Log(lcLog,PROGRAM())
|
||||
*!* lcLog = '4 ' + lcCar2
|
||||
*!* poLog.Log(lcLog,PROGRAM())
|
||||
|
||||
IF SYS(2007,lcSesiune) # SYS(2007,lcSesiune1)
|
||||
llRet = .F.
|
||||
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
*!* lcLog = '4 llret ' + TRANSFORM(llRet)
|
||||
*!* poLog.Log(lcLog,PROGRAM())
|
||||
|
||||
|
||||
RETURN llRet
|
||||
|
||||
ENDFUNC
|
||||
&& ------------------------------SFARSIT: Verific_Start ------------------------------
|
||||
|
||||
&& ------------------------------INCEPUT: Init_Cale_Temp------------------------------
|
||||
*!* Functia: Init_Cale_Temp
|
||||
*!* Parametri:
|
||||
*!* Data/Ora generarii: 16/02/2004 13:32:11
|
||||
*!* Autor: MARIUS.MUTU
|
||||
*!* citeste directorul temporar din registrii si il creeaza
|
||||
FUNCTION Init_Cale_Temp
|
||||
PARAMETERS tcCale
|
||||
* lccale="serverdate_"+STRTRAN(tccale,"\","")
|
||||
|
||||
LOCAL lcTempPath,loApi, lcKey, lnBranch, lcSesiune
|
||||
llRet = .T.
|
||||
lcKey = [contafin\temporare]
|
||||
* lcKey = [contafin\]+lccale+[\temporare]
|
||||
lnBranch = -2147483647
|
||||
lcLeafe = [temp]
|
||||
|
||||
|
||||
lcTempPath=Citeste_Cheie(lcKey, lnBranch, lcLeafe)
|
||||
|
||||
RETURN lcTempPath
|
||||
|
||||
ENDFUNC
|
||||
&& ------------------------------SFARSIT: Init_Cale_Temp------------------------------
|
||||
|
||||
&& ------------------------------INCEPUT: Init_Cale_Server_Date ------------------------------
|
||||
*!* Functia: Init_Cale_Server_Date
|
||||
*!* Parametri:
|
||||
*!* Data/Ora generarii: 16/02/2004 13:32:11
|
||||
*!* Autor: MARIUS.MUTU
|
||||
*!* citeste calea serverului de date din registri
|
||||
FUNCTION Init_Cale_Server_Date
|
||||
PARAMETERS tcCale
|
||||
lccale="serverdate_"+STRTRAN(tcCale,"\","")
|
||||
LOCAL lcCaleServerDate, loApi, lcKey, lnBranch, lcSesiune
|
||||
lcCaleServerDate= []
|
||||
lcKey = [contafin\]+lccale
|
||||
lnBranch = -2147483647
|
||||
lcLeafe = [cale]
|
||||
|
||||
|
||||
lcCaleServerDate=Citeste_Cheie(lcKey, lnBranch, lcLeafe)
|
||||
|
||||
|
||||
RETURN lcCaleServerDate
|
||||
|
||||
ENDFUNC
|
||||
&& ------------------------------SFARSIT: Init_Cale_Server_Date ------------------------------
|
||||
|
||||
&& ------------------------------INCEPUT: Init_Nume_Utilizator ------------------------------
|
||||
*!* Functia: Init_Nume_Utilizator
|
||||
*!* Parametri:
|
||||
*!* Data/Ora generarii: 16/02/2004 13:32:11
|
||||
*!* Autor: MARIUS.MUTU
|
||||
*!* citeste numele utilizatorului logat la START din registri
|
||||
FUNCTION Init_Nume_Utilizator
|
||||
PARAMETERS tcCale
|
||||
|
||||
LOCAL lcNumeUtilizator, loApi, lcKey, lnBranch, lcSesiune
|
||||
|
||||
lccale="serverdate_"+STRTRAN(tcCale,"\","")
|
||||
lcNumeUtilizator = []
|
||||
lcKey = [contafin\]+lccale+[\util]
|
||||
lnBranch = -2147483647
|
||||
lcLeafe = [nume]
|
||||
|
||||
|
||||
lcNumeUtilizator=Citeste_Cheie(lcKey, lnBranch, lcLeafe)
|
||||
|
||||
|
||||
RETURN lcNumeUtilizator
|
||||
|
||||
ENDFUNC
|
||||
&& ------------------------------SFARSIT: Init_Nume_Utilizator------------------------------
|
||||
&& ------------------------------INCEPUT: Init_Id_Utilizator ------------------------------
|
||||
*!* Functia: Init_Id_Utilizator
|
||||
*!* Parametri:
|
||||
*!* Data/Ora generarii: 16/02/2004 13:32:11
|
||||
*!* Autor: MARIUS.MUTU
|
||||
*!* citeste numele utilizatorului logat la START din registri
|
||||
FUNCTION Init_Id_Utilizator
|
||||
PARAMETERS tcCale
|
||||
|
||||
LOCAL lnId_Utilizator, loApi, lcKey, lnBranch, lcSesiune
|
||||
|
||||
lccale="serverdate_"+STRTRAN(tcCale,"\","")
|
||||
lcNumeUtilizator = []
|
||||
lcKey = [contafin\]+lccale+[\util]
|
||||
lnBranch = -2147483647
|
||||
lcLeafe = [id_util]
|
||||
|
||||
|
||||
lnId_Utilizator=Citeste_Cheie(lcKey, lnBranch, lcLeafe)
|
||||
|
||||
|
||||
RETURN lnId_Utilizator
|
||||
|
||||
ENDFUNC
|
||||
&& ------------------------------SFARSIT: Init_Id_Utilizator ------------------------------
|
||||
&& ------------------------------INCEPUT: Init_Nivel_Utilizator ------------------------------
|
||||
*!* Functia: Init_Nivel_Utilizator
|
||||
*!* Parametri:
|
||||
*!* Data/Ora generarii: 16/02/2004 13:32:11
|
||||
*!* Autor: MARIUS.MUTU
|
||||
*!* citeste nivelul utilizatorului logat la START din registri
|
||||
FUNCTION Init_Nivel_Utilizator
|
||||
PARAMETERS tcCale
|
||||
lccale="serverdate_"+STRTRAN(tcCale,"\","")
|
||||
LOCAL lcNivelUtilizator, loApi, lcKey, lnBranch, lcSesiune
|
||||
lcNumeUtilizator = []
|
||||
lcKey = [contafin\]+lccale+[\prog\]+gcAppName
|
||||
lnBranch = -2147483647
|
||||
lcLeafe = [nivel]
|
||||
|
||||
|
||||
lcNivelUtilizator=Citeste_Cheie(lcKey, lnBranch, lcLeafe)
|
||||
|
||||
|
||||
RETURN lcNivelUtilizator
|
||||
|
||||
ENDFUNC
|
||||
&& ------------------------------SFARSIT: Init_Nume_Utilizator------------------------------
|
||||
|
||||
&& ------------------------------INCEPUT: Init_Nume_Statie------------------------------
|
||||
*!* Functia: Init_Nume_Statie
|
||||
*!* Parametri:
|
||||
*!* Data/Ora generarii: 16/02/2004 13:32:11
|
||||
*!* Autor: MARIUS.MUTU
|
||||
*!* citeste numele statiei
|
||||
FUNCTION Init_Nume_Statie
|
||||
PARAMETERS tcCale
|
||||
lccale="serverdate_"+STRTRAN(tcCale,"\","")
|
||||
LOCAL lcNumeStatie, loApi, lcKey, lnBranch
|
||||
lcNumeStatie= []
|
||||
lcKey = [contafin\]+lccale
|
||||
lnBranch = -2147483647
|
||||
lcLeafe = [numestatie]
|
||||
|
||||
|
||||
lcNumeStatie=Citeste_Cheie(lcKey, lnBranch, lcLeafe)
|
||||
|
||||
|
||||
RETURN lcNumeStatie
|
||||
|
||||
ENDFUNC
|
||||
&& ------------------------------SFARSIT: Init_Nume_Statie
|
||||
|
||||
&& ------------------------------INCEPUT: Init_NumeAlternativ------------------------------
|
||||
*!* Functia: Init_NumeAlternativ
|
||||
*!* Parametri:
|
||||
*!* Data/Ora generarii: 18/02/2004 16:29:11
|
||||
*!* Autor: MARIUS.MUTU
|
||||
*!* citeste nume2 ex: (CONT2003) CASA
|
||||
FUNCTION Init_NumeAlternativ
|
||||
PARAMETERS tcCale,tcAppName
|
||||
LOCAL lcNumeAlternativ, loApi, lcKey, lnBranch
|
||||
lccale="serverdate_"+STRTRAN(tcCale,"\","")
|
||||
IF EMPTY(tcAppName)
|
||||
lcAppName = JUSTSTEM(SYS(16,0))
|
||||
ELSE
|
||||
lcAppName = ALLTRIM(tcAppName)
|
||||
ENDIF
|
||||
|
||||
lcNumeAlternativ= []
|
||||
* lcKey = [contafin\prog\]+gcAppName
|
||||
lcKey = [contafin\]+lccale+[\prog\]+lcAppName
|
||||
lnBranch = -2147483647
|
||||
lcLeafe = [nume2]
|
||||
|
||||
|
||||
lcNumeAlternativ = Citeste_Cheie(lcKey, lnBranch, lcLeafe)
|
||||
|
||||
|
||||
RETURN lcNumeAlternativ
|
||||
|
||||
ENDFUNC
|
||||
&& ------------------------------SFARSIT: Init_NumeAlternativ
|
||||
|
||||
&& ------------------------------INCEPUT: Start_Istoric ------------------------------
|
||||
*!* Functie: Start_Istoric
|
||||
*!* Parametri: tcNumeUtilizator, tcNumeProgram, tcNumeStatie
|
||||
*!* Data/Ora generarii: 08/03/2004 15:31:58
|
||||
*!* Autor: MARIUS.MUTU
|
||||
FUNCTION Start_Istoric
|
||||
LPARAMETERS tcNumeUtilizator, tcNumeProgram, tcNumeStatie, tcCaleIstoric, tcNumeIstoric, tcNumeIds
|
||||
|
||||
lcNumeUtilizator = ALLTRIM(tcNumeUtilizator)
|
||||
lcNumeProgram = ALLTRIM(tcNumeProgram)
|
||||
lcNumeStatie = ALLTRIM(tcNumeStatie)
|
||||
lcCaleIstoric = ADDBS(tcCaleIstoric)
|
||||
lcNumeIstoric = ALLTRIM(tcNumeIstoric)
|
||||
lcNumeIds = ALLTRIM(tcNumeIds)
|
||||
|
||||
lcNume = ALLTRIM(lcNumeIstoric)
|
||||
lcFile = ADDBS(lcCaleIstoric) + lcNumeIstoric + ".dbf"
|
||||
|
||||
IF !FILE(lcFile)
|
||||
RETURN
|
||||
ENDIF
|
||||
|
||||
llUsed = .T.
|
||||
IF !USED('Istoric')
|
||||
USE (lcFile) IN 0 SHARED AGAIN ALIAS Istoric
|
||||
llUsed = .F.
|
||||
ENDIF
|
||||
|
||||
lcFile = ADDBS(lcCaleIstoric) + lcNumeIDS + ".dbf"
|
||||
IF !FILE(lcFile)
|
||||
RETURN
|
||||
ENDIF
|
||||
|
||||
llUsed2 = .T.
|
||||
IF !USED('ids')
|
||||
USE (lcFile) IN 0 SHARED AGAIN ALIAS Ids
|
||||
llUsed2 = .F.
|
||||
ENDIF
|
||||
|
||||
lnNewId = new_id("istoric","id",.T.)
|
||||
SELECT Istoric
|
||||
IF FLOCK()
|
||||
APPEND BLANK
|
||||
REPLACE ID WITH lnNewId, statie WITH lcNUMESTATIE, PROGRAM WITH lcNumeProgram, utilizator WITH lcNumeUtilizator, dataoraint WITH DATETIME()
|
||||
UNLOCK
|
||||
ENDIF
|
||||
|
||||
IF !llUsed
|
||||
USE IN Istoric
|
||||
ENDIF
|
||||
|
||||
IF !llUsed2
|
||||
USE IN ids
|
||||
ENDIF
|
||||
|
||||
RETURN lnNewId
|
||||
|
||||
ENDFUNC
|
||||
&& ------------------------------SFARSIT: Start_Istoric ------------------------------
|
||||
|
||||
&& ------------------------------INCEPUT: End_Istoric ------------------------------
|
||||
*!* Functie: End_Istoric
|
||||
*!* Parametri: tnIdIstoric
|
||||
*!* Data/Ora generarii: 08/03/2004 15:51:32
|
||||
*!* Autor: MARIUS.MUTU
|
||||
FUNCTION End_Istoric
|
||||
LPARAMETERS tnIdIstoric, tcCaleIstoric, tcNumeIstoric
|
||||
|
||||
lcCaleIstoric = ADDBS(tcCaleIstoric)
|
||||
lcNumeIstoric = ALLTRIM(tcNumeIstoric)
|
||||
|
||||
lcNume = ALLTRIM(lcNumeIstoric)
|
||||
lcFile = ADDBS(lcCaleIstoric) + lcNume + ".dbf"
|
||||
IF !FILE(lcFile)
|
||||
RETURN
|
||||
ENDIF
|
||||
|
||||
llUsed = .T.
|
||||
IF !USED('Istoric')
|
||||
USE (lcFile) IN 0 SHARED AGAIN ALIAS Istoric
|
||||
llUsed = .F.
|
||||
ENDIF
|
||||
|
||||
SELECT Istoric
|
||||
LOCATE FOR ID = tnIdIstoric
|
||||
IF FOUND()
|
||||
IF FLOCK()
|
||||
REPLACE dataoraies WITH DATETIME()
|
||||
UNLOCK
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
IF !llUsed
|
||||
USE IN Istoric
|
||||
ENDIF
|
||||
|
||||
ENDFUNC
|
||||
&& ------------------------------SFARSIT: End_Istoric ------------------------------
|
||||
38
COMUN/programe/lista2cursor.prg
Normal file
38
COMUN/programe/lista2cursor.prg
Normal file
@@ -0,0 +1,38 @@
|
||||
PROCEDURE lista2cursor
|
||||
PARAMETERS tcLISTA,tcAlias,tcCol1,tcSeparator
|
||||
&& tcLista este un sir de caractere care contine elementele separate prin <;> default
|
||||
&& tcAlias este cursorul care se completeaza - trebuie dat prin referinta
|
||||
&& tcSeparator separatorul de elemente din tcLista - default este ";" - este optional
|
||||
&& intoarce numarul de elemente gasite
|
||||
|
||||
&& ex: lnNr = lista2array("ana;are;mere",@alista,";")
|
||||
LOCAL Lclista,lcSeparator,lnNRF,lcF1,i
|
||||
|
||||
lcLista=UPPER(ALLT(tcLISTA))
|
||||
IF PARAMETERS()<3 OR EMPTY(tcSeparator)
|
||||
lcSeparator=";"
|
||||
ELSE
|
||||
lcSeparator=ALLTRIM(tcSeparator)
|
||||
ENDIF
|
||||
|
||||
IF RIGHT(Lclista,1)!=lcSeparator
|
||||
Lclista=Lclista+lcSeparator
|
||||
ENDIF
|
||||
|
||||
lnNRF=OCCURS(lcSeparator,lcLista)
|
||||
|
||||
|
||||
FOR i=1 TO lnNRF
|
||||
lcF1=LEFT(lcLista,AT(lcSeparator,lcLista)-1)
|
||||
|
||||
IF i!=lnNRF
|
||||
lcLista=SUBSTR(lcLista,AT(lcSeparator,lcLista)+1)
|
||||
ENDIF
|
||||
|
||||
INSERT INTO (tcAlias) (&tcCol1) VALUES (lcF1)
|
||||
|
||||
ENDFOR
|
||||
|
||||
RETURN lnNrf
|
||||
|
||||
ENDPROC && lista2cursor
|
||||
108
COMUN/programe/locale_genmenu.prg
Normal file
108
COMUN/programe/locale_genmenu.prg
Normal file
@@ -0,0 +1,108 @@
|
||||
* Program: _LOCALE_GENMENU.PRG
|
||||
* Description: Loader to GenMenu.prg to adjust PROMPT and MESSAGE clauses for Localization.
|
||||
* Created: 02/16/2004
|
||||
* Developer: Gregory L Reichert
|
||||
* Copyright: Copyright (c) 2004 GLR software
|
||||
*------------------------------------------------------------
|
||||
|
||||
*--------------------------------------------
|
||||
* Setup instructions.
|
||||
* 1. From the main menu, Open the Options dialogs.
|
||||
* 2. Click the "File Locations" tab.
|
||||
* 3. Locate the "Menu Builder" item in the list.
|
||||
* 4. Doble-Click the "Menu Builder" item.
|
||||
* 5. Change the file reference to point to this file.
|
||||
* 6. Click the "Save as Default" button.
|
||||
* 7. Click the "Ok" button.
|
||||
*--------------------------------------------
|
||||
|
||||
|
||||
PARAMETER m.projdbf, m.recno
|
||||
|
||||
LOCAL cResult, cPath, cc
|
||||
cPath = SET("Path")
|
||||
cc = HOME()+";&cPath"
|
||||
SET PATH TO &cc
|
||||
cResult = GenMenu( (m.projdbf), (m.recno) )
|
||||
SET PATH TO &cPath
|
||||
|
||||
LOCAL MenuName, cMenu
|
||||
LOCAL lcLocaleObjName
|
||||
lcLocaleObjName = [goLocale]
|
||||
|
||||
*--------------------------------------------
|
||||
* Get menu name
|
||||
*--------------------------------------------
|
||||
|
||||
USE IN (SELECT("qMenu"))
|
||||
USE (m.projdbf) AGAIN IN 0 NOUPDATE ALIAS qMenu
|
||||
SELECT qMenu
|
||||
GOTO (m.recno)
|
||||
m.MenuName = qMenu.NAME
|
||||
USE IN qMenu
|
||||
|
||||
*--------------------------------------------
|
||||
* If there is a "*:Locale=Yes" in the Procedure section of
|
||||
* the "View->General Options", setup for translations.
|
||||
*--------------------------------------------
|
||||
SELECT 0
|
||||
lcMenuFile = LEFT(m.projdbf, RAT('\', m.projdbf)) + m.MenuName
|
||||
USE (m.lcMenuFile) AGAIN NOUPDATE ALIAS qMenu
|
||||
GOTO TOP
|
||||
m.Proc = ALLTRIM(qMenu.procedure)
|
||||
USE
|
||||
IF ATC("*:Locale=Yes",m.Proc)>0
|
||||
|
||||
lcMenuFile = STRTRAN(LOWER(lcMenuFile),".mnx",".mpr")
|
||||
|
||||
CREATE CURSOR qMenu (LINE c(250))
|
||||
APPEND FROM (lcMenuFile) TYPE SDF
|
||||
|
||||
LOCAL cLine, i, cMenu
|
||||
cMenu = ""
|
||||
SCAN ALL
|
||||
cLine = ALLTRIM(qMenu.LINE)
|
||||
|
||||
*%% Gregory L Reichert 02/16/2004 LOCALE_GENMENU.PRG : 800 : BUGBUG : Making direct reference to oLocale. It may be on Form or _SCREEN at runtime.
|
||||
DO CASE
|
||||
CASE ATCC([DEFINE PAD ],cLine)>0 AND ATCC([PROMPT "],cLine)>0
|
||||
i = ATCC([PROMPT "],cLine)+7
|
||||
cLine = STUFFC(cLine,i,1, lcLocaleObjName + [.getString("])
|
||||
i = RATC([" COLOR ],cLine,1)
|
||||
cLine = STUFFC(cLine,i,1,[")])
|
||||
CASE ATCC([DEFINE BAR ],cLine)>0 AND ATCC([PROMPT "],cLine)>0
|
||||
i = ATCC([PROMPT "],cLine)+7
|
||||
cLine = STUFFC(cLine,i,1,lcLocaleObjName + [.getString("])
|
||||
i = RATC(["],cLine,1)
|
||||
cLine = STUFFC(cLine,i,1,[")])
|
||||
CASE ATCC([MESSAGE "],cLine)>0
|
||||
i = ATCC([MESSAGE "],cLine)+8
|
||||
cLine = STUFFC(cLine,i,1,lcLocaleObjName + [.getString("])
|
||||
i = ratc(["],cLine,1)
|
||||
cLine = STUFFC(cLine,i,1,[")])
|
||||
CASE ATCC([TITLE "],cLine)>0
|
||||
i = ATCC([TITLE "],cLine)+8
|
||||
cLine = STUFFC(cLine,i,1,lcLocaleObjName + [.getString("])
|
||||
i = ratc(["],cLine,1)
|
||||
cLine = STUFFC(cLine,i,1,[")])
|
||||
CASE ATCC([FOOTER "],cLine)>0
|
||||
i = ATCC([FOOTER "],cLine)+8
|
||||
cLine = STUFFC(cLine,i,1,lcLocaleObjName + [.getString("])
|
||||
i = ratc(["],cLine,1)
|
||||
cLine = STUFFC(cLine,i,1,[")])
|
||||
ENDCASE
|
||||
|
||||
cLine = STRTRAN(cLine,"rat(","rat_c(")
|
||||
cLine = STRTRAN(cLine,"ratc(","ratcc(")
|
||||
cLine = STRTRAN(cLine,"at(","at_c(")
|
||||
cLine = STRTRAN(cLine,"atc(","atcc(")
|
||||
|
||||
cMenu = cMenu + cLine + CHR(13)+CHR(10)
|
||||
ENDSCAN
|
||||
STRTOFILE(cMenu, lcMenuFile, .F.)
|
||||
USE IN qMenu
|
||||
ENDIF
|
||||
|
||||
RETURN m.cResult
|
||||
|
||||
|
||||
84
COMUN/programe/log_mesaje.prg
Normal file
84
COMUN/programe/log_mesaje.prg
Normal file
@@ -0,0 +1,84 @@
|
||||
#DEFINE CRLF CHR(13) + CHR(10)
|
||||
|
||||
DEFINE CLASS log_mesaje as Relation
|
||||
|
||||
cLogFile = ""
|
||||
|
||||
&& ------------------------------INCEPUT: Init ------------------------------
|
||||
*!* Procedura: Init
|
||||
*!* Parametri:
|
||||
*!* Data/Ora generarii: 20/02/2004 12:41:53
|
||||
*!* Autor: MARIUS.MUTU
|
||||
PROCEDURE Init
|
||||
LPARAMETERS tcLogFile, tlAdditive
|
||||
|
||||
LOCAL lcLogFile, llAdditive
|
||||
LOCAL loEx as Exception
|
||||
lcLogFile = IIF(TYPE('tcLogFile') = 'C', m.tcLogFile, ADDBS(SHORTPATH(JUSTPATH(SYS(16,0)))) + "log.txt")
|
||||
this.cLogFile = m.lcLogFile
|
||||
|
||||
SET console off
|
||||
SET TALK OFF
|
||||
|
||||
|
||||
IF PARAMETERS() < 2
|
||||
llAdditive = .T.
|
||||
ELSE
|
||||
llAdditive = tlAdditive
|
||||
ENDIF
|
||||
|
||||
IF FILE(lcLogFile)
|
||||
lcText = TTOC(DATETIME()) + " " + SYS(0) + IIF(TYPE('GCS')='C'," " + GCS,"") + CRLF
|
||||
|
||||
TRY
|
||||
STRTOFILE(lcText, lcLogFile, llAdditive)
|
||||
CATCH TO loEx
|
||||
* nu pot sa scriu in log
|
||||
ENDTRY
|
||||
ENDIF && file(lcLogFile)
|
||||
|
||||
ENDPROC
|
||||
&& ------------------------------SFARSIT: Init ------------------------------
|
||||
|
||||
&& ------------------------------INCEPUT: Log ------------------------------
|
||||
*!* Procedura: Log
|
||||
*!* Parametri: tcText
|
||||
*!* Data/Ora generarii: 20/02/2004 12:48:57
|
||||
*!* Autor: MARIUS.MUTU
|
||||
PROCEDURE Log
|
||||
LPARAMETERS tcText, tcProgram
|
||||
|
||||
LOCAL lcText, lcLogFile
|
||||
LOCAL loEx as Exception
|
||||
lcLogFile = this.cLogFile
|
||||
IF !FILE(lcLogFile)
|
||||
RETURN
|
||||
ENDIF
|
||||
|
||||
SET console off
|
||||
SET TALK OFF
|
||||
|
||||
lcText = IIF(EMPTY(tcText),"",ALLTRIM(tcText))
|
||||
lcProgram = IIF(EMPTY(tcProgram),"",ALLTRIM(tcProgram))
|
||||
lcSpatiu = SPACE(10)
|
||||
lcSeparator = " *** "
|
||||
|
||||
IF FILE(lcLogFile)
|
||||
lcText = TTOC(DATETIME()) + " " + SYS(0) + IIF(TYPE('GCS')='C'," " + GCS,"") + m.lcSeparator + ;
|
||||
IIF(!EMPTY(lcProgram),lcProgram,"") + IIF(!EMPTY(lcText),lcSpatiu+lcText,"") + CRLF
|
||||
|
||||
TRY
|
||||
STRTOFILE(lcText, lcLogFile, .T.)
|
||||
CATCH TO loEx
|
||||
* nu pot sa scriu in log
|
||||
ENDTRY
|
||||
ENDIF && file(lcLogFile)
|
||||
|
||||
ENDPROC
|
||||
&& ------------------------------SFARSIT: Log ------------------------------
|
||||
Procedure WriteLog
|
||||
Lparameters tcText, tcProgram
|
||||
This.Log(m.tcText, m.tcProgram)
|
||||
ENDPROC && WriteLog
|
||||
|
||||
ENDDEFINE && log_mesaje
|
||||
1157
COMUN/programe/makexmlfacturaelectronica.prg
Normal file
1157
COMUN/programe/makexmlfacturaelectronica.prg
Normal file
File diff suppressed because it is too large
Load Diff
439
COMUN/programe/matxtab.prg
Normal file
439
COMUN/programe/matxtab.prg
Normal file
@@ -0,0 +1,439 @@
|
||||
*~ Program...........: MATXTAB.PRG
|
||||
*~ Author............: Valdis Matison
|
||||
*~ Version...........: 2.5
|
||||
*~} Project...........:
|
||||
*~ Created...........: 11/01/93
|
||||
*~ Copyright.........: (c) Matison Consulting Group Inc., 1993
|
||||
*~ 187 Dunblaine Avenue
|
||||
*~ Toronto, Ontario
|
||||
*~ M5M 2S6
|
||||
*~
|
||||
*~ 416-256-4495
|
||||
*~
|
||||
*~) Description.......: Replacement for GENXTAB.prg that ships with FoxPro
|
||||
*~] Dependencies......:
|
||||
*~ Calling Samples...: do MATXTAB with "XTAB", 1, .t., .f., 1, 4, 5, .t., 2, 3, 0, 0, .t., .t., .t., .t.
|
||||
*~ do MATXTAB with "XTAB", 1, .t., .f., 1, 2, 6, .t., 3, 4, 5, 0, .t., .t., .t., .t., la_fldlist, 2, 0, 1
|
||||
*~ Returns...........: If you initialize a variable named LN_RETURN in the calling program
|
||||
*~ this program will return a value in that variable
|
||||
*~ This functionality is incomplete
|
||||
*~
|
||||
*~ 0 = Success!
|
||||
*~ - 1 = Unique column count greater than 256
|
||||
*~ - 2 = Escape pressed, procedure cancelled
|
||||
*~ - 3 = No dbf in current area
|
||||
*~ - 4 = Less than three fields in input dbf
|
||||
*~ - 5 = Too many fields in results table
|
||||
*~ - 6 = Row field must be character
|
||||
*~ - 7 = Column field must be character
|
||||
*~ > 0 returns Foxpro's error code generated by error()
|
||||
*~
|
||||
*~ Major change list.:
|
||||
*~ Future............: Create a front end, DOS/Windows/MAC
|
||||
*~ Notes:............: The error handling is incomplete, the user should decide what errors to trap.
|
||||
*~ Naming convention: First letter "l" denotes local variable
|
||||
*~ Second letter denotes type
|
||||
*~
|
||||
*~ Parameter List....: lc_outfile : Name of the output file
|
||||
*~ lu_struct : 1 means cursor, 2 means table, 3 means array,
|
||||
*~ .t. means cursor, .f. means table
|
||||
*~ if blank, same format as input
|
||||
*~ ll_closein : .t. means close input file, else keep open
|
||||
*~ ll_therm : Included for compatibility with GENXTAB, not used by MATXTAB
|
||||
*~ ln_rowfld : Number of field used for rows - field number
|
||||
*~ ln_cellfld : Column used for individual totals in results table field number
|
||||
*~ ln_colhead : Field used for column headings in XTAB report field number
|
||||
*~ ll_xtotal :.t. means create cross totals, else don't bother
|
||||
*~
|
||||
*~ Differences from Genxtab begin here
|
||||
*~
|
||||
*~ ln_extfld1 : First extra field to go into output
|
||||
*~ ln_extfld2 : Second extra field to go into output
|
||||
*~ ln_extfld3 : Third extra field to go into output
|
||||
*~ ln_extfld4 : Fourth extra field to go into output
|
||||
*~ ll_cnt : Display count for each unique row
|
||||
*~ ll_avg : Display average
|
||||
*~ ll_min : Display minimum
|
||||
*~ ll_max : Display maximum
|
||||
*~ la_uniqcol : name of array passed that has the uniqe column names already in list
|
||||
*~ ln_rowcol : Number of dimensions in the array that's sent down
|
||||
*~ ln_colsort : 0 means smallest to largest
|
||||
*~ 1 means largest to smallest
|
||||
*~ ln_rowsort : 0 means ascending
|
||||
*~ 1 means descending
|
||||
*~
|
||||
|
||||
Parameters lc_outfile, lu_struct, ll_closein, ll_therm, ln_rowfld, ;
|
||||
ln_colhead, ln_cellfld, ll_xtotal, ln_extfld1, ln_extfld2, ;
|
||||
ln_extfld3, ln_extfld4, ll_cnt, ll_avg, ll_min, ll_max, ;
|
||||
la_uniqcol, ln_rowcol, ln_colsort, ln_rowsort
|
||||
|
||||
External Array la_uniqcol
|
||||
|
||||
Private lc_colsort, lc_dbfname, lc_colhead, lc_cellfld, ;
|
||||
ln_dimens, lc_error, lc_escasta, lc_escape, lc_group, ;
|
||||
ln_params, lc_program, lc_rowfld, lc_rowsort, lc_safesta, ;
|
||||
lc_talksta, lc_type, lc_where, ln_uniqcnt
|
||||
|
||||
lc_dbfname = Alias() && Source file taken from alias name
|
||||
lc_error = On( "ERROR" )
|
||||
lc_escasta = Set( "ESCAPE" )
|
||||
lc_escape = On( "ESCAPE" )
|
||||
ln_params = Pcount()
|
||||
lc_safesta = Set( "SAFETY" )
|
||||
lc_talksta = Set( "TALK" )
|
||||
|
||||
lcOutputDir = ADDBS(SYS(2023))
|
||||
|
||||
*On Error Do lo_exit With Error()
|
||||
Set Escape On
|
||||
On Escape Do lo_exit With -2
|
||||
Set Safety Off
|
||||
Set Talk Off
|
||||
|
||||
If Empty( Alias() ) && A file must be open in the selected area
|
||||
Do lo_exit With -3
|
||||
Endif
|
||||
|
||||
If Fcount() < 3 && At least three fields required
|
||||
Do lo_exit With -4
|
||||
Endif
|
||||
|
||||
If ln_params < 1 && Nothing sent down - Determine filename for output
|
||||
lc_outfile = 'XTABX.DBF'
|
||||
Endif
|
||||
|
||||
If ln_params < 2 && No format given for output
|
||||
|
||||
If Isdigit( Left( Justfname( Dbf() ) ,1 ) )
|
||||
lu_struct = 1 && Cursor
|
||||
Else
|
||||
lu_struct = 2 && Table
|
||||
Endif
|
||||
|
||||
Else
|
||||
|
||||
If Type("lu_struct") = "L" && Logical value
|
||||
If lu_struct && True means create a cursor
|
||||
lu_struct = 1
|
||||
Else && False means table
|
||||
lu_struct = 2
|
||||
Endif &&
|
||||
Endif && Logical or numeric value
|
||||
|
||||
Endif && No format given for output
|
||||
|
||||
|
||||
If ln_params < 3 && Close input defaults to yes
|
||||
ll_closein = .T.
|
||||
Endif
|
||||
|
||||
If ln_params < 5 && Number of field for cross tab rows
|
||||
ln_rowfld = 1
|
||||
Endif
|
||||
|
||||
If Type( Field( ln_rowfld ) ) <> "C"
|
||||
On Escape Do lo_exit With -6
|
||||
Endif
|
||||
|
||||
|
||||
If ln_params < 6 && Number of field for columns
|
||||
ln_colhead = 2
|
||||
Endif
|
||||
|
||||
If Type( Field( ln_colhead ) ) <> "C"
|
||||
On Escape Do lo_exit With -7
|
||||
Endif
|
||||
|
||||
If ln_params < 7 && Number of field for cross tab cells
|
||||
ln_cellfld = 3
|
||||
Endif
|
||||
|
||||
If ln_params < 8
|
||||
ll_xtotal = .F.
|
||||
Endif
|
||||
|
||||
If ln_params < 17
|
||||
Private la_uniqcol
|
||||
Dime la_uniqcol(1)
|
||||
Endif
|
||||
|
||||
If ln_params > 17
|
||||
ln_dimens = ln_rowcol
|
||||
Else
|
||||
ln_dimens = 1
|
||||
Endif
|
||||
|
||||
If ln_params > 18
|
||||
Do Case
|
||||
Case ln_colsort = 1
|
||||
lc_colsort = "DESC"
|
||||
|
||||
Otherwise
|
||||
lc_colsort = "ASC"
|
||||
Endcase
|
||||
|
||||
Else
|
||||
lc_colsort = "ASC"
|
||||
Endif
|
||||
|
||||
If ln_params = 20
|
||||
Do Case
|
||||
Case ln_rowsort = 1
|
||||
lc_rowsort = "DESC"
|
||||
|
||||
Otherwise
|
||||
lc_rowsort = "ASC"
|
||||
Endcase
|
||||
|
||||
Else
|
||||
lc_rowsort = "ASC"
|
||||
Endif
|
||||
|
||||
lc_colhead = Field( ln_colhead )
|
||||
lc_cellfld = lc_dbfname + "." + Field( ln_cellfld )
|
||||
lc_group = lc_dbfname + "." + Field( ln_rowfld )
|
||||
lc_program = Program( 1 )
|
||||
ln_return = 0
|
||||
lc_rowfld = lc_group
|
||||
lc_where = "ZZ" + "." + ;
|
||||
lc_colhead + "=" + ;
|
||||
lc_dbfname + "." + ;
|
||||
lc_colhead
|
||||
|
||||
|
||||
*do matshow
|
||||
|
||||
If ln_params < 17
|
||||
|
||||
lc_type = Type( (lc_colhead) )
|
||||
Do Case
|
||||
Case lc_type = "C"
|
||||
|
||||
Select &lc_colhead ;
|
||||
from ( lc_dbfname ) ;
|
||||
order By 1 &lc_colsort ;
|
||||
group By 1 ;
|
||||
into Array la_uniqcol
|
||||
|
||||
Case lc_type = "D"
|
||||
|
||||
Select "D"+Dtoc( &lc_colhead, 1 ) ;
|
||||
from (lc_dbfname) ;
|
||||
order By 1 &lc_colsort ;
|
||||
group By 1 ;
|
||||
into Array la_uniqcol
|
||||
|
||||
lc_where = "ZZ" + "." + ;
|
||||
lc_colhead + "=" + ;
|
||||
"'D' +dtoc(" + ;
|
||||
lc_dbfname + "." + ;
|
||||
"&lc_colhead, 1 )"
|
||||
|
||||
Endcase
|
||||
|
||||
ln_uniqcnt = Alen( la_uniqcol )
|
||||
* If empty cursor
|
||||
IF RECCOUNT(lc_dbfname) = 0
|
||||
ln_uniqcnt = 0
|
||||
ENDIF
|
||||
|
||||
Else
|
||||
|
||||
ln_uniqcnt = Alen( la_uniqcol, ln_dimens )
|
||||
|
||||
Endif
|
||||
|
||||
If ln_uniqcnt >256
|
||||
Do lo_exit With -1
|
||||
Endif
|
||||
|
||||
Dime la_colname[ ln_uniqcnt + 1, 4 ]
|
||||
la_colname[1,1] = lc_colhead
|
||||
la_colname[1,2] = "C"
|
||||
|
||||
If ln_params < 17 && no array sent down
|
||||
la_colname[ 1,3 ] = Len( &lc_colhead )
|
||||
Else
|
||||
la_colname[ 1,3 ] = Len( la_uniqcol[ 1,1 ] ) && What about width ?
|
||||
Endif
|
||||
|
||||
la_colname[1,4] = 0
|
||||
|
||||
|
||||
For ln_k = 2 To ln_uniqcnt + 1
|
||||
la_colname[ ln_k, 1 ] = la_uniqcol[ 1, ln_k-1 ]
|
||||
la_colname[ ln_k, 2 ] = "N"
|
||||
la_colname[ ln_k, 3 ] = 1
|
||||
la_colname[ ln_k, 4 ] = 0
|
||||
Endfor
|
||||
|
||||
Create Cursor ZZ From Array la_colname
|
||||
|
||||
*--Now populate the table with 1's
|
||||
For ln_k = 2 To ln_uniqcnt + 1
|
||||
Insert Into ZZ ( (lc_colhead), (Field(ln_k)) ) ;
|
||||
VALUES (la_colname[ ln_k, 1 ], 1 )
|
||||
Endfor
|
||||
|
||||
*--
|
||||
*-- Now create the cross tab
|
||||
*--
|
||||
|
||||
lc_sqlxtab = "SELECT " + lc_rowfld
|
||||
|
||||
|
||||
If ln_params > 8
|
||||
If ln_extfld1 > 0
|
||||
lc_sqlxtab = lc_sqlxtab + ", " + lc_dbfname + "." + field( ln_extfld1, lc_dbfname )
|
||||
lc_group = lc_group + ", " + lc_dbfname + "." + field( ln_extfld1, lc_dbfname )
|
||||
Endif
|
||||
Endif
|
||||
|
||||
If ln_params > 9
|
||||
If ln_extfld2 > 0
|
||||
lc_sqlxtab = lc_sqlxtab + ", " + lc_dbfname + "." + field( ln_extfld2, lc_dbfname )
|
||||
lc_group = lc_group + ", " + lc_dbfname + "." + field( ln_extfld2, lc_dbfname )
|
||||
Endif
|
||||
Endif
|
||||
|
||||
If ln_params > 10
|
||||
If ln_extfld3 > 0
|
||||
lc_sqlxtab = lc_sqlxtab + ", " + lc_dbfname + "." + field( ln_extfld3, lc_dbfname )
|
||||
lc_group = lc_group + ", " + lc_dbfname + "." + field( ln_extfld3, lc_dbfname )
|
||||
Endif
|
||||
Endif
|
||||
|
||||
If ln_params > 11
|
||||
If ln_extfld4 > 0
|
||||
lc_sqlxtab = lc_sqlxtab + ", " + lc_dbfname + "." + field( ln_extfld4, lc_dbfname )
|
||||
lc_group = lc_group + ", " + lc_dbfname + "." + field( ln_extfld4, lc_dbfname )
|
||||
Endif
|
||||
Endif
|
||||
|
||||
For ln_k = 1 To ln_uniqcnt
|
||||
lc_sqlxtab = lc_sqlxtab + ", " + ;
|
||||
"SUM( " + lc_cellfld + ;
|
||||
"*ZZ." + ;
|
||||
la_uniqcol[ 1, ln_k ] + ") as " + ;
|
||||
la_uniqcol[ ln_dimens, ln_k ]
|
||||
Endfor
|
||||
|
||||
*--
|
||||
*-- Add totals column if required.
|
||||
*-- Add count, average, min, max functions as well
|
||||
*--
|
||||
|
||||
If ll_cnt
|
||||
lc_sqlxtab = lc_sqlxtab + ;
|
||||
", COUNT( " + lc_rowfld + " ) as 'XCNT' "
|
||||
Endif
|
||||
|
||||
If ll_avg
|
||||
lc_sqlxtab = lc_sqlxtab + ;
|
||||
", AVG( " + lc_cellfld + " ) as 'XAVG' "
|
||||
Endif
|
||||
|
||||
If ll_min
|
||||
lc_sqlxtab = lc_sqlxtab + ;
|
||||
", MIN( " + lc_cellfld + " ) as 'XMIN' "
|
||||
Endif
|
||||
|
||||
If ll_max
|
||||
lc_sqlxtab = lc_sqlxtab + ;
|
||||
", MAX( " + lc_cellfld + " ) as 'XMAX' "
|
||||
Endif
|
||||
|
||||
If ll_xtotal
|
||||
lc_sqlxtab = lc_sqlxtab + ;
|
||||
", SUM( " + lc_cellfld + " ) as 'XTOT' "
|
||||
Endif
|
||||
|
||||
lc_sqlxtab = lc_sqlxtab + ;
|
||||
" FROM (lc_dbfname), ZZ " + ;
|
||||
" WHERE &lc_where " + ;
|
||||
" GROUP BY &lc_group " + ;
|
||||
" Order by &lc_group &lc_rowsort " + ;
|
||||
" INTO "
|
||||
|
||||
Do Case
|
||||
Case lu_struct = 2 && output to table
|
||||
lc_sqlxtab = m.lc_sqlxtab + "TABLE " + m.lcOutputDir + lc_outfile
|
||||
|
||||
Case lu_struct = 3 && output to array
|
||||
lc_sqlxtab = lc_sqlxtab + "ARRAY _XTABX "
|
||||
|
||||
Public _xtabx
|
||||
Dime _xtabx[ 1,1 ]
|
||||
|
||||
Otherwise && output to cursor DEFAULT
|
||||
lc_sqlxtab = lc_sqlxtab + "CURSOR " + lc_outfile
|
||||
Endcase
|
||||
|
||||
*-- Run the query
|
||||
|
||||
&lc_sqlxtab
|
||||
|
||||
Do lo_exit With ln_return
|
||||
*-- eop MATXTAB
|
||||
|
||||
|
||||
*~!*********************************************
|
||||
*~!
|
||||
*~! Procedure: lo_exit
|
||||
*~!
|
||||
*~!*********************************************
|
||||
Procedure lo_exit
|
||||
*~ Author............: Valdis Matison
|
||||
*~ Modified by.......:
|
||||
*~} Project...........:
|
||||
*~ Created...........: 11/01/93
|
||||
*~ Copyright.........: (c) Matison Consulting Group Inc., 1993
|
||||
*~) Description.......: Shutdown procedure for MATXTAB
|
||||
*~)
|
||||
*~] Dependencies......:
|
||||
*~ Calling Samples...:
|
||||
*~ Parameter List....: ln_ret : Error code
|
||||
*~ Returns...........:
|
||||
*~ Future ideas......:
|
||||
*~ Major change list.:
|
||||
|
||||
Parameters ln_ret
|
||||
ln_return = ln_ret
|
||||
|
||||
If lc_talksta = "ON"
|
||||
Set Talk On
|
||||
Endif
|
||||
|
||||
If lc_safesta = "ON"
|
||||
Set Safety On
|
||||
Endif
|
||||
|
||||
If lc_escasta = "OFF"
|
||||
Set Escape Off
|
||||
Endif
|
||||
|
||||
*release windows lw_mat
|
||||
Clear Typeahead
|
||||
|
||||
*-- Close input files only if successful
|
||||
If ln_ret = 0
|
||||
USE IN (SELECT('ZZ'))
|
||||
|
||||
If ll_closein && close the input file
|
||||
USE IN (Select(lc_dbfname))
|
||||
Endif
|
||||
IF USED(JUSTSTEM(lc_outfile))
|
||||
Select (lc_outfile)
|
||||
ENDIF
|
||||
Endif
|
||||
|
||||
* On Error &lc_error
|
||||
On Escape &lc_escape
|
||||
|
||||
Return ln_ret
|
||||
|
||||
*--
|
||||
*-- eop lo_exit
|
||||
ENDPROC && lo_exit
|
||||
|
||||
43
COMUN/programe/mesaje.prg
Normal file
43
COMUN/programe/mesaje.prg
Normal file
@@ -0,0 +1,43 @@
|
||||
*_________________________________________
|
||||
PROCEDURE anunta_rezultat
|
||||
LPARAMETERS lcCategorie, lcSursa, lcMesaj, llEroare, llInTabel, lnId_ref
|
||||
IF llInTabel
|
||||
scrie_in_mesaje(lcCategorie, lcSursa, lcMesaj, llEroare, lnId_ref)
|
||||
ELSE
|
||||
DO mesaj With lcMesaj, ''
|
||||
ENDIF
|
||||
ENDPROC
|
||||
|
||||
PROCEDURE scrie_in_mesaje
|
||||
LPARAMETERS lcCategorie, lcSursa, lcMesaj, llEroare, lnId_ref
|
||||
LOCAL lnOrdine
|
||||
SELECT mesaje
|
||||
CALCULATE MAX(ordine) TO m.lnOrdine
|
||||
m.lnOrdine = m.lnOrdine + 1
|
||||
APPEND BLANK
|
||||
replace ordine WITH m.lnOrdine, sursa WITH lcSursa, mesaj WITH lcMesaj, ;
|
||||
eroare WITH llEroare, categorie WITH lcCategorie, id_ref WITH lnId_ref
|
||||
ENDPROC
|
||||
|
||||
PROCEDURE sterge_mesaje
|
||||
ZAP IN mesaje
|
||||
ENDPROC
|
||||
|
||||
PROCEDURE raport_mesaje
|
||||
PARAMETERS tcPerioada
|
||||
PRIVATE pcTitlu,pcPerioada,pcDataOra
|
||||
*!* PRIVATE toFirma
|
||||
*!* SELECT FIRMA
|
||||
*!* LOCATE FOR NFSCURT=FSCURT
|
||||
*!* SCATTER NAME m.toFirma
|
||||
*!* SELECT mesaje
|
||||
*!* IF RECNO() > 0
|
||||
*!* SET ORDER TO ordine
|
||||
*!* REPORT FORM mesaje TO PRINTER PROMPT PREVIEW
|
||||
*!* ENDIF
|
||||
pcTitlu=[VERIFICARE GLOBALA]
|
||||
pcPerioada=[Perioada ]
|
||||
pcdataora = get_ora(2)
|
||||
SELECT crsverificari
|
||||
REPORT FORM rap_mesaje TO PRINTER PROMPT preview
|
||||
ENDPROC
|
||||
74
COMUN/programe/modele/utilizatormodel.prg
Normal file
74
COMUN/programe/modele/utilizatormodel.prg
Normal file
@@ -0,0 +1,74 @@
|
||||
#INCLUDE COMUN.H
|
||||
#INCLUDE MVC.H
|
||||
|
||||
Define Class UtilizatorModel As Custom
|
||||
|
||||
cUtilizator = Null
|
||||
cParola = Null
|
||||
nIdUtil = Null
|
||||
cSex = []
|
||||
lInTura = .F.
|
||||
nNivelAcces = 0 && 1 - ospatar
|
||||
&& 2,3(1+2) - ospatar sef
|
||||
|
||||
Procedure actualizeazaDate
|
||||
Lparameters tcParola,tcCod,tcUtilizator
|
||||
This.cParola = tcParola
|
||||
This.nNivelAcces = Val(Substr(tcCod,1,1))
|
||||
This.cSex = Iif(VAL(Substr(tcCod,2,1))=2,[F],[M])
|
||||
This.lInTura = Iif(VAL(Substr(tcCod,3,1))=0,.F.,.T.)
|
||||
If Empty(tcUtilizator)
|
||||
This.nIdUtil = Val(Substr(tcCod,4,AT([$],tcCod)-4))
|
||||
This.cUtilizator = Substr(tcCod,At([$],tcCod)+1)
|
||||
Else
|
||||
This.nIdUtil = Val(Substr(tcCod,4))
|
||||
This.cUtilizator = tcUtilizator
|
||||
Endif
|
||||
Endproc
|
||||
***********************************************************************
|
||||
Procedure reseteazaDate
|
||||
WITH This
|
||||
.cUtilizator = Null
|
||||
.cParola = Null
|
||||
.nIdUtil = Null
|
||||
.cSex = Null
|
||||
.lInTura = .F.
|
||||
.nNivelAcces = 0
|
||||
ENDWITH
|
||||
Endproc
|
||||
***********************************************************************
|
||||
Function esteAutentificat
|
||||
Return Iif(Isnull(This.nIdUtil),.F.,.T.)
|
||||
Endfunc
|
||||
***********************************************************************
|
||||
Function getUtilizator
|
||||
Return This.cUtilizator
|
||||
Endfunc
|
||||
***********************************************************************
|
||||
Function getIdUtil
|
||||
Return This.nIdUtil
|
||||
Endfunc
|
||||
***********************************************************************
|
||||
FUNCTION getSex
|
||||
RETURN This.cSex
|
||||
ENDFUNC
|
||||
***********************************************************************
|
||||
FUNCTION getNivelAcces
|
||||
RETURN This.nNivelAcces
|
||||
ENDFUNC
|
||||
***********************************************************************
|
||||
PROCEDURE setInTura
|
||||
LPARAMETERS tlInTura
|
||||
This.lInTura = tlInTura
|
||||
ENDPROC
|
||||
***********************************************************************
|
||||
FUNCTION getInTura
|
||||
RETURN This.linTura
|
||||
ENDFUNC
|
||||
***********************************************************************
|
||||
PROCEDURE Release
|
||||
RELEASE This
|
||||
ENDPROC
|
||||
***********************************************************************
|
||||
|
||||
Enddefine && UtilizatorModel
|
||||
58
COMUN/programe/oHeader.prg
Normal file
58
COMUN/programe/oHeader.prg
Normal file
@@ -0,0 +1,58 @@
|
||||
Define Class PSHeader As Header
|
||||
|
||||
cHOrder = ""
|
||||
nOrderColor = Rgb(0,0,255)
|
||||
nNotOrderColor = 0
|
||||
cCallMethod = 'Refresh()'
|
||||
cPictureProp = ''
|
||||
|
||||
Procedure Init
|
||||
Lparameters tcOldCaption, tcFontName, tnOldForeColor, tllOldFontUnderline, tcMethodName, tcOrder, tlOldWordWrap, tcPictureProp
|
||||
|
||||
DoDefault()
|
||||
This.Alignment = 2
|
||||
This.Caption = tcOldCaption
|
||||
This.ForeColor = tnOldForeColor
|
||||
This.FontUnderline = tllOldFontUnderline
|
||||
this.WordWrap = tlOldWordWrap
|
||||
This.FontName = tcFontName
|
||||
This.nNotOrderColor = tnOldForeColor
|
||||
If !Empty(tcMethodName)
|
||||
This.cCallMethod = Alltrim(tcMethodName)
|
||||
ENDIF
|
||||
If !Empty(tcPictureProp)
|
||||
This.cPictureProp = Alltrim(tcPictureProp)
|
||||
Endif
|
||||
*This.cHOrder = Strextract(Lower(This.Name),'grh')
|
||||
IF ([*] $ tcOrder) OR ([+] $ tcOrder) OR ([-] $ tcOrder) OR ([/] $ tcOrder) OR ([(] $ tcOrder)
|
||||
this.cHOrder = []
|
||||
ELSE
|
||||
this.cHOrder = ALLTRIM(tcOrder)
|
||||
ENDIF
|
||||
|
||||
Endproc
|
||||
|
||||
|
||||
Procedure DblClick
|
||||
lcOrder = This.cHOrder
|
||||
|
||||
If !Empty(lcOrder)
|
||||
This.Parent.Parent.SetAll("ForeColor", This.nNotOrderColor, "PSHeader")
|
||||
This.Parent.Parent.SetAll("FontUnderline", .F., "PSHeader")
|
||||
this.Parent.Parent.SetAll("Picture",'',"PSHeader")
|
||||
This.ForeColor = This.nOrderColor
|
||||
This.FontUnderline = .T.
|
||||
lcCallMethod = [THIS.Parent.Parent.] + This.cCallMethod + [(lcOrder)]
|
||||
&lcCallMethod
|
||||
IF !EMPTY(This.cPictureProp)
|
||||
lcPictureName = [THIS.Parent.Parent.] + This.cPictureProp
|
||||
this.Picture = &lcPictureName
|
||||
ENDIF
|
||||
|
||||
Else
|
||||
* Leave as is
|
||||
Endif
|
||||
|
||||
Endproc
|
||||
|
||||
Enddefine
|
||||
100
COMUN/programe/obj2arr.PRG
Normal file
100
COMUN/programe/obj2arr.PRG
Normal file
@@ -0,0 +1,100 @@
|
||||
* Version....: 1.0
|
||||
* Author.....: Maurice de Beijer
|
||||
* Date.......: January 29, 1998
|
||||
* Notice.....: Copyright (c) 1996-1998 ABL, All Rights Reserved.
|
||||
* Compiler...: Visual FoxPro 05.00.00.0415 for Windows
|
||||
* Abstract...: Creates a one dimensional array with a pointer
|
||||
* to all object contained within the object
|
||||
*
|
||||
* Returns....: The number of selected objects
|
||||
*
|
||||
* Parameters.: taTarget
|
||||
* Target array (passed by reference)
|
||||
* taObject
|
||||
* Container object reference
|
||||
*
|
||||
LPARAMETERS taTarget, taObject
|
||||
|
||||
LOCAL lnCount
|
||||
lnCount = 0
|
||||
|
||||
DIMENSION taTarget[1, 1]
|
||||
taTarget = NULL
|
||||
|
||||
*
|
||||
* Make sure an object was passed
|
||||
*
|
||||
IF TYPE('taObject') = 'O' AND !ISNULL(taObject)
|
||||
*
|
||||
* Object passed into recursive call
|
||||
*
|
||||
object2array(@taTarget, taObject)
|
||||
|
||||
IF TYPE('taTarget[1]') = 'O'
|
||||
*
|
||||
* Retun the number of objects
|
||||
*
|
||||
lnCount = ALEN(taTarget, 1)
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
RETURN lnCount
|
||||
|
||||
|
||||
|
||||
|
||||
*-------------------------------------------------------
|
||||
* Function....: Object2Array
|
||||
* Called by...: Obj2Arr
|
||||
*
|
||||
* Abstract....: Creates a one dimensional array with a pointer
|
||||
* to all object contained within the object
|
||||
*
|
||||
* Returns.....: None
|
||||
*
|
||||
* Parameters..: taTarget
|
||||
* Target array (passed by reference)
|
||||
* taObject
|
||||
* Container object reference
|
||||
*
|
||||
* Notes.......:
|
||||
*-------------------------------------------------------
|
||||
PROCEDURE Object2Array(taTarget, taObject)
|
||||
LOCAL ARRAY laMembers[1, 1]
|
||||
LOCAL lnCount, lnI
|
||||
|
||||
*
|
||||
* Make sure the second parameter is an object before adding it to the array
|
||||
*
|
||||
IF TYPE('taObject') = 'O' AND !ISNULL(taObject)
|
||||
IF TYPE('taTarget[1]') = 'O' AND !ISNULL(taTarget[1])
|
||||
*
|
||||
* Increase the array size
|
||||
*
|
||||
lnCount = ALEN(taTarget, 1) + 1
|
||||
DIMENSION taTarget[lnCount]
|
||||
*
|
||||
* Add the current object to the end
|
||||
*
|
||||
taTarget[lnCount] = taObject
|
||||
ELSE
|
||||
*
|
||||
* First object in the array
|
||||
*
|
||||
taTarget[1] = taObject
|
||||
ENDIF
|
||||
|
||||
*
|
||||
* Get all member names
|
||||
*
|
||||
lnCount = AMEMBERS(laMembers, taObject, 2)
|
||||
|
||||
FOR lnI = 1 TO lnCount
|
||||
*
|
||||
* Get all contained objects from the member objects
|
||||
*
|
||||
object2array(@taTarget, EVAL('taObject.' + laMembers[lnI]) )
|
||||
ENDFOR
|
||||
ENDIF
|
||||
|
||||
RETURN
|
||||
330
COMUN/programe/ocasabanca.prg
Normal file
330
COMUN/programe/ocasabanca.prg
Normal file
@@ -0,0 +1,330 @@
|
||||
*!* ocasaban.prg
|
||||
*!* 27.04.2009
|
||||
*!* marius.mutu
|
||||
*!* am mutat viz_bancasa din roacont\programe\ocont2003.prg in comun\programe\ pentru folosire in ROACASA
|
||||
|
||||
*!* 27.08.2018
|
||||
*!* marius.mutu
|
||||
*!* viz_bancasa - test_casa si pentru 5314 reg. casa in valuta (trebuia atentionare pentru sold zilnic negativ
|
||||
|
||||
*********************************************************************************************
|
||||
* PROCEDURE viz_bancasa(tcCont)
|
||||
* Date : 29/11/2005, 12:00:20
|
||||
* author : marius.mutu
|
||||
* description:
|
||||
******************************************* INCEPUT:viz_bancasa *******************************************
|
||||
Procedure viz_bancasa
|
||||
Lparameters tcCont, tlArataInregOperator
|
||||
|
||||
*!* adaugat 08.05.2009
|
||||
*!* alex.lepadatu
|
||||
*!* tlArataInregOperator - daca = .t. atunci se arata doar inregistrarile operatorului
|
||||
*!* 08.05.2009 ^^
|
||||
|
||||
Local lccSelect, lnPrecDeb, lnPrecCred, lnPrecDebval, lnPrecCredval, lnSold
|
||||
Local lcCursor, lcSqlCount, llAfisareTot, llSucces, lnInregistrariAfisare, llValuta
|
||||
Local lcExec, lcSelect, lcSchema, lcFiltru, lcOrder, lnSucces
|
||||
Local lcClasa, lcTitlu, lcck_bancasa_caption, lcck_bancasa_titlu, lcTip
|
||||
LOCAL oreg
|
||||
PRIVATE pnRecCnt, pobancasa
|
||||
Store 0 To lnPrecDeb, lnPrecCred, lnPrecDebval, lnPrecCredval
|
||||
Store "" To pobancasa
|
||||
lccSelect = SELECT()
|
||||
|
||||
If Empty(tcCont) Or !Inlist(tcCont, '5311', '5121', '5314', '5124')
|
||||
lcCont = '5311'
|
||||
lcClasa = "frm_casaban"
|
||||
lcTitlu = "REGISTRUL DE CASA"
|
||||
lcck_bancasa_caption = "Casa"
|
||||
lcck_bancasa_titlu = "Alegeti casa"
|
||||
lcTip = "Casa"
|
||||
Else
|
||||
Local lcCont
|
||||
lcCont = Alltrim(tcCont)
|
||||
Endif
|
||||
llValuta = Inlist(m.lcCont, '5314', '5124')
|
||||
|
||||
*** SETARE CONTEXT BANCASA PENTRU VBANCASA SI VBANCASA_VAL
|
||||
|
||||
*lcExec = [begin cbancasaproc('] + lcCont + [', ]+ALLTRIM(STR(gnluna+gnan*12))+[); end;]
|
||||
lcExec = [begin pack_sesiune.setcont('] + lcCont + ['); end;]
|
||||
|
||||
lnSucces = goExecutor.oExecute(lcExec)
|
||||
If lnSucces < 0
|
||||
amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare')
|
||||
Return
|
||||
Endif
|
||||
|
||||
|
||||
*** VERIFICARI CU BALANTA DE VERIFICARE DUPA CONT
|
||||
Wait Window 'VERIFICARE SOLDURI...' Nowait
|
||||
Do inainte With "REGCASA", lcCont In oinainte_de.prg
|
||||
|
||||
*** VERIFICARE SOLDURI CASA LEI
|
||||
If Inlist(lcCont, '5311', '5314')
|
||||
Wait Window 'TEST CASA...' Nowait
|
||||
Do test_casa With lcCont In oinainte_de.prg
|
||||
Endif
|
||||
|
||||
* Calculez numarul de inregistrari. Daca numarul este mai mic de min(300, gnInregistrariAfisare) afisez toate inregistrarile in loc sa intru cu 1=2
|
||||
lnInregistrariAfisare = Iif(Type('gnInregistrariAfisare') = 'N', m.gnInregistrariAfisare, 300)
|
||||
|
||||
lcSqlCount = [SELECT COUNT(*) as nr FROM balanta_parteneri where an=?gnAn and luna=?gnLuna and CONT in ('] + Alltrim(Strtran(m.lcCont, [,], [','])) + [') ]
|
||||
pnRecCnt = 0
|
||||
llSucces = goExecutor.oSelecteaza2Value(m.lcSqlCount, @pnRecCnt)
|
||||
llAfisareTot = (Nvl(m.pnRecCnt, 0) <= m.lnInregistrariAfisare)
|
||||
|
||||
*** CALCULEZ PRECEDENTE DIN BALANTA DE PARTENERI PENTRU SOLDURI INITIALE
|
||||
lcSelect = [select SUM(precdeb) as precdeb, SUM(preccred) as preccred, ] + ;
|
||||
[SUM(precvaldeb) as precvaldeb, SUM(precvalcred) as precvalcred ] + ;
|
||||
[from ] + gcs + [.balanta_parteneri where cont = '] + lcCont + [' ] + ;
|
||||
[and an = ?gnAn and luna = ?gnLuna ] + gcCondSucursala
|
||||
|
||||
lcCursor = [crsSold]
|
||||
lnSucces = goExecutor.oExecute(lcSelect, lcCursor)
|
||||
If lnSucces < 0
|
||||
amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare')
|
||||
Else
|
||||
Select crsSold
|
||||
Go Top
|
||||
lnPrecDeb = precdeb
|
||||
lnPrecCred = preccred
|
||||
lnPrecDebval = precvaldeb
|
||||
lnPrecCredval = precvalcred
|
||||
Use In crsSold
|
||||
Endif
|
||||
|
||||
*!* modificare v 2.5.40
|
||||
creeaza_cursor_bancasa(m.lcCont, m.glBancasaCum)
|
||||
creeaza_cursor_bancasalista(m.lcCont, .T.)
|
||||
|
||||
Select casban
|
||||
Do Case
|
||||
Case lcCont = '5311'
|
||||
lcClasa = "frm_casaban"
|
||||
lcTitlu = "REGISTRUL DE CASA"
|
||||
lcck_bancasa_caption = "Casa"
|
||||
lcck_bancasa_titlu = "Alegeti casa"
|
||||
lcTip = "Casa"
|
||||
|
||||
Case lcCont = '5121'
|
||||
lcClasa = "frm_casaban"
|
||||
lcTitlu = "REGISTRUL DE BANCA"
|
||||
lcck_bancasa_caption = "Banca"
|
||||
lcck_bancasa_titlu = "Alegeti banca"
|
||||
lcTip = "Banca"
|
||||
|
||||
Case lcCont = '5314'
|
||||
lcClasa = "frm_casaban_val"
|
||||
lcTitlu = "REGISTRUL DE CASA IN VALUTA"
|
||||
lcck_bancasa_caption = "Casa"
|
||||
lcck_bancasa_titlu = "Alegeti casa"
|
||||
lcTip = "Casa"
|
||||
|
||||
Case lcCont = '5124'
|
||||
lcClasa = "frm_casaban_val"
|
||||
lcTitlu = "REGISTRUL DE BANCA IN VALUTA"
|
||||
lcck_bancasa_caption = "Banca"
|
||||
lcck_bancasa_titlu = "Alegeti banca"
|
||||
lcTip = "Banca"
|
||||
|
||||
Endcase
|
||||
Clear Class (lcClasa)
|
||||
|
||||
*oreg=Createobject(lcClasa,lcCont)
|
||||
oreg = Createobject(lcClasa, lcCont, tlArataInregOperator, m.llAfisareTot)
|
||||
|
||||
With oreg
|
||||
.Lb_titlu_alb_b121.Caption = lcTitlu
|
||||
.grid1.cbancasa.header1.Caption = lcck_bancasa_caption
|
||||
.ck_bancasa.Caption = lcck_bancasa_caption
|
||||
.ck_bancasa.titlu = lcck_bancasa_titlu
|
||||
.nrcont = lcCont
|
||||
.tip = lcTip
|
||||
.nprecdebI = lnPrecDeb
|
||||
.npreccredI = lnPrecCred
|
||||
.nprecdebvalI = lnPrecDebval
|
||||
.npreccredvalI = lnPrecCredval
|
||||
Endwith
|
||||
oreg.Show(1)
|
||||
|
||||
Use In (SELECT('casban'))
|
||||
USE IN (SELECT('cBancasaLista'))
|
||||
|
||||
Endproc && viz_bancasa
|
||||
******************************************* SFARSIT: viz_bancasa *******************************************
|
||||
********************************* INCEPUT: raport_regcasa_restrans ****************************
|
||||
Function raport_regcasa_restrans
|
||||
Lparameters tnTip, tlCasa, tcCursorSursa, tcCursorDest
|
||||
Private pnDocAles, pnPartAles
|
||||
Store 0 To pnDocAles, pnPartAles
|
||||
Local llReturn
|
||||
llReturn = .F.
|
||||
|
||||
Select Distinct 0 As ales, fdoc As fel_document, id_fdoc From (tcCursorSursa) ;
|
||||
Where id_fdoc <> 0 ;
|
||||
Order By fel_document Into Cursor crsdocumente Readwrite
|
||||
|
||||
Select Distinct 0 As ales, id_nume As id_part, nume As denumire, cod_fiscal From (tcCursorSursa) ;
|
||||
Where Nvl(id_nume, 0) <> 0 ;
|
||||
Order By denumire, cod_fiscal Into Cursor crsparteneri Readwrite
|
||||
|
||||
If Reccount('crsdocumente') <> 0 And Reccount('crsparteneri') <> 0
|
||||
ofrmcriterii = Createobject('frm_casaban_restrans')
|
||||
ofrmcriterii.Show(1)
|
||||
Else
|
||||
gnButon = 1
|
||||
Endif
|
||||
If gnButon = 1
|
||||
llReturn = .T.
|
||||
If pnDocAles = 0 And pnPartAles = 0
|
||||
If tnTip = 1
|
||||
If tlCasa
|
||||
Select * From (tcCursorSursa) Where nrcrt = 2 Order By dataireg, dataact, cod Into Cursor (tcCursorDest) Readwrite
|
||||
Else
|
||||
Select * From (tcCursorSursa) Where nrcrt = 2 Order By dataact, cod Into Cursor (tcCursorDest) Readwrite
|
||||
Endif
|
||||
Else
|
||||
Select * From (tcCursorSursa) Where nrcrt = 2 Order By dataireg, bancasa, dataact, cod Into Cursor (tcCursorDest) Readwrite
|
||||
Endif
|
||||
Else
|
||||
If tnTip = 1
|
||||
If tlCasa
|
||||
Select dataireg, [] As serie_act, 0 As nract, ;
|
||||
nume, explicatia, nrord, Sum(incasari) As incasari, Sum(plati) As plati, ;
|
||||
scd, ascd, scc, ascc, dataact, Min(cod) As cod, bancasa From (tcCursorSursa) ;
|
||||
Where nrcrt = 2 And id_fdoc In (Select id_fdoc From crsdocumente Where ales = 1 ) And ;
|
||||
id_nume In (Select id_part From crsparteneri Where ales = 1 ) ;
|
||||
Group By 1, 2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 15 ;
|
||||
Union All ;
|
||||
Select dataireg, serie_act, nract, ;
|
||||
nume, explicatia, nrord, incasari, plati, ;
|
||||
scd, ascd, scc, ascc, dataact, cod, bancasa From (tcCursorSursa) ;
|
||||
Where nrcrt = 2 And Not (id_fdoc In (Select id_fdoc From crsdocumente Where ales = 1 ) And ;
|
||||
id_nume In (Select id_part From crsparteneri Where ales = 1)) ;
|
||||
Order By 1, 13, 14 Into Cursor (tcCursorDest) Readwrite
|
||||
Else
|
||||
Select dataireg, [] As serie_act, 0 As nract, ;
|
||||
nume, explicatia, nrord, Sum(incasari) As incasari, Sum(plati) As plati, ;
|
||||
scd, ascd, scc, ascc, dataact, Min(cod) As cod, bancasa From (tcCursorSursa) ;
|
||||
Where nrcrt = 2 And id_fdoc In (Select id_fdoc From crsdocumente Where ales = 1 ) And ;
|
||||
id_nume In (Select id_part From crsparteneri Where ales = 1 ) ;
|
||||
Group By 1, 2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 15 ;
|
||||
Union All ;
|
||||
Select dataireg, serie_act, nract, ;
|
||||
nume, explicatia, nrord, incasari, plati, ;
|
||||
scd, ascd, scc, ascc, dataact, cod, bancasa From (tcCursorSursa) ;
|
||||
Where nrcrt = 2 And Not (id_fdoc In (Select id_fdoc From crsdocumente Where ales = 1 ) And ;
|
||||
id_nume In (Select id_part From crsparteneri Where ales = 1)) ;
|
||||
Order By 13, 14 Into Cursor (tcCursorDest) Readwrite
|
||||
Endif
|
||||
Else
|
||||
Select dataireg, Iif(id_fdoc = gnID_FDOC_BONFISCAL, [], serie_act) As serie_act, ;
|
||||
Iif(id_fdoc = gnID_FDOC_BONFISCAL, 0, nract) As nract, ;
|
||||
nume, explicatia, nrord, Sum(incasari) As incasari, Sum(plati) As plati, ;
|
||||
scd, ascd, scc, ascc, dataact, Min(cod) As cod, bancasa From (tcCursorSursa) ;
|
||||
Where nrcrt = 2 And id_fdoc In (Select id_fdoc From crsdocumente Where ales = 1 ) And ;
|
||||
id_nume In (Select id_part From crsparteneri Where ales = 1 ) ;
|
||||
Group By 1, 2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 15 ;
|
||||
Union All ;
|
||||
Select dataireg, serie_act, nract, ;
|
||||
nume, explicatia, nrord, incasari, plati, ;
|
||||
scd, ascd, scc, ascc, dataact, cod, bancasa From (tcCursorSursa) ;
|
||||
Where nrcrt = 2 And Not (id_fdoc In (Select id_fdoc From crsdocumente Where ales = 1 ) And ;
|
||||
id_nume In (Select id_part From crsparteneri Where ales = 1)) ;
|
||||
Order By 1, 15, 13, 14 Into Cursor (tcCursorDest) Readwrite
|
||||
Endif
|
||||
Endif
|
||||
Endif
|
||||
If Used('crsdocumente')
|
||||
Use In crsdocumente
|
||||
Endif
|
||||
|
||||
If Used('crsparteneri')
|
||||
Use In crsparteneri
|
||||
Endif
|
||||
|
||||
Release ofrmcriterii, pnDocAles, pnPartAles
|
||||
Return llReturn
|
||||
Endfunc && raport_regcasa_restrans
|
||||
********************************* SFARSIT: raport_regcasa_restrans ****************************
|
||||
Procedure creeaza_cursor_bancasa
|
||||
Lparameters tcCont, tlBancasaCum
|
||||
Local lcCursor
|
||||
|
||||
lcCursor = [casban]
|
||||
*** SELECTIE SOLDURI DIN BALANTA PARTENERI SI INREGISTRARI DIN REGISTRUL JURNAL (VBANCASA SI VBANCASA_VAL)
|
||||
lcSchema = [nrcrt n(1),fdoc c(30),dataact d,dataireg d,nract N(20),serie_act c(10),bancasa c(50), id_bancasa N(20), ] + ;
|
||||
[nume c(50), cod_fiscal c(50), reg_comert c(50), explicatia c(100), ] + ;
|
||||
[scd c(4),scc c(4),ascd c(4), ascc c(4),COD N(20),NRORD C(30),NRESP C(30),SUCURSALA C(100),id_nume N(20),id_fdoc N(20),] + ;
|
||||
[incasari n(19,gnPa),plati n(19,gnPa)] + Iif(Inlist(m.tcCont, '5314', '5124'), [,incasval n(19,gnPa),platival n(19,gnPa),numeval C(10), ] + Iif(m.tlBancasaCum, [curs C(100)], [curs N(10,4)]), []) + [,soldcum N(19,gnPa)]
|
||||
|
||||
lcSelect = [select nrcrt,fdoc,dataact,dataireg,nract,serie_act,bancasa,id_bancasa,nume,cod_fiscal,reg_comert,explicatia,] + ;
|
||||
[scd,scc,ascd,ascc,COD,NRORD,NRESP,sucursala,id_nume,id_fdoc,] + ;
|
||||
[incasari,plati] + Iif(Inlist(m.tcCont, '5314', '5124'), [,incasval,platival,numeval,curs], []) + [,CAST(0 as Number(20,4)) as soldcum] + ;
|
||||
[ from vbancasa_] + Alltrim(m.tcCont) + Iif(m.tlBancasaCum, [_CUM], [])
|
||||
|
||||
lcFiltru = [1 = 2]
|
||||
lcOrder = [nrcrt,dataireg,bancasa,cod]
|
||||
llAfisare = .F.
|
||||
lcGroup = ""
|
||||
llModParam = .T.
|
||||
lcFiltruOriginal = ""
|
||||
If Used(lcCursor)
|
||||
Use In (lcCursor)
|
||||
Endif
|
||||
gencursor('pobancasa', lcCursor, lcSelect, lcFiltru, lcSchema, lcOrder, llAfisare, lcGroup, llModParam, lcFiltruOriginal)
|
||||
pobancasa.ca_baza1.afisare()
|
||||
Endproc
|
||||
|
||||
* Cursor lista banci si solduri pentru filtrare in formular frm_casban
|
||||
PROCEDURE creeaza_cursor_bancasalista
|
||||
LPARAMETERS tcCont, tlEmpty
|
||||
LOCAL lcSelect, lcSql, lnIdMax
|
||||
Local llSucces, llValuta
|
||||
lcSelect = SELECT()
|
||||
|
||||
* Creez cursorul banci si solduri pentru filtrare
|
||||
CREATE CURSOR cBancasaLista (bancasa C(250) null, id_bancasa N(20) null, numeval C(10) null, sold N(20,4) null, ord N(1) null)
|
||||
* La prima apelare vreau doar cursorul gol
|
||||
IF m.tlEmpty
|
||||
SELECT (m.lcSelect)
|
||||
RETURN
|
||||
ENDIF
|
||||
|
||||
llValuta = Inlist(m.tcCont, '5314', '5124')
|
||||
lcSql = [select bancasa,id_bancasa,SUM(incasari) as incasari,SUM(plati) as plati,CAST(0 as Number(20,4)) as sold] + Iif(m.llValuta, [,SUM(incasval) as incasval,SUM(platival) as platival,numeval], []) + ;
|
||||
[ from vbancasa_] + Alltrim(m.tcCont) + ;
|
||||
[ group by bancasa,id_bancasa] + Iif(m.llValuta, [,numeval], [])
|
||||
|
||||
llSucces = goExecutor.oExecuta(m.lcSql, 'cSoldTemp')
|
||||
|
||||
IF m.llValuta
|
||||
select 1 AS ord, PADR('TOATE', 250, ' ') as bancasa, 0 as id_bancasa, 'LEI' as numeval, sum(incasari-plati) as sold from cSoldTemp ;
|
||||
UNION ALL ;
|
||||
select 2 AS ord, PADR(numeval, 250, ' ') as bancasa, -1 as id_bancasa, numeval, sum(incasval-platival) as sold from cSoldTemp group by numeval ;
|
||||
UNION ALL ;
|
||||
select 3 AS ord, bancasa, id_bancasa, numeval, sum(incasval-platival) as sold from cSoldTemp group by bancasa, id_bancasa, numeval ;
|
||||
order by 1,3 ;
|
||||
INTO CURSOR cBancaTemp READWRITE
|
||||
ELSE
|
||||
select 1 AS ord, PADR('TOATE', 250, ' ') as bancasa, 0 as id_bancasa, 'LEI' as numeval, sum(incasari-plati) as sold from cSoldTemp ;
|
||||
UNION ALL ;
|
||||
select 3 AS ord, bancasa, id_bancasa, 'LEI' as numeval, sum(incasari-plati) as sold from cSoldTemp group by bancasa, id_bancasa ;
|
||||
order by 1,2 ;
|
||||
INTO CURSOR cBancaTemp READWRITE
|
||||
ENDIF
|
||||
|
||||
CALCULATE MAX(id_bancasa) TO lnIdMax IN cBancaTemp
|
||||
|
||||
* creez un id_bancasa unic pentru fiecare valuta
|
||||
UPDATE cBancaTemp SET id_bancasa = m.lnIdMax + RECNO() WHERE id_bancasa = -1
|
||||
|
||||
USE IN (SELECT('cSoldTemp'))
|
||||
|
||||
SELECT cBancasaLista
|
||||
APPEND FROM DBF('cBancaTemp')
|
||||
USE IN (SELECT('cBancaTemp'))
|
||||
|
||||
SELECT (m.lcSelect)
|
||||
ENDPROC && creeaza_cursor_bancasalista
|
||||
3023
COMUN/programe/ocautare.prg
Normal file
3023
COMUN/programe/ocautare.prg
Normal file
File diff suppressed because it is too large
Load Diff
603
COMUN/programe/ocompensari.prg
Normal file
603
COMUN/programe/ocompensari.prg
Normal file
@@ -0,0 +1,603 @@
|
||||
*!* 27.09.2011
|
||||
*!* marius.mutu
|
||||
*!* create cursor calculcompens in loc de create table
|
||||
*!* #3146 Steaua Nordului
|
||||
|
||||
*!* 31.01.2013
|
||||
*!* marius.mutu
|
||||
*!* calculcompens - tratare facturi cu tva_incasare: calculcompens.tva_incasare_a, id_fact (ex: plata 401 = 542)
|
||||
|
||||
*!* 19.04.2013
|
||||
*!* marius.mutu
|
||||
*!* calculcompens - tva incasare pentru ambele facturi din compensare. ex: 401 = 4111
|
||||
|
||||
*** proceduri introducere in actactan, nu merge pentru sume negative !!!!
|
||||
|
||||
*!* 25.12.2025
|
||||
*!* calculcompens - tratare compensare 5121 = 419 cu cote TVA diferite (proc_tva, id_jtvacol)
|
||||
|
||||
|
||||
*!* 07.01.206
|
||||
*!* calculcompens_part - tratare compensare 419 lei 5121 = 419 cu cote TVA diferite (proc_tva, id_jtvacol)
|
||||
|
||||
******************************************* INCEPUT: calculcompens *******************************************
|
||||
***
|
||||
|
||||
PROCEDURE calculcompens
|
||||
PARAMETERS tcFisD, tcFisC, tnTipOrdonare, tnTipOprire
|
||||
*!* modificare v 2.5.27 : tnTipOrdonare, tnTipOprire
|
||||
*!* tnTipOrdonare - 0/implicit = ordonare descrescator dupa suma
|
||||
*!* 1 = ordonare dupa data
|
||||
*!* tnTipOprire - 0/implicit = cand sum(sumaachi) pentru ambele tabele este 0 ( initial, sum(sumaachi) dintr-un tabel este egala cu sum(sumaachi) din celalalt )
|
||||
*!* 1 = cand sum(sumaachi) pentru unul dintre tabele este 0
|
||||
|
||||
PRIVATE pcCont
|
||||
STORE '' TO pcCont
|
||||
|
||||
LOCAL max1, max2, nract1, nract2, lcFis1, lcFis2, id_fact1, id_fact2, llDefalcTVA, lnMaxTvai, lcOrdine
|
||||
STORE 1 TO max1, max2
|
||||
STORE 0 TO nract1, nract2, id_fact1, id_fact2
|
||||
lnMaxTvai = 0
|
||||
|
||||
lcFisD = ALLTRIM(tcFisD)
|
||||
lcFisC = ALLTRIM(tcFisC)
|
||||
|
||||
*!* modificare v 2.5.26
|
||||
*!* modificare v 2.5.27 : am adaugat lcOrdine
|
||||
*!* SELECT * FROM &lcFisD INTO CURSOR tperecheD READWRITE
|
||||
*!* SELECT * FROM &lcFisC INTO CURSOR tperecheC READWRITE
|
||||
lcOrdine = IIF(EVL(tnTipOrdonare,0)=1,[dataact,nract],[sumaachi desc])
|
||||
SELECT * FROM &lcFisD WHERE ales AND sumaachi <> 0 ORDER BY &lcOrdine INTO CURSOR tperecheD READWRITE
|
||||
SELECT * FROM &lcFisC WHERE ales AND sumaachi <> 0 ORDER BY &lcOrdine INTO CURSOR tperecheC READWRITE
|
||||
*!* modificare v 2.5.26 ^
|
||||
|
||||
*** Aflu daca exista bifa TVA_INCASARE_A intr-unul din fisiere (ex: 401 = 542)
|
||||
*** pentru a putea pune in cursorul rezultat id_fact din fisierul corespunzator
|
||||
*** in cazul compensarilor 401 = 4111, pot fi amandoua facturile cu TVA incasare
|
||||
|
||||
llTvaIncasareD = .F.
|
||||
llTvaIncasareC = .F.
|
||||
select tPerecheD
|
||||
locate for nvl(tva_incasare_a,0) = 1
|
||||
if found()
|
||||
llTvaIncasareD = .T.
|
||||
endif
|
||||
|
||||
select tPerecheC
|
||||
locate for nvl(tva_incasare_a,0) = 1
|
||||
if found()
|
||||
llTvaIncasareC = .T.
|
||||
endif
|
||||
|
||||
llTVAIncasare = m.llTvaIncasareD or m.llTvaIncasareC
|
||||
|
||||
CREATE cursor calculcompensare (nr_doc_d N(14), nr_doc_c N(14), id_factd N(14), id_factc N(14),;
|
||||
ascc c(4), ascd c(4), sumaachi N(20,4), ales l, proc_tva N(5,2), id_jtvacol N(10), proc_tvaD N(5,2), id_jtvacolD N(10), proc_tvaC N(5,2), id_jtvacolC N(10), ;
|
||||
tva_incasare_a N(1), tva_incasare_d N(1), tva_incasare_dtip C(1),tva_incasare_c N(1), tva_incasare_ctip C(1))
|
||||
|
||||
lnRecnoD = 1
|
||||
lnReccountD = Reccount("tPerecheD")
|
||||
Select tperecheD
|
||||
Go Top
|
||||
lnSumaD = sumaachi
|
||||
pcCont = Alltrim(Cont)
|
||||
llDefalcTVAD = .F.
|
||||
lcSelect = [select count(*) as defalcTVA from config_cont_ireg t where cont = ?pcCont and cu_proc_tva = 1]
|
||||
If goExecutor.oExecuta(lcSelect, "crsDefalcTva")
|
||||
Select crsDefalcTVA
|
||||
llDefalcTVAD = defalcTVA >0
|
||||
Use In crsDefalcTVA
|
||||
Endif
|
||||
|
||||
lnRecnoC = 1
|
||||
lnReccountC = Reccount("tPerecheC")
|
||||
Select tperecheC
|
||||
Go Top
|
||||
lnSumaC = sumaachi
|
||||
pcCont = Alltrim(Cont)
|
||||
llDefalcTVAC = .F.
|
||||
lcSelect = [select count(*) as defalcTVA from config_cont_ireg t where cont = ?pcCont and cu_proc_tva = 1]
|
||||
If goExecutor.oExecuta(lcSelect, "crsDefalcTva")
|
||||
Select crsDefalcTVA
|
||||
llDefalcTVAC = defalcTVA >0
|
||||
Use In crsDefalcTVA
|
||||
Endif
|
||||
|
||||
lnSumaCompensata = 0
|
||||
lcTipMaxUrm = []
|
||||
lnSemnSumaD = SIGN(tperecheD.sumaachi)
|
||||
|
||||
*!* am ordonat documentele pereche de pe credit si de pe debit descrescator dupa sume
|
||||
*!* pana ajung la 0 pe ultima inregistrare de pe una dintre tabele, aleg MIN
|
||||
*!* cand am ajuns la 0 pe ultima inregistrare intr-una dintre tabele, iau doar valorile din tabelul celalalt
|
||||
*!* modificare v 2.5.27
|
||||
*!* DO WHILE !(lnRecnoD = lnReccountD AND lnRecnoC = lnReccountC AND lnSumaC = 0 AND lnSumaD = 0)
|
||||
DO WHILE (EVL(tnTipOprire,0) = 0 AND !(lnRecnoD = lnReccountD AND lnRecnoC = lnReccountC AND lnSumaC = 0 AND lnSumaD = 0)) ;
|
||||
OR (EVL(tnTipOprire,0) = 1 AND EMPTY(lcTipMaxUrm))
|
||||
*!* modificare v 2.5.27 ^
|
||||
lcTipMax = lcTipMaxUrm
|
||||
lnSumaCompensata = IIF(lcTipMax=[C],lnSumaD,IIF(lcTipMax=[D],lnSumaC,IIF(EVL(tnTipOprire,0)=1,MIN(ABS(lnSumaC),ABS(lnSumaD)),MIN(lnSumaC,lnSumaD))))
|
||||
lnProc_tva = 0.00
|
||||
lnIdJtvaColoana = 0
|
||||
lnProc_tvaD = 0.00
|
||||
lnIdJtvaColoanaD = 0
|
||||
lnProc_tvaC = 0.00
|
||||
lnIdJtvaColoanaC = 0
|
||||
***-------------------------
|
||||
SELECT tperecheD
|
||||
STORE nract TO nract1
|
||||
id_fact1 = id_fact
|
||||
lcascd = NVL(acont,'')
|
||||
IF cu_tva = 1 AND TYPE('tPerecheD.proc_tva') # 'U' AND llDefalcTVAD
|
||||
lnProc_tva = proc_tva
|
||||
lnIdJtvaColoana = NVL(id_jtva_coloana,0)
|
||||
lnProc_tvaD = proc_tva
|
||||
lnIdJtvaColoanaD = NVL(id_jtva_coloana,0)
|
||||
ENDIF
|
||||
*!* cand tnTipOprire = 1, atunci trebuie sa diminuez sumaachi cu lnSumaCompensata
|
||||
replace sumaachi WITH sumaachi - IIF(EVL(tnTipOprire,0)=1,lnSemnSumaD,1) * lnSumaCompensata
|
||||
lnSumaD = sumaachi
|
||||
Do Case
|
||||
Case lnSumaD = 0 And lnRecNoD <> lnReccountD
|
||||
Skip
|
||||
lnSumaD = sumaachi
|
||||
lnRecNoD = Recno()
|
||||
Case lnSumaD = 0 And lnRecNoD = lnReccountD And EMPTY(lcTipMax)
|
||||
*!* daca am ajuns la ultima inregistrare si am restul 0, atunci trebuie sa iau valorile doar din celalalt tabel
|
||||
*!* pentru urmatoarele note, nu mai fac exigibilizarea de TVA pentru Debit
|
||||
lcTipMaxUrm = [D]
|
||||
Endcase
|
||||
|
||||
***-------------------------
|
||||
SELECT tperecheC
|
||||
STORE nract TO nract2
|
||||
id_fact2 = id_fact
|
||||
lcascc = NVL(acont,'')
|
||||
IF cu_tva = 1 AND TYPE('tPerecheC.proc_tva') # 'U' AND llDefalcTVAC
|
||||
lnProc_tva = proc_tva
|
||||
lnIdJtvaColoana = NVL(id_jtva_coloana,0)
|
||||
lnProc_tvaC = proc_tva
|
||||
lnIdJtvaColoanaC = NVL(id_jtva_coloana,0)
|
||||
ENDIF
|
||||
*!* cand tnTipOprire = 1, atunci trebuie sa diminuez sumaachi cu lnSumaCompensata
|
||||
replace sumaachi WITH sumaachi - IIF(EVL(tnTipOprire,0)=1,lnSemnSumaD*(-1),1) * lnSumaCompensata
|
||||
lnSumaC = sumaachi
|
||||
Do Case
|
||||
Case lnSumaC = 0 And lnRecNoC <> lnReccountC
|
||||
Skip
|
||||
lnSumaC = sumaachi
|
||||
lnRecNoC = Recno()
|
||||
Case lnSumaC = 0 And lnRecNoC = lnReccountC And EMPTY(lcTipMax)
|
||||
*!* daca am ajuns la ultima inregistrare si am restul 0, atunci trebuie sa iau valorile doar din celalalt tabel
|
||||
*!* pentru urmatoarele note, nu mai fac exigibilizarea de TVA pentru Credit
|
||||
lcTipMaxUrm = [C]
|
||||
Endcase
|
||||
|
||||
SELECT calculcompensare
|
||||
IF lnSumaCompensata <> 0
|
||||
APPEND BLANK
|
||||
REPLACE nr_doc_c WITH nract2, ascc WITH lcascc, id_factc WITH id_fact2
|
||||
REPLACE nr_doc_d WITH nract1, ascd WITH lcascd, id_factd WITH id_fact1
|
||||
REPLACE proc_tva WITH lnProc_tva,id_jtvacol WITH lnIdJtvaColoana
|
||||
REPLACE proc_tvaD WITH lnProc_tvaD,id_jtvacolD WITH lnIdJtvaColoanaD
|
||||
REPLACE proc_tvaC WITH lnProc_tvaC,id_jtvacolC WITH lnIdJtvaColoanaC
|
||||
REPLACE sumaachi WITH IIF(EVL(tnTipOprire,0)=1,lnSemnSumaD,1)*lnSumaCompensata
|
||||
REPLACE ales WITH .T.
|
||||
|
||||
if m.llTvaIncasare
|
||||
replace tva_incasare_a with 1
|
||||
endif
|
||||
if m.llTvaIncasareD && AND lcTipMax<>[D] : pusesem conditia ca sa nu mai genereze note de TVA la incasare cand ajungeam pe 0 la ultima inregistrare din cursor
|
||||
replace tva_incasare_d with 1, tva_incasare_dtip with 'D'
|
||||
endif
|
||||
if m.llTvaIncasareC && AND lcTipMax<>[C] : pusesem conditia ca sa nu mai genereze note de TVA la incasare cand ajungeam pe 0 la ultima inregistrare din cursor
|
||||
replace tva_incasare_c with 1, tva_incasare_ctip with 'C'
|
||||
endif
|
||||
ENDIF
|
||||
|
||||
ENDDO
|
||||
*!* modificare v 2.5.26 ^
|
||||
|
||||
USE IN tperecheD
|
||||
USE IN tperecheC
|
||||
RETURN
|
||||
|
||||
***
|
||||
|
||||
******************************************* SFARSIT: calculcompens in lei *******************************************
|
||||
|
||||
******************************************* INCEPUT: calculcompens in valuta - fara sume negative *******************************************
|
||||
|
||||
***
|
||||
|
||||
PROCEDURE calculcompens_valuta
|
||||
PARAMETERS tcFisD, tcFisC
|
||||
|
||||
LOCAL max1, max2, nract1, nract2, lcFis1, lcFis2, id_fact1, id_fact2, llDefalcTVA
|
||||
STORE 1 TO max1,max2
|
||||
STORE 0 TO nract1, nract2, id_fact1, id_fact2
|
||||
PRIVATE pcCont
|
||||
pcCont = ''
|
||||
|
||||
llDefalcTVA = .F.
|
||||
|
||||
lcFisD = ALLTRIM(tcFisD)
|
||||
lcFisC = ALLTRIM(tcFisC)
|
||||
|
||||
SELECT * FROM &lcFisD INTO CURSOR tperecheD READWRITE
|
||||
SELECT * FROM &lcFisC INTO CURSOR tperecheC READWRITE
|
||||
|
||||
CREATE CURSOR calculcompensare (nr_doc_d N(14), nr_doc_c N(14),id_factd N(14), id_factc N(14),;
|
||||
ascc c(4), ascd c(4), sumaachi2 N(20,4), achilei N(20,4), id_jtvacol N(10), proc_tva N(5,2), ;
|
||||
sumaachid N(20,4), sumaachic N(20,4), cursd N(12,4), cursc N(12,4), difplus N(20,4), ;
|
||||
difminus N(20,4), cursval N(12,4), cursdif N(12,4), ales l)
|
||||
|
||||
DO WHILE max1!=0 AND max2!=0
|
||||
lnProc_tva = 0.00
|
||||
lnIdJtvaColoana = 0
|
||||
SELECT tperecheC
|
||||
CALCULATE MAX(sumaachi2) FOR ales TO max2
|
||||
*WAIT WINDOW 'max2'+STR(max2)
|
||||
SELECT tperecheD
|
||||
CALCULATE MAX(sumaachi2) FOR ales TO max1
|
||||
*WAIT WINDOW 'max1'+STR(max1)
|
||||
|
||||
***-------------------------
|
||||
|
||||
SELECT tperecheD
|
||||
GO TOP
|
||||
pcCont = ALLTRIM(CONT)
|
||||
|
||||
llDefalcTVA = .F.
|
||||
lcSelect = [select count(*) as defalcTVA from config_cont_ireg t where cont = ?pcCont and cu_proc_tva = 1]
|
||||
lnSucces = goExecutor.oExecute(lcSelect, "crsDefalcTva")
|
||||
IF lnSucces < 0
|
||||
AMESSAGEBOX(goExecutor.cEroare,0+16,'Eroare')
|
||||
ELSE
|
||||
SELECT crsDefalcTVA
|
||||
llDefalcTVA = defalcTVA >0
|
||||
|
||||
IF USED('crsDefalcTVA')
|
||||
USE IN crsDefalcTVA
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
***-------------------------
|
||||
SELECT tperecheD
|
||||
LOCATE FOR sumaachi2 = max1 AND ales
|
||||
nract1 = nract
|
||||
id_fact1 = id_fact
|
||||
lcascd = NVL(acont,'')
|
||||
lnCursD = cursschimb
|
||||
IF TYPE('tPerecheD.proc_tva') # 'U' AND llDefalcTVA
|
||||
lnProc_tva = proc_tva
|
||||
lnIdJtvaColoana = NVL(id_jtva_coloana,0)
|
||||
ENDIF
|
||||
|
||||
IF max1 <= max2
|
||||
lnSumaleiD = sumaachi
|
||||
REPLACE sumaachi2 WITH 0
|
||||
REPLACE ales WITH .F.
|
||||
|
||||
ELSE
|
||||
lnSumaleiD = ROUND(cursschimb * max2, gnPC)
|
||||
IF lnSumaleiD > sumaachi
|
||||
lnSumaleiD = sumaachi
|
||||
ENDIF
|
||||
REPLACE sumaachi2 WITH max1 - max2
|
||||
REPLACE sumaachi WITH sumaachi - lnSumaleiD
|
||||
ENDIF
|
||||
|
||||
***-------------------------
|
||||
|
||||
SELECT tperecheC
|
||||
GO TOP
|
||||
pcCont = ALLTRIM(CONT)
|
||||
|
||||
llDefalcTVA = .F.
|
||||
lcSelect = [select count(*) as defalcTVA from config_cont_ireg t where cont = ?pcCont and cu_proc_tva = 1]
|
||||
lnSucces = goExecutor.oExecute(lcSelect, "crsDefalcTva")
|
||||
IF lnSucces < 0
|
||||
AMESSAGEBOX(goExecutor.cEroare,0+16,'Eroare')
|
||||
ELSE
|
||||
SELECT crsDefalcTVA
|
||||
llDefalcTVA = defalcTVA >0
|
||||
|
||||
IF USED('crsDefalcTVA')
|
||||
USE IN crsDefalcTVA
|
||||
ENDIF
|
||||
ENDIF
|
||||
***-------------------------
|
||||
|
||||
SELECT tperecheC
|
||||
LOCATE FOR sumaachi2 = max2 AND ales
|
||||
nract2 = nract
|
||||
id_fact2 = id_fact
|
||||
lcascc = NVL(acont,'')
|
||||
lnCursC = cursschimb
|
||||
|
||||
IF TYPE('tPerecheC.proc_tva') # 'U' AND llDefalcTVA
|
||||
lnProc_tva = proc_tva
|
||||
lnIdJtvaColoana = NVL(id_jtva_coloana,0)
|
||||
ENDIF
|
||||
|
||||
IF max2 <= max1
|
||||
lnSumaleiC = sumaachi
|
||||
REPLACE sumaachi2 WITH 0
|
||||
REPLACE ales WITH .F.
|
||||
|
||||
ELSE
|
||||
lnSumaleiC = ROUND(cursschimb * max1, gnPC)
|
||||
IF lnSumaleiC > sumaachi
|
||||
lnSumaleiC = sumaachi
|
||||
ENDIF
|
||||
REPLACE sumaachi2 WITH max2 - max1
|
||||
REPLACE sumaachi WITH sumaachi - lnSumaleiC
|
||||
ENDIF
|
||||
|
||||
|
||||
|
||||
|
||||
SELECT calculcompensare
|
||||
IF MIN(max1, max2) <> 0
|
||||
APPEND BLANK
|
||||
REPLACE nr_doc_c WITH nract2, id_factc WITH id_fact2, ascc WITH lcascc, sumaachic WITH lnSumaleiC, cursc WITH lnCursC
|
||||
REPLACE nr_doc_d WITH nract1, id_factd WITH id_fact1,ascd WITH lcascd, sumaachid WITH lnSumaleiD, cursd WITH lnCursD
|
||||
REPLACE sumaachi2 WITH MIN(max1, max2),proc_tva WITH lnProc_tva,id_jtvacol WITH lnIdJtvaColoana
|
||||
REPLACE ales WITH .T.
|
||||
ENDIF
|
||||
ENDDO
|
||||
|
||||
SELECT calculcompensare
|
||||
SCAN
|
||||
IF sumaachid > sumaachic
|
||||
REPLACE difplus WITH sumaachid - sumaachic, achilei WITH sumaachic, cursval WITH cursc, cursdif WITH cursd
|
||||
ELSE
|
||||
REPLACE difminus WITH sumaachic - sumaachid, achilei WITH sumaachid, cursval WITH cursd, cursdif WITH cursc
|
||||
ENDIF
|
||||
ENDSCAN
|
||||
|
||||
USE IN tperecheD
|
||||
USE IN tperecheC
|
||||
|
||||
RETURN
|
||||
******************************************* SFARSIT: calculcompens - fara sume negative *******************************************
|
||||
|
||||
***
|
||||
|
||||
|
||||
|
||||
*!* PROCEDURE calculcompens_valuta
|
||||
*!* PARAMETERS tcFisD, tcFisC
|
||||
|
||||
*!* LOCAL max1, max2, nract1, nract2, lcFis1, lcFis2
|
||||
*!* STORE 1 TO max1,max2
|
||||
*!* STORE 0 TO nract1,nract2
|
||||
|
||||
*!* lcFisD = ALLTRIM(tcFisD)
|
||||
*!* lcFisC = ALLTRIM(tcFisC)
|
||||
|
||||
*!* SELECT * from &lcfisd INTO CURSOR tperecheD READWRITE
|
||||
*!* SELECT * from &lcfisc INTO CURSOR tperecheC READWRITE
|
||||
|
||||
*!* CREATE TABLE &gcTempPath\calculcompensare.dbf (nr_doc_d n(14), nr_doc_c n(14), ascc c(4), ascd c(4), sumaachi2 n(16,2), achilei n(16,2), ;
|
||||
*!* sumaachid n(16,2), sumaachic n(16,2), cursd n(8,2), cursc n(8,2), difplus n(16,2), difminus n(16,2), cursval n(8,2), cursdif n(8,2), ales l)
|
||||
*!*
|
||||
*!* DO WHILE max1!=0 OR max2!=0
|
||||
*!* SELECT tperecheC
|
||||
*!* CALCULATE MAX(sumaachi2) FOR ales AND sumaachi2 <> 0 TO max2
|
||||
*!* *WAIT WINDOW 'max2'+STR(max2)
|
||||
*!* SELECT tperecheD
|
||||
*!* CALCULATE MAX(sumaachi2) FOR ales AND sumaachi2 <> 0 TO max1
|
||||
*!* *WAIT WINDOW 'max1'+STR(max1)
|
||||
|
||||
*!* SELECT tperecheD
|
||||
*!* LOCATE FOR sumaachi2 = max1 AND ales
|
||||
*!* nract1 = nract
|
||||
*!* lcascd = acont
|
||||
*!* lnCursD = cursschimb
|
||||
|
||||
*!* if (max1 <= max2 OR max2 = 0) AND max1 <> 0
|
||||
*!* lnSumaleiD = sumaachi
|
||||
*!* REPLACE sumaachi2 WITH 0
|
||||
*!* * REPLACE ales WITH .f.
|
||||
*!*
|
||||
*!* ELSE
|
||||
*!* lnSumaLeiD = ROUND(cursschimb * max2, 0)
|
||||
*!* IF lnSumaLeiD > sumaachi
|
||||
*!* lnSumaLeiD = sumaachi
|
||||
*!* ENDIF
|
||||
*!* REPLACE sumaachi2 WITH max1 - max2
|
||||
*!* REPLACE sumaachi WITH sumaachi - lnSumaLeiD
|
||||
*!* ENDIF
|
||||
*!*
|
||||
*!* SELECT tperecheC
|
||||
*!* LOCATE FOR sumaachi2 = max2 AND ales
|
||||
*!* nract2 = nract
|
||||
*!* lcascc = acont
|
||||
*!* lnCursC = cursschimb
|
||||
*!*
|
||||
*!* if (max2 <= max1 OR max1 = 0) AND max2 <> 0
|
||||
*!* lnSumaleiC = sumaachi
|
||||
*!* REPLACE sumaachi2 WITH 0
|
||||
*!* * REPLACE ales WITH .f.
|
||||
*!*
|
||||
*!* ELSE
|
||||
*!* lnSumaLeiC = ROUND(cursschimb * max1, 0)
|
||||
*!* IF lnSumaLeiC > sumaachi
|
||||
*!* lnSumaLeiC = sumaachi
|
||||
*!* ENDIF
|
||||
*!* REPLACE sumaachi2 WITH max2 - max1
|
||||
*!* REPLACE sumaachi WITH sumaachi - lnSumaLeiC
|
||||
*!* ENDIF
|
||||
*!*
|
||||
*!*
|
||||
*!* SELECT calculcompensare
|
||||
*!* IF max1 <> 0 OR max2 <> 0
|
||||
*!* APPEND BLANK
|
||||
*!* REPLACE nr_doc_c WITH nract2, ascc WITH lcAscc, sumaAchiC WITH lnSumaleiC, cursC WITH lnCursC
|
||||
*!* REPLACE nr_doc_d WITH nract1, ascd WITH lcAscd, sumaAchiD WITH lnSumaleiD, cursD WITH lnCursD
|
||||
*!* IF MIN(max1, max2) <> 0
|
||||
*!* REPLACE sumaachi2 WITH MIN(max1, max2)
|
||||
*!* ELSE
|
||||
*!* REPLACE sumaachi2 WITH MAX(max1, max2)
|
||||
*!* ENDIF
|
||||
*!* REPLACE ales WITH .t.
|
||||
*!* ENDIF
|
||||
*!* ENDDO
|
||||
|
||||
*!* SELECT calculcompensare
|
||||
*!* SCAN
|
||||
*!* IF sumaAchiD > sumaAchiC
|
||||
*!* REPLACE difplus WITH sumaAchiD - sumaAchiC, achilei WITH sumaAchiC, cursval WITH cursC, cursdif WITH cursD
|
||||
*!* ELSE
|
||||
*!* REPLACE difminus WITH sumaAchiC - sumaAchiD, achilei WITH sumaAchiD, cursval WITH cursD, cursdif WITH cursC
|
||||
*!* ENDIF
|
||||
*!* ENDSCAN
|
||||
|
||||
*!* USE IN tperecheD
|
||||
*!* USE IN tperecheC
|
||||
|
||||
*!* RETURN
|
||||
*********************************************** SFARSIT calculcompens in valuta ******************************************
|
||||
Function calculcompens_part
|
||||
Lparameters tcCont, tnProcTva, tlValuta, tnIdValuta, tnIdValuta2, tcNumeVal2
|
||||
&& partea in valuta nu este testata
|
||||
Local llReturn, lnTip, lcCursorIregPart, lcCursorSumeNegative, lcCursorSumePozitive, lcCursorCalculCompensare, ;
|
||||
lcCursorCalculCompensareTemp, lcCont, lcCond, lnIdPart, ;
|
||||
lnFelCont, lnPozitie, lcSumaAchi, lcSelectie, lcSelectie1, lcSelectie2
|
||||
lcCursorIregPart = Sys(2015)
|
||||
lcCursorSumeNegative = Sys(2015)
|
||||
lcCursorSumePozitive = Sys(2015)
|
||||
lcCursorCalculCompensare = [calculcompensare]
|
||||
lcCursorCalculCompensareTemp = SYS(2015)
|
||||
lcCont = Alltrim(tcCont)
|
||||
lcCond = [ an = ] + Alltrim(Str(gnAn)) + [ and luna = ] + Alltrim(Str(gnluna))+ Iif(glEMama,' and NVL(id_sucursala,0) = 0 ',gcCondSucursala)
|
||||
llReturn = .T.
|
||||
|
||||
If tlValuta
|
||||
lcCond= lcCond + [ and ABS(i.precvaldeb + i.valdebit - i.precvalcred - i.valcredit)>0 and i.id_valuta ] + ;
|
||||
Iif(!EMPTY(tnIdValuta2), [in ( ] + Alltrim(Str(tnIdValuta)) + [,] + Alltrim(Str(Nvl(tnIdValuta2,0))) + [)], [ = ]+Alltrim(Str(tnIdValuta)))
|
||||
Else
|
||||
lcCond= lcCond + [ and (i.precvaldeb + i.valdebit - i.precvalcred - i.valcredit = 0) ]
|
||||
Endif
|
||||
|
||||
Select xcont
|
||||
Locate For Val(contpart) = Val(lcCont)
|
||||
lnIdPart = idpart
|
||||
lnFelCont = fel_cont
|
||||
lnPozitie = pozitie
|
||||
|
||||
pcselect = ['select i.* FROM vireg_parteneri i where 2=2 ']
|
||||
pcfiltru = [ i.id_part = ] + Alltrim(Str(lnIdPart)) + [ AND ABS(i.precdeb + i.debit - i.preccred - i.credit)<>0 AND i.cont = ']+ lcCont + [' and ] + lcCond
|
||||
|
||||
Private podateintrod
|
||||
Store '' To podateintrod
|
||||
gencursor('podateintrod',lcCursorIregPart,pcselect,pcfiltru,[''],[''])
|
||||
|
||||
Do Case
|
||||
Case m.lnFelCont = 0 Or (m.lnFelCont = 2 And m.lnPozitie = 1)
|
||||
lnTip = 1
|
||||
lcSumaAchi = [ROUND(precdeb + debit,gnPc) - ROUND(preccred+credit,gnPc)]
|
||||
lcSelectie = [SELECT *, ACONT AS ASCC, nume_val as numeval, curs as cursschimb, precdeb + debit as totctva, preccred+credit as achitat, credit as achitatl, ] +;
|
||||
[precvaldeb + valdebit AS sumaval, precVALcred+VALcredit as achitatval, ] + Iif(tnProcTva = 1, [1], [0]) + [ as cu_tva, ] +;
|
||||
[.T. as ales, ] + lcSumaAchi + [ as sumaachi, 000000000000.0000 as sumaachi2, 00000000000000.0000 as achilei, 00000000000000.0000 as difplus, ]+;
|
||||
[ 00000000000000.0000 as difminus, 000000.0000 as cursval, 000000.0000 as cursdif, id_jtva_coloana as id_jtvacol, ] +;
|
||||
[CAST(0 as n(10)) as id_valuta2, CAST('' as c(30)) as nume_val2, CAST(0 as n(15,2)) as sumaachi22,tva_incasare ] + ;
|
||||
[FROM ] + lcCursorIregPart
|
||||
Otherwise
|
||||
lnTip = 2
|
||||
lcSumaAchi = [ROUND(preccred + credit,gnPc) - ROUND(precdeb+debit,gnPc)]
|
||||
lcSelectie = [SELECT *, ACONT AS ASCD, nume_val as numeval, curs as cursschimb, preccred + credit as totctva, precdeb+debit as achitat, debit as achitatl,] + ;
|
||||
[precvalcred + valcredit as sumaval, precVALdeb+VALdebit as achitatval, ] + Iif(tnProcTva = 1, [1], [0]) + [ as cu_tva, ] +;
|
||||
[.T. as ales, ] + lcSumaAchi + [ as sumaachi, 00000000000000.0000 as sumaachi2, 00000000000000.0000 as achilei, 00000000000000.0000 as difplus, ]+;
|
||||
[ 00000000000000.0000 as difminus, 000000.0000 as cursval, 000000.0000 as cursdif, id_jtva_coloana as id_jtvacol, ] + ;
|
||||
[CAST(0 as n(10)) as id_valuta2, CAST('' as c(30)) as nume_val2, CAST(0 as n(15,2)) as sumaachi22,tva_incasare ] + ;
|
||||
[FROM ] + lcCursorIregPart
|
||||
Endcase
|
||||
lcSelectie1 = lcSelectie + [ WHERE ] + lcSumaAchi + [< 0 INTO CURSOR ] + lcCursorSumeNegative + [ READWRITE]
|
||||
lcSelectie2 = lcSelectie + [ WHERE ] + lcSumaAchi + [> 0 INTO CURSOR ] + lcCursorSumePozitive + [ READWRITE]
|
||||
&lcSelectie1
|
||||
&lcSelectie2
|
||||
|
||||
If !Empty(tcNumeVal2) And !Empty(Nvl(tnIdValuta2,0))
|
||||
Update (lcCursorSumeNegative) Set id_valuta2 = tnIdValuta2, nume_Val2 = tcNumeVal2
|
||||
Update (lcCursorSumePozitive) Set id_valuta2 = tnIdValuta2, nume_Val2 = tcNumeVal2
|
||||
ENDIF
|
||||
*!* ROUND(sumaval-achitatval,gnPval)
|
||||
*!* && sumaachi2 = valoarea in valuta facturii (euro)
|
||||
*!* && sumaachi22 = valoarea in valuta de incasare(usd)
|
||||
*!* && m.suma_32 = cursul usd
|
||||
*!* && m.suma_3 = cursul euro
|
||||
*!* Local lncurs
|
||||
*!* If ales
|
||||
*!* lncurs = Iif(id_valuta = id_valuta2, poact.suma_32, poact.suma_3)
|
||||
*!* * lncurs = Iif(id_valuta = poact.id_valuta2, poact.suma_32, poact.suma_3)
|
||||
*!* Repl sumaachi2 With Round(sumaval - achitatval,gnPval)
|
||||
*!* IF poAct.suma_32 > 0
|
||||
*!* replace sumaachi22 WITH ROUND(sumaachi2 * m.lncurs / poact.suma_32,2)
|
||||
*!* ENDIF
|
||||
*!* If sumaachi2=0
|
||||
*!* Do mesaj With "Bifati doar inregistrarile","care au sold in valuta!"
|
||||
*!* Replace ales With .F.
|
||||
*!* Endif
|
||||
*!* Else
|
||||
*!* Repl sumaachi2 With 0, sumaachi22 With 0
|
||||
*!* Endif
|
||||
|
||||
If Reccount(lcCursorSumeNegative)>0 And Reccount(lcCursorSumePozitive)>0
|
||||
Do calculcompens With lcCursorSumeNegative, lcCursorSumePozitive, 1,1
|
||||
*!* mut toate facturile pe coloana corecta si le cumulez dupa id_fact
|
||||
copiaza_structura_cursor(lcCursorCalculCompensare,lcCursorCalculCompensareTemp)
|
||||
INSERT INTO (lcCursorCalculCompensareTemp) SELECT * FROM (lcCursorCalculCompensare)
|
||||
DELETE from (lcCursorCalculCompensare)
|
||||
IF lnTip = 1
|
||||
Insert Into (lcCursorCalculCompensare) (nr_doc_d,nr_doc_c,id_factd,id_factc,ascd,ascc,sumaachi,ales,proc_tva,;
|
||||
id_jtvacol,tva_incasare_a,tva_incasare_d,tva_incasare_dtip,tva_incasare_c,tva_incasare_ctip) ;
|
||||
SELECT 0 As nr_doc_d, nr_doc_d As nr_doc_c, 0 As id_factd, id_factd As id_factc, '' As ascd,ascd As ascc,;
|
||||
Sum(sumaachi) As sumaachi,ales,;
|
||||
proc_tvaD as proc_tva,id_jtvacol as id_jtvacolC,;
|
||||
tva_incasare_a,0 As tva_incasare_d,'' As tva_incasare_dtip,tva_incasare_d As tva_incasare_c,;
|
||||
IIF(tva_incasare_dtip='D','C','') As tva_incasare_ctip ;
|
||||
From (lcCursorCalculCompensareTemp) ;
|
||||
Group By 1,2,3,4,5,6,8,9,10,11,12,13,14,15 ;
|
||||
Union All ;
|
||||
SELECT 0 As nr_doc_d,nr_doc_c,0 As id_factd,id_factc,'' As ascd,ascc,;
|
||||
Sum(sumaachi)*(-1) As sumaachi,ales,;
|
||||
proc_tvaC as proc_tva, id_jtvacolC as id_jtvacol,;
|
||||
tva_incasare_a,0 As tva_incasare_d,'' As tva_incasare_dtip,tva_incasare_c,tva_incasare_ctip ;
|
||||
From (lcCursorCalculCompensareTemp) ;
|
||||
Group By 1,2,3,4,5,6,8,9,10,11,12,13,14,15
|
||||
ELSE
|
||||
Insert Into (lcCursorCalculCompensare) (nr_doc_d,nr_doc_c,id_factd,id_factc,ascd,ascc,sumaachi,ales,proc_tva,;
|
||||
id_jtvacol,tva_incasare_a,tva_incasare_d,tva_incasare_dtip,tva_incasare_c,tva_incasare_ctip) ;
|
||||
SELECT nr_doc_c As nr_doc_d, 0 As nr_doc_c, id_factc As id_factd, 0 As id_factc, ascc As ascd, '' As ascc,;
|
||||
Sum(sumaachi)*(-1) As sumaachi,ales,;
|
||||
proc_tvaC as proc_tva, id_jtvacolC as id_jtvacol,;
|
||||
tva_incasare_a,tva_incasare_c As tva_incasare_d,;
|
||||
IIF(tva_incasare_ctip='C','D','') as tva_incasare_dtip,;
|
||||
0 As tva_incasare_c,'' As tva_incasare_ctip ;
|
||||
From (lcCursorCalculCompensareTemp) ;
|
||||
Group By 1,2,3,4,5,6,8,9,10,11,12,13,14,15 ;
|
||||
Union All ;
|
||||
SELECT nr_doc_d,0 As nr_doc_c,id_factd,0 As id_factc,ascd,'' As ascc,;
|
||||
Sum(sumaachi) As sumaachi,ales,;
|
||||
proc_tvaD as proc_tva, id_jtvacolD as id_jtvacol, ;
|
||||
tva_incasare_a,tva_incasare_d,tva_incasare_dtip,0 As tva_incasare_c,'' As tva_incasare_ctip ;
|
||||
From (lcCursorCalculCompensareTemp) ;
|
||||
Group By 1,2,3,4,5,6,8,9,10,11,12,13,14,15
|
||||
ENDIF
|
||||
USE IN (lcCursorCalculCompensareTemp)
|
||||
Else
|
||||
llReturn = .F.
|
||||
amessagebox("Nu se pot face compensari intrucat nu exista facturi cu semn diferit!",48,"Atentie")
|
||||
Endif
|
||||
|
||||
Use In (lcCursorIregPart)
|
||||
Use In (lcCursorSumeNegative)
|
||||
Use In (lcCursorSumePozitive)
|
||||
Release lnTip, lcCursorIregPart, lcCursorSumeNegative, lcCursorSumePozitive, lcCursorCalculCompensare, ;
|
||||
lcCursorCalculCompensareTemp, lcCont, lcCond, lnIdPart, ;
|
||||
lnFelCont, lnPozitie, lcSumaAchi, lcSelectie, lcSelectie1, lcSelectie2
|
||||
RETURN llReturn
|
||||
Endproc
|
||||
46
COMUN/programe/odocumente.prg
Normal file
46
COMUN/programe/odocumente.prg
Normal file
@@ -0,0 +1,46 @@
|
||||
*** odocumente
|
||||
|
||||
|
||||
*!* parametri: cod, luna, an
|
||||
*!* pentru codul respectiv din act si toate id_fact se verifica
|
||||
*!* daca respectivul id_fact exista pe id_factd sau id_factc pe alt cod
|
||||
*!* decat cel verificat
|
||||
FUNCTION ReferinteDocumenteNota
|
||||
PARAMETERS tnAn, tnLuna, tnCod
|
||||
|
||||
LOCAL lnReferinte, lcFunctie
|
||||
lnReferinte = 1
|
||||
|
||||
|
||||
lcFunctie = "pack_documente.ReferinteDocumenteNota(?tnAn, ?tnLuna, ?tnCod)"
|
||||
lnSucces = goExecutor.oFunction2Value(lcFunctie, @lnReferinte)
|
||||
IF lnSucces < 0
|
||||
AMESSAGEBOX(goExecutor.cEroare,0+16,"Eroare")
|
||||
ENDIF
|
||||
|
||||
RETURN IIF(lnReferinte > 0, .T., .F.)
|
||||
|
||||
ENDFUNC && ReferinteDocumenteNota
|
||||
|
||||
|
||||
*!* parametri: an, luna, cod, id_fact
|
||||
*!* pentru codul respectiv din act si toate id_fact se verifica
|
||||
*!* daca respectivul id_fact exista pe id_factd sau id_factc pe alt cod
|
||||
*!* decat cel verificat
|
||||
FUNCTION ReferinteDocument
|
||||
PARAMETERS tnAn, tnLuna, tnCod, tnIdFact
|
||||
|
||||
LOCAL lnReferinte, lcFunctie
|
||||
lnReferinte = 1
|
||||
|
||||
|
||||
|
||||
lcFunctie = "pack_documente.ReferinteDocument(?tnAn, ?tnLuna, ?tnCod, ?tnIdFact)"
|
||||
lnSucces = goExecutor.oFunction2Value(lcFunctie, @lnReferinte)
|
||||
IF lnSucces < 0
|
||||
AMESSAGEBOX(goExecutor.cEroare,0+16,"Eroare")
|
||||
ENDIF
|
||||
|
||||
RETURN IIF(lnReferinte > 0, .T., .F.)
|
||||
|
||||
ENDFUNC && ReferinteDocument
|
||||
3003
COMUN/programe/oexport.prg
Normal file
3003
COMUN/programe/oexport.prg
Normal file
File diff suppressed because it is too large
Load Diff
2663
COMUN/programe/ofacturare.prg
Normal file
2663
COMUN/programe/ofacturare.prg
Normal file
File diff suppressed because it is too large
Load Diff
2218
COMUN/programe/ofacturare_comun.prg
Normal file
2218
COMUN/programe/ofacturare_comun.prg
Normal file
File diff suppressed because it is too large
Load Diff
1140
COMUN/programe/ofacturare_stoc.prg
Normal file
1140
COMUN/programe/ofacturare_stoc.prg
Normal file
File diff suppressed because it is too large
Load Diff
411
COMUN/programe/oinainte_de.prg
Normal file
411
COMUN/programe/oinainte_de.prg
Normal file
@@ -0,0 +1,411 @@
|
||||
*!* 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
|
||||
883
COMUN/programe/oinit_optiuni.prg
Normal file
883
COMUN/programe/oinit_optiuni.prg
Normal file
@@ -0,0 +1,883 @@
|
||||
*!* citeste_optiune, scrie_optiune +parametru tValue2
|
||||
|
||||
*** OINIT_OPTIUNI.PRG
|
||||
|
||||
glLuna_neplatita = .F.
|
||||
glLunaInchisa = .F.
|
||||
|
||||
*!* gnLuna = Round(Val(goCalendar.nl),0)
|
||||
*!* gnAn = Round(Val(goCalendar.An),0)
|
||||
|
||||
gnLuna = goCalendar.luna
|
||||
gnAn = goCalendar.anul
|
||||
|
||||
pcNl = Padl(Alltrim(Str(gnLuna)), 2, '0')
|
||||
pcAn = Alltrim(Str(gnAn))
|
||||
m.nl = m.pcNl
|
||||
m.an = m.pcAn
|
||||
gcFirma = Upper(Alltrim(goFirma.firma))
|
||||
If Type('gnIdFirma') <> 'U'
|
||||
gnIdFirma = goFirma.Id_Firma
|
||||
Endif
|
||||
gnIdFirma = goFirma.Id_Firma
|
||||
|
||||
|
||||
*!* 08.02.2008 SUCURSALE
|
||||
Public gnIdSucursala, gnIdMama, glEMama, gcCondSucursala
|
||||
gnIdSucursala = Iif(Nvl(goFirma.id_mama, 0) <> 0, goFirma.Id_Firma, Null) && DACA ESTE SUCURSALA - ID-UL SUCURSALA PE CARE IL SCRIU IN TABELE
|
||||
*gnIdSucursala = Iif(Nvl(goFirma.id_firma,0) <> 0, goFirma.Id_Firma, Null)
|
||||
gnIdMama = Iif(Nvl(goFirma.id_mama, 0) <> 0, goFirma.id_mama, Null)
|
||||
glEMama = Nvl(goFirma.e_mama, 0) <> 0
|
||||
gcCondSucursala = Iif(!Isnull(gnIdSucursala), ' AND id_sucursala = ?gnIdSucursala ', '') && CONDITIA FOLOSITA LA SELECTIILE DIN JURNAL, RULAJ, IREG_PARTENERI
|
||||
*!* 08.02.2008 SUCURSALE ^
|
||||
|
||||
*!* gcSchemaPath = ADDBS(dirgen) + gcS + "\"
|
||||
*!* m.calefirma = gcSchemaPath
|
||||
*!* IF !DIRECTORY(gcSchemaPath)
|
||||
*!* MD (gcSchemaPath)
|
||||
*!* ENDIF
|
||||
|
||||
*!* gnNivelUtilizator = getNivel(gnIdProgram,gnIdUtil,gnId_Firma)
|
||||
*!* gcAcces = getAcces(gnIdProgram,gnIdUtil,gnId_Firma)
|
||||
|
||||
|
||||
m.an = Alltrim(Str(gnAn))
|
||||
m.nl = Padl(Alltrim(Str(gnLuna)), 2, '0')
|
||||
m.NumeFirma = gcFirma
|
||||
m.flung = gcFirma
|
||||
m.numeluna = m.nl
|
||||
m.luna = m.nl
|
||||
m.ctvam = goCalendar.ctvam
|
||||
m.ctvai = goCalendar.ctvai
|
||||
m.antet = goFirma.antet
|
||||
gcAntet = goFirma.antet
|
||||
*!* adaugat 25.02.2014 / liana neagu /ROARES
|
||||
Public gcNumeUtilEnt
|
||||
gcNumeUtilEnt = []
|
||||
lcSql = [begin pack_def.citesteNumeEnt(?gnIdUtil,?@gcNumeUtilEnt); end;]
|
||||
If !goExecutor.oExecuta(lcSql)
|
||||
gcNumeUtilEnt = gcUserNameApp
|
||||
Endif
|
||||
*!* adaugat 25.02.2014 ^
|
||||
|
||||
*!* adaugat 23.09.2011 / MARIUS ATANASIU / ROAAUTO
|
||||
Public gnCotaTVAStandard
|
||||
gnCotaTVAStandard = goCalendar.ctvam
|
||||
*!* adaugat 23.09.2011 ^
|
||||
*** ADAUGAT 01.11.2005
|
||||
*** MARIUS MUTU
|
||||
glLunaInchisa = is_luna_blocata(gcS, gnId_Prg_Owner, gnAn, gnLuna)
|
||||
|
||||
|
||||
*!* 25.01.2012
|
||||
lcDeclarant = Alltrim(goFirma.declarant)
|
||||
AddProperty(goFirma, 'nume_declarant', m.lcDeclarant)
|
||||
AddProperty(goFirma, 'prenume_declarant', '')
|
||||
lnNraparitie = At(" ", m.lcDeclarant)
|
||||
If lnNraparitie > 0
|
||||
goFirma.nume_declarant = Substr(m.lcDeclarant, 1, m.lnNraparitie)
|
||||
goFirma.prenume_declarant = Substr(m.lcDeclarant, m.lnNraparitie + 1)
|
||||
Endif
|
||||
*!* 25.01.2012 ^
|
||||
|
||||
verificare_versiune()
|
||||
*---------------------- deschid lunilean , sa iau denumirea completa a lunii
|
||||
Local lcNumeLuna
|
||||
Store "" To lcNumeLuna
|
||||
If Used("v_lunilean")
|
||||
Use In v_lunilean
|
||||
Endif
|
||||
lcSelect = [select * from lunilean ]
|
||||
lcCursor = [v_lunilean]
|
||||
lnSucces = goExecutor.oExecute(lcSelect, lcCursor)
|
||||
If lnSucces < 0
|
||||
AMESSAGEBOX('Eroare la selectie ' + goExecutor.cEroare)
|
||||
Return
|
||||
Endif
|
||||
Select v_lunilean
|
||||
Locate For nrluna = gnLuna
|
||||
If Found()
|
||||
lcNumeLuna = Alltrim(v_lunilean.numeluna)
|
||||
Endif
|
||||
*----------------------deschid lunilean , sa iau denumirea completa a lunii
|
||||
If Type("NUMEPROGRAM") <> 'C' Or Empty(NUMEPROGRAM)
|
||||
NUMEPROGRAM = gcAppName
|
||||
Endif
|
||||
capapl = NUMEPROGRAM + " Firma " + NumeFirma + "- Luna contabila: " + lcNumeLuna + " " + M.an + " "
|
||||
*-----------------------
|
||||
goApp.SetCaption(capapl)
|
||||
Release lcNumeLuna
|
||||
|
||||
If Used("v_lunilean")
|
||||
Use In v_lunilean
|
||||
Endif
|
||||
|
||||
*!* 06.09.2012 / marius.atanasiu
|
||||
*!* daca schimbam luna, nu se schimba gcTempPath si la BackupXML imi cauta xml-urile in firma anterioara
|
||||
*!* *!* 07.06.2007
|
||||
*!* *!* marius.mutu
|
||||
*!* *!* daca este definita gcTempPath in main.prg - goApi.GetTempPath()
|
||||
*!* If Empty(gcTempPath) OR 'SITFIN'$UPPER(gcAppName)
|
||||
*!* *!* gcTempPath = [c:\contafin\temp\] + gcS + [\]
|
||||
*!* *!* IF !DIRECTORY(gcTempPath)
|
||||
*!* *!* MD (gcTempPath)
|
||||
*!* *!* ENDIF
|
||||
&& obiectul public goApi trebuie creat in programul principal, daca nu, este creat in oinit_optiuni.prg
|
||||
If Type('goApi') = 'U'
|
||||
Public goApi
|
||||
goApi = Newobject("wwAPI", "wwAPI.prg")
|
||||
Endif
|
||||
gcTempPath = Addbs(shortpath(goApi.GetTempPath())) + gcS + [\] && WWAPI.PRG
|
||||
If !Directory(gcTempPath)
|
||||
Md (gcTempPath)
|
||||
Endif
|
||||
*!* Endif
|
||||
*!* 06.09.2012 ^
|
||||
m.NIVEL = 0
|
||||
m.UTILIZATOR = gcUserNameApp
|
||||
|
||||
|
||||
|
||||
*!* STORE 0 TO gnPA && nr. de zecimale afisare
|
||||
*!* STORE 0 TO gnPC && nr. de zecimale calcul
|
||||
|
||||
If lnSucces > 0
|
||||
&& setez variabilele de sesiune pe server
|
||||
lnSucces = InitSesiune() && IN oInit_Optiuni.prg
|
||||
Endif
|
||||
|
||||
If lnSucces > 0
|
||||
Do optiuni_firma
|
||||
Do coresp_cont_tipgest
|
||||
Do actualizeaza_optiuni_utilizator
|
||||
Do actualizeaza_optiuni
|
||||
Endif
|
||||
|
||||
If Type('gnTraducere') = 'N'
|
||||
glTraducere = gnTraducere = 1
|
||||
Endif
|
||||
|
||||
Return lnSucces
|
||||
|
||||
************************************** INCEPUT: actualizeaza_optiuni_program ***************************************
|
||||
Function actualizeaza_optiuni_program
|
||||
Local llReturn
|
||||
Store .F. To llReturn
|
||||
lcSql = 'select * from ' + gcS + '.optiuni where program = ?gcNumeProgram order by varname'
|
||||
lcCursor = 'v_optiuni'
|
||||
|
||||
lnSucces = goExecutor.oExecute(lcSql, lcCursor)
|
||||
|
||||
If lnSucces < 0
|
||||
AMESSAGEBOX('ACTUALIZEAZA_OPTIUNI_PROGRAM ' + goExecutor.cEroare, 0 + 16, "Eroare")
|
||||
Return
|
||||
Else
|
||||
Select(lcCursor)
|
||||
Scan For !Empty(varname)
|
||||
lcvarname = Alltrim(&lcCursor..varname)
|
||||
lcvartype = Upper(Alltrim(&lcCursor..Vartype))
|
||||
Do Case
|
||||
Case lcvartype = "CHARACTER"
|
||||
Public gc&lcvarname.
|
||||
luvarvalue = Alltrim(&lcCursor..varvalue)
|
||||
gc&lcvarname. = luvarvalue
|
||||
Case lcvartype = "CURRENCY"
|
||||
Public gy&lcvarname.
|
||||
luvarvalue = Ntom(Val(&lcCursor..varvalue))
|
||||
gy&lcvarname. = luvarvalue
|
||||
Case lcvartype = "NUMERIC"
|
||||
Public gn&lcvarname.
|
||||
luvarvalue = Val(&lcCursor..varvalue)
|
||||
gn&lcvarname. = luvarvalue
|
||||
Case lcvartype = "DATETIME"
|
||||
Public gt&lcvarname.
|
||||
luvarvalue = Ctot(&lcCursor..varvalue)
|
||||
gt&lcvarname. = luvarvalue
|
||||
Case lcvartype = "DATE"
|
||||
Public gd&lcvarname.
|
||||
luvarvalue = Ctod(&lcCursor..varvalue)
|
||||
gd&lcvarname. = luvarvalue
|
||||
Case lcvartype = "LOGICAL"
|
||||
Public gl&lcvarname.
|
||||
luvarvalue = Iif(Inlist(Upper(Left(&lcCursor..varvalue, 1)), "T", "Y"), .T., .F.)
|
||||
gl&lcvarname. = luvarvalue
|
||||
Otherwise
|
||||
pcmsgbuff = "Tip de variabila globala invalid!"
|
||||
pcmsgbuff = pcmsgbuff + Chr(13) + Chr(13) + "Numele variabilei: " + lcvarname
|
||||
pcmsgbuff = pcmsgbuff + Chr(13) + "Tipul variabilei: " + lcvartype
|
||||
pcmsgbuff = pcmsgbuff + Chr(13) + Chr(13) + "Contactati suportul tehnic."
|
||||
= AMESSAGEBOX(pcmsgbuff, 48)
|
||||
pcmsgbuff = ""
|
||||
Endcase
|
||||
Endscan
|
||||
|
||||
llReturn = .T.
|
||||
If Used('v_optiuni')
|
||||
Use In v_optiuni
|
||||
Endif
|
||||
Endif
|
||||
Return llReturn
|
||||
Endfunc
|
||||
******************************************* SFARSIT: actualizeaza_optiuni_program *******************************************
|
||||
|
||||
|
||||
|
||||
* PROCEDURE optiuni_firma( )
|
||||
* Date : 15.11.2004, 09:33:59
|
||||
* author : catalin.neagu
|
||||
* description:
|
||||
|
||||
****** PARAMETER BLOCK **************
|
||||
* Parameters : 0
|
||||
*
|
||||
******************************************* INCEPUT:optiuni_f *******************************************
|
||||
Procedure optiuni_firma
|
||||
|
||||
*!* modificat 22.03.2006
|
||||
*!* mutu.marius
|
||||
*!* am folosit gcUserName in loc de gcS (adica "CONTAFIN_ORACLE") si am modificat procedura SCRIE_OPTIUNI
|
||||
|
||||
lcSql = [begin SCRIE_OPTIUNI('] + gcUserName + ['); end;]
|
||||
lnSucces = goExecutor.oExecute(lcSql)
|
||||
|
||||
If lnSucces < 0
|
||||
AMESSAGEBOX('SCRIE_OPTIUNI ' + goExecutor.cEroare, 0 + 16, "Eroare")
|
||||
Return
|
||||
Endif
|
||||
lnSucces = -1
|
||||
lnSucces = update_optiuni()
|
||||
|
||||
If lnSucces > 0
|
||||
LCFIS = 'v_optiuni'
|
||||
|
||||
*-- DECLAR VARIABILELE PUBLICE SI LE INITIALIZEZ ex: pcEroriPath,pcServerPath
|
||||
|
||||
Select(LCFIS)
|
||||
Scan For !Empty(varname) And (Isnull(programe) Or gcNumeProgram $ programe)
|
||||
lcvarname = Alltrim(&LCFIS..varname)
|
||||
lcvartype = Upper(Alltrim(&LCFIS..Vartype))
|
||||
Do Case
|
||||
Case lcvartype = "CHARACTER"
|
||||
Public gc&lcvarname.
|
||||
luvarvalue = Alltrim(&LCFIS..varvalue)
|
||||
luvarvalue2 = Alltrim(&LCFIS..varvalue2)
|
||||
IF !EMPTY(NVL(luvarvalue,'')) OR (EMPTY(NVL(luvarvalue,'')) AND EMPTY(NVL(luvarvalue2,'')))
|
||||
gc&lcvarname. = m.luvarvalue
|
||||
ELSE
|
||||
gc&lcvarname. = m.luvarvalue2
|
||||
ENDIF
|
||||
Case lcvartype = "CURRENCY"
|
||||
Public gy&lcvarname.
|
||||
luvarvalue = Ntom(Val(&LCFIS..varvalue))
|
||||
gy&lcvarname. = luvarvalue
|
||||
Case lcvartype = "NUMERIC"
|
||||
Public gn&lcvarname.
|
||||
luvarvalue = Val(&LCFIS..varvalue)
|
||||
gn&lcvarname. = luvarvalue
|
||||
Case lcvartype = "DATETIME"
|
||||
Public gt&lcvarname.
|
||||
luvarvalue = Ctot(&LCFIS..varvalue)
|
||||
gt&lcvarname. = luvarvalue
|
||||
Case lcvartype = "DATE"
|
||||
Public gd&lcvarname.
|
||||
luvarvalue = Ctod(&LCFIS..varvalue)
|
||||
gd&lcvarname. = luvarvalue
|
||||
Case lcvartype = "LOGICAL"
|
||||
Public gl&lcvarname.
|
||||
luvarvalue = Iif(Inlist(Upper(Left(&LCFIS..varvalue, 1)), "T", "Y"), .T., .F.)
|
||||
gl&lcvarname. = luvarvalue
|
||||
Otherwise
|
||||
pcmsgbuff = "Tip de variabila globala invalid!"
|
||||
pcmsgbuff = pcmsgbuff + Chr(13) + Chr(13) + "Numele variabilei: " + lcvarname
|
||||
pcmsgbuff = pcmsgbuff + Chr(13) + "Tipul variabilei: " + lcvartype
|
||||
pcmsgbuff = pcmsgbuff + Chr(13) + Chr(13) + "Contactati suportul tehnic."
|
||||
= AMESSAGEBOX(pcmsgbuff, 48)
|
||||
pcmsgbuff = ""
|
||||
Endcase
|
||||
Endscan
|
||||
|
||||
If Used('v_optiuni')
|
||||
Use In v_optiuni
|
||||
Endif
|
||||
Public gnZ
|
||||
m.gnZ = 0
|
||||
If Type('gnPA') = 'N'
|
||||
gnZ = m.gnPA
|
||||
Endif
|
||||
lnSucces = optiuni_speciale()
|
||||
Endif
|
||||
Return lnSucces
|
||||
Endproc
|
||||
******************************************* SFARSIT: optiuni_f *******************************************
|
||||
|
||||
* PROCEDURE viz_optiuni( )
|
||||
* Date : 15.11.2004, 12:31:24
|
||||
* author : catalin.neagu
|
||||
* description:
|
||||
|
||||
****** PARAMETER BLOCK **************
|
||||
* Parameters : 0
|
||||
*
|
||||
******************************************* INCEPUT:viz_optiuni *******************************************
|
||||
Procedure viz_optiuni
|
||||
Lparameters tcS, tnId_prg_owner
|
||||
|
||||
Local lnSucces, lcS
|
||||
If Empty(tcS)
|
||||
lcS = "CONTAFIN_ORACLE"
|
||||
Else
|
||||
lcS = tcS
|
||||
Endif
|
||||
|
||||
Private popt
|
||||
Store '' To popt
|
||||
|
||||
Local lcschema, lcSelect
|
||||
lcschema = []
|
||||
lcSelect = [select * from ] + lcS + [.optiuni ]
|
||||
lcfiltru = []
|
||||
If !Empty(tnId_prg_owner)
|
||||
lcFiltuOriginal = [id_prg_owner=] + Alltrim(Str(tnId_prg_owner))
|
||||
Else
|
||||
lcFiltuOriginal = []
|
||||
Endif
|
||||
lcOrder = [varname]
|
||||
lcGroup = []
|
||||
llModParam = .T.
|
||||
llAfisare = .F.
|
||||
gencursor('popt', 'v_optiuni', lcSelect, lcfiltru, lcschema, lcOrder, llAfisare, lcGroup, llModParam, lcFiltuOriginal)
|
||||
popt.ca_baza1.afisare()
|
||||
|
||||
ofrmopt = Createobject('frm_optiuni')
|
||||
ofrmopt.cSchema = lcS
|
||||
ofrmopt.Show(1)
|
||||
Release ofrmopt
|
||||
|
||||
Endproc
|
||||
******************************************* SFARSIT: viz_optiuni *******************************************
|
||||
|
||||
Procedure optiuni_cote_tva
|
||||
|
||||
lcSql = [begin SCRIE_COTE_TVA('] + gcS + [',] + pcAn + [, ] + pcNl + [); end;]
|
||||
lnSucces = goExecutor.oExecute(lcSql)
|
||||
|
||||
If lnSucces < 0
|
||||
AMESSAGEBOX('SCRIE_COTE_TVA ' + goExecutor.cEroare, 0 + 16, "Eroare")
|
||||
Return
|
||||
Endif
|
||||
Endproc
|
||||
|
||||
* PROCEDURE viz_cote_tva( Tcs )
|
||||
* Date : 04/01/05, 11:22:25
|
||||
* author : catalin.neagu
|
||||
* description:
|
||||
|
||||
****** PARAMETER BLOCK **************
|
||||
* Parameters : 1
|
||||
* Parameter 1:
|
||||
*
|
||||
******************************************* INCEPUT:viz_cote_tva *******************************************
|
||||
Procedure viz_cote_tva
|
||||
LPARAMETERS tcS, tnAn, tnLuna
|
||||
|
||||
Local lnSucces, lcS
|
||||
If Empty(tcS)
|
||||
lcS = "CONTAFIN_ORACLE"
|
||||
Else
|
||||
lcS = tcS
|
||||
Endif
|
||||
lcAn = Alltrim(Str(tnAn))
|
||||
lcLuna = Alltrim(Str(tnLuna))
|
||||
Private pcot, pcschema1, pcselect1
|
||||
Store '' To pcot
|
||||
pcschema1 = ['']
|
||||
pcselect1 = ['select * from ] + lcS + [.cote_tva where 1=2']
|
||||
pcfiltru1 = [ an = ] + lcAn + [and luna = ] + lcLuna
|
||||
pcOrder1 = [an, luna]
|
||||
gencursor('pcot', 'v_cote_tva', pcselect1, pcfiltru1, pcschema1, pcOrder1)
|
||||
pcot.ca_baza1.afisare()
|
||||
ofrmcot = Createobject('frm_cote_tva')
|
||||
ofrmcot.cSchema = lcS
|
||||
ofrmcot.Show(1)
|
||||
Release ofrmcot
|
||||
|
||||
Endproc
|
||||
******************************************* SFARSIT: viz_cote_tva *******************************************
|
||||
|
||||
* PROCEDURE optiuni_plcont( tcs )
|
||||
* Date : 04/01/05, 13:04:09
|
||||
* author : catalin.neagu
|
||||
* description:
|
||||
|
||||
****** PARAMETER BLOCK **************
|
||||
* Parameters : 1
|
||||
* Parameter 1:
|
||||
*
|
||||
******************************************* INCEPUT:optiuni_plcont *******************************************
|
||||
Procedure optiuni_plcont()
|
||||
|
||||
lcSql = [begin SCRIE_PLCONT('] + gcS + [',] + gnAn + [); end;]
|
||||
lnSucces = goExecutor.oExecute(lcSql)
|
||||
|
||||
If lnSucces < 0
|
||||
AMESSAGEBOX('SCRIE_PLCONT ' + goExecutor.cEroare, 0 + 16, "Eroare")
|
||||
Return
|
||||
Endif
|
||||
Endproc
|
||||
|
||||
|
||||
******************************************* SFARSIT: optiuni_plcont *******************************************
|
||||
* PROCEDURE optiuni_notec( )
|
||||
* Date : 04/01/05, 13:05:32
|
||||
* author : catalin.neagu
|
||||
* description:
|
||||
|
||||
****** PARAMETER BLOCK **************
|
||||
* Parameters : 0
|
||||
*
|
||||
******************************************* INCEPUT:optiuni_notec *******************************************
|
||||
Procedure optiuni_notec( )
|
||||
|
||||
lcSql = [begin SCRIE_notec('] + gcS + ['); end;]
|
||||
lnSucces = goExecutor.oExecute(lcSql)
|
||||
|
||||
If lnSucces < 0
|
||||
AMESSAGEBOX('SCRIE_notec ' + goExecutor.cEroare, 0 + 16, "Eroare")
|
||||
Return
|
||||
Endif
|
||||
Endproc
|
||||
|
||||
******************************************* SFARSIT: optiuni_notec *******************************************
|
||||
|
||||
* PROCEDURE viz_exceptii( )
|
||||
* Date : 04/01/05, 13:40:35
|
||||
* author : catalin.neagu
|
||||
* description:
|
||||
|
||||
****** PARAMETER BLOCK **************
|
||||
* Parameters : 0
|
||||
*
|
||||
******************************************* INCEPUT:viz_exceptii *******************************************
|
||||
Procedure viz_exceptii( tcS )
|
||||
Local lnSucces, lcS
|
||||
If Empty(tcS)
|
||||
lcS = "CONTAFIN_ORACLE"
|
||||
Else
|
||||
lcS = tcS
|
||||
Endif
|
||||
Private pex, pcschema1, pcselect1
|
||||
Store '' To pex
|
||||
pcschema1 = ['']
|
||||
pcselect1 = ['select * from ] + lcS + [.exceptii_ireg where 1=2']
|
||||
pcfiltru1 = [2=2]
|
||||
gencursor('pex', 'v_exceptii_ireg', pcselect1, pcfiltru1, pcschema1)
|
||||
pex.ca_baza1.afisare()
|
||||
ofrmex = Createobject('frm_exceptii_ireg')
|
||||
ofrmex.cSchema = lcS
|
||||
ofrmex.Show(1)
|
||||
Release ofrmex
|
||||
|
||||
Endproc
|
||||
******************************************* SFARSIT: viz_exceptii *******************************************
|
||||
|
||||
Procedure coresp_cont_tipgest
|
||||
|
||||
lcSql = [begin SCRIE_CORESP_CONT_TIPGEST('] + gcS + ['); end;]
|
||||
lnSucces = goExecutor.oExecute(lcSql)
|
||||
|
||||
If lnSucces < 0
|
||||
lcMesaj = 'SCRIE_CORESP_CONT_TIPGEST ' + goExecutor.cEroare
|
||||
ofrm_er = Createobject([frm_mesaj], [Eroare], [exclam.ico], [Avertizare], lcMesaj)
|
||||
ofrm_er.Show(1)
|
||||
Release ofrm_er
|
||||
Return
|
||||
Endif
|
||||
|
||||
Endproc
|
||||
|
||||
|
||||
|
||||
********************* INCEPUT Optiuni_speciale **********************
|
||||
* PROCEDURE Optiuni_speciale
|
||||
* Date : 03/31/05, 08:48:45
|
||||
* author : marius.mutu
|
||||
* description:
|
||||
|
||||
Procedure optiuni_speciale
|
||||
Public gnLunaRon, gnAnRon, gl406, glEFactura
|
||||
|
||||
gnLunaRon = Val(Substr(Alltrim(gcDataRon), 1, 2))
|
||||
gnAnRon = Val(Substr(Alltrim(gcDataRon), 4, 4))
|
||||
If gnAn * 12 + gnLuna < gnAnRon * 12 + gnLunaRon
|
||||
Store 0 To gnPA && nr. de zecimale afisare
|
||||
Store 0 To gnPC && nr. de zecimale calcul
|
||||
Store 0 To gnPCurs && nr. de zecimale curs
|
||||
Store 0 To gnPPretV && nr. de zecimale pret vanzare
|
||||
Store 0 To gnZ && gnPA
|
||||
*!* ELSE
|
||||
*!* Store 2 To gnPA && nr. de zecimale afisare
|
||||
*!* Store 2 To gnPC && nr. de zecimale calcul
|
||||
*!* Store 4 To gnPCurs && nr. de zecimale curs
|
||||
ENDIF
|
||||
|
||||
* Firma are activata SAFT 406
|
||||
gl406 = (TYPE('gnD406') = 'N' and m.gnD406 = 1)
|
||||
* Firma are activata Efactura
|
||||
glEFactura = (TYPE('gnEFactura') = 'N' and m.gnEFactura = 1)
|
||||
|
||||
Endproc
|
||||
********************* SFARSIT Optiuni_speciale **********************
|
||||
|
||||
*!* marius.mutu
|
||||
*!* 21.02.2006
|
||||
*!* Seteaza variabile de sesiune: pack_sesiune.id_util, pack_sesiune.Luna, pack_sesiune.An, pack_sesiune.data_ron, pack_contafin.data_ron
|
||||
*** InitSesiune ===========================================================================
|
||||
Procedure InitSesiune
|
||||
|
||||
Local lnSucces
|
||||
lnSucces = 1
|
||||
|
||||
&& setez variabilele de sesiune pe server
|
||||
If lnSucces > 0
|
||||
lcSql = [begin pack_sesiune.set_Id_Util(?gnIdUtil); end;]
|
||||
lnSucces = goExecutor.oExecute(lcSql)
|
||||
If lnSucces < 0
|
||||
AMESSAGEBOX(goExecutor.cEroare, 0 + 16, "Eroare")
|
||||
Endif
|
||||
Endif
|
||||
|
||||
If lnSucces > 0
|
||||
lcSql = [begin pack_sesiune.setluna(?gnLuna); pack_sesiune.setan(?gnAn); end;]
|
||||
lnSucces = goExecutor.oExecute(lcSql)
|
||||
If lnSucces < 0
|
||||
AMESSAGEBOX(goExecutor.cEroare, 0 + 16, "Eroare")
|
||||
Endif
|
||||
Endif
|
||||
|
||||
*!* 09.04.2008
|
||||
*!* setare lunabal si anbal pentru view-urile vbalmama si vbalanamama
|
||||
If lnSucces > 0
|
||||
lcSql = [begin pack_sesiune.setlunabal(?gnLuna); pack_sesiune.setanbal(?gnAn); end;]
|
||||
lnSucces = goExecutor.oExecute(lcSql)
|
||||
If lnSucces < 0
|
||||
AMESSAGEBOX(goExecutor.cEroare, 0 + 16, "Eroare")
|
||||
Endif
|
||||
Endif
|
||||
*!* 09.04.2008 ^
|
||||
|
||||
If lnSucces > 0
|
||||
lcSql = [begin pack_contafin.SET_DATA_RON(?gcS); end;]
|
||||
lnSucces = goExecutor.oExecute(lcSql)
|
||||
If lnSucces < 0
|
||||
AMESSAGEBOX(goExecutor.cEroare, 0 + 16, "Eroare")
|
||||
Endif
|
||||
Endif
|
||||
If lnSucces > 0
|
||||
lcSql = [begin pack_sesiune.set_data_ron(?gcS); end;]
|
||||
lnSucces = goExecutor.oExecute(lcSql)
|
||||
If lnSucces < 0
|
||||
AMESSAGEBOX(goExecutor.cEroare, 0 + 16, "Eroare")
|
||||
Endif
|
||||
Endif
|
||||
|
||||
llSucces = initializeaza_sucursala()
|
||||
If llSucces
|
||||
llSucces = initializeaza_firma()
|
||||
Endif
|
||||
|
||||
lnSucces = Iif(llSucces, 1, -1)
|
||||
|
||||
Return lnSucces
|
||||
|
||||
Endproc && InitSesiune
|
||||
*** END InitSesiune ===========================================================================
|
||||
Procedure actualizeazaSetare
|
||||
Lparameters tcSetare, tdData
|
||||
Private pcSetare, pdData, pcValoareSetare, pcTipSetare
|
||||
pcSetare = tcSetare
|
||||
pdData = Date()
|
||||
pcValoareSetare = [-]
|
||||
pcTipSetare = [-]
|
||||
lcSql = [{call citeste_ora_optiune(?pcSetare,?@pdData,?@pcValoareSetare,?@pcTipSetare)}]
|
||||
lnSucces = goExecutor.oExecute(lcSql)
|
||||
If lnSucces < 0
|
||||
AMESSAGEBOX(goExecutor.oPrelucrareEroare(), 0 + 16, "Eroare")
|
||||
Else
|
||||
Do Case
|
||||
Case pcTipSetare = "CHARACTER"
|
||||
luvarvalue = Alltrim(pcValoareSetare)
|
||||
gc&pcSetare. = luvarvalue
|
||||
Case pcTipSetare = "CURRENCY"
|
||||
luvarvalue = Ntom(Val(pcValoareSetare))
|
||||
gy&pcSetare. = luvarvalue
|
||||
Case pcTipSetare = "NUMERIC"
|
||||
luvarvalue = Val(pcValoareSetare)
|
||||
gn&pcSetare. = luvarvalue
|
||||
Case pcTipSetare = "DATETIME"
|
||||
luvarvalue = Ctot(pcValoareSetare)
|
||||
gt&pcSetare. = luvarvalue
|
||||
Case pcTipSetare = "DATE"
|
||||
luvarvalue = Ctod(pcValoareSetare)
|
||||
gd&pcSetare. = luvarvalue
|
||||
Case pcTipSetare = "LOGICAL"
|
||||
luvarvalue = Iif(Inlist(Upper(Left(pcValoareSetare, 1)), "T", "Y"), .T., .F.)
|
||||
gl&pcSetare. = luvarvalue
|
||||
Otherwise
|
||||
pcmsgbuff = "Tip de variabila globala invalid!"
|
||||
pcmsgbuff = pcmsgbuff + Chr(13) + Chr(13) + "Numele variabilei: " + pcSetare
|
||||
pcmsgbuff = pcmsgbuff + Chr(13) + "Tipul variabilei: " + pcTipSetare
|
||||
pcmsgbuff = pcmsgbuff + Chr(13) + Chr(13) + "Contactati suportul tehnic."
|
||||
= AMESSAGEBOX(pcmsgbuff, 48)
|
||||
pcmsgbuff = ""
|
||||
Endcase
|
||||
tdData = pdData
|
||||
Endif
|
||||
Endproc && actualizeazaSetare
|
||||
***********************************************************************
|
||||
|
||||
*!* 16.06.2007
|
||||
*!* marius.mutu
|
||||
*!* verificare versiune program - versiune baza date
|
||||
*!* procedura de pe server intoarce nume_program:versiune_program daca este nevoie de actualizarea programului la versiunea <versiune_program>
|
||||
*!* sau db:versiune_db daca este nevoie de actualizarea bazei de date la versiunea <versiune_db>
|
||||
Procedure verificare_versiune
|
||||
Local lcFileVersiuneDB, llOk, lcMesaj
|
||||
Private pcReturnValue, pcNumeProgram, pcVersiuneDB, pcVersiuneProgram
|
||||
llOk = .T.
|
||||
lcMesaj = ""
|
||||
pcReturnValue = "" && roacont:1.0.25 sau db:2007_06_16_2
|
||||
pcNumeProgram = Upper(gcNumeProgram)
|
||||
pcVersiuneDB = ""
|
||||
|
||||
pcVersiuneProgram = Get_Version()
|
||||
lcFileVersiuneDB = gcAppPath + "versiune_db.txt"
|
||||
If File(lcFileVersiuneDB)
|
||||
pcVersiuneDB = Alltrim(Filetostr(lcFileVersiuneDB)) && 2007_06_15_01
|
||||
Endif
|
||||
|
||||
lnSucces = goExecutor.oFunction2Value("pack_migrare.VerificaVersiune('" + pcNumeProgram + "', '" + pcVersiuneProgram + "', '" + pcVersiuneDB + "')", @pcReturnValue)
|
||||
If lnSucces < 0
|
||||
AMESSAGEBOX(goExecutor.cEroare, 0 + 16, "Eroare")
|
||||
Else
|
||||
*!* SELECT COUNT(*) AS nr FROM versiune WHERE SUBSTR(script_final,4,13) = lcVersiuneDB INTO CURSOR crsVersiuneTemp
|
||||
Do Case
|
||||
Case pcNumeProgram $ Upper(pcReturnValue)
|
||||
llOk = .F.
|
||||
lcMesaj = "Trebuie actualizat " + pcNumeProgram + " la versiunea " + Getwordnum(pcReturnValue, 2, ":") + Chr(13) + Chr(10) + ;
|
||||
"Versiunea actuala este " + Getwordnum(pcReturnValue, 3, ":")
|
||||
|
||||
Case "DB" $ Upper(pcReturnValue)
|
||||
llOk = .F.
|
||||
lcMesaj = "Trebuie actualizata baza de date la versiunea " + Getwordnum(pcReturnValue, 2, ":") + Chr(13) + Chr(10) + ;
|
||||
"Versiunea actuala este " + Getwordnum(pcReturnValue, 3, ":")
|
||||
Endcase
|
||||
Endif
|
||||
|
||||
*!* SELECT versiune_program, versiune_bd FROM versiune_programe WHERE UPPER(PROGRAM) = UPPER(gcNumeProgram)
|
||||
If !Empty(lcMesaj)
|
||||
AMESSAGEBOX(lcMesaj, 0 + 48, "Actualizare")
|
||||
Endif
|
||||
Return llOk
|
||||
Endproc && verificare_versiune
|
||||
******************************************************************************************
|
||||
Function initializeaza_sucursala()
|
||||
Local lcSel, lnSucces, llReturn
|
||||
llReturn = .T.
|
||||
lcSel = [begin pack_contafin.set_id_sucursala(?gnIdSucursala); end;]
|
||||
lnSucces = goExecutor.oExecute(lcSel)
|
||||
If lnSucces < 0
|
||||
AMESSAGEBOX(goExecutor.cEroare, 0 + 16, "Eroare")
|
||||
llReturn = .F.
|
||||
Endif
|
||||
Release lcSel, lnSucces
|
||||
Return llReturn
|
||||
Endfunc
|
||||
******************************************************************************************
|
||||
Function initializeaza_firma()
|
||||
Local lcSel, lnSucces, llReturn
|
||||
llReturn = .T.
|
||||
lcSel = [begin pack_contafin.set_id_firma(?gnIdFirma); end;]
|
||||
lnSucces = goExecutor.oExecute(lcSel)
|
||||
If lnSucces < 0
|
||||
AMESSAGEBOX(goExecutor.cEroare, 0 + 16, "Eroare")
|
||||
llReturn = .F.
|
||||
Endif
|
||||
Release lcSel, lnSucces
|
||||
Return llReturn
|
||||
Endfunc
|
||||
************************************* INCEPUT: actualizeaza_optiuni_utilizator ***************************************
|
||||
Procedure actualizeaza_optiuni_utilizator
|
||||
Local lnSucces
|
||||
Store .F. To llReturn
|
||||
lcSql = 'select * from optiuni_util where id_util = ?gnIdUtil order by varname'
|
||||
lcCursor = 'crsOptiuniUtilizator'
|
||||
|
||||
lnSucces = goExecutor.oExecute(lcSql, lcCursor)
|
||||
|
||||
If lnSucces < 0
|
||||
AMESSAGEBOX(goExecutor.cEroare, 0 + 16, "Eroare")
|
||||
Endif
|
||||
|
||||
Return lnSucces
|
||||
Endproc
|
||||
******************************************* SFARSIT: actualizeaza_optiuni_utilizator *******************************************
|
||||
******************************************* INCEPUT: citeste_optiune_utilizator*******************************************
|
||||
Function citeste_optiune_utilizator
|
||||
Lparameters tcOptiune
|
||||
|
||||
Local lcOptiune, lcValOptiune
|
||||
lcOptiune = tcOptiune
|
||||
lcValOptiune = ''
|
||||
If Used('crsOptiuniUtilizator')
|
||||
Select Nvl(varvalue, '') As varvalue ;
|
||||
From crsOptiuniUtilizator ;
|
||||
With (Buffering = .T.) ;
|
||||
Where Upper(Alltrim(varname)) = Upper(Alltrim(tcOptiune)) ;
|
||||
Into Cursor crsOptiuneUtilizator
|
||||
|
||||
Select crsOptiuneUtilizator
|
||||
lcValOptiune = varvalue
|
||||
Endif
|
||||
Return m.lcValOptiune
|
||||
Endfunc && citeste_optiune_utilizator
|
||||
******************************************* SFARSIT: citeste_optiune_utilizator *******************************************
|
||||
******************************************* INCEPUT: scrie_optiune_utilizator*******************************************
|
||||
Procedure scrie_optiune_utilizator
|
||||
Parameters tcOptiune, tcValOptiune, tcDescriereOptiune
|
||||
|
||||
Private pcOptiune, pcValOptiune, pcDescriereOptiune
|
||||
pcOptiune = Upper(tcOptiune)
|
||||
pcValOptiune = tcValOptiune
|
||||
pcDescriereOptiune = tcDescriereOptiune
|
||||
|
||||
*lcSql='update optiuni_util set varvalue = ?pcValOptiune where varname=?pcOptiune and id_util = ?gnIdUtil'
|
||||
|
||||
*!* lcSql=[MERGE INTO optiuni_util ]+;
|
||||
*!* [USING dual ]+;
|
||||
*!* [on (UPPER(varname) = ?pcOptiune and id_util = ?gnIdUtil) ]+;
|
||||
*!* [WHEN MATCHED THEN ]+;
|
||||
*!* [ UPDATE SET varvalue = ?pcValOptiune ]+;
|
||||
*!* [WHEN NOT MATCHED THEN ]+;
|
||||
*!* [INSERT (varname, id_util, varvalue) ]+;
|
||||
*!* [VALUES (?pcOptiune, ?gnIdUtil, ?pcValOptiune);]
|
||||
|
||||
lcSql = [begin PACK_SESIUNE.SetOptiuneUtilizator(?pcOptiune,?gnIdUtil, ?pcValOptiune, ?pcDescriereOptiune); end;]
|
||||
lnSucces = goExecutor.oExecute(lcSql)
|
||||
|
||||
If lnSucces < 0
|
||||
AMESSAGEBOX(goExecutor.cEroare, 0 + 16, "Eroare")
|
||||
Else
|
||||
Select crsOptiuniUtilizator
|
||||
Locate For Upper(varname) = pcOptiune
|
||||
If Found()
|
||||
Replace varvalue With pcValOptiune
|
||||
Else
|
||||
Insert Into crsOptiuniUtilizator (varname, id_util, vardesc, varvalue) Values (m.pcOptiune, m.gnIdUtil, m.pcDescriereOptiune, m.pcValOptiune)
|
||||
Endif
|
||||
ENDIF
|
||||
TABLEUPDATE( 1, .F., 'crsOptiuniUtilizator')
|
||||
|
||||
Return lnSucces
|
||||
Endproc && scrie_optiune_utilizator
|
||||
******************************************* SFARSIT: scrie_optiune_utilizator *******************************************
|
||||
|
||||
Procedure actualizeaza_optiuni
|
||||
Local lnSucces
|
||||
llReturn = .F.
|
||||
lcSql = 'select * from optiuni order by varname'
|
||||
lcCursor = 'crsOptiuni'
|
||||
|
||||
USE IN (SELECT('crsOptiuni'))
|
||||
lnSucces = goExecutor.oExecute(lcSql, lcCursor)
|
||||
|
||||
If m.lnSucces < 0
|
||||
AMESSAGEBOX(goExecutor.cEroare, 0 + 16, "Eroare")
|
||||
Endif
|
||||
|
||||
Return m.lnSucces
|
||||
Endproc
|
||||
******************************************* SFARSIT: actualizeaza_optiuni *******************************************
|
||||
|
||||
******************************************* INCEPUT: citeste_optiune *******************************************
|
||||
Function citeste_optiune
|
||||
Parameters tcOptiune, tlValue2
|
||||
* tlValue2: .T. optiunea se citeste din optiuni.varvalue2, in loc de optiuni.varvalue
|
||||
|
||||
Local lcOptiune, lcValOptiune, lcSelect
|
||||
lcOptiune = tcOptiune
|
||||
lcValOptiune = ''
|
||||
lcSelect = Select()
|
||||
|
||||
Select crsOptiuni
|
||||
Locate For Upper(Alltrim(varname)) = Upper(Alltrim(m.tcOptiune))
|
||||
If Found()
|
||||
If m.tlValue2
|
||||
lcValOptiune = varvalue2
|
||||
Else
|
||||
lcValOptiune = varvalue
|
||||
Endif
|
||||
Endif
|
||||
|
||||
Select (m.lcSelect)
|
||||
Return lcValOptiune
|
||||
Endfunc && citeste_optiune
|
||||
******************************************* SFARSIT: citeste_optiune *******************************************
|
||||
|
||||
******************************************* INCEPUT: scrie_optiune *******************************************
|
||||
Procedure scrie_optiune
|
||||
Lparameters tcOptiune, tcValOptiune, tcDescriereOptiune, tlValue2
|
||||
* tlValue2: .T. optiunea se scrie in optiuni.varvalue2, in loc de optiuni.varvalue
|
||||
|
||||
Private pcOptiune, pcValOptiune, pcDescriereOptiune, pcTipOptiune
|
||||
|
||||
Local lcSql, lcValOptiune, lnSucces
|
||||
pcOptiune = Upper(tcOptiune)
|
||||
pcValOptiune = m.tcValOptiune
|
||||
lcValOptiune = m.tcValOptiune
|
||||
pcDescriereOptiune = tcDescriereOptiune
|
||||
Do Case
|
||||
Case Type('tcValOptiune') = 'C'
|
||||
pcTipOptiune = 'CHARACTER'
|
||||
Case Type('tcValOptiune') = 'N'
|
||||
pcTipOptiune = 'NUMERIC'
|
||||
lcValOptiune = TRANSFORM(m.tcValOptiune)
|
||||
Case Inlist(Type('tcValOptiune'), 'D', 'T')
|
||||
pcTipOptiune = 'DATE'
|
||||
lcValOptiune = DTOC(m.tcValOptiune)
|
||||
Case Type('tcValOptiune') = 'L'
|
||||
pcTipOptiune = 'LOGICAL'
|
||||
lcValOptiune = TRANSFORM(m.tcValOptiune)
|
||||
Otherwise
|
||||
pcTipOptiune = 'CHARACTER'
|
||||
Endcase
|
||||
|
||||
If m.tlValue2
|
||||
lcSql = [begin PACK_SESIUNE.SetOptiune2(?pcOptiune, ?pcValOptiune, ?pcTipOptiune, ?pcDescriereOptiune); end;]
|
||||
Else
|
||||
lcSql = [begin PACK_SESIUNE.SetOptiune(?pcOptiune, ?pcValOptiune, ?pcTipOptiune, ?pcDescriereOptiune); end;]
|
||||
Endif
|
||||
lnSucces = goExecutor.oExecute(lcSql)
|
||||
|
||||
If lnSucces < 0
|
||||
AMESSAGEBOX(goExecutor.cEroare, 0 + 16, "Eroare")
|
||||
Else
|
||||
Select crsOptiuni
|
||||
Locate For Upper(varname) = pcOptiune
|
||||
If Found()
|
||||
If m.tlValue2
|
||||
Replace varvalue2 With m.lcValOptiune
|
||||
Else
|
||||
Replace varvalue With m.lcValOptiune
|
||||
Endif
|
||||
Else
|
||||
If m.tlValue2
|
||||
Insert Into crsOptiuni (varname, vardesc, varvalue2) Values (m.pcOptiune, m.pcDescriereOptiune, m.lcValOptiune)
|
||||
Else
|
||||
Insert Into crsOptiuni (varname, vardesc, varvalue) Values (m.pcOptiune, m.pcDescriereOptiune, m.lcValOptiune)
|
||||
Endif
|
||||
ENDIF
|
||||
TABLEUPDATE( 1, .F., 'crsOptiuni')
|
||||
Endif
|
||||
|
||||
Return lnSucces
|
||||
Endproc && scrie_optiune
|
||||
1945
COMUN/programe/ointroduceri.prg
Normal file
1945
COMUN/programe/ointroduceri.prg
Normal file
File diff suppressed because it is too large
Load Diff
129
COMUN/programe/ointroduceri_efactura.prg
Normal file
129
COMUN/programe/ointroduceri_efactura.prg
Normal file
@@ -0,0 +1,129 @@
|
||||
* ointroduceri_efactura.prg
|
||||
|
||||
Procedure importEfacturaPrimite
|
||||
DO vizImportEFactura WITH 'PRIMITE'
|
||||
ENDPROC
|
||||
|
||||
PROCEDURE importEfacturaTrimise
|
||||
DO vizImportEFactura WITH 'TRIMISE'
|
||||
ENDPROC
|
||||
|
||||
PROCEDURE vizImportEFactura
|
||||
LPARAMETERS tcTip
|
||||
* tcTIP: PRIMITE/TRIMISE
|
||||
|
||||
Private poFacturi, poFacturiDetalii
|
||||
Local loFrmFacturi As "frm_efactura_import", lcTip, llPrimite
|
||||
Local lcData1, lcFiltru, lcFiltruOriginal, lcOrder, lcSchema, lcgroup, llAfiseaza, llModParam
|
||||
poFacturi = Null
|
||||
poFacturiDetalii = Null
|
||||
|
||||
lcTip = IIF(TYPE('tcTip') = 'C' and !EMPTY(m.tcTip), UPPER(ALLTRIM(m.tcTip)), 'PRIMITE')
|
||||
llPrimite = (m.lcTip = 'PRIMITE')
|
||||
|
||||
lcTabel = IIF(m.lcTip = 'PRIMITE', 'anaf_vefactura_primit', 'anaf_vefactura_trimis')
|
||||
|
||||
* FACTURI PRIMITE/TRIMISE
|
||||
lcData1 = '01' + Padl(Int(m.gnLuna),2,'0') + Alltrim(Str(m.gnAn))
|
||||
TEXT To lcSchema Noshow
|
||||
ales N(1), id N(20), id_fact N(20), data_act D, data_scad D, numar_act C(30), xfurnizor C(200), xclient C(200), partener C(200), id_incarcare C(36), id_descarcare c(36) null, tip_mesaj_raspuns C(50) null,mesaj_raspuns C(250) null, data_raspuns D null, trimis N(1) null, data_trimis T null, cod_fiscal C(30) null, cod_fiscal_emitent C(30) null, cod_fiscal_beneficiar C(30) null, detalii M null, total_fara_tva N(16,4), total_tva N(16,4), total_cu_tva N(16,4), discount_fara_tva N(16,4), taxe_fara_tva N(16,4), valoare_fara_tva N(16,4), total_de_plata N(16,4), nume_valuta C(5), test N(1) null, jtotctva N(16,4), descriere M null, detalii_plata M null, diferenta N(16,4), procesat N(1)
|
||||
ENDTEXT
|
||||
|
||||
TEXT To lcSelect TEXTMERGE Noshow
|
||||
SELECT 0 as ales, id, id_fact, data_act, data_scad, numar_act, xfurnizor, xclient, partener, id_incarcare, id_descarcare, tip_mesaj_raspuns, mesaj_raspuns, data_raspuns, NVL(trimis,0) as trimis, data_trimis, cod_fiscal, cod_fiscal_emitent, cod_fiscal_beneficiar, detalii, total_fara_tva, total_tva, total_cu_tva, discount_fara_tva, taxe_fara_tva, valoare_fara_tva, total_de_plata, nume_valuta, test, jtotctva, descriere, detalii_plata, NVL(total_cu_tva, 0.00)-NVL(jtotctva, 0.00) as diferenta, procesat FROM <<m.lcTabel>>
|
||||
ENDTEXT
|
||||
lcOrder = [data_act,numar_act,data_raspuns]
|
||||
lcgroup = []
|
||||
lcFiltru = [(extract(year from data_act) = ?gnAn and extract(month from data_act) = ?gnLuna) or (data_act is null and data_raspuns >= to_date('] + m.lcData1 + [','ddmmyyyy'))]
|
||||
lcFiltruOriginal = []
|
||||
llModParam = .T.
|
||||
llAfiseaza = .F.
|
||||
|
||||
gencursor('poFacturi', 'crsFacturi', lcSelect, lcFiltru, lcSchema, lcOrder, llAfiseaza, lcgroup, llModParam, lcFiltruOriginal)
|
||||
poFacturi.ca_baza1.afisare()
|
||||
Select crsFacturi
|
||||
Go Top
|
||||
|
||||
* DETALII FACTURI PRIMITE/TRIMISE/EMISE
|
||||
TEXT To lcSchema Noshow
|
||||
id_tip N(10) null, cont c(4) null, id_articol N(20) null, id_gestiune N(20) null, id N(20), id_efactura N(20), nr N(5), articol V(250), descriere V(250), detalii M, cantitate N(18,6), um V(20), um_iso V(50), id_um I, um_roa V(50), pret N(20,6), proctva N(7,2), valoarefaratva N(20,6), in_stoc N(1), articol_roa V(250)
|
||||
ENDTEXT
|
||||
TEXT To lcSelect Noshow
|
||||
select CAST(0 as number(10)) as id_tip, CAST('' as Varchar2(4)) as cont, CAST(null as Number(20)) as id_articol, CAST(null as Number(20)) as id_gestiune, id, id_efactura, nr, articol, descriere, detalii, cantitate, um, um_iso, id_um, um_roa, pret, proctva, valoarefaratva, 0 as in_stoc, CAST('' as Varchar2(250)) as articol_roa from anaf_vefactura_detalii
|
||||
ENDTEXT
|
||||
lcOrder = [nr]
|
||||
lcgroup = []
|
||||
lcFiltru = [1=2] && IIF(!EMPTY(NVL(crsFacturiPrimite.id,0)), [id_efactura=] + ALLTRIM(STR(crsFacturiPrimite.id)), [1=2])
|
||||
lcFiltruOriginal = []
|
||||
llModParam = .T.
|
||||
llAfiseaza = .F.
|
||||
|
||||
gencursor('poFacturiDetalii', 'crsDetaliiFacturi', lcSelect, lcFiltru, lcSchema, lcOrder, llAfiseaza, lcgroup, llModParam, lcFiltruOriginal)
|
||||
poFacturiDetalii.ca_baza1.afisare()
|
||||
|
||||
* Cursoare helper
|
||||
CREATE CURSOR cTip (id I, in_stoc N(1), tip V(50), cont V(4))
|
||||
INSERT INTO cTip (tip, cont, in_stoc) VALUES ('Nedefinit','', 0)
|
||||
INSERT INTO cTip (tip, cont, in_stoc) VALUES ('Ch. mat. nestoc.','604', 0)
|
||||
INSERT INTO cTip (tip, cont, in_stoc) VALUES ('Ch. Energie','6051', 0)
|
||||
INSERT INTO cTip (tip, cont, in_stoc) VALUES ('Ch. Apa','6052', 0)
|
||||
INSERT INTO cTip (tip, cont, in_stoc) VALUES ('Ch. Gaze','6053', 0)
|
||||
INSERT INTO cTip (tip, cont, in_stoc) VALUES ('Ch. chirii','6123', 0)
|
||||
INSERT INTO cTip (tip, cont, in_stoc) VALUES ('Ch. colaboratori','621', 0)
|
||||
INSERT INTO cTip (tip, cont, in_stoc) VALUES ('Ch. comisioane','622', 0)
|
||||
INSERT INTO cTip (tip, cont, in_stoc) VALUES ('Ch. protocol','623', 0)
|
||||
INSERT INTO cTip (tip, cont, in_stoc) VALUES ('Ch. transp. bunuri/pers.','624', 0)
|
||||
INSERT INTO cTip (tip, cont, in_stoc) VALUES ('Ch. deplasari','625', 0)
|
||||
INSERT INTO cTip (tip, cont, in_stoc) VALUES ('Ch. posta/telecom.','626', 0)
|
||||
INSERT INTO cTip (tip, cont, in_stoc) VALUES ('Ch. terti','628', 0)
|
||||
INSERT INTO cTip (tip, cont, in_stoc) VALUES ('Altele','461', 0)
|
||||
INSERT INTO cTip (tip, cont, in_stoc) VALUES ('-----------------','', 0)
|
||||
INSERT INTO cTip (tip, cont, in_stoc) VALUES ('Marfuri','371', 1)
|
||||
INSERT INTO cTip (tip, cont, in_stoc) VALUES ('Materii prime','301', 1)
|
||||
INSERT INTO cTip (tip, cont, in_stoc) VALUES ('Materiale auxiliare','3021', 1)
|
||||
INSERT INTO cTip (tip, cont, in_stoc) VALUES ('Ambalaje','381', 1)
|
||||
INSERT INTO cTip (tip, cont, in_stoc) VALUES ('Obiecte de inventar','303', 1)
|
||||
INSERT INTO cTip (tip, cont, in_stoc) VALUES ('Amenajari provizorii','323', 1)
|
||||
INSERT INTO cTip (tip, cont, in_stoc) VALUES ('Mat. spre prelucrare','8032', 1)
|
||||
INSERT INTO cTip (tip, cont, in_stoc) VALUES ('Mat. in pastrare/consig.','8033', 1)
|
||||
INSERT INTO cTip (tip, cont, in_stoc) VALUES ('Discount financiar','767', 1)
|
||||
INSERT INTO cTip (tip, cont, in_stoc) VALUES ('Combustibili','3022', 1)
|
||||
INSERT INTO cTip (tip, cont, in_stoc) VALUES ('Piese de schimb','3024', 1)
|
||||
INSERT INTO cTip (tip, cont, in_stoc) VALUES ('Alte mat. consumabile','3028', 1)
|
||||
INSERT INTO cTip (tip, cont, in_stoc) VALUES ('Discount comercial','609', 1)
|
||||
INSERT INTO cTip (tip, cont, in_stoc) VALUES ('Ambalaje SGR','461', 0)
|
||||
|
||||
REPLACE ALL id WITH RECNO()-1 IN cTip
|
||||
GO TOP IN cTip
|
||||
INDEX on id TAG id
|
||||
|
||||
*!* llSucces = goExecutor.oExecuta("select id_articol, denumire, codmat from vnom_articole where inactiv = 0", 'cArticole')
|
||||
|
||||
*!* SELECT cArticole
|
||||
*!* INDEX on id_articol TAG id_articol
|
||||
|
||||
llSucces = goExecutor.oExecuta([select distinct nume_gestiune,cgest,id_gestiune,nr_pag,cont from vgest_gestiuni_util where inactiv = 0 and id_util = ] + Alltrim(Str(m.gnIdUtil)), 'cGestiuni')
|
||||
SELECT cGestiuni
|
||||
INDEX on id_gestiune TAG id_gest
|
||||
|
||||
llSucces = goExecutor.oExecuta("select cod_um_iso, um_iso from syn_vnom_um_iso", 'cUMISO')
|
||||
SELECT cUMISO
|
||||
INDEX on cod_um_iso TAG cod_um_iso
|
||||
|
||||
llSucces = goExecutor.oExecuta("select id, um, cod_um_iso, um_iso from vnom_um", 'cUM')
|
||||
SELECT cUM
|
||||
INDEX on id TAG id
|
||||
|
||||
Select crsFacturi
|
||||
loFrmFacturi = Createobject("frm_import_efactura", m.llPrimite)
|
||||
* Do Form anaf_efactura Name loFrmBorderou Linked With this Noshow
|
||||
|
||||
loFrmFacturi.Show(1)
|
||||
|
||||
Use In (Select('crsFacturi'))
|
||||
Use In (Select('crsDetaliiFacturi'))
|
||||
Use In (Select('cTip'))
|
||||
Use In (Select('cArticole'))
|
||||
Use In (Select('cGestiuni'))
|
||||
Endproc && vizFacturiPrimite
|
||||
|
||||
414
COMUN/programe/omeniu_initializari.prg
Normal file
414
COMUN/programe/omeniu_initializari.prg
Normal file
@@ -0,0 +1,414 @@
|
||||
**********************************************************************
|
||||
* Program....: OMENIU_INITIALIZARI.PRG
|
||||
* Version....:
|
||||
* Author.....: MMUTU # marius.mutu
|
||||
* Date.......: 15 June 2006, 15:21:31
|
||||
* Notice.....: Copyright <20> 2006,
|
||||
* All Rights Reserved.
|
||||
* Compiler...: Visual FoxPro 09.00.0000.2412 for Windows
|
||||
* Abstract...:
|
||||
* Changes....: marius.mutu, Created 15 June 2006 / 15:21:31
|
||||
* Parameters.:
|
||||
* called by..:
|
||||
* Purpose....:
|
||||
**********************************************************************
|
||||
|
||||
|
||||
*------------------------------------------------------------
|
||||
* Description: configurare_note
|
||||
* Parameters: tlCRM
|
||||
* Return:
|
||||
* Use:
|
||||
*------------------------------------------------------------
|
||||
* Id Date By Description
|
||||
* 1 10/12/2004 lavinia.viziru Initial Creation
|
||||
*
|
||||
*------------------------------------------------------------
|
||||
Procedure configurare_note
|
||||
Parameters tlCRM
|
||||
|
||||
Local llCRM
|
||||
Local ofrm_note As Form
|
||||
Local lcCursor, lcCursor0, lcFiltru, lcForm, lcOrder, lcSchema, lcSelect, lcSelect0, lnSucces
|
||||
Local lnSucces0
|
||||
llCRM = tlCRM && folosesc crm_note_vanzari de pe server
|
||||
|
||||
***-----------------------------------------------------------------------------------------------------------------------------
|
||||
If llCRM
|
||||
Private poNote_vanzari
|
||||
Store '' To poNote_vanzari
|
||||
|
||||
Local lcSchema1, lcSelect1, lcOrder1, lcFiltru1, llAfiseaza, lcgroup, llModParam, lcFiltruOriginal
|
||||
lcSchema1 = []
|
||||
lcSelect1 = [select denumire as meniu, nv.* from vcrm_note_vanzari nv]
|
||||
lcOrder1 = [denumire]
|
||||
lcgroup = []
|
||||
lcFiltru1 = []
|
||||
lcFiltruOriginal = []
|
||||
llModParam = .T.
|
||||
llAfiseaza = .F.
|
||||
|
||||
gencursor('poNote_vanzari', 'nom_meniu', lcSelect1, lcFiltru1, lcSchema1, lcOrder1, llAfiseaza, lcgroup, llModParam, lcFiltruOriginal)
|
||||
poNote_vanzari.ca_baza1.afisare()
|
||||
|
||||
Else
|
||||
|
||||
Select nom_meniu
|
||||
Set Order To 3 && Meniu
|
||||
Go Top
|
||||
Endif
|
||||
***-----------------------------------------------------------------------------------------------------------------------------
|
||||
lcSelect0 = [select cont, acont from ] + gcS + [.plcont where an = ] + Alltrim(Str(gnAn))
|
||||
lcCursor0 = [cplcont]
|
||||
|
||||
lnSucces0 = goExecutor.oExecute(lcSelect0, lcCursor0)
|
||||
If lnSucces0 < 0
|
||||
aMESSAGEBOX(goExecutor.cEroare, 0 + 16, 'Eroare')
|
||||
Return
|
||||
Endif
|
||||
***-----------------------------------------------------------------------------------------------------------------------------
|
||||
Private ponote_contab, pcschema, pcselect
|
||||
Store '' To ponote_contab
|
||||
lcSchema1 = []
|
||||
lcSelect1 = [select * from ] + Iif(gnAn >= Iif(Type('gnAnFormNou') = 'U', 2007, gnAnFormNou), [vnote_contabile], [note_contabile])
|
||||
lcOrder1 = [id_set, ordine]
|
||||
lcgroup = []
|
||||
lcFiltru1 = []
|
||||
lcFiltruOriginal = []
|
||||
llModParam = .T.
|
||||
llAfiseaza = .F.
|
||||
|
||||
gencursor('ponote_contab', 'cnote_contab', lcSelect1, lcFiltru1, lcSchema1, lcOrder1, llAfiseaza, lcgroup, llModParam, lcFiltruOriginal)
|
||||
ponote_contab.ca_baza1.afisare()
|
||||
|
||||
***************************************************************
|
||||
*** Note definite de utilizator
|
||||
***************************************************************
|
||||
Private poCategorii
|
||||
poCategorii = Null
|
||||
lcSchema = []
|
||||
lcSelect = [select categorie, id_categorie, ordine from xSetsCategorii where sters = 0 union select 'FARA CATEGORIE' as categorie, 0 as id_categorie, 0 as ordine from dual]
|
||||
lcOrder = [ordine]
|
||||
lcgroup = []
|
||||
lcFiltru = [1=2]
|
||||
lcFiltruOriginal = []
|
||||
llModParam = .T.
|
||||
llAfiseaza = .F.
|
||||
|
||||
gencursor('poCategorii', 'crsECategorii', lcSelect, lcFiltru, lcSchema, lcOrder, llAfiseaza, lcgroup, llModParam, lcFiltruOriginal)
|
||||
poCategorii.ca_baza1.afisare()
|
||||
|
||||
Private poSets
|
||||
poSets = Null
|
||||
lcSchema = []
|
||||
lcSelect = [select * from xSets]
|
||||
lcOrder = [nume_set]
|
||||
lcgroup = []
|
||||
lcFiltru = [1=2]
|
||||
lcFiltruOriginal = [id_set >= 1000000]
|
||||
llModParam = .T.
|
||||
llAfiseaza = .F.
|
||||
|
||||
gencursor('poSets', 'crsESets', lcSelect, lcFiltru, lcSchema, lcOrder, llAfiseaza, lcgroup, llModParam, lcFiltruOriginal)
|
||||
poSets.ca_baza1.afisare()
|
||||
|
||||
|
||||
Private poRequest
|
||||
poRequest = Null
|
||||
lcSchema = []
|
||||
lcOrder = [r.nr_item]
|
||||
lcgroup = []
|
||||
lcFiltru = [1=2]
|
||||
lcFiltruOriginal = []
|
||||
llModParam = .T.
|
||||
llAfiseaza = .F.
|
||||
|
||||
Text To lcSelect Textmerge Noshow
|
||||
select i.label_item,
|
||||
s.nume_set,
|
||||
r.valoare_default,
|
||||
r.nr_item,
|
||||
r.id_item,
|
||||
r.id_set,
|
||||
i.fis_lista,
|
||||
i.id_fisier,
|
||||
i.camp_lista,
|
||||
rpad(case
|
||||
when i.fis_lista is not null then
|
||||
pack_util.GetText(i.fis_lista,
|
||||
i.id_fisier,
|
||||
CASE WHEN LENGTH(TRIM(TRANSLATE(r.valoare_default, '0123456789+-.', ' '))) IS NULL
|
||||
THEN to_number(r.valoare_default)
|
||||
ELSE 0
|
||||
END,
|
||||
replace(i.camp_lista, ',', ' || '' '' || '))
|
||||
ELSE
|
||||
r.valoare_default
|
||||
end,
|
||||
100,
|
||||
' ') as valoare_default_text
|
||||
from xrequest r
|
||||
join xsets s
|
||||
on s.id_set = r.id_set
|
||||
join xitems i
|
||||
on i.id_item = r.id_item
|
||||
Endtext
|
||||
|
||||
gencursor('poRequest', 'crsERequest', lcSelect, lcFiltru, lcSchema, lcOrder, llAfiseaza, lcgroup, llModParam, lcFiltruOriginal)
|
||||
poRequest.ca_baza1.afisare()
|
||||
|
||||
|
||||
Private poNote
|
||||
poNote = Null
|
||||
lcSchema = []
|
||||
lcOrder = [a.nr_nota]
|
||||
lcgroup = []
|
||||
lcFiltru = [1=2]
|
||||
lcFiltruOriginal = []
|
||||
llModParam = .T.
|
||||
llAfiseaza = .F.
|
||||
|
||||
Text To lcSelect Textmerge Noshow
|
||||
SELECT decode(NVL(a.id_jtva_coloana, 0), 0, 0, 1) As Cu_tva,
|
||||
Cast(0 As Number(2)) As tipnota,
|
||||
cast(0 as number(20)) as id_act,
|
||||
cast(0 as number(2)) as luna,
|
||||
cast(0 as number(4)) as an,
|
||||
cast(0 as number(20)) as cod,
|
||||
a.dataireg,
|
||||
a.serie_act,
|
||||
a.nract,
|
||||
a.dataact,
|
||||
a.explicatia,
|
||||
a.xscd as scd,
|
||||
a.xascd as ascd,
|
||||
a.xscc as scc,
|
||||
a.xascc as ascc,
|
||||
a.suma,
|
||||
a.pereched,
|
||||
a.perechec,
|
||||
a.suma_val,
|
||||
a.id_valuta,
|
||||
v.nume_val,
|
||||
a.curs,
|
||||
a.datascad,
|
||||
0 AS neimpozab,
|
||||
a.nnir,
|
||||
cast(0 as number(5)) as id_util,
|
||||
'' AS util,
|
||||
sysdate as dataora,
|
||||
cast(0 as number(5)) as id_utils,
|
||||
'' AS utils,
|
||||
sysdate as dataoras,
|
||||
a.id_responsabil,
|
||||
resp.denumire AS nresp,
|
||||
a.id_venchelt,
|
||||
venchelt.explicatie AS dst_chlt,
|
||||
a.id_lucrare,
|
||||
lucr.nrord,
|
||||
a.id_ctr,
|
||||
(case when ctr.numar is not null then ctr.numar || '/' else '' end) || TO_CHAR(ctr.data,'DD.MM.YYYY') as contract,
|
||||
a.id_sectie,
|
||||
sectii.sectie,
|
||||
a.proc_tva,
|
||||
a.id_set,
|
||||
NVL(a.id_fact, 0) as id_fact,
|
||||
a.id_partd,
|
||||
part1.denumire AS partd,
|
||||
a.id_partc,
|
||||
part.denumire AS partc,
|
||||
cast(0 as number(5)) as id_sucursala,
|
||||
'' as sucursala,
|
||||
a.id_fdoc,
|
||||
fdoc.fel_document AS fdoc,
|
||||
a.explicatia4,
|
||||
a.explicatia5,
|
||||
cast(0 as number(5)) as id_gestin,
|
||||
'' AS gestin,
|
||||
cast(0 as number(5)) as id_gestout,
|
||||
'' AS gestout,
|
||||
NVL(a.id_factd, 0) as id_factd,
|
||||
NVL(a.id_factc, 0) as id_factc,
|
||||
a.id_jtva_coloana,
|
||||
jtva.denumire as explicatie_tva,
|
||||
cast(0 AS NUMBER(1)) AS validat,
|
||||
cast(0 as number(5)) as id_utilv,
|
||||
'' as utilv,
|
||||
SYSDATE AS dataorav,
|
||||
NVL(doc.tva_incasare,0) as tva_incasare
|
||||
from xnote a
|
||||
LEFT JOIN nom_fdoc fdoc ON a.id_fdoc = fdoc.id_fdoc
|
||||
LEFT JOIN nom_parteneri part ON a.id_partc = part.id_part
|
||||
LEFT JOIN nom_parteneri part1 ON a.id_partd = part1.id_part
|
||||
LEFT JOIN vnom_venchel venchelt ON a.id_venchelt = venchelt.id_venchelt
|
||||
LEFT JOIN nom_parteneri resp ON a.id_responsabil = resp.id_part
|
||||
LEFT JOIN nom_sectii sectii ON a.id_sectie = sectii.id_sectie
|
||||
LEFT JOIN vnom_lucrari lucr ON a.id_lucrare = lucr.id_lucrare
|
||||
LEFT JOIN nom_valute v ON a.id_valuta = v.id_valuta
|
||||
LEFT JOIN contracte ctr ON ctr.id_ctr = a.id_ctr
|
||||
LEFT JOIN jtva_coloane jtva ON a.id_jtva_coloana = jtva.id_jtva_coloana
|
||||
LEFT JOIN documente doc on a.id_fact = doc.id_doc
|
||||
Endtext
|
||||
gencursor('poNote', 'crsENote', lcSelect, lcFiltru, lcSchema, lcOrder, llAfiseaza, lcgroup, llModParam, lcFiltruOriginal)
|
||||
poNote.ca_baza1.afisare()
|
||||
***************************************************************
|
||||
|
||||
|
||||
lcCursor0 = [ctva]
|
||||
lcCursor = [ccalendar]
|
||||
If gnAn >= Iif(Type('gnAnFormNou') = 'U', 2007, gnAnFormNou)
|
||||
lcForm = [frm_config_note_contabile2007]
|
||||
Else
|
||||
lcSelect0 = [select descriere as tva, procent as ptva from ] + gcS + [.cote_tva where an = ?gnAn and luna = ?gnLuna]
|
||||
lnSucces0 = goExecutor.oExecute(lcSelect0, lcCursor0)
|
||||
If lnSucces0 < 0
|
||||
aMESSAGEBOX(goExecutor.cEroare, 0 + 16, 'Eroare')
|
||||
Return
|
||||
Endif
|
||||
|
||||
lcSelect = [select ctvam from ] + gcS + [.calendar where an = '] + Alltrim(Str(gnAn)) + ;
|
||||
[' and nl = '] + Alltrim(Str(gnAn)) + [']
|
||||
lnSucces = goExecutor.oExecute(lcSelect, lcCursor)
|
||||
If lnSucces < 0
|
||||
aMESSAGEBOX(goExecutor.cEroare, 0 + 16, 'Eroare')
|
||||
Return
|
||||
Endif
|
||||
|
||||
Private pnctvam
|
||||
Select ccalendar
|
||||
pnctvam = ccalendar.ctvam
|
||||
|
||||
lcForm = [frm_config_note_contabile]
|
||||
Endif
|
||||
*ofrm_note = CREATEOBJECT(lcForm,llCRM)
|
||||
Do Form (lcForm) Name ofrm_note Linked With m.llCRM Noshow
|
||||
ofrm_note.Show(1)
|
||||
|
||||
|
||||
Release ponote_contab
|
||||
Use In (select(lcCursor0))
|
||||
Use In (select(lcCursor))
|
||||
Use In (SELECT('cnote_contab'))
|
||||
If m.llCRM
|
||||
Use In (SELECT('nom_meniu'))
|
||||
ENDIF
|
||||
USE IN (select('crsECategorii'))
|
||||
USE IN (select('crsESets'))
|
||||
Endproc
|
||||
******************************* SFARSIT: configurare_note ************************************
|
||||
|
||||
|
||||
*------------------------------------------------------------
|
||||
* Description: configurare analitice
|
||||
* Parameters:
|
||||
* Return:
|
||||
* Use:
|
||||
*------------------------------------------------------------
|
||||
* Id Date By Description
|
||||
* 1 15/06/2006 marius.mutu Initial Creation
|
||||
*
|
||||
*------------------------------------------------------------
|
||||
Procedure configurare_analitice
|
||||
|
||||
Private poConfig
|
||||
Local lcSchema, lcSelect, lcOrder, lcgroup, lcFiltru, lcFiltruOriginal, llModParam, llAfiseaza
|
||||
Store Null To poConfig
|
||||
lcSchema = []
|
||||
lcSelect = [select * from config_analitice]
|
||||
lcOrder = [cont]
|
||||
lcgroup = []
|
||||
lcFiltru = []
|
||||
lcFiltruOriginal = []
|
||||
llModParam = .T.
|
||||
llAfiseaza = .F.
|
||||
|
||||
gencursor('poConfig', 'crsConfigAnalitice', lcSelect, lcFiltru, lcSchema, lcOrder, llAfiseaza, lcgroup, llModParam, lcFiltruOriginal)
|
||||
poConfig.ca_baza1.afisare()
|
||||
|
||||
loConfigFrm = Createobject("frm_config_analitice")
|
||||
loConfigFrm.Show(1)
|
||||
Endproc && configurare_analitice
|
||||
|
||||
*------------------------------------------------------------
|
||||
Procedure configurare_analitice_gruputil
|
||||
|
||||
Private poConfig
|
||||
Local lcSchema, lcSelect, lcOrder, lcgroup, lcFiltru, lcFiltruOriginal, llModParam, llAfiseaza
|
||||
Store Null To poConfig
|
||||
lcSchema = []
|
||||
lcSelect = [select * from vconfig_gruputil_analitice]
|
||||
lcOrder = [denumire_grup, cont]
|
||||
lcgroup = []
|
||||
lcFiltru = []
|
||||
lcFiltruOriginal = []
|
||||
llModParam = .T.
|
||||
llAfiseaza = .F.
|
||||
|
||||
gencursor('poConfig', 'crsConfigAnalitice', lcSelect, lcFiltru, lcSchema, lcOrder, llAfiseaza, lcgroup, llModParam, lcFiltruOriginal)
|
||||
poConfig.ca_baza1.afisare()
|
||||
|
||||
loConfigFrm = Createobject("frm_config_analitice_gruputil")
|
||||
loConfigFrm.Show(1)
|
||||
|
||||
USE IN (SELECT('crsConfigAnalitice'))
|
||||
Endproc && configurare_analitice_gruputil
|
||||
|
||||
*------------------------------------------------------------
|
||||
Procedure configurare_analitice_tva
|
||||
|
||||
Private poConfig
|
||||
Local lcSchema, lcSelect, lcOrder, lcgroup, lcFiltru, lcFiltruOriginal, llModParam, llAfiseaza
|
||||
Store Null To poConfig
|
||||
lcSchema = []
|
||||
lcSelect = [select id, id_jtva_coloana, explicatie_tva, cont, acont, id_grup, denumire_grup, id_sucursala, sucursala, id_util, utilizator, dataora from vconfig_tva_analitice]
|
||||
lcOrder = [sucursala, denumire_grup, cont, explicatie_tva]
|
||||
lcgroup = []
|
||||
lcFiltru = []
|
||||
lcFiltruOriginal = []
|
||||
llModParam = .T.
|
||||
llAfiseaza = .F.
|
||||
|
||||
gencursor('poConfig', 'crsConfigAnalitice', lcSelect, lcFiltru, lcSchema, lcOrder, llAfiseaza, lcgroup, llModParam, lcFiltruOriginal)
|
||||
poConfig.ca_baza1.afisare()
|
||||
|
||||
loConfigFrm = Createobject("frm_config_analitice_tva")
|
||||
loConfigFrm.Show(1)
|
||||
|
||||
USE IN (SELECT('crsConfigAnalitice'))
|
||||
Endproc && configurare_analitice_tva
|
||||
|
||||
* Eof OMENIU_INITIALIZARI.PRG
|
||||
|
||||
|
||||
|
||||
*******************************************
|
||||
* PROCEDURE acces_liste( )
|
||||
* Date : 08/30/06, 11:37:08
|
||||
* author : liana.macinic
|
||||
* description:
|
||||
|
||||
****** PARAMETER BLOCK **************
|
||||
* Parameters : 0
|
||||
*
|
||||
*******************************************
|
||||
Procedure acces_liste( )
|
||||
Private poAccesListe
|
||||
Local lcSchema, lcSelect, lcOrder, lcgroup, lcFiltru, lcFiltruOriginal, llModParam, llAfiseaza
|
||||
Store Null To poAccesListe
|
||||
lcSchema = []
|
||||
lcSelect = [select * from vpolitici_grupuri]
|
||||
lcOrder = [nume_lista_preturi]
|
||||
lcgroup = []
|
||||
lcFiltru = [1=1] + gcCondSucursala
|
||||
lcFiltruOriginal = []
|
||||
llModParam = .T.
|
||||
llAfiseaza = .F.
|
||||
|
||||
gencursor('poAccesListe', 'crsPolGr', lcSelect, lcFiltru, lcSchema, lcOrder, llAfiseaza, lcgroup, llModParam, lcFiltruOriginal)
|
||||
poAccesListe.ca_baza1.afisare()
|
||||
|
||||
loAccesListeFrm = Createobject("frm_politiciGrupuri")
|
||||
loAccesListeFrm.Show(1)
|
||||
|
||||
Endproc
|
||||
*----------------------------------sfarsit procedura acces_liste----------------------------------
|
||||
310
COMUN/programe/onom_comenzi.prg
Normal file
310
COMUN/programe/onom_comenzi.prg
Normal file
@@ -0,0 +1,310 @@
|
||||
***************************************************************************************************************
|
||||
**** Proceduri:
|
||||
**** vizualizare_lucrari
|
||||
**** vizualizare_comenzi
|
||||
**** vizualizare_optiuni
|
||||
**** extrage_optiuni - mutata in proceduri_comune.prg ( v 2.0.11 )
|
||||
**** recompune_optiuni - mutata in proceduri_comune.prg ( v 2.0.11 )
|
||||
**** make_sectii_utilizator - mutata in proceduri_comune.prg ( v 2.0.11 )
|
||||
**** verifica_lucrare
|
||||
***************************************************************************************************************
|
||||
******************************************* INCEPUT: vizualizare_lucrari *******************************************
|
||||
Procedure vizualizare_lucrari
|
||||
gcAcces=[1;2;3;4;]
|
||||
Private polucrari,pocomenzi,polucrarielemente
|
||||
Local lcSchema,lcSelect,lcOrder,lcFiltru,lcFiltruOriginal,llAfiseaza
|
||||
Store '' To polucrari,pocomenzi,polucrarielemente
|
||||
lcSchema=[id_lucrare n(20),nrord c(30),termen_executie t,id_lucrari_detalii n(20),explicatie c(100),data_lucrare t,]+;
|
||||
[dataora t,utilizator c(30),inchisa n(1)]
|
||||
lcSelect=[select id_lucrare,nrord,termen_executie,id_lucrari_detalii,explicatie,data_lucrare,]+;
|
||||
[dataora,utilizator,inchisa from vlucrari_detalii]
|
||||
lcOrder=[data_lucrare]
|
||||
lcFiltru = [1=2]
|
||||
lcFiltruOriginal = [id_sectie=]+ALLTRIM(STR(gnId_sectie))
|
||||
llAfiseaza = .F.
|
||||
lcgroup = []
|
||||
llModParam = .T.
|
||||
llAfiseaza = .F.
|
||||
*gencursor('polucrari','crslucrari',lcSelect,lcFiltru,lcSchema,lcOrder,llAfiseaza)
|
||||
gencursor('polucrari','crslucrari', lcSelect, lcFiltru, lcSchema, lcOrder, llAfiseaza, lcgroup, llModParam, lcFiltruOriginal)
|
||||
polucrari.ca_baza1.afisare()
|
||||
|
||||
lcSchema=[id_comanda n(20),COMANDA_EXTERNA c(20),id_codclient c(20),id_lucrare n(20),id_part n(20),id_gestiune n(20),]+;
|
||||
[nr_comanda c(100),data_comanda t,nume c(70),data_livrare t,interna n(1),id_sectie n(5),id_sectie2 n(5),id_facturare n(5),id_livrare n(5),adresa_facturare c(50),adresa_livrare c(50)]
|
||||
lcSelect=[select id_comanda,COMANDA_EXTERNA,id_codclient,id_lucrare,id_part,id_gestiune]+;
|
||||
[nr_comanda,data_comanda,nume,data_livrare,interna,id_sectie,id_sectie2,id_facturare,id_livrare,b.denumire_adresa as adresa_facturare,c.denumire_adresa as adresa_livrare]+;
|
||||
[from vcomenzi a left join adrese_parteneri b on b.id_adresa=a.id_facturare left join adrese_parteneri c on c.id_adresa=a.id_livrare]
|
||||
lcOrder=[data_comanda]
|
||||
lcFiltru = [1=2]
|
||||
lcFiltruOriginal = [id_sectie=]+ALLTRIM(STR(gnId_sectie))
|
||||
llAfiseaza = .F.
|
||||
lcgroup = []
|
||||
llModParam = .T.
|
||||
llAfiseaza = .F.
|
||||
*gencursor('pocomenzi','crscomenzi',lcSelect,lcFiltru,lcSchema,lcOrder,llAfiseaza)
|
||||
gencursor('pocomenzi','crscomenzi', lcSelect, lcFiltru, lcSchema, lcOrder, llAfiseaza, lcgroup, llModParam, lcFiltruOriginal)
|
||||
pocomenzi.ca_baza1.afisare()
|
||||
|
||||
lcSchema=[id_lucrare n(20),denumire c(100),cantitate n(16,3),um c(10),cantitate2 n(16,3),um2 c(10)]
|
||||
lcSelect=[select id_lucrare,denumire,cantitate,um,cantitate2,um2 from vlucrari_elemente]
|
||||
lcOrder=[denumire]
|
||||
lcFiltru = [1=2]
|
||||
lcFiltruOriginal = [] && [id_sectie=]+ALLTRIM(STR(gnId_sectie))
|
||||
llAfiseaza = .F.
|
||||
lcgroup = []
|
||||
llModParam = .T.
|
||||
llAfiseaza = .F.
|
||||
*gencursor('polucrarielemente','crslucrarielemente',lcSelect,lcFiltru,lcSchema,lcOrder,llAfiseaza)
|
||||
gencursor('polucrarielemente','crslucrarielemente', lcSelect, lcFiltru, lcSchema, lcOrder, llAfiseaza, lcgroup, llModParam, lcFiltruOriginal)
|
||||
polucrarielemente.ca_baza1.afisare()
|
||||
|
||||
ofrmlucrari=Createobject('frm_lucrari_detalii')
|
||||
ofrmlucrari.Show(1)
|
||||
Release polucrari,pocomenzi,polucrarielemente,ofrmlucrari
|
||||
|
||||
Endproc && vizualizare_lucrari
|
||||
******************************************* SFARSIT: vizualizare_lucrari *******************************************
|
||||
******************************************* INCEPUT: vizualizare_comenzi *******************************************
|
||||
Procedure vizualizare_comenzi
|
||||
gcAcces=[1;2;3;4;]
|
||||
Private pocomenzi,pocomenzielemente
|
||||
Local lcSchema,lcSelect,lcOrder,lcFiltru,llAfiseaza
|
||||
Store '' To pocomenzi,pocomenzielemente
|
||||
lcSchema=[selectat n(1),id_comanda n(20),COMANDA_EXTERNA c(20),id_codclient c(20),id_lucrare n(20),id_part n(20),id_agent n(20),id_delegat n(20),id_masina n(20),]+;
|
||||
[nr_comanda c(100),data_comanda t,nume c(70),tip_comanda c(20),data_livrare t,nume_agent c(70),nume_delegat c(70),]+;
|
||||
[nrinmat c(10),nrord c(30),facturat n(1),dataora t,utilizator c(40),data_livrat t,interna n(1),]+;
|
||||
[nr_livrare c(50),inchisa n(1), id_sectie n(5),id_sectie2 n(5),id_facturare n(5),id_livrare n(5),adresa_facturare c(50),adresa_livrare c(50), cod_client c(50), id_ctr n(10),numar_contract c(100)]
|
||||
lcSelect=[select 0 as selectat,a.id_comanda,a.COMANDA_EXTERNA,a.id_codclient,a.id_lucrare,a.id_part,a.id_agent,a.id_delegat,a.id_masina,]+;
|
||||
[a.nr_comanda,a.data_comanda,a.nume,a.tip_comanda,a.data_livrare,a.nume_agent,a.nume_delegat,]+;
|
||||
[a.nrinmat,a.nrord,a.facturat,a.dataora,a.utilizator,a.data_livrat,a.interna,a.nr_livrare,a.inchisa,a.id_sectie,a.id_sectie2,a.id_facturare,a.id_livrare,] + ;
|
||||
[b.denumire_adresa as adresa_facturare,c.denumire_adresa as adresa_livrare, d.COD as cod_client,d.id_ctr,d.numar_contract ]+;
|
||||
[from vcomenzi a left join adrese_parteneri b on b.id_adresa=a.id_facturare left join adrese_parteneri c on c.id_adresa=a.id_livrare left join parteneri_coduri d on d.id=a.id_codclient]
|
||||
lcOrder=[data_comanda]
|
||||
lcFiltru = [1=2]
|
||||
lcFiltruOriginal = [] && [id_sectie=]+ALLTRIM(STR(gnId_sectie))
|
||||
llAfiseaza = .F.
|
||||
*gencursor('pocomenzi','crscomenzi',lcSelect,lcFiltru,lcSchema,lcOrder,llAfiseaza)
|
||||
gencursor('pocomenzi','crscomenzi', lcSelect, lcFiltru, lcSchema, lcOrder, llAfiseaza, lcgroup, llModParam, lcFiltruOriginal)
|
||||
pocomenzi.ca_baza1.afisare()
|
||||
|
||||
lcSchema=[id_comanda n(20),id_articol n(20),id_pol n(20),denumire c(100),pret n(16,] + alltrim(str(gnPPretV)) + [),cantitate n(16,] + alltrim(str(gnPCant)) + [),um c(10)]
|
||||
lcSelect=[select id_comanda,id_articol,id_pol,denumire,pret,cantitate,um from vcomenzi_elemente]
|
||||
lcOrder=[denumire]
|
||||
lcFiltru = [1=2]
|
||||
lcFiltruOriginal = [] && [id_sectie=]+ALLTRIM(STR(gnId_sectie))
|
||||
llAfiseaza = .F.
|
||||
*gencursor('pocomenzielemente','crscomenzielemente',lcSelect,lcFiltru,lcSchema,lcOrder,llAfiseaza)
|
||||
gencursor('pocomenzielemente','crscomenzielemente', lcSelect, lcFiltru, lcSchema, lcOrder, llAfiseaza, lcgroup, llModParam, lcFiltruOriginal)
|
||||
pocomenzielemente.ca_baza1.afisare()
|
||||
|
||||
ofrmcomenzi=Createobject('frm_comenzi')
|
||||
ofrmcomenzi.Show(1)
|
||||
Release pocomenzi,pocomenzielemente,ofrmcomenzi
|
||||
|
||||
Endproc && vizualizare_comenzi
|
||||
******************************************* SFARSIT: vizualizare_comenzi *******************************************
|
||||
******************************************* INCEPUT: vizualizare_optiuni *******************************************
|
||||
Procedure vizualizare_optiuni
|
||||
If Used('crsoptiuni')
|
||||
Use In crsoptiuni
|
||||
Endif
|
||||
lcSql=[SELECT VARTYPE,VARNAME,VARVALUE FROM ] + gcS + [.OPTIUNI WHERE PROGRAM='] + Upper(Alltrim(gcNumeProgram)) + [']
|
||||
lcCursor=[crsoptiuni]
|
||||
lnSucces=goExecutor.oExecute(lcSql,lcCursor)
|
||||
If lnSucces<0
|
||||
amessagebox(goExecutor.cEroare,0+48,"Eroare")
|
||||
Else
|
||||
Select crsoptiuni
|
||||
Scan
|
||||
lcvartype=Alltrim(Upper(Vartype))
|
||||
lcvarname=Alltrim(Upper(varname))
|
||||
Do Case
|
||||
Case lcvartype = "CHARACTER"
|
||||
luvarvalue = Alltrim(varvalue)
|
||||
gc&lcvarname. = luvarvalue
|
||||
Case lcvartype = "NUMERIC"
|
||||
luvarvalue = Val(varvalue)
|
||||
gn&lcvarname. = luvarvalue
|
||||
Endcase
|
||||
Endscan
|
||||
Use In crsoptiuni
|
||||
ofrmoptiune=Createobject('frm_optiuni_comenzi')
|
||||
ofrmoptiune.Show(1)
|
||||
Release ofrmoptiune
|
||||
Endif
|
||||
Endproc && vizualizare_optiuni
|
||||
******************************************* SFARSIT: vizualizare_optiuni *******************************************
|
||||
********************************************************************************************************************
|
||||
*!* modificare v 2.0.11
|
||||
*!* Procedure extrage_optiuni
|
||||
*!* Parameters tcLista, tnId
|
||||
|
||||
*!* Local lcLista, lcReturn
|
||||
*!* Store '' To lcReturn
|
||||
*!* lcLista = Nvl(Alltrim(tcLista),'')
|
||||
*!* lnNrOptiuni = Getwordcount(lcLista,";")
|
||||
*!* For i=1 To lnNrOptiuni
|
||||
*!* lcExtragOptId = Getwordnum(lcLista,i,";")
|
||||
*!* lcId_extras = Getwordnum(lcExtragOptId,1,"::")
|
||||
*!* If lcId_extras = Alltrim(Str(tnId))
|
||||
*!* lcReturn = Getwordnum(lcExtragOptId,2,"::")
|
||||
*!* Endif
|
||||
*!* Endfor
|
||||
|
||||
*!* Return lcReturn
|
||||
|
||||
*!* Endproc && extrage_optiune
|
||||
********************************************************************************************************************
|
||||
********************************************************************************************************************
|
||||
*!* *!* lcLista = '1001::3;2::777;21001::5;'
|
||||
*!* *!* lcId = 2
|
||||
*!* *!* lcValoareNoua = '9'
|
||||
*!* *!* lcListaNoua = recompune_optiuni(lcLista,lcId,lcValoareNoua)
|
||||
|
||||
*!* Procedure recompune_optiuni
|
||||
*!* Parameters tcLista, tnId, tcValoareNoua
|
||||
|
||||
*!* Local lcLista, lcListaNoua, lcId, lcValoareNoua, lnGrupuri, lcGrup, lcIdCautat, lnPoz, lnPozGrup, lcValoare
|
||||
*!* lcLista = Nvl(Alltrim(tcLista),'')
|
||||
*!* lcId = Alltrim(Str(tnId))
|
||||
*!* lcValoareNoua = Alltrim(tcValoareNoua)
|
||||
|
||||
*!* llGasit = .F.
|
||||
*!* lcListaNoua = ''
|
||||
*!* lnGrupuri = Getwordcount(lcLista,';')
|
||||
*!* For i = 1 To lnGrupuri
|
||||
*!* lcGrup = Getwordnum(lcLista,i,";")
|
||||
*!* If i=1
|
||||
*!* lcIdCautat = lcId + '::'
|
||||
*!* Else
|
||||
*!* lcIdCautat = ';'+ lcId + '::'
|
||||
*!* lcGrup = ';' + lcGrup && ';id_sectie::optiune_veche'
|
||||
*!* Endif
|
||||
*!* lnPozGrup = At(lcIdCautat,lcGrup)
|
||||
*!* If lnPozGrup > 0
|
||||
*!* llGasit = .T.
|
||||
*!* lnPoz = At('::', lcGrup)
|
||||
*!* If lnPoz > 0
|
||||
*!* lcValoare = Substr(lcGrup,lnPoz) && '::optiune_veche'
|
||||
*!* lcGrup= Strtran(lcGrup,lcValoare,'::'+lcValoareNoua)
|
||||
*!* Endif
|
||||
*!* Endif
|
||||
*!* lcListaNoua = lcListaNoua + lcGrup
|
||||
*!* Endfor
|
||||
|
||||
*!* If lnGrupuri = 0
|
||||
*!* lcListaNoua = lcId + '::' + lcValoareNoua
|
||||
*!* Else
|
||||
*!* If !llGasit
|
||||
*!* lcListaNoua = lcListaNoua + ';' + lcId + '::' + lcValoareNoua
|
||||
*!* Endif
|
||||
*!* Endif
|
||||
|
||||
*!* Return lcListaNoua
|
||||
|
||||
*!* Endproc && recompune_optiuni
|
||||
********************************************************************************************************************
|
||||
*!* Procedure make_sectii_utilizator
|
||||
*!* lcSel = [{call PACK_COMENZI.sectii_utilizator(?gnIdUtil,?gnIdSucursala)}]
|
||||
*!* lcCursor = 'crsSectii'
|
||||
*!* lnSucces = goExecutor.oExecute(lcSel,lcCursor)
|
||||
*!* If lnSucces < 0
|
||||
*!* amessagebox(goExecutor.cEroare,0+16,"Eroare")
|
||||
*!* Return
|
||||
*!* Endif
|
||||
*!* Select crsSectii
|
||||
*!* Go Top
|
||||
*!* Endproc && make_sectii_utilizator
|
||||
*!* modificare v 2.0.11 ^
|
||||
********************************************************************************************************************
|
||||
Function verifica_lucrare
|
||||
Lparameters tnIdLucrare,tcNumeCursorVFP
|
||||
Local llReturn,lcSql,lcNumeCursorOra,lcCursorV,lcMesaj
|
||||
&&& (loCauta.id_lucrare,[crstempcomlucrare])
|
||||
llReturn = .T.
|
||||
lcNumeCursorTempV = [crstempvluc]
|
||||
lcCursorVerificare = [crsverificareluc]
|
||||
lcMesaj = []
|
||||
If Used(lcCursorVerificare)
|
||||
Use In (lcCursorVerificare)
|
||||
Endif
|
||||
If Used(lcNumeCursorTempV)
|
||||
Use In (lcNumeCursorTempV)
|
||||
Endif
|
||||
Create Cursor (lcCursorVerificare) (Id N(14),nume c(100),nr_comanda M)
|
||||
Create Cursor (lcNumeCursorTempV) (interna N(1),Id N(14),nume c(200),nr_comanda M,nr N(14))
|
||||
If !Empty(Nvl(tnIdLucrare,0))
|
||||
lcNumeCursorOra = [crstemporalucrare]
|
||||
If Used(lcNumeCursorOra)
|
||||
Use In (lcNumeCursorOra)
|
||||
Endif
|
||||
lcSql = [select a.interna,a.id,(case when a.interna in (2,5) then b.denumire ] + ;
|
||||
[when interna = 3 then c.nume_gestiune ] + ;
|
||||
[when interna = 4 then d.sectie ] + ;
|
||||
[else null end) as nume,] + ;
|
||||
[stringagg(a.nr_comanda) as nr_comanda,a.nr from ] + ;
|
||||
[(select id_lucrare, interna,] + ;
|
||||
[(case when interna in (2,5) then id_part ] + ;
|
||||
[when interna = 3 then id_gestiune ] + ;
|
||||
[when interna = 4 then id_sectie2 ] + ;
|
||||
[else null end) as id,] + ;
|
||||
[nr_comanda,] + ;
|
||||
[count(*) over(partition by id_lucrare, interna,(case when interna = 2 then id_part when interna = 3 then id_gestiune ] + ;
|
||||
[when interna = 4 then id_sectie2 else null end)) as nr ] + ;
|
||||
[from ] + gcS + [.comenzi where sters = 0 and id_sectie = ?gnId_sectie and interna <> 1 and id_lucrare = ] + Alltrim(Str(tnIdLucrare)) + [) a ] + ;
|
||||
[left join ] + gcS + [.nom_parteneri b on a.id = b.id_part and a.interna = 2 ] + ;
|
||||
[left join ] + gcS + [.nom_gestiuni c on a.id = c.id_gestiune and a.interna = 3 ] + ;
|
||||
[left join ] + gcS + [.nom_sectii d on a.id = d.id_sectie and a.interna = 4 ] + ;
|
||||
[group by a.interna,a.id,(case when a.interna in (2,5) then b.denumire when a.interna = 3 then c.nume_gestiune when a.interna = 4 then d.sectie else null end),a.nr ] + ;
|
||||
[order by 3,2]
|
||||
lnSucces = goExecutor.oExecute(lcSql,lcNumeCursorOra)
|
||||
If lnSucces < 0
|
||||
amessagebox(goExecutor.cEroare,16,"Eroare")
|
||||
Return .F.
|
||||
Else
|
||||
Insert Into (lcNumeCursorTempV) Select interna,id,nume,Chr(44)+Alltrim(nr_comanda)+Chr(44) as nr_comanda,nr From (lcNumeCursorOra)
|
||||
Use In (lcNumeCursorOra)
|
||||
Endif
|
||||
Endif
|
||||
|
||||
If !Empty(tcNumeCursorVFP)
|
||||
Local loDublura
|
||||
Select (tcNumeCursorVFP)
|
||||
Scan For interna <> 1
|
||||
Scatter Name loDublura
|
||||
Select (lcNumeCursorTempV)
|
||||
Locate For interna = loDublura.interna And Id = Iif(INLIST(loDublura.interna,2,5),loDublura.id_part,Iif(loDublura.interna=3,loDublura.id_gestiune,loDublura.id_sectie2)) && modificare v 2.0.20
|
||||
If Found()
|
||||
If At([,] + Alltrim(loDublura.nr_comanda) + [,],Alltrim(nr_comanda)) = 0
|
||||
&& s-ar putea sa am comanda deja pe lucrare si sa o am si selectata in cursorul din VFP
|
||||
Replace nr_comanda With Alltrim(nr_comanda) + Alltrim(loDublura.nr_comanda) + [,],nr With nr + 1
|
||||
Endif
|
||||
Else
|
||||
Append Blank
|
||||
Replace interna With loDublura.interna,Id With Iif(INLIST(loDublura.interna,2,5),loDublura.id_part,Iif(loDublura.interna=3,loDublura.id_gestiune,loDublura.id_sectie2)),; && modificare v 2.0.20
|
||||
nume With loDublura.nume,nr_comanda With [,] + Alltrim(loDublura.nr_comanda) + [,],nr With 1
|
||||
Endif
|
||||
Select (tcNumeCursorVFP)
|
||||
Endscan
|
||||
Release loDublura
|
||||
Endif
|
||||
|
||||
Insert Into (lcCursorVerificare) Select Id,nume,nr_comanda From (lcNumeCursorTempV) Where nr > 1 Order By nume,Id
|
||||
If Reccount(lcCursorVerificare)>0
|
||||
lcMesaj = [Urmatorii beneficiari vor avea mai mult de o comanda pe lucrare : ] + Chr(13) + Chr(10)
|
||||
Select (lcCursorVerificare)
|
||||
Scan
|
||||
lcMesaj = lcMesaj + Padr(Alltrim(nume),50,[ ]) + [ - ] + Substr(Alltrim(nr_comanda),2,Len(Alltrim(nr_comanda))-2) + Chr(13) + Chr(10)
|
||||
Endscan
|
||||
lcMesaj = lcMesaj + Chr(13) + Chr(10) + [Doriti sa continuati?]
|
||||
If amessagebox(lcMesaj,4+32,"Comenzi multiple") = 7
|
||||
llReturn = .F.
|
||||
Endif
|
||||
Endif
|
||||
|
||||
If Used(lcCursorVerificare)
|
||||
Use In (lcCursorVerificare)
|
||||
Endif
|
||||
Return llReturn
|
||||
Endfunc && verifica_lucrare
|
||||
********************************************************************************************************************
|
||||
2580
COMUN/programe/onomenclatoare.prg
Normal file
2580
COMUN/programe/onomenclatoare.prg
Normal file
File diff suppressed because it is too large
Load Diff
59
COMUN/programe/onomenclatoare2.prg
Normal file
59
COMUN/programe/onomenclatoare2.prg
Normal file
@@ -0,0 +1,59 @@
|
||||
***************************************************************************************************************
|
||||
**** Proceduri:
|
||||
**** vizualizare_masini
|
||||
***************************************************************************************************************
|
||||
******************************************* INCEPUT: vizualizare_masini *******************************************
|
||||
Procedure vizualizare_masini
|
||||
gcAcces=[1;2;3;4;]
|
||||
Private pomasini
|
||||
Local lcSchema,lcSelect,lcOrder,lcFiltru,llAfiseaza
|
||||
Store '' To pomasini
|
||||
lcSchema=['']
|
||||
lcSelect=['select * from ] + gcS + [.vnom_masini where 1=2']
|
||||
lcOrder=[nrinmat]
|
||||
lcFiltru = [1=2]
|
||||
llAfiseaza = .F.
|
||||
gencursor('pomasini','crsmasini',lcSelect,lcFiltru,lcSchema,lcOrder,llAfiseaza)
|
||||
pomasini.ca_baza1.afisare()
|
||||
ofrmmasini=Createobject('frm_masini')
|
||||
ofrmmasini.Show(1)
|
||||
Release pomasini,ofrmmasini
|
||||
|
||||
Endproc
|
||||
******************************************* SFARSIT: vizualizare_masini *******************************************
|
||||
|
||||
|
||||
Procedure vizualizare_RUTE
|
||||
Private pomasini
|
||||
Local lcSchema,lcSelect,lcOrder,lcFiltru,llAfiseaza
|
||||
Store '' To poRUTE
|
||||
lcSchema=['']
|
||||
lcSelect=['select * from FACT_VNOM_RUTEgest where 2=2']
|
||||
lcOrder=[ruta,ORDINE]
|
||||
lcFiltru = [2=2]
|
||||
llAfiseaza = .F.
|
||||
gencursor('poRUTE','crsRUTE',lcSelect,lcFiltru,lcSchema,lcOrder,llAfiseaza)
|
||||
poRUTE.ca_baza1.afisare()
|
||||
ofrmRUTE=Createobject('frm_RUTE')
|
||||
ofrmRUTE.Show(1)
|
||||
Release poRUTE,ofrmRUTE
|
||||
|
||||
EndProc
|
||||
*---------------------------------------------------------------------
|
||||
|
||||
Procedure vizualizare_nomRUTE
|
||||
Private ponomrute
|
||||
Local lcSchema,lcSelect,lcOrder,lcFiltru,llAfiseaza
|
||||
Store '' To ponomrute
|
||||
lcSchema=['']
|
||||
lcSelect=['select * from FACT_VNOM_RUTE where 2=2']
|
||||
lcOrder=[ruta]
|
||||
lcFiltru = [2=2]
|
||||
llAfiseaza = .F.
|
||||
gencursor('ponomrute','crsnomRUTE',lcSelect,lcFiltru,lcSchema,lcOrder,llAfiseaza)
|
||||
ponomrute.ca_baza1.afisare()
|
||||
ofrmRUTE=Createobject('frm_nomRUTE')
|
||||
ofrmRUTE.Show(1)
|
||||
Release ponomrute,ofrmRUTE
|
||||
|
||||
Endproc
|
||||
2017
COMUN/programe/ooperatii_comune.prg
Normal file
2017
COMUN/programe/ooperatii_comune.prg
Normal file
File diff suppressed because it is too large
Load Diff
1108
COMUN/programe/oparteneri.prg
Normal file
1108
COMUN/programe/oparteneri.prg
Normal file
File diff suppressed because it is too large
Load Diff
511
COMUN/programe/oproceduri_ams.prg
Normal file
511
COMUN/programe/oproceduri_ams.prg
Normal file
@@ -0,0 +1,511 @@
|
||||
*!* 19.12.2019
|
||||
*!* marius.mutu
|
||||
*!* Adauga_modifica_inregistrare, sterge_inregistrare: Am adaugat variabila pnIdAMS pentru a fi completata cu id-ul generat la salvarea unei inregistrari noi in baza de date
|
||||
|
||||
&& ------------------------------INCEPUT: Adauga_Modifica_Inregistrare------------------------------
|
||||
*!* Procedura: Adauga_Modifica_Inregistrare
|
||||
*!* Parametri: tcForm, toRec, tnId
|
||||
*!* Data/Ora generarii: 26/04/2004 11:21
|
||||
*!* Autor: MARIUS.MUTU
|
||||
Procedure Adauga_Modifica_Inregistrare
|
||||
Lparameters tcAlias, toRec, tnId, tcActiune,tlNoShow,tcObjName
|
||||
|
||||
* parametrul @tnId se transmite optional prin referinta la INSERT pentru a fi completat cu Id-ul generat la adaugarea in baza de date
|
||||
* trebuie modificate cus_odata_xxx.make_sql pentru a completa variabila pnIdAMS
|
||||
Private pnIdAMS
|
||||
pnIdAMS = m.tnId
|
||||
|
||||
Local lcAlias,llNoShow,lcObjName
|
||||
lcAlias = Upper(Alltrim(tcAlias))
|
||||
|
||||
lcForm = 'frm_' + lcAlias + '_nou'
|
||||
llNoShow = tlNoShow
|
||||
Private poRec
|
||||
poRec = toRec
|
||||
If Empty(tcObjName)
|
||||
lcObjName = 'loAdMod' + lcAlias
|
||||
Else
|
||||
lcObjName = Alltrim(tcObjName)
|
||||
Endif
|
||||
*DO FORM &lcForm NAME loAdMod WITH toRec,tnId,tcActiune NOSHOW
|
||||
|
||||
&lcObjName = Createobject(lcForm,poRec,tnId,tcActiune)
|
||||
If !tlNoShow
|
||||
&lcObjName..Show(1)
|
||||
Endif
|
||||
|
||||
tnId = m.pnIdAMS
|
||||
|
||||
Return gnButon
|
||||
Endproc
|
||||
&& ------------------------------SFARSIT: Adauga_Modifica_Inregistrare------------------------------
|
||||
|
||||
&& ------------------------------INCEPUT: Sterge_Inregistrare ------------------------------
|
||||
*!* Procedura: Sterge_Inregistrare
|
||||
*!* Parametri: tcAlias, tnId
|
||||
*!* Data/Ora generarii: 26/04/2004 11:28
|
||||
*!* Autor: MARIUS.MUTU
|
||||
Procedure Sterge_Inregistrare
|
||||
Lparameters tcAlias, tnId, tlNoSave,tcObjName
|
||||
|
||||
Private pnIdAMS
|
||||
pnIdAMS = m.tnId
|
||||
|
||||
lcAlias = Upper(Alltrim(tcAlias))
|
||||
lnId = tnId
|
||||
|
||||
llNoSave = tlNoSave
|
||||
If Empty(tcObjName)
|
||||
lcObjName = 'loData'
|
||||
Else
|
||||
lcObjName = Alltrim(tcObjName)
|
||||
Endif
|
||||
|
||||
|
||||
lcData = 'cus_odata_' + lcAlias
|
||||
&lcObjName = Createobject(lcData)
|
||||
&lcObjName..cActiune = "DELETE"
|
||||
|
||||
If !llNoSave
|
||||
Return &lcObjName..salvare(,lnId)
|
||||
Else
|
||||
Return .T.
|
||||
Endif
|
||||
|
||||
Endproc
|
||||
&& ------------------------------SFARSIT: Sterge_Inregistrare ------------------------------
|
||||
|
||||
Define Class BizDataObject As Custom
|
||||
oObject = Null
|
||||
cObjectName = ''
|
||||
cSelect = ''
|
||||
cSchema = ''
|
||||
nId = NULL
|
||||
|
||||
Procedure Init
|
||||
Lparameters toHash
|
||||
*nId: id inregistrare, doar daca se transmite si cObjectName
|
||||
*cObjectName: identificator select, schema dintr-o colectie (optional)
|
||||
*cSelect: instructiune [select a,b,c from tabel where id = ?pnId], in cazul in care nu exista cObjectName (optional)
|
||||
*cSchema: schema pentru cSelect (optional)
|
||||
* loBizDataObject = CreateObject("BizDataObject", GetHash([cSelect=>select a,b,c from tabel where id = ?pnId]))
|
||||
* loBizDataObject.GetDataObject()
|
||||
This.nId = toHash.GetValue("nId")
|
||||
This.cObjectName = toHash.GetValue("cObjectName")
|
||||
This.cSelect = toHash.GetValue("cSelect")
|
||||
This.cSchema = toHash.GetValue("cSchema")
|
||||
Endproc && Init
|
||||
|
||||
***************************************************************
|
||||
*** Intoarce un obiect selectat din baza de date pe baza tnId
|
||||
***************************************************************
|
||||
Procedure GetDataObject
|
||||
LOCAL lcSelect, lcSelectV, llSucces
|
||||
PRIVATE pnObjectId, poObject
|
||||
lcSelectV = SELECT()
|
||||
llSucces = .F.
|
||||
poObject = NULL
|
||||
pnObjectId = this.nId
|
||||
|
||||
lcSelect = this.cSelect
|
||||
lcSchema = this.cSchema && id_articol N(20), codmat V(50), denumire V(100), descriere V(200), um V(10), id_grupa N(5), grupa V(50), id_subgrupa N(5), subgrupa V(50), tip N(3)
|
||||
IF !(Empty(This.cObjectName) OR EMPTY(This.nId))
|
||||
loDefObject = This.GetDefObject()
|
||||
lcSelect = loDefObject.GetValue("cSelect")
|
||||
lcSchema = loDefObject.GetValue("cSchema")
|
||||
lcIdColumn = loDefObject.GetValue("cIdColoana")
|
||||
lcSelect = lcSelect + " where " + m.lcIdColumn + " = ?pnObjectId"
|
||||
This.cSelect = m.lcSelect
|
||||
ENDIF
|
||||
|
||||
IF !EMPTY(m.lcSelect)
|
||||
IF EMPTY(m.lcSchema)
|
||||
llSucces = goExecutor.oSelecteaza2Object(m.lcSelect, @poObject)
|
||||
ELSE
|
||||
poCursor = Null
|
||||
gencursor_hash(gethash([cnume=>poCursor??cAlias=>crsDataObject??cselect=>] + m.lcSelect + [??cschema=>] + m.lcSchema + [??lModParam=>.T.??cwhere=>] + m.lcIdColumn + [=pnObjectId]))
|
||||
IF USED('crsDataObject')
|
||||
llSucces = .T.
|
||||
SELECT crsDataObject
|
||||
SCATTER NAME poObject MEMO
|
||||
USE IN (SELECT('crsDataObject'))
|
||||
ENDIF
|
||||
ENDIF
|
||||
ENDIF
|
||||
IF !m.llSucces
|
||||
poObject = NULL
|
||||
ENDIF
|
||||
SELECT (m.lcSelectV)
|
||||
RETURN poObject
|
||||
ENDPROC && GetDataObject
|
||||
|
||||
*************************************************
|
||||
Function GetDefObject
|
||||
lcObjectName = Lower(This.cObjectName)
|
||||
loHash = GetHash()
|
||||
Do Case
|
||||
CASE EMPTY(m.lcObjectName)
|
||||
*
|
||||
Case lcObjectName = "nom_parteneri"
|
||||
With loHash
|
||||
.SetValue("cSelect", "select id_part, denumire, cod_fiscal from nom_parteneri")
|
||||
.SetValue("cSchema", "")
|
||||
.SetValue("cFiltru", "1=2")
|
||||
.SetValue("cOrder", "denumire")
|
||||
.SetValue("cColoana", "denumire,cod_fiscal,id_part")
|
||||
.SetValue("cTitlu", "Alegeti partenerul")
|
||||
.SetValue("cTitluColoana", "Nume,Cod fiscal,ID")
|
||||
.SetValue("cFiltruOriginal", [STERS = 0 AND INACTIV = 0])
|
||||
.SetValue("cresultcoloana","denumire")
|
||||
.SetValue("cidcoloana","id_Part")
|
||||
Endwith
|
||||
|
||||
Case lcObjectName = "nom_parteneri4111"
|
||||
With loHash
|
||||
.SetValue("cSelect", "SELECT B.ID_PART, B.DENUMIRE, B.COD_FISCAL " + ;
|
||||
" FROM CORESP_TIP_PART A " + ;
|
||||
" LEFT JOIN NOM_PARTENERI B ON A.ID_PART = B.ID_PART")
|
||||
.SetValue("cSchema", "")
|
||||
.SetValue("cFiltru", "1=2")
|
||||
.SetValue("cOrder", "b.denumire")
|
||||
.SetValue("cColoana", "b.denumire,b.cod_fiscal,b.id_part")
|
||||
.SetValue("cTitlu", "Alegeti partenerul")
|
||||
.SetValue("cTitluColoana", "Nume,Cod fiscal,ID")
|
||||
.SetValue("cFiltruOriginal", [B.STERS = 0 AND B.INACTIV = 0 AND A.ID_TIP_PART IN (SELECT id_tip_part FROM coresp_tip_cont WHERE cont = '4111')])
|
||||
.SetValue("cresultcoloana","denumire")
|
||||
.SetValue("cidcoloana","id_Part")
|
||||
Endwith
|
||||
|
||||
Case lcObjectName = "nom_responsabil"
|
||||
With loHash
|
||||
.SetValue("cSelect", "select id_responsabil, nume, marca, bi, cnp from vnom_responsabili")
|
||||
.SetValue("cSchema", "")
|
||||
.SetValue("cFiltru", "1=2")
|
||||
.SetValue("cOrder", "nume")
|
||||
.SetValue("cColoana", "nume, marca, bi, cnp, id_responsabil")
|
||||
.SetValue("cTitlu", "Alegeti responsabilul")
|
||||
.SetValue("cTitluColoana", "Nume, Marca, BI, CNP, Id")
|
||||
.SetValue("cFiltruOriginal", [])
|
||||
.SetValue("cresultcoloana","nume")
|
||||
.SetValue("cidcoloana","id_responsabil")
|
||||
Endwith
|
||||
|
||||
|
||||
Case lcObjectName = "nom_feldoc"
|
||||
With loHash
|
||||
.SetValue("cSelect", "select id_fdoc, fel_document FROM vnom_fdoc")
|
||||
.SetValue("cSchema", "")
|
||||
.SetValue("cFiltru", "1=2")
|
||||
.SetValue("cOrder", "fel_document")
|
||||
.SetValue("cColoana", "fel_document,id_fdoc")
|
||||
.SetValue("cTitlu", "Alegeti felul documentului")
|
||||
.SetValue("cTitluColoana", "Document,ID")
|
||||
.SetValue("cFiltruOriginal", [inactiv = 0])
|
||||
.SetValue("cresultcoloana","fel_document")
|
||||
.SetValue("cidcoloana","id_fdoc")
|
||||
Endwith
|
||||
|
||||
|
||||
Case lcObjectName = "nom_gestiune"
|
||||
With loHash
|
||||
.SetValue("cSelect", "select nume_gestiune,cgest,id_gestiune,nr_pag,cont from vnom_gestiuni ")
|
||||
.SetValue("cSchema", "")
|
||||
.SetValue("cFiltru", "1=2")
|
||||
.SetValue("cOrder", "nume_gestiune")
|
||||
.SetValue("cColoana", "nume_gestiune,cgest")
|
||||
.SetValue("cTitlu", "Alegeti Gestiunea")
|
||||
.SetValue("cTitluColoana", "Gestiune,Cgest")
|
||||
.SetValue("cFiltruOriginal", [inactiv = 0])
|
||||
.SetValue("cresultcoloana","nume_gestiune")
|
||||
.SetValue("cidcoloana","id_gestiune")
|
||||
Endwith
|
||||
|
||||
Case lcObjectName = "nom_lucrare"
|
||||
With loHash
|
||||
.SetValue("cSelect", "select nrord, id_lucrare from vnom_lucrari")
|
||||
.SetValue("cSchema", "")
|
||||
.SetValue("cFiltru", "1=2")
|
||||
.SetValue("cOrder", "nrord")
|
||||
.SetValue("cColoana", "nrord,id_lucrare")
|
||||
.SetValue("cTitlu", "Alegeti lucrarea")
|
||||
.SetValue("cTitluColoana", "Lucrare,ID")
|
||||
.SetValue("cFiltruOriginal", [inactiv = 0])
|
||||
.SetValue("cresultcoloana","nrord")
|
||||
.SetValue("cidcoloana","id_lucrare ")
|
||||
Endwith
|
||||
|
||||
Case lcObjectName = "nom_sectie"
|
||||
With loHash
|
||||
.SetValue("cSelect", "select id_sectie, sectie, csectie FROM vnom_sectii")
|
||||
.SetValue("cSchema", "")
|
||||
.SetValue("cFiltru", "1=2")
|
||||
.SetValue("cOrder", "sectie")
|
||||
.SetValue("cColoana", "sectie, csectie")
|
||||
.SetValue("cTitlu", "Alegeti sectia")
|
||||
.SetValue("cTitluColoana", "Sectie, Indicativ")
|
||||
.SetValue("cFiltruOriginal", [inactiv = 0])
|
||||
.SetValue("cresultcoloana","sectie")
|
||||
.SetValue("cidcoloana","id_sectie")
|
||||
Endwith
|
||||
|
||||
Case lcObjectName = "nom_valuta"
|
||||
With loHash
|
||||
.SetValue("cSelect", "select id_valuta, nume_val FROM vnom_valute")
|
||||
.SetValue("cSchema", "")
|
||||
.SetValue("cFiltru", "1=2")
|
||||
.SetValue("cOrder", "nume_val")
|
||||
.SetValue("cColoana", "nume_val")
|
||||
.SetValue("cTitlu", "Alegeti valuta")
|
||||
.SetValue("cTitluColoana", "Valuta")
|
||||
.SetValue("cFiltruOriginal", [inactiv = 0 and moneda_nationala = 0])
|
||||
.SetValue("cresultcoloana","nume_val")
|
||||
.SetValue("cidcoloana","id_valuta")
|
||||
Endwith
|
||||
|
||||
Case lcObjectName = "nom_sucursala"
|
||||
With loHash
|
||||
.SetValue("cSelect", "select id_sucursala, sucursala, inactiv from vnom_sucursale")
|
||||
.SetValue("cSchema", "")
|
||||
.SetValue("cFiltru", "2=2")
|
||||
.SetValue("cOrder", "sucursala")
|
||||
.SetValue("cColoana", "sucursala,id_sucursala")
|
||||
.SetValue("cTitlu", "Alegeti sucursala")
|
||||
.SetValue("cTitluColoana", "Sucursala, Id")
|
||||
If glEMama && DACA SUNT PE FIRMA MAMA ARAT DOAR SUCURSALELE EI
|
||||
.SetValue("cFiltruOriginal", [inactiv = 0 AND id_mama = ?gnIdFirma])
|
||||
Else && DACA SUNT PE O SUCURSALA SAU PE FIRMA INDEPENDENTA NU ARAT NIMIC
|
||||
.SetValue("cFiltruOriginal", [1=2])
|
||||
Endif
|
||||
.SetValue("cresultcoloana","sucursala")
|
||||
.SetValue("cidcoloana","id_sucursala")
|
||||
Endwith
|
||||
|
||||
Case lcObjectName = "nom_utilizator"
|
||||
With loHash
|
||||
.SetValue("cSelect", "select id_util,utilizator from syn_vutilizatori")
|
||||
.SetValue("cSchema", "")
|
||||
.SetValue("cFiltru", "1=2")
|
||||
.SetValue("cOrder", "utilizator")
|
||||
.SetValue("cColoana", "utilizator")
|
||||
.SetValue("cTitlu", "Alegeti utilizatorul")
|
||||
.SetValue("cTitluColoana", "Utilizator")
|
||||
.SetValue("cFiltruOriginal", [inactiv = 0])
|
||||
.SetValue("cresultcoloana","utilizator")
|
||||
.SetValue("cidcoloana","id_util")
|
||||
Endwith
|
||||
|
||||
Case lcObjectName = "nom_venchel"
|
||||
With loHash
|
||||
.SetValue("cSelect", "select id_venchelt, explicatie, (case tip_venchelt when 1 then 'Cheltuiala' else 'Venit' end) as tip_venchelt FROM vnom_venchel")
|
||||
.SetValue("cSchema", "")
|
||||
.SetValue("cFiltru", "1=2")
|
||||
.SetValue("cOrder", "explicatie")
|
||||
.SetValue("cColoana", "explicatie,tip_venchelt")
|
||||
.SetValue("cTitlu", "Alegeti venitul/cheltuiala")
|
||||
.SetValue("cTitluColoana", "Explicatia, Tip")
|
||||
.SetValue("cFiltruOriginal", [inactiv = 0])
|
||||
.SetValue("cresultcoloana","explicatie")
|
||||
.SetValue("cidcoloana","id_venchelt")
|
||||
Endwith
|
||||
|
||||
Case Inlist(lcObjectName, "nom_articol", "nom_articole")
|
||||
With loHash
|
||||
.SetValue("cSelect", "select denumire, codmat, um, grupa, subgrupa, id_grupa, id_subgrupa, descriere, dnf, cont, acont, inactiv, id_articol from vnom_articole")
|
||||
.SetValue("cSchema", "")
|
||||
.SetValue("cFiltru", "1=2")
|
||||
.SetValue("cOrder", "denumire")
|
||||
.SetValue("cColoana", "denumire,codmat,um,grupa,subgrupa,cont,acont,dnf,id_articol")
|
||||
.SetValue("cTitlu", "Alegeti articolul")
|
||||
.SetValue("cTitluColoana", "Denumire,Cod Material,UM,Grupa,Subgrupa,Cont,Analitic,DNF,Id")
|
||||
.SetValue("cFiltruOriginal", [inactiv = 0])
|
||||
.SetValue("cresultcoloana","denumire")
|
||||
.SetValue("cidcoloana","id_articol")
|
||||
Endwith
|
||||
|
||||
Case lcObjectName = "nom_grupa_articol"
|
||||
With loHash
|
||||
.SetValue("cSelect", "select grupa, id_grupa from vgest_art_gr")
|
||||
.SetValue("cSchema", "")
|
||||
.SetValue("cFiltru", "1=2")
|
||||
.SetValue("cOrder", "grupa")
|
||||
.SetValue("cColoana", "grupa,id_grupa")
|
||||
.SetValue("cTitlu", "Alegeti grupa de articole")
|
||||
.SetValue("cTitluColoana", "Grupa,Id")
|
||||
.SetValue("cFiltruOriginal", [])
|
||||
.SetValue("cresultcoloana","grupa")
|
||||
.SetValue("cidcoloana","id_grupa")
|
||||
Endwith
|
||||
|
||||
Case lcObjectName = "nom_subgrupa_articol"
|
||||
With loHash
|
||||
.SetValue("cSelect", "select subgrupa, grupa, id_subgrupa from vgest_art_sbgr")
|
||||
.SetValue("cSchema", "")
|
||||
.SetValue("cFiltru", "1=2")
|
||||
.SetValue("cOrder", "subgrupa")
|
||||
.SetValue("cColoana", "subgrupa,grupa,id_subgrupa")
|
||||
.SetValue("cTitlu", "Alegeti subgrupa de articole")
|
||||
.SetValue("cTitluColoana", "Subgrupa,Grupa,Id")
|
||||
.SetValue("cFiltruOriginal", [])
|
||||
.SetValue("cresultcoloana","subgrupa")
|
||||
.SetValue("cidcoloana","id_subgrupa")
|
||||
Endwith
|
||||
|
||||
Case lcObjectName = "nom_grupa_gestiune"
|
||||
With loHash
|
||||
.SetValue("cSelect", "select id_grupe, nume_grupa, nume_parinte, parent_id FROM vgest_nom_grupe")
|
||||
.SetValue("cSchema", "")
|
||||
.SetValue("cFiltru", "1=2")
|
||||
.SetValue("cOrder", "nume_grupa")
|
||||
.SetValue("cColoana", "nume_grupa,nume_parinte,id_grupe,parent_id")
|
||||
.SetValue("cTitlu", "Alegeti grupa de gestiuni")
|
||||
.SetValue("cTitluColoana", "Grupa,Grupa parinte,Id,Id parinte")
|
||||
.SetValue("cFiltruOriginal", [inactiv = 0])
|
||||
.SetValue("cresultcoloana","nume_grupa")
|
||||
.SetValue("cidcoloana","id_grupe")
|
||||
Endwith
|
||||
|
||||
Case lcObjectName = "nom_meserie"
|
||||
With loHash
|
||||
.SetValue("cSelect", "select id_meseria, meserie from SAL_VNOM_MES")
|
||||
.SetValue("cSchema", "")
|
||||
.SetValue("cFiltru", "1=2")
|
||||
.SetValue("cOrder", "meserie")
|
||||
.SetValue("cColoana", "id_meseria, meserie")
|
||||
.SetValue("cTitlu", "Alegeti meseria")
|
||||
.SetValue("cTitluColoana", "Meseria, Id")
|
||||
.SetValue("cFiltruOriginal", [])
|
||||
.SetValue("cresultcoloana","meserie")
|
||||
.SetValue("cidcoloana","meseria")
|
||||
Endwith
|
||||
|
||||
Case lcObjectName = "nom_formatie"
|
||||
With loHash
|
||||
.SetValue("cSelect", "select id_formatia, denumire from sal_vnom_formatii")
|
||||
.SetValue("cSchema", "")
|
||||
.SetValue("cFiltru", "1=2")
|
||||
.SetValue("cOrder", "denumire")
|
||||
.SetValue("cColoana", "denumire, id_formatia")
|
||||
.SetValue("cTitlu", "Alegeti formatia")
|
||||
.SetValue("cTitluColoana", "Formatia, Id")
|
||||
.SetValue("cFiltruOriginal", [])
|
||||
.SetValue("cresultcoloana","denumire")
|
||||
.SetValue("cidcoloana","id_formatia")
|
||||
Endwith
|
||||
|
||||
Case lcObjectName = "nom_tip_rulaj"
|
||||
With loHash
|
||||
.SetValue("cSelect", "select id_tip_rulaj,descriere from nom_tip_rulaj")
|
||||
.SetValue("cSchema", "")
|
||||
.SetValue("cFiltru", "2=2")
|
||||
.SetValue("cOrder", "descriere")
|
||||
.SetValue("cColoana", "descriere,id_tip_rulaj")
|
||||
.SetValue("cTitlu", "Alegeti tipul de rulaj")
|
||||
.SetValue("cTitluColoana", "Descriere,ID")
|
||||
.SetValue("cFiltruOriginal", [STERS = 0])
|
||||
.SetValue("cresultcoloana","descriere")
|
||||
.SetValue("cidcoloana","id_tip_rulaj")
|
||||
Endwith
|
||||
|
||||
Case lcObjectName = "nom_contracte"
|
||||
With loHash
|
||||
.SetValue("cSelect", "select id_ctr, id_part, denumire, contract, numar, data from vcontracte")
|
||||
.SetValue("cSchema", "")
|
||||
.SetValue("cFiltru", "1=2")
|
||||
.SetValue("cOrder", "data desc, numar")
|
||||
.SetValue("cColoana", "contract,denumire,id_ctr")
|
||||
.SetValue("cTitlu", "Alegeti contractul")
|
||||
.SetValue("cTitluColoana", "Contract,Partener,Id")
|
||||
.SetValue("cFiltruOriginal", [])
|
||||
.SetValue("cresultcoloana","contract")
|
||||
.SetValue("cidcoloana","id_ctr")
|
||||
Endwith
|
||||
|
||||
Case lcObjectName = "tipuri_contracte"
|
||||
With loHash
|
||||
.SetValue("cSelect", "select id_tip_ctr,denumire from tipuri_contracte")
|
||||
.SetValue("cSchema", "")
|
||||
.SetValue("cFiltru", "2=2")
|
||||
.SetValue("cOrder", "denumire")
|
||||
.SetValue("cColoana", "denumire,id_tip_ctr")
|
||||
.SetValue("cTitlu", "Alegeti tipul de contract")
|
||||
.SetValue("cTitluColoana", "Denumire,ID")
|
||||
.SetValue("cFiltruOriginal", [])
|
||||
.SetValue("cresultcoloana","denumire")
|
||||
.SetValue("cidcoloana","id_tip_ctr")
|
||||
Endwith
|
||||
|
||||
Case lcObjectName = "nom_transe"
|
||||
With loHash
|
||||
.SetValue("cSelect", "select id_transa, transa from sal_vnom_transe")
|
||||
.SetValue("cSchema", "")
|
||||
.SetValue("cFiltru", "1=2")
|
||||
.SetValue("cOrder", "transa")
|
||||
.SetValue("cColoana", "transa, id_transa")
|
||||
.SetValue("cTitlu", "Alegeti transa")
|
||||
.SetValue("cTitluColoana", "Transa, Id")
|
||||
.SetValue("cFiltruOriginal", [])
|
||||
.SetValue("cresultcoloana","transa")
|
||||
.SetValue("cidcoloana","id_transa")
|
||||
Endwith
|
||||
|
||||
Case lcObjectName = "nom_tichete"
|
||||
With loHash
|
||||
.SetValue("cSelect", "select id, denumire,valoare from sal_vnom_tichete")
|
||||
.SetValue("cSchema", "")
|
||||
.SetValue("cFiltru", "1=2")
|
||||
.SetValue("cOrder", "denumire")
|
||||
.SetValue("cColoana", "denumire, valoare, id")
|
||||
.SetValue("cTitlu", "Alegeti tipul tichetului")
|
||||
.SetValue("cTitluColoana", "Tip tichet,Valoare, Id")
|
||||
.SetValue("cFiltruOriginal", [])
|
||||
.SetValue("cresultcoloana","denumire")
|
||||
.SetValue("cidcoloana","id")
|
||||
Endwith
|
||||
|
||||
Case lcObjectName = "nom_locatii"
|
||||
With loHash
|
||||
.SetValue("cSelect", "select id, denumire, sters, inactiv, id_util, dataora, id_utils, dataoras from vnom_locatii")
|
||||
.SetValue("cSchema", "")
|
||||
.SetValue("cFiltru", "1=2")
|
||||
.SetValue("cOrder", "denumire")
|
||||
.SetValue("cColoana", "denumire,id")
|
||||
.SetValue("cTitlu", "Alegeti locatia")
|
||||
.SetValue("cTitluColoana", "Denumire,Id")
|
||||
.SetValue("cFiltruOriginal", [])
|
||||
.SetValue("cresultcoloana","denumire")
|
||||
.SetValue("cidcoloana","id")
|
||||
Endwith
|
||||
|
||||
Case lcObjectName = "nom_tipfactura"
|
||||
With loHash
|
||||
.SetValue("cSelect", "select id, denumire from fact_tipuri")
|
||||
.SetValue("cSchema", "")
|
||||
.SetValue("cFiltru", "1=2")
|
||||
.SetValue("cOrder", "denumire")
|
||||
.SetValue("cColoana", "denumire,id")
|
||||
.SetValue("cTitlu", "Alegeti tipul facturii")
|
||||
.SetValue("cTitluColoana", "Denumire,Id")
|
||||
.SetValue("cFiltruOriginal", [])
|
||||
.SetValue("cresultcoloana","denumire")
|
||||
.SetValue("cidcoloana","id")
|
||||
Endwith
|
||||
|
||||
Case lcObjectName = "nom_ruta"
|
||||
With loHash
|
||||
.SetValue("cSelect", "select id_ruta, ruta from fact_nom_rute")
|
||||
.SetValue("cSchema", "")
|
||||
.SetValue("cFiltru", "1=2")
|
||||
.SetValue("cOrder", "ruta")
|
||||
.SetValue("cColoana", "denumire,id")
|
||||
.SetValue("cTitlu", "Alegeti ruta")
|
||||
.SetValue("cTitluColoana", "Ruta,Id")
|
||||
.SetValue("cFiltruOriginal", [])
|
||||
.SetValue("cresultcoloana","ruta")
|
||||
.SetValue("cidcoloana","id_ruta")
|
||||
Endwith
|
||||
ENDCASE
|
||||
|
||||
RETURN loHash
|
||||
ENDFUNC && GetDefObjectByName
|
||||
|
||||
Enddefine && BizDataObject
|
||||
177
COMUN/programe/oproceduri_articole.prg
Normal file
177
COMUN/programe/oproceduri_articole.prg
Normal file
@@ -0,0 +1,177 @@
|
||||
*!* 27.08.2009
|
||||
*!* marius.mutu
|
||||
*!* viz_catalog_articole - taxa reconditionare
|
||||
|
||||
*!* 07.11.2019
|
||||
*!* marius.mutu
|
||||
*!* viz_catalog_articole - codnc8,greutate,tara origine
|
||||
|
||||
********* Inceput: viz_grupe_subgr_articole
|
||||
PROCEDURE viz_grupe_subgr_articole
|
||||
|
||||
PRIVATE pnId_grupa
|
||||
STORE 0 TO pnId_grupa
|
||||
lcSelect1 = ['select id_grupa,grupa from ] + gcS + [.vgest_art_gr where 1=2']
|
||||
lcschema1 = ['']
|
||||
lcorder1= [grupa]
|
||||
lcnume_coloane1 = [grupa]
|
||||
lctitlu_coloane1 = [Grupa]
|
||||
|
||||
lcSelect2 = ['select id_subgrupa,subgrupa,id_grupa,grupa,indicativ from ] + gcS + [.vgest_art_sbgr where 1=2']
|
||||
lcschema2 = ['']
|
||||
lcorder2= [subgrupa]
|
||||
lcnume_coloane2 = [subgrupa;indicativ]
|
||||
lctitlu_coloane2 = [Subgrupa,Indicativ]
|
||||
lcFiltru2 = [id_grupa=?pnId_grupa]
|
||||
|
||||
ofrm_gsa = CREATEOBJECT('frm_grupe_subgr_articole')
|
||||
ofrm_gsa.Lb_titlu_alb_b121.caption = [Categorii de articole]
|
||||
*** INITIALIZEZ PROPRIETATILE CONTAINER GRID STANGA
|
||||
WITH ofrm_gsa.ct_grid_search1
|
||||
.cSelect = lcSelect1
|
||||
.cSchema = lcSchema1
|
||||
.cFiltruOriginal = [2=2]
|
||||
.cFiltru = [2=2]
|
||||
.cTitlu = 'GRUPE'
|
||||
.corder = lcorder1
|
||||
.cnume_coloane = lcnume_coloane1
|
||||
.ctitlu_coloane = lctitlu_coloane1
|
||||
.cnumecursor = [crsgrupe_art]
|
||||
ENDWITH
|
||||
|
||||
WITH ofrm_gsa.ct_grid_search2
|
||||
.cSelect = lcSelect2
|
||||
.cSchema = lcSchema2
|
||||
.cFiltruOriginal = lcFiltru2
|
||||
.cFiltru = [2=2]
|
||||
.cTitlu = 'SUBGRUPE'
|
||||
.corder = lcorder2
|
||||
.cnume_coloane = lcnume_coloane2
|
||||
.ctitlu_coloane = lctitlu_coloane2
|
||||
.cnumecursor = [crssubgrupe_art]
|
||||
ENDWITH
|
||||
|
||||
ofrm_gsa.show(1)
|
||||
RELEASE ofrm_gsa
|
||||
|
||||
ENDPROC
|
||||
********* Sfarsit: viz_grupe_subgr_articole
|
||||
|
||||
|
||||
********* Inceput: viz_catalog_articole
|
||||
PROCEDURE viz_catalog_articole
|
||||
PARAMETERS tlMax,tlCuBifa,tcfiltru_init,tlCaut,tcTitlu,tlHide
|
||||
|
||||
Local lcFiltru_init, lcNrColoane_check, lcSchema, lcTitlu, lcWidth_coloane, lcfiltru, lcnume_coloane
|
||||
Local lcorder, lcselect, lctitlu_coloane, llCaut, llCuBifa, llHide, llMax, lnPornire, lnparam
|
||||
Local loColoaneCatalogArticole
|
||||
lnparam = pcount()
|
||||
llMax = IIF(lnparam >= 1 and TYPE('tlMax')='L',tlMax,.t.)
|
||||
llCuBifa = IIF(lnparam >=2 and TYPE('tlCuBifa')='L', tlCuBifa,.f.)
|
||||
lcFiltru_init = IIF(lnparam >=3 and TYPE('tcFiltru_init')='C', tcFiltru_init,[1=1])
|
||||
llCaut = IIF(lnparam >=4 and TYPE('tlCaut')='L', tlCaut,.f.)
|
||||
lcTitlu = IIF(lnparam >= 5 and TYPE('tcTitlu')='C',tcTitlu,[CATALOG DE MATERIALE SI MARFURI])
|
||||
llHide = IIF(lnparam >=6 and TYPE('tlHide')='L', tlHide,.f.)
|
||||
|
||||
|
||||
PRIVATE pnpretvtva
|
||||
STORE 0 TO pnpretvtva
|
||||
|
||||
IF (llCuBifa)
|
||||
lcselect = ['select 0 as bifa,0 as cant,'+]
|
||||
lcNrColoane_check = [2]
|
||||
lcSchema = ['bifa n(1),cant n(7,3),'+]
|
||||
lcnume_coloane = [bifa;]
|
||||
lctitlu_coloane =[Selectat,]
|
||||
ELSE
|
||||
lcselect = ['select ' +]
|
||||
lcSchema= []
|
||||
lcnume_coloane = []
|
||||
lctitlu_coloane =[]
|
||||
lcNrColoane_check = [11,12,15,21] && IN_STOC, IN_CRM, INACTIV, LISTARE_CODBARE
|
||||
ENDIF
|
||||
|
||||
lcselect = lcselect + ['inactiv, id_articol, codmat, denumire, um, um2, um_iso, cod_um_iso, id_subgrupa, subgrupa,' +] +;
|
||||
['id_grupa, grupa, cant_bax, cont, acont, dnf, in_crm, in_stoc, codbare, codmatf, conditii_pastrare,' + ] + ;
|
||||
['id_part,partener,indicativ,taxa_reconditionare,' + ] + ;
|
||||
['id_articol_general, articol_general, listare_codbare, tip, timpn, codnc8, greutate, id_tara_origine, tara_origine, codcpv from vnom_articole_toate where 1=2']
|
||||
|
||||
lcschema = lcschema + ['inactiv n(1),id_articol n(20),codmat c(50),denumire c(100),um c(6),um2 c(6),um_iso c(250),cod_um_iso c(6),id_subgrupa n(5),' +] +;
|
||||
['subgrupa c(100), id_grupa n(5), grupa c(100),' +] +;
|
||||
['cant_bax n(9,4),cont c(4),acont c(4), dnf n(5), in_crm N(1), in_stoc N(1), codbare C(50), codmatf c(50),' + ] + ;
|
||||
['conditii_pastrare M,id_part n(10), partener v(70),indicativ v(10),taxa_reconditionare N(18,4),' + ] + ;
|
||||
['id_articol_general n(20),articol_general c(100), listare_codbare n(1), tip n(1), timpn n(10,3), codnc8 C(20), greutate N(12,4), id_tara_origine I, tara_origine C(100), codcpv C(20)']
|
||||
lcorder = [denumire]
|
||||
lcnume_coloane = lcnume_coloane + [codmat;denumire;um;um_iso;cod_um_iso;grupa;subgrupa;cant_bax;um2;cont;acont;in_stoc;in_crm;codbare;dnf;inactiv;codmatf;conditii_pastrare;partener;taxa_reconditionare;articol_general;listare_codbare;tip;timpn;codnc8;greutate;tara_origine;codcpv]
|
||||
lctitlu_coloane = lctitlu_coloane + [Cod material,Denumire,UM,UM ISO,Cod UM ISO,Grupa,Subgrupa,] +;
|
||||
[Cant/impachetare,UM2,Cont,Analitic,Gestionabil,Catalog,Cod bare,DNF,Inactiv,Cod Material Furnizor,Conditii Pastrare,Furnizor principal,Taxa reconditionare,Articol general, Listare CodBare,Tip,Timp Normat,Cod NC8, Greutate, Tara origine, Cod CPV]
|
||||
lcfiltru = [1=2]
|
||||
|
||||
*!* 18.04.2012
|
||||
lcWidth_coloane = ""
|
||||
lnPornire = 1
|
||||
loColoaneCatalogArticole = CITESTE_SELECTII_OPTIUNI_UTILIZATOR("CATALOG_ARTICOLE", lcnume_coloane)
|
||||
lcnume_coloane = IIF(!EMPTY(NVL(loColoaneCatalogArticole.nume_col,'')), loColoaneCatalogArticole.nume_col, m.lcnume_coloane)
|
||||
lctitlu_coloane = IIF(!EMPTY(NVL(loColoaneCatalogArticole.titlu_col,'')), loColoaneCatalogArticole.titlu_col, m.lctitlu_coloane)
|
||||
lcWidth_coloane = IIF(!EMPTY(NVL(loColoaneCatalogArticole.width_col,'')), loColoaneCatalogArticole.width_col, m.lcWidth_coloane)
|
||||
lcOrder = IIF(!EMPTY(NVL(loColoaneCatalogArticole.ordine,'')), loColoaneCatalogArticole.ordine, m.lcorder)
|
||||
lnPornire = IIF(!EMPTY(NVL(loColoaneCatalogArticole.pornire,'')), loColoaneCatalogArticole.pornire, m.lnPornire)
|
||||
*!* 18.04.2012 ^
|
||||
|
||||
PRIVATE ofrm_cat
|
||||
ofrm_cat = CREATEOBJECT('frm_catalog_articole')
|
||||
ofrm_cat.Lb_titlu_alb_b121.Caption = lcTitlu
|
||||
ofrm_cat.lCaut = llCaut
|
||||
ofrm_cat.lCuBifa = llCuBifa
|
||||
ofrm_cat.lHide = llHide
|
||||
|
||||
IF !llMax
|
||||
ofrm_cat.windowstate = 0
|
||||
ofrm_cat.height = 350
|
||||
ofrm_cat.width = 800
|
||||
ofrm_cat.resize
|
||||
ofrm_cat.autocenter = .t.
|
||||
ENDIF
|
||||
|
||||
|
||||
WITH ofrm_cat.ct_grid_search1
|
||||
.cSelect = lcSelect
|
||||
.cSchema = lcSchema
|
||||
.cFiltruOriginal = lcFiltru_init
|
||||
.cFiltru = lcFiltru
|
||||
.cTitlu = ''
|
||||
.corder = lcorder
|
||||
.cnume_coloane = lcnume_coloane
|
||||
.ctitlu_coloane = lctitlu_coloane
|
||||
.cnumecursor = [crsnom_articole]
|
||||
.cNrColoane_check = lcNrColoane_check
|
||||
*!* 18.04.2012
|
||||
.cWidth_coloane = Alltrim(lcWidth_coloane)
|
||||
.nPornire = lnPornire
|
||||
*!* 18.04.2012 ^
|
||||
ENDWITH
|
||||
ofrm_cat.Show(1)
|
||||
|
||||
RETURN ofrm_cat
|
||||
|
||||
*!* USE IN (lccursor1)
|
||||
*!* USE IN (lccursor2)
|
||||
ENDPROC
|
||||
********* Sfarsit: viz_catalog_articole
|
||||
|
||||
********* Inceput: config_codmat
|
||||
Procedure config_codmat
|
||||
|
||||
|
||||
|
||||
ofrm_configcodmat = CreateObject([frm_config_codmat])
|
||||
ofrm_configcodmat.show(1)
|
||||
EndProc
|
||||
********* Sfarsit: config_codmat
|
||||
|
||||
********* Inceput: config_codbare
|
||||
Procedure config_codbare
|
||||
ofrm_configcodbare = CreateObject([frm_config_codbare])
|
||||
ofrm_configcodbare.show(1)
|
||||
EndProc
|
||||
********* Sfarsit: config_codbare
|
||||
633
COMUN/programe/oproceduri_atasamente.prg
Normal file
633
COMUN/programe/oproceduri_atasamente.prg
Normal file
@@ -0,0 +1,633 @@
|
||||
Procedure citeste_atasament_vanzari
|
||||
Lparameters tnIdAtVanz,tcTip,tnNrAct
|
||||
If !Empty(tnIdAtVanz)
|
||||
Private poDocument
|
||||
Store "" To poDocument
|
||||
If Used('crsat')
|
||||
Use In crsat
|
||||
Endif
|
||||
|
||||
Local loTherm
|
||||
loTherm = Newobject("_thermometer","_therm","","Citire document din baza de date...")
|
||||
loTherm.AlwaysOnTop = .T.
|
||||
loTherm.Show()
|
||||
|
||||
lcSelect = [select document from ] + gcS + [.atasamente_vanzari where ]
|
||||
lcFiltru = [id_at_vanz=]+Alltrim(Str(tnIdAtVanz))
|
||||
lcSchema = [document W]
|
||||
lcOrder = []
|
||||
llAfisare = .F.
|
||||
GENCURSOR('poDocument','crsat',lcSelect,lcFiltru,lcSchema,lcOrder,llAfisare)
|
||||
loTherm.Update(40, "Citire document din baza de date...")
|
||||
poDocument.ca_baza1.afisare()
|
||||
loTherm.Update(55, "Citire document din baza de date...")
|
||||
|
||||
lcFisier = gcTempPath + Alltrim(Str(tnNrAct,14,0)) + [_] + Alltrim(tcTip) + [.pdf]
|
||||
loTherm.Update(65, "Testare creare fisier...")
|
||||
If File(lcFisier)
|
||||
Try
|
||||
Delete File (lcFisier)
|
||||
Catch To oException
|
||||
lcFisier = Strtran(lcFisier,[.pdf],Ttoc(Datetime(),1)+[.pdf])
|
||||
Endtry
|
||||
Endif
|
||||
Select crsat
|
||||
loTherm.Update(85, "Creare fisier...")
|
||||
Strtofile(Document,lcFisier)
|
||||
loTherm.Update(95, "Deschidere fisier...")
|
||||
open_default_app(lcFisier)
|
||||
loTherm.Complete()
|
||||
Use In crsat
|
||||
Release poDocument,loTherm
|
||||
Endif
|
||||
Endproc && citeste_atasament_vanzari
|
||||
***-----------------------------------------------------------------------------------------------------------------------------
|
||||
Procedure arata_meniu_at_vanz
|
||||
Lparameters tnCod,tcSerie,tnNrFactura,tcCampValoare
|
||||
&& daca este completat si tcCampValoare, atunci apare in meniu si optiunea "Copiaza"
|
||||
&& tcCampValoare trebuie sa fie de forma "cursor.coloana"
|
||||
Local lnCod,lnNrAct,lcSerie
|
||||
lnCod = tnCod
|
||||
lnNrAct = tnNrFactura
|
||||
lcSerie = Alltrim(Nvl(tcSerie,[]))
|
||||
If Used('crsmeniu')
|
||||
Use In crsmeniu
|
||||
Endif
|
||||
lcSql = [select a.id_at_vanz,a.tip,a.tip_doc from ] + gcS + [.vatasamente_vanzari a where a.cod = ] + Alltrim(Str(lnCod)) + [ order by a.tip]
|
||||
lnSucces = goExecutor.oExecute(lcSql,[crsmeniu])
|
||||
If lnSucces < 0
|
||||
amessagebox(goExecutor.cEroare,16,"Eroare")
|
||||
Else
|
||||
Do Case
|
||||
Case !Empty(tcCampValoare)
|
||||
lcMeniu = [;\<Copiaza]
|
||||
If Reccount('crsmeniu') > 0
|
||||
lcMeniu = lcMeniu + [;\-]
|
||||
Select crsmeniu
|
||||
Scan
|
||||
lcMeniu = lcMeniu + [;] + Alltrim(tip_doc)
|
||||
Endscan
|
||||
Endif
|
||||
x = xmenu(Substr(lcMeniu,2))
|
||||
Do Case
|
||||
Case x = 1
|
||||
_Cliptext = Transform(Evaluate(tcCampValoare))
|
||||
Case Between(x,3,2+Reccount('crsmeniu'))
|
||||
Select crsmeniu
|
||||
Go (x - 2)
|
||||
citeste_atasament_vanzari(crsmeniu.id_at_vanz,crsmeniu.tip_doc,lnNrAct)
|
||||
Endcase
|
||||
Case Reccount('crsmeniu') = 1
|
||||
citeste_atasament_vanzari(crsmeniu.id_at_vanz,crsmeniu.tip_doc,lnNrAct)
|
||||
Case Reccount('crsmeniu')>0
|
||||
lcMeniu = []
|
||||
Select crsmeniu
|
||||
Scan
|
||||
lcMeniu = lcMeniu + [;] + Alltrim(tip_doc)
|
||||
Endscan
|
||||
x = xmenu(Substr(lcMeniu,2))
|
||||
Select crsmeniu
|
||||
Go x
|
||||
citeste_atasament_vanzari(crsmeniu.id_at_vanz,crsmeniu.tip_doc,lnNrAct)
|
||||
Otherwise
|
||||
amessagebox("Nu exista documente salvate in baza de date pentru factura "+lcSerie+" "+Alltrim(Str(lnNrAct,14,0)) + " !",48,"Atentie")
|
||||
Endcase
|
||||
Use In crsmeniu
|
||||
Endif
|
||||
Endproc && arata_meniu_at_vanz
|
||||
***-----------------------------------------------------------------------------------------------------------------------------
|
||||
Procedure make_crsAtasamente
|
||||
Parameters tlToate
|
||||
|
||||
Private poLink
|
||||
Store '' To poLink
|
||||
|
||||
Local lcSchema, lcSelect, lcOrder, lcFiltru, lcFiltruOriginal, llAfiseaza, lcgroup, lcFiltruOriginal
|
||||
lcSchema = [id_referinta N(5), id_atas N(5), descriere c(50), nume_fisier c(200), fisier w, dataora t, utilizator c(100) ]
|
||||
|
||||
lcSelect = [select ar.id_referinta, ar.id_atas, ar.descriere, ar.nume_fisier, '' as fisier, dataora, utilizator ]+;
|
||||
[ from VATAS_REFERINTE ar ]
|
||||
|
||||
lcOrder = [ar.nume_fisier, ar.descriere]
|
||||
lcgroup = []
|
||||
lcFiltru = []
|
||||
|
||||
*lcFiltruOriginal = [l.sters=0 and l.nume_fisier is not null and l.id_reg =]+Alltrim(Str(goRegistratura.id_reg))
|
||||
Do Case
|
||||
Case Upper(Alltrim(gcNumeProgram)) = "ROAREGISTRATURA"
|
||||
lcFiltruOriginal = [ ar.nume_fisier is not null and ar.id_program = 70 and ar.id_entitate=]+Alltrim(Str(goRegistratura.id_reg))
|
||||
Case Upper(Alltrim(gcNumeProgram)) = "ROACONTRACTE"
|
||||
lcFiltruOriginal = [ ar.nume_fisier is not null and ar.id_program = 21 and ar.id_entitate=]+Alltrim(Str(goContract.id_ctr))
|
||||
Case Upper(Alltrim(gcNumeProgram)) = "ROALUCRARI"
|
||||
lcFiltruOriginal = [ ar.nume_fisier is not null and ar.id_program = 13 and ar.id_entitate=]+Alltrim(Str(crsProiecte.id_proiect))
|
||||
Endcase
|
||||
|
||||
llModParam = .T.
|
||||
llAfiseaza = .F.
|
||||
|
||||
GENCURSOR('poLink','crsAtasamenteI', lcSelect, lcFiltru, lcSchema, lcOrder, llAfiseaza, lcgroup, llModParam, lcFiltruOriginal)
|
||||
poLink.ca_baza1.afisare()
|
||||
|
||||
Select * From crsAtasamenteI With (Buffering = .T.);
|
||||
into Cursor crsAtasamente Readwrite
|
||||
|
||||
If Used('crsAtasamenteI')
|
||||
Use In crsAtasamenteI
|
||||
Endif
|
||||
|
||||
Endproc && make_crsAtasamente
|
||||
***-----------------------------------------------------------------------------------------------------------------------------
|
||||
PROCEDURE inchide_crsAtasamente
|
||||
|
||||
IF USED('crsAtasamente')
|
||||
USE IN crsAtasamente
|
||||
ENDIF
|
||||
|
||||
ENDPROC && inchide_crsAtasamente
|
||||
***-----------------------------------------------------------------------------------------------------------------------------
|
||||
Procedure upload
|
||||
Parameters tcTabel
|
||||
|
||||
Private pnId_entitate, pcLink, pcDescriere, pcFis_name, pcFisier, pnId_atas &&,pntip_entitate modificare 30.05.2011
|
||||
Store 0 To pnTip_entitate, pnId_atas &&,pnTip_entitate modificare 30.05.2011
|
||||
Store "" To pcDescriere, pcFis_name, pcFisier, pcLink
|
||||
* pcLink - private - folosit in frm_atas_nou
|
||||
|
||||
Local llReturn,lcSql,lnSucces
|
||||
llReturn = .T.
|
||||
|
||||
Local lcTabelLinkuri
|
||||
Store '' To lcTabelLinkuri
|
||||
|
||||
If !Empty(tcTabel)
|
||||
lcTabelLinkuri = Alltrim(tcTabel) && Thisform.grid_linkuri.RecordSource
|
||||
Select (lcTabelLinkuri)
|
||||
Scatter Name poLink Blank Memo
|
||||
Else
|
||||
Create Cursor crsAtasTemp (id_atas N(5), descriere c(50), nume_fisier c(200), fisier w)
|
||||
Select crsAtasTemp
|
||||
Scatter Name poLink Blank Memo
|
||||
Use In crsAtasTemp
|
||||
Endif
|
||||
|
||||
If Upper(Alltrim(gcNumeProgram)) = "ROAREGISTRATURA"
|
||||
AddProperty(poLink,'id_proiect',goRegistratura.id_proiect)
|
||||
AddProperty(poLink,'proiect',Alltrim(goRegistratura.proiect))
|
||||
Else
|
||||
AddProperty(poLink,'id_proiect',0)
|
||||
AddProperty(poLink,'proiect','')
|
||||
Endif
|
||||
AddProperty(poLink,'id_ctr',0)
|
||||
AddProperty(poLink,'contract','')
|
||||
|
||||
lodn = Createobject("frm_atas_nou")
|
||||
lodn.Show(1)
|
||||
If gnButon = 2
|
||||
Return
|
||||
Endif
|
||||
|
||||
If Upper(Alltrim(gcNumeProgram)) = "ROAREGISTRATURA"
|
||||
pnId_entitate = goRegistratura.id_reg
|
||||
*!* pnTip_entitate = 1 modificare 30.05.2011
|
||||
Endif
|
||||
If Upper(Alltrim(gcNumeProgram)) = "ROACONTRACTE"
|
||||
pnId_entitate = goContract.id_ctr
|
||||
*!* pnTip_entitate = 2 modificare 30.05.2011
|
||||
Endif
|
||||
If Upper(Alltrim(gcNumeProgram)) = "ROALUCRARI"
|
||||
pnId_entitate = Alltrim(Str(crsProiecte.id_proiect))
|
||||
*!* pnTip_entitate = 3 modificare 30.05.2011
|
||||
Endif
|
||||
pcDescriere = Upper(Alltrim(poLink.descriere))
|
||||
pcFis_name = Upper(Alltrim(poLink.nume_fisier))
|
||||
If Empty(pcLink)
|
||||
Return
|
||||
Endif
|
||||
pcFisier = Filetostr(pcLink)
|
||||
|
||||
|
||||
lnSucces = SQLSetprop(gnhandle,"Transactions",2)
|
||||
If lnSucces < 0
|
||||
amessagebox("Programul nu a reusit sa treaca pe tranzactie manuala! Reintrati in program si incercati din nou!",48,"Atentie")
|
||||
Else
|
||||
lcSql = [insert into atas_atasamente(fisier, nume_fisier, descriere, id_util) ]+;
|
||||
[values (?pcFisier, ?pcFis_name, ?pcDescriere, ?gnIdUtil) ] + ;
|
||||
[ returning id_atas into ?@pnId_atas]
|
||||
lnSucces = goExecutor.oExecute(lcSql)
|
||||
If lnSucces < 0
|
||||
aMessagebox(goExecutor.cEroare,0+16,'Eroare')
|
||||
Else
|
||||
If Upper(Alltrim(gcNumeProgram)) = "ROAREGISTRATURA"
|
||||
lcSql = [update registratura set id_proiect = ?polink.id_proiect where id_reg = ?pnId_entitate]
|
||||
lnSucces = goExecutor.oExecute(lcSql)
|
||||
If lnSucces < 0
|
||||
aMessagebox(goExecutor.cEroare,0+16,'Eroare')
|
||||
Else
|
||||
lcSql = [insert into atas_referinte(id_atas, id_program, id_entitate, id_util) ]+;
|
||||
[values (?pnId_atas, ?gnIdProgram, ?pnId_entitate, ?gnIdUtil) ] && registratura modificare 30.05.2011 : am inlocuit pnTip_Entitate cu gnIdProgram
|
||||
lnSucces = goExecutor.oExecute(lcSql)
|
||||
If lnSucces < 0
|
||||
aMessagebox(goExecutor.cEroare,0+16,'Eroare')
|
||||
Else
|
||||
If !Empty(Nvl(poLink.id_ctr,0)) And poLink.id_ctr<> -1
|
||||
lcSql = [insert into atas_referinte(id_atas, id_program, id_entitate, id_util) ]+;
|
||||
[values (?pnId_atas, ?gnIdProgram, ?polink.id_ctr, ?gnIdUtil) ] && contracte modificare 30.05.2011 : am inlocuit pnTip_Entitate cu gnIdProgram
|
||||
lnSucces = goExecutor.oExecute(lcSql)
|
||||
If lnSucces < 0
|
||||
aMessagebox(goExecutor.cEroare,0+16,'Eroare')
|
||||
Else
|
||||
If !Empty(Nvl(poLink.id_proiect,0)) And poLink.id_proiect <> -1
|
||||
lcSql = [insert into atas_referinte(id_atas, id_program, id_entitate, id_util) ]+;
|
||||
[values (?pnId_atas, ?gnIdProgram, ?polink.id_proiect, ?gnIdUtil) ] && lucrari modificare 30.05.2011 : am inlocuit pnTip_Entitate cu gnIdProgram
|
||||
lnSucces = goExecutor.oExecute(lcSql)
|
||||
If lnSucces < 0
|
||||
aMessagebox(goExecutor.cEroare,0+16,'Eroare')
|
||||
Endif
|
||||
Endif
|
||||
Endif
|
||||
Endif
|
||||
Endif
|
||||
Endif
|
||||
Else && RoaContracte, RoaLucrari
|
||||
lcSql = [insert into atas_referinte(id_atas, id_program, id_entitate, id_util) ]+;
|
||||
[values (?pnId_atas, ?gnIdProgram, ?pnId_entitate, ?gnIdUtil) ] && modificare 30.05.2011 : am inlocuit pnTip_Entitate cu gnIdProgram
|
||||
lnSucces = goExecutor.oExecute(lcSql)
|
||||
If lnSucces < 0
|
||||
aMessagebox(goExecutor.cEroare,0+16,'Eroare')
|
||||
Endif
|
||||
Endif
|
||||
Endif
|
||||
Endif
|
||||
|
||||
If lnSucces < 0
|
||||
lcSql = "ROLLBACK"
|
||||
Else
|
||||
lcSql = "COMMIT"
|
||||
Endif
|
||||
lnSucces2 = goExecutor.oExecute(lcSql)
|
||||
|
||||
If lnSucces2 < 0
|
||||
amessagebox(lcSql + Chr(13) + goExecutor.cEroare,0+16,"Eroare")
|
||||
Endif
|
||||
|
||||
lnSucces2 = SQLSetprop(gnhandle,"Transactions",1)
|
||||
If lnSucces2 < 0
|
||||
amessagebox('Programul nu a reusit sa treaca pe tranzactie automata. Iesiti din program si intrati din nou!',0+48,'Atentie!')
|
||||
Else
|
||||
If lcSql = "COMMIT"
|
||||
If !Empty(lcTabelLinkuri)
|
||||
Select (lcTabelLinkuri)
|
||||
Append Blank
|
||||
Gather Name poLink Memo
|
||||
Replace fisier With pcFisier, id_atas With pnId_atas, nume_fisier With pcFis_name, descriere With pcDescriere, dataora With Datetime(), utilizator With gcUserNameApp
|
||||
Endif
|
||||
|
||||
Do Case
|
||||
Case Upper(Alltrim(gcNumeProgram)) = "ROAREGISTRATURA"
|
||||
goRegistratura.proiect = poLink.proiect
|
||||
goRegistratura.id_proiect = poLink.id_proiect
|
||||
|
||||
Replace are_link With 1 In cRegistratura
|
||||
Replace id_proiect With poLink.id_proiect In cRegistratura
|
||||
Replace proiect With poLink.proiect In cRegistratura
|
||||
Case Upper(Alltrim(gcNumeProgram)) = "ROACONTRACTE"
|
||||
Replace are_link With 1 In cContracte
|
||||
Endcase
|
||||
|
||||
Endif
|
||||
Endif
|
||||
|
||||
|
||||
Endproc && upload
|
||||
***-----------------------------------------------------------------------------------------------------------------------------
|
||||
Procedure import_atasamente
|
||||
Parameters tnTipEntitate
|
||||
&& completare campuri nume_fis si link_bd din link - la versiunea 2.0.7 - se salveaza atasamentele in bd
|
||||
&& ver. 2.0.12 - preluare din ctr_linkuri (reg_linkuri) in atas_atasamente, atas_referinte
|
||||
&& tnTipEntitate/gnIdProgram = 70-RoaRegistratura, 21-RoaContracte, 13-RoaLucrari
|
||||
|
||||
Private poLink, pcFisier, pcNume_fis, pcDescriere, pnId_entitate, pnId_atas, pnId_link, pnTipEntitate
|
||||
Store '' To poLink
|
||||
Store 0 To pnId_entitate, pnId_atas, pnId_link
|
||||
*!* modificare 31.05.2011
|
||||
*!* If Empty(tnTipEntitate)
|
||||
*!* Return
|
||||
*!* Endif
|
||||
*!* pnTipEntitate= tnTipEntitate
|
||||
pnTipEntitate = IIF(EMPTY(tnTipEntitate),gnIdProgram,tnTipEntitate)
|
||||
*!* modificare 31.05.2011 ^
|
||||
|
||||
Local lcSchema, lcSelect, lcOrder, lcFiltru, lcFiltruOriginal, llAfiseaza, lcgroup, lcFiltruOriginal
|
||||
lcSchema = [id_link N(5), id_entitate n(5), descriere c(50), link c(200) ]
|
||||
Do Case
|
||||
Case Upper(Alltrim(gcNumeProgram)) = "ROACONTRACTE"
|
||||
lcSelect = [select id_link, id_ctr as id_entitate, DENUMIRE AS descriere, link ]+;
|
||||
[from ctr_linkuri]
|
||||
Case Upper(Alltrim(gcNumeProgram)) = "ROAREGISTRATURA"
|
||||
lcSelect = [select id_link, id_reg as id_entitate, DENUMIRE AS descriere, link ]+;
|
||||
[from reg_linkuri]
|
||||
Case Upper(Alltrim(gcNumeProgram)) = "ROALUCRARI"
|
||||
lcSelect = [select id_link, id_proiect as id_entitate, DENUMIRE AS descriere, link ]+;
|
||||
[from con_linkuri]
|
||||
Endcase
|
||||
|
||||
lcOrder = []
|
||||
lcgroup = []
|
||||
lcFiltru = [STERS=0]
|
||||
lcFiltruOriginal = [link is not null and id_link not in (select id_link from atas_atasamente where id_tip_ent_prel = ?pnTipEntitate)]
|
||||
llModParam = .T.
|
||||
llAfiseaza = .F.
|
||||
|
||||
GENCURSOR('poLink','cCtrLink2', lcSelect, lcFiltru, lcSchema, lcOrder, llAfiseaza, lcgroup, llModParam, lcFiltruOriginal)
|
||||
poLink.ca_baza1.afisare()
|
||||
|
||||
Private pnId_link, pcNume_fis, pcLink_bd
|
||||
Local lcMesaj
|
||||
lcMesaj = ''
|
||||
|
||||
Select cCtrLink2
|
||||
Calculate Cnt() To lnFisiere
|
||||
lnIndex = 0
|
||||
Scan
|
||||
pnId_link = id_link
|
||||
pnId_entitate = id_entitate
|
||||
lcLink = Alltrim(Link)
|
||||
pcNume_fis = Justfname(lcLink)
|
||||
pcDescriere = Upper(Alltrim(descriere))
|
||||
lnIndex = lnIndex + 1
|
||||
Wait Window Alltrim(Str(lnIndex)) + '/' + Alltrim(Str(lnFisiere)) + " " + pcNume_fis Nowait
|
||||
If File(lcLink)
|
||||
pcFisier = Filetostr(lcLink)
|
||||
*lcSql = [update ctr_linkuri set nume_fis=?pcNume_fis, link_bd = ?pcLink_bd where id_link=?pnId_link]
|
||||
lcSql = [insert into atas_atasamente (fisier, nume_fisier, id_util, descriere, id_link, id_tip_ent_prel) ]+;
|
||||
[values (?pcFisier, ?pcNume_fis, ?gnIdUtil, ?pcDescriere, ?pnId_link, ?pnTipEntitate) ] +;
|
||||
[returning id_atas into ?@pnId_atas]
|
||||
lnSucces = goExecutor.oExecute(lcSql)
|
||||
If lnSucces < 0
|
||||
If amessagebox(goExecutor.cEroare + Chr(13) + Chr(10) + 'Doriti sa continuati?',4+48,'Eroare') # 6
|
||||
Exit
|
||||
Endif
|
||||
Else
|
||||
lcSql = [insert into atas_referinte (id_atas, id_program, id_entitate, id_util) ]+;
|
||||
[values (?pnId_atas, ?pnTipEntitate, ?pnId_entitate, ?gnIdUtil)]
|
||||
lnSucces = goExecutor.oExecute(lcSql)
|
||||
If lnSucces < 0
|
||||
If amessagebox(goExecutor.cEroare + Chr(13) + Chr(10) + 'Doriti sa continuati?',4+48,'Eroare') # 6
|
||||
Exit
|
||||
Endif
|
||||
Endif
|
||||
Endif
|
||||
Else
|
||||
lcMes = 'Nu exista fisierul '+lcLink+Chr(13)
|
||||
lcMesaj = lcMesaj + lcMes
|
||||
|
||||
Endif
|
||||
|
||||
Select cCtrLink2
|
||||
Endscan
|
||||
|
||||
If !Empty(lcMesaj)
|
||||
amessagebox(lcMesaj)
|
||||
Endif
|
||||
|
||||
If Used('cCtrLink2')
|
||||
Use In cCtrLink2
|
||||
Endif
|
||||
|
||||
Endproc && import_atasamente
|
||||
***-----------------------------------------------------------------------------------------------------------------------------
|
||||
Procedure modifica_atasament
|
||||
Parameters tcTabel
|
||||
|
||||
Private pcDescriere, pnId_atas
|
||||
Store 0 To pnId_atas
|
||||
Store "" To pcDescriere
|
||||
* pcLink - private - folosit in frm_atas_nou
|
||||
|
||||
Local llReturn,lcSql,lnSucces
|
||||
llReturn = .T.
|
||||
|
||||
Local lcTabelLinkuri
|
||||
If !Empty(tcTabel)
|
||||
lcTabelLinkuri = Alltrim(tcTabel) && Thisform.grid_linkuri.RecordSource
|
||||
Select (lcTabelLinkuri)
|
||||
Scatter Name poLink Memo
|
||||
Else
|
||||
Return
|
||||
Endif
|
||||
|
||||
If Upper(Alltrim(gcNumeProgram)) = "ROAREGISTRATURA"
|
||||
AddProperty(poLink,'id_proiect',goRegistratura.id_proiect)
|
||||
AddProperty(poLink,'proiect',Alltrim(goRegistratura.proiect))
|
||||
Else
|
||||
AddProperty(poLink,'id_proiect',0)
|
||||
AddProperty(poLink,'proiect','')
|
||||
Endif
|
||||
AddProperty(poLink,'id_ctr',0)
|
||||
AddProperty(poLink,'contract','')
|
||||
|
||||
lodn = Createobject("frm_atas_nou")
|
||||
lodn.Command3.Enabled=.F.
|
||||
lodn.Show(1)
|
||||
If gnButon = 2
|
||||
Return
|
||||
Endif
|
||||
|
||||
pnId_atas = poLink.id_atas
|
||||
pcDescriere = Upper(Alltrim(poLink.descriere))
|
||||
|
||||
lcSql = [update atas_atasamente set descriere = ?pcDescriere ]+;
|
||||
[where id_atas = ?pnId_atas]
|
||||
|
||||
lnSucces = goExecutor.oExecute(lcSql)
|
||||
If lnSucces < 0
|
||||
aMessagebox(goExecutor.cEroare,0+16,'Eroare')
|
||||
Endif
|
||||
|
||||
If !Empty(lcTabelLinkuri)
|
||||
Select (lcTabelLinkuri)
|
||||
Gather Name poLink Memo
|
||||
Replace descriere With pcDescriere
|
||||
Endif
|
||||
|
||||
Endproc && modifica_atasament
|
||||
***-----------------------------------------------------------------------------------------------------------------------------
|
||||
Procedure salveaza_atasamente
|
||||
Parameters tcTabel
|
||||
|
||||
Local lcTabel
|
||||
lcTabel = tcTabel
|
||||
|
||||
lcSql = [select ar.id_referinta ]+;
|
||||
[ from VATAS_REFERINTE ar ]+;
|
||||
[ where ar.nume_fisier is not null and ar.id_program = ?gnIdProgram and ar.id_entitate=]+Alltrim(Str(goContract.id_ctr))
|
||||
lcCursor = 'crsAtasamente_server'
|
||||
lnSucces = goExecutor.oExecute(lcSql, lcCursor)
|
||||
If lnSucces < 0
|
||||
AMESSAGEBOX(goExecutor.cEroare,0+16,"Eroare")
|
||||
Return lnSucces
|
||||
Endif
|
||||
|
||||
* daca exista id_referinta in plus in cursorul de pe local, adaug pe server
|
||||
Private pnId_entitate, pcLink, pcDescriere, pcFis_name, pcFisier, pnId_atas
|
||||
Store 0 To pnId_entitate, pnId_atas
|
||||
Store "" To pcDescriere, pcFis_name, pcFisier, pcLink
|
||||
|
||||
pnId_entitate = goContract.id_ctr
|
||||
|
||||
Select * From (lcTabel) ;
|
||||
Where (Empty(id_referinta) Or Isnull(id_referinta)) ;
|
||||
INTO Cursor cAtasamente_nou
|
||||
|
||||
Select cAtasamente_nou
|
||||
Scan
|
||||
pcDescriere = Upper(Alltrim(descriere))
|
||||
pcFis_name = Upper(Alltrim(nume_fisier))
|
||||
*!* If Empty(pcLink)
|
||||
*!* Return
|
||||
*!* Endif
|
||||
* pcFisier = Filetostr(pcLink)
|
||||
pcFisier = fisier
|
||||
|
||||
lcSql = [insert into atas_atasamente(fisier, nume_fisier, descriere, id_util) ]+;
|
||||
[values (?pcFisier, ?pcFis_name, ?pcDescriere, ?gnIdUtil) ] + ;
|
||||
[ returning id_atas into ?@pnId_atas]
|
||||
lnSucces = goExecutor.oExecute(lcSql)
|
||||
If lnSucces < 0
|
||||
aMessagebox(goExecutor.cEroare,0+16,'Eroare')
|
||||
Endif
|
||||
|
||||
lcSql = [insert into atas_referinte(id_atas, id_program, id_entitate, id_util) ]+;
|
||||
[values (?pnId_atas, ?gnIdProgram, ?pnId_entitate, ?gnIdUtil) ]
|
||||
lnSucces = goExecutor.oExecute(lcSql)
|
||||
If lnSucces < 0
|
||||
aMessagebox(goExecutor.cEroare,0+16,'Eroare')
|
||||
Return lnSucces
|
||||
Endif
|
||||
Select cAtasamente_nou
|
||||
Endscan
|
||||
|
||||
If Used('cAtasamente_nou')
|
||||
Use In cAtasamente_nou
|
||||
Endif
|
||||
|
||||
* daca exista id_referinta pe server, care nu mai sunt pe local, sterg
|
||||
*!* Select id_referinta From crsAtasamente_server ;
|
||||
*!* Where id_referinta Not In (Select id_referinta From cId_ref) ;
|
||||
*!* INTO Cursor cAtasamente_sters
|
||||
|
||||
lcDeleted = Set("Deleted")
|
||||
|
||||
Set Deleted Off
|
||||
Select * From (lcTabel) Where Deleted() And !Empty(id_referinta);
|
||||
INTO Cursor cAtasamente_sters
|
||||
|
||||
Select cAtasamente_sters
|
||||
Scan
|
||||
*pcId_atas = Alltrim(Str(id_atas))
|
||||
lcId_referinta = Alltrim(Str(id_referinta))
|
||||
lcSql = [update atas_referinte set sters = 1, dataoras = SYSDATE, id_utils = ] + Alltrim(Str(gnIdUtil)) + ;
|
||||
[ WHERE id_referinta = ] + lcId_referinta
|
||||
lnSucces = goExecutor.oExecute(lcSql)
|
||||
|
||||
If lnSucces < 0
|
||||
AMESSAGEBOX(goExecutor.cEroare,0+16,"Eroare")
|
||||
Return lnSucces
|
||||
Endif
|
||||
Select cAtasamente_sters
|
||||
Endscan
|
||||
|
||||
If Used('cAtasamente_sters')
|
||||
Use In cAtasamente_sters
|
||||
Endif
|
||||
|
||||
Set Deleted &lcDeleted
|
||||
|
||||
If Used('cAtasamente_sters')
|
||||
Use In cAtasamente_sters
|
||||
Endif
|
||||
|
||||
If Used('crsAtasamente_server')
|
||||
Use In crsAtasamente_server
|
||||
Endif
|
||||
|
||||
Return lnSucces
|
||||
Endproc && salveaza_atasamente
|
||||
***-----------------------------------------------------------------------------------------------------------------------------
|
||||
Procedure arata_linkuri
|
||||
|
||||
Private poLink
|
||||
Store '' To poLink
|
||||
|
||||
Local lcMenu, lnx, lcDocument,lnNrLinkuri, lnIdAtas
|
||||
Local lcSchema, lcSelect, lcOrder, lcFiltru, lcFiltruOriginal, llAfiseaza, lcgroup, lcFiltruOriginal
|
||||
Store '' To lcMenu
|
||||
Store 0 To lnNrLinkuri, lnIdAtas
|
||||
|
||||
|
||||
Do make_crsAtasamente In oproceduri_atasamente.prg
|
||||
|
||||
lcMenu = lcMenu + "Ataseaza ...;\-;"
|
||||
Select crsAtasamente
|
||||
Scan
|
||||
lcMenu = lcMenu + Alltrim(Nvl(descriere,''))+ ' - ' + Alltrim(Nvl(nume_fisier,'')) +';'
|
||||
lnNrLinkuri = lnNrLinkuri + 1
|
||||
Select crsAtasamente
|
||||
Endscan
|
||||
|
||||
If Upper(Alltrim(gcNumeProgram)) = "ROALUCRARI" And lnNrLinkuri > 0
|
||||
lcMenu = lcMenu + '\-;'+ "Vizualizare atasamente ...;"
|
||||
Endif
|
||||
|
||||
|
||||
If !Empty(lcMenu)
|
||||
lcMenu = Substr(lcMenu,1,Len(lcMenu)-1)
|
||||
lnx = xmenu(lcMenu)
|
||||
|
||||
Do Case
|
||||
Case lnx = 1 && Ataseaza
|
||||
Do upload In oproceduri_atasamente.prg
|
||||
Case lnx = lnNrLinkuri + 4
|
||||
Select crsAtasamente
|
||||
Go Top
|
||||
|
||||
ofrmVizAtas = Createobject('frm_viz_atasamente')
|
||||
ofrmVizAtas.Show(1)
|
||||
Release ofrmVizAtas
|
||||
Otherwise
|
||||
|
||||
Select crsAtasamente
|
||||
Locate For Recno() = lnx - 2
|
||||
If Found()
|
||||
lnIdAtas = id_atas
|
||||
lcNume_fisier = Alltrim(nume_fisier)
|
||||
lcSchema = [fisier w ]
|
||||
lcSelect = [select fisier from atas_atasamente where id_atas = ] + Alltrim(Str(lnIdAtas))
|
||||
lcOrder = []
|
||||
lcgroup = []
|
||||
lcFiltru = []
|
||||
lcFiltruOriginal = []
|
||||
llModParam = .T.
|
||||
llAfiseaza = .F.
|
||||
|
||||
GENCURSOR('poLink','cRegFisierTemp', lcSelect, lcFiltru, lcSchema, lcOrder, llAfiseaza, lcgroup, llModParam, lcFiltruOriginal)
|
||||
poLink.ca_baza1.afisare()
|
||||
If Used('cRegFisierTemp')
|
||||
lcFisier = fisier
|
||||
Use In (Select('cRegFisierTemp'))
|
||||
lcFisSalvat = Addbs(gcTempPath)+lcNume_fisier
|
||||
|
||||
Strtofile(lcFisier, lcFisSalvat)
|
||||
open_default_app(lcFisSalvat)
|
||||
|
||||
Endif
|
||||
Endif
|
||||
Endcase
|
||||
|
||||
If Used('crsAtasamente')
|
||||
Use In crsAtasamente
|
||||
Endif
|
||||
Endif
|
||||
|
||||
Endproc && arata_linkuri
|
||||
***-----------------------------------------------------------------------------------------------------------------------------
|
||||
103
COMUN/programe/oproceduri_casa_marcat_e500.prg
Normal file
103
COMUN/programe/oproceduri_casa_marcat_e500.prg
Normal file
@@ -0,0 +1,103 @@
|
||||
*********************************************************************************************************
|
||||
Procedure imprimare_bon_fiscal
|
||||
Lparameters tcSir,tdDataOra,tnNrBon
|
||||
Private pcCale,pcExec,pcFisierText
|
||||
Store [] To pcCaleExec,pcExec,pcFisierText
|
||||
Local lcSir
|
||||
lcSir=tcSir
|
||||
gaseste_fisier_ini()
|
||||
If !Empty(pcCaleExec)
|
||||
Set Safety Off
|
||||
Strtofile(lcSir,pcCaleExec+pcFisierText,0)
|
||||
Cd (pcCaleExec)
|
||||
lcDirectorZi=Iif(Type('tdDataOra')='D',Dtos(tdDataOra),Dtos(Ttod(tdDataOra)))
|
||||
ltDataOra=Iif(Type('tdDataOra')='T',tdDataOra,Datetime())
|
||||
lcNumeFisierBon=Alltrim(Str(tnNrBon))+[_]+Alltrim(Str(Hour(ltDataOra)))+[_]+;
|
||||
ALLTRIM(Str(Minute(ltDataOra)))+[_]+Alltrim(Str(Sec(ltDataOra)))
|
||||
lnRaspuns=6
|
||||
lnNrIncercare=0
|
||||
Do While lnRaspuns=6
|
||||
lcComanda=[RUN ]+pcCaleExec+pcExec
|
||||
&lcComanda
|
||||
If File(pcCaleExec+[ERR])
|
||||
lcString=Filetostr(pcCaleExec+[ERR])
|
||||
lcStringOk=Replicate([0]+Chr(13)+Chr(10),Occurs(Chr(13)+Chr(10),lcString))
|
||||
If lcString=lcStringOk
|
||||
lcDirector=[Bonuri ok]
|
||||
lnRaspuns=7
|
||||
Else
|
||||
lcDirector=[Bonuri err]
|
||||
lnRaspuns=aMessagebox("Eroare la listarea bonului! Doriti sa reincercati?",;
|
||||
4+16+256,"Eroare")
|
||||
lnNrIncercare=lnNrIncercare+1
|
||||
Endif
|
||||
If !Directory(pcCaleExec+lcDirector)
|
||||
Md (lcDirector)
|
||||
Endif
|
||||
If !Directory(pcCaleExec+lcDirector+[\]+lcDirectorZi)
|
||||
Md (pcCaleExec+lcDirector+[\]+lcDirectorZi)
|
||||
Endif
|
||||
lcNumeFisierBon=lcNumeFisierBon+;
|
||||
IIF(lnNrIncercare>0,[_I]+Alltrim(Str(lnNrIncercare)),[])
|
||||
Copy File (pcCaleExec+pcFisierText) To ;
|
||||
(pcCaleExec+lcDirector+[\]+lcDirectorZi+[\]+lcNumeFisierBon+[.txt])
|
||||
Copy File (pcCaleExec+[ERR]) To ;
|
||||
(pcCaleExec+lcDirector+[\]+lcDirectorZi+[\]+lcNumeFisierBon+[.err])
|
||||
Delete File (pcCaleExec+[ERR])
|
||||
Else
|
||||
lcDirectorErr=[Bonuri err]
|
||||
If !Directory(pcCaleExec+lcDirectorErr)
|
||||
Md (lcDirectorErr)
|
||||
Endif
|
||||
If !Directory(pcCaleExec+lcDirectorErr+[\]+lcDirectorZi)
|
||||
Md (pcCaleExec+lcDirectorErr+[\]+lcDirectorZi)
|
||||
Endif
|
||||
Copy File (pcCaleExec+pcFisierText) To ;
|
||||
(pcCaleExec+lcDirectorErr+[\]+lcDirectorZi+[\]+lcNumeFisierBon+[.txt])
|
||||
Endif
|
||||
Enddo
|
||||
Cd (gcAppPath)
|
||||
Endif
|
||||
Endproc && imprimare_bon_fiscal
|
||||
*********************************************************************************************************
|
||||
Procedure gaseste_fisier_ini
|
||||
Local lnFileHandle,lcFisierConfigurare,lnRaspuns
|
||||
lnRaspuns=6
|
||||
lcFisierConfigurare=gcAppPath+[\INITIALIZARI\]+Alltrim(gcNumeProgram)+[_bon.xml]
|
||||
Do While lnRaspuns=6
|
||||
If File(lcFisierConfigurare)
|
||||
lnFileHandle=Fopen(lcFisierConfigurare,12)
|
||||
lnSize = Fseek(lnFileHandle,0,2)
|
||||
If lnSize>0
|
||||
Fseek(lnFileHandle, 0, 0)
|
||||
lcFisier = Fread(lnFileHandle,lnSize)
|
||||
lcString = Strextract(Upper(lcFisier),;
|
||||
[<]+Upper(Alltrim(gcS))+[>],[</]+Upper(Alltrim(gcS))+[>])
|
||||
If !Empty(lcString)
|
||||
lcElement=[LAUNCH_PATH]
|
||||
pcCaleExec=Strextract(lcString,[<]+lcElement+[>],[</]+lcElement+[>])
|
||||
lcElement=[LAUNCH_FILE]
|
||||
pcExec=Strextract(lcString,[<]+lcElement+[>],[</]+lcElement+[>])
|
||||
lcElement=[LAUNCH_DATA]
|
||||
pcFisierText=Strextract(lcString,[<]+lcElement+[>],[</]+lcElement+[>])
|
||||
Else
|
||||
aMessagebox("Nu exista configurarile pentru listarea bonurilor fiscale pe aceasta firma!",0+48,"Atentie")
|
||||
pcCaleExec=[]
|
||||
Endif
|
||||
Else
|
||||
aMessagebox("Fisierul de configurari pentru bonurilor fiscale este gol!",0+48,"Atentie")
|
||||
pcCaleExec=[]
|
||||
Endif
|
||||
Fclose(lnFileHandle)
|
||||
Else
|
||||
aMessagebox("Nu exista fisierul de configurare pentru listarea bonurilor fiscale!",0+48,"Atentie")
|
||||
pcCaleExec=[]
|
||||
Endif
|
||||
If Empty(pcCaleExec)
|
||||
lnRaspuns=aMessagebox("Doriti sa mai incercati listarea bonului?",4+32+256,"Confirmare")
|
||||
Else
|
||||
lnRaspuns=7
|
||||
Endif
|
||||
Enddo
|
||||
Endproc && gaseste_fisier_ini
|
||||
*********************************************************************************************************
|
||||
116
COMUN/programe/oproceduri_casa_marcat_mp500.prg
Normal file
116
COMUN/programe/oproceduri_casa_marcat_mp500.prg
Normal file
@@ -0,0 +1,116 @@
|
||||
*********************************************************************************************************
|
||||
Procedure imprimare_bon_mp500
|
||||
Lparameters tcSir,tdDataOra,tnNrBon
|
||||
Private pcCale,pcExec,pcFisierText
|
||||
Store [] To pcCaleExec,pcExec,pcFisierText
|
||||
Local lcSir,lcFisierRez,laCount,i,llOk
|
||||
lcSir=tcSir
|
||||
lcFisierRez = []
|
||||
laCount = 0
|
||||
i=0
|
||||
lcOk = .t.
|
||||
|
||||
gaseste_fisier_ini_mp500()
|
||||
If !Empty(pcCaleExec)
|
||||
Set Safety Off
|
||||
Strtofile(lcSir,pcCaleExec+pcFisierText,0)
|
||||
|
||||
Cd (pcCaleExec)
|
||||
lcDirectorZi=Iif(Type('tdDataOra')='D',Dtos(tdDataOra),Dtos(Ttod(tdDataOra)))
|
||||
ltDataOra=Iif(Type('tdDataOra')='T',tdDataOra,Datetime())
|
||||
lcNumeFisierBon=Alltrim(Str(tnNrBon))+[_]+Alltrim(Str(Hour(ltDataOra)))+[_]+;
|
||||
ALLTRIM(Str(Minute(ltDataOra)))+[_]+Alltrim(Str(Sec(ltDataOra)))
|
||||
lnRaspuns=6
|
||||
lnNrIncercare=0
|
||||
Do While lnRaspuns=6
|
||||
|
||||
lcComanda=[RUN ]+pcCaleExec+pcExec + [ ] + pcCaleExec + pcFisierText
|
||||
&lcComanda
|
||||
|
||||
|
||||
lcFisierRez = pcCaleExec+[answer.txt]
|
||||
laCount = ALINES(laFisierRez,FILETOSTR(lcFisierRez))
|
||||
|
||||
IF laCount#0
|
||||
FOR i=1 TO laCount
|
||||
llOk = IIF(OCCURS('Er',STREXTRACT(laFisierRez[i],';',';',1))>0,.f.,.t.)
|
||||
IF llOk = .f.
|
||||
EXIT
|
||||
ENDIF
|
||||
ENDFOR
|
||||
ELSE
|
||||
llOk = .f.
|
||||
ENDIF
|
||||
|
||||
RELEASE laFisierRez
|
||||
|
||||
IF llOk = .f.
|
||||
|
||||
lcDirector=[Bonuri err]
|
||||
lnRaspuns=aMessagebox("Eroare la listarea bonului! Doriti sa reincercati?",;
|
||||
4+16+256,"Eroare")
|
||||
lnNrIncercare=lnNrIncercare+1
|
||||
ELSE
|
||||
lcDirector=[Bonuri ok]
|
||||
lnRaspuns=7
|
||||
|
||||
ENDIF
|
||||
If !Directory(pcCaleExec+lcDirector)
|
||||
Md (lcDirector)
|
||||
Endif
|
||||
If !Directory(pcCaleExec+lcDirector+[\]+lcDirectorZi)
|
||||
Md (pcCaleExec+lcDirector+[\]+lcDirectorZi)
|
||||
Endif
|
||||
|
||||
lcNumeFisierBon=lcNumeFisierBon+;
|
||||
IIF(lnNrIncercare>0,[_I]+Alltrim(Str(lnNrIncercare)),[])
|
||||
|
||||
Copy File (lcFisierRez) To ;
|
||||
(pcCaleExec+[\]+lcDirector+[\]+lcDirectorZi+[\]+lcNumeFisierBon+[.txt])
|
||||
|
||||
Enddo
|
||||
Cd (gcAppPath)
|
||||
Endif
|
||||
Endproc && imprimare_bon_fiscal
|
||||
*********************************************************************************************************
|
||||
Procedure gaseste_fisier_ini_mp500
|
||||
Local lnFileHandle,lcFisierConfigurare,lnRaspuns
|
||||
lnRaspuns=6
|
||||
lcFisierConfigurare=gcAppPath+[\INITIALIZARI\]+Alltrim(gcNumeProgram)+[_mp500.xml]
|
||||
Do While lnRaspuns=6
|
||||
If File(lcFisierConfigurare)
|
||||
lnFileHandle=Fopen(lcFisierConfigurare,12)
|
||||
lnSize = Fseek(lnFileHandle,0,2)
|
||||
If lnSize>0
|
||||
Fseek(lnFileHandle, 0, 0)
|
||||
lcFisier = Fread(lnFileHandle,lnSize)
|
||||
lcString = Strextract(Upper(lcFisier),;
|
||||
[<]+Upper(Alltrim(gcS))+[>],[</]+Upper(Alltrim(gcS))+[>])
|
||||
If !Empty(lcString)
|
||||
lcElement=[LAUNCH_PATH]
|
||||
pcCaleExec=Strextract(lcString,[<]+lcElement+[>],[</]+lcElement+[>])
|
||||
lcElement=[LAUNCH_FILE]
|
||||
pcExec=Strextract(lcString,[<]+lcElement+[>],[</]+lcElement+[>])
|
||||
lcElement=[LAUNCH_DATA]
|
||||
pcFisierText=Strextract(lcString,[<]+lcElement+[>],[</]+lcElement+[>])
|
||||
Else
|
||||
aMessagebox("Nu exista configurarile pentru listarea bonurilor fiscale pe aceasta firma!",0+48,"Atentie")
|
||||
pcCaleExec=[]
|
||||
Endif
|
||||
Else
|
||||
aMessagebox("Fisierul de configurari pentru bonurilor fiscale este gol!",0+48,"Atentie")
|
||||
pcCaleExec=[]
|
||||
Endif
|
||||
Fclose(lnFileHandle)
|
||||
Else
|
||||
aMessagebox("Nu exista fisierul de configurare pentru listarea bonurilor fiscale!",0+48,"Atentie")
|
||||
pcCaleExec=[]
|
||||
Endif
|
||||
If Empty(pcCaleExec)
|
||||
lnRaspuns=aMessagebox("Doriti sa mai incercati listarea bonului?",4+32+256,"Confirmare")
|
||||
Else
|
||||
lnRaspuns=7
|
||||
Endif
|
||||
Enddo
|
||||
Endproc && gaseste_fisier_ini
|
||||
*********************************************************************************************************
|
||||
186
COMUN/programe/oproceduri_casademarcat.prg
Normal file
186
COMUN/programe/oproceduri_casademarcat.prg
Normal file
@@ -0,0 +1,186 @@
|
||||
Procedure casademarcat
|
||||
Local lnLungime,lnButon
|
||||
lnLungime=14
|
||||
lnRaspuns=6
|
||||
Dimension taValori[lnLungime,3]
|
||||
*!* modificare migrare v 1.0 > v 2.0
|
||||
*!* Do While lnRaspuns = 6
|
||||
*!* glListareBonFiscal=.T.
|
||||
*!* modificare migrare v 1.0 > v 2.0 ^
|
||||
|
||||
taValori[1,1]="poAct.id_fdoc"
|
||||
taValori[1,2]=Alltrim(Str(gnid_fdoc_bonfiscal))
|
||||
taValori[1,3]= !Empty(gnid_fdoc_bonfiscal)
|
||||
|
||||
taValori[2,1]="poAct.fdoc"
|
||||
*!* modificare migrare v 1.0 > v 2.0
|
||||
*!* taValori[2,2]=IIF(!EMPTY(gnid_fdoc_bonfiscal),[BON FISCAL],[])
|
||||
taValori[2,2]=Iif(!Empty(gnid_fdoc_bonfiscal),citeste_setari_casademarcat(1,gnid_fdoc_bonfiscal),[])
|
||||
*!* modificare migrare v 1.0 > v 2.0
|
||||
taValori[2,3]= !Empty(gnid_fdoc_bonfiscal)
|
||||
|
||||
taValori[3,1]="poAct.id_gestout"
|
||||
taValori[3,2]=Alltrim(Str(gnid_gestiune_bufet))
|
||||
taValori[3,3]= !Empty(gnid_gestiune_bufet)
|
||||
|
||||
taValori[4,1]="poAct.gestout"
|
||||
*!* modificare migrare v 1.0 > v 2.0
|
||||
*!* taValori[4,2]=IIF(!EMPTY(gnid_gestiune_bufet),[BUFET],[])
|
||||
taValori[4,2]=Iif(!Empty(gnid_gestiune_bufet),citeste_setari_casademarcat(2,gnid_gestiune_bufet),[])
|
||||
*!* modificare migrare v 1.0 > v 2.0
|
||||
taValori[4,3]=!Empty(gnid_gestiune_bufet)
|
||||
|
||||
*!* lnNumarBon = aloca_numar_bf() && in oserii_numere.prg
|
||||
*!* IF lnNumarBon = -1
|
||||
*!* Return
|
||||
*!* Endif
|
||||
|
||||
*!* taValori[5,1]="poAct.nract"
|
||||
*!* taValori[5,2]=Alltrim(Str(lnNumarBon))
|
||||
*!* taValori[5,3]=.T.
|
||||
|
||||
taValori[5,1]="poAct.id_vv4111"
|
||||
taValori[5,2]=Alltrim(Str(gnid_part_diversi))
|
||||
taValori[5,3]=!Empty(gnid_part_diversi)
|
||||
|
||||
taValori[6,1]="poAct.v4111"
|
||||
*!* modificare migrare v 1.0 > v 2.0
|
||||
*!* taValori[6,2]= IIF(!EMPTY(gnid_part_diversi),[DIVERSI],[])
|
||||
taValori[6,2]= Iif(!Empty(gnid_part_diversi),citeste_setari_casademarcat(3,gnid_part_diversi),[])
|
||||
*!* modificare migrare v 1.0 > v 2.0 ^
|
||||
taValori[6,3]=!Empty(gnid_part_diversi)
|
||||
|
||||
taValori[7,1]="poAct.id_lucrare"
|
||||
taValori[7,2]=[0]
|
||||
taValori[7,3]=.T.
|
||||
|
||||
taValori[8,1]="poAct.nrord"
|
||||
taValori[8,2]=[<NU SE COMPLETEAZA>]
|
||||
taValori[8,3]=.T.
|
||||
|
||||
taValori[9,1]="poAct.id_responsabil"
|
||||
taValori[9,2]=[0]
|
||||
taValori[9,3]=.T.
|
||||
|
||||
taValori[10,1]="poAct.nresp"
|
||||
taValori[10,2]=[<NU SE COMPLETEAZA>]
|
||||
taValori[10,3]=.T.
|
||||
|
||||
taValori[11,1]="poAct.id_sectie"
|
||||
taValori[11,2]=Alltrim(Str(gnid_sectie_bufet))
|
||||
taValori[11,3]=!Empty(gnid_sectie_bufet)
|
||||
|
||||
taValori[12,1]="poAct.sectie"
|
||||
*!* modificare migrare v 1.0 > v 2.0
|
||||
*!* taValori[12,2]=IIF(!EMPTY(gnid_sectie_bufet),[BUFET],[])
|
||||
taValori[12,2]=Iif(!Empty(gnid_sectie_bufet),citeste_setari_casademarcat(4,gnid_sectie_bufet),[])
|
||||
*!* modificare migrare v 1.0 > v 2.0 ^
|
||||
taValori[12,3]=!Empty(gnid_sectie_bufet)
|
||||
|
||||
taValori[13,1]="poAct.id_vv53110"
|
||||
taValori[13,2]=Alltrim(Str(gnid_part_bufet))
|
||||
taValori[13,3]=!Empty(gnid_part_bufet)
|
||||
|
||||
taValori[14,1]="poAct.v53110"
|
||||
*!* modificare migrare v 1.0 > v 2.0
|
||||
*!* taValori[14,2]=IIF(!EMPTY(gnid_part_bufet),[BUFET],[])
|
||||
taValori[14,2]=Iif(!Empty(gnid_part_bufet),citeste_setari_casademarcat(5,gnid_part_bufet),[])
|
||||
*!* modificare migrare v 1.0 > v 2.0 ^
|
||||
taValori[14,3]=!Empty(gnid_part_bufet)
|
||||
|
||||
*!* modificare migrare v 1.0 > v 2.0
|
||||
Do While lnRaspuns = 6
|
||||
glListareBonFiscal=.T.
|
||||
*!* modificare migrare v 1.0 > v 2.0 ^
|
||||
lnSucces=lans(228,.F.,.T.,@taValori)
|
||||
glListareBonFiscal=.F.
|
||||
lnRaspuns = amessagebox("Doriti sa continuati cu operatii de acest fel?",4+32,"Confirmare")
|
||||
Enddo
|
||||
Endproc
|
||||
|
||||
*******************************************
|
||||
Procedure creare_bon_fiscal
|
||||
Local lcSirBonFiscal,lnTip,lnIdCasa,lnTotalSuma,ldDataBonFiscal,lnNumarBonFiscal,lnTotalSuma
|
||||
lnNumarBonFiscal=0
|
||||
lnTotalSuma=0
|
||||
lcSirBonFiscal=[]
|
||||
|
||||
&& lcSirBonFiscal (explicatii) :
|
||||
&& 5 (incasare);suma achitata;0(numerar);0(moneda);0(numar card credit)
|
||||
ldDataBonFiscal=get_ora()
|
||||
Select actactan
|
||||
Set Filter To scd='5311'
|
||||
Scan
|
||||
lnNumarBonFiscal=nract
|
||||
lnIdCasa=id_partd
|
||||
Do Case
|
||||
Case Type('gnId_casa_achit')<>'U' And lnIdCasa=gnId_casa_achit && optiune din Devize
|
||||
lnTip=1
|
||||
*!* Case TYPE('gnId_Part_Bufet')<>'U' AND lnIdCasa=gnId_Part_Bufet && optiune din Gestiuni
|
||||
*!* lnTip=2
|
||||
Otherwise
|
||||
lnTip=3
|
||||
Endcase
|
||||
lcSirBonFiscal=lcSirBonFiscal+[1;Fact.]+Alltrim(Str(perechec))+[;1;]+Alltrim(Str(lnTip))+[;1;]+Alltrim(Str(suma*100))+[;1000;0]+CRLF
|
||||
lnTotalSuma=lnTotalSuma+suma
|
||||
Endscan
|
||||
Set Filter To
|
||||
If !Empty(lcSirBonFiscal)
|
||||
lcSirBonFiscal=lcSirBonFiscal+[5;]+Alltrim(Str(lnTotalSuma*100))+[;0;0;0]+CRLF+CRLF
|
||||
imprimare_bon_fiscal(lcSirBonFiscal,ldDataBonFiscal,lnNumarBonFiscal)
|
||||
Else
|
||||
amessagebox("Bonul nu contine nici un element!",0+48,"Atentie")
|
||||
Endif
|
||||
Endproc
|
||||
******************************************************************************************
|
||||
Function citeste_setari_casademarcat
|
||||
Lparameters tnTip,tnId
|
||||
Local lcValoare,lcCursor,llCautare
|
||||
llCautare = .T.
|
||||
lcCursor = [crssetaricasa]
|
||||
Do Case
|
||||
Case tnTip = 1 And !Empty(Nvl(tnId,0))
|
||||
lcValoare = [BON FISCAL]
|
||||
lcSql = [select fel_document as valoare from nom_fdoc ] + ;
|
||||
[where sters = 0 and inactiv = 0 and id_fdoc = ] + Alltrim(Str(tnId)) && gnid_fdoc_bonfiscal
|
||||
Case tnTip = 2 And !Empty(Nvl(tnId,0))
|
||||
lcValoare = [BUFET]
|
||||
lcSql = [select nume_gestiune as valoare from nom_gestiuni ] + ;
|
||||
[where sters = 0 and inactiv = 0 and id_gestiune = ] + Alltrim(Str(tnId)) && gnid_gestiune_bufet
|
||||
Case tnTip = 3 And !Empty(Nvl(tnId,0))
|
||||
lcValoare = [DIVERSI]
|
||||
lcSql = [select denumire as valoare from nom_parteneri ] + ;
|
||||
[where sters = 0 and inactiv = 0 and id_part = ] + Alltrim(Str(tnId)) && gnid_part_diversi
|
||||
Case tnTip = 4 And !Empty(Nvl(tnId,0))
|
||||
lcValoare = [BUFET]
|
||||
lcSql = [select sectie as valoare from nom_sectii ] + ;
|
||||
[where sters = 0 and inactiv = 0 and id_sectie = ] + Alltrim(Str(tnId)) && gnid_sectie_bufet
|
||||
Case tnTip = 5 And !Empty(Nvl(tnId,0))
|
||||
lcValoare = [BUFET]
|
||||
lcSql = [select denumire as valoare from nom_parteneri ] + ;
|
||||
[where sters = 0 and inactiv = 0 and id_part = ] + Alltrim(Str(tnId)) && gnid_part_bufet
|
||||
Otherwise
|
||||
lcValoare = []
|
||||
llCautare = .F.
|
||||
Endcase
|
||||
|
||||
If llCautare
|
||||
If Used(lcCursor)
|
||||
Use In (lcCursor)
|
||||
Endif
|
||||
lnSucces = goExecutor.oExecute(lcSql,lcCursor)
|
||||
If lnSucces < 0
|
||||
amessagebox(goExecutor.oPrelucrareEroare(),16,"Eroare")
|
||||
Else
|
||||
If Reccount(lcCursor) > 0
|
||||
Select (lcCursor)
|
||||
lcValoare = Alltrim(valoare)
|
||||
Endif
|
||||
Endif
|
||||
If Used(lcCursor)
|
||||
Use In (lcCursor)
|
||||
Endif
|
||||
Endif
|
||||
Return lcValoare
|
||||
Endfunc && citeste_setari_casademarcat
|
||||
******************************************************************************************
|
||||
8335
COMUN/programe/oproceduri_comune.prg
Normal file
8335
COMUN/programe/oproceduri_comune.prg
Normal file
File diff suppressed because it is too large
Load Diff
188
COMUN/programe/oproceduri_comune_imob.prg
Normal file
188
COMUN/programe/oproceduri_comune_imob.prg
Normal file
@@ -0,0 +1,188 @@
|
||||
*!* oproceduri_comune_imob
|
||||
*!* 12.07.2006
|
||||
*!* marius.mutu
|
||||
|
||||
*!* 27.03.2013
|
||||
*!* marius.mutu
|
||||
*!* GET_CURSOR_INCHIDERE_AMORTIZARI
|
||||
*!* DEFALCARE SUME CHELTUIELI IN DEDUCTIBILE, NEDEDUCTIBILE IN FUNCTIE DE AMORT_MAX_DEDUCTIBL
|
||||
|
||||
*!* 09.04.2013
|
||||
*!* marius.mutu
|
||||
*!* GET_CURSOR_INCHIDERE_AMORTIZARI
|
||||
*!* s-au tratat imobilizarile fara cont
|
||||
|
||||
*!* 24.06.2020
|
||||
*!* Inchiderea de amortizari se face folosind modul experimental, din view
|
||||
*!* In ROACONT nu am mod experimental, asa ca implicit este .T.
|
||||
|
||||
*!* 23.01.2024
|
||||
*!* GET_CURSOR_INCHIDERE_AMORTIZARI : defalcare pe lucrari
|
||||
|
||||
*** tcCursor = GET_CURSOR_AMORTIZARI (tnFiscala, tnAn, tnLuna)
|
||||
*** tcCursor = GET_CURSOR_INCHIDERE_AMORTIZARI (tnTip, tnSectie, tnAn, tnLuna, tcCursor)
|
||||
|
||||
*----------------------------------------------------
|
||||
Procedure GET_CURSOR_AMORTIZARI
|
||||
Lparameters tnFiscala, tnAn, tnLuna, tnIdTipImobilizare, tnIdMf
|
||||
|
||||
Local lnSucces, lcSel, lcCursor, llExperimental
|
||||
Local lcFiltru, llSucces
|
||||
Private pdDataI, pdDataF, pcCond, pnFiscala
|
||||
llExperimental = .T.
|
||||
IF TYPE('goApp.nExperimental') = 'N'
|
||||
llExperimental = .T. && 25.11.2021 llExperimental = (goApp.nExperimental = 1)
|
||||
ENDIF
|
||||
|
||||
pdDataI = Date(tnAn, tnLuna, 1)
|
||||
pdDataF = pdDataI
|
||||
*pcCond = [id_tip_imobilizare = ] + ALLTRIM(STR(tnTip)) && merge fffff greu
|
||||
|
||||
pcCond = [2=2]
|
||||
lcFiltru = IIF(!EMPTY(m.tnIdTipImobilizare), [id_tip_imobilizare = ] + Alltrim(Str(m.tnIdTipImobilizare)), [1=1]) + m.gcCondSucursala + IIF(!EMPTY(m.tnIdMf), [ and id_mf = ] + ALLTRIM(STR(m.tnIdMf)), []) && merge normal in mod experimental cu selectie din view imob_vsituatie_lunara
|
||||
If Empty(tnFiscala)
|
||||
pnFiscala = 0
|
||||
Else
|
||||
pnFiscala = tnFiscala
|
||||
Endif
|
||||
lcCursor = 'crsAmortizareTemp'
|
||||
WAIT WINDOW 'Selectie amortizari ' + PADL(INT(m.tnLuna), 2, '0') + '/' + ALLTRIM(STR(INT(m.tnAn))) + ' ...' NOWAIT
|
||||
If m.llExperimental
|
||||
* EXPERIMENTAL SELECTIE DIN IMOB_VSITUATIE_LUNARA IN LOC DE PACK_IMOB.CALCUL_SITUATIE_LUNARA()
|
||||
* Setez luna pentru view
|
||||
|
||||
llSucces = goExecutor.oExecuta('begin pack_imob.setlunacurenta(?pdDataI); end;')
|
||||
If m.llSucces
|
||||
lcSel = [SELECT * FROM ] + Iif(m.pnFiscala = 0, [imob_vsituatie_lunara], [imobf_vsituatie_lunara]) + [ WHERE ] + m.lcFiltru
|
||||
llSucces = goExecutor.oExecuta(m.lcSel, m.lcCursor)
|
||||
Endif
|
||||
Else
|
||||
lcSel = [{call pack_imob.CALCUL_SITUATIE_LUNARA(?pdDataI,?pdDataF,?pcCond,?pnFiscala,?gnIdSucursala)}]
|
||||
llSucces = goExecutor.oExecuta(lcSel, lcCursor)
|
||||
Endif
|
||||
|
||||
If !m.llSucces
|
||||
lcCursor = ''
|
||||
Endif
|
||||
Return m.lcCursor
|
||||
|
||||
Endproc && GET_CURSOR_AMORTIZARI
|
||||
|
||||
*----------------------------------------------------
|
||||
Procedure GET_CURSOR_INCHIDERE_AMORTIZARI
|
||||
Lparameters tnTip, tnSectie, tnLucrare, tnAn, tnLuna, tcCursor
|
||||
|
||||
Local lnFiscal, lcCursor, lcSqlSectie, lnAnLuna, lnSucces
|
||||
Local lcCursorPlcont, lcCursorTemp, lcSql
|
||||
lnFiscal = 0 && amortizare contabila
|
||||
lcCursor = ""
|
||||
|
||||
lcCursor = GET_CURSOR_AMORTIZARI(m.lnFiscal, m.tnAn, m.tnLuna, m.tnTip)
|
||||
If Empty(lcCursor)
|
||||
Return ''
|
||||
Endif
|
||||
|
||||
&& CORESPONDENTE CONTURI INCHIDERE
|
||||
&& DACA NU SUNT COMPLETATE - SE FOLOSESC CONTURI DEFAULT
|
||||
*** ADAUG LINIILE PENTRU SUME DEDUCTIBILE (TIP = 1)
|
||||
Create Cursor crsConturi (TIP N(1), Id N(10), id_sectie I Null, Cont c(4), acont c(4) Null, scd c(4) Null, ascd c(4) Null, scc c(4) Null, ascc c(4) Null)
|
||||
|
||||
lcSql = "select 1 as tip, id, id_sectie, cont, acont, scd, ascd, scc, ascc from imob_inchidere"
|
||||
llSucces = goExecutor.oExecuta(lcSql, "crsConturiTemp")
|
||||
If m.llSucces
|
||||
Insert Into crsConturi (tip, id, id_sectie, cont, acont, scd, ascd, scc, ascc) ;
|
||||
select tip, Id, id_sectie, cont, acont, scd, ascd, scc, ascc From crsConturiTemp
|
||||
Endif
|
||||
|
||||
*!* *** COMPLETEZ CONTURILE CARE NU SUNT CONFIGURATE IN IMOB_INCHIDERE
|
||||
*!* Insert Into crsConturi (TIP, Cont, acont) ;
|
||||
*!* select Distinct 1 As TIP, Cont, acont ;
|
||||
*!* from (m.lcCursor) Where !Empty(Nvl(Cont, '')) And Padr(Nvl(Cont, ''), 4, ' ') + Padr(Nvl(acont, ''), 4, ' ') Not In ;
|
||||
*!* (Select Padr(Nvl(Cont, ''), 4, ' ') + Padr(Nvl(acont, ''), 4, ' ') From crsConturi)
|
||||
|
||||
*!* && COMPLETEZ SCD, SCC DEFAULT
|
||||
*!* Update crsConturi Set scd = '6811' Where Empty(scd)
|
||||
*!* Update crsConturi Set scc = Iif(tnTip = 1, '281', '280') + Substr(Cont, 3, 1) Where Empty(scc)
|
||||
|
||||
*** ADAUG LINIILE PENTRU SUME NEDEDUCTIBILE (TIP = 2)
|
||||
Insert Into crsConturi (tip, id_sectie, Cont, acont, scd, ascd, scc, ascc) ;
|
||||
select 2 As tip, id_sectie, Cont, acont, scd, ascd, scc, ascc ;
|
||||
from crsConturi
|
||||
|
||||
lnAnLuna = tnAn * 12 + tnLuna;
|
||||
|
||||
lcSql = [select cont, acont, explicatie from plcont where inactiv = 0 and an = ] + Transform(tnAn)
|
||||
lcCursorPlcont = [crsPlcontTemp]
|
||||
lnSucces = goExecutor.oExecute(lcSql, lcCursorPlcont)
|
||||
If lnSucces < 0
|
||||
AMESSAGEBOX(goExecutor.cEroare, 0 + 16, 'Eroare')
|
||||
Endif
|
||||
If !Used("crsPlContTemp")
|
||||
Create Cursor crsPlContTemp (Cont c(4), acont c(4), explicatie c (30))
|
||||
Endif
|
||||
|
||||
*** CUMULARE PE SECTII sau pe lucrari
|
||||
m.lcCursorTemp = 'crsAmortizariTemp'
|
||||
|
||||
Select Sum(Cast(Iif(c.TIP = 1, Iif(a.amort_max_deductibil > 0, Min(a.rata, a.amort_max_deductibil), a.rata), ;
|
||||
iif(a.amort_max_deductibil > 0 And a.rata > a.amort_max_deductibil, a.rata - a.amort_max_deductibil, 0)) As N(20, 4))) As suma, ;
|
||||
a.Cont, a.acont, Nvl(a.id_sectie, 00000) As id_sectie, Nvl(a.sectie, Space(50)) As sectie, ;
|
||||
CAST(Nvl(a.id_lucrare, 0) as I) As id_lucrare, CAST(Nvl(a.nrord, '') as C(100)) As nrord, ;
|
||||
IIF(!Empty(Nvl(c.Cont, "")), c.scd, Space(4)) As scd, ;
|
||||
IIF(!Empty(Nvl(c.Cont, "")), c.ascd, Space(4)) As ascd, ;
|
||||
IIF(!Empty(Nvl(c.Cont, "")), c.scc, Space(4)) As scc, ;
|
||||
IIF(!Empty(Nvl(c.Cont, "")), c.ascc, Space(4)) As ascc, ;
|
||||
padr(Alltrim(Nvl(a.Cont, '')) + Iif(!Empty(Nvl(a.acont, '')), '.' + Nvl(a.acont, ''), '') + ' ' + Alltrim(Nvl(p.explicatie, '')) + Iif(c.TIP = 1, ' - DEDUCTIBIL', ' - NEDEDUCTIBIL'), 200, ' ') As explicatie ;
|
||||
from (m.lcCursor) a ;
|
||||
left Join crsPlContTemp p On a.Cont = p.Cont And Nvl(a.acont, 'xxxx') = Nvl(p.acont, 'xxxx') ;
|
||||
left Join crsConturi c On a.Cont = c.Cont And Nvl(a.acont, 'xxxx') = Nvl(c.acont, 'xxxx') AND NVL(a.id_sectie, 0) = NVL(c.id_sectie,0) ;
|
||||
where id_tip_imobilizare = tnTip ;
|
||||
group By a.Cont, a.acont, a.id_sectie, a.sectie, a.id_lucrare, a.nrord, p.explicatie, c.Cont, c.scd, c.ascd, c.scc, c.ascc, c.TIP ;
|
||||
into Cursor crsAmortizariTemp Readwrite
|
||||
|
||||
DO CASE
|
||||
*** CUMULARE SUME PE SECTII SI LUCRARI
|
||||
CASE tnSectie = 1 AND tnLucrare = 1
|
||||
Select Cont, acont, scd, ascd, scc, ascc, explicatie, id_sectie, sectie, id_lucrare, nrord, Sum(suma) As suma ;
|
||||
from (m.lcCursorTemp) ;
|
||||
group By Cont, acont, scd, ascd, scc, ascc, explicatie, id_sectie, sectie, id_lucrare, nrord ;
|
||||
into Cursor (m.tcCursor) Readwrite
|
||||
|
||||
*** CUMULARE SUME FARA SECTII, PE LUCRARI
|
||||
CASE tnSectie <> 1 AND tnLucrare = 1 && nu pe sectii
|
||||
Select Cont, acont, scd, ascd, scc, ascc, explicatie, 0 As id_sectie, '' As sectie, id_lucrare, nrord, Sum(suma) As suma ;
|
||||
from (m.lcCursorTemp) ;
|
||||
group By Cont, acont, scd, ascd, scc, ascc, explicatie, id_lucrare, nrord ;
|
||||
into Cursor (m.tcCursor) Readwrite
|
||||
|
||||
*** CUMULARE SUME PE SECTI, FARA LUCRARI
|
||||
CASE tnSectie = 1 AND tnLucrare <> 1 && nu pe sectii
|
||||
Select Cont, acont, scd, ascd, scc, ascc, explicatie, id_sectie, sectie, 0 as id_lucrare, '' as nrord, Sum(suma) As suma ;
|
||||
from (m.lcCursorTemp) ;
|
||||
group By Cont, acont, scd, ascd, scc, ascc, explicatie, id_sectie, sectie ;
|
||||
into Cursor (m.tcCursor) Readwrite
|
||||
|
||||
*** CUMULARE SUME FARA LUCRARI, FARA SECTI
|
||||
CASE tnSectie <> 1 AND tnLucrare <> 1 && nu pe sectii
|
||||
Select Cont, acont, scd, ascd, scc, ascc, explicatie, 0 AS id_sectie, '' AS sectie, 0 as id_lucrare, '' as nrord, Sum(suma) As suma ;
|
||||
from (m.lcCursorTemp) ;
|
||||
group By Cont, acont, scd, ascd, scc, ascc, explicatie ;
|
||||
into Cursor (m.tcCursor) Readwrite
|
||||
|
||||
ENDCASE
|
||||
Use In (Select(m.lcCursorTemp))
|
||||
|
||||
|
||||
&& sterg sumele 0
|
||||
Delete From (tcCursor) Where suma = 0
|
||||
|
||||
Use In (Select(m.lcCursor))
|
||||
Use In (Select(m.lcCursorPlcont))
|
||||
|
||||
If Used(m.tcCursor)
|
||||
Return m.tcCursor
|
||||
Else
|
||||
Return ''
|
||||
Endif
|
||||
|
||||
Endproc && GET_CURSOR_INCHIDERE_AMORTIZARI
|
||||
229
COMUN/programe/oproceduri_configurare.prg
Normal file
229
COMUN/programe/oproceduri_configurare.prg
Normal file
@@ -0,0 +1,229 @@
|
||||
*!* 22.02.2010
|
||||
*!* marius.mutu
|
||||
*!* viz_config_grupe_gestiuni - arat doar gestiunile din sucursala curenta
|
||||
|
||||
*!* 22.03.2010
|
||||
*!* marius.mutu
|
||||
*!* viz_config_grupe_gestiuni - + ID_SECTIE, SECTIE
|
||||
|
||||
*!* 31.12.2019
|
||||
*!* marius.mutu
|
||||
*!* viz_config_grupe_gestiuni - GESTIUNI.GESTIONAR, COMISIE_RECEPTIE
|
||||
|
||||
PROCEDURE viz_config_grupe_gestiuni
|
||||
PARAMETERS tntip
|
||||
|
||||
|
||||
lntip = tntip
|
||||
PRIVATE poGestiuni
|
||||
Local lcSchema, lcSelect, lcOrder, lcFiltru, lcFiltruOriginal, llAfiseaza, lcgroup, lcFiltruOriginal
|
||||
PRIVATE poGrupe,pcschema2,pcselect2,pcfiltru2,pcorder2
|
||||
PRIVATE poUtilizatori
|
||||
LOCAL lcschema3,lcselect3,lcfiltru3,lcorder3,lcgroup3, llModParam3, lcFiltruOriginal3
|
||||
PRIVATE poGrupe_Gestiuni,pcschema4,pcselect4,pcfiltru4,pcorder4
|
||||
PRIVATE poGrupe_Utilizatori,pcschema5,pcselect5,pcfiltru5,pcorder5
|
||||
STORE '' TO poGestiuni,poGrupe,poUtilizatori,poGrupe_Gestiuni,poGrupe_Utilizatori
|
||||
|
||||
***********************
|
||||
PRIVATE aTipuriGestiuni
|
||||
DIMENSION aTipuriGestiuni(7)
|
||||
*EXTERNAL ARRAY taTipuriGestiuni
|
||||
aTipuriGestiuni(1)=[<Nedefinit>]
|
||||
aTipuriGestiuni(2)=[Materii Prime si Materiale]
|
||||
aTipuriGestiuni(3)=[Obiecte de Inventar]
|
||||
aTipuriGestiuni(4)=[Produse]
|
||||
aTipuriGestiuni(5)=[Marfuri la Pret de Achizitie]
|
||||
aTipuriGestiuni(6)=[Marfuri la Pret de Vanzare]
|
||||
aTipuriGestiuni(5)=[Marfuri la Pret de Achizitie*]
|
||||
***********************
|
||||
|
||||
lcsql = [select nume_tip,id_tipgest from vtipuri_gestiuni ]
|
||||
lnSucces = goExecutor.oexecute(lcSql,[crsTipuri_gest])
|
||||
IF lnSucces < 0
|
||||
lcMesaj = goExecutor.cEroare
|
||||
ofrm_er =CREATEOBJECT([frm_mesaj],[Eroare],[exclam.ico],[Avertizare],lcmesaj)
|
||||
ofrm_er.show()
|
||||
RELEASE ofrm_er
|
||||
return
|
||||
ENDIF
|
||||
|
||||
lcSchema = [ID_GESTIUNE N(5), NUME_GESTIUNE V(50),INACTIV N(1),CONT V(4),ACONT V(4),] + ;
|
||||
[NR_PAG N(2) ,CGEST V(20) ,ID_SUCURSALA N(10) ,DESCRIERE V(100) ,NUME_TIP V(30) ,SUCURSALA V(100) , ] + ;
|
||||
[ID_RESPONSABIL N(10) ,DENUMIRE V(70), ID_SECTIE N(5), SECTIE V(50), ACONT_CHELTUIALA V(4), ACONT_ADAOS V(4),ID_LUCRARE N(10), NRORD V(100), ] + ;
|
||||
[GESTIONAR V(50), COMISIE_RECEPTIE1 V(50), COMISIE_RECEPTIE2 V(50), COMISIE_RECEPTIE3 V(50)]
|
||||
|
||||
lcSelect = [select ID_GESTIUNE,NUME_GESTIUNE,INACTIV,CONT,ACONT,NR_PAG,CGEST,ID_SUCURSALA,DESCRIERE,NUME_TIP,SUCURSALA,ID_RESPONSABIL,DENUMIRE, ] + ;
|
||||
[ID_SECTIE, SECTIE, ACONT_CHELTUIALA, ACONT_ADAOS,ID_LUCRARE, NRORD, ] +;
|
||||
[GESTIONAR, COMISIE_RECEPTIE1, COMISIE_RECEPTIE2, COMISIE_RECEPTIE3] + ;
|
||||
[ from vnom_gestiuni]
|
||||
|
||||
lcOrder = [nume_gestiune]
|
||||
lcgroup = []
|
||||
lcFiltru = []
|
||||
*!* 22.02.2010
|
||||
lcFiltruOriginal = SUBSTR(gcCondSucursala,6)
|
||||
*!* 22.02.2010 ^
|
||||
|
||||
pcschema2=['id_grupe n(5),nume_grupa c(100), nume_parinte c(100), parent_id n(5), inactiv n(1)']
|
||||
pcselect2=['select id_grupe,nume_grupa, nume_parinte, parent_id, inactiv'+]+;
|
||||
[' from ]+gcS+[.vgest_nom_grupe where 1=2']
|
||||
pcorder2=[nume_grupa]
|
||||
pcfiltru2=[2=2]
|
||||
|
||||
lcschema3=[id_util n(5),utilizator c(30)]
|
||||
lcselect3=[select distinct a.id_util,a.utilizator ]+;
|
||||
[ from syn_vutilizatori a join syn_vdef_util_firme b on a.id_util = b.id_util ]
|
||||
|
||||
*!* pcselect3=['select id_util,utilizator'+]+;
|
||||
*!* [' from contafin_oracle.vutilizatori where 1=2']
|
||||
lcorder3=[utilizator]
|
||||
lcfiltru3=[1=2]
|
||||
lcgroup3 = []
|
||||
llModParam3 = .T.
|
||||
*!* modificare 19.03.2007
|
||||
lcFiltruOriginal3 = [a.inactiv = 0 and b.id_firma = ?gnIdFirma]
|
||||
*!* lcFiltruOriginal3 = [b.id_program = ]+ALLTRIM(STR(gnIdProgram))+[ and b.id_firma = ]+ALLTRIM(STR(gnIdFirma))
|
||||
*!* modificare 19.03.2007 ^
|
||||
|
||||
pcschema4=['id_cgg n(5),id_gestiune n(5),nume_gestiune c(50),cgest c(20),nr_pag n(2),'+]+;
|
||||
['cont c(4),acont c(4),inactiv_gest n(1),nume_tip_gest c(30),'+]+;
|
||||
['id_grupe n(5),nume_grupa c(100),inactiv_grupa n(1)']
|
||||
pcselect4=['select a.id_cgg,a.id_gestiune,b.nume_gestiune,b.cgest,b.nr_pag,'+]+;
|
||||
['b.cont,b.acont,b.inactiv as inactiv_gest,b.nume_tip as nume_tip_gest,'+]+;
|
||||
['a.id_grupe,c.nume_grupa,c.inactiv as inactiv_grupa'+]+;
|
||||
[' from ]+ gcS+[.vgest_coresp_grupe_gestiuni a '+] + ;
|
||||
[' join ]+ gcS + [.vnom_gestiuni b on a.id_gestiune=b.id_gestiune '+]+;
|
||||
[' join ]+gcS+ [.vgest_nom_grupe c on a.id_grupe = c.id_grupe '+]+;
|
||||
[' where 1=2']
|
||||
pcorder4=[c.nume_grupa]
|
||||
pcfiltru4=[1=2]
|
||||
|
||||
pcschema5=['id_cug n(5),id_util n(5),id_grupe n(5),nume_grupa c(100),inactiv n(1)']
|
||||
pcselect5=['select a.id_cug,a.id_util,a.id_grupe,b.nume_grupa,b.inactiv'+]+;
|
||||
[' from ]+gcS+[.vgest_coresp_util_grupe a '+]+;
|
||||
[' join ]+gcS+[.vgest_nom_grupe b on a.id_grupe = b.id_grupe'+]+;
|
||||
[' where 1=2']
|
||||
pcorder5=[b.nume_grupa]
|
||||
pcfiltru5=[1=2]
|
||||
|
||||
llModParam = .T.
|
||||
llAfiseaza = .F.
|
||||
_screen.MousePointer= 11
|
||||
*gencursor('poGestiuni','crsGestiuni',pcselect1,pcfiltru1,pcschema1,pcorder1,llAfiseaza)
|
||||
gencursor('poGestiuni','crsGestiuni', lcSelect, lcFiltru, lcSchema, lcOrder, llAfiseaza, lcgroup, llModParam, lcFiltruOriginal)
|
||||
gencursor('poGrupe','crsGrupe',pcselect2,pcfiltru2,pcschema2,pcorder2,llAfiseaza)
|
||||
gencursor('poUtilizatori','crsUtilizatori',lcselect3,lcfiltru3,lcschema3,lcorder3,llAfiseaza,lcgroup3, llModParam3, lcFiltruOriginal3)
|
||||
gencursor('poGrupe_Gestiuni','crsGrupe_Gestiuni',pcselect4,pcfiltru4,pcschema4,pcorder4,llAfiseaza)
|
||||
gencursor('poGrupe_Utilizatori','crsGrupe_Utilizatori',pcselect5,pcfiltru5,pcschema5,pcorder5,llAfiseaza)
|
||||
|
||||
poGrupe.ca_baza1.afisare()
|
||||
poGestiuni.ca_baza1.afisare()
|
||||
poUtilizatori.ca_baza1.afisare()
|
||||
SELECT crsUtilizatori
|
||||
|
||||
GO top
|
||||
lcId_util = ALLTRIM(STR(crsUtilizatori.id_util))
|
||||
poGrupe_Utilizatori.ca_baza1.cfiltru = [a.id_util=]+lcId_util
|
||||
poGrupe_Utilizatori.ca_baza1.afisare()
|
||||
|
||||
|
||||
DO case
|
||||
CASE lntip = 1
|
||||
SELECT crsGrupe
|
||||
GO top
|
||||
lcId_grupe = ALLTRIM(STR(crsGrupe.id_grupe))
|
||||
poGrupe_Gestiuni.ca_baza1.cfiltru=[a.id_grupe=]+lcId_grupe
|
||||
poGrupe_Gestiuni.ca_baza1.corder=[b.nume_gestiune]
|
||||
poGrupe_Gestiuni.ca_baza1.afisare()
|
||||
CASE lntip = 2
|
||||
SELECT crsGestiuni
|
||||
GO top
|
||||
lcId_gestiune = ALLTRIM(STR(crsGestiuni.id_gestiune))
|
||||
poGrupe_Gestiuni.ca_baza1.cfiltru=[a.id_gestiune=]+lcId_gestiune
|
||||
poGrupe_Gestiuni.ca_baza1.corder=[c.nume_grupa]
|
||||
poGrupe_Gestiuni.ca_baza1.afisare()
|
||||
CASE lntip = 3
|
||||
poGrupe_Gestiuni.ca_baza1.cfiltru = [1=2]
|
||||
poGrupe_Gestiuni.ca_baza1.afisare()
|
||||
ENDCASE
|
||||
|
||||
*!* DO FORM frm_grupe_gestiuni_utilizatori NOSHOW NAME ofrm_gest LINKED
|
||||
ofrm_gest = CREATEOBJECT('frm_gestiuni_grupe_utilizatori')
|
||||
_screen.MousePointer= 0
|
||||
ofrm_gest.pagefr_config.activepage = lntip
|
||||
ofrm_gest.show(1)
|
||||
RELEASE ofrm_gest
|
||||
|
||||
RELEASE poGestiuni
|
||||
RELEASE poGrupe
|
||||
RELEASE poUtilizatori
|
||||
RELEASE poGrupe_Gestiuni
|
||||
RELEASE poGrupe_Utilizatori
|
||||
|
||||
ENDPROC
|
||||
***********************
|
||||
|
||||
***********************
|
||||
FUNCTION tip_gestiune
|
||||
PARAMETERS tnpoz
|
||||
|
||||
IF tnpoz = 0
|
||||
RETURN [<Nedefinit>]
|
||||
ELSE
|
||||
RETURN aTipuriGestiuni(tnpoz)
|
||||
ENDIF
|
||||
ENDFUNC
|
||||
***********************
|
||||
|
||||
FUNCTION iif_inactiv
|
||||
LOCAL lcrez
|
||||
lcrez = IIF(inactiv=1,'DA','NU')
|
||||
RETURN lcrez
|
||||
ENDFUNC
|
||||
|
||||
|
||||
********* INCEPUT: viz_config_tipuri_gestiuni ***********
|
||||
PROCEDURE viz_config_tipuri_gestiuni
|
||||
|
||||
PRIVATE pnId_tipgest
|
||||
STORE 0 TO pnId_tipgest
|
||||
|
||||
PRIVATE poCoresp,poPlcont
|
||||
STORE '' TO poCoresp,poPlcont
|
||||
|
||||
lcSql1 = [select nume_tip,id_tipgest from tipuri_gestiuni]
|
||||
lccursor1 = [crsTipuri_gest]
|
||||
lnsucces1 = goExecutor.oExecute(lcSql1,lccursor1)
|
||||
IF lnsucces1 < 0
|
||||
lcmesaj = goExecutor.cEroare
|
||||
ofrm_er = CREATEOBJECT('frm_mesaj','Eroare','exclam.ico','Avertizare',lcmesaj)
|
||||
ofrm_er.show(1)
|
||||
RELEASE ofrm_er
|
||||
RETURN
|
||||
ENDIF
|
||||
|
||||
lcSelect1 = ['select cont from ] + gcS + [.vplcont_sintetic where 1=2']
|
||||
lcSchema1 = ['cont c(4)']
|
||||
lcorder1 = [cont]
|
||||
lcfiltru1 = [ an = ] + ALLTRIM(STR(gnAn)) + [ and SUBSTR(cont,1,1) = '3' ] + ;
|
||||
[ and cont not in (select cont from ] + gcs +;
|
||||
[.vcoresp_cont_tipgest where id_tipgest = ?pnId_tipgest)]
|
||||
|
||||
lcSelect2 = ['select cont,id_cct,id_tipgest from ] + gcS + [.vcoresp_cont_tipgest where 1=2']
|
||||
lcSchema2 = ['cont c(4),id_cct n(5),id_tipgest n(5)']
|
||||
lcorder2 = [cont]
|
||||
lcfiltru2 = [id_tipgest = ?pnId_tipgest]
|
||||
llAfiseaza = .t.
|
||||
|
||||
gencursor('poPlcont','crsPlcont',lcselect1,lcfiltru1,lcschema1,lcorder1,llAfiseaza)
|
||||
gencursor('poCoresp','crsCoresp',lcselect2,lcfiltru2,lcschema2,lcorder2,llAfiseaza)
|
||||
|
||||
ofrm_tipgest = CREATEOBJECT('frm_config_tipuri_gestiuni')
|
||||
ofrm_tipgest.show(1)
|
||||
RELEASE ofrm_tipgest
|
||||
|
||||
RELEASE poCoresp
|
||||
ENDPROC
|
||||
********* SFARSIT: viz_config_tipuri_gestiuni ***********
|
||||
|
||||
|
||||
125
COMUN/programe/oproceduri_curs.prg
Normal file
125
COMUN/programe/oproceduri_curs.prg
Normal file
@@ -0,0 +1,125 @@
|
||||
***************************************************************************************************************
|
||||
**** Proceduri:
|
||||
**** vizualizeaza_curs
|
||||
**** citeste_cursuri_stoc
|
||||
**** citeste_curs_zi
|
||||
***************************************************************************************************************
|
||||
****************************************** INCEPUT: vizualizeaza_curs *****************************************
|
||||
Procedure vizualizeaza_curs
|
||||
*!* modificare ROAFACTURARE v 2.0.46
|
||||
Lparameters tdDataCurs
|
||||
*!* modificare ROAFACTURARE v 2.0.46 ^
|
||||
Private poCurs
|
||||
Local lcSelect, lcFiltru, lcSchema, lcOrder, llAfiseaza, loFrmCurs
|
||||
Store .F. To llAfiseaza
|
||||
Store '' To poCurs
|
||||
If Used('crscurs')
|
||||
Use In crscurs
|
||||
Endif
|
||||
|
||||
lcSchema = ['id_curs n(10),id_valuta n(10),data d,data2 d,nume_val c(100),curs n(20,gnPCurs),multiplicator N(10),id_valuta_iso N(10),iso_valuta C(3),curs_bnr n(20,4)']
|
||||
lcSelect = ['select id_curs,id_valuta,data,data2,nume_val,curs,multiplicator,id_valuta_iso,iso_valuta,curs_bnr from ] + gcS + [.vcurs where 2=2']
|
||||
lcOrder = [data]
|
||||
*!* modificare ROAFACTURARE v 2.0.46
|
||||
*!* lcFiltru = [1 = 2]
|
||||
lcFiltru = Iif(Empty(tdDataCurs),[1 = 2],[data <= to_date('] + Dtoc(tdDataCurs,1) + [','YYYYMMDD') ] + ;
|
||||
[and data2 >= to_date('] + Dtoc(tdDataCurs,1) + [','YYYYMMDD') ])
|
||||
*!* modificare ROAFACTURARE v 2.0.46 ^
|
||||
llAfiseaza = .F.
|
||||
gencursor('poCurs', 'crscurs', lcSelect, lcFiltru, lcSchema, lcOrder, llAfiseaza)
|
||||
poCurs.ca_baza1.afisare()
|
||||
|
||||
*!* modificare ROAFACTURARE v 2.0.46
|
||||
*!* loFrmCurs = Createobject("frm_curs")
|
||||
loFrmCurs = Createobject("frm_curs",tdDataCurs)
|
||||
*!* modificare ROAFACTURARE v 2.0.46 ^
|
||||
loFrmCurs.Show(1)
|
||||
|
||||
Release loFrmCurs, poCurs
|
||||
If Used('crscurs')
|
||||
Use In crscurs
|
||||
Endif
|
||||
Endproc
|
||||
****************************************** SFARSIT: vizualizeaza_curs *****************************************
|
||||
***************************************** INCEPUT: citeste_cursuri_stoc ****************************************
|
||||
Function citeste_cursuri_stoc
|
||||
Lparameters tdData,tnIdValuta
|
||||
Private pdDataCurs,pnIdValuta
|
||||
Local lcCursor, llContinuare,lcListaValute
|
||||
pdDataCurs = tdData
|
||||
pnIdValuta = tnIdValuta
|
||||
lcCursor = [crscursuri]
|
||||
llVerificare = .T.
|
||||
llContinuare = .T.
|
||||
lnIncercari = 1
|
||||
|
||||
Do While llVerificare
|
||||
If llContinuare
|
||||
If Used(lcCursor)
|
||||
Use In (lcCursor)
|
||||
Endif
|
||||
lcSql = [select a.id_valuta, b.curs, b.multiplicator, c.nume_val, c.moneda_nationala from ] + ;
|
||||
[(select distinct id_valuta from ] + gcS + [.stoc where an = ?gnAn and luna = ?gnLuna ] + gcCondSucursala + ;
|
||||
[and id_gestiune in (select distinct b.id_gestiune from ] + gcS + [.gest_coresp_util_grupe a ] + ;
|
||||
[left join ] + gcS + [.gest_coresp_grupe_gestiuni b on a.id_grupe = b.id_grupe ] + ;
|
||||
[left join ] + gcS + [.nom_gestiuni c on b.id_gestiune = c.id_gestiune ] + ;
|
||||
[where a.id_util = ?gnIdUtil and a.sters = 0 and b.sters = 0 and c.nr_pag ] + IIF(gnTipGest=6,[=],[<>]) + [ 6) ] + ;
|
||||
[union select ?pnIdValuta as id_valuta from dual) a ] + ;
|
||||
[left join ] + gcS + [.curs b on a.id_valuta = b.id_valuta and b.data <= ?pdDataCurs and b.data2 >= ?pdDataCurs and b.sters = 0 ] + ;
|
||||
[left join ] + gcS +[.nom_valute c on a.id_valuta = c.id_valuta ] + ;
|
||||
[where c.moneda_nationala = 0 and a.id_valuta is not null]
|
||||
lnSucces = goExecutor.oExecute(lcSql,lcCursor)
|
||||
If lnSucces < 0
|
||||
amessagebox(goExecutor.oPrelucrareEroare(),16,"Eroare")
|
||||
llVerificare = .F.
|
||||
llContinuare = .F.
|
||||
Else
|
||||
If Reccount(lcCursor) > 0
|
||||
lcListaValute = []
|
||||
Select (lcCursor)
|
||||
Scan For Isnull(Curs)
|
||||
lcListaValute = lcListaValute + Alltrim(Upper(nume_val)) + [,]
|
||||
Endscan
|
||||
If !Empty(lcListaValute)
|
||||
If Used(lcCursor)
|
||||
Use In (lcCursor)
|
||||
Endif
|
||||
If lnIncercari >= 2 And aMessagebox("Doriti sa continuati introducerea datelor?",4+32,"Confirmare continuare")==7
|
||||
llVerificare = .F.
|
||||
llContinuare = .F.
|
||||
Else
|
||||
lcListaValute = Substr(lcListaValute,1,Len(lcListaValute)-1) + [ !]
|
||||
amessagebox("Pentru data de "+Dtoc(pdDataCurs)+" nu exista cursul pentru " + ;
|
||||
IIF(Getwordcount(lcListaValute,[,])=1,"valuta ","valutele ")+lcListaValute,48,"Atentie")
|
||||
vizualizeaza_curs()
|
||||
Endif
|
||||
Else
|
||||
llVerificare = .F.
|
||||
Endif
|
||||
Else
|
||||
amessagebox("Cautarea cursurilor pentru ziua de "+Dtoc(pdDataCurs)+" nu a intors rezultate!",16,"Eroare")
|
||||
llVerificare = .F.
|
||||
llContinuare = .F.
|
||||
Endif
|
||||
Endif
|
||||
Endif
|
||||
lnIncercari = lnIncercari + 1
|
||||
Enddo
|
||||
|
||||
Return llContinuare
|
||||
Endfunc && citeste_cursuri_stoc
|
||||
***************************************** SFARSIT: citeste_cursuri_stoc ****************************************
|
||||
***************************************** INCEPUT: citeste_curs_zi ****************************************
|
||||
Procedure citeste_cursuri_zi
|
||||
Lparameters tdDataCurs
|
||||
Local lcCursor
|
||||
lcCursor = [crscursuri]
|
||||
lcSql = [select nume_val,curs,id_valuta,multiplicator from ] + gcS + [.vcurs where data <= to_date('] + Dtoc(tdDataCurs,1) + [','YYYYMMDD') ] + ;
|
||||
[and data2 >= to_date('] + Dtoc(tdDataCurs,1) + [','YYYYMMDD') order by nume_val]
|
||||
lnSucces = goExecutor.oExecute(lcSql,lcCursor)
|
||||
If lnSucces < 0
|
||||
amessagebox(goExecutor.oPrelucrareEroare(),16,"Eroare")
|
||||
EndIf
|
||||
Release lcCursor
|
||||
Endproc && citeste_curs_zi
|
||||
***************************************** SFARSIT: citeste_curs_zi ****************************************
|
||||
407
COMUN/programe/oproceduri_evolutie.prg
Normal file
407
COMUN/programe/oproceduri_evolutie.prg
Normal file
@@ -0,0 +1,407 @@
|
||||
*!* 24.06.2011
|
||||
*!* marius.mutu
|
||||
*!* calc_indicatori_randuri
|
||||
*!* daca un indicator avea valoare negativa, formula dadea eroare
|
||||
*!* am transformat +-valoare in +(-valoare)
|
||||
|
||||
*!* 31.07.2012
|
||||
*!* marius.mutu
|
||||
*!* evalueaza_randul
|
||||
*** Nu reevaluez totalurile cu CASE/IIF (ex R15 = CASE WHEN R15A > 0 THEN R15A ELSE 0 END)
|
||||
*** pentru ca doresc sa suprascriu R15
|
||||
|
||||
*!* 27.02.2019
|
||||
*!* marius.mutu
|
||||
*!* evalueaza_randul - upper(allt(rand))
|
||||
|
||||
*!* 13.02.2026
|
||||
*!* calc_indicatori_randuri - lcRandEval = 0 daca nu exista randul
|
||||
|
||||
Procedure viz_set_calc
|
||||
Parameters tctable, tnId_set, tlFaraGrafic, tcNumeSet, tnId_sectie, tnId_venchelt
|
||||
|
||||
Private pcDataOra
|
||||
pcDataOra = Get_Ora(2)
|
||||
|
||||
Local llFaraGrafic, lcTitlu
|
||||
llFaraGrafic = tlFaraGrafic
|
||||
|
||||
If !Empty(tcNumeSet)
|
||||
lcTitlu = Alltrim(tcNumeSet)
|
||||
Else
|
||||
lcTitlu = ''
|
||||
Endif
|
||||
|
||||
*!* If !Empty(tcFCentru)
|
||||
*!* If !("FIRMA"$Upper(Alltrim(tcFCentru)))
|
||||
*!* lcTitlu = Proper(Alltrim(tcFCentru)) + ' - ' + lcTitlu
|
||||
*!* Endif
|
||||
*!* Endif
|
||||
|
||||
If !Used(tctable)
|
||||
Return
|
||||
Endif
|
||||
|
||||
Select (tctable) && id_ind, rand, nume_ind, comentariu -> ....date
|
||||
frml = Createobject("frm_viz_set_calc", tnId_set, tlFaraGrafic, lcTitlu, tnId_sectie, tnId_venchelt)
|
||||
frml.lb_titlu_alb_b121.Caption = "Set calculat - " + lcTitlu
|
||||
frml.grid1.RecordSource = tctable
|
||||
frml.grid1.DeleteColumn(1) && id_ind
|
||||
frml.grid1.DeleteColumn(1) && ord_rand
|
||||
|
||||
|
||||
frml.grid1.DeleteColumn(3) && comentariu
|
||||
* frml.grid1.FontName = "Arial Narrow"
|
||||
lnnrcoloane = frml.grid1.ColumnCount
|
||||
frml.grid1.column4.Width = 300 && nume_ind
|
||||
|
||||
For i = 6 To lnnrcoloane+3
|
||||
cformat = "frml.grid1.Column"+Alltrim(Str(i))+".format='rk'"
|
||||
&cformat
|
||||
cinputmask = "frml.grid1.Column"+Alltrim(Str(i))+".inputmask"
|
||||
&cinputmask = "999 999 999 999.99"
|
||||
Endfor
|
||||
|
||||
*!* frml.grid1.Width = frml.edtcomentariu.Left + frml.edtcomentariu.Width
|
||||
frml.edtComentariu.ControlSource = tctable + ".comentariu"
|
||||
|
||||
*!* If tlcalculat
|
||||
*!* frml.cb_save1.Visible = .F.
|
||||
*!* frml.cb_print1.Left = frml.cb_print1.Left+frml.cb_print1.Width+1
|
||||
*!* frml.cb_excel1.Left=frml.cb_excel1.Left+frml.cb_excel1.Width+1
|
||||
*!* frml.cb_explorer1.Left=frml.cb_explorer1.Left+frml.cb_explorer1.Width+1
|
||||
*!* Endif
|
||||
|
||||
*frml.lockscreen=.f.
|
||||
|
||||
frml.Show(1)
|
||||
|
||||
|
||||
If Used('gtemp')
|
||||
Use In gtemp
|
||||
Endif
|
||||
|
||||
If Used('xtab')
|
||||
Use In xtab
|
||||
Endif
|
||||
Endproc && viz_set_calc
|
||||
***------------------------------------------------------------------------------------
|
||||
Procedure lanseaza_excel
|
||||
Parameters tcalias, tcTitlu, tlfara_grafic
|
||||
|
||||
Private pctitlu
|
||||
Local llEsteExcel
|
||||
llEsteExcel = .F.
|
||||
llEsteExcel=isComobject("Excel.Application")
|
||||
If !llEsteExcel
|
||||
Do mesaj With "Instalati Microsoft Excel",""
|
||||
Return
|
||||
Endif
|
||||
|
||||
If Empty(tcTitlu)
|
||||
pctitlu="Indicatori"
|
||||
Else
|
||||
pctitlu=Alltrim(tcTitlu)
|
||||
Endif
|
||||
|
||||
Declare aranduri[1]
|
||||
Declare acoloane[1]
|
||||
Declare arand[1]
|
||||
|
||||
Select (tcalias)
|
||||
lcField2=Field(4) && campul cu descrierea indicatorilor
|
||||
lcSelect = [select ] + lcField2 + " "+[from ] + tcalias +" "+[into cursor tdesc]
|
||||
&lcSelect
|
||||
lnCount = _Tally
|
||||
Dimension aranduri[lnCount]
|
||||
|
||||
&&& obtin array pt grafic
|
||||
i=0
|
||||
Select tdesc
|
||||
Scan
|
||||
i=i+1
|
||||
aranduri[i]=tdesc.nume_ind
|
||||
Endscan
|
||||
|
||||
If Used("tdesc")
|
||||
Use In tdesc
|
||||
Endif
|
||||
|
||||
***
|
||||
Select (tcalias)
|
||||
|
||||
lcField1=Field(3) && campul cu numele randului (indicatorului)
|
||||
lcSelect1 = [select ] + lcField1 + " "+[from ] + tcalias +" "+[into cursor trand]
|
||||
&lcSelect1
|
||||
lnCount1 = _Tally
|
||||
Dimension arand[lnCount1]
|
||||
|
||||
j=0
|
||||
|
||||
Select trand
|
||||
Scan
|
||||
j=j+1
|
||||
arand[j]=Right(Alltrim(trand.Rand),2)
|
||||
Endscan
|
||||
|
||||
If Used("trand")
|
||||
Use In trand
|
||||
Endif
|
||||
|
||||
Select (tcalias)
|
||||
lnFields=Fcount()
|
||||
Dimension acoloane[lnFields]
|
||||
|
||||
Select (tcalias)
|
||||
lcSelect = [select ]
|
||||
|
||||
For i=5 To lnFields
|
||||
lcField=Field(i)
|
||||
lcSelect = lcSelect + lcField + [,]
|
||||
Endfor
|
||||
lcSelect=Left(lcSelect,Len(lcSelect)-1)
|
||||
lcSelect = lcSelect +" "+[ from ]+tcalias+" "+[ into cursor tExcel]
|
||||
&lcSelect
|
||||
lnCount = _Tally
|
||||
|
||||
&&& obtin d200331001 , 200304
|
||||
Select (tcalias)
|
||||
For i=5 To lnFields
|
||||
lcTipCumul=Left(Field(i),1)
|
||||
lcan=Substr(Field(i),2,4)
|
||||
lcgrup=Right(Field(i),2)
|
||||
acoloane[i-4]=cluna(lcgrup,lcTipCumul,lcan)
|
||||
Endfor
|
||||
|
||||
lcfis = Alltrim(pctitlu)
|
||||
For i=0 To Len(lcfis)-1
|
||||
lccar = Substr(lcfis,i,1)
|
||||
If Inlist(lccar,":","*","/","\","<",">",'"',"|","?")
|
||||
lcfis= Strtran(lcfis,lccar,"_")
|
||||
Endif
|
||||
Endfor
|
||||
|
||||
lcexcel= Addbs(Strtran(gcTempPath,"\\","\"))+lcfis+"_"+Sys(2)+".XLS"
|
||||
|
||||
lcClasa = "EXCELX"
|
||||
x=Newobject("XL_Manager",lcClasa) && alternatively you can drop this class on a VFP form
|
||||
x.SaveAs=lcexcel && PART.XLS to be created in your TEMP folder
|
||||
Dimension x.oWorkSheet[1] && need one page
|
||||
x.oWorkSheet[1] = "Page 1 (with chart)"
|
||||
x.Go() && remember this calls .populate_pages().
|
||||
*WAIT WINDOW 'Check out! ' + x.SAVEAS && Presto! (the output XLS document)
|
||||
Release x
|
||||
|
||||
OLEAPP = Getobject("","Excel.Application")
|
||||
If Type('OLEAPP')!='O'
|
||||
OLEAPP = Createobject("Excel.Application")
|
||||
Endif
|
||||
OLEAPP.WorkBooks.Open(lcexcel)
|
||||
OLEAPP.Visible=1
|
||||
|
||||
Use In texcel
|
||||
Return
|
||||
Endproc &&lanseaza_excel
|
||||
***------------------------------------------------------------------------------------
|
||||
***------------------------------------------------------------------------------------
|
||||
Procedure lanseaza_html
|
||||
Parameters tcFile, tcTitluHtml, tlFaraGrafic
|
||||
|
||||
Local llFaraGrafic, lcTitluHtml
|
||||
llFaraGrafic = tlFaraGrafic
|
||||
lcTitluHtml = Alltrim(tcTitluHtml)
|
||||
|
||||
Select (tcFile)
|
||||
lcfisd = gcTempPath + "copie.dbf"
|
||||
Copy To (lcfisd)
|
||||
Use (lcfisd) In 0 Exclusive
|
||||
Select Copie
|
||||
|
||||
losc = Createobject("aShowCursor")
|
||||
With losc
|
||||
.lAlternateRows = .T.
|
||||
.CTABLEWIDTH = '100%'
|
||||
.cCellspacing = '3'
|
||||
.cAlternatingBGColor = "white"
|
||||
.cTableBorder = "1"
|
||||
.nForceToPreList = 75000
|
||||
.ShowCursor()
|
||||
Endwith
|
||||
|
||||
******
|
||||
*!* DEBUG
|
||||
*!* SUSPEND
|
||||
lcBar = ""
|
||||
loGraph = Createobject('wwWebGraphs')
|
||||
*** Make sure you pick a directory that exists
|
||||
*** and is accessible through the Web
|
||||
If Type("loGraph") = "O"
|
||||
loGraph.cPhysicalPath = gcTempPath
|
||||
loGraph.cLogicalPath = gcTempPath
|
||||
|
||||
loGraph.ShowGraphFromCursor()
|
||||
lcBar = loGraph.GetOutput()
|
||||
Endif
|
||||
******
|
||||
|
||||
lcFile = Strtran(Addbs(gcTempPath),"\\","\")+"Indicatori.htm"
|
||||
lchtml = [<html><body><h2><center> &lcTitluHtml </center></h2>]
|
||||
lchtml = lchtml + losc.ohtml.coutput
|
||||
|
||||
If !llFaraGrafic &&daca am bifat optiunea "fara grafic"
|
||||
lchtml = lchtml + [<br>] + lcBar
|
||||
Endif
|
||||
|
||||
lchtml = lchtml + [</body></html>]
|
||||
Strtofile(lchtml, lcFile)
|
||||
|
||||
orep = Createobject("frm_webreporter")
|
||||
orep.cReportFileName = lcFile
|
||||
orep.displayreport
|
||||
|
||||
Use In Copie
|
||||
Endproc && lanseaza_html
|
||||
***------------------------------------------------------------------------------------
|
||||
*!* ***------------------------------------------------------------------------------------
|
||||
*!* Procedure calc_indicatori_randuri
|
||||
*!* Parameters tcFormula, tcTabel, tcColoana
|
||||
|
||||
*!* lcFormula = ALLTRIM(tcFormula)
|
||||
*!* lcColoana = ALLTRIM(tcColoana)
|
||||
*!* lcTabel = tcTabel
|
||||
*!* lcFormEvaluata = ''
|
||||
|
||||
*!* Select * From (lcTabel) Into Cursor cLucru
|
||||
|
||||
*!* Do While Len(lcFormula) > 0
|
||||
*!* lnRand = At('R',lcFormula)
|
||||
*!* If lnRand > 0 Then
|
||||
*!* lnNext = At(']',lcFormula)
|
||||
*!* lcRand = ALLTRIM(Substr(lcFormula, lnRand + 1, (lnNext - lnRand - 1)))
|
||||
|
||||
*!* Select cLucru
|
||||
*!* Calculate Sum(&lcColoana) For ALLTRIM(Rand) = lcRand To lnSumaRand
|
||||
|
||||
*!* lcFormEvaluata = lcFormEvaluata + Substr(lcFormula, 1, lnRand - 2) + '(' + Alltrim(Str(lnSumaRand,20,gnPA) + ')')
|
||||
|
||||
*!* lcFormula = Substr(lcFormula, lnNext + 1)
|
||||
*!* Else
|
||||
*!* lcFormEvaluata = lcFormEvaluata + Substr(lcFormula, 1)
|
||||
*!* lcFormula = ''
|
||||
*!* Endif
|
||||
*!* Enddo
|
||||
|
||||
*!* If !Empty(lcFormEvaluata) And !Isnull(lcFormEvaluata)
|
||||
*!* lcOldError = On("error")
|
||||
*!* On Error lnret = 0
|
||||
*!* lnret = &lcFormEvaluata
|
||||
*!* On Error &lcOldError
|
||||
*!* Endif
|
||||
|
||||
*!* Use In cLucru
|
||||
*!* Return lnret
|
||||
|
||||
*!* Endproc && calc_indicatori_randuri
|
||||
*!* ***------------------------------------------------------------------------------------
|
||||
****------------------------------------------------------------------------------------
|
||||
Procedure calc_indicatori_randuri
|
||||
Parameters tcFormula, tcTabel, tcColoana
|
||||
|
||||
Local lnRet, lcFormula, lcColoana, lcTabel, lcFormEvaluata
|
||||
Store 0 To lnRet
|
||||
lcFormula = Alltrim(UPPER(tcFormula))
|
||||
lcFormula = Strtran(lcFormula,'CASE WHEN','IIF(')
|
||||
lcFormula = Strtran(lcFormula,'THEN',',')
|
||||
lcFormula = Strtran(lcFormula,'ELSE',',')
|
||||
lcFormula = Strtran(lcFormula,'END',')')
|
||||
|
||||
lcColoana = Alltrim(tcColoana)
|
||||
lcTabel = tcTabel
|
||||
lcFormEvaluata = ''
|
||||
|
||||
Select * From (lcTabel) with (buffering = .T.) Into Cursor cLucru
|
||||
|
||||
If Len(lcFormula) > 0
|
||||
Do While At('[R',lcFormula)>0
|
||||
lnRand = At('[R',lcFormula)
|
||||
IF lnRand > 0
|
||||
lnRand = lnRand + 1 && pozitia R
|
||||
ENDIF
|
||||
lnNext = At(']',lcFormula)
|
||||
|
||||
lcRandCompl = Substr(lcFormula, lnRand - 1, (lnNext - lnRand + 2))
|
||||
lcRand = Alltrim(Substr(lcFormula, lnRand + 1, (lnNext - lnRand - 1)))
|
||||
*STRTOFILE(TRANSFORM(lcRand) + CHR(13) + CHR(10), 'e:\rand.txt',.T.)
|
||||
lcRandEval = evalueaza_randul(lcRand, "cLucru", lcColoana)
|
||||
IF EMPTY(NVL(m.lcRandEval, ''))
|
||||
lcRandEval = '0'
|
||||
ENDIF
|
||||
|
||||
lnRandEval = At('[R',lcRandEval)
|
||||
If lnRandEval > 0
|
||||
lnRandEval = lnRandEval + 1 && pozitia R
|
||||
lcRandEval = '(' + ALLTRIM(lcRandEval) + ')'
|
||||
ENDIF
|
||||
|
||||
*!* 24.06.2011
|
||||
IF LEFT(lcRandEval,1) = [-]
|
||||
lcRandEval = '(' + ALLTRIM(lcRandEval) + ')'
|
||||
ENDIF
|
||||
*!* 24.06.2011 ^
|
||||
|
||||
lcFormula = Strtran(lcFormula,lcRandCompl,lcRandEval)
|
||||
|
||||
Enddo
|
||||
Endif
|
||||
|
||||
If !Empty(lcFormula) And !Isnull(lcFormula)
|
||||
lcOldError = On("error")
|
||||
On Error lnRet = 0
|
||||
lnRet = &lcFormula
|
||||
On Error &lcOldError
|
||||
Endif
|
||||
|
||||
If Used("cLucru")
|
||||
Use In cLucru
|
||||
Endif
|
||||
|
||||
Return lnRet
|
||||
|
||||
Endproc && calc_indicatori_randuri
|
||||
***------------------------------------------------------------------------------------
|
||||
Function evalueaza_randul
|
||||
Parameters tcRand, tcTabel, tcColoana
|
||||
|
||||
Local lcReturn, lcRand, lcTabel, lcColoana
|
||||
Store "" To lcReturn
|
||||
lcRand = tcRand
|
||||
lcTabel = tcTabel
|
||||
lcColoana = tcColoana
|
||||
|
||||
Select (lcTabel)
|
||||
Locate For UPPER(ALLTRIM(Rand)) = lcRand
|
||||
If Found()
|
||||
lnTip = tip
|
||||
If tip = 5
|
||||
*** Nu reevaluez totalurile cu CASE/IIF (ex R15 = CASE WHEN R15A > 0 THEN R15A ELSE 0 END)
|
||||
*** pentru ca doresc sa suprascriu R15
|
||||
IF !('CASE'$UPPER(NVL(formula,'')) OR 'IIF'$UPPER(NVL(formula,'')))
|
||||
lcReturn = UPPER(formula)
|
||||
lcReturn = Strtran(lcReturn,'CASE WHEN','IIF(')
|
||||
lcReturn = Strtran(lcReturn,'THEN',',')
|
||||
lcReturn = Strtran(lcReturn,'ELSE',',')
|
||||
lcReturn = Strtran(lcReturn,'END',')')
|
||||
ELSE
|
||||
lcReturn = Alltrim(Str(NVL(&tcColoana,0),20,2))
|
||||
ENDIF
|
||||
Else
|
||||
lcReturn = Alltrim(Str(NVL(&tcColoana,0),20,2))
|
||||
Endif
|
||||
Endif
|
||||
|
||||
Return lcReturn
|
||||
Endfunc && evalueaza_randul
|
||||
***-----------------------------------------------------
|
||||
|
||||
|
||||
|
||||
2394
COMUN/programe/oproceduri_facturare.prg
Normal file
2394
COMUN/programe/oproceduri_facturare.prg
Normal file
File diff suppressed because it is too large
Load Diff
633
COMUN/programe/oproceduri_flux.prg
Normal file
633
COMUN/programe/oproceduri_flux.prg
Normal file
@@ -0,0 +1,633 @@
|
||||
*!* 12.04.2011
|
||||
*!* marius.mtuu
|
||||
*!* viz_flux
|
||||
*!* salvez si refolosesc lista id act incasari/plati tip compensari de care trebuie sa se tina cont la flux
|
||||
|
||||
*!* lcComentariu = FormulaFlux2Comentariu([substr(scd,1,3) in ('758','759', '760')],'D',1,"",0,"")
|
||||
*!* MessageBox(lcComentariu)
|
||||
|
||||
*!* 24.06.2011
|
||||
*!* marius.mutu
|
||||
*!* viz_flux - se creeaza si coloanele defalcate pe luni pentru perioada precedenta
|
||||
*!* dadea eroare cand se calcula defalcat pe luni + perioada precedenta
|
||||
|
||||
PROCEDURE viz_flux
|
||||
PARAMETERS tnLunaI, tnAnulI, tnLunaF, tnAnulF, tnModel, tlCompensari, tlPrecedent, tlDefalcat
|
||||
&& tnModel 1 = FORMULE FLUX MAI VECHI; 2 = FORMULE FLUX CONTAFIN CONPRESS
|
||||
&& tlCompensari daca se afiseaza compensarile din registrul jurnal pentru luarea in considerare in calcul
|
||||
&& tlDefalcat 1 = daca se creeaza cate o coloana pentru fiecare luna sau se cumuleaza lunile intr-o singura coloana
|
||||
IF EMPTY(tnModel)
|
||||
tnModel = 2
|
||||
ENDIF
|
||||
LOCAL i, j, lcPrecedent, lcCurent
|
||||
|
||||
PRIVATE pnLuna, pnAnul, pnLI, pnAI, pnLF, pnAF, pnSI, pnSF, pnModel, pnNuCalculeazaTotaluri, pcIdsAct
|
||||
STORE 0 TO pnLuna, pnAnul, pnLI, pnAI, pnLF, pnAF, pnSI, pnSF
|
||||
|
||||
LOCAL lcMesaje, lnDifSoldFPrecedent, lnDifSoldFCurent
|
||||
lcMesaje = ""
|
||||
lnDifSoldFPrecedent = 0
|
||||
lnDifSoldFCurent = 0
|
||||
|
||||
pnModel = tnModel
|
||||
pnNuCalculeazaTotaluri = 0
|
||||
pcIdsAct = ''
|
||||
llDefalcat = IIF(PCOUNT() = 8, tlDefalcat, .F.)
|
||||
llPrecedent = tlPrecedent AND !m.llDefalcat && daca se defalca pe luni, nu mai am perioada precedenta, doar curenta
|
||||
|
||||
IF !initializeaza_sucursala() && oinit_optiuni.prg
|
||||
RETURN
|
||||
ENDIF
|
||||
|
||||
lcPrecedent = []
|
||||
lcCurent = PADL(INT(tnLunaI), 2, '0') + '/' + PADL(INT(tnAnulI), 4, '0') + ' - ' + PADL(INT(tnLunaF), 2, '0') + '/' + PADL(INT(tnAnulF), 4, '0') && pentru listare - precedent
|
||||
|
||||
lnParcurgeri = 1
|
||||
IF m.llPrecedent
|
||||
lnParcurgeri = 2
|
||||
lcPrecedent = PADL(INT(tnLunaI), 2, '0') + '/' + PADL(INT(tnAnulI) - 1, 4, '0') + ' - ' + PADL(INT(tnLunaF), 2, '0') + '/' + PADL(INT(tnAnulF) - 1, 4, '0') && pentru listare - precedent
|
||||
ENDIF
|
||||
|
||||
*!* 03.05.2011
|
||||
lcCursorFlux = [Select Rand, denumire, Cast(0 As N(14,2)) As precedent, Cast(0 As N(14,2)) As curent, ] + ;
|
||||
[suma, formula, Total, tip, si, sf ]
|
||||
|
||||
|
||||
FOR iLunaFlux = tnAnulI * 12 + tnLunaI TO tnAnulF * 12 + tnLunaF
|
||||
lnLunaFlux = INT(MOD(m.iLunaFlux, 12))
|
||||
lnAnFlux = INT(FLOOR(iLunaFlux / 12))
|
||||
|
||||
IF m.lnLunaFlux = 0
|
||||
m.lnLunaFlux = 12
|
||||
m.lnAnFlux = m.lnAnFlux - 1
|
||||
ENDIF
|
||||
|
||||
lcCursorFlux = m.lcCursorFlux + [, CAST(0 as N(14,2)) as l] + PADL(m.lnLunaFlux, 2, "0") + [_] + ALLTRIM(STR(m.lnAnFlux))
|
||||
*!* 24.06.2011
|
||||
IF m.llPrecedent
|
||||
lnLunaFluxPrec = lnLunaFlux
|
||||
lnAnFluxPrec = lnAnFlux - 1
|
||||
lcCursorFlux = m.lcCursorFlux + [, CAST(0 as N(14,2)) as l] + PADL(m.lnLunaFluxPrec, 2, "0") + [_] + ALLTRIM(STR(m.lnAnFluxPrec))
|
||||
ENDIF
|
||||
*!* 24.06.2011 ^
|
||||
ENDFOR
|
||||
lcCursorFlux = m.lcCursorFlux + [ From cIntermediar Into Cursor cFlux Readwrite]
|
||||
*!* 03.05.2011 ^
|
||||
FOR j = 1 TO lnParcurgeri && 1 = precedent/curent 2 = curent/nimic
|
||||
lnAnulI = tnAnulI
|
||||
lnLunaI = tnLunaI
|
||||
lnAnulF = tnAnulF
|
||||
lnLunaF = tnLunaF
|
||||
|
||||
IF j = 1 AND m.llPrecedent
|
||||
lnAnulI = (lnAnulI - 1)
|
||||
lnAnulF = (lnAnulF - 1)
|
||||
ENDIF
|
||||
|
||||
|
||||
pnLI = lnLunaI
|
||||
pnAI = lnAnulI
|
||||
pnLF = lnLunaF
|
||||
pnAF = lnAnulF
|
||||
pnSI = 0
|
||||
pnSF = 0
|
||||
|
||||
FOR i = lnAnulI * 12 + lnLunaI TO lnAnulF * 12 + lnLunaF
|
||||
pnLuna = INT(MOD(i, 12))
|
||||
pnAnul = INT(FLOOR(i / 12))
|
||||
|
||||
IF pnLuna = 0
|
||||
pnLuna = 12
|
||||
pnAnul = pnAnul - 1
|
||||
ENDIF
|
||||
*!* 03.05.2011
|
||||
lcColoanaLuna = "l" + PADL(m.pnLuna, 2, "0") + [_] + ALLTRIM(STR(m.pnAnul))
|
||||
*!* 03.05.2011 ^
|
||||
WAIT WINDOW 'Luna ' + PADL(ALLTRIM(STR(pnLuna)), 2, '0') + ' ' + ALLTRIM(STR(pnAnul)) NOWAIT
|
||||
pcIdsAct = ''
|
||||
*!* 12.04.2011
|
||||
lnSucces = goExecutor.oFunction2Value([pack_mg_flux.GetIdsActCompensari(] + ALLTRIM(STR(pnLuna)) + [, ] + ALLTRIM(STR(pnAnul)) + [)], @pcIdsAct)
|
||||
IF lnSucces < 0
|
||||
AMESSAGEBOX(goExecutor.cEroare, 0 + 16, "Eroare")
|
||||
RETURN
|
||||
ELSE
|
||||
pcIdsAct = NVL(pcIdsAct, '')
|
||||
ENDIF
|
||||
*!* 12.04.2011 ^
|
||||
|
||||
IF tlCompensari
|
||||
lcSql = [{call PACK_MG_FLUX.GetCompensari(] + ALLTRIM(STR(pnLuna)) + [, ] + ALLTRIM(STR(pnAnul)) + [)}]
|
||||
lnSucces = goExecutor.oExecute(lcSql, 'crsCompensariTemp')
|
||||
IF lnSucces < 0
|
||||
AMESSAGEBOX(goExecutor.cEroare, 0 + 16, "Eroare")
|
||||
RETURN
|
||||
ELSE
|
||||
IF RECCOUNT('crsCompensariTemp') > 0
|
||||
*!* 12.04.2011
|
||||
SELECT *, ALLTRIM(STR(id_act)) + ',' $ pcIdsAct + ',' AS ales FROM crsCompensariTemp INTO CURSOR crsCompensari READWRITE
|
||||
*!* 12.04.2011 ^
|
||||
loFrmCompensari = CREATEOBJECT("frm_compensari")
|
||||
loFrmCompensari.lb_titlu_alb_b121.CAPTION = 'Compensari ' + PADL(ALLTRIM(STR(pnLuna)), 2, '0') + ' ' + ALLTRIM(STR(pnAnul))
|
||||
loFrmCompensari.SHOW(1)
|
||||
|
||||
pcIdsAct = ''
|
||||
SELECT crsCompensari
|
||||
SET FILTER TO
|
||||
SCAN FOR ales
|
||||
pcIdsAct = pcIdsAct + ',' + ALLTRIM(STR(id_act))
|
||||
ENDSCAN
|
||||
IF !EMPTY(pcIdsAct)
|
||||
pcIdsAct = SUBSTR(pcIdsAct, 2)
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
USE IN (SELECT('crsCompensariTemp'))
|
||||
USE IN (SELECT('crsCompensari'))
|
||||
ENDIF
|
||||
ENDIF && tlCompensari
|
||||
|
||||
lcSql = [begin PACK_MG_FLUX.calc_flux(] + ALLTRIM(STR(pnLuna)) + [, ] + ALLTRIM(STR(pnAnul)) + [, ] + ALLTRIM(STR(pnNuCalculeazaTotaluri)) + [, ] + ALLTRIM(STR(pnModel)) + [, '] + ALLTRIM(pcIdsAct) + ['); end;]
|
||||
lnSucces = goExecutor.oExecute(lcSql)
|
||||
|
||||
IF lnSucces < 0
|
||||
AMESSAGEBOX(goExecutor.cEroare, 0 + 16, "Eroare")
|
||||
RETURN
|
||||
ENDIF
|
||||
|
||||
|
||||
|
||||
* Set Textmerge On To Memvar lcMesaje Noshow
|
||||
|
||||
lcSql = [select * from mg_flux_trezorerie where rand = 0 ]
|
||||
lcCursor = 'cNerepartizate'
|
||||
lnSucces = goExecutor.oExecute(lcSql, lcCursor)
|
||||
IF lnSucces < 0
|
||||
AMESSAGEBOX(goExecutor.cEroare, 0 + 16, "Eroare")
|
||||
ENDIF
|
||||
|
||||
SELECT COUNT(*) AS CNT FROM cNerepartizate INTO CURSOR cNr
|
||||
SELECT cNr
|
||||
lnNr = CNT
|
||||
|
||||
IF USED('cNr')
|
||||
USE IN cNr
|
||||
ENDIF
|
||||
|
||||
SET TEXTMERGE ON TO MEMVAR lcMesaje ADDITIVE NOSHOW
|
||||
|
||||
|
||||
IF lnNr > 0
|
||||
\*** Luna <<Padl(Alltrim(Str(pnLuna)),2,'0')>>/<<Alltrim(Str(pnAnul))>>, urmatoarele inregistrari nu au fost repartizate: <<CHR(13)+CHR(10)>>
|
||||
\ nract debit=credit suma
|
||||
SELECT cNerepartizate
|
||||
SCAN
|
||||
\ <<PADR(nract,14," ")>> <<PADR(scd,4," ")>>=<<PADR(scc,4," ")>> <<PADL(ALLTRIM(TRANSFORM(suma,get_mask(20,gnPA))),20," ")>> <<CHR(13)>>
|
||||
SELECT cNerepartizate
|
||||
ENDSCAN
|
||||
\<<CHR(13)+CHR(10)>>
|
||||
ENDIF
|
||||
USE IN cNerepartizate
|
||||
|
||||
SET TEXTMERGE TO
|
||||
***--------------------
|
||||
|
||||
|
||||
lcSql = [select * FROM mg_flux order by rand]
|
||||
lcCursor = 'cIntermediar'
|
||||
lnSucces = goExecutor.oExecute(lcSql, lcCursor)
|
||||
IF lnSucces < 0
|
||||
AMESSAGEBOX(goExecutor.cEroare, 0 + 16, "Eroare")
|
||||
LOOP
|
||||
ENDIF
|
||||
|
||||
IF (i = lnAnulI * 12 + lnLunaI) AND (j = 1) && in prima luna creez cursorul cFLux
|
||||
&lcCursorFlux
|
||||
|
||||
|
||||
&& completez sumele pe coloana precedent/curent cumulat
|
||||
IF j = 1 AND m.llPrecedent
|
||||
REPLACE ALL precedent WITH suma IN cFlux
|
||||
ELSE
|
||||
REPLACE ALL curent WITH suma IN cFlux
|
||||
ENDIF
|
||||
|
||||
&& completez sumele defalcat pentru luna curenta
|
||||
REPLACE ALL &lcColoanaLuna WITH suma IN cFlux
|
||||
ELSE
|
||||
&& scanez si insumez
|
||||
lnsuma = 0
|
||||
SELECT cFlux
|
||||
SCAN
|
||||
lcRand = RAND
|
||||
SELECT cIntermediar
|
||||
LOCATE FOR RAND = lcRand
|
||||
IF FOUND()
|
||||
lnsuma = suma
|
||||
SELECT cFlux
|
||||
IF j = 1 AND m.llPrecedent
|
||||
REPLACE precedent WITH precedent + m.lnsuma
|
||||
ELSE
|
||||
REPLACE curent WITH curent + m.lnsuma
|
||||
ENDIF
|
||||
*!* 03.05.2011
|
||||
REPLACE &lcColoanaLuna WITH m.lnsuma
|
||||
*!* 03.05.2011 ^
|
||||
ENDIF
|
||||
SELECT cFlux
|
||||
ENDSCAN
|
||||
ENDIF && (i = lnAnulI*12 + lnLunaI) And (j = 1) && in prima luna creez cursorul cFLux
|
||||
|
||||
USE IN (SELECT('cIntermediar'))
|
||||
|
||||
*** solduri initiale, finale luna curenta
|
||||
pnSI = 0
|
||||
pnSF = 0
|
||||
lcSql = [begin PACK_MG_FLUX.get_SI_balanta(?pnLuna, ?pnAnul, ?@pnSI); end;]
|
||||
lnSucces = goExecutor.oExecute(lcSql)
|
||||
|
||||
IF lnSucces < 0
|
||||
AMESSAGEBOX(goExecutor.cEroare, 0 + 16, "Eroare")
|
||||
RETURN
|
||||
ENDIF
|
||||
|
||||
lcSql = [begin PACK_MG_FLUX.get_SF_balanta(?pnLuna, ?pnAnul, ?@pnSF); end;]
|
||||
lnSucces = goExecutor.oExecute(lcSql)
|
||||
|
||||
IF lnSucces < 0
|
||||
AMESSAGEBOX(goExecutor.cEroare, 0 + 16, "Eroare")
|
||||
RETURN
|
||||
ENDIF
|
||||
|
||||
lnDifSoldF = 0
|
||||
|
||||
SELECT cFlux
|
||||
REPLACE &lcColoanaLuna WITH pnSI FOR si = 1
|
||||
IF pnNuCalculeazaTotaluri = 0 && daca se calculeaza totalurile in baza de date compar soldul final calculat cu cel din balanta
|
||||
LOCATE FOR sf = 1
|
||||
IF FOUND()
|
||||
IF &lcColoanaLuna <> m.pnSF
|
||||
lnDifSoldF = m.pnSF - (&lcColoanaLuna + m.pnSI) && soldul initial nu era inclus in randul calculat
|
||||
ENDIF
|
||||
ENDIF
|
||||
ENDIF
|
||||
REPLACE &lcColoanaLuna WITH m.pnSF FOR sf = 1
|
||||
|
||||
*!* Set Textmerge On To Memvar lcMesaje Additive Noshow
|
||||
IF lnDifSoldF <> 0
|
||||
lcMesaje = lcMesaje + CHR(13) + CHR(10) + STRTRAN(SUBSTR(lcColoanaLuna, 2), "_", " ") + ' DIFERENTA INTRE SOLD FINAL TREZORERIE CALCULAT SI SOLD FINAL DIN BALANTA DE VERIFICARE: ' + ALLTRIM(TRANSFORM(lnDifSoldF, '999 999 999 999.99'))
|
||||
ENDIF
|
||||
*** solduri initiale, finale luna curenta ^
|
||||
ENDFOR && i = lnAnulI*12 + lnLunaI To lnAnulF*12 + lnLunaF
|
||||
|
||||
*** solduri initiale, finale cumulat precedent/curent
|
||||
lcSql = [begin PACK_MG_FLUX.get_SI_balanta(?pnLI, ?pnAI, ?@pnSI); end;]
|
||||
lnSucces = goExecutor.oExecute(lcSql)
|
||||
|
||||
IF lnSucces < 0
|
||||
AMESSAGEBOX(goExecutor.cEroare, 0 + 16, "Eroare")
|
||||
RETURN
|
||||
ENDIF
|
||||
|
||||
lcSql = [begin PACK_MG_FLUX.get_SF_balanta(?pnLF, ?pnAF, ?@pnSF); end;]
|
||||
lnSucces = goExecutor.oExecute(lcSql)
|
||||
|
||||
IF lnSucces < 0
|
||||
AMESSAGEBOX(goExecutor.cEroare, 0 + 16, "Eroare")
|
||||
RETURN
|
||||
ENDIF
|
||||
|
||||
lcDifSoldFPrecedent = 0
|
||||
lcDifSoldFCurent = 0
|
||||
|
||||
SELECT cFlux
|
||||
IF j = 1 AND m.llPrecedent
|
||||
REPLACE precedent WITH pnSI FOR si = 1
|
||||
IF pnNuCalculeazaTotaluri = 0 && daca se calculeaza totalurile in baza de date compar soldul final calculat cu cel din balanta
|
||||
LOCATE FOR sf = 1
|
||||
IF FOUND()
|
||||
IF precedent <> pnSF
|
||||
lnDifSoldFPrecedent = pnSF - (precedent + pnSI)
|
||||
ENDIF
|
||||
ENDIF
|
||||
ENDIF
|
||||
REPLACE precedent WITH pnSF FOR sf = 1
|
||||
ELSE
|
||||
REPLACE curent WITH pnSI FOR si = 1
|
||||
IF pnNuCalculeazaTotaluri = 0 && daca se calculeaza totalurile in baza de date compar soldul final calculat cu cel din balanta
|
||||
LOCATE FOR sf = 1
|
||||
IF FOUND()
|
||||
IF curent <> pnSF
|
||||
lnDifSoldFCurent = pnSF - (curent + pnSI) && soldul initial nu era inclus in randul calculat
|
||||
ENDIF
|
||||
ENDIF
|
||||
ENDIF
|
||||
REPLACE curent WITH pnSF FOR sf = 1
|
||||
ENDIF
|
||||
*!* Set Textmerge On To Memvar lcMesaje Additive Noshow
|
||||
IF lnDifSoldFPrecedent <> 0
|
||||
lcMesaje = lcMesaje + CHR(13) + CHR(10) + 'DIFERENTA INTRE SOLD FINAL TREZORERIE CALCULAT SI SOLD FINAL DIN BALANTA DE VERIFICARE: ' + ALLTRIM(TRANSFORM(lnDifSoldFPrecedent, '999 999 999 999.99'))
|
||||
ENDIF
|
||||
IF lnDifSoldFCurent <> 0
|
||||
lcMesaje = lcMesaje + CHR(13) + CHR(10) + 'DIFERENTA INTRE SOLD FINAL TREZORERIE CALCULAT SI SOLD FINAL DIN BALANTA DE VERIFICARE: ' + ALLTRIM(TRANSFORM(lnDifSoldFCurent, '999 999 999 999.99'))
|
||||
ENDIF
|
||||
*** solduri initiale, finale cumulat precedent/curent ^
|
||||
ENDFOR && j
|
||||
|
||||
lcFisier = gcTempPath + "mesaje.txt"
|
||||
STRTOFILE(lcMesaje, lcFisier)
|
||||
|
||||
IF !EMPTY(lcMesaje)
|
||||
MODIFY FILE (lcFisier)
|
||||
ENDIF
|
||||
***------------------------------------------------
|
||||
|
||||
SELECT cFlux
|
||||
GO TOP
|
||||
|
||||
SELECT cFlux
|
||||
lovf = CREATEOBJECT('frm_flux', m.llPrecedent, lcPrecedent, lcCurent)
|
||||
lovf.ADDPROPERTY("lDefalcat", tlDefalcat)
|
||||
*!* 03.05.2011
|
||||
*** adaug coloane in grid pentru luni defalcat
|
||||
IF m.llDefalcat
|
||||
lnColumnOffset = lovf._grdrow1.COLUMNCOUNT
|
||||
lovf._grdrow1.COLUMNCOUNT = m.lnColumnOffset + (tnAnulF * 12 + tnLunaF) - (tnAnulI * 12 + tnLunaI) + 1
|
||||
i = 0
|
||||
FOR iLunaFlux = tnAnulI * 12 + tnLunaI TO tnAnulF * 12 + tnLunaF
|
||||
lnLunaFlux = INT(MOD(m.iLunaFlux, 12))
|
||||
lnAnFlux = INT(FLOOR(iLunaFlux / 12))
|
||||
i = i + 1
|
||||
IF m.lnLunaFlux = 0
|
||||
m.lnLunaFlux = 12
|
||||
m.lnAnFlux = m.lnAnFlux - 1
|
||||
ENDIF
|
||||
lcColoanaLuna = "l" + PADL(m.lnLunaFlux, 2, "0") + [_] + ALLTRIM(STR(m.lnAnFlux))
|
||||
lnCurentColumnIndex = m.lnColumnOffset + i
|
||||
WITH lovf._grdrow1
|
||||
.COLUMNS(m.lnCurentColumnIndex).NAME = lcColoanaLuna
|
||||
.&lcColoanaLuna..CONTROLSOURCE = "cFlux." + m.lcColoanaLuna
|
||||
.&lcColoanaLuna..FORMAT = "RK"
|
||||
.&lcColoanaLuna..INPUTMASK = get_mask(14, gnPA)
|
||||
.&lcColoanaLuna..Header1.CAPTION = STRTRAN(SUBSTR(m.lcColoanaLuna, 2), "_", "/")
|
||||
.&lcColoanaLuna..Header1.ALIGNMENT = 2
|
||||
ENDWITH
|
||||
ENDFOR && iLunaFlux = lnAnulI*12 + lnLunaI To lnAnulF*12 + lnLunaF
|
||||
|
||||
lovf._grdrow1.cPrecedent.VISIBLE = .F.
|
||||
lovf._grdrow1.cCurent.VISIBLE = .F.
|
||||
*!* lovf._grdrow1.cCurent.Header1.Caption = PADL(INT(tnLunaI), 2, '0') + "/" + ALLTRIM(STR(INT(tnAnulI))) + " - " + PADL(INT(tnLunaF), 2, '0') + "/" + ALLTRIM(STR(INT(tnAnulF)))
|
||||
ENDIF && m.llDefalcat
|
||||
lovf.grid_column_bind()
|
||||
*!* 03.05.2011 ^
|
||||
lovf.SHOW(1)
|
||||
|
||||
IF USED('cFlux')
|
||||
USE IN cFlux
|
||||
ENDIF
|
||||
|
||||
|
||||
ENDPROC && viz_flux
|
||||
***-------------------------------------------------------------------------------------
|
||||
PROCEDURE lanseaza_excel_flux
|
||||
PARAMETERS tcalias, tlTip, toGridObject
|
||||
|
||||
|
||||
LOCAL loExcelXML AS "ExcelXml" OF "ExcelXml.prg"
|
||||
LOCAL x AS "XL_flux" OF "EXCELX"
|
||||
LOCAL lcFile, lcexcel
|
||||
*:Global OLEAPP
|
||||
LOCAL llEsteExcel
|
||||
llEsteExcel = isComobject("Excel.Application")
|
||||
|
||||
IF !m.llEsteExcel
|
||||
*CopyToExcelSimple("flux_trezorerie.xls", "", m.tcalias, "", "*", ".T.")
|
||||
|
||||
loExcelXML = NEWOBJECT("ExcelXml", "ExcelXml.prg")
|
||||
|
||||
WITH loExcelXML
|
||||
.GridObject = toGridObject
|
||||
.HasFilter = .F.
|
||||
.LockHeader = .F.
|
||||
.SheetName = "Flux Trezorerie"
|
||||
.OpenAfterSaving = .T.
|
||||
lcFile = PUTFILE("Flux trezorerie", "flux_trezorerie", "xls")
|
||||
IF .SAVE(m.lcFile)
|
||||
AMESSAGEBOX("Fisierul s-a salvat!", 64)
|
||||
ELSE
|
||||
AMESSAGEBOX("Fisierul nu s-a salvat!", 48)
|
||||
ENDIF
|
||||
ENDWITH
|
||||
|
||||
RETURN
|
||||
ENDIF
|
||||
|
||||
|
||||
PRIVATE lcTabel
|
||||
|
||||
*!* llEsteExcel = isComobject("Excel.Application")
|
||||
*!* If !llEsteExcel
|
||||
*!* Do mesaj With "Instalati Microsoft Excel",""
|
||||
*!* Return
|
||||
*!* Endif
|
||||
|
||||
lcTabel = ALLTRIM(tcalias)
|
||||
|
||||
*!* lcNumeDirExcel = Addbs(Strtran(CALEFIRMA,"\\","\"))+"Excel\"
|
||||
*!* If !Directory(lcNumeDirExcel)
|
||||
*!* Md (lcNumeDirExcel)
|
||||
*!* ENDIF
|
||||
*!* lcexcel = lcNumeDirExcel +"Flux de trezorerie_"+Sys(2)+".XLS"
|
||||
|
||||
lcexcel = ADDBS(STRTRAN(gcTempPath, "\\", "\")) + "Flux de trezorerie_" + SYS(2) + ".XLS"
|
||||
|
||||
x = NEWOBJECT("XL_flux", "EXCELX") && alternatively you can drop this class on a VFP form
|
||||
x.SAVEAS = lcexcel && PART.XLS to be created in your TEMP folder
|
||||
|
||||
SELECT (lcTabel)
|
||||
|
||||
DIMENSION x.oWorkSheet[1] && need four pages
|
||||
x.oWorkSheet[1] = "Flux"
|
||||
ADDPROPERTY(x, "lTip", tlTip)
|
||||
x.GO() && remember this calls .populate_pages().
|
||||
RELEASE x
|
||||
|
||||
**************************8
|
||||
|
||||
OLEAPP = GETOBJECT("", "Excel.Application")
|
||||
IF TYPE('OLEAPP')!= 'O'
|
||||
OLEAPP = CREATEOBJECT("Excel.Application")
|
||||
ENDIF
|
||||
OLEAPP.WorkBooks.OPEN(lcexcel)
|
||||
OLEAPP.VISIBLE = 1
|
||||
|
||||
RETURN
|
||||
ENDPROC &&lanseaza_excel_flux
|
||||
***------------------------------------------------------------------------------------
|
||||
PROCEDURE viz_formule_flux
|
||||
LPARAMETERS tnModel
|
||||
|
||||
LOCAL lcSql, lnSucces, lcCursor
|
||||
PRIVATE pcDataOra, pnModel
|
||||
lcCursor = 'cFormule'
|
||||
|
||||
pcDataOra = Get_Ora(2)
|
||||
&& tnModel 1 = FORMULE FLUX MAI VECHI; 2 = FORMULE FLUX CONTAFIN CONPRESS
|
||||
IF EMPTY(tnModel)
|
||||
pnModel = 2
|
||||
ELSE
|
||||
pnModel = tnModel
|
||||
ENDIF
|
||||
|
||||
|
||||
lcSql = [select * from mg_flux_formule where model = ?pnModel order by rand]
|
||||
lnSucces = goExecutor.oExecute(lcSql, lcCursor)
|
||||
IF lnSucces < 0
|
||||
AMESSAGEBOX(lcSql, 0 + 32, 'Eroare')
|
||||
RETURN
|
||||
ENDIF
|
||||
|
||||
SELECT cFormule
|
||||
REPLACE ALL comentariu WITH FormulaFlux2Comentariu(debit, 'D', tip, CONT, TOTAL, ftotal) + IIF(!EMPTY(credit), " " + FormulaFlux2Comentariu(credit, 'C', tip, CONT, 0, ""), "")
|
||||
|
||||
SELECT DISTINCT RAND, denumire FROM cFormule INTO CURSOR cFluxParinte READWRITE
|
||||
SELECT * FROM cFormule INTO CURSOR cFluxCopil READWRITE
|
||||
|
||||
SELECT cFluxCopil
|
||||
INDEX ON RAND TAG RAND
|
||||
|
||||
SELECT cFluxParinte
|
||||
SET RELATION TO RAND INTO cFluxCopil ADDITIVE
|
||||
|
||||
poff = CREATEOBJECT("frm_formule")
|
||||
poff.SHOW(1)
|
||||
|
||||
|
||||
USE IN (SELECT('cFluxCopil'))
|
||||
USE IN (SELECT('cFluxParinte'))
|
||||
USE IN (SELECT('cFormule'))
|
||||
|
||||
|
||||
ENDPROC && viz_formule_flux
|
||||
|
||||
***---------------------------------------------------------------------------------------------
|
||||
PROCEDURE viz_conturi_flux
|
||||
lcSql = [select cont from mg_flux_conturi order by cont]
|
||||
lnSucces = goExecutor.oExecute(lcSql, "cConturiFlux")
|
||||
IF lnSucces < 0
|
||||
AMESSAGEBOX(lcSql, 0 + 32, 'Eroare')
|
||||
RETURN
|
||||
ENDIF
|
||||
|
||||
loFrmConturi = CREATEOBJECT("frm_conturi_flux")
|
||||
loFrmConturi.SHOW(1)
|
||||
USE IN (SELECT('cConturiFlux'))
|
||||
ENDPROC && viz_conturi_flux
|
||||
|
||||
***---------------------------------------------------------------------------------------------
|
||||
PROCEDURE FormulaFlux2Comentariu
|
||||
LPARAMETERS tcFormula, tcDebit_credit, tnTip, tcContTip2, tnTotal, tcFTotal
|
||||
|
||||
&& cFormuleFlux.debit,'D',cFormuleFlux.tip,cFormuleFlux.cont,cFormuleFlux.total,cFormuleFlux.ftotal
|
||||
|
||||
LOCAL lcFormula, lcDebit_credit, lcCautInc, lcListaConturi, lcListaContAfis, lnTip, lcContTip2, llTotal, lcFTotal
|
||||
|
||||
IF !EMPTY(NVL(tcDebit_credit, ''))
|
||||
lcDebit_credit = ALLTRIM(UPPER(NVL(tcDebit_credit, '')))
|
||||
ELSE
|
||||
lcDebit_credit = ''
|
||||
ENDIF
|
||||
IF !EMPTY(NVL(tcFormula, ''))
|
||||
lcFormula = ALLTRIM(NVL(tcFormula, ''))
|
||||
ELSE
|
||||
lcFormula = ''
|
||||
ENDIF
|
||||
IF !EMPTY(NVL(tnTip, 0))
|
||||
lnTip = tnTip
|
||||
ELSE
|
||||
lnTip = 0
|
||||
ENDIF
|
||||
IF !EMPTY(NVL(tcContTip2, ''))
|
||||
lcContTip2 = ALLTRIM(NVL(tcContTip2, ''))
|
||||
ELSE
|
||||
lcContTip2 = ''
|
||||
ENDIF
|
||||
STORE '' TO lcListaConturi, lcListaContAfis
|
||||
llTotal = NVL(tnTotal, 0) = 1
|
||||
|
||||
IF !EMPTY(NVL(tcFTotal, ''))
|
||||
lcFTotal = ALLTRIM(NVL(tcFTotal, ''))
|
||||
ENDIF
|
||||
|
||||
IF EMPTY(lcFormula) AND EMPTY(lcFTotal)
|
||||
RETURN ''
|
||||
ENDIF
|
||||
|
||||
IF !llTotal
|
||||
DO CASE
|
||||
CASE lcDebit_credit = 'D'
|
||||
lcCautInc = [substr(scd,1,3) in (] && [inlist(left(scd,3)]
|
||||
CASE lcDebit_credit = 'C'
|
||||
lcCautInc = [substr(scc,1,3) in (] && [inlist(left(scc,3)]
|
||||
ENDCASE
|
||||
|
||||
lnInc = AT(lcCautInc, lcFormula)
|
||||
IF lnInc > 0
|
||||
lcCautSf = [')]
|
||||
lnSF = AT(lcCautSf, lcFormula)
|
||||
ENDIF
|
||||
|
||||
lnLen = LEN(lcFormula) - LEN(lcCautInc) && 19
|
||||
lcListaConturi = SUBSTR(lcFormula, LEN(lcCautInc) + 1, lnLen - 1)
|
||||
lcListaConturi = STRTRAN(lcListaConturi, ['], [])
|
||||
|
||||
lnConturi = GETWORDCOUNT(lcListaConturi, [,])
|
||||
IF lnConturi = 1
|
||||
lcCont = GETWORDNUM(lcListaConturi, 1, [,])
|
||||
lcListaContAfis = lcListaContAfis + lcCont
|
||||
ELSE
|
||||
FOR i = 1 TO lnConturi
|
||||
lcCont = GETWORDNUM(lcListaConturi, i, [,])
|
||||
DO CASE
|
||||
CASE i = 1
|
||||
lcListaContAfis = lcListaContAfis + lcCont + [ ]
|
||||
CASE i = 2
|
||||
lcListaContAfis = lcListaContAfis + [ (] + lcCont + [, ]
|
||||
OTHERWISE
|
||||
lcListaContAfis = lcListaContAfis + lcCont + [, ]
|
||||
ENDCASE
|
||||
ENDFOR
|
||||
lcListaContAfis = SUBSTR(lcListaContAfis, 1, LEN(lcListaContAfis) - 2)
|
||||
lcListaContAfis = lcListaContAfis + [)]
|
||||
ENDIF
|
||||
|
||||
DO CASE
|
||||
CASE lnTip = 1
|
||||
DO CASE
|
||||
CASE lcDebit_credit = 'D'
|
||||
lcTraducere = [Platile din perioada selectata de tipul ] + lcListaContAfis + [ = 5xxx.]
|
||||
CASE lcDebit_credit = 'C'
|
||||
lcTraducere = [Incasarile din perioada selectata de tipul 5xxx = ] + lcListaContAfis + [.]
|
||||
ENDCASE
|
||||
CASE lnTip = 2
|
||||
DO CASE
|
||||
CASE lcDebit_credit = 'D'
|
||||
lcTraducere = [Platile din perioada selectata de tipul ] + lcContTip2 + [ = 5xxx, ]
|
||||
lcTraducere = lcTraducere + [pentru care s-au gasit inregistrari de tipul ] + lcListaContAfis + [ = ] + lcContTip2 + [ in Registrul Jurnal Total.]
|
||||
|
||||
CASE lcDebit_credit = 'C'
|
||||
lcTraducere = [Incasarile din perioada selectata de tipul 5xxx = ] + lcContTip2 + [, ]
|
||||
lcTraducere = lcTraducere + [pentru care s-au gasit inregistrari de tipul ] + lcContTip2 + [ = ] + lcListaContAfis + [ in Registrul Jurnal Total.]
|
||||
ENDCASE
|
||||
OTHERWISE
|
||||
lcTraducere = ''
|
||||
ENDCASE
|
||||
ENDIF
|
||||
|
||||
IF llTotal
|
||||
lcTraducere = [Suma randurilor ] + STRTRAN(lcFTotal, 'R', '')
|
||||
*lcTraducere = STRTRAN(lcTraducere, '0', ' ')
|
||||
ENDIF
|
||||
|
||||
RETURN lcTraducere
|
||||
|
||||
ENDPROC && FormulaFlux2Comentariu
|
||||
2792
COMUN/programe/oproceduri_listari.prg
Normal file
2792
COMUN/programe/oproceduri_listari.prg
Normal file
File diff suppressed because it is too large
Load Diff
295
COMUN/programe/oproceduri_maintenance.prg
Normal file
295
COMUN/programe/oproceduri_maintenance.prg
Normal file
@@ -0,0 +1,295 @@
|
||||
|
||||
gnHandle = SQLCONNECT('ROA_ARGENTA', 'ARGENTA', '123')
|
||||
|
||||
SET PROCEDURE TO D:\CONTAFIN_ORACLE\COMUN\PROGRAME\OPROCEDURI_COMUNE.PRG ADDITIVE
|
||||
|
||||
PRIVATE goExecutor, gcS
|
||||
gcS = 'ARGENTA'
|
||||
goExecutor = CREATEOBJECT("oExecutor")
|
||||
goExecutor.nHandle = gnHandle
|
||||
|
||||
LOCAL lcEroare, lnAn1, lnLuna1, lnAn2, lnLuna2
|
||||
LOCAL lnRecno, i, lnSucces
|
||||
|
||||
lcEroare = ''
|
||||
lnAn1 = 1995
|
||||
lnLuna1 = 1
|
||||
lnAn2 = 2006
|
||||
lnLuna2 = 2
|
||||
|
||||
SELECT crsPartenerDiferente
|
||||
lnRecno = RECCOUNT()
|
||||
i = 0
|
||||
SCAN
|
||||
SCATTER NAME loPartener
|
||||
i = i + 1
|
||||
WAIT WINDOW TRANSFORM(I) + '/' + TRANSFORM(LNRECNO) NOWAIT
|
||||
* lcEroare = modifica_id_partener(loPartener.id_part1, loPartener.id_part, lnAn1, lnLuna1, lnAn2, lnLuna2)
|
||||
lcSql = [update nom_parteneri set inactiv = 1 where id_part = ] + TRANSFORM(loPartener.id_part1)
|
||||
lnSucces = goExecutor.oExecute(lcSql)
|
||||
IF lnSucces < 0
|
||||
lcEroare = goExecutor.cEroare
|
||||
ENDIF
|
||||
|
||||
IF !EMPTY(lcEroare)
|
||||
aMESSAGEBOX(lcEroare)
|
||||
EXIT
|
||||
ENDIF
|
||||
ENDSCAN
|
||||
|
||||
|
||||
IF !EMPTY(lcEroare)
|
||||
aMESSAGEBOX(lcEroare)
|
||||
ENDIF
|
||||
|
||||
SQLDISCONNECT(0)
|
||||
|
||||
*** =================================================================================== ***
|
||||
*** MODIFICARE ID_PARTENER IN CAZUL IN CARE EXISTA ACELASI PARTENER DE MAI MULTE ORI ***
|
||||
*** IN NOMENCLATORUL DE PARTENERI ***
|
||||
*** MARIUS.MUTU ***
|
||||
*** 15.02.2006 ***
|
||||
*** =================================================================================== ***
|
||||
PROCEDURE modifica_id_partener
|
||||
LPARAMETERS tnIdPartProst, tnIdPartBun, tnAn1, tnLuna1, tnAn2, tnLuna2
|
||||
|
||||
|
||||
LOCAL lnAn1, lnLuna1, lnAn2, lnLuna2, lnSucces, lnSucces2, lcEroare
|
||||
LOCAL lcSql, lcCursor
|
||||
PRIVATE lnIdPartProst, tnIdPartBun, lnInit, lnFinal
|
||||
|
||||
lcEroare = ''
|
||||
|
||||
lnSucces = 1
|
||||
lnSucces2 = 1
|
||||
|
||||
lnIdPartProst = 0
|
||||
lnIdPartBun = 0
|
||||
lnInit = 0
|
||||
lnFinal = 0
|
||||
|
||||
IF EMPTY(tnIdPartProst) OR EMPTY(tnIdPartBun) OR EMPTY(tnAn1) OR EMPTY(tnLuna1) OR EMPTY(tnAn2) OR EMPTY(tnLuna2)
|
||||
lcEroare = 'Completati parametrii'
|
||||
lnSucces = -1
|
||||
ENDIF
|
||||
|
||||
IF lnSucces > 0
|
||||
lnIdPartProst = tnIdPartProst
|
||||
lnIdPartBun = tnIdPartBun
|
||||
|
||||
lnInit = tnAn1 * 12 + tnLuna1
|
||||
lnFinal = tnAn2 * 12 + tnLuna2
|
||||
IF lnInit > lnFinal
|
||||
lcEroare = 'Luna de sfarsit trebuie sa fie mai mare sau egala decat luna de inceput'
|
||||
lnSucces = -1
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
IF lnSucces > 0
|
||||
|
||||
&& TRANZACTIE MANUALA
|
||||
lnSucces = SQLSETPROP(gnhandle,"Transactions",2)
|
||||
IF lnSucces < 0
|
||||
lcEroare = goExecutor.cEroare
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
&& ACT : ID_PARTD
|
||||
IF lnSucces > 0
|
||||
lcSql = [update ] + gcs + [.act set id_partd = ?lnIdPartBun where id_partd = ?lnIdPartProst and an*12+luna between ?lnInit and ?lnFinal]
|
||||
lnSucces = goExecutor.oExecute(lcSql)
|
||||
IF lnSucces < 0
|
||||
lcEroare = goExecutor.cEroare
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
&& ACT : ID_PARTC
|
||||
IF lnSucces > 0
|
||||
lcSql = [update ] + gcs + [.act set id_partc = ?lnIdPartBun where id_partc = ?lnIdPartProst and an*12+luna between ?lnInit and ?lnFinal]
|
||||
lnSucces = goExecutor.oExecute(lcSql)
|
||||
IF lnSucces < 0
|
||||
lcEroare = goExecutor.cEroare
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
&& IREG_PARTENERI
|
||||
IF lnSucces > 0
|
||||
lcSql = [update ] + gcs + [.ireg_parteneri set id_part = ?lnIdPartBun where id_part = ?lnIdPartProst and an*12+luna between ?lnInit and ?lnFinal]
|
||||
lnSucces = goExecutor.oExecute(lcSql)
|
||||
IF lnSucces < 0
|
||||
lcEroare = goExecutor.cEroare
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
|
||||
&& BALANTA PARTENERI
|
||||
IF lnSucces > 0
|
||||
FOR I = lnInit TO lnFinal
|
||||
lnLuna=MOD(I,12)
|
||||
lnAn=INT(I/12)
|
||||
IF lnLuna=0
|
||||
lnLuna=12
|
||||
lnAn=lnAn-1
|
||||
ENDIF
|
||||
|
||||
|
||||
lcSql = [SELECT ?lnIdPartBun as id_part, an, luna, NVL(cont,' ') as cont, NVL(acont,' ') as acont, id_valuta, ] +;
|
||||
[sum(precdeb1) as precdeb1,sum(preccred1) as preccred1,sum(precdeb) as precdeb,sum(preccred) as preccred,] +;
|
||||
[sum(precvaldeb1) as precvaldeb1,sum(precvalcred1) as precvalcred1,sum(precvaldeb) as precvaldeb,sum(precvalcred) as precvalcred,] +;
|
||||
[sum(debit) as debit,sum(credit) as credit,sum(valdebit) as valdebit,sum(valcredit) as valcredit ]+;
|
||||
[ FROM ] + gcs + [.BALANTA_PARTENERI WHERE ID_PART IN (?lnIdPartBun,?lnIdPartProst) AND ] +;
|
||||
[ AN = ?lnAn and luna = ?lnLuna ] + ;
|
||||
[ GROUP BY AN, LUNA, CONT, ACONT, ID_VALUTA ]
|
||||
lcCursor = [crsBalanta]
|
||||
|
||||
lnSucces = goExecutor.oExecute(lcSql,lcCursor)
|
||||
IF lnSucces < 0
|
||||
lcEroare = goExecutor.cEroare
|
||||
EXIT
|
||||
ENDIF
|
||||
|
||||
IF lnSucces > 0
|
||||
lcDel = [DELETE FROM ] + gcs + [.BALANTA_PARTENERI WHERE ID_PART IN (?lnIdPartBun,?lnIdPartProst) AND ] +;
|
||||
[ AN = ?lnAn and luna = ?lnLuna]
|
||||
lnSucces = goExecutor.oExecute(lcDel)
|
||||
IF lnSucces < 0
|
||||
lcEroare = goExecutor.cEroare
|
||||
EXIT
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
IF lnSucces > 0
|
||||
SELECT crsBalanta
|
||||
SCAN
|
||||
SCATTER NAME loB
|
||||
loB.CONT = ALLTRIM(loB.CONT)
|
||||
loB.acont = ALLTRIM(loB.acont)
|
||||
lcIns = [INSERT INTO ] + gcs + [.BALANTA_PARTENERI ] + ;
|
||||
[(an,luna,cont,acont,id_part,id_valuta,] + ;
|
||||
[precdeb1,preccred1,precdeb,preccred,] + ;
|
||||
[precvaldeb1,precvalcred1,precvaldeb,precvalcred,] + ;
|
||||
[debit,credit,valdebit,valcredit) VALUES ] + ;
|
||||
[(?loB.an,?loB.luna,?loB.cont,?loB.acont,?loB.id_part,?loB.id_valuta,] + ;
|
||||
[?loB.precdeb1,?loB.preccred1,?loB.precdeb,?loB.preccred,] + ;
|
||||
[?loB.precvaldeb1,?loB.precvalcred1,?loB.precvaldeb,?loB.precvalcred,] + ;
|
||||
[?loB.debit,?loB.credit,?loB.valdebit,?loB.valcredit) ]
|
||||
lnSucces = goExecutor.oExecute(lcIns)
|
||||
IF lnSucces < 0
|
||||
lcEroare = goExecutor.cEroare
|
||||
EXIT
|
||||
ENDIF
|
||||
ENDSCAN
|
||||
ENDIF
|
||||
IF USED('crsBalanta')
|
||||
USE IN crsBalanta
|
||||
ENDIF
|
||||
|
||||
ENDFOR
|
||||
ENDIF
|
||||
|
||||
&& MASINI_CLIENTI
|
||||
IF lnSucces > 0
|
||||
lcSql = [update ] + gcs + [.dev_masiniclienti set id_partener = ?lnIdPartBun where id_partener = ?lnIdPartProst]
|
||||
lnSucces = goExecutor.oExecute(lcSql)
|
||||
IF lnSucces < 0
|
||||
lcEroare = goExecutor.cEroare
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
&& CON_LUCRARI
|
||||
IF lnSucces > 0
|
||||
lcSql = [update ] + gcs + [.con_lucrari set id_part = ?lnIdPartBun where id_part = ?lnIdPartProst]
|
||||
lnSucces = goExecutor.oExecute(lcSql)
|
||||
IF lnSucces < 0
|
||||
lcEroare = goExecutor.cEroare
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
|
||||
&& RUL - id_responsabil
|
||||
IF lnSucces > 0
|
||||
lcSql = [update ] + gcs + [.rul set id_responsabil = ?lnIdPartBun where id_responsabil = ?lnIdPartProst]
|
||||
lnSucces = goExecutor.oExecute(lcSql)
|
||||
IF lnSucces < 0
|
||||
lcEroare = goExecutor.cEroare
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
&& RUL - id_responsabilc
|
||||
IF lnSucces > 0
|
||||
lcSql = [update ] + gcs + [.rul set id_responsabilc = ?lnIdPartBun where id_responsabilc = ?lnIdPartProst]
|
||||
lnSucces = goExecutor.oExecute(lcSql)
|
||||
IF lnSucces < 0
|
||||
lcEroare = goExecutor.cEroare
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
&& RUL_OBINV
|
||||
IF lnSucces > 0
|
||||
lcSql = [update ] + gcs + [.rul_obinv set id_responsabil = ?lnIdPartBun where id_responsabil = ?lnIdPartProst]
|
||||
lnSucces = goExecutor.oExecute(lcSql)
|
||||
IF lnSucces < 0
|
||||
lcEroare = goExecutor.cEroare
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
&& STOC_OBINV
|
||||
IF lnSucces > 0
|
||||
lcSql = [update ] + gcs + [.stoc_obinv set id_responsabil = ?lnIdPartBun where id_responsabil = ?lnIdPartProst]
|
||||
lnSucces = goExecutor.oExecute(lcSql)
|
||||
IF lnSucces < 0
|
||||
lcEroare = goExecutor.cEroare
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
&& CON_CONTRACTE
|
||||
IF lnSucces > 0
|
||||
lcSql = [update ] + gcs + [.con_contracte set id_part = ?lnIdPartBun where id_part = ?lnIdPartProst]
|
||||
lnSucces = goExecutor.oExecute(lcSql)
|
||||
IF lnSucces < 0
|
||||
lcEroare = goExecutor.cEroare
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
IF lnSucces > 0
|
||||
lnSucces2 = goExecutor.oExecute('COMMIT')
|
||||
IF lnSucces2 < 0
|
||||
lcEroare = goExecutor.cEroare
|
||||
ENDIF
|
||||
ELSE
|
||||
lnSucces2 = goExecutor.oExecute('ROLLBACK')
|
||||
IF lnSucces2 < 0
|
||||
lcEroare = goExecutor.cEroare
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
&& inactiv
|
||||
IF lnSucces > 0
|
||||
lcSql = [update ] + gcs + [.nom_parteneri set inactiv = 1 where id_part = ?lnIdPartProst]
|
||||
lnSucces = goExecutor.oExecute(lcSql)
|
||||
IF lnSucces < 0
|
||||
lcEroare = goExecutor.cEroare
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
IF lnSucces > 0
|
||||
lnSucces2 = goExecutor.oExecute('COMMIT')
|
||||
IF lnSucces2 < 0
|
||||
lcEroare = goExecutor.cEroare
|
||||
ENDIF
|
||||
ELSE
|
||||
lnSucces2 = goExecutor.oExecute('ROLLBACK')
|
||||
IF lnSucces2 < 0
|
||||
lcEroare = goExecutor.cEroare
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
&& TRANZACTIE AUTOMATA
|
||||
lnSucces = SQLSETPROP(gnhandle,"Transactions",1)
|
||||
IF lnSucces < 0
|
||||
lcEroare = goExecutor.cEroare
|
||||
ENDIF
|
||||
|
||||
RETURN lcEroare
|
||||
|
||||
ENDPROC && modifica_id_partener
|
||||
115
COMUN/programe/oproceduri_manager.prg
Normal file
115
COMUN/programe/oproceduri_manager.prg
Normal file
@@ -0,0 +1,115 @@
|
||||
Procedure make_cFCentre
|
||||
|
||||
*!* Create Cursor cFCentre (id_centru I(4) Null, csectie C(2) Null, centru C(30) Null)
|
||||
*!* Insert Into cFCentre Values (0, '00','<FIRMA>')
|
||||
|
||||
Create Cursor cFCentre (id_sectie I(4) Null, sectie C(30) Null)
|
||||
Insert Into cFCentre Values (0, '<FIRMA>')
|
||||
|
||||
Private poCentre, pcschema1, pcselect1
|
||||
Store '' To poCentre
|
||||
pcschema1 = ['']
|
||||
|
||||
*!* If gnId_centre_sectie = 1 Then
|
||||
*!* pcselect1 = ['select ce.id_centru, ce.csectie, ce.sectie as centru ]+;
|
||||
*!* [from mg_nom_centre_sectie ce ]+;
|
||||
*!* [where 1=2']
|
||||
*!* pcorder1 = [ce.sectie]
|
||||
*!* pcfiltru1 = [ce.sectie is not null and ce.societate = 0]
|
||||
*!* Else
|
||||
*!* pcselect1 = ['select ce.id_centru, ce.csectie, ce.centru ]+;
|
||||
*!* [from mg_nom_centre_profit ce ]+;
|
||||
*!* [where 1=2']
|
||||
*!* pcorder1 = [ce.centru]
|
||||
*!* pcfiltru1 = [ce.centru is not null and ce.societate = 0]
|
||||
*!* Endif
|
||||
|
||||
Local lcSchema, lcSelect, lcOrder, lcgroup, lcFiltru, lcFiltruOriginal, llModParam, llAfiseaza
|
||||
|
||||
lcSchema = [id_sectie N(5), sectie C(30)]
|
||||
lcSelect = [select id_sectie, sectie from vnom_sectii]
|
||||
lcOrder = [sectie]
|
||||
lcgroup = []
|
||||
lcFiltru = [2=2]
|
||||
llModParam = .T.
|
||||
llAfiseaza = .F.
|
||||
|
||||
gencursor('pocentre','cc', lcSelect, lcFiltru, lcSchema, lcOrder, llAfiseaza, lcgroup, llModParam, lcFiltruOriginal)
|
||||
poCentre.ca_baza1.afisare()
|
||||
|
||||
Select cFCentre
|
||||
Append From Dbf("cc")
|
||||
If Used('cc')
|
||||
Use In cc
|
||||
Endif
|
||||
|
||||
Release poCentre
|
||||
|
||||
Select cFCentre
|
||||
Go Top
|
||||
|
||||
Endproc && make_cFCentre
|
||||
***---------------------------------------------------------------------------------------------
|
||||
Procedure make_cTipuri_seturi
|
||||
Create Cursor cTipuri_seturi (id_tip_set N(5), nume_tip_set C(30))
|
||||
Insert Into cTipuri_seturi Values (0, '<Normal>')
|
||||
|
||||
Private poTipuri_seturi, pcschema1, pcselect1
|
||||
Store '' To poTipuri_seturi
|
||||
pcschema1 = ['']
|
||||
pcselect1 = ['select ts.id_tip_set, ts.nume_tip_set ]+;
|
||||
[from mg_tipuri_seturi ts ]+;
|
||||
[where 1=2']
|
||||
pcorder1 = [ts.nume_tip_set]
|
||||
pcfiltru1 = [2=2]
|
||||
llAfiseaza = .F.
|
||||
gencursor('poTipuri_seturi','cc',pcselect1,pcfiltru1,pcschema1,pcorder1,llAfiseaza)
|
||||
poTipuri_seturi.ca_baza1.afisare()
|
||||
|
||||
Select cTipuri_seturi
|
||||
Append From Dbf("cc")
|
||||
|
||||
Release poTipuri_seturi
|
||||
|
||||
Select cTipuri_seturi
|
||||
Go Top
|
||||
|
||||
Endproc && make_cTipuri_seturi
|
||||
***---------------------------------------------------------------------------------------------
|
||||
Procedure make_venChelt
|
||||
Create Cursor cVenChelt (id_venchelt I(4) Null, explicatie C(200) Null)
|
||||
Insert Into cVenChelt Values (0, '<TOATE>')
|
||||
Insert Into cVenChelt Values (99999, 'FARA TIP CHELTUIALA')
|
||||
|
||||
Private poVenChelt, pcschema1, pcselect1
|
||||
Store '' To poVenChelt
|
||||
|
||||
Local lcSchema, lcSelect, lcOrder, lcgroup, lcFiltru, lcFiltruOriginal, llModParam, llAfiseaza
|
||||
|
||||
|
||||
lcSchema = [id_venchelt N(5), explicatie C(30)]
|
||||
lcSelect = [select id_venchelt, explicatie from vnom_venchel]
|
||||
lcOrder = [explicatie]
|
||||
lcgroup = []
|
||||
lcFiltru = [2=2]
|
||||
llModParam = .T.
|
||||
llAfiseaza = .F.
|
||||
|
||||
gencursor('poVenChelt','cc', lcSelect, lcFiltru, lcSchema, lcOrder, llAfiseaza, lcgroup, llModParam, lcFiltruOriginal)
|
||||
poVenChelt.ca_baza1.afisare()
|
||||
|
||||
|
||||
Select cVenChelt
|
||||
Append From Dbf("cc")
|
||||
If Used('cc')
|
||||
Use In cc
|
||||
Endif
|
||||
|
||||
Release poVenChelt
|
||||
|
||||
Select cVenChelt
|
||||
Go Top
|
||||
|
||||
Endproc && make_venChelt
|
||||
***---------------------------------------------------------------------------------------------
|
||||
|
||||
176
COMUN/programe/oproceduri_obinv.prg
Normal file
176
COMUN/programe/oproceduri_obinv.prg
Normal file
@@ -0,0 +1,176 @@
|
||||
***-----------------------------------------------------------------------------------------------------------
|
||||
PROCEDURE fisa_lichidare
|
||||
|
||||
PRIVATE pcTitlu &&, pcDataOra
|
||||
STORE "" TO pcTitlu &&, pcDataOra
|
||||
LOCAL lcOrder, lcOrderColumn, loColumnSort
|
||||
lcOrder = ""
|
||||
lcOrderColumn = ""
|
||||
|
||||
PRIVATE pnId_responsabil
|
||||
STORE 0 TO pnId_responsabil
|
||||
|
||||
loResp = caut_responsabil(.T.)
|
||||
pnId_responsabil = loResp.id_responsabil
|
||||
|
||||
|
||||
lcTitlu = [FISA DE LICHIDARE]
|
||||
|
||||
pcTitlu = ceretitlu_rap([Titlul raportului],lcTitlu)
|
||||
*!* pcDataOra = get_ora(2)
|
||||
|
||||
pcGrupGest = [nresp]
|
||||
pcGrupCont = [EOF()]
|
||||
pcGrupAcont = [EOF()]
|
||||
pcHeaderGrup = [Responsabil ]
|
||||
|
||||
lcOrder = "nresp,denumire,codmat"
|
||||
|
||||
lcSql = []
|
||||
* SELECT * from crsStocuri INTO CURSOR crs_rap ORDER BY &lcOrder
|
||||
***-------------------------------
|
||||
lcSel = [{call pack_gest_rapoarte.fisa_ob_inventar_resp_stoc(?gnAn, ?gnLuna, ?pnId_responsabil,?gnIdSucursala)}]
|
||||
lcCursor = 'cFisa'
|
||||
lnSucces = goExecutor.oExecute(lcSel,lcCursor)
|
||||
|
||||
IF lnSucces < 0
|
||||
AMESSAGEBOX('Call pack_gest_rapoarte.fisa_ob_inventar_resp' + CHR(13) + goExecutor.cEroare,0+16,"Eroare")
|
||||
RETURN
|
||||
ENDIF
|
||||
***-------------------------------
|
||||
** raportul nu calcula bine totalurile
|
||||
SELECT *, ;
|
||||
IIF(dnf<>0,(dnf-(dns_luni-IIF(!EMPTY(datain) AND !ISNULL(datain),((gnAn*12+gnLuna)-(YEAR(datain)*12+MONTH(datain))),0)))/dnf*100,0000) AS uzura ;
|
||||
FROM cFisa ;
|
||||
INTO CURSOR sel1 READWRITE
|
||||
|
||||
IF USED('cFisa')
|
||||
USE IN cFisa
|
||||
ENDIF
|
||||
|
||||
SELECT *, ;
|
||||
IIF(uzura <= 100,ROUND((cants+CANT-CANTE)*PRET - (cants+CANT-CANTE)*PRET* uzura/100,gnPC),0) AS val_ramas ;
|
||||
FROM sel1 ;
|
||||
INTO CURSOR cFisaLic
|
||||
|
||||
IF USED('sel1')
|
||||
USE IN sel1
|
||||
ENDIF
|
||||
|
||||
|
||||
*!* SELECT cFisaLic
|
||||
*!* REPORT FORMAT fisa_lichidare.FRX TO PRINTER PROMPT NOCONSOLE PREVIEW
|
||||
goExport.export2frx([cFisaLic],[fisa_lichidare])
|
||||
|
||||
IF USED('cFisaLic')
|
||||
USE IN cFisaLic
|
||||
ENDIF
|
||||
|
||||
|
||||
ENDPROC && fisa_lichidare
|
||||
***-----------------------------------------------------------------------------------------------------------
|
||||
PROCEDURE fisa_echip_uzat_pred_imputat
|
||||
*!* comentarii : 19.02.2008
|
||||
PARAMETERS tnOperatie
|
||||
|
||||
&& tnOperatie: 1 - uzat; 2 - predat
|
||||
|
||||
PRIVATE pnOperatie
|
||||
pnOperatie = tnOperatie
|
||||
|
||||
LOCAL lcRaport
|
||||
lcRaport = []
|
||||
|
||||
PRIVATE pcTitlu, pcPerioada && , pcDataOra && pt. raport
|
||||
STORE "" TO pcTitlu
|
||||
*!* pcDataOra = get_ora(2)
|
||||
|
||||
PRIVATE pnId_responsabil
|
||||
STORE 0 TO pnId_responsabil
|
||||
|
||||
loResp = caut_responsabil(.T.)
|
||||
pnId_responsabil = loResp.id_responsabil
|
||||
|
||||
***-------------------------------
|
||||
PRIVATE pdDataI, pdDataF
|
||||
STORE {} TO pdDataI, pdDataF
|
||||
|
||||
loLuna = get_oluna(gnAn, gnLuna)
|
||||
lcLuna1 = PADL(loLuna.lunamin,2,'0') + PADL(loLuna.anmin,4,'0')
|
||||
lcLuna2 = PADL(loLuna.lunamax,2,'0') + PADL(loLuna.anmax,4,'0')
|
||||
|
||||
LOCAL lcData1
|
||||
lcData1 = '01/'+PADL(loLuna.lunamin,2,'0')+'/'+ALLTRIM(STR(loLuna.anmin))
|
||||
pdDataI = CTOD(lcData1)
|
||||
pdDataF = ULTIMAZI(STR(loLuna.anmax), STR(loLuna.lunamax))
|
||||
|
||||
|
||||
ofrmperioada = CREATEOBJECT('frm_perioada_zzllaaaa')
|
||||
ofrmperioada.pdDataI = pdDataI
|
||||
ofrmperioada.pdDataF = pdDataF
|
||||
ofrmperioada.SHOW(1)
|
||||
IF gnButon=2
|
||||
RETURN
|
||||
ENDIF
|
||||
|
||||
pcPerioada = DTOC(pdDataI) + ' - ' + DTOC(pdDataF)
|
||||
|
||||
PRIVATE pnNnir
|
||||
pnNnir = 0
|
||||
|
||||
***-------------------------------
|
||||
lcSel = [{call pack_gest_rapoarte.fisa_echip_uzat_pred_imputat(?gnAn, ?gnLuna, ?pnNnir, ?pdDataI, ?pdDataF, ?pnId_responsabil, ?pnOperatie, ?gnIdSucursala)}]
|
||||
lcCursor = 'cFisa'
|
||||
lnSucces = goExecutor.oExecute(lcSel,lcCursor)
|
||||
|
||||
IF lnSucces < 0
|
||||
AMESSAGEBOX(goExecutor.cEroare,0+16,"Eroare")
|
||||
RETURN
|
||||
ENDIF
|
||||
***-------------------------------
|
||||
*!* DO CASE
|
||||
*!* CASE pnOperatie = 1
|
||||
*!* pcTitlu = "FISA ECHIPAMENT UZAT"
|
||||
*!* CASE pnOperatie = 2
|
||||
*!* pcTitlu = "FISA ECHIPAMENT PREDAT"
|
||||
*!* CASE pnOperatie = 3
|
||||
*!* pcTitlu = "FISA ECHIPAMENT IMPUTAT"
|
||||
*!* ENDCASE
|
||||
|
||||
PRIVATE pcSemnaturi
|
||||
STORE '' TO pcSemnaturi
|
||||
|
||||
DO CASE
|
||||
CASE pnOperatie = 1
|
||||
pcTitlu = [FISA ECHIPAMENT UZAT]
|
||||
lcRaport = [rap_echip_uzat]
|
||||
param_listari(lcRaport,,@pcSemnaturi)
|
||||
*!* SELECT cFisa
|
||||
*!* REPORT FORM rap_echip_uzat TO PRINTER PROMPT PREVIEW
|
||||
CASE pnOperatie = 2
|
||||
pcTitlu = [FISA ECHIPAMENT PREDAT]
|
||||
lcRaport = [rap_echip_predat]
|
||||
param_listari(lcRaport,,@pcSemnaturi, .T.)
|
||||
*!* SELECT cFisa
|
||||
*!* REPORT FORM rap_echip_predat TO PRINTER PROMPT PREVIEW
|
||||
CASE pnOperatie = 3
|
||||
pcTitlu = [FISA ECHIPAMENT IMPUTAT]
|
||||
lcRaport = [rap_echip_imputat]
|
||||
param_listari(lcRaport,,@pcSemnaturi, .T.)
|
||||
*!* SELECT cFisa
|
||||
*!* REPORT FORM rap_echip_imputat TO PRINTER PROMPT PREVIEW
|
||||
ENDCASE
|
||||
|
||||
goExport.export2frx([cFisa],lcRaport)
|
||||
|
||||
IF USED("cFisa")
|
||||
USE IN cFisa
|
||||
ENDIF
|
||||
|
||||
|
||||
ENDPROC && fisa_echip_uzat_pred_imputat
|
||||
***-----------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
|
||||
276
COMUN/programe/oproceduri_parteneri.prg
Normal file
276
COMUN/programe/oproceduri_parteneri.prg
Normal file
@@ -0,0 +1,276 @@
|
||||
*************************************************************************************************************************
|
||||
* adauga corespondente intre partener si fiecare tip din lista de id-uri tip partener
|
||||
* Date : 04/10/2006
|
||||
* author : marius.mutu
|
||||
******************************************************* ADAUGA_CORESP_TIP_PART ******************************************
|
||||
PROCEDURE ADAUGA_CORESP_TIP_PART
|
||||
LPARAMETERS tnIdPart, tcTipuriPartener
|
||||
&& tcTipuriParteneri: lista de id-uri tipuri parteneri delimitata prin ','
|
||||
*!* ADAUG TIPURI DE PARTENER - PARTENER DACA NU EXISTA
|
||||
|
||||
LOCAL lcTipPart, lcSql, lnSucces, i
|
||||
IF EMPTY(tcTipuriPartener) OR EMPTY(tnIdPart)
|
||||
RETURN
|
||||
ENDIF
|
||||
FOR i = 1 TO GETWORDCOUNT(tcTipuriPartener,[,;])
|
||||
lcTipPart = GETWORDNUM(tcTipuriPartener,i,[,;])
|
||||
lcSql = [begin PACK_DEF.adauga_coresp_tip_part(] + ALLTRIM(TRANSFORM(tnIdPart)) + [,] + lcTipPart + [); END;]
|
||||
lnSucces = goExecutor.oExecute(lcSql)
|
||||
IF lnSucces < 0
|
||||
AMESSAGEBOX(goExecutor.cEroare,0+16,'Eroare')
|
||||
ENDIF
|
||||
ENDFOR
|
||||
ENDPROC && ADAUGA_CORESP_TIP_PART
|
||||
******************************************************* ADAUGA_CORESP_DELEGAT ******************************************
|
||||
Procedure ADAUGA_CORESP_DELEGAT
|
||||
Lparameters tnIdDelegat, tnIdPart
|
||||
Local lcSql,lnSucces
|
||||
lcSql = [begin pack_def.adauga_coresp_delegat(] + Alltrim(Str(tnIdDelegat)) + [,] + Alltrim(Str(tnIdPart)) + [); end;]
|
||||
lnSucces = goExecutor.oExecute(lcSql)
|
||||
If lnSucces < 0
|
||||
AMESSAGEBOX(goExecutor.cEroare,0+16,'Eroare')
|
||||
Endif
|
||||
EndProc
|
||||
*************************************************************************************************************************
|
||||
Procedure Adauga_Delegat_Partener
|
||||
Lparameters tnIdDelegat, tnIdPartener
|
||||
Local lcTipPart, lcSql, lnSucces
|
||||
If Empty(tnIdDelegat) Or Empty(tnIdPartener)
|
||||
Return
|
||||
Endif
|
||||
lcSql = [begin pack_def.adauga_coresp_tip_part(]+Alltrim(Str(tnIdDelegat))+[,?gnIdTipDelegati);] + ;
|
||||
[pack_def.actualizeaza_coresp_delegati(] + Alltrim(Str(tnIdDelegat)) + [,'] + ;
|
||||
Alltrim(Str(tnIdPartener)) + [;'); END;]
|
||||
lnSucces = goExecutor.oExecute(lcSql)
|
||||
If lnSucces < 0
|
||||
AMESSAGEBOX(goExecutor.cEroare,0+16,'Eroare')
|
||||
Endif
|
||||
Endproc && Adauga_Delegat_Partener
|
||||
|
||||
|
||||
PROCEDURE Adauga_partener
|
||||
LPARAMETERS toPartener
|
||||
|
||||
Local lcAdresa, lcApart, lcBanca, lcBloc, lcCod_fiscal, lcCodpostal, lcCont_Banca, lcCorespDel
|
||||
Local lcDA_apare, lcDenumire, lcDenumire_adresa, lcEmail, lcEtaj, lcFax, lcIdPart, lcIdString
|
||||
Local lcId_Judet, lcId_categ_ent, lcId_loc, lcId_loc_inreg, lcId_tara, lcId_util, lcItem, lcJudet
|
||||
Local lcJudetBucuresti, lcLocalitate, lcMesaj, lcMotiv_inactiv, lcNumar, lcNume, lcPrefix, lcPrenume
|
||||
Local lcPrincipala, lcReg_comert, lcScara, lcSql, lcSqlInsert, lcStrada, lcSufix, lcTara, lcTelefon1
|
||||
Local lcTelefon2, lcTip_persoana, lcWeb, lcinactiv, llSucces, lnIdJudet, lnIdJudetBucuresti
|
||||
Local lnIdLocalitateBucuresti, lnIdTaraRO, lnItem, lnItems, lnSucces
|
||||
*:Global pnIdAdresa, pnIdJudet
|
||||
|
||||
lcDenumire = Nvl(Strtran(Alltrim(Upper(toPartener.denumire)), ['], ['']), "")
|
||||
lcNume = ''
|
||||
IF TYPE('toPartener.nume') = 'C'
|
||||
lcNume = Nvl(Strtran(Alltrim(Upper(toPartener.nume)), ['], ['']), "")
|
||||
ENDIF
|
||||
If Empty(m.lcNume)
|
||||
lcNume = m.lcDenumire
|
||||
m.lcPrenume = ''
|
||||
Endif
|
||||
|
||||
lcPrenume = ''
|
||||
IF TYPE('toPartener.prenume') = 'C'
|
||||
lcPrenume = Nvl(Strtran(Alltrim(Upper(toPartener.prenume)), ['], ['']), "")
|
||||
ENDIF
|
||||
|
||||
lcCod_fiscal = ''
|
||||
IF TYPE('toPartener.cod_fiscal') = 'C'
|
||||
lcCod_fiscal = Upper(Alltrim(toPartener.cod_fiscal))
|
||||
ENDIF
|
||||
|
||||
lcReg_comert = ''
|
||||
IF TYPE('toPartener.reg_com') = 'C'
|
||||
lcReg_comert = Nvl(Alltrim(Upper(toPartener.reg_com)), "")
|
||||
ENDIF
|
||||
|
||||
lcId_loc_inreg = 'NULL'
|
||||
lcId_categ_ent = 'NULL'
|
||||
lcPrefix = ""
|
||||
lcSufix = ""
|
||||
lcTip_persoana = IIF(!EMPTY(m.lcCod_fiscal) and LEN(m.lcCod_fiscal) < 13, "1", "2")
|
||||
lcBanca = ""
|
||||
lcCont_Banca = ""
|
||||
lcinactiv = "0"
|
||||
lcMotiv_inactiv = ""
|
||||
lcTip = 'CLIENTI'
|
||||
IF TYPE('toPartener.tip') = 'C'
|
||||
lcTip = UPPER(ALLTRIM(toPartener.tip))
|
||||
ENDIF
|
||||
lcIdString = IIF(m.lcTip = 'CLIENTI', "16", "17") && 16 = CLIENTI, 17 = FURNIZORI
|
||||
lcCorespDel = ""
|
||||
lcId_util = "-3"
|
||||
lcSqlInsert = [begin pack_def.adauga_partener('] + lcDenumire + [','] + lcNume + [','] + lcPrenume + [','] + lcCod_fiscal + [','] + ;
|
||||
lcReg_comert + [',] + lcId_loc_inreg + [,] + lcId_categ_ent + [,'] + lcPrefix + [','] + lcSufix + [',] + ;
|
||||
lcTip_persoana + [,'] + lcBanca + [','] + lcCont_Banca + [',] + lcinactiv + [,'] + lcMotiv_inactiv + [',] + ;
|
||||
lcId_util + [,'] + lcIdString + [','] + lcCorespDel + [',?@pnIdPart); end;]
|
||||
|
||||
llSucces = goExecutor.oExecuta(m.lcSqlInsert)
|
||||
|
||||
***********************************
|
||||
* Adresa partener
|
||||
***********************************
|
||||
|
||||
lcIdPart = Alltrim(Str(m.pnIdPart))
|
||||
|
||||
lcAdresa = Nvl(Strtran(Alltrim(Upper(toPartener.adresa)), ['], ['']), "")
|
||||
|
||||
lcDenumire_adresa = ""
|
||||
lcDA_apare = "0"
|
||||
lcStrada = ""
|
||||
lcNumar = ""
|
||||
|
||||
lcBloc = ""
|
||||
lcScara = ""
|
||||
lcApart = ""
|
||||
lcEtaj = ""
|
||||
lcId_loc = "NULL"
|
||||
lcLocalitate = ""
|
||||
lcId_Judet = "NULL"
|
||||
lcCodpostal = "NULL"
|
||||
lcId_tara = "NULL"
|
||||
lcTelefon1 = ""
|
||||
lcTelefon2 = ""
|
||||
lcFax = ""
|
||||
lcEmail = ""
|
||||
lcWeb = ""
|
||||
lcPrincipala = Iif(m.pnNrAdrese = 0, "1", "0")
|
||||
lcinactiv = "0"
|
||||
lcId_util = "-3"
|
||||
|
||||
lnItems = Getwordcount(m.lcAdresa, ',')
|
||||
For lnItem = 1 To m.lnItems
|
||||
lcItem = Alltrim(Getwordnum(m.lcAdresa, m.lnItem, ','))
|
||||
Do Case
|
||||
Case m.lnItem = 1 && strada
|
||||
lcStrada = LEFT(Alltrim(m.lcItem), 150)
|
||||
Case 'NR.' $ m.lcItem && nr strada
|
||||
lcNumar = LEFT(Alltrim(Strtran(m.lcItem, 'NR.', '')), 10)
|
||||
Case 'BL.' $ m.lcItem
|
||||
lcBloc = LEFT(Alltrim(Strtran(m.lcItem, 'BL.', '')), 30)
|
||||
Case 'SC.' $ m.lcItem
|
||||
lcScara = LEFT(Alltrim(Strtran(m.lcItem, 'SC.', '')), 10)
|
||||
Case 'ET.' $ m.lcItem
|
||||
lcEtaj = LEFT(Alltrim(Strtran(m.lcItem, 'ET.', '')), 20)
|
||||
Case 'AP.' $ m.lcItem
|
||||
lcApart = LEFT(Alltrim(Strtran(m.lcItem, 'AP.', '')), 10)
|
||||
Case 'COD POSTAL' $ m.lcItem
|
||||
lcCodpostal = ALLTRIM(STR(INT(VAL(LEFT(Alltrim(Strtran(m.lcItem, 'COD POSTAL', '')), 20)))))
|
||||
Case 'LOC.' $ m.lcItem
|
||||
lcLocalitate = Alltrim(Strtran(m.lcItem, 'LOC.', ''))
|
||||
Case 'JUD.' $ m.lcItem
|
||||
lcJudet = Alltrim(Strtran(m.lcItem, 'JUD.', ''))
|
||||
Case m.lnItem = m.lnItems - 1 And Empty(m.lcLocalitate)
|
||||
lcLocalitate = m.lcItem
|
||||
Case m.lnItem = m.lnItems
|
||||
lcTara = m.lcItem
|
||||
Endcase
|
||||
Endfor
|
||||
|
||||
lnIdJudetBucuresti = 10
|
||||
lcJudetBucuresti = "BUCURESTI"
|
||||
lnIdLocalitateBucuresti = 1759
|
||||
lnIdTaraRO = 1
|
||||
|
||||
If m.lcLocalitate = 'BUCURESTI'
|
||||
m.lcLocalitate = 'BUCURESTI SECTORUL 1'
|
||||
Endif
|
||||
If Empty(m.lcLocalitate)
|
||||
lcLocalitate = 'BUCURESTI SECTORUL 1'
|
||||
Endif
|
||||
If Empty(m.lcJudet)
|
||||
lcJudet = m.lcJudetBucuresti
|
||||
ENDIF
|
||||
|
||||
* caut adresa dupa localitate. daca nu o gasesc, o adaug
|
||||
SELECT cAdrese
|
||||
LOCATE FOR id_part = m.pnIdPart AND localitate = m.lcLocalitate
|
||||
IF !FOUND()
|
||||
pnIdJudet = 0
|
||||
lnSucces = goExecutor.oSelect2Value([select j.id_judet, j.id_tara from syn_nom_judete j where j.judet = '] + m.lcJudet + [' and j.inactiv = 0 and j.sters = 0], @pnIdJudet)
|
||||
|
||||
If m.lnSucces > 0
|
||||
IF EMPTY(NVL(m.pnIdJudet,0))
|
||||
lnSucces = goExecutor.oSelect2Value([select j.id_judet, j.id_tara from syn_nom_judete j where j.judet like '%] + m.lcJudetBucuresti + [%' and j.inactiv = 0 and j.sters = 0], @pnIdJudet)
|
||||
IF m.lnSucces > 0
|
||||
lnIdJudet = m.pnIdJudet
|
||||
ELSE
|
||||
lnIdJudet = m.lnIdJudetBucuresti
|
||||
ENDIF
|
||||
ELSE
|
||||
lnIdJudet = m.pnIdJudet
|
||||
ENDIF
|
||||
ELSE
|
||||
This.Trace(goExecutor.cEroare)
|
||||
lnIdJudet = m.lnIdJudetBucuresti
|
||||
ENDIF
|
||||
|
||||
lcSql = [select l.id_loc, l.id_judet, j.id_tara from syn_nom_localitati l left join syn_nom_judete j on l.id_judet = j.id_judet where l.id_judet = ] + ALLTRIM(STR(m.lnIdJudet)) + [ and l.localitate = '] + m.lcLocalitate + [' and l.inactiv = 0 and l.sters = 0 order by l.localitate]
|
||||
lnSucces = goExecutor.oExecute(m.lcSql, 'cLocalitateTemp')
|
||||
If m.lnSucces > 0
|
||||
IF RECCOUNT('cLocalitateTemp') > 0
|
||||
Select cLocalitateTemp
|
||||
Go Top
|
||||
lcId_loc = Alltrim(Str(id_loc))
|
||||
lcId_Judet = Alltrim(Str(id_judet))
|
||||
lcId_tara = Alltrim(Str(id_tara))
|
||||
Use In (Select('cLocalitateTemp'))
|
||||
ELSE
|
||||
Use In (Select('cLocalitateTemp'))
|
||||
lcSql = [select l.id_loc, l.id_judet, j.id_tara from syn_nom_localitati l left join syn_nom_judete j on l.id_judet = j.id_judet where l.id_judet = ] + ALLTRIM(STR(m.lnIdJudet)) + [ and l.inactiv = 0 and l.sters = 0 order by l.localitate]
|
||||
lnSucces = goExecutor.oExecute(m.lcSql, 'cLocalitateTemp')
|
||||
If m.lnSucces > 0
|
||||
Select cLocalitateTemp
|
||||
Go Top
|
||||
lcId_loc = Alltrim(Str(id_loc))
|
||||
lcId_Judet = Alltrim(Str(id_judet))
|
||||
lcId_tara = Alltrim(Str(id_tara))
|
||||
ELSE
|
||||
This.Trace(goExecutor.cEroare)
|
||||
ENDIF
|
||||
Use In (Select('cLocalitateTemp'))
|
||||
ENDIF
|
||||
ELSE
|
||||
This.Trace(goExecutor.cEroare)
|
||||
ENDIF
|
||||
|
||||
IF EMPTY(NVL(m.lcId_loc, ''))
|
||||
lcId_loc = Alltrim(Str(m.lnIdLocalitateBucuresti))
|
||||
lcId_Judet = Alltrim(Str(m.lnIdJudetBucuresti))
|
||||
lcId_tara = Alltrim(Str(m.lnIdTaraRO))
|
||||
Endif && lnSucces
|
||||
|
||||
If m.lcId_loc <> 'NULL'
|
||||
pnIdAdresa = 0
|
||||
*!* * caut adresa dupa localitate. daca nu o gasesc, o adaug
|
||||
*!* lcSql = [SELECT id_adresa FROM adrese_parteneri where sters = 0 and inactiv = 0 and id_loc = ] + m.lcId_loc + [ AND id_part = ] + m.lcIdPart
|
||||
*!* lnSucces = goExecutor.oSelect2Value(m.lcSql, @pnIdAdresa)
|
||||
*!* If m.lnSucces < 0
|
||||
*!* lcMesaj = goExecutor.cEroare
|
||||
*!* Thisform.trace(m.lcMesaj)
|
||||
*!* AMessagebox(m.lcMesaj, 0 + 48, _Screen.Caption )
|
||||
*!* Exit
|
||||
*!* Endif
|
||||
|
||||
If Empty(NVL(m.pnIdAdresa,0))
|
||||
lcSql = [begin pack_def.adauga_adresa_partener2(] + lcIdPart + [,'] + lcDenumire_adresa + [',] + lcDA_apare + [,] + ;
|
||||
['] + lcStrada + [','] + lcNumar + [','] + ;
|
||||
lcBloc + [','] + lcScara + [','] + lcApart + [','] + lcEtaj + [',] + lcId_loc + [,'] + lcLocalitate + [',] + lcId_Judet + [,] + lcCodpostal + [,] + lcId_tara + [,'] + ;
|
||||
lcTelefon1 + [','] + lcTelefon2 + [','] + lcFax + [','] + lcEmail + [','] + lcWeb + [',] + ;
|
||||
lcPrincipala + [,] + lcinactiv + [,] + lcId_util + [,?@pnIdAdresa); end;]
|
||||
|
||||
lnSucces = goExecutor.oExecute(m.lcSql)
|
||||
If m.lnSucces < 0
|
||||
lcMesaj = goExecutor.cEroare
|
||||
Thisform.trace(m.lcMesaj)
|
||||
AMessagebox(m.lcMesaj, 0 + 48, _Screen.Caption )
|
||||
Exit
|
||||
Endif
|
||||
Endif && empty(m.pnIdAdresa)
|
||||
|
||||
Endif && m.lcId_loc <> 'NULL'
|
||||
ENDIF && !found()
|
||||
|
||||
ENDPROC && Adauga_partener
|
||||
|
||||
850
COMUN/programe/oproceduri_rapoarte_fact.prg
Normal file
850
COMUN/programe/oproceduri_rapoarte_fact.prg
Normal file
@@ -0,0 +1,850 @@
|
||||
***************************************************************************************************************
|
||||
**** Clasa:
|
||||
**** oDateListare
|
||||
**** Proceduri:
|
||||
**** rap_avize
|
||||
**** rap_facturi
|
||||
**** rap_incasari
|
||||
**** rap_articole
|
||||
**** rap_articole_tr
|
||||
**** rap_avize_transfer
|
||||
**** rap_centralizator
|
||||
**** rap_centr_subgrupe
|
||||
***************************************************************************************************************
|
||||
Define Class oDateListare As Custom
|
||||
datai = {}
|
||||
dataf = {}
|
||||
data_referinta = {}
|
||||
csql = []
|
||||
id_client = Null
|
||||
nume_client = []
|
||||
id_agent = Null
|
||||
nume_agent = []
|
||||
id_delegat = Null
|
||||
nume_delegat = []
|
||||
id_masina = Null
|
||||
nrinmat = []
|
||||
categorie = []
|
||||
id_categorie_entitate = Null
|
||||
denumire = []
|
||||
id_articol = Null
|
||||
grupa = []
|
||||
id_grupa = Null
|
||||
subgrupa = []
|
||||
id_subgrupa = Null
|
||||
id_gestiune_sursa = Null
|
||||
gestiune_sursa = []
|
||||
id_gestiune_dest = Null
|
||||
gestiune_dest = []
|
||||
id_util = Null
|
||||
utilizator = []
|
||||
id_gestiune = Null
|
||||
nume_gestiune = []
|
||||
subgr_art = []
|
||||
id_furnart = Null
|
||||
furnizor_art = []
|
||||
*!* tip_raport = 1
|
||||
*!* Dimension acoloane(30,4) && 1 - nume_camp
|
||||
*!* && 2 - ordine la grupare
|
||||
*!* && 3 - ordine la order by
|
||||
*!* && 4 - sens la order by ( 1 - ASC, 2 - DESC )
|
||||
Procedure Init
|
||||
With This
|
||||
ldData = Ttod(get_ora())
|
||||
If Year(ldData) * 12 + Month(ldData) <> gnAn * 12 + gnLuna
|
||||
.datai = Date(gnAn, gnLuna, 1)
|
||||
.dataf = Gomonth(Date(gnAn, gnLuna, 1), 1) - 1
|
||||
.data_referinta = .dataf
|
||||
Else
|
||||
.dataf = ldData
|
||||
.data_referinta = ldData
|
||||
.datai = Date(Year(ldData), Month(ldData), 1)
|
||||
Endif
|
||||
Endwith
|
||||
Endproc
|
||||
|
||||
Enddefine
|
||||
***************************************************************************************************************
|
||||
********************************************** INCEPUT: rap_avize *********************************************
|
||||
Procedure rap_avize
|
||||
Private poListare
|
||||
poListare = Createobject("oDateListare")
|
||||
ofrmdatelistare = Createobject("frm_date_rapoarte_avize")
|
||||
ofrmdatelistare.Show(1)
|
||||
Release poListare, ofrmdatelistare
|
||||
Endproc && rap_avize
|
||||
********************************************** SFARSIT: rap_avize *********************************************
|
||||
********************************************* INCEPUT: rap_facturi ********************************************
|
||||
Procedure rap_facturi
|
||||
Private poListare
|
||||
poListare = Createobject("oDateListare")
|
||||
ofrmdatelistare = Createobject("frm_date_rapoarte_facturi")
|
||||
ofrmdatelistare.Show(1)
|
||||
Release poListare, ofrmdatelistare
|
||||
Endproc && rap_facturi
|
||||
********************************************** SFARSIT: rap_facturi *******************************************
|
||||
******************************************** INCEPUT: rap_incasari ********************************************
|
||||
Procedure rap_incasari
|
||||
Private poListare
|
||||
poListare = Createobject("oDateListare")
|
||||
ofrmdatelistare = Createobject("frm_date_rapoarte_incasari")
|
||||
ofrmdatelistare.Show(1)
|
||||
Release poListare, ofrmdatelistare
|
||||
Endproc && rap_incasari
|
||||
******************************************** SFARSIT: rap_incasari ********************************************
|
||||
******************************************** INCEPUT: rap_articole ********************************************
|
||||
Procedure rap_articole
|
||||
Private poListare
|
||||
poListare = Createobject("oDateListare")
|
||||
ofrmdatelistare = Createobject("frm_date_rapoarte_articole")
|
||||
ofrmdatelistare.Show(1)
|
||||
Release poListare, ofrmdatelistare
|
||||
Endproc && rap_articole
|
||||
******************************************** SFARSIT: rap_articole ********************************************
|
||||
******************************************** INCEPUT: rap_articole_tr ********************************************
|
||||
Procedure rap_articole_tr
|
||||
Private poListare
|
||||
poListare = Createobject("oDateListare")
|
||||
ofrmdatelistare = Createobject("frm_date_rapoarte_articole_tr")
|
||||
ofrmdatelistare.Show(1)
|
||||
Release poListare, ofrmdatelistare
|
||||
Endproc && rap_articole_tr
|
||||
******************************************** SFARSIT: rap_articole_tr ********************************************
|
||||
******************************************** INCEPUT: rap_articole_v ********************************************
|
||||
Procedure rap_articole_v
|
||||
Private poListare
|
||||
poListare = Createobject("oDateListare")
|
||||
ofrmdatelistare = Createobject("frm_date_rapoarte_articole_v")
|
||||
ofrmdatelistare.Show(1)
|
||||
Release poListare, ofrmdatelistare
|
||||
Endproc && rap_articole_tr
|
||||
******************************************** SFARSIT: rap_articole_v ********************************************
|
||||
***************************************** INCEPUT: rap_avize_transfer *****************************************
|
||||
Procedure rap_avize_transfer
|
||||
Private poListare
|
||||
poListare = Createobject("oDateListare")
|
||||
ofrmdatelistare = Createobject("frm_date_rapoarte_avize_tr")
|
||||
ofrmdatelistare.Show(1)
|
||||
Release poListare, ofrmdatelistare
|
||||
Endproc && rap_avize_transfer
|
||||
***************************************** SFARSIT: rap_avize_transfer *****************************************
|
||||
***************************************** INCEPUT: rap_centralizator ******************************************
|
||||
Procedure rap_centralizator
|
||||
Private pcDataora, pcPerioada, pdDataI, pdDataF, pnTotalFTva1, pnTotalTva1, pnTotalFTva2, pnTotalTva2
|
||||
Store {} To pdDataI, pdDataF
|
||||
Store 0 To pnTotalFaraTva1, pnTotalTva1, pnTotalFaraTva2, pnTotalTva2
|
||||
Local lcOrder, lcSql, lcFiltru, lnSucces, lnNefacturatFTva, lnNefacturatTva
|
||||
|
||||
ofrmperioada = Createobject('frm_perioada_zzllaaaa')
|
||||
ofrmperioada.Show(1)
|
||||
If gnButon = 2
|
||||
Return
|
||||
Endif
|
||||
|
||||
pcPerioada = [Perioada ] + Dtoc(pdDataI) + [ - ] + Dtoc(pdDataF)
|
||||
|
||||
Create Cursor crsCentralizator(tip N(2), categorie c(100), valftva N(20, Max(gnPC, 4)), valtva N(20, Max(gnPC, 4)))
|
||||
*!* tip = 1 >> nu afiseaza sumele
|
||||
pcDataora = get_ora(2)
|
||||
|
||||
If Used('crsCentrTot')
|
||||
Use In crsCentrTot
|
||||
Endif
|
||||
lcSql1 = [select 1 as crs,tip,SUM(suma_fara_tva) as valftva,SUM(suma_tva) as valtva from ] + ;
|
||||
gcS + [.fact_vrap_centralizator_tipuri where data_act between ?pdDataI and ?pdDataF] + gcCondSucursala + ;
|
||||
[ group by tip]
|
||||
lcSql2 = [select 2 as crs,null as tip,SUM(suma_fara_tva) as valftva,SUM(suma_tva) as valtva from ] + ;
|
||||
gcS + [.fact_vrap_centralizator_art where data_act between ?pdDataI and ?pdDataF] + gcCondSucursala
|
||||
lcSql3 = [select 3 as crs,null as tip,SUM(suma_fara_tva) as valftva,SUM(suma_tva) as valtva from ] + ;
|
||||
gcS + [.fact_vrap_centralizator_rate where data_act between ?pdDataI and ?pdDataF] + gcCondSucursala
|
||||
lcSql4 = [select 4 as crs,null as tip,SUM(disc_fara_tva) as valftva,SUM(disc_tva) as valtva from ] + ;
|
||||
gcS + [.fact_vrap_centralizator_fact where data_act between ?pdDataI and ?pdDataF] + gcCondSucursala
|
||||
lcSql = lcSql1 + [ union all ] + lcSql2 + [ union all ] + lcSql3 + [ union all ] + lcSql4
|
||||
lcCursor = [crsCentrTot]
|
||||
lnSucces = goExecutor.oexecute(lcSql, lcCursor)
|
||||
If lnSucces < 0
|
||||
amessagebox(goExecutor.oPrelucrareEroare(), 16, "Eroare")
|
||||
Use In crsCentrTot
|
||||
Return
|
||||
Endif
|
||||
|
||||
*** prelucrare raport
|
||||
*!* Facturi
|
||||
Select crsCentralizator
|
||||
Append Blank
|
||||
Replace categorie With "1. FACTURI"
|
||||
Select Sum(valftva) As valftva, Sum(valtva) As valtva From crsCentrTot Where tip < 20 And crs = 1 Into Cursor crsTemp
|
||||
Select crsTemp
|
||||
Scatter Name poCentr
|
||||
Select crsCentralizator
|
||||
Replace valftva With Nvl(poCentr.valftva, 0), valtva With Nvl(poCentr.valtva, 0)
|
||||
pnTotalFTva1 = Nvl(poCentr.valftva, 0)
|
||||
pnTotalTva1 = Nvl(poCentr.valtva, 0)
|
||||
|
||||
*!* Avize catre clienti
|
||||
Select crsCentralizator
|
||||
Append Blank
|
||||
Replace categorie With "2. AVIZE CATRE CLIENTI", tip With 1
|
||||
|
||||
*!* Valoare totala
|
||||
Append Blank
|
||||
Replace categorie With Space(5) + "a) Valoare totala"
|
||||
Select Sum(valftva) As valftva, Sum(valtva) As valtva From crsCentrTot Where Inlist(tip, 21, 22) And crs = 1 Into Cursor crsTemp
|
||||
Select crsTemp
|
||||
Scatter Name poCentr
|
||||
Select crsCentralizator
|
||||
Replace valftva With Nvl(poCentr.valftva, 0), valtva With Nvl(poCentr.valtva, 0)
|
||||
lnNefacturatFTva = Nvl(poCentr.valftva, 0)
|
||||
lnNefacturatTva = Nvl(poCentr.valtva, 0)
|
||||
|
||||
*!* Valoare facturata
|
||||
Append Blank
|
||||
Replace categorie With Space(5) + "b) Valoare facturata"
|
||||
Select Sum(valftva) As valftva, Sum(valtva) As valtva From crsCentrTot Where tip = 4 And crs = 1 Into Cursor crsTemp
|
||||
Select crsTemp
|
||||
Scatter Name poCentr
|
||||
Select crsCentralizator
|
||||
Replace valftva With Nvl(poCentr.valftva, 0), valtva With Nvl(poCentr.valtva, 0)
|
||||
lnNefacturatFTva = lnNefacturatFTva - Nvl(poCentr.valftva, 0)
|
||||
lnNefacturatTva = lnNefacturatTva - Nvl(poCentr.valtva, 0)
|
||||
|
||||
*!* Valoare retururi
|
||||
Append Blank
|
||||
Replace categorie With Space(5) + "c) Valoare retururi"
|
||||
Select Sum(valftva) As valftva, Sum(valtva) As valtva From crsCentrTot Where tip = 24 And crs = 1 Into Cursor crsTemp
|
||||
Select crsTemp
|
||||
Scatter Name poCentr
|
||||
Select crsCentralizator
|
||||
Replace valftva With Nvl(poCentr.valftva, 0), valtva With Nvl(poCentr.valtva, 0)
|
||||
lnNefacturatFTva = lnNefacturatFTva + Nvl(poCentr.valftva, 0)
|
||||
lnNefacturatTva = lnNefacturatTva + Nvl(poCentr.valtva, 0)
|
||||
|
||||
*!* Valoare nefacturata
|
||||
Append Blank
|
||||
Replace categorie With Space(5) + "d) Valoare nefacturata (a-b+c)"
|
||||
Replace valftva With lnNefacturatFTva, valtva With lnNefacturatTva
|
||||
pnTotalFTva1 = pnTotalFTva1 + lnNefacturatFTva
|
||||
pnTotalTva1 = pnTotalTva1 + lnNefacturatTva
|
||||
|
||||
*!* Transferuri intre subunitati
|
||||
Select crsCentralizator
|
||||
Append Blank
|
||||
Replace categorie With "3. TRANSFERURI INTRE SUBUNITATI"
|
||||
Select Sum(valftva) As valftva, Sum(valtva) As valtva From crsCentrTot Where tip = 23 And crs = 1 Into Cursor crsTemp
|
||||
Select crsTemp
|
||||
Scatter Name poCentr
|
||||
Select crsCentralizator
|
||||
Replace valftva With Nvl(poCentr.valftva, 0), valtva With Nvl(poCentr.valtva, 0)
|
||||
pnTotalFTva1 = pnTotalFTva1 + Nvl(poCentr.valftva, 0)
|
||||
pnTotalTva1 = pnTotalTva1 + Nvl(poCentr.valtva, 0)
|
||||
|
||||
*!* Articole
|
||||
Select crsCentralizator
|
||||
Append Blank
|
||||
Replace categorie With "4. TOTAL ARTICOLE VANDUTE"
|
||||
Select crsCentrTot
|
||||
Locate For crs = 2
|
||||
Scatter Name poCentr
|
||||
Select crsCentralizator
|
||||
Replace valftva With Nvl(poCentr.valftva, 0), valtva With Nvl(poCentr.valtva, 0)
|
||||
pnTotalFTva2 = Nvl(poCentr.valftva, 0)
|
||||
pnTotalTva2 = Nvl(poCentr.valtva, 0)
|
||||
|
||||
*!* Articole
|
||||
Select crsCentralizator
|
||||
Append Blank
|
||||
Replace categorie With "5. TOTAL RATE CONTRACTE"
|
||||
Select crsCentrTot
|
||||
Locate For crs = 3
|
||||
Scatter Name poCentr
|
||||
Select crsCentralizator
|
||||
Replace valftva With Nvl(poCentr.valftva, 0), valtva With Nvl(poCentr.valtva, 0)
|
||||
pnTotalFTva2 = pnTotalFTva2 + Nvl(poCentr.valftva, 0)
|
||||
pnTotalTva2 = pnTotalTva2 + Nvl(poCentr.valtva, 0)
|
||||
|
||||
*!* Discount-uri globale
|
||||
Select crsCentralizator
|
||||
Append Blank
|
||||
Replace categorie With "6. TOTAL DISCOUNT GLOBAL"
|
||||
Select crsCentrTot
|
||||
Locate For crs = 4
|
||||
Scatter Name poCentr
|
||||
Select crsCentralizator
|
||||
Replace valftva With Nvl(poCentr.valftva, 0), valtva With Nvl(poCentr.valtva, 0)
|
||||
pnTotalFTva2 = pnTotalFTva2 - Nvl(poCentr.valftva, 0)
|
||||
pnTotalTva2 = pnTotalTva2 - Nvl(poCentr.valtva, 0)
|
||||
|
||||
Release poCentr
|
||||
Use In crsTemp
|
||||
|
||||
If Used('crsCentrTot')
|
||||
Use In crsCentrTot
|
||||
Endif
|
||||
|
||||
If Reccount('crsCentralizator') > 0
|
||||
Keyboard "{ctrl+f10}"
|
||||
Select crsCentralizator
|
||||
Report Form raport_centralizator To Printer Prompt Preview
|
||||
Else
|
||||
amessagebox("Nu exista inregistrari pentru listare!", 0 + 48, "Atentie")
|
||||
Endif
|
||||
|
||||
If Used('crsCentralizator')
|
||||
Use In crsCentralizator
|
||||
Endif
|
||||
|
||||
Release pcDataora, pcPerioada, pdDataI, pdDataF, pnTotalFTva1, pnTotalTva1, pnTotalFTva2, pnTotalTva2
|
||||
Endproc && rap_centralizator
|
||||
***************************************** SFARSIT: rap_centralizator ******************************************
|
||||
***************************************** INCEPUT: rap_centr_subgrupe *****************************************
|
||||
Procedure rap_centr_subgrupe
|
||||
Local lcSql, lnSucces, lcCursor
|
||||
Private pcDataora, pcPerioada, pdDataI, pdDataF, pcTitlu
|
||||
Store {} To pdDataI, pdDataF
|
||||
lcCursor = [crscentrsubgr]
|
||||
|
||||
ofrmperioada = Createobject('frm_perioada_zzllaaaa')
|
||||
ofrmperioada.Show(1)
|
||||
If gnButon = 1
|
||||
pcPerioada = [Perioada ] + Dtoc(pdDataI) + [ - ] + Dtoc(pdDataF)
|
||||
Else
|
||||
Return
|
||||
Endif
|
||||
|
||||
lcXMLGestiune = caut_gestiune_xml(2)
|
||||
If !Empty(lcXMLGestiune) And gnButon = 1
|
||||
Xmltocursor(lcXMLGestiune, "crsGestTemp")
|
||||
If Reccount('crsGestTemp') = 0
|
||||
amessagebox('Nu ati selectat nici o gestiune!', 0 + 48, 'Inventar')
|
||||
Return
|
||||
Endif
|
||||
pcTitlu = [CENTRALIZATOR VALORI PE SUBGRUPE DE ARTICOLE]
|
||||
lcListaIdGestiuni = cursor2lista("crsGestTemp", "id_gestiune", ",")
|
||||
Use In crsGestTemp
|
||||
Else
|
||||
Return
|
||||
Endif
|
||||
|
||||
If Used(lcCursor)
|
||||
Use In (lcCursor)
|
||||
Endif
|
||||
lcSql = [select subgrupa,nume_gestiune,id_gestiune,Sum(val_ach) as val_ach,Sum(val_vanz) as val_vanz from ] + gcS + [.fact_vcentr_val_subgrupe ] + ;
|
||||
[where data_act between ?pdDataI and ?pdDataF and id_gestiune in (] + lcListaIdGestiuni + [) ] + ;
|
||||
[group by id_gestiune,nume_gestiune,subgrupa ] + ;
|
||||
[order by nume_gestiune,subgrupa]
|
||||
lnSucces = goExecutor.oexecute(lcSql, lcCursor)
|
||||
If lnSucces < 0
|
||||
amessagebox(goExecutor.cEroare, 16, "Eroare")
|
||||
Else
|
||||
goExport.export2frx(lcCursor, [rap_centr_val_subgrupe]) && , , , , , , .T.)
|
||||
Endif
|
||||
If Used(lcCursor)
|
||||
Use In (lcCursor)
|
||||
Endif
|
||||
|
||||
Release lcSql, lnSucces, pcDataora, pcPerioada, pdDataI, pdDataF, pcTitlu
|
||||
Endproc && rap_centr_subgrupe
|
||||
***************************************** SFARSIT: rap_centr_subgrupe *****************************************
|
||||
Procedure centr_avize_ruta
|
||||
|
||||
|
||||
lcFiltru = [2=2]
|
||||
lcSchema = [id_lucrare n(10),nrord c(100)]
|
||||
lcOrder = [nrord]
|
||||
lccoloane = [nrord]
|
||||
lcTitlu = [ALEGETI LUCRAREA]
|
||||
lcTitluColoane = [Lucrare]
|
||||
*!* llMaiMulteMasini = tlMaiMulteMasini
|
||||
lcSelect = [select id_lucrare,nrord from vnom_lucrari]
|
||||
lcFiltruOriginal = [inactiv = 0]
|
||||
*!* lcNumeProc = [nom_nomrute]
|
||||
llToateIreg = .F.
|
||||
lcPrimaColoana = [nrord]
|
||||
lnPornire = 1
|
||||
*!* lnTipReturn = Iif(tlMaiMulteMasini, 1, 0)
|
||||
lcIdColumn = "id_lucrare"
|
||||
loCauta = cauta_alfa(lcSelect, lcFiltru, lcSchema, lcOrder, lccoloane, lcTitlu, lcTitluColoane, , llToateIreg, lcFiltruOriginal)&&, lcPrimaColoana, lnPornire, , lcIdColumn)
|
||||
*!* loCauta = cauta_alfa(lcSelect, lcFiltru, lcSchema, lcOrder, lccoloane, lcTitlu, lcTitluColoane, lcNumeProc, tlToateIreg, lcFiltruOriginal) && 11.07.2007
|
||||
|
||||
|
||||
If Empty(loCauta.id_lucrare) Or Isnull(loCauta.id_lucrare)
|
||||
Return
|
||||
Endif
|
||||
|
||||
|
||||
|
||||
lcSql = [ select * from fact_vrap_avize_ruta where id_lucrare = ] + Alltrim(Str(loCauta.id_lucrare)) + [ order by ruta,data_act,numar_act]
|
||||
lcCursor = [crsavizeruta]
|
||||
lnSucces = goExecutor.oexecute(lcSql, lcCursor)
|
||||
If lnSucces < 0
|
||||
amessagebox(goExecutor.oPrelucrareEroare(), 16, "Eroare")
|
||||
Use In crsavizeruta
|
||||
Return
|
||||
Endif
|
||||
Select crsavizeruta
|
||||
If Reccount() < 1
|
||||
amessagebox('Nu exista date pentru comanda selectata!', 0 + 64, 'Atentie')
|
||||
Use In crsavizeruta
|
||||
|
||||
Return
|
||||
Endif
|
||||
Private pcDataora
|
||||
pcDataora = get_ora(2)
|
||||
Select crsavizeruta
|
||||
Report Form rap_avizerute To Printer Prompt Preview
|
||||
|
||||
Use In crsavizeruta
|
||||
Endproc
|
||||
|
||||
|
||||
*-------------------------------------------------------------------------------
|
||||
|
||||
Procedure centr_art_ruta
|
||||
|
||||
|
||||
lcFiltru = [2=2]
|
||||
lcSchema = [id_lucrare n(10),nrord c(100)]
|
||||
lcOrder = [nrord]
|
||||
lccoloane = [nrord]
|
||||
lcTitlu = [ALEGETI LUCRAREA]
|
||||
lcTitluColoane = [Lucrare]
|
||||
*!* llMaiMulteMasini = tlMaiMulteMasini
|
||||
lcSelect = [select id_lucrare,nrord from vnom_lucrari]
|
||||
lcFiltruOriginal = [inactiv = 0]
|
||||
*!* lcNumeProc = [nom_nomrute]
|
||||
llToateIreg = .F.
|
||||
lcPrimaColoana = [nrord]
|
||||
lnPornire = 1
|
||||
*!* lnTipReturn = Iif(tlMaiMulteMasini, 1, 0)
|
||||
lcIdColumn = "id_lucrare"
|
||||
loCauta = cauta_alfa(lcSelect, lcFiltru, lcSchema, lcOrder, lccoloane, lcTitlu, lcTitluColoane, , llToateIreg, lcFiltruOriginal)&&, lcPrimaColoana, lnPornire, , lcIdColumn)
|
||||
*!* loCauta = cauta_alfa(lcSelect, lcFiltru, lcSchema, lcOrder, lccoloane, lcTitlu, lcTitluColoane, lcNumeProc, tlToateIreg, lcFiltruOriginal) && 11.07.2007
|
||||
|
||||
|
||||
If Empty(loCauta.id_lucrare) Or Isnull(loCauta.id_lucrare)
|
||||
Return
|
||||
Endif
|
||||
|
||||
|
||||
|
||||
lcSql = [ select * from fact_vrap_art_ruta where id_lucrare = ] + Alltrim(Str(loCauta.id_lucrare)) + [ order by ruta,subgrupa,denumire]
|
||||
lcCursor = [crsartruta]
|
||||
lnSucces = goExecutor.oexecute(lcSql, lcCursor)
|
||||
If lnSucces < 0
|
||||
amessagebox(goExecutor.oPrelucrareEroare(), 16, "Eroare")
|
||||
Use In crsartruta
|
||||
Return
|
||||
Endif
|
||||
Select crsartruta
|
||||
If Reccount() < 1
|
||||
amessagebox('Nu exista date pentru comanda selectata!', 0 + 64, 'Atentie')
|
||||
Use In crsartruta
|
||||
|
||||
Return
|
||||
Endif
|
||||
Private pcDataora
|
||||
pcDataora = get_ora(2)
|
||||
Select crsartruta
|
||||
Report Form rap_ARTrute To Printer Prompt Preview
|
||||
|
||||
Use In crsartruta
|
||||
Endproc
|
||||
|
||||
*---------------------------------------------------------------------------
|
||||
Procedure rap_factav_doc && lansat din rap_listfactav_centr, lansat la randul lui din frm_facturi (ofacturare.vcx)
|
||||
Local lnNrIreg, lcFiltruInit, lnRecSel
|
||||
Store 0 To lnNrIreg, lnRecSel
|
||||
Store '' To lcFiltruInit
|
||||
|
||||
Select crsfacturi
|
||||
lcFiltruInit = Set("Filter")
|
||||
lnRecSel = Recno()
|
||||
Set Filter To ales = 1
|
||||
|
||||
Count For ales = 1 To lnNrIreg
|
||||
*!* modificare v 2.0.40
|
||||
*!* If Reccount() <1
|
||||
If lnNrIreg < 1
|
||||
*!* modificare v 2.0.40 ^
|
||||
amessagebox('Nu ati selectat vreun document!', 0 + 48, 'Atentie')
|
||||
*!* modificare v 2.0.40
|
||||
*!* Return
|
||||
*!* EndIf
|
||||
Else
|
||||
*!* modificare v 2.0.40 ^
|
||||
Private pcDataora
|
||||
pcDataora = get_ora(2)
|
||||
Select crsfacturi
|
||||
Report Form rap_avizedoc To Printer Prompt Preview
|
||||
*!* modificare v 2.0.40
|
||||
Endif
|
||||
*!* modificare v 2.0.40 ^
|
||||
Select crsfacturi
|
||||
Set Filter To &lcFiltruInit
|
||||
If lnRecSel > 0
|
||||
Goto lnRecSel
|
||||
Endif
|
||||
Endproc
|
||||
*---------------------------------------------------------------------------
|
||||
Procedure rap_factav_grupate_doc && lansat din rap_listfactav_centr, lansat la randul lui din frm_facturi (ofacturare.vcx)
|
||||
Local lnNrIreg, lcFiltruInit, lnRecSel
|
||||
Store 0 To lnNrIreg, lnRecSel
|
||||
Store '' To lcFiltruInit
|
||||
|
||||
Select crsfacturi
|
||||
lcFiltruInit = Set("Filter")
|
||||
lnRecSel = Recno()
|
||||
Set Filter To ales = 1
|
||||
|
||||
Count For ales = 1 To lnNrIreg
|
||||
*!* modificare v 2.0.40
|
||||
*!* If Reccount() <1
|
||||
If lnNrIreg < 1
|
||||
*!* modificare v 2.0.40 ^
|
||||
amessagebox('Nu ati selectat vreun document!', 0 + 48, 'Atentie')
|
||||
*!* modificare v 2.0.40
|
||||
*!* Return
|
||||
*!* EndIf
|
||||
Else
|
||||
*!* modificare v 2.0.40 ^
|
||||
Private pcDataora
|
||||
pcDataora = get_ora(2)
|
||||
Select crsfacturi
|
||||
*!* modificare v 2.0.63
|
||||
If Used('crsdocgrup')
|
||||
Use In crsdocgrup
|
||||
Endif
|
||||
Select client, numar_act, data_act, valoarea, total_cu_tva, ;
|
||||
PADR(Iif(Inlist(tip, 1, 2, 3, 4, 5, 6, 8, 9, 10, -1, -2, -3, -4, -8, -11), 'FACTURI', ;
|
||||
IIF(Inlist(tip, 21, 22, 24, 26, -7, -13), 'AVIZE CATRE CLIENTI', ;
|
||||
IIF(Inlist(tip, 23, 25, 27, 30, 41, -6), 'TRANSFERURI', ;
|
||||
IIF(Inlist(tip, 28, 29), 'AVIZE CATRE CLIENTI DEBITORI', ;
|
||||
IIF(Inlist(tip, -9), 'AVIZE DE PROTOCOL', ;
|
||||
IIF(Inlist(tip, -10), 'AVIZE DE SPONSORIZARI', ;
|
||||
IIF(Inlist(tip, 7), 'CREDIT NOTE', ;
|
||||
IIF(Inlist(tip, 42, 47), 'CLIENTI IN CUSTODIE - COMANDA', ;
|
||||
IIF(Inlist(tip, 43), 'BONURI FISCALE MAGAZINE', '<FARA TIP>'))))))))), 70, ' ') As explicatie ;
|
||||
FROM crsfacturi ;
|
||||
ORDER By 6, 1, 3 ;
|
||||
INTO Cursor crsdocgrup
|
||||
|
||||
Report Form rap_avizedoc_grup To Printer Prompt Preview
|
||||
Use In crsdocgrup
|
||||
*!* modificare v 2.0.63 ^
|
||||
|
||||
*!* modificare v 2.0.40
|
||||
Endif
|
||||
*!* modificare v 2.0.40 ^
|
||||
Select crsfacturi
|
||||
Set Filter To &lcFiltruInit
|
||||
If lnRecSel > 0
|
||||
Goto lnRecSel
|
||||
Endif
|
||||
Endproc
|
||||
*---------------------------------------------------------------------------
|
||||
Procedure rap_factav_art && lansat din rap_listfactav_centr, lansat la randul lui din frm_facturi (ofacturare.vcx)
|
||||
Local lcidvanzari, lcSql, lnSucces
|
||||
Store '' To lcidvanzari
|
||||
Local lnNrIreg, lcFiltruInit, lnRecSel
|
||||
Store 0 To lnNrIreg, lnRecSel
|
||||
Store '' To lcFiltruInit
|
||||
|
||||
Select crsfacturi
|
||||
lcFiltruInit = Set("Filter")
|
||||
lnRecSel = Recno()
|
||||
Set Filter To ales = 1
|
||||
|
||||
Count For ales = 1 To lnNrIreg
|
||||
*!* modificare v 2.0.40
|
||||
*!* If Reccount() <1
|
||||
If lnNrIreg < 1
|
||||
*!* modificare v 2.0.40 ^
|
||||
amessagebox('Nu ati selectat vreun document!', 0 + 48, 'Atentie')
|
||||
*!* modificare v 2.0.40
|
||||
*!* Return
|
||||
*!* EndIf
|
||||
Else
|
||||
*!* modificare v 2.0.40
|
||||
Select crsfacturi
|
||||
Scan
|
||||
lcidvanzari = lcidvanzari + [, ] + Alltrim(Str(crsfacturi .id_vanzare))
|
||||
Select crsfacturi
|
||||
Endscan
|
||||
lcidvanzari = Substr(lcidvanzari, 2)
|
||||
*!* modificare v 2.0.83
|
||||
*!* lcSql = [select a.codmat,a.denumire,a.pret_achizitie,a.pret,a.subgrupa,sum(cantitate) as cantitate from fact_vfacturi_detalii a ]+;
|
||||
*!* [ where a.id_vanzare in (]+Alltrim(lcidvanzari)+[)]+;
|
||||
*!* [ group by a.codmat,a.denumire,a.pret_achizitie,a.pret,a.subgrupa]+;
|
||||
*!* [ order by a.codmat, a.denumire ]
|
||||
lcSql = [select d.codmat,NVL(d.denumire, a.explicatie) as denumire,a.pret_achizitie,] + ;
|
||||
[sum(round(a.cantitate*a.pret_achizitie,?gnPc)) as valoare_achizitie,] + ;
|
||||
[pack_sesiune.calculeaza_pret_cu_tva(a.pret,nvl(c.curs,1)/NVL(c.multiplicator,1),a.id_valuta,a.proc_tvav,a.pret_cu_tva,2) as pretvtva,] + ;
|
||||
[sum(pack_sesiune.calculeaza_total_cu_tva(a.pret,a.diferenta,nvl(c.curs,1)/NVL(c.multiplicator,1),a.discount_unitar,b.discount_evidentiat,a.cantitate,a.pret_cu_tva,a.proc_tvav,?gnPPretV,?gnPC)) as valoarevtva,] + ;
|
||||
[e.subgrupa,sum(a.cantitate) as cantitate ] + ;
|
||||
[from vanzari_detalii a ] + ;
|
||||
[left join vanzari b on a.id_vanzare = b.id_vanzare ] + ;
|
||||
[left join vanzari_cursuri c on a.id_vanzare = c.id_vanzare and a.id_valuta = c.id_valuta ] + ;
|
||||
[left join nom_articole d on a.id_articol = d.id_articol ] + ;
|
||||
[left join gest_art_sbgr e on d.id_subgrupa = e.id_subgrupa ] + ;
|
||||
[where a.sters = 0 and a.id_vanzare in (] + Alltrim(lcidvanzari) + [) ] + ;
|
||||
[group by NVL(d.denumire, a.explicatie),d.codmat,a.pret_achizitie,e.subgrupa,a.pret,nvl(c.curs,1),NVL(c.multiplicator,1),a.id_valuta,a.proc_tvav,a.pret_cu_Tva ] + ;
|
||||
[order by e.subgrupa,NVL(d.denumire, a.explicatie) ]
|
||||
*!* modificare v 2.0.83 ^
|
||||
lnSucces = goExecutor.oexecute(lcSql, 'crsfactdetaliiartrap')
|
||||
If lnSucces < 0
|
||||
amessagebox(goExecutor.cEroare, 0 + 16, "Eroare")
|
||||
*!* modificare v 2.0.40
|
||||
*!* Return
|
||||
*!* Endif
|
||||
Else
|
||||
*!* modificare v 2.0.40 ^
|
||||
Private pcDataora
|
||||
pcDataora = get_ora(2)
|
||||
Select crsfactdetaliiartrap
|
||||
Report Form rap_artdoc To Printer Prompt Preview
|
||||
*!* modificare v 2.0.40
|
||||
Endif
|
||||
Endif
|
||||
*!* modificare v 2.0.40 ^
|
||||
Select crsfacturi
|
||||
Set Filter To &lcFiltruInit
|
||||
If lnRecSel > 0
|
||||
Goto lnRecSel
|
||||
Endif
|
||||
Endproc
|
||||
*---------------------------------------------------------------------------
|
||||
Procedure rap_borderou_ar
|
||||
Local lcCursor, lcCursorAdrese
|
||||
lcCursor = [crsARClienti]
|
||||
lcCursorAdrese = [crsARAdresePart]
|
||||
lcCursorFirma = [crsARDateFirma]
|
||||
Select a.client, a.id_part, Space(255) As loc_judet From crsfacturi a With (Buffering = .T.) ;
|
||||
Where ales = 1 Order By 1 Into Cursor (lcCursor) NOFILTER Readwrite
|
||||
If Reccount(lcCursor) < 1
|
||||
amessagebox('Nu ati selectat nici un document!', 0 + 48, 'Atentie')
|
||||
Else
|
||||
lcSql = [select antet as denumire,adresa,telefon from syn_nom_firme where id_firma = ?gnIdFirma]
|
||||
If goExecutor.oExecuta(lcSql, lcCursorFirma)
|
||||
Private poFirma
|
||||
Select (lcCursorFirma)
|
||||
Scatter Name poFirma
|
||||
|
||||
Select (lcCursor)
|
||||
lcListaId = []
|
||||
Scan For !Isnull(id_part)
|
||||
lcListaId = lcListaId + [,] + Alltrim(Str(id_part))
|
||||
Endscan
|
||||
|
||||
lcSql = [select distinct id_part,localitate||nvl2(judet,' ('||judet||')','') as loc_judet from vadrese_parteneri ] + ;
|
||||
[where id_part in (] + Substr(lcListaId, 2) + [) and principala = 1]
|
||||
If goExecutor.oExecuta(lcSql, lcCursorAdrese)
|
||||
Select (lcCursorAdrese)
|
||||
Scan For !Isnull(loc_judet)
|
||||
lcLocJudet = loc_judet
|
||||
lnIdPart = id_part
|
||||
Update (lcCursor) Set loc_judet = lcLocJudet Where id_part = lnIdPart
|
||||
Endscan
|
||||
goExport.export2frx(lcCursor, [borderou_ar], , , , , , .T.)
|
||||
Endif
|
||||
Use In (Select(lcCursorAdrese))
|
||||
Endif
|
||||
Use In (Select(lcCursorFirma))
|
||||
Endif
|
||||
Use In (Select(lcCursor))
|
||||
Endproc
|
||||
*---------------------------------------------------------------------------
|
||||
Procedure rap_factav_docart && lansat din rap_listfactav_centr, lansat la randul lui din frm_facturi (ofacturare.vcx)
|
||||
|
||||
Select a.*, 1 As g1 From crsfacturi a With (Buffering = .T.) Where ales = 1 Into Cursor crsDocArt NOFILTER Readwrite
|
||||
Select crsDocArt
|
||||
If Reccount() < 1
|
||||
amessagebox('Nu ati selectat nici un document!', 0 + 48, 'Atentie')
|
||||
*!* modificare v 2.0.40
|
||||
*!* Return
|
||||
*!* EndIf
|
||||
Else
|
||||
*!* modificare v 2.0.40 ^
|
||||
|
||||
Local lcidvanzari, lcSql, lnSucces
|
||||
Store '' To lcidvanzari
|
||||
|
||||
Select crsDocArt
|
||||
Scan
|
||||
lcidvanzari = lcidvanzari + [, ] + Alltrim(Str(crsDocArt.id_vanzare))
|
||||
Select crsDocArt
|
||||
Endscan
|
||||
lcidvanzari = Substr(lcidvanzari, 2)
|
||||
|
||||
lcSql = [select a.codmat,a.denumire,a.pret_achizitie,a.pret,a.subgrupa,sum(cantitate) as cantitate from fact_vfacturi_detalii a ] + ;
|
||||
[ where a.id_vanzare in (] + Alltrim(lcidvanzari) + [)] + ;
|
||||
[ group by a.codmat,a.denumire,a.pret_achizitie,a.pret,a.subgrupa] + ;
|
||||
[ order by a.codmat, a.denumire ]
|
||||
|
||||
lnSucces = goExecutor.oexecute(lcSql, 'crsfactdetaliiartrap')
|
||||
If lnSucces < 0
|
||||
amessagebox(goExecutor.cEroare, 0 + 16, "Eroare")
|
||||
*!* modificare v 2.0.40
|
||||
*!* Return
|
||||
*!* EndIf
|
||||
Else
|
||||
*!* modificare v 2.0.40 ^
|
||||
Private pcDataora
|
||||
pcDataora = get_ora(2)
|
||||
Select crsfactdetaliiartrap
|
||||
Report Form rap_artdoc To Printer Prompt Preview
|
||||
*!* modificare v 2.0.40
|
||||
Endif
|
||||
Endif
|
||||
*!* modificare v 2.0.40 ^
|
||||
Select crsfacturi
|
||||
Set Filter To &lcFiltruInit
|
||||
If lnRecSel > 0
|
||||
Goto lnRecSel
|
||||
Endif
|
||||
Endproc
|
||||
*----------------------------------------------------------------------------------------------
|
||||
Procedure rap_transf_art
|
||||
Local lcidvanzari, lcSql, lnSucces
|
||||
Store '' To lcidvanzari
|
||||
|
||||
Select * From crsfacturi With (Buffering = .T.) Where ales = 1 Into Cursor crsTmp
|
||||
If Reccount() < 1
|
||||
amessagebox('Nu ati selectat vreun document!', 0 + 48, 'Atentie')
|
||||
*!* modificare v 2.0.40
|
||||
*!* Return
|
||||
*!* EndIf
|
||||
Else
|
||||
*!* modificare v 2.0.40 ^
|
||||
Select crsTmp
|
||||
Scan
|
||||
lcidvanzari = lcidvanzari + [, ] + Alltrim(Str(crsTmp.id_vanzare))
|
||||
Select crsTmp
|
||||
Endscan
|
||||
Use In crsTmp
|
||||
lcidvanzari = Substr(lcidvanzari, 2)
|
||||
lcSql = [select a.codmat,a.denumire,a.pret_achizitie,a.pret,a.subgrupa,sum(cantitate) as cantitate,client from fact_vfacturi_detalii a ] + ;
|
||||
[ where a.id_vanzare in (] + Alltrim(lcidvanzari) + [)] + ;
|
||||
[ group by a.denumire,a.codmat,a.pret_achizitie,a.pret,a.subgrupa,client] + ;
|
||||
[ order by a.subgrupa,a.denumire ]
|
||||
lnSucces = goExecutor.oexecute(lcSql, 'crssitconsum')
|
||||
If lnSucces < 0
|
||||
amessagebox(goExecutor.cEroare, 0 + 16, "Eroare")
|
||||
*!* modificare v 2.0.40
|
||||
*!* Return
|
||||
*!* Endif
|
||||
Else
|
||||
*!* modificare v 2.0.40 ^
|
||||
Private pcDataora
|
||||
pcDataora = get_ora(2)
|
||||
Select crssitconsum
|
||||
Report Form rap_transferart To Printer Prompt Preview
|
||||
*!* modificare v 2.0.40
|
||||
Endif
|
||||
Endif
|
||||
*!* modificare v 2.0.40 ^
|
||||
Select crsfacturi
|
||||
Endproc &&rap_transf_art
|
||||
|
||||
|
||||
*---------------------------------------------------------------------------
|
||||
* Borderou documente de trimis la clienti grupat pe clienti
|
||||
* Salveaza borderouri individiuale pdf si listeaza la imprimanta un raport cu toate borderourile [borderou1-borderou2]
|
||||
* Un borderou pentru toti clientii sau un borderou pentru un client, daca se transmite tnIdPart
|
||||
Procedure rap_borderou_clienti && lansat din frm_facturi (ofacturare.vcx)
|
||||
Lparameters tcIds, tlPDF, tlListare, tcCursorFacturi
|
||||
* tlSilent, tlPDF: se apeleaza cu parametri din generare_borderou_facturi si email_borderou_facturi pentru generare pdf silentios pentru fiecare id_borderou
|
||||
* tlListare: se apeleaza din frm_facturi.do_listare
|
||||
* tcIds : lista id-uri borderou C; id_borderou N
|
||||
* tcCursorFacturi: optional, pentru citirea ctip_factura suprascris de utilizator (ACN!)
|
||||
|
||||
Private pcDataora
|
||||
Local loPreviewerConfig As "PreviewerConfig"
|
||||
Local lcDestinationFile, lcSelect, lcSetare, lcSetareVizualizare, lcSql, ldDataBorderou, llSucces
|
||||
Local lnIdBorderou, lcIds, lcCursor, lcCursor2
|
||||
pcDataora = get_ora(2)
|
||||
|
||||
lcSelect = Select()
|
||||
lcIds = IIF(TYPE('tcIds') = 'C', m.tcIds, IIF(TYPE('tcIds') = 'N', ALLTRIM(STR(m.tcIds)), ''))
|
||||
llSucces = !EMPTY(m.lcIds)
|
||||
lcCursor = SYS(2015)
|
||||
SET STEP ON
|
||||
IF m.llSucces
|
||||
TEXT TO lcSql TEXTMERGE NOSHOW
|
||||
Select client, data_act, numar_act, total_fara_tva, total_tva, total_cu_tva, valval, tvaval, totval, ctip_factura, in_valuta, valuta, id_vanzare, id_client, id_borderou, data_borderou, email_client, adresa_client
|
||||
FROM fact_vborderou_detalii
|
||||
WHERE id_borderou in (<<m.lcIds>>)
|
||||
ORDER By 1, 2, 3
|
||||
ENDTEXT
|
||||
|
||||
llSucces = goExecutor.oExecuta(m.lcSql, m.lcCursor)
|
||||
|
||||
***************
|
||||
* Suprascriere ctip_factura special pentru ACN, pentru ca voiau ENERGIE ELECTRICA in loc de CHIRII SI UTILITATI pe borderou
|
||||
* si nu am adaugat un tip nou de prestatii ENERGIE ELECTRICA
|
||||
***************
|
||||
IF !EMPTY(m.tcCursorFacturi) AND USED(m.tcCursorFacturi)
|
||||
SELECT (m.tcCursorFacturi)
|
||||
SCAN
|
||||
lnIdVanzare = id_vanzare
|
||||
lcTipFactura = ALLTRIM(NVL(ctip_factura,''))
|
||||
UPDATE (m.lcCursor) SET ctip_factura = m.lcTipFactura WHERE id_vanzare = m.lnIdVanzare
|
||||
ENDSCAN
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
If m.llSucces
|
||||
***********************
|
||||
lcSetare = [BORDEROU]
|
||||
lcSetareVizualizare = [PREVIZBORDEROU]
|
||||
loPreviewerConfig = Createobject("PreviewerConfig") && rapoarte.prg
|
||||
|
||||
* Listez toate borderourile intr-un singur raport
|
||||
If m.tlListare
|
||||
* m.loPreviewerConfig.SetValue("lDirectPrint", m.tlSilent)
|
||||
goExport.export2frx(m.lcCursor, [rap_borderou_clienti], .F., m.lcSetareVizualizare, m.lcSetare, , , .T., , loPreviewerConfig)
|
||||
Endif && tlListare
|
||||
|
||||
* salvez pdf-uri cu borderouri individuale cu denumirea borderou_[aaaallzz]_[tnId].pdf
|
||||
If m.tlPDF
|
||||
SELECT distinct id_borderou FROM (m.lcCursor) INTO CURSOR cIdsBorderouListareTemp
|
||||
SELECT cIdsBorderouListareTemp
|
||||
lcRecc = ALLTRIM(STR(RECCOUNT()))
|
||||
SCAN
|
||||
lnIdBorderou = id_borderou
|
||||
lcRecno = ALLTRIM(STR(RECNO()))
|
||||
WAIT WINDOW 'Generare pdf borderou ' + m.lcRecno + '/' + m.lcRecc NOWAIT
|
||||
lcCursor2 = SYS(2015)
|
||||
SELECT * FROM (m.lcCursor) WHERE id_borderou = m.lnIdBorderou INTO CURSOR (m.lcCursor2)
|
||||
SELECT (m.lcCursor2)
|
||||
GO TOP
|
||||
ldDataBorderou = data_borderou
|
||||
lcDestinationFile = GetPDFBorderouFile(m.ldDataBorderou, m.lnIdBorderou)
|
||||
If !File(m.lcDestinationFile) Or (File(m.lcDestinationFile) And amessagebox('Doriti sa suprascrieti ' + m.lcDestinationFile + '?', 4 + 32, _Screen.Caption) = 6)
|
||||
m.loPreviewerConfig.SetValue("cDestFile", m.lcDestinationFile)
|
||||
m.loPreviewerConfig.SetValue("lOpenDestFile", .F.)
|
||||
m.loPreviewerConfig.SetValue("lDirectPrint", .T.)
|
||||
m.loPreviewerConfig.SetValue("lOpenViewer", .F.)
|
||||
*!* lcPdfHasImage = goApp.ReadIni([email_factura], "borderoupdfhasimage")
|
||||
*!* llPdfHasImage = (m.lcPdfHasImage = "1")
|
||||
*!* If Empty(m.lcPdfHasImage)
|
||||
*!* goApp.WriteIni([email_factura], "borderoupdfhasimage", "0")
|
||||
*!* llPdfHasImage = .F.
|
||||
*!* Endif
|
||||
*!* m.loPreviewerConfig.SetValue("lPDFasImage", m.llPdfHasImage)
|
||||
|
||||
* tcAlias, tcRaport, tlCereTitlu, tcSetareVizualizare, tcSetareImprimanta, tcParametriListare, toListener, tlMultiPreview, tcReportPreviewer, toPreviewerConfig
|
||||
goExport.export2frx(m.lcCursor2, [rap_borderou_clienti], .F., m.lcSetareVizualizare, m.lcSetare, , , .T., , loPreviewerConfig)
|
||||
USE IN (SELECT(m.lcCursor2))
|
||||
Endif
|
||||
|
||||
ENDSCAN && cIdsBorderouListareTemp
|
||||
USE IN (SELECT('cIdsBorderouListareTemp'))
|
||||
Endif && m.tlPDF
|
||||
***********************
|
||||
*!* goExport.export2frx('crsBorderouFacturiTemp', [rap_borderou_clienti], , , , , , .T.)
|
||||
Use In (Select(m.lcCursor))
|
||||
Endif && llSuccess
|
||||
|
||||
Select (m.lcSelect)
|
||||
Return m.llSucces
|
||||
Endproc && rap_borderou_clienti
|
||||
62
COMUN/programe/oproceduri_retete.prg
Normal file
62
COMUN/programe/oproceduri_retete.prg
Normal file
@@ -0,0 +1,62 @@
|
||||
********* INCEPUT: viz_retetar ***********
|
||||
Procedure viz_retetar
|
||||
Private pnIdReteta
|
||||
Store 0 To pnIdReteta
|
||||
ofrm_ret = Createobject('frm_retetar')
|
||||
ofrm_ret.Show(1)
|
||||
Release ofrm_ret
|
||||
*!* && Produse
|
||||
*!* lcSelect1 = ['select distinct id_produs,codmat_pr,denumire_pr,um_pr,cont_pr ] + ;
|
||||
*!* [ from ] + gcS + [.vgest_retetar where 1=2']
|
||||
*!* lcCursor1 = [crsProduse]
|
||||
*!* lcSchema1 = ['']
|
||||
*!* lcOrder1 = [denumire_pr]
|
||||
*!* lcFiltru1 = [1=1]
|
||||
*!* lcNume_coloane1= [codmat_pr;denumire_pr;um_pr;cont_pr]
|
||||
*!* lcTitlu_coloane1 = [Cod produs,Denumire,Unitate de masura,Cont]
|
||||
*!*
|
||||
*!* PRIVATE pnId_produs,pncant_veche,pncant_noua
|
||||
*!* STORE 0 TO pnId_produs,pncant_veche,pncant_noua
|
||||
*!*
|
||||
*!* &&Materiale
|
||||
*!* lcSelect2 = ['select id_retetar,id_produs,id_material,codmat_mat,denumire_mat,'+] +;
|
||||
*!* ['um_mat,cont_mat,cant_mat from ] + gcS + [.vgest_retetar where 1=2']
|
||||
*!* lcCursor2 = [crsMateriale]
|
||||
*!* lcSchema2 = ['id_retetar n(5),id_produs n(10),id_material n(10),codmat_mat c(50),' +] +;
|
||||
*!* ['denumire_mat c(100),um_mat c(6),cont_mat c(4),cant_mat n(12,4)']
|
||||
*!* lcOrder2 = [denumire_mat]
|
||||
*!* lcFiltru2 = [ id_produs = ?pnId_produs ]
|
||||
*!* lcNume_coloane2= [codmat_mat;denumire_mat;um_mat;cont_mat;cant_mat]
|
||||
*!* lcTitlu_coloane2 = [Cod material,Denumire,Unitate de masura,Cont,Cantitate]
|
||||
*!*
|
||||
*!* ofrm_ret = CREATEOBJECT('frm_retetar')
|
||||
*!*
|
||||
*!* WITH ofrm_ret.ct_grid_search1
|
||||
*!* .cSelect = lcSelect1
|
||||
*!* .cSchema = lcSchema1
|
||||
*!* .cFiltruOriginal = lcFiltru1
|
||||
*!* .cFiltru = lcFiltru1
|
||||
*!* .cTitlu = 'PRODUSE'
|
||||
*!* .corder = lcorder1
|
||||
*!* .cnume_coloane = lcnume_coloane1
|
||||
*!* .ctitlu_coloane = lctitlu_coloane1
|
||||
*!* .cnumecursor = lccursor1
|
||||
*!* ENDWITH
|
||||
|
||||
*!* WITH ofrm_ret.ct_grid_search2
|
||||
*!* .cSelect = lcSelect2
|
||||
*!* .cSchema = lcSchema2
|
||||
*!* .cFiltruOriginal = lcFiltru2
|
||||
*!* .cFiltru = [1=1]
|
||||
*!* .cTitlu = 'MATERIALE'
|
||||
*!* .corder = lcorder2
|
||||
*!* .cnume_coloane = lcnume_coloane2
|
||||
*!* .ctitlu_coloane = lctitlu_coloane2
|
||||
*!* .cnumecursor = lccursor2
|
||||
*!* ENDWITH
|
||||
*!*
|
||||
*!* ofrm_ret.show(1)
|
||||
*!* RELEASE ofrm_ret
|
||||
|
||||
Endproc
|
||||
********* SFARSIT: viz_retetar ***********
|
||||
632
COMUN/programe/oproceduri_roadef.prg
Normal file
632
COMUN/programe/oproceduri_roadef.prg
Normal file
@@ -0,0 +1,632 @@
|
||||
*!* 19.03.2015
|
||||
*!* marius.mutu
|
||||
*!* VIZ_LUNI_BLOCATE - se afiseaza doar programele pe care are utilizatorul dreptul
|
||||
|
||||
*** OPROCEDURI_ROADEF
|
||||
**************************************** INCEPUT: viz_categorii_entitati ******************************
|
||||
Procedure viz_categorii_entitati
|
||||
Private poCategorii_entitati,pcSchema,pcSelect
|
||||
Store '' To poCategorii_entitati
|
||||
If Used('crsCategorii_entitati')
|
||||
Use In crsCategorii_entitati
|
||||
Endif
|
||||
|
||||
llAfisare=.F.
|
||||
pcSchema = ['']
|
||||
pcSelect=['select * from ] + gcS + [.vnom_categorii_entitati where 1=2']
|
||||
pcOrder=[categorie_entitate]
|
||||
pcFiltru = [1=2]
|
||||
gencursor('poCategorii_entitati','crsCategorii_entitati',pcSelect,pcFiltru,pcSchema,pcOrder,llAfisare)
|
||||
poCategorii_entitati.ca_baza1.afisare()
|
||||
ofrmcategorii=Createobject('frm_categorii_entitati')
|
||||
ofrmcategorii.Show(1)
|
||||
Release poCategorii_entitati,ofrmcategorii
|
||||
Endproc
|
||||
**************************************** SFARSIT: viz_categorii_entitati ******************************
|
||||
*******************************************
|
||||
* PROCEDURE VIZ_LUNI_BLOCATE
|
||||
* Date : 28/10/2005, 10:27:42
|
||||
* author : marius.mutu
|
||||
* description:
|
||||
*******************************************
|
||||
Procedure VIZ_LUNI_BLOCATE
|
||||
|
||||
Local lcObiect, lcCursor, lcSelect, lcFiltru, lcSchema, lcOrder, llAfisare, lcGroup, llModParam, lcFiltruOriginal, lcSeconds
|
||||
lnSucces = 1
|
||||
|
||||
lcSeconds = SET("Seconds")
|
||||
SET SECONDS ON
|
||||
Private poPrograme
|
||||
poPrograme = .F.
|
||||
lcObiect = "poPrograme"
|
||||
lcCursor = "crsPrograme"
|
||||
*!* lcSelect = "select ide_program, explicatie as denumire from contafin_oracle.vdef_programe"
|
||||
|
||||
TEXT TO lcSelect NOSHOW
|
||||
select distinct p.ide_program, p.nume as denumire, p.instalat
|
||||
from contafin_oracle.vDEF_UTIL_GRUP ug
|
||||
join contafin_oracle.def_grup_drept gd on ug.id_grup = gd.id_grup
|
||||
join contafin_oracle.vdef_programe p on gd.id_program = p.ide_program
|
||||
ENDTEXT
|
||||
|
||||
lcFiltru = ""
|
||||
lcSchema = ""
|
||||
lcOrder = "nume"
|
||||
llAfisare = .F.
|
||||
lcGroup = ""
|
||||
llModParam = .T.
|
||||
lcFiltruOriginal = "ug.id_util = ?gnIdUtil and ug.id_firma = ?gnIdFirma and gd.sters = 0 and p.instalat = 1 and p.nume not in ('INDEX.HTM', 'ROADEF', 'ROADEFSALARII', 'ROASUPORT', 'ROADECL', 'ROAMANAGER', 'ROASITFIN', 'ROAOFERTARE', 'ROAJURIDIC', 'ROAPRETURI')"
|
||||
gencursor(lcObiect, lcCursor, lcSelect, lcFiltru, lcSchema, lcOrder, llAfisare, lcGroup, llModParam, lcFiltruOriginal)
|
||||
poPrograme.ca_baza1.lAfisare = .T.
|
||||
poPrograme.ca_baza1.afisare()
|
||||
If !Used('crsPrograme')
|
||||
lnSucces = -1
|
||||
Endif
|
||||
|
||||
|
||||
If lnSucces > 0
|
||||
|
||||
Private poBlocat
|
||||
poBlocat = .F.
|
||||
lcObiect = "poBlocat"
|
||||
lcCursor = "crsLuniAn"
|
||||
lcSelect = "select * from blocatprogramluni"
|
||||
|
||||
TEXT TO lcSelect NOSHOW
|
||||
select an, luna, ide_program, blocat, id_util, utilizator, stare, dataora from
|
||||
(select b.an,
|
||||
b.luna,
|
||||
b.ide_program,
|
||||
b.blocat,
|
||||
l1.id_log,
|
||||
l1.id_util,
|
||||
u.utilizator,
|
||||
l1.stare,
|
||||
l1.dataora,
|
||||
max(l1.id_log) OVER(PARTITION BY l1.id_tabel) as idlogmax
|
||||
from blocatprogramluni b
|
||||
left join (select l.id_log,
|
||||
l.tabel,
|
||||
l.id_tabel,
|
||||
l.camp,
|
||||
l.ID_UTIL,
|
||||
DECODE(VALOAREN, 1, 'BLOCAT', 'DEBLOCAT') AS STARE,
|
||||
l.dataora
|
||||
from LOG l) l1
|
||||
on l1.ID_TABEL = b.ide_program || b.an || lpad(b.luna, 2, '0')
|
||||
and l1.tabel = 'BLOCATPROGRAMLUNI'
|
||||
and l1.camp = 'BLOCAT'
|
||||
and l1.id_util <> 2
|
||||
left join syn_utilizatori u
|
||||
on l1.id_util = u.id_util)
|
||||
ENDTEXT
|
||||
lcFiltru = "1 = 2"
|
||||
lcSchema = ""
|
||||
lcOrder = "ide_program, an desc, luna desc"
|
||||
llAfisare = .F.
|
||||
lcGroup = ""
|
||||
llModParam = .T.
|
||||
lcFiltruOriginal = "nvl(id_log,0) = nvl(idlogmax,0)"
|
||||
gencursor(lcObiect, lcCursor, lcSelect, lcFiltru, lcSchema, lcOrder, llAfisare, lcGroup, llModParam, lcFiltruOriginal)
|
||||
poBlocat.ca_baza1.lAfisare = .T.
|
||||
poBlocat.ca_baza1.afisare()
|
||||
If !Used('crsLuniAn')
|
||||
lnSucces = -1
|
||||
Endif
|
||||
Endif
|
||||
|
||||
If lnSucces > 0
|
||||
ovizblocate=Createobject('frm_viz_blocate')
|
||||
ovizblocate.Show(1)
|
||||
Endif
|
||||
|
||||
If Used('crsPrograme')
|
||||
Use In crsPrograme
|
||||
Endif
|
||||
|
||||
If Used('crsFirme')
|
||||
Use In crsFirme
|
||||
Endif
|
||||
|
||||
If Used('crsLuniAn')
|
||||
Use In crsLuniAn
|
||||
Endif
|
||||
SET SECONDS &lcSeconds
|
||||
Endproc
|
||||
*----------------------------------sfarsit procedura VIZ_LUNI_BLOCATE----------------------------------
|
||||
|
||||
Procedure viz_firme
|
||||
Private pofirme,pcschema1,pcselect1
|
||||
Store '' To pofirme
|
||||
If Used('v_firme')
|
||||
Use In v_firme
|
||||
Endif
|
||||
|
||||
llAfisare=.F.
|
||||
pcschema1 = ['']
|
||||
pcselect1=['select * from syn_v_nom_firme where 1=2']
|
||||
pcorder1=[firma]
|
||||
pcfiltru1 = [sters=0 and id_firma = ] + Alltrim(Str(gofirma.id_firma))
|
||||
gencursor('pofirme','v_firme',pcselect1,pcfiltru1,pcschema1,pcorder1,llAfisare)
|
||||
pofirme.ca_baza1.afisare()
|
||||
|
||||
*!* Select v_firme
|
||||
*!* Scatter Name poRec
|
||||
*!* ofrmfirme=Createobject("frm_firme")
|
||||
*!* ofrmfirme.Show(1)
|
||||
|
||||
If Reccount('v_firme')>0
|
||||
gnButon=1
|
||||
Select v_firme
|
||||
Scatter Name loRec
|
||||
*!* modificare 11.08
|
||||
AddProperty(loRec,"modificare_schema",0)
|
||||
*!* modificare 11.08 ^
|
||||
*!* modificare ROADEF v 2.1.2
|
||||
*!* *!* modificare ROADEF v 2.0.23
|
||||
*!* lnCodSiruta = 0
|
||||
*!* If !Empty(Nvl(loRec.id_loc,0))
|
||||
*!* lcSql = [select siruta from syn_vnom_localitati where id_loc = ] + Alltrim(Str(loRec.id_loc))
|
||||
*!* lcCursor = [crstmpsiruta]
|
||||
*!* If goExecutor.oExecuta(lcSql,lcCursor)
|
||||
*!* Select (lcCursor)
|
||||
*!* lnCodSiruta = siruta
|
||||
*!* Use In (Select(lcCursor))
|
||||
*!* Endif
|
||||
*!* Endif
|
||||
*!* AddProperty(loRec,"siruta",lnCodSiruta)
|
||||
*!* *!* modificare ROADEF v 2.0.23 ^
|
||||
*!* modificare ROADEF v 2.1.2 ^
|
||||
*!* 07.02.2008
|
||||
*!* Do Adauga_Modifica_Inregistrare With "firme",loRec,loRec.id_firma,"UPDATE"
|
||||
Private poRec
|
||||
poRec = loRec
|
||||
loAdModFirme = Createobject("frm_firme_nou_desktopf",loRec,loRec.id_firma,"UPDATE")
|
||||
loAdModFirme.Show(1)
|
||||
llRet = gnButon
|
||||
*!* 07.02.2008 ^
|
||||
Endif
|
||||
*!* Release ofrmfirme
|
||||
Release pofirme
|
||||
Endproc && viz_firme
|
||||
|
||||
*******************************************
|
||||
* PROCEDURE def_calculatoare( )
|
||||
* Date : 08/24/06, 11:57:53
|
||||
* author : liana.macinic
|
||||
* description:
|
||||
|
||||
****** PARAMETER BLOCK **************
|
||||
* Parameters : 0
|
||||
*
|
||||
*******************************************
|
||||
Procedure def_calculatoare( )
|
||||
|
||||
Private pocalc,pcschema1,pcselect1
|
||||
Store '' To pocalc
|
||||
*!* pcschema1=['id_gestiune n(5),nume_gestiune c(50),cgest c(4),cont_gestiune c(4),ngest c(10),nrg n(4),ascd c(4),nr_grupa n(4),gest n(3)']
|
||||
pcschema1 = ['']
|
||||
pcselect1=['select * from ] + gcS + [.vcalculatoare where 1=2']
|
||||
pcorder1=[denumire]
|
||||
pcfiltru1 = [2=2]
|
||||
llAfiseaza = .F.
|
||||
gencursor('pocalc','crsCalc',pcselect1,pcfiltru1,pcschema1,pcorder1,llAfiseaza)
|
||||
pocalc.ca_baza1.afisare()
|
||||
ofrmgest=Createobject('frm_calc')
|
||||
ofrmgest.Show(1)
|
||||
Release pocalc
|
||||
|
||||
Endproc
|
||||
*----------------------------------sfarsit procedura def_calculatoare----------------------------------
|
||||
|
||||
*******************************************
|
||||
* PROCEDURE set_calculatoare( )
|
||||
* Date : 08/24/06, 12:01:59
|
||||
* author : liana.macinic
|
||||
* description:
|
||||
|
||||
****** PARAMETER BLOCK **************
|
||||
* Parameters : 0
|
||||
*
|
||||
*******************************************
|
||||
Procedure set_calculatoare( )
|
||||
|
||||
Private pocalc,pcschema1,pcselect1
|
||||
Store '' To pocalc
|
||||
lcSchema = [SUCURSALA C(100), ID_SUCURSALA N(10), CALCULATOR C(100), COLOANE C(100), EXPLICATIA C(100), IDCOLOANA C(50), ] + [ID_CALC N(10), ID_CALCSETARE N(10), RESULTCOLOANA C(50), SETARE C(100), TABEL C(50), TIP C(10), TITLU C(100), TITLUCOLOANE C(100), VALOARE C(64), VALOARE_TEXT C(200)]
|
||||
lcSelect=[SELECT SUCURSALA, ID_SUCURSALA, CALCULATOR, COLOANE, EXPLICATIA, IDCOLOANA, ID_CALC, ID_CALCSETARE, RESULTCOLOANA, SETARE, TABEL, TIP, TITLU, TITLUCOLOANE, VALOARE, VALOARE_TEXT FROM VCALC_SETARI]
|
||||
|
||||
lcOrder=[sucursala,calculator,setare]
|
||||
lcFiltru = []
|
||||
lcFiltruOriginal = []
|
||||
llAfiseaza = .F.
|
||||
llModParam = .T.
|
||||
lcGroup = []
|
||||
gencursor('pocalc','crsCalcsetari', lcSelect, lcFiltru, lcSchema, lcOrder, llAfiseaza, lcGroup, llModParam, lcFiltruOriginal)
|
||||
pocalc.ca_baza1.afisare()
|
||||
ofrmgest=Createobject('frm_calcsetari')
|
||||
ofrmgest.Show(1)
|
||||
Release pocalc
|
||||
|
||||
|
||||
Endproc
|
||||
*----------------------------------sfarsit procedura set_calculatoare----------------------------------
|
||||
|
||||
*******************************************
|
||||
* PROCEDURE grupuri_util( )
|
||||
* Date : 08/24/06, 15:15:22
|
||||
* author : liana.macinic
|
||||
* description:
|
||||
|
||||
****** PARAMETER BLOCK **************
|
||||
* Parameters : 0
|
||||
*
|
||||
*******************************************
|
||||
Procedure grupuri_util( )
|
||||
Private pogrup,pcschema1,pcselect1
|
||||
Store '' To pogrup
|
||||
*!* pcschema1=['id_gestiune n(5),nume_gestiune c(50),cgest c(4),cont_gestiune c(4),ngest c(10),nrg n(4),ascd c(4),nr_grupa n(4),gest n(3)']
|
||||
pcschema1 = ['']
|
||||
pcselect1=['select * from ] + gcS + [.vgrupuri_utilizatori where 1=2']
|
||||
pcorder1=[denumire_grup]
|
||||
pcfiltru1 = [2=2]
|
||||
llAfiseaza = .F.
|
||||
gencursor('pogrup','crsGrup',pcselect1,pcfiltru1,pcschema1,pcorder1,llAfiseaza)
|
||||
pogrup.ca_baza1.afisare()
|
||||
ofrmgest=Createobject('frm_grupUtil')
|
||||
ofrmgest.Show(1)
|
||||
Release pogrup
|
||||
|
||||
|
||||
Endproc
|
||||
*----------------------------------sfarsit procedura grupuri_util----------------------------------
|
||||
|
||||
*******************************************
|
||||
* PROCEDURE util_rol_intern( )
|
||||
* Date : 08/24/06, 15:15:38
|
||||
* author : liana.macinic
|
||||
* description:
|
||||
|
||||
****** PARAMETER BLOCK **************
|
||||
* Parameters : 0
|
||||
*
|
||||
*******************************************
|
||||
Procedure util_rol_intern( )
|
||||
|
||||
Private poutil,pcschema1,pcselect1
|
||||
Store '' To poutil
|
||||
*!* pcschema1=['id_gestiune n(5),nume_gestiune c(50),cgest c(4),cont_gestiune c(4),ngest c(10),nrg n(4),ascd c(4),nr_grupa n(4),gest n(3)']
|
||||
pcschema1 = ['']
|
||||
pcselect1=['select * from ] + gcS + [.vutilizatori_rol_intern where 1=2']
|
||||
pcorder1=[sucursala, denumire_grup, utilizator, partener, contact]
|
||||
pcfiltru1 = [2=2]
|
||||
llAfiseaza = .F.
|
||||
*!* modificare v 2.0.11
|
||||
lcFiltruOriginal = Substr(gcCondSucursala,5)
|
||||
llModParam = .F.
|
||||
lcGroup = []
|
||||
gencursor('poutil','crsUtil',pcselect1,pcfiltru1,pcschema1,pcorder1,llAfiseaza, lcgroup, llModParam, lcFiltruOriginal)
|
||||
*!* gencursor('poutil','crsUtil',pcselect1,pcfiltru1,pcschema1,pcorder1,llAfiseaza)
|
||||
*!* modificare v 2.0.11 ^
|
||||
poutil.ca_baza1.afisare()
|
||||
ofrmgest=Createobject('frm_Utilizatori')
|
||||
ofrmgest.Show(1)
|
||||
Release poutil
|
||||
|
||||
Endproc
|
||||
*----------------------------------sfarsit procedura util_rol_intern----------------------------------
|
||||
|
||||
*******************************************
|
||||
* PROCEDURE list_utilizatori( )
|
||||
* Date : 08/25/06, 13:41:16
|
||||
* author : liana.macinic
|
||||
* description:
|
||||
|
||||
****** PARAMETER BLOCK **************
|
||||
* Parameters : 0
|
||||
*
|
||||
*******************************************
|
||||
Procedure list_utilizatori( )
|
||||
Local lcSelect, lcFiltru, lcSchema, lcOrder, lccoloane, lcTitlu, lcTitluColoane, lcFiltruOriginal, lcNumeProc
|
||||
lcSelect = [select * FROM vNOM_SUCURSALE]
|
||||
lcFiltru = [1=2]
|
||||
lcSchema = []
|
||||
lcOrder = [sucursala]
|
||||
lccoloane = [sucursala]
|
||||
lcTitlu = [Alegeti sucursala]
|
||||
lcTitluColoane = [Sucursala]
|
||||
lcFiltruOriginal = []
|
||||
lcNumeProc = ""
|
||||
lnPornire = 6
|
||||
llDesktop = .T.
|
||||
locauta = cauta_alfa(lcSelect, lcFiltru, lcSchema, lcOrder, lccoloane, lcTitlu, lcTitluColoane, lcNumeProc, .F., lcFiltruOriginal,,lnPornire,,,llDesktop)
|
||||
If buton=2
|
||||
Return
|
||||
Endif
|
||||
|
||||
lcSelect = [select * from vutilizatori_rol_intern ]+;
|
||||
IIF(!Empty(locauta.id_sucursala) And !Isnull(locauta.id_sucursala), [where id_sucursala = ]+Alltrim(Str(locauta.id_sucursala)),[])
|
||||
lcCursor = [crsUtilizatori]
|
||||
lnSucces = goExecutor.oExecute(lcSelect,lcCursor)
|
||||
If lnSucces < 0
|
||||
aMessagebox(goExecutor.cEroare,16,"Eroare")
|
||||
Exit
|
||||
Endif
|
||||
|
||||
*!* MESSAGEBOX(locauta.id_sucursala)
|
||||
|
||||
Select crsUtilizatori
|
||||
Report Form util To Printer Prompt Preview
|
||||
|
||||
Endproc
|
||||
*----------------------------------sfarsit procedura list_utilizatori----------------------------------
|
||||
|
||||
*******************************************
|
||||
* PROCEDURE list_calculatoare( )
|
||||
* Date : 08/25/06, 13:41:31
|
||||
* author : liana.macinic
|
||||
* description:
|
||||
|
||||
****** PARAMETER BLOCK **************
|
||||
* Parameters : 0
|
||||
*
|
||||
*******************************************
|
||||
Procedure list_calculatoare( )
|
||||
Local lcSelect, lcFiltru, lcSchema, lcOrder, lccoloane, lcTitlu, lcTitluColoane, lcFiltruOriginal, lcNumeProc
|
||||
lcSelect = [select * FROM vNOM_SUCURSALE]
|
||||
lcFiltru = [1=2]
|
||||
lcSchema = []
|
||||
lcOrder = [sucursala]
|
||||
lccoloane = [sucursala]
|
||||
lcTitlu = [Alegeti sucursala]
|
||||
lcTitluColoane = [Sucursala]
|
||||
lcFiltruOriginal = []
|
||||
lcNumeProc = ""
|
||||
lnPornire = 6
|
||||
llDesktop = .T.
|
||||
locauta = cauta_alfa(lcSelect, lcFiltru, lcSchema, lcOrder, lccoloane, lcTitlu, lcTitluColoane, lcNumeProc, .F., lcFiltruOriginal,,lnPornire,,,llDesktop)
|
||||
If buton=2
|
||||
Return
|
||||
Endif
|
||||
|
||||
lcSelect = [select * from vcalculatoare ]+;
|
||||
IIF(!Empty(locauta.sucursala), [where id_sucursala = ]+Alltrim(Str(locauta.id_sucursala)),[])+[ order by sucursala]
|
||||
lcCursor = [crsCalc]
|
||||
lnSucces = goExecutor.oExecute(lcSelect,lcCursor)
|
||||
If lnSucces < 0
|
||||
aMessagebox(goExecutor.cEroare,16,"Eroare")
|
||||
Exit
|
||||
Endif
|
||||
|
||||
|
||||
Select crsCalc
|
||||
Report Form calculatoare To Printer Prompt Preview
|
||||
Endproc
|
||||
*----------------------------------sfarsit procedura list_calculatoare----------------------------------
|
||||
|
||||
*******************************************
|
||||
* PROCEDURE list_gestiuni( )
|
||||
* Date : 08/25/06, 13:42:03
|
||||
* author : liana.macinic
|
||||
* description:
|
||||
|
||||
****** PARAMETER BLOCK **************
|
||||
* Parameters : 0
|
||||
*
|
||||
*******************************************
|
||||
Procedure list_gestiuni( )
|
||||
Local lcSelect, lcFiltru, lcSchema, lcOrder, lccoloane, lcTitlu, lcTitluColoane, lcFiltruOriginal, lcNumeProc
|
||||
lcSelect = [select * FROM vNOM_SUCURSALE]
|
||||
lcFiltru = [1=2]
|
||||
lcSchema = []
|
||||
lcOrder = [sucursala]
|
||||
lccoloane = [sucursala]
|
||||
lcTitlu = [Alegeti sucursala]
|
||||
lcTitluColoane = [Sucursala]
|
||||
lcFiltruOriginal = []
|
||||
lcNumeProc = ""
|
||||
lnPornire = 6
|
||||
llDesktop = .T.
|
||||
locauta = cauta_alfa(lcSelect, lcFiltru, lcSchema, lcOrder, lccoloane, lcTitlu, lcTitluColoane, lcNumeProc, .F., lcFiltruOriginal,,lnPornire,,,llDesktop)
|
||||
If buton=2
|
||||
Return
|
||||
Endif
|
||||
|
||||
lcSelect = [select * from vnom_gestiuni order by sucursala,nume_gestiune]
|
||||
*!* +;
|
||||
*!* IIF(!EMPTY(locauta.sucursala), [where id_sucursala = ]+ALLTRIM(STR(locauta.id_sucursala)),[])
|
||||
lcCursor = [crsGest]
|
||||
lnSucces = goExecutor.oExecute(lcSelect,lcCursor)
|
||||
If lnSucces < 0
|
||||
aMessagebox(goExecutor.cEroare,16,"Eroare")
|
||||
Exit
|
||||
Endif
|
||||
|
||||
Select crsGest
|
||||
Report Form gestiuni To Printer Prompt Preview
|
||||
|
||||
Endproc
|
||||
*----------------------------------sfarsit procedura list_gestiuni----------------------------------
|
||||
|
||||
*******************************************
|
||||
* PROCEDURE list_org_calc( )
|
||||
* Date : 08/25/06, 13:42:24
|
||||
* author : liana.macinic
|
||||
* description:
|
||||
|
||||
****** PARAMETER BLOCK **************
|
||||
* Parameters : 0
|
||||
*
|
||||
*******************************************
|
||||
Procedure list_org_calc( )
|
||||
&&code goes here
|
||||
|
||||
|
||||
Endproc
|
||||
*----------------------------------sfarsit procedura list_org_calc----------------------------------
|
||||
|
||||
*******************************************
|
||||
* PROCEDURE list_org_gest( )
|
||||
* Date : 08/25/06, 13:42:41
|
||||
* author : liana.macinic
|
||||
* description:
|
||||
|
||||
****** PARAMETER BLOCK **************
|
||||
* Parameters : 0
|
||||
*
|
||||
*******************************************
|
||||
Procedure list_org_gest( )
|
||||
&&code goes here
|
||||
|
||||
|
||||
Endproc
|
||||
*----------------------------------sfarsit procedura list_org_gest----------------------------------
|
||||
*******************************************
|
||||
* PROCEDURE list_org_util( )
|
||||
* Date : 08/25/06, 13:42:58
|
||||
* author : liana.macinic
|
||||
* description:
|
||||
|
||||
****** PARAMETER BLOCK **************
|
||||
* Parameters : 0
|
||||
*
|
||||
*******************************************
|
||||
Procedure list_org_util( )
|
||||
ofrmgest=Createobject('frm_listutil')
|
||||
ofrmgest.Show(1)
|
||||
|
||||
Endproc
|
||||
*----------------------------------sfarsit procedura list_org_util----------------------------------
|
||||
|
||||
*!* iif(lower(pcPctLucru)='sucursala','Punct de lucru',IIF(LOWER(pcPctLucru) = 'partener',[Partener],'Grup')) + [: ]+ iif(allt(pcPctLucru) = 'sucursala',allt(sucursala),IIF(ALLT(pcPctLucru) = 'partener',ALLT(partener),allt(denumire_grup)))
|
||||
|
||||
*---------------------------------- inceput procedura asociere_parteneri_sectii ----------------------------------
|
||||
Procedure asociere_parteneri_sectii
|
||||
Parameters tnTip
|
||||
|
||||
If Empty(tnTip) Or Isnull(tnTip)
|
||||
Return
|
||||
Endif
|
||||
|
||||
Private pnTip_asociere
|
||||
pnTip_asociere = tnTip
|
||||
|
||||
Private poAsociere
|
||||
Local lcSchema, lcSelect, lcFiltru, lcOrder, llAfiseaza, lcGroup, llModParam, lcFiltruOriginal
|
||||
Store '' To poAsociere
|
||||
|
||||
lcSchema = []
|
||||
lcSelect=[select * from vasociere_parteneri_sectii]
|
||||
lcOrder=[denumire]
|
||||
lcFiltru = []
|
||||
llAfiseaza = .F.
|
||||
lcGroup = ""
|
||||
llModParam = .T.
|
||||
lcFiltruOriginal = [id_tip=]+Alltrim(Str(pnTip_asociere))
|
||||
|
||||
gencursor('poAsociere','crsAsociere',lcSelect,lcFiltru,lcSchema,lcOrder,llAfiseaza, lcGroup, llModParam, lcFiltruOriginal)
|
||||
poAsociere.ca_baza1.afisare()
|
||||
|
||||
lops = Createobject('frm_parteneri_sectii')
|
||||
lops.Show(1)
|
||||
|
||||
If Used('crsAsociere')
|
||||
Use In crsAsociere
|
||||
Endif
|
||||
|
||||
Endproc && asociere_parteneri_sectii
|
||||
*----------------------------------sfarsit procedura asociere_parteneri_sectii ----------------------------------
|
||||
|
||||
*---------------------------------- inceput procedura asociere_parteneri_gestiuni ----------------------------------
|
||||
Procedure asociere_parteneri_gestiuni
|
||||
Parameters tnTip
|
||||
|
||||
If Empty(tnTip) Or Isnull(tnTip)
|
||||
Return
|
||||
Endif
|
||||
|
||||
Private pnTip_asociere
|
||||
pnTip_asociere = tnTip
|
||||
|
||||
Private poAsociere
|
||||
Local lcSchema, lcSelect, lcFiltru, lcOrder, llAfiseaza, lcGroup, llModParam, lcFiltruOriginal
|
||||
Store '' To poAsociere
|
||||
|
||||
lcSchema = []
|
||||
lcSelect=[select id_asociere, id_part, denumire, id_gestiune, nume_gestiune, cont, id_util, dataora from vasociere_parteneri_gestiuni]
|
||||
lcOrder=[cont,denumire,nume_gestiune]
|
||||
lcFiltru = []
|
||||
llAfiseaza = .F.
|
||||
lcGroup = ""
|
||||
llModParam = .T.
|
||||
lcFiltruOriginal = [id_tip=]+Alltrim(Str(pnTip_asociere))
|
||||
|
||||
gencursor('poAsociere','crsAsociere',lcSelect,lcFiltru,lcSchema,lcOrder,llAfiseaza, lcGroup, llModParam, lcFiltruOriginal)
|
||||
poAsociere.ca_baza1.afisare()
|
||||
|
||||
lops = Createobject('frm_parteneri_gestiuni')
|
||||
lops.Show(1)
|
||||
|
||||
If Used('crsAsociere')
|
||||
Use In crsAsociere
|
||||
Endif
|
||||
|
||||
Endproc && asociere_parteneri_gestiuni
|
||||
*----------------------------------sfarsit procedura asociere_parteneri_gestiuni ----------------------------------
|
||||
Procedure viz_log_redeschid
|
||||
|
||||
*!* lcSelect = [select * from vlog_redeschid ]
|
||||
*!* lcCursor = [crsLog_redeschid]
|
||||
*!* lnSucces = goExecutor.oExecute(lcSelect,lcCursor)
|
||||
*!* If lnSucces < 0
|
||||
*!* aMessagebox(goExecutor.cEroare,16,"Eroare")
|
||||
*!* Endif
|
||||
|
||||
PRIVATE poLog_redeschid
|
||||
STORE '' TO poLog_redeschid
|
||||
|
||||
Local lcSchema, lcSelect, lcOrder, lcFiltru, lcFiltruOriginal, llAfiseaza, lcGroup, lcFiltruOriginal
|
||||
lcSchema = []
|
||||
lcSelect = [select * from vlog_redeschid]
|
||||
lcOrder = []
|
||||
lcGroup = []
|
||||
lcFiltru = []
|
||||
lcFiltruOriginal = []
|
||||
llModParam = .T.
|
||||
llAfiseaza = .F.
|
||||
|
||||
gencursor('poLog_redeschid','crsLog_redeschid', lcSelect, lcFiltru, lcSchema, lcOrder, llAfiseaza, lcGroup, llModParam, lcFiltruOriginal)
|
||||
poLog_redeschid.ca_baza1.afisare()
|
||||
|
||||
Create Cursor crsLog_luni (perioada c(22), anul N(4), luna N(2))
|
||||
Insert Into crsLog_luni (perioada) Values ("<Toate inregistrarile>")
|
||||
|
||||
Select distinct Alltrim(Str(anul))+'-'+Alltrim(Str(luna)) As perioada, anul, luna ;
|
||||
from crsLog_redeschid ;
|
||||
into Cursor crsLog_luni2 ;
|
||||
ORDER BY anul desc, luna desc
|
||||
|
||||
Select crsLog_luni
|
||||
Append From Dbf("crsLog_luni2")
|
||||
If Used("crsLog_luni2")
|
||||
Use In crsLog_luni2
|
||||
ENDIF
|
||||
|
||||
SELECT crsLog_luni
|
||||
GO TOP
|
||||
|
||||
Select crsLog_redeschid
|
||||
|
||||
lolr = Createobject('frm_log_redeschid')
|
||||
lolr.Show(1)
|
||||
|
||||
If Used('crsLog_redeschid')
|
||||
Use In crsLog_redeschid
|
||||
Endif
|
||||
|
||||
If Used('crsLog_luni')
|
||||
Use In crsLog_luni
|
||||
Endif
|
||||
|
||||
Endproc && viz_log_redeschid
|
||||
*----------------------------------sfarsit procedura viz_log_redeschid ----------------------------------
|
||||
1218
COMUN/programe/oproceduri_roadef_sal.prg
Normal file
1218
COMUN/programe/oproceduri_roadef_sal.prg
Normal file
File diff suppressed because it is too large
Load Diff
508
COMUN/programe/oproceduri_rulaje.prg
Normal file
508
COMUN/programe/oproceduri_rulaje.prg
Normal file
@@ -0,0 +1,508 @@
|
||||
*!* 29.06.2018
|
||||
*!* marius.mutu
|
||||
*!* modificare_articole_gestiune - tratare modificare nota produse > vanzare
|
||||
|
||||
|
||||
*!* 31.12.2019
|
||||
*!* marius.mutu
|
||||
*!* viz_rulaje, viz_rulaje_obinv - optimizat selectia pentru cursorul poBon, poNir
|
||||
|
||||
Procedure viz_rulaje
|
||||
Lparameters tnNrPag
|
||||
Private pcselect, pcschema, pcfiltru, pcorder, llAfiseaza, porulaje, ponir, pobon, pcvrul
|
||||
|
||||
Local ofrmrulaje As "frm_rulaje"
|
||||
Local lcFiltruOriginal, lcgroup, llModParam
|
||||
Store '' To porulaje, ponir, pobon
|
||||
*!* IF m.nivel=1
|
||||
|
||||
pcschema = ['NRCRT n(10),ID_RUL n(20),AN n(4),LUNA n(2),COD n(20),NNIR n(20),SERIE_ACT C(10),NRACT n(14),UTILS c(50),DATAORAS t,ID_ARTICOL n(10),'+] + ;
|
||||
['DENUMIRE c(100),CODMAT c(50),SERIE c(100),UM c(6),ID_GESTIUNE n(5),CGEST c(20), nume_gestiune c(50), '+] + ;
|
||||
['PRET n(16,4),PRETV n(16,4),TVA n(16,4),TVAV n(16,4),CANT n(14,3),CANTE n(14,3),CONT c(4),'+] + ;
|
||||
['ADAOS n(14,4),ID_LUCRARE n(20),NRORD c(30),ID_RESPONSABIL n(5),NRESP c(30),DATAACT d,'+] + ;
|
||||
['PROCENT n(7,3),CURS n(14,4),PRETD n(14,4),ID_UTIL n(5),UTIL c(30),DATAORA t,'+] + ;
|
||||
['ID_SECTIE n(5),SECTIE c(30),ALCOOLTUTUN n(1),PRETVTVA n(14,4),'+] + ;
|
||||
['ACONT c(4),DATAIN d,DATAOUT d,PROC_DISC n(6,2),DISCUNITAR n(14,4),PROC_TVA n(5,2),PROC_TVAv n(5,2),ID_FACT n(20),STERS n(1), '+] + ;
|
||||
['ID_GESTIUNEC N(5), CGESTC C(20), ID_RESPONSABILC N(5), NRESPC C(30),ID_TIP_RULAJ N(10),TIP_RULAJ C(40),'+] + ;
|
||||
['um2 c(10),cant_bax n(9,4), id_grupa n(5), grupa c(100), id_subgrupa n(5), subgrupa c(100),'+] + ;
|
||||
['id_valuta n(5), nume_val c(4), codmatf c(50), lot c(50), adata_expirare T,'+] + ;
|
||||
['id_sucursala N(5),sucursala c(100),id_part_rez N(10),part_rez c(100),'+] + ;
|
||||
['id_lucrare_rez N(10),nrord_rez C(50), codbare c(100), id_set I, id_furnizor N(10), furnizor C(100), codnc8 C(20), greutate N(12,4), tara_origine C(100),'+] + ;
|
||||
['id_jtva_coloana N(20), explicatie_tva C(250), taxcode N(6), taxname C(250), fdoc C(30), id_fdoc I, ales N(1)']
|
||||
|
||||
pcselect = ['select row_number() over (order by a.dataact,a.nnir) as nrcrt, '+] + ;
|
||||
['A.ID_RUL,A.AN,A.LUNA,A.COD,A.NNIR,A.SERIE_ACT,A.NRACT,A.UTILS,A.DATAORAS,A.ID_ARTICOL,A.DENUMIRE,A.CODMAT,A.SERIE,'+] + ;
|
||||
['A.UM,A.ID_GESTIUNE,A.cgest, a.nume_gestiune,A.PRET,A.PRETv,A.tva,A.tvav, ' + ] + ;
|
||||
['A.CANT,A.CANTE,A.CONT,A.ADAOS,A.ID_LUCRARE,A.NRORD,A.ID_RESPONSABIL,A.NRESP,A.DATAACT,A.PROCENT,A.curs, '+] + ;
|
||||
['A.PRETD,A.ID_UTIL,A.UTIL,A.DATAORA,A.ID_SECTIE,A.SECTIE,A.ALCOOLTUTUN, '+] + ;
|
||||
['A.pretvtva,A.ACONT,A.DATAIN,A.DATAOUT,A.PROC_DISC,A.DISCUNITAR,A.PROC_TVA,A.PROC_TVAV,A.ID_FACT,a.sters, '+] + ;
|
||||
['A.ID_GESTIUNEC, A.CGESTC, A.ID_RESPONSABILC, A.NRESPC, A.ID_TIP_RULAJ, A.TIP_RULAJ, '+] + ;
|
||||
['a.um2, a.cant_bax, a.id_grupa, a.grupa, a.id_subgrupa, a.subgrupa, a.id_valuta, a.nume_val, a.codmatf,' + ] + ;
|
||||
['a.lot, a.adata_expirare, a.id_sucursala, a.sucursala,a.id_part_rez,a.part_rez,a.id_lucrare_rez,a.nrord_rez, a.codbare, a.id_set, '+] + ;
|
||||
['a.id_furnizor, a.furnizor, a.codnc8, a.greutate, a.tara_origine, a.id_jtva_coloana, a.explicatie_tva, a.taxcode, a.taxname,a.fdoc, a.id_fdoc,0 as ales '+] + ;
|
||||
['from vrul_tot a where 1=2']
|
||||
|
||||
pcvrul = '_tot'
|
||||
|
||||
pcfiltru = [1=2]
|
||||
pcorder = [1]
|
||||
llAfiseaza = .F.
|
||||
gencursor('porulaje', 'crsrulx', pcselect, pcfiltru, pcschema, pcorder, llAfiseaza)
|
||||
porulaje.ca_baza1.afisare()
|
||||
|
||||
pcschema = [NRCRT n(10),DENUMIRE c(100),CODMAT c(50),UM c(6),DATAACT D,PRET n(16,4),TVA n(16,4),PRETV n(16,4),TVAV n(16,4),CANT n(14,3),CANTE n(14,3),COD n(20),NNIR n(10), NRESP C(30),SERIE c(100)]
|
||||
Text To pcselect Noshow
|
||||
select row_number() over(order by b.denumire) as nrcrt,
|
||||
b.denumire,
|
||||
b.codmat,
|
||||
b.um,
|
||||
a.dataact,
|
||||
a.pret,
|
||||
a.tva,
|
||||
a.pretv,
|
||||
a.tvav,
|
||||
a.cant,
|
||||
a.cante,
|
||||
a.cod,
|
||||
a.nnir,
|
||||
c.denumire as nresp,
|
||||
a.serie
|
||||
FROM rul a left join nom_articole b on a.id_articol = b.id_articol
|
||||
left join nom_parteneri c on a.id_responsabil = c.id_part
|
||||
Endtext
|
||||
|
||||
pcfiltru = [1=2]
|
||||
pcorder = [b.denumire]
|
||||
llAfiseaza = .F.
|
||||
lcgroup = []
|
||||
llModParam = .T.
|
||||
lcFiltruOriginal = [a.sters=0]
|
||||
gencursor('ponir', 'crsnir', m.pcselect, m.pcfiltru, m.pcschema, m.pcorder, m.llAfiseaza, m.lcgroup, m.llModParam, m.lcFiltruOriginal)
|
||||
gencursor('pobon', 'crsbon', m.pcselect, m.pcfiltru, m.pcschema, m.pcorder, m.llAfiseaza, m.lcgroup, m.llModParam, m.lcFiltruOriginal)
|
||||
|
||||
Select crsRulX
|
||||
ofrmrulaje = Createobject("frm_rulaje", tnNrPag)
|
||||
*DO FORM frm_rulaje NAME ofrmrulaje NOSHOW
|
||||
ofrmrulaje.lb_titlu_alb_b121.Caption = ofrmrulaje.lb_titlu_alb_b121.Caption + " LUNA " + Alltrim(Str(gnLuna)) + "/" + Alltrim(Str(gnAn))
|
||||
ofrmrulaje.Show(1)
|
||||
|
||||
Release porulaje
|
||||
|
||||
Endproc && viz_rulaje
|
||||
|
||||
*---------------------------------------------------------------------------------------------
|
||||
|
||||
Procedure viz_rulaje_obinv
|
||||
Private pcselect, pcschema, pcfiltru, pcorder, llAfiseaza, porulaje, ponir, pobon, pcvrul
|
||||
Local ofrmrulaje As "frm_rulaje_obinv"
|
||||
Local lcFiltruOriginal, lcgroup, llModParam
|
||||
Store '' To porulaje, ponir, pobon
|
||||
|
||||
pcschema = ['']
|
||||
pcselect = ['select row_number() over (order by a.dataact,a.nnir) as nrcrt,a.*,0 as ales from vrul_obinv_tot a where 1=2']
|
||||
pcvrul = '_tot'
|
||||
|
||||
|
||||
pcfiltru = [1=2]
|
||||
pcorder = [1]
|
||||
llAfiseaza = .F.
|
||||
gencursor('porulaje', 'crsrul', pcselect, pcfiltru, pcschema, pcorder, llAfiseaza)
|
||||
porulaje.ca_baza1.afisare()
|
||||
|
||||
*!* pcschema = ['NRCRT n(10),DENUMIRE c(100),CODMAT c(50),UM c(6),PRET n(16,4),'+] + ;
|
||||
*!* ['TVA n(16,4),CANT n(14,3),COD n(20), NRESP C(30)']
|
||||
*!* pcselect = ['select row_number() over (order by denumire) as nrcrt,a.denumire,a.codmat,'+] + ;
|
||||
*!* ['a.um,a.pret,a.tva,a.cant,a.cod, a.nresp from ] + gcS + [.vrul_obinv] + pcvrul + [ a '+] + ;
|
||||
*!* ['where 1=2']
|
||||
*!* pcfiltru = [1=2]
|
||||
*!* pcorder = [a.denumire]
|
||||
*!* llAfiseaza = .F.
|
||||
*!* gencursor('ponir', 'crsnir', pcselect, pcfiltru, pcschema, pcorder, llAfiseaza)
|
||||
|
||||
*!* pcschema = ['NRCRT n(10),DATAACT d,DENUMIRE c(100),UM c(6),PRETV n(16,4),CANTE n(14,3),NNIR n(10), NRESP C(30)']
|
||||
*!* pcselect = ['select row_number() over (order by cod) as nrcrt,a.dataact,'+] + ;
|
||||
*!* ['a.denumire,a.um,a.pretv,a.cante,a.nnir, a.nresp from ] + gcS + [.vrul_obinv] + pcvrul + [ a '+] + ;
|
||||
*!* ['where 1=2']
|
||||
*!* pcfiltru = [1=2]
|
||||
*!* pcorder = [cod]
|
||||
*!* llAfiseaza = .F.
|
||||
*!* gencursor('pobon', 'crsbon', pcselect, pcfiltru, pcschema, pcorder, llAfiseaza)
|
||||
|
||||
pcschema = [NRCRT n(10),DENUMIRE c(100),CODMAT c(50),UM c(6),DATAACT D,PRET n(16,4),TVA n(16,4),PRETV n(16,4),TVAV n(16,4),CANT n(14,3),CANTE n(14,3),COD n(20),NNIR n(10), NRESP C(30),SERIE c(100)]
|
||||
Text To pcselect Noshow
|
||||
select row_number() over(order by b.denumire) as nrcrt,
|
||||
b.denumire,
|
||||
b.codmat,
|
||||
b.um,
|
||||
a.dataact,
|
||||
a.pret,
|
||||
a.tva,
|
||||
a.pretv,
|
||||
a.tvav,
|
||||
a.cant,
|
||||
a.cante,
|
||||
a.cod,
|
||||
a.nnir,
|
||||
c.denumire as nresp,
|
||||
a.serie
|
||||
FROM rul_obinv a left join nom_articole b on a.id_articol = b.id_articol
|
||||
left join nom_parteneri c on a.id_responsabil = c.id_part
|
||||
Endtext
|
||||
|
||||
pcfiltru = [1=2]
|
||||
pcorder = [b.denumire]
|
||||
llAfiseaza = .F.
|
||||
lcgroup = []
|
||||
llModParam = .T.
|
||||
lcFiltruOriginal = [a.sters=0]
|
||||
gencursor('ponir', 'crsnir', m.pcselect, m.pcfiltru, m.pcschema, m.pcorder, m.llAfiseaza, m.lcgroup, m.llModParam, m.lcFiltruOriginal)
|
||||
gencursor('pobon', 'crsbon', m.pcselect, m.pcfiltru, m.pcschema, m.pcorder, m.llAfiseaza, m.lcgroup, m.llModParam, m.lcFiltruOriginal)
|
||||
|
||||
*DO FORM "frm_rulaje_obinv" NAME ofrmrulaje NOSHOW LINKED
|
||||
ofrmrulaje = Createobject("frm_rulaje_obinv")
|
||||
ofrmrulaje.lb_titlu_alb_b121.Caption = "RULAJE OBIECTE DE INVENTAR IN FOLOSINTA * LUNA " + Alltrim(Str(gnLuna)) + "/" + Alltrim(Str(gnAn))
|
||||
ofrmrulaje.Show(1)
|
||||
|
||||
Release porulaje
|
||||
|
||||
Endproc && viz_rulaje_obinv
|
||||
|
||||
|
||||
******************************************************
|
||||
*
|
||||
* Apelata din gestiuni_comun.vcx > afrulaje > but_modifica1
|
||||
*
|
||||
******************************************************
|
||||
Procedure modificare_antet_gestiune
|
||||
Lparameters toActNou
|
||||
Local llSucces, lnCod, lnIdResp, lcSelect
|
||||
Local lcCursor, lcSql, llRul, lnReturn, lnSucces
|
||||
Local loActNou, loActOriginal
|
||||
Private pnCod
|
||||
Private pdDataOra
|
||||
pdDataOra = Null
|
||||
|
||||
llSucces = .F.
|
||||
lcSelect = Select()
|
||||
loActNou = toActNou
|
||||
pnCod = loActNou.cod
|
||||
llRul = .T.
|
||||
|
||||
lcSql = [select * from vact_tot where an = ?gnAn and luna = ?gnLuna and cod = ?pnCod]
|
||||
lcCursor = [actactan]
|
||||
lnSucces = goExecutor.oExecute(lcSql, lcCursor)
|
||||
If lnSucces < 0
|
||||
aMESSAGEBOX(goExecutor.cEroare, 0 + 16, "Eroare")
|
||||
Else
|
||||
Select actactan
|
||||
Go Top
|
||||
Scatter Name loActOriginal
|
||||
|
||||
lcSql = [select * from vrul_tot where an = ?gnAn and luna = ?gnLuna and cod = ?pnCod]
|
||||
lcCursor = [rul_temp]
|
||||
|
||||
lnSucces = goExecutor.oExecute(lcSql, lcCursor)
|
||||
If lnSucces < 0
|
||||
aMESSAGEBOX(goExecutor.cEroare, 0 + 16, "Eroare")
|
||||
Else
|
||||
lcSql = [select * from vrul_obinv_tot where an = ?gnAn and luna = ?gnLuna and cod = ?pnCod]
|
||||
lcCursor = [RUL_TEMP_OBINV]
|
||||
|
||||
lnSucces = goExecutor.oExecute(lcSql, lcCursor)
|
||||
goExecutor.oReset()
|
||||
If m.lnSucces < 0
|
||||
aMESSAGEBOX(goExecutor.cEroare, 0 + 16, "Eroare")
|
||||
Endif && lnSucces
|
||||
Endif && lnSucces
|
||||
Endif && lnSucces
|
||||
|
||||
If m.lnSucces > 0
|
||||
If loActNou.nract <> loActOriginal.nract
|
||||
Update actactan Set nract = loActNou.nract Where nract = loActOriginal.nract
|
||||
Update RUL_TEMP Set nract = loActNou.nract
|
||||
Update RUL_TEMP_OBINV Set nract = loActNou.nract
|
||||
Endif
|
||||
If loActNou.NNIR <> loActOriginal.NNIR
|
||||
Update actactan Set NNIR = loActNou.NNIR Where NNIR = loActOriginal.NNIR
|
||||
Update RUL_TEMP Set NNIR = loActNou.NNIR
|
||||
Update RUL_TEMP_OBINV Set NNIR = loActNou.NNIR
|
||||
Endif
|
||||
If loActNou.dataact <> Ttod(loActOriginal.dataact)
|
||||
Update actactan Set dataact = loActNou.dataact Where dataact = loActOriginal.dataact And nract = loActOriginal.nract
|
||||
Update RUL_TEMP Set dataact = loActNou.dataact
|
||||
Update RUL_TEMP_OBINV Set dataact = loActNou.dataact
|
||||
Endif
|
||||
If loActNou.dataireg <> Ttod(loActOriginal.dataireg)
|
||||
Update actactan Set dataireg = loActNou.dataireg Where dataireg = loActOriginal.dataireg
|
||||
Endif
|
||||
If Nvl(loActNou.id_sectie, 0) <> Nvl(loActOriginal.id_sectie, 0)
|
||||
Update actactan Set id_sectie = loActNou.id_sectie Where Nvl(id_sectie, 0) = Nvl(loActOriginal.id_sectie, 0)
|
||||
Update RUL_TEMP Set id_sectie = loActNou.id_sectie Where Nvl(id_sectie, 0) = Nvl(loActOriginal.id_sectie, 0)
|
||||
Update RUL_TEMP_OBINV Set id_sectie = loActNou.id_sectie Where Nvl(id_sectie, 0) = Nvl(loActOriginal.id_sectie, 0)
|
||||
Endif
|
||||
If Nvl(loActNou.id_responsabil, 0) <> Nvl(loActOriginal.id_responsabil, 0)
|
||||
Update actactan Set id_responsabil = loActNou.id_responsabil Where Nvl(id_responsabil, 0) = Nvl(loActOriginal.id_responsabil, 0)
|
||||
Update RUL_TEMP Set id_responsabil = loActNou.id_responsabil Where Left(Cont, 1) <> '8' && nu modific obiectele de inventar in folosinta
|
||||
Endif
|
||||
If Nvl(loActNou.id_lucrare, 0) <> Nvl(loActOriginal.id_lucrare, 0)
|
||||
Update actactan Set id_lucrare = loActNou.id_lucrare Where Nvl(id_lucrare, 0) = loActOriginal.id_lucrare
|
||||
Update RUL_TEMP Set id_lucrare = loActNou.id_lucrare Where Nvl(id_lucrare, 0) = loActOriginal.id_lucrare
|
||||
Update RUL_TEMP_OBINV Set id_lucrare = loActNou.id_lucrare Where Nvl(id_lucrare, 0) = loActOriginal.id_lucrare
|
||||
Endif
|
||||
|
||||
If Nvl(loActNou.id_partener, 0) <> Nvl(loActOriginal.id_partc, 0)
|
||||
Update actactan Set id_partd = loActNou.id_partener Where Nvl(id_partd, 0) = Nvl(loActOriginal.id_partc, 0)
|
||||
Update actactan Set id_partc = loActNou.id_partener Where Nvl(id_partc, 0) = Nvl(loActOriginal.id_partc, 0)
|
||||
Endif
|
||||
|
||||
If do_deschide_tranzactie()
|
||||
Select actactan
|
||||
lnSucces = oscrie_in_fisiere(2, .T., m.llRul)
|
||||
|
||||
If m.lnSucces > 0
|
||||
lnSucces = oscrie_in_fisiere(0, .T., m.llRul)
|
||||
Endif
|
||||
|
||||
If m.lnSucces > 0
|
||||
lcSql = [begin pack_contafin.finalizeaza_modificare_nota(?gnLuna,?gnAn,?pdDataOra,] + Alltrim(Str(loActOriginal.id_set)) + [,] + ;
|
||||
Alltrim(Str(m.pnCod)) + [,] + Alltrim(Str(loActOriginal.id_fact)) + [,] + Alltrim(Str(loActOriginal.id_fact)) + [,?gnIdUtil); end;]
|
||||
lnSucces = Iif(goExecutor.oExecuta(m.lcSql), 1, -1)
|
||||
Endif && lnSucces
|
||||
|
||||
do_inchide_tranzactie(Iif(m.lnSucces < 0, 2, 1))
|
||||
Endif && deschide_Tranzactie
|
||||
Endif && lnSucces
|
||||
|
||||
Use In (Select('actactan'))
|
||||
Use In (Select('RUL_TEMP'))
|
||||
Use In (Select('RUL_TEMP_OBINV'))
|
||||
|
||||
m.llSucces = (m.lnSucces > 0)
|
||||
Select (m.lcSelect)
|
||||
Return m.llSucces
|
||||
Endproc && modificare_antet_gestiune
|
||||
|
||||
|
||||
*******************************************
|
||||
Procedure do_deschide_tranzactie
|
||||
Local llReturn
|
||||
If Type('goExecutor') = 'O'
|
||||
goExecutor.oExecuta([select * from dual])
|
||||
Endif
|
||||
lnSucces = SQLSetprop(gnHandle, "Transactions", 2)
|
||||
If m.lnSucces < 0
|
||||
aMESSAGEBOX("Programul nu a reusit sa treaca pe tranzactie manuala! Reintrati in program si incercati din nou!", 48, "Atentie")
|
||||
llReturn = .F.
|
||||
Else
|
||||
llReturn = .T.
|
||||
Endif
|
||||
Return m.llReturn
|
||||
Endproc && do_deschide_tranzactie
|
||||
|
||||
*******************************************
|
||||
Procedure do_inchide_tranzactie
|
||||
Lparameters tnTip
|
||||
Local llReturn, lnSucces, lcExplicatie
|
||||
If tnTip = 1
|
||||
lnSucces = Sqlcommit(gnHandle)
|
||||
lcExplicatie = [COMMIT]
|
||||
Else
|
||||
lnSucces = Sqlrollback(gnHandle)
|
||||
lcExplicatie = [ROLLBACK]
|
||||
Endif
|
||||
If lnSucces < 0
|
||||
aMESSAGEBOX("Eroare la " + lcExplicatie + "!", 48, "Atentie")
|
||||
llReturn = .F.
|
||||
Else
|
||||
lnSucces = SQLSetprop(gnHandle, "Transactions", 1)
|
||||
If lnSucces < 0
|
||||
aMESSAGEBOX('Programul nu a reusit sa treaca pe tranzactie automata. Iesiti din program si intrati din nou!', 0 + 48, 'Atentie!')
|
||||
llReturn = .F.
|
||||
Else
|
||||
llReturn = .T.
|
||||
Endif
|
||||
Endif
|
||||
Return llReturn
|
||||
Endproc && do_inchide_tranzactie
|
||||
******************************************************
|
||||
*
|
||||
* Apelata din gestiuni_comun.vcx > afrulaje > but_modifica1
|
||||
*
|
||||
******************************************************
|
||||
Procedure modificare_articole_gestiune
|
||||
Lparameters tnCod, tnIdSet
|
||||
|
||||
Private pnCod
|
||||
Local lcColumnId, lcColumnValue, lcCont, lcFisLista, lcIdFisier, lcMemoryVarId, lcMemoryVarValue
|
||||
Local lcSelect, lcSql, lcVarItem, lcWhere, llContinua, llPartener, llSucces, llVerificaAcont
|
||||
Local lnButon, lnIdSet, lnIdValue, lnItem, lnSucces, lnVariabile, luValue, lcCgest, lnIdGestiune
|
||||
Local loAct As "empty"
|
||||
Local lcNumeGestiune, lcResponsabil, lnIdResponsabil
|
||||
lnVariabile = 0
|
||||
llSucces = .F.
|
||||
lcSelect = Select()
|
||||
pnCod = m.tnCod
|
||||
lnIdSet = m.tnIdSet
|
||||
lcCgest = ""
|
||||
lnIdGestiune = 0
|
||||
|
||||
*** Initializez variabilele din xrequest
|
||||
lcSql = [select * From VACT a Where an = ] + Alltrim(Str(m.gnAn)) + [ and luna = ] + Alltrim(Str(m.gnLuna)) + [ and cod = ] + Alltrim(Str(m.pnCod))
|
||||
lnSucces = goExecutor.oExecute(m.lcSql, 'ACT_TEMP')
|
||||
|
||||
If m.lnSucces < 0
|
||||
aMESSAGEBOX(goExecutor.cEroare, 0 + 48, _Screen.Caption)
|
||||
Else
|
||||
|
||||
lcSql = [select r.*, g.nume_gestiune, g.cgest, p.denumire as responsabil From rul r Left Join vnom_gestiuni g On r.id_gestiune = g.id_gestiune left join vnom_parteneri p on r.id_responsabil = p.id_part Where an = ] + Alltrim(Str(m.gnAn)) + [ and luna = ] + Alltrim(Str(m.gnLuna)) + [ and cod = ] + Alltrim(Str(m.pnCod))
|
||||
lnSucces = goExecutor.oExecute(m.lcSql, 'RUL_TEMP')
|
||||
If m.lnSucces < 0
|
||||
aMESSAGEBOX(goExecutor.cEroare, 0 + 48, _Screen.Caption)
|
||||
Endif
|
||||
Endif && m.lnSucces < 0
|
||||
|
||||
If m.lnSucces < 0
|
||||
Use In (Select('ACT_TEMP'))
|
||||
Use In (Select('RUL_TEMP'))
|
||||
Return
|
||||
Endif
|
||||
|
||||
Select scd As Cont, id_partd As id_part, partd As partener ;
|
||||
From ACT_TEMP ;
|
||||
Where !Empty(Nvl(id_partd, 0)) ;
|
||||
Union ;
|
||||
Select scc As Cont, id_partc As id_part, partc As partener ;
|
||||
From ACT_TEMP ;
|
||||
Where !Empty(Nvl(id_partc, 0)) ;
|
||||
Into Cursor cParteneriTemp
|
||||
|
||||
Select a.Cont, a.id_part, b.partener ;
|
||||
From (Select Cont, Max(id_part) As id_part From cParteneriTemp Group By Cont) a Left Join ;
|
||||
(Select Distinct id_part, partener From cParteneriTemp) b On a.id_part = b.id_part ;
|
||||
Into Cursor cParteneriAct
|
||||
Use In (Select('cParteneriTemp'))
|
||||
|
||||
Text To lcSql Noshow Textmerge
|
||||
Select i.id_item, i.var_item, i.fis_lista, i.id_fisier
|
||||
From xrequest r Join xitems i On r.id_item = i.id_item
|
||||
Where r.id_set = <<m.tnIdSet>>
|
||||
Union
|
||||
Select id_item, var_item, fis_lista, id_fisier
|
||||
From xitems
|
||||
Where id_item = 16
|
||||
Endtext
|
||||
lnSucces = goExecutor.oExecute(m.lcSql, 'crsVariabileTemp')
|
||||
If lnSucces > 0
|
||||
Select Padr(Cont, 4) As var_item, 'parteneri' As fis_lista From cParteneriAct Into Cursor cVariabileParteneri
|
||||
|
||||
Select crsVariabileTemp
|
||||
Append From Dbf('cVariabileParteneri')
|
||||
Use In (Select('cVariabileParteneri'))
|
||||
Else
|
||||
aMESSAGEBOX(goExecutor.cEroare)
|
||||
Create Cursor crsVariabileTemp (id_item I, var_item C(20), fis_lista C(20), id_fisier C(20))
|
||||
Endif
|
||||
|
||||
|
||||
loAct = Createobject("empty")
|
||||
AddProperty(loAct, 'lCorectie', .T.)
|
||||
AddProperty(loAct, 'nCod', m.pnCod)
|
||||
|
||||
Select crsVariabileTemp
|
||||
Scan
|
||||
llPartener = Alltrim(Lower(Nvl(fis_lista, ''))) = 'parteneri' && variabila partener
|
||||
lcVarItem = Lower(Alltrim(Nvl(var_item, '')))
|
||||
lcFisLista = Lower(Alltrim(Nvl(fis_lista, '')))
|
||||
lcIdFisier = Lower(Alltrim(Nvl(id_fisier, '')))
|
||||
lcColumnValue = 'act_temp.' + lcVarItem
|
||||
lcColumnId = Iif(!Empty(m.lcIdFisier), 'act_temp.' + lcIdFisier, '')
|
||||
|
||||
|
||||
Do Case
|
||||
Case m.llPartener && parteneri
|
||||
lcCont = Alltrim(Nvl(var_item, ''))
|
||||
|
||||
Select cParteneriAct
|
||||
Locate For Alltrim(Nvl(Cont, '')) = m.lcCont
|
||||
If Found()
|
||||
luValue = Alltrim(partener)
|
||||
lnIdValue = id_part
|
||||
AddProperty(loAct, 'v' + Lower(m.lcCont), m.luValue) && loAct.v4111
|
||||
AddProperty(loAct, 'id_vv' + Lower(m.lcCont), m.lnIdValue) && loAct.id_vv4111
|
||||
Endif
|
||||
|
||||
|
||||
Case Inlist(m.lcVarItem, "gestin", "gestout") && numele gestiunii
|
||||
* gestiunea o iau din rulaje, daca sunt mai multe gestiuni nu completez variabila
|
||||
Select Distinct id_gestiune, nume_gestiune, cgest From RUL_TEMP Into Cursor crsGestiuniTemp
|
||||
If _Tally = 1
|
||||
Go Top In crsGestiuniTemp
|
||||
|
||||
lcNumeGestiune = Alltrim(crsGestiuniTemp.nume_gestiune)
|
||||
lnIdGestiune = crsGestiuniTemp.id_gestiune
|
||||
lcCgest = Alltrim(Nvl(crsGestiuniTemp.cgest, ''))
|
||||
AddProperty(loAct, m.lcVarItem, m.lcNumeGestiune) && loAct.gestin
|
||||
AddProperty(loAct, 'id_' + m.lcVarItem, m.lnIdGestiune) && loAct.id_gestin
|
||||
AddProperty(loAct, "nume_gestiune", m.lcNumeGestiune) && loAct.nume_gestiune
|
||||
AddProperty(loAct, "cgest", m.lcCgest) && loAct.cgest
|
||||
AddProperty(loAct, 'id_gestiune', m.lnIdGestiune) && loAct.id_gestin
|
||||
Endif
|
||||
|
||||
Use In (Select('crsGestiuniTemp'))
|
||||
Case m.lcVarItem = 'nresp' And m.lcFisLista = 'vnom_responsabili' && responsabil/respons sau achizitor/achit_542
|
||||
lcWhere = Iif(lnIdSet = 89, [cante <> 0], [1=1]) && la transfer intre persoane ma intereseaza persoana de la care se transfera
|
||||
Select Distinct id_responsabil, responsabil From RUL_TEMP Where &lcWhere Into Cursor crsResponsabiliTemp
|
||||
If _Tally = 1
|
||||
Go Top In crsResponsabiliTemp
|
||||
lcResponsabil = Alltrim(crsResponsabiliTemp.responsabil)
|
||||
lnIdResponsabil = crsResponsabiliTemp.id_responsabil
|
||||
AddProperty(loAct, m.lcVarItem, m.lcResponsabil) && loAct.nresp
|
||||
AddProperty(loAct, 'id_' + m.lcVarItem, m.lnIdResponsabil) && loAct.id_responsabil
|
||||
Endif
|
||||
Use In (Select('crsResponsabiliTemp'))
|
||||
|
||||
Otherwise
|
||||
If Type(m.lcColumnValue) <> 'U'
|
||||
Select ACT_TEMP
|
||||
Calculate Max(&lcVarItem) To luValue
|
||||
If Inlist(m.lcVarItem, 'dataact', 'dataireg', 'datascad') And Type('luvalue') = 'T'
|
||||
luValue = Ttod(m.luValue)
|
||||
Endif
|
||||
AddProperty(loAct, m.lcVarItem, m.luValue) && loAct.sectie/dataact/nract
|
||||
|
||||
If !Empty(m.lcColumnId) And Type(m.lcColumnId) <> 'U'
|
||||
Locate For &lcVarItem = luValue
|
||||
If Found()
|
||||
luValue = Evaluate(m.lcColumnId)
|
||||
AddProperty(loAct, m.lcIdFisier, m.luValue) && loAct.id_sectie
|
||||
Endif
|
||||
Endif
|
||||
Endif
|
||||
Endcase
|
||||
Endscan && crsVariabileTemp
|
||||
|
||||
Use In (Select('crsVariabileTemp'))
|
||||
Use In (Select('act_temp'))
|
||||
Use In (Select('rul_temp'))
|
||||
|
||||
*** UTILIZATORUL FACE MODIFICARI ASUPRA ARTICOLELOR IN INTRARI/IESIRI
|
||||
llContinua = .F.
|
||||
llVerificaAcont = .T.
|
||||
If Inlist(m.tnIdSet, 79, 83, 271, 225, 272) && produse > vanzare en-gros, en-detail
|
||||
llSucces = initializeaza_vanzare_din_stoc(m.tnIdSet, loAct)
|
||||
lnButon = Iif(m.llSucces, 1, 2)
|
||||
Else
|
||||
lnButon = lans(m.tnIdSet, m.llContinua, m.llVerificaAcont, .F., .F., loAct)
|
||||
Endif
|
||||
*!* Do Case
|
||||
*!* Case Inlist(m.lnIdSet, 92, 104) && NIR IMPORT MATERIALE/MARFA
|
||||
*!* lnButon = importmat(m.lnIdSet, loDateSuplimentare) && procmenu.prg
|
||||
*!* Otherwise
|
||||
*!* lnButon = lans(m.tnIdSet, m.llContinua, m.llVerificaAcont, @laValori)
|
||||
*!* Endcase
|
||||
llSucces = (m.lnButon <> 2)
|
||||
|
||||
|
||||
Select (m.lcSelect)
|
||||
Return m.llSucces
|
||||
Endproc &&modificare_antet_gestiune
|
||||
748
COMUN/programe/oproceduri_seturi_indicatori.prg
Normal file
748
COMUN/programe/oproceduri_seturi_indicatori.prg
Normal file
@@ -0,0 +1,748 @@
|
||||
***------------------------------------------------------------------------------------
|
||||
Procedure set_set
|
||||
LParameters tnId_set
|
||||
|
||||
&& adauga in mg_indicatori inregistrarile din mg_tmp_indicatori
|
||||
|
||||
Private pnId_set
|
||||
Local lcSql, lnSucces
|
||||
If Empty(tnId_set)
|
||||
Return
|
||||
Else
|
||||
pnId_set = tnId_set
|
||||
Endif
|
||||
|
||||
lcSql = [begin PACK_MG_EVOLUTIE.SET_SET(?pnId_set); end;]
|
||||
lnSucces = goExecutor.oExecute(lcSql)
|
||||
|
||||
If lnSucces < 0
|
||||
AMESSAGEBOX(goExecutor.cEroare, 0 + 16, "Eroare")
|
||||
Endif
|
||||
Return m.lnSucces
|
||||
Endproc && set_set
|
||||
***------------------------------------------------------------------------------------
|
||||
Procedure viz_toate_seturile
|
||||
|
||||
* DO make_cFCentre IN oproceduri_manager.prg
|
||||
Create Cursor cTipuri_seturi (id_tip_set N(5), nume_tip_set C(30), ales N(1))
|
||||
Select cTipuri_seturi
|
||||
|
||||
|
||||
Private poSeturi
|
||||
Store '' To poSeturi
|
||||
|
||||
Local lcSchema1, lcSelect1, lcOrder1, lcFiltru1, llAfiseaza
|
||||
*!* lcSchema1 = [id_ctr N(5), id_part N(10), nume C(30), nr_ctr N(10), data_ctr D(8), obiect C(200), tip N(1), durata N(3), valftva N(20,4), proc_tva N(5,2), avans N(20,4), proc_avans N(5,2),]+;
|
||||
*!* [val_finant N(20,4), proc_finant N(5,2), dobanda N(20,4), proc_dobanda N(5,2), val_rezid N(20,4), proc_rezid N(5,2), ]+;
|
||||
*!* [rata N(20,4), comision N(20,4), proc_comision N(5,2), proc_asigurare N(5,2), val_asigurare N(20,4), val_ctr N(20,4), id_valuta N(5), nume_val C(4), curs N(10,4), zi_plata N(2), incetat N(1), sters N(1) ]
|
||||
*!*
|
||||
*!* lcSelect1 = [select c.id_ctr, c.id_part, p.nume, c.nr_ctr, c.data_ctr, c.obiect, c.tip, c.durata, c.valftva, c.proc_tva, c.avans, c.proc_avans, ]+;
|
||||
*!* [c.val_finant, c.proc_finant, c.dobanda, c.proc_dobanda, c.val_rezid, c.proc_rezid, ]+;
|
||||
*!* [c.rata, c.comision, c.proc_comision, c.proc_asigurare, c.val_asigurare, c.val_ctr, c.id_valuta, v.nume_val, c.curs, c.zi_plata, c.incetat, c.sters from ] + gcS + ;
|
||||
*!* [.cf_contracte c join ] + gcS + [.nom_parteneri p on p.id_part = c.id_part]+;
|
||||
*!* [ join ] + gcS + [.nom_valute v on c.id_valuta = v.id_valuta]
|
||||
lcSelect1 = [select s1.*, nvl(s2.uzual,0) as uzual from (select s.* from mg_seturi s) s1 left join (select distinct id_set, 1 as uzual from mg_seturi_uzuale u where u.sters = 0) s2 on s1.id_set = s2.id_set]
|
||||
lcOrder1 = [s1.nume_set]
|
||||
lcgroup = []
|
||||
lcFiltru1 = [1=2]
|
||||
lcFiltruOriginal = []
|
||||
llModParam = .T.
|
||||
llAfiseaza = .F.
|
||||
|
||||
gencursor('poSeturi', 'crsSeturi', lcSelect1, lcFiltru1, lcSchema1, lcOrder1, llAfiseaza, lcgroup, llModParam, lcFiltruOriginal)
|
||||
poSeturi.ca_baza1.afisare()
|
||||
|
||||
lots = Createobject("frm_toate_seturile")
|
||||
lots.Show(1)
|
||||
|
||||
*!* IF USED("cFCentre")
|
||||
*!* USE IN cFCentre
|
||||
*!* ENDIF
|
||||
|
||||
Endproc && viz_toate_seturile
|
||||
***------------------------------------------------------------------------------------
|
||||
Procedure modifica_parametri
|
||||
Parameters tnTip, tcAlias, tlDinFormModi
|
||||
&& tnTip: 1 - toate seturile; 2 - seturi uzuale
|
||||
|
||||
|
||||
Private pnTip, pnId_set, pnLunaI, pnAnulI, pnLunaF, pnAnulF, pnCumul, pnIndAct, pnIndBal, pnDinFormModi && le trimit pe server
|
||||
Store 0 To pnIndAct, pnIndBal
|
||||
|
||||
If !Empty(tnTip)
|
||||
pnTip = tnTip
|
||||
Else
|
||||
pnTip = 0
|
||||
Endif
|
||||
|
||||
Local lcalias, llDinFormModi
|
||||
lcalias = Alltrim(tcAlias)
|
||||
llDinFormModi = tlDinFormModi
|
||||
If llDinFormModi
|
||||
pnDinFormModi = 1
|
||||
Else
|
||||
pnDinFormModi = 0
|
||||
Endif
|
||||
|
||||
Select (lcalias)
|
||||
Scatter Name poset
|
||||
pnId_set = id_set
|
||||
|
||||
***----
|
||||
lcSql = [begin PACK_MG_EVOLUTIE.get_indicatori_nu_act(?pnId_set,?pnDinFormModi,?@pnIndAct,?@pnIndBal); end;]
|
||||
lnSucces = goExecutor.oExecute(lcSql)
|
||||
If lnSucces < 0
|
||||
AMESSAGEBOX(goExecutor.cEroare, 0 + 16, "Eroare")
|
||||
Return
|
||||
Endif
|
||||
***----
|
||||
|
||||
lopc = Createobject("frm_parametri_calcul", pnIndAct, pnIndBal)
|
||||
If tnTip = 2
|
||||
*!* lcSql = [select nume_set from mg_seturi where id_set = ]+Alltrim(Str(pnId_set))
|
||||
*!* lcCursor = 'cNume_set'
|
||||
*!* lnSucces = goExecutor.oExecute(lcSel, lcCursor)
|
||||
*!* If lnSucces < 0
|
||||
*!* AMESSAGEBOX(goExecutor.cEroare,0+16,"Eroare")
|
||||
*!* Return
|
||||
*!* Endif
|
||||
*!* Select cNume_set
|
||||
*!* lopc.lb_titlu_alb_b121.Caption = cNume_set.nume_set
|
||||
*!* If Used('cNume_set')
|
||||
*!* Use In cNume_set
|
||||
*!* Endif
|
||||
lopc.lb_titlu_alb_b121.Caption = 'set'
|
||||
Else
|
||||
lopc.lb_titlu_alb_b121.Caption = Alltrim(poset.nume_set)
|
||||
Endif
|
||||
lopc.Show(1)
|
||||
|
||||
If buton = 2
|
||||
Return
|
||||
Endif
|
||||
|
||||
Select (lcalias)
|
||||
Gather Name poset
|
||||
|
||||
*pnId_set = poset.id_set
|
||||
pnLunaI = poset.lunaI
|
||||
pnAnulI = poset.anulI
|
||||
pnLunaF = poset.lunaF
|
||||
pnAnulF = poset.anulF
|
||||
pnCumul = poset.cumul
|
||||
|
||||
lcSql = [begin PACK_MG_EVOLUTIE.set_parametri(?pnTip, ?pnId_set, ?pnLunaI, ?pnAnulI, ?pnLunaF, ?pnAnulF, ?pnCumul, ?gnIdutil); end;]
|
||||
lnSucces = goExecutor.oExecute(lcSql)
|
||||
|
||||
If lnSucces < 0
|
||||
AMESSAGEBOX(goExecutor.cEroare, 0 + 16, "Eroare")
|
||||
Return
|
||||
Endif
|
||||
|
||||
Endproc && modifica_parametri
|
||||
***------------------------------------------------------------------------------------
|
||||
Procedure adauga_indicator
|
||||
Parameters tnId_set, tcAlias
|
||||
|
||||
Local lcalias, lnInd, llSucces
|
||||
Private pnId_set, pnId_ind
|
||||
|
||||
If !Empty(tnId_set)
|
||||
pnId_set = tnId_set
|
||||
Else
|
||||
pnId_set = 0
|
||||
Endif
|
||||
pnId_ind = 0
|
||||
|
||||
lcalias = Alltrim(tcAlias)
|
||||
lnInd = 0
|
||||
llSucces = .F.
|
||||
|
||||
Select (lcalias)
|
||||
Scatter Name poIndicator Blank Memo
|
||||
|
||||
poIndicator.tip = 1
|
||||
|
||||
Calculate Max(Val(Rand)) To lnRandMax
|
||||
lnRandMax = lnRandMax + 1
|
||||
lcRandUrm = Padl(Alltrim(Str(lnRandMax, 4, 0)), 4, '0')
|
||||
|
||||
poIndicator.Rand = lcRandUrm
|
||||
poIndicator.nume_ind = "INDICATOR_" + lcRandUrm
|
||||
|
||||
Calculate Cnt() For !Deleted() To lnInd
|
||||
poIndicator.ord_rand = m.lnInd + 1
|
||||
|
||||
loib = Createobject("frm_tip_nume_rand_indicator")
|
||||
loib.Show(1)
|
||||
|
||||
If buton = 2
|
||||
RETURN m.llSucces
|
||||
Endif
|
||||
|
||||
poIndicator.id_set = pnId_set
|
||||
|
||||
lcSql = [begin PACK_MG_EVOLUTIE.next_id_ind(?@pnId_ind); end;]
|
||||
llSucces = goExecutor.oExecuta(lcSql)
|
||||
|
||||
If m.llSucces
|
||||
poIndicator.id_ind = pnId_ind
|
||||
lcSql = [begin PACK_MG_EVOLUTIE.adauga_indicator(?pnId_set, ?pnId_ind, ?ALLTRIM(poIndicator.Rand), ?ALLTRIM(poIndicator.nume_ind), ?poIndicator.tip, ?poindicator.ord_rand); end;]
|
||||
llSucces = goExecutor.oExecuta(lcSql)
|
||||
IF m.llSucces
|
||||
Select (lcalias)
|
||||
Append Blank
|
||||
Gather Name poIndicator Memo
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
RETURN m.llSucces
|
||||
Endproc && adauga_indicator
|
||||
***------------------------------------------------------------------------------------
|
||||
***------------------------------------------------------------------------------------
|
||||
Procedure modifica_indicator
|
||||
Parameters tnId_set, tnId_ind, tcAlias
|
||||
|
||||
Private pnId_set, pnId_ind
|
||||
LOCAL lnTip, lcAlias, llSucces
|
||||
pnId_set = tnId_set
|
||||
pnId_ind = tnId_ind
|
||||
|
||||
lcalias = Alltrim(tcAlias)
|
||||
llSucces = .F.
|
||||
|
||||
Select (lcalias)
|
||||
Scatter Name poIndicator Memo
|
||||
lnTip = poIndicator.tip
|
||||
|
||||
loib = Createobject("frm_tip_nume_rand_indicator")
|
||||
loib.Show(1)
|
||||
|
||||
If buton = 2
|
||||
RETURN m.llSucces
|
||||
ENDIF
|
||||
lcSql = [begin PACK_MG_EVOLUTIE.modifica_indicator(?pnId_set, ?pnId_ind, ?Alltrim(poIndicator.Rand), ?Alltrim(poIndicator.nume_ind), ?poIndicator.tip, ?poindicator.ord_rand); end;]
|
||||
llSucces = goExecutor.oExecuta(lcSql)
|
||||
|
||||
If m.llSucces
|
||||
IF poIndicator.tip <> m.lnTip
|
||||
poIndicator.formula = ""
|
||||
ENDIF
|
||||
|
||||
Select (lcalias)
|
||||
Gather Name poIndicator Memo
|
||||
Endif
|
||||
|
||||
RETURN m.llSucces
|
||||
Endproc && modifica_indicator
|
||||
***------------------------------------------------------------------------------------
|
||||
Procedure test
|
||||
|
||||
loft = Createobject("frm_test")
|
||||
loft.Show(1)
|
||||
|
||||
Endproc && test
|
||||
*------------------------------------------------------------------------------------
|
||||
Procedure test_List
|
||||
|
||||
pcLista = "+T201 +T203 +T204+T205+T206+T207-T208+T209"
|
||||
|
||||
lcLista = gcTempPath + "tLista.dbf"
|
||||
Create Table (lcLista) (valoare C(11))
|
||||
|
||||
lnAparitiiP = 1
|
||||
lnAparitiiM = 1
|
||||
|
||||
For i = 1 To Len(pcLista)
|
||||
lcSemn = Substr(pcLista, i, 1)
|
||||
If lcSemn = "+" Or lcSemn = "-"
|
||||
If lcSemn = "+"
|
||||
lnAparitiiP = lnAparitiiP + 1
|
||||
Endif
|
||||
If lcSemn = "-"
|
||||
lnAparitiiM = lnAparitiiM + 1
|
||||
Endif
|
||||
lnNextSemnP = At("+", pcLista, lnAparitiiP)
|
||||
lnNextSemnM = At("-", pcLista, lnAparitiiM)
|
||||
|
||||
If lnNextSemnP < lnNextSemnM And lnNextSemnP > 0
|
||||
lnNextSemn = lnNextSemnP
|
||||
Else
|
||||
If lnNextSemnM > 0
|
||||
lnNextSemn = lnNextSemnM
|
||||
Else
|
||||
lnNextSemn = lnNextSemnP
|
||||
Endif
|
||||
Endif
|
||||
* ?'lnNextSemn = '+ALLTRIM(STR(lnNextSemn))
|
||||
lnLen = lnNextSemn - i
|
||||
If lnNextSemn = 0 And i < Len(pcLista) && ultimul cont
|
||||
lcCont = Substr(pcLista, i)
|
||||
Else
|
||||
lcCont = Substr(pcLista, i, lnLen)
|
||||
Endif
|
||||
Select (lcLista)
|
||||
Insert Into (lcLista) (valoare) Values (lcCont)
|
||||
* ?lcCont
|
||||
Endif
|
||||
Endfor
|
||||
|
||||
|
||||
Select (lcLista)
|
||||
loft = Createobject("frm_test_List")
|
||||
loft.Show(1)
|
||||
|
||||
Endproc && test_List
|
||||
*------------------------------------------------------------------------------------
|
||||
Procedure editare_set
|
||||
Lparameters tnId_set, tnId_ModiPara, tnId_ind
|
||||
|
||||
Private pnId_set, pnCount, pcNume_set
|
||||
pnId_set = Iif(!Empty(m.tnId_set), m.tnId_set, 0)
|
||||
pnCount = 0 && cati indicatori are setul
|
||||
pcNume_set = ''
|
||||
llNou = Empty(m.tnId_set)
|
||||
|
||||
* Nume Set
|
||||
If m.llNou
|
||||
pcNume_set = "Set nou_" + Ttoc(Datetime())
|
||||
lcSql = [begin PACK_MG_EVOLUTIE.next_id_set(?@pnId_set); end;]
|
||||
lnSucces = goExecutor.oExecute(lcSql)
|
||||
|
||||
If lnSucces < 0
|
||||
AMESSAGEBOX(goExecutor.cEroare, 0 + 16, "Eroare")
|
||||
Return
|
||||
Endif
|
||||
Else
|
||||
lcSql = [begin PACK_MG_EVOLUTIE.GET_NUME_SET(?ALLTRIM(STR(pnId_set)),?@pcNume_set);end;]
|
||||
lnSucces = goExecutor.oExecute(lcSql)
|
||||
If lnSucces < 0
|
||||
AMESSAGEBOX(goExecutor.cEroare, 0 + 16, "Eroare")
|
||||
Return
|
||||
Endif
|
||||
Endif
|
||||
|
||||
* Copii indicatori din mg_indicatori in temporarul mg_tmp_indicatori
|
||||
* La editare lucrez cu mg_tmp_indicatori ca sa pot salva/renunta
|
||||
lcSql = [begin PACK_MG_EVOLUTIE.GET_SET(?pnId_set,?@pnCount); end;]
|
||||
lnSucces = goExecutor.oExecute(lcSql)
|
||||
|
||||
If lnSucces < 0
|
||||
AMESSAGEBOX(goExecutor.cEroare, 0 + 16, "Eroare")
|
||||
Return
|
||||
Endif
|
||||
|
||||
* Selectez din mg_tmp_indicatori
|
||||
Private poset, pcschema1, pcselect1
|
||||
Store '' To poset
|
||||
pcschema1 = ['']
|
||||
pcselect1 = ['select id_ind, id_set, rand, ord_rand, nume_ind, formula, ales, tip, comentariu from mg_tmp_indicatori where 1=2']
|
||||
pcorder1 = [ord_rand, rand]
|
||||
pcfiltru1 = [sters=0 and id_set = ] + Alltrim(Str(pnId_set))
|
||||
llAfiseaza = .F.
|
||||
tcAlias = 'm_indicatori'
|
||||
gencursor('poSet', 'm_indicatori', pcselect1, pcfiltru1, pcschema1, pcorder1, llAfiseaza)
|
||||
poset.ca_baza1.afisare()
|
||||
|
||||
* Selectez din planul de conturi
|
||||
Private poPlcont, pcschema1, pcselect1
|
||||
Store '' To poPlcont
|
||||
pcschema1 = ['']
|
||||
pcschema1 = [cont C(4), acont C(4), explicatie C(100), an N(4) ]
|
||||
pcselect1 = ['select distinct cont, acont, explicatie, an FROM plcont where 1=2']
|
||||
pcorder1 = [cont, acont]
|
||||
pcfiltru1 = []
|
||||
pcfiltru1 = [AN = ] + Alltrim(Str(GNAN))
|
||||
llAfiseaza = .F.
|
||||
gencursor('poPlcont', 'crsPlcont', pcselect1, pcfiltru1, pcschema1, pcorder1, llAfiseaza)
|
||||
poPlcont.ca_baza1.afisare()
|
||||
|
||||
* cursor temporar pentru indicatorii de tip jurnal
|
||||
* lcTabelRJ = gcTempPath + "tLista_rj.dbf"
|
||||
Create Cursor tLista_rj (camp_numeT C(30), camp_nume C(30), formula C(200), traducere C(200))
|
||||
|
||||
* DO make_cFCentre IN oproceduri_manager.prg && apelata in princ.set_uzual_requery
|
||||
Select m_indicatori
|
||||
If !Empty(tnId_ind)
|
||||
Locate For id_ind = tnId_ind
|
||||
If !Found()
|
||||
Go Top
|
||||
Endif
|
||||
Else
|
||||
Go Top
|
||||
Endif
|
||||
|
||||
poms = Createobject("frm_set", pnId_set, pcNume_set, m.llNou, tnId_ModiPara)
|
||||
poms.Show(1)
|
||||
|
||||
Use In (Select('tLista_rj'))
|
||||
Use In (Select('m_indicatori'))
|
||||
|
||||
Release poset
|
||||
|
||||
Endproc && editare_set
|
||||
*------------------------------------------------------------------------------------
|
||||
Procedure desparte_formula_bal
|
||||
Parameters tcFormula
|
||||
|
||||
Local lcFormula
|
||||
lcFormula = Alltrim(tcFormula)
|
||||
|
||||
Store '' To pcPD1, pcPC1, pcPD, pcPC, pcRD, pcRC, pcTD, pcTC, pcSD, pcSC
|
||||
Dimension laSir(100)
|
||||
lnElem = lista2array(lcFormula, @laSir, ";")
|
||||
For i = 1 To lnElem
|
||||
lnPD1 = At("<PD1>", laSir(i))
|
||||
lnPC1 = At("<PC1>", laSir(i))
|
||||
lnPD = At("<PD>", laSir(i))
|
||||
lnPC = At("<PC>", laSir(i))
|
||||
lnRD = At("<RD>", laSir(i))
|
||||
lnRC = At("<RC>", laSir(i))
|
||||
lnTD = At("<TD>", laSir(i))
|
||||
lnTC = At("<TC>", laSir(i))
|
||||
lnSD = At("<SD>", laSir(i))
|
||||
lnSC = At("<SC>", laSir(i))
|
||||
Do Case
|
||||
Case lnPD1 > 0
|
||||
pcPD1 = Substr(laSir(i), 6)
|
||||
Case lnPC1 > 0
|
||||
pcPC1 = Substr(laSir(i), 6) && <PC1>-C1511
|
||||
Case lnPD > 0
|
||||
pcPD = Substr(laSir(i), 5)
|
||||
Case lnPC > 0
|
||||
pcPC = Substr(laSir(i), 5)
|
||||
Case lnRD > 0
|
||||
pcRD = Substr(laSir(i), 5)
|
||||
Case lnRC > 0
|
||||
pcRC = Substr(laSir(i), 5)
|
||||
Case lnTD > 0
|
||||
pcTD = Substr(laSir(i), 5)
|
||||
Case lnTC > 0
|
||||
pcTC = Substr(laSir(i), 5)
|
||||
Case lnSD > 0
|
||||
pcSD = Substr(laSir(i), 5)
|
||||
Case lnSC > 0
|
||||
pcSC = Substr(laSir(i), 5)
|
||||
Endcase
|
||||
Endfor
|
||||
|
||||
Endproc && desparte_formula_bal
|
||||
*------------------------------------------------------------------------------------
|
||||
Procedure completeaza_lista_bal
|
||||
Parameters tcLista, tcTabel
|
||||
|
||||
Local lcLista, lcTabel, lnAparitiiP, lnAparitiiM
|
||||
lcLista = Alltrim(tcLista)
|
||||
lcTabel = Alltrim(tcTabel)
|
||||
Store 1 To lnAparitiiP, lnAparitiiM
|
||||
|
||||
For i = 1 To Len(lcLista)
|
||||
lcSemn = Substr(lcLista, i, 1)
|
||||
If lcSemn = "+" Or lcSemn = "-"
|
||||
If lcSemn = "+"
|
||||
lnAparitiiP = lnAparitiiP + 1
|
||||
Endif
|
||||
If lcSemn = "-"
|
||||
lnAparitiiM = lnAparitiiM + 1
|
||||
Endif
|
||||
lnNextSemnP = At("+", lcLista, lnAparitiiP)
|
||||
lnNextSemnM = At("-", lcLista, lnAparitiiM)
|
||||
|
||||
If lnNextSemnP < lnNextSemnM And lnNextSemnP > 0
|
||||
lnNextSemn = lnNextSemnP
|
||||
Else
|
||||
If lnNextSemnM > 0
|
||||
lnNextSemn = lnNextSemnM
|
||||
Else
|
||||
lnNextSemn = lnNextSemnP
|
||||
Endif
|
||||
Endif
|
||||
lnLen = lnNextSemn - i
|
||||
If lnNextSemn = 0 And i < Len(lcLista) && ultimul cont
|
||||
lcCont = Substr(lcLista, i)
|
||||
Else
|
||||
lcCont = Substr(lcLista, i, lnLen)
|
||||
Endif
|
||||
Select (lcTabel)
|
||||
Insert Into (lcTabel) (valoare) Values (lcCont)
|
||||
Endif
|
||||
Endfor
|
||||
|
||||
Select (lcTabel)
|
||||
Insert Into (lcTabel) (valoare) Values ("")
|
||||
|
||||
Endproc && completeaza_lista_bal
|
||||
*------------------------------------------------------------------------------------
|
||||
*------------------------------------------------------------------------------------
|
||||
Procedure completeaza_lista_randuri
|
||||
Parameters tcLista, tcTabel
|
||||
|
||||
Local lcLista, lcTabel
|
||||
lcLista = Alltrim(tcLista)
|
||||
lcTabel = Alltrim(tcTabel)
|
||||
|
||||
Do While Len(lcLista) > 0 && +[R01]+[R02]
|
||||
lnRand = At("[R", lcLista) && 2
|
||||
If lnRand > 0
|
||||
|
||||
For i = 1 To lnRand - 2
|
||||
lcVal = Substr(lcLista, i, 1)
|
||||
Select (lcTabel)
|
||||
Insert Into (lcTabel) (valoare) Values (lcVal)
|
||||
Endfor
|
||||
|
||||
lnPI = At("]", lcLista) && paranteza inchisa = "]"
|
||||
lcVal = Substr(lcLista, lnRand - 1, lnPI - (lnRand - 2)) && rand
|
||||
Select (lcTabel)
|
||||
Insert Into (lcTabel) (valoare) Values (lcVal)
|
||||
lcLista = Substr(lcLista, lnPI + 1)
|
||||
Else
|
||||
For i = 1 To Len(lcLista)
|
||||
lcVal = Substr(lcLista, i, 1)
|
||||
Insert Into (lcTabel) (valoare) Values (lcVal)
|
||||
Endfor
|
||||
lcLista = ""
|
||||
Endif
|
||||
|
||||
Enddo
|
||||
|
||||
Select (lcTabel)
|
||||
Insert Into (lcTabel) (valoare) Values ("")
|
||||
|
||||
Endproc && completeaza_lista_randuri
|
||||
*------------------------------------------------------------------------------------
|
||||
Procedure desparte_formula_rj
|
||||
Parameters tcFormula, tcTabel
|
||||
|
||||
Local lcFormula, lcTabel
|
||||
lcFormula = Alltrim(tcFormula)
|
||||
lcTabel = Alltrim(tcTabel)
|
||||
|
||||
Select (lcTabel)
|
||||
Delete All
|
||||
|
||||
If !Empty(lcFormula)
|
||||
Dimension laSir(100), laSirCamp(100)
|
||||
lnElem = lista2array(lcFormula, @laSir, ";") && pe cate campuri am definit formula
|
||||
For i = 1 To lnElem &&
|
||||
lnCampuri = lista2array(laSir[i], @laSirCamp, "|") && intotdeauna am 4 chestii:
|
||||
* <traducere camp> <camp> <traducere_formula> <formula>
|
||||
Select (lcTabel)
|
||||
Append Blank
|
||||
Replace camp_numeT With Substr(laSirCamp[1], 2, Len(laSirCamp[1]) - 2), ;
|
||||
camp_nume With Substr(laSirCamp[2], 2, Len(laSirCamp[2]) - 2), ;
|
||||
traducere With Substr(laSirCamp[3], 2, Len(laSirCamp[3]) - 2), ;
|
||||
formula With Substr(laSirCamp[4], 2, Len(laSirCamp[4]) - 2)
|
||||
Endfor
|
||||
|
||||
Select (lcTabel)
|
||||
Go Top
|
||||
Endif
|
||||
|
||||
Endproc && desparte_formula_rj
|
||||
*------------------------------------------------------------------------------------
|
||||
***------------------------------------------------------------------------------------
|
||||
Procedure sterge_set_uzual
|
||||
Parameters tnId_set
|
||||
|
||||
Private pnId_set
|
||||
|
||||
If !Empty(tnId_set)
|
||||
pnId_set = tnId_set
|
||||
Else
|
||||
Return
|
||||
Endif
|
||||
|
||||
**
|
||||
lcSql = [begin pack_mg_evolutie.sterge_set_uzual(?pnId_set,?gnIdUtil); end;]
|
||||
lnSucces = goExecutor.oExecute(lcSql)
|
||||
|
||||
If lnSucces < 0
|
||||
AMESSAGEBOX(goExecutor.cEroare, 0 + 16, "Eroare")
|
||||
Return
|
||||
Endif
|
||||
|
||||
Endproc && sterge_set_uzual
|
||||
***------------------------------------------------------------------------------------
|
||||
Procedure calculeaza_set
|
||||
Parameters tcFile, tcNumeSet
|
||||
|
||||
Local lcNumeSet, lcFisExport
|
||||
|
||||
|
||||
lcalias = Juststem(tcFile)
|
||||
|
||||
Select Distinct id_set, ;
|
||||
gnLuna As lunaI, GNAN As anulI, ;
|
||||
gnLuna As lunaF, GNAN As anulF, ;
|
||||
00 As cumul, 0 As faraGrafic ;
|
||||
From (lcalias) ;
|
||||
Into Cursor cParametri
|
||||
|
||||
Select cParametri
|
||||
Scatter Name poset
|
||||
|
||||
poset.cumul = 1 && luni
|
||||
|
||||
loexport = Createobject("frm_parametri_calcul")
|
||||
loexport.Show(1)
|
||||
|
||||
If buton = 2
|
||||
Return
|
||||
Endif
|
||||
|
||||
Endproc && calculeaza_set
|
||||
***------------------------------------------------------------------------------------
|
||||
***---------------------------------------------------------------------------------------------
|
||||
Procedure listare_set
|
||||
Parameters tnId_set
|
||||
|
||||
Private pcTitlu, pnId_set, pcNume_set && ,pcDataOra
|
||||
Store '' To pcTitlu, pcNume_set
|
||||
pnId_set = tnId_set
|
||||
&& pcDataOra = Get_Ora(2)
|
||||
|
||||
Local aFormula, aImpart, lcSql, lnSucces, lcFormula
|
||||
Declare aFormula[1], aImpart[1]
|
||||
|
||||
lcSql = [begin PACK_MG_EVOLUTIE.GET_NUME_SET(?ALLTRIM(STR(pnId_set)),?@pcNume_set);end;]
|
||||
lnSucces = goExecutor.oExecute(lcSql)
|
||||
If lnSucces < 0
|
||||
AMESSAGEBOX(goExecutor.cEroare, 0 + 16, "Eroare")
|
||||
Return
|
||||
Endif
|
||||
|
||||
pcTitlu = Alltrim(pcNume_set)
|
||||
|
||||
Private poset
|
||||
Store '' To poset
|
||||
lcSchema1 = [rand C(4), nume_ind C(200), tip N(1), formula M(4), comentariu M(4)]
|
||||
lcSelect1 = ['select rand, nume_ind, tip, formula, comentariu from mg_indicatori where 1=2']
|
||||
lcOrder1 = [ord_rand, rand]
|
||||
lcFiltru1 = [id_set=] + Alltrim(Str(pnId_set))
|
||||
llAfiseaza = .F.
|
||||
gencursor('poSet', 'cSet', lcSelect1, lcFiltru1, lcSchema1, lcOrder1, llAfiseaza)
|
||||
poset.ca_baza1.afisare()
|
||||
|
||||
|
||||
Select * From cSet Into Cursor cListSet Readwrite
|
||||
|
||||
Select cListSet
|
||||
If _Tally = 0
|
||||
AMESSAGEBOX("Setul nu contine indicatori", 0 + 48, "Atentie")
|
||||
Return
|
||||
Endif
|
||||
|
||||
Select cListSet
|
||||
Replace All formula With Strtran(formula, ";<", ";" + Chr(13) + "<") For tip = 1
|
||||
Replace All formula With Strtran(formula, "PD", "Precedent Debit") For tip = 1
|
||||
Replace All formula With Strtran(formula, "PC", "Precedent Credit") For tip = 1
|
||||
Replace All formula With Strtran(formula, "RD", "Rulaj Debit") For tip = 1
|
||||
Replace All formula With Strtran(formula, "RC", "Rulaj Credit") For tip = 1
|
||||
Replace All formula With Strtran(formula, "TD", "Total Debit") For tip = 1
|
||||
Replace All formula With Strtran(formula, "TC", "Total Credit") For tip = 1
|
||||
Replace All formula With Strtran(formula, "SD", "Sold Debit") For tip = 1
|
||||
Replace All formula With Strtran(formula, "SC", "Sold Credit") For tip = 1
|
||||
Replace All formula With Strtran(formula, ">", "> ") For tip = 1
|
||||
|
||||
Select cListSet
|
||||
Scan For tip = 2 && registru jurnal
|
||||
lcFormula = ''
|
||||
lnCampuri = lista2array(formula, @aFormula, ";")
|
||||
For i = 1 To lnCampuri
|
||||
ln = lista2array(aFormula[i], @aImpart, "|")
|
||||
lcFormula = lcFormula + aImpart[1] + ": " + Substr(aImpart[3], 2, Len(aImpart[3]) - 2) + Chr(13)
|
||||
Replace formula With lcFormula
|
||||
Endfor
|
||||
Endscan
|
||||
|
||||
|
||||
*!* Select cListSet
|
||||
*!* Report Form rList_set To Printer Prompt Preview
|
||||
goExport.export2frx([cListSet], [rList_set])
|
||||
If Used("cListSet")
|
||||
Use In cListSet
|
||||
Endif
|
||||
|
||||
Release poset
|
||||
Endproc && listare_set
|
||||
***---------------------------------------------------------------------------------------------
|
||||
Procedure pre_listare_formule_set
|
||||
Parameters tnId_set
|
||||
|
||||
Local aFormula, aImpart, lcSql, lnSucces, lcFormula
|
||||
Declare aFormula[1], aImpart[1]
|
||||
|
||||
Private poset
|
||||
Store '' To poset
|
||||
|
||||
Local lcSchema1, lcSelect1, lcOrder1, lcFiltru1, llAfiseaza
|
||||
lcSchema1 = [rand C(4), nume_ind C(200), tip N(1), formula M(4), comentariu M(4), ales N(1)]
|
||||
lcSelect1 = [select rand, nume_ind, tip, formula, comentariu, ales from mg_indicatori]
|
||||
lcOrder1 = []
|
||||
lcgroup = []
|
||||
lcFiltru1 = []
|
||||
lcFiltruOriginal = [id_set=] + Alltrim(Str(tnId_set))
|
||||
llModParam = .T.
|
||||
llAfiseaza = .F.
|
||||
|
||||
gencursor('poset', 'cSet', lcSelect1, lcFiltru1, lcSchema1, lcOrder1, llAfiseaza, lcgroup, llModParam, lcFiltruOriginal)
|
||||
poset.ca_baza1.afisare()
|
||||
|
||||
Release poset
|
||||
|
||||
Select * From cSet Into Cursor cListSet Readwrite
|
||||
If Used("cSet")
|
||||
Use In cSet
|
||||
Endif
|
||||
|
||||
Select cListSet
|
||||
If _Tally = 0
|
||||
AMESSAGEBOX("Setul nu contine indicatori", 0 + 48, "Atentie")
|
||||
Return
|
||||
Endif
|
||||
|
||||
Select cListSet
|
||||
Replace All formula With Strtran(formula, ";<", ";" + Chr(13) + "<") For tip = 1
|
||||
Replace All formula With Strtran(formula, "PD", "Precedent Debit") For tip = 1
|
||||
Replace All formula With Strtran(formula, "PC", "Precedent Credit") For tip = 1
|
||||
Replace All formula With Strtran(formula, "RD", "Rulaj Debit") For tip = 1
|
||||
Replace All formula With Strtran(formula, "RC", "Rulaj Credit") For tip = 1
|
||||
Replace All formula With Strtran(formula, "TD", "Total Debit") For tip = 1
|
||||
Replace All formula With Strtran(formula, "TC", "Total Credit") For tip = 1
|
||||
Replace All formula With Strtran(formula, "SD", "Sold Debit") For tip = 1
|
||||
Replace All formula With Strtran(formula, "SC", "Sold Credit") For tip = 1
|
||||
Replace All formula With Strtran(formula, ">", "> ") For tip = 1
|
||||
|
||||
Select cListSet
|
||||
Scan For tip = 2 && registru jurnal
|
||||
lcFormula = ''
|
||||
lnCampuri = lista2array(formula, @aFormula, ";")
|
||||
For i = 1 To lnCampuri
|
||||
ln = lista2array(aFormula[i], @aImpart, "|")
|
||||
lcFormula = lcFormula + aImpart[1] + ": " + Substr(aImpart[3], 2, Len(aImpart[3]) - 2) + Chr(13)
|
||||
Replace formula With lcFormula
|
||||
Endfor
|
||||
Endscan
|
||||
|
||||
Release poset
|
||||
|
||||
Return "cListSet"
|
||||
|
||||
Endproc && pre_listare_formule_set
|
||||
***---------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
288
COMUN/programe/oproceduri_stocuri.prg
Normal file
288
COMUN/programe/oproceduri_stocuri.prg
Normal file
@@ -0,0 +1,288 @@
|
||||
*!* 07.05.2010
|
||||
*!* marius.mutu
|
||||
*!* viz_stocuri - + codbare
|
||||
|
||||
PROCEDURE viz_stocuri
|
||||
PARAMETERS tnTipGest,tcTipGest
|
||||
|
||||
LOCAL lnTipGest, lcFiltruInitial,lcTipGest, lcFiltruPermis
|
||||
lcFiltruTipGest = ""
|
||||
lcFiltruPermis = ""
|
||||
lnTipGest = tnTipGest
|
||||
lcTipGest = ""
|
||||
IF EMPTY(tcTipGest)
|
||||
lcTipGest = []
|
||||
ELSE
|
||||
lcTipGest = tcTipGest
|
||||
ENDIF
|
||||
|
||||
lcFiltruInitial = [a.an=]+ Alltrim(Str(gnAn))+[ and a.luna=]+ Alltrim(Str(gnLuna))+;
|
||||
STRTRAN(gcCondSucursala,[id_sucursala],[a.id_sucursala])
|
||||
IF !EMPTY(lnTipGest)
|
||||
lcFiltruTipGest = [ and a.nr_pag = ] + ALLTRIM(STR(lnTipGest))
|
||||
ENDIF
|
||||
|
||||
IF EMPTY(gcGestPermis)
|
||||
lcFiltruPermis = [ and 1=2]
|
||||
else
|
||||
lcFiltruPermis = [ and a.id_gestiune in (] + gcGestPermis + [)]
|
||||
EndIf
|
||||
|
||||
lcFiltruInitial = lcFiltruInitial + lcFiltruTipGest + lcFiltruPermis
|
||||
|
||||
LOCAL lnStocObinv
|
||||
lnStocObinv = 0
|
||||
DO INAINTE_DE_STOC WITH gnAn, gnLuna, tnTipGest, lnStocObinv in oinainte_de.prg
|
||||
|
||||
PRIVATE postocuri,pcschema,pcselect,pcfiltru,pcorder
|
||||
STORE '' TO postocuri
|
||||
|
||||
*!* 07.05.2010
|
||||
pcschema=['nr_crt n(6),id_stoc n(20),an n(4),luna n(2),id_articol n(10),serie c(100),pret n(16,4),pretv n(16,4),'+]+;
|
||||
['tva n(16,4),tvav n(16,4),cants n(14,3),cant n(14,3),cante n(14,3),cont c(4),'+]+;
|
||||
['acont c(4),pretd n(16,4),dataora d,datain d,dataout d,proc_tvav n(5,2),'+]+;
|
||||
['id_gestiune n(5),codmat c(50),denumire c(100),um c(6),nr_pag n(2),nume_gestiune c(50),'+]+;
|
||||
['cgest c(20),um2 c(10),cant_bax n(9,4),grupa c(100),subgrupa c(100),id_valuta n(10), nume_val c(4),'+]+;
|
||||
['codmatf c(50), lot c(50), adata_expirare T,id_sucursala N(5),sucursala C(100),'+]+;
|
||||
['id_lucrare_rez N(10),nrord_rez C(50),id_part_rez N(10),part_rez C(100), codbare c(100),id_part N(10),furn_princ c(100), id_furnizor N(10), furnizor c(100), codnc8 C(20), greutate N(12,4), tara_origine C(100)']
|
||||
|
||||
pcselect=['select row_number() over (order by a.denumire) as nr_crt,a.id_stoc,a.an,a.luna,a.id_articol,a.serie,'+]+;
|
||||
['a.pret,a.pretv,a.tva,a.tvav,a.cants,a.cant,a.cante,a.cont,a.acont,a.pretd,a.dataora,'+]+;
|
||||
['a.datain,a.dataout,a.proc_tvav,'+]+;
|
||||
['a.id_gestiune,a.codmat,a.denumire,a.um,a.nr_pag,a.nume_gestiune,a.cgest,a.um2,a.cant_bax,a.grupa,a.subgrupa, a.id_valuta, a.nume_val, a.codmatf, a.lot, a.adata_expirare,'+]+;
|
||||
['a.id_sucursala,a.sucursala,'+]+;
|
||||
['a.id_lucrare_rez,a.nrord_rez,a.id_part_rez,a.part_rez, a.codbare,id_part,furn_princ, id_furnizor, furnizor, a.codnc8, a.greutate, a.tara_origine '+]+;
|
||||
['from vstoc a where 1=2']
|
||||
*!* 07.05.2010 ^
|
||||
pcfiltru = [1=2]
|
||||
pcorder=[1]
|
||||
llAfiseaza=.F.
|
||||
_SCREEN.MOUSEPOINTER= 11
|
||||
gencursor('postocuri','crsStocuri',pcselect,pcfiltru,pcschema,pcorder,llAfiseaza)
|
||||
postocuri.ca_baza1.afisare()
|
||||
|
||||
LOCAL loStocuri
|
||||
loStocuri=CREATEOBJECT('frm_stocuri')
|
||||
_SCREEN.MOUSEPOINTER= 0
|
||||
loStocuri.ntipgest = lnTipGest
|
||||
PRIVATE pcListTipGest
|
||||
pcListTipGest = []
|
||||
lnOptgrValue = IIF(loStocuri.ntipgest<>0,IIF(loStocuri.ntipgest=6,2,IIF(loStocuri.ntipgest=7,4,1)),3)
|
||||
WITH loStocuri
|
||||
.Lb_titlu_alb_b121.CAPTION = [STOCURI] + IIF(!EMPTY(lcTipGest),[ / ] + lcTipGest,[])
|
||||
.cFiltruInitial = lcFiltruInitial
|
||||
.optgrup.VALUE = lnOptgrValue
|
||||
IF lnOptgrValue = 1
|
||||
.optgrup.option2.VISIBLE = .F.
|
||||
.optgrup.option3.VISIBLE = .F.
|
||||
.optgrup.option4.VISIBLE = .F.
|
||||
ENDIF
|
||||
IF lnOptgrValue = 2
|
||||
.optgrup.option1.VISIBLE = .F.
|
||||
.optgrup.option3.VISIBLE = .F.
|
||||
.optgrup.option4.VISIBLE = .F.
|
||||
ENDIF
|
||||
IF lnOptgrValue = 4
|
||||
.optgrup.option1.VISIBLE = .F.
|
||||
.optgrup.option2.VISIBLE = .F.
|
||||
.optgrup.option3.VISIBLE = .F.
|
||||
ENDIF
|
||||
.optgrup.ENABLED = IIF(.ntipgest<>0,.F.,.T.)
|
||||
IF .But_modifica1.VISIBLE
|
||||
.But_modifica1.VISIBLE = IIF(.ntipgest<>0,.T.,.F.)
|
||||
ENDIF
|
||||
ENDWITH
|
||||
loStocuri.SHOW(1)
|
||||
RELEASE postocuri
|
||||
|
||||
ENDPROC && viz_stocuri
|
||||
************************************************************************************************
|
||||
PROCEDURE viz_stocuri_pretv
|
||||
PARAMETERS tnTipGest,tcTipGest
|
||||
|
||||
LOCAL lnTipGest, lcFiltruInitial,lcTipGest, lcFiltruPermis
|
||||
lcFiltruTipGest = ""
|
||||
lcFiltruPermis = ""
|
||||
lnTipGest = tnTipGest
|
||||
lcTipGest = ""
|
||||
IF EMPTY(tcTipGest)
|
||||
lcTipGest = []
|
||||
ELSE
|
||||
lcTipGest = tcTipGest
|
||||
ENDIF
|
||||
|
||||
lcFiltruInitial = [a.an=]+ Alltrim(Str(gnAn))+[ and a.luna=]+ Alltrim(Str(gnLuna))+;
|
||||
STRTRAN(gcCondSucursala,[id_sucursala],[a.id_sucursala])
|
||||
IF !EMPTY(lnTipGest)
|
||||
lcFiltruTipGest = [ and a.nr_pag = ] + ALLTRIM(STR(lnTipGest))
|
||||
ENDIF
|
||||
|
||||
IF EMPTY(gcGestPermis)
|
||||
lcFiltruPermis = [ and 1=2]
|
||||
else
|
||||
lcFiltruPermis = [ and a.id_gestiune in (] + gcGestPermis + [)]
|
||||
EndIf
|
||||
|
||||
lcFiltruInitial = lcFiltruInitial + lcFiltruTipGest + lcFiltruPermis
|
||||
|
||||
LOCAL lnStocObinv
|
||||
lnStocObinv = 0
|
||||
DO INAINTE_DE_STOC WITH gnAn, gnLuna, tnTipGest, lnStocObinv in oinainte_de.prg
|
||||
|
||||
PRIVATE postocuri,pcschema,pcselect,pcfiltru,pcorder
|
||||
STORE '' TO postocuri
|
||||
|
||||
pcschema=['nr_crt n(6),an n(4),luna n(2),id_articol n(10),serie c(100),pretv n(16,4),'+]+;
|
||||
['tvav n(16,4),cants n(14,3),cant n(14,3),cante n(14,3),cont c(4),'+]+;
|
||||
['acont c(4),dataora d,datain d,dataout d,proc_tvav n(5,2),'+]+;
|
||||
['id_gestiune n(5),codmat c(50),denumire c(100),'+]+;
|
||||
['um c(6),nr_pag n(2),nume_gestiune c(50),cgest c(20),um2 c(10),cant_bax n(9,4),grupa c(100),'+]+;
|
||||
['subgrupa c(100), codmatf c(50), lot c(50), adata_expirare T,id_sucursala n(5),sucursala c(100),'+]+;
|
||||
['id_lucrare_rez N(10),nrord_rez C(50),id_part_rez N(10),part_rez C(100),id_part n(10),furn_princ c(100), id_furnizor N(10), furnizor c(100), codnc8 C(20), greutate N(12,4), tara_origine C(100)']
|
||||
pcselect=['select row_number() over (order by a.denumire) as nr_crt,a.an,a.luna,a.id_articol,a.serie,'+]+;
|
||||
['a.pretv,a.tvav,a.cants,'+]+;
|
||||
['a.cant,a.cante,a.cont,a.acont,a.dataora,'+]+;
|
||||
['a.datain,a.dataout,a.proc_tvav,'+]+;
|
||||
['a.id_gestiune,a.codmat,a.denumire,a.um,a.nr_pag,a.nume_gestiune,a.cgest,a.um2,a.cant_bax,a.grupa,'+]+;
|
||||
['a.subgrupa, a.codmatf, a.lot, a.adata_expirare,a.id_sucursala,a.sucursala,'+]+;
|
||||
['a.id_lucrare_rez,a.nrord_rez,a.id_part_rez,a.part_rez,a.id_part,a.furn_princ, a.id_furnizor, a.furnizor, a.codnc8, a.greutate, a.tara_origine '+]+;
|
||||
[' from ]+ gcS+[.vstoc_pretv a where 1=2']
|
||||
|
||||
pcfiltru = [1=2]
|
||||
pcorder=[1]
|
||||
llAfiseaza=.F.
|
||||
_SCREEN.MOUSEPOINTER= 11
|
||||
gencursor('postocuri','crsStocuri',pcselect,pcfiltru,pcschema,pcorder,llAfiseaza)
|
||||
postocuri.ca_baza1.afisare()
|
||||
|
||||
LOCAL loStocuri
|
||||
loStocuri=CREATEOBJECT('frm_stocuri_pretv')
|
||||
_SCREEN.MOUSEPOINTER= 0
|
||||
loStocuri.ntipgest = lnTipGest
|
||||
PRIVATE pcListTipGest
|
||||
pcListTipGest = []
|
||||
WITH loStocuri
|
||||
.Lb_titlu_alb_b121.CAPTION = [STOCURI] + IIF(!EMPTY(lcTipGest),[ / ] + lcTipGest,[])
|
||||
.cFiltruInitial = lcFiltruInitial
|
||||
ENDWITH
|
||||
loStocuri.SHOW(1)
|
||||
RELEASE postocuri
|
||||
|
||||
ENDPROC && viz_stocuri_pretv
|
||||
************************************************************************************************
|
||||
PROCEDURE viz_stocuri_obinv
|
||||
PARAMETERS tnTipGest,tcTipGest, tlInFolosinta
|
||||
|
||||
LOCAL lnTipGest, lcFiltruInitial,lcTipGest, lcFiltruPermis
|
||||
lcFiltruTipGest = ""
|
||||
lcFiltruPermis = ""
|
||||
lnTipGest = tnTipGest
|
||||
lcTipGest = ""
|
||||
|
||||
IF EMPTY(tcTipGest)
|
||||
lcTipGest = []
|
||||
ELSE
|
||||
lcTipGest = tcTipGest
|
||||
ENDIF
|
||||
|
||||
lcFiltruInitial = [a.an=]+ Alltrim(Str(gnAn))+[ and a.luna=]+ Alltrim(Str(gnLuna))+;
|
||||
STRTRAN(gcCondSucursala,[id_sucursala],[a.id_sucursala])
|
||||
*!* 05.06.2008
|
||||
*!* nu este nevoie de nr_pag in vstoc_obinv
|
||||
*!* IF !EMPTY(lnTipGest)
|
||||
*!* lcFiltruTipGest = [ and a.nr_pag = ] + ALLTRIM(STR(lnTipGest))
|
||||
*!* ENDIF
|
||||
*!* 05.06.2008 ^
|
||||
|
||||
IF EMPTY(gcGestPermis)
|
||||
lcFiltruPermis = [ and 1=2]
|
||||
else
|
||||
lcFiltruPermis = [ and a.id_gestiune in (] + gcGestPermis + [)]
|
||||
EndIf
|
||||
|
||||
lcFiltruInitial = lcFiltruInitial + lcFiltruTipGest + lcFiltruPermis
|
||||
|
||||
LOCAL lnStocObinv
|
||||
lnStocObinv = 1
|
||||
DO INAINTE_DE_STOC WITH gnAn, gnLuna, tnTipGest, lnStocObinv in oinainte_de.prg
|
||||
|
||||
|
||||
PRIVATE postocuri
|
||||
Local lcSelect, lcFiltru, lcSchema, lcOrder, llAfiseaza, lcGroup, llModParam, lcFiltruOriginal
|
||||
STORE '' TO postocuri
|
||||
|
||||
IF tlInFolosinta
|
||||
lcSchema = [nr_crt n(6),id_stoc n(20),an n(4),luna n(2),id_articol n(10),serie c(100), lot c(20), pret n(16,4),cants n(14,3),cant n(14,3),cante n(14,3),cont c(4), ]+;
|
||||
[acont c(4),pretd n(16,4),dataora d,datain d,dataout d, ]+;
|
||||
[id_gestiune n(5),codmat c(50),denumire c(100),id_responsabil n(10),nresp c(30), ]+;
|
||||
[um c(6),cgest c(20),datapif d,dnf N(5),dns_luni n(10),nume_gestiune c(50), ]+;
|
||||
[marca N(10), id_meseria N(5), meserie C(64), id_formatia N(5), formatia C(64), dataang D, datalic D, ]+;
|
||||
[id_grupa N(5), grupa C(100), id_subgrupa N(5), subgrupa C(100), ]+;
|
||||
[um2 c(10),cant_bax n(9,4),id_sucursala N(5),sucursala C(100), furn_princ C(100), codnc8 C(20), greutate N(12,4), tara_origine C(100)]
|
||||
ELSE
|
||||
lcschema = [nr_crt n(6),id_stoc n(20),an n(4),luna n(2),id_articol n(10),serie c(100),lot c(20),pret n(16,4),cants n(14,3),cant n(14,3),cante n(14,3),cont c(4), ]+;
|
||||
[acont c(4),pretd n(16,4),dataora d,datain d,dataout d, ]+;
|
||||
[id_gestiune n(5),codmat c(50),denumire c(100),id_responsabil n(10),nresp c(30), ]+;
|
||||
[um c(6),cgest c(20),datapif d,dns_luni n(10),nume_gestiune c(50), ]+;
|
||||
[um2 c(10),cant_bax n(9,4),grupa c(100),subgrupa c(100),id_sucursala N(5),sucursala C(100), furn_princ C(100), codnc8 C(20), greutate N(12,4), tara_origine C(100)]
|
||||
ENDIF
|
||||
|
||||
IF tlInFolosinta
|
||||
lcselect = [select row_number() over (order by denumire) as nr_crt, ]+;
|
||||
[id_stoc, an, luna, id_articol, serie, lot,pret, cants, ]+;
|
||||
[cant, cante, cont, acont, pretd, dataora, datain, dataout, id_gestiune, ]+;
|
||||
[codmat, denumire, id_responsabil, nresp, ]+;
|
||||
[um, cgest, datapif, dnf, dns_luni, nume_gestiune, ]+;
|
||||
[marca, id_meseria, meseria, id_formatia, formatia, dataang, datalic, ]+;
|
||||
[id_grupa, grupa, id_subgrupa, subgrupa, um2, cant_bax,id_sucursala,sucursala,furn_princ, codnc8, greutate, tara_origine ]+;
|
||||
[ from vstoc_obinv_sal a]
|
||||
|
||||
ELSE
|
||||
lcselect = [select row_number() over (order by denumire) as nr_crt,id_stoc,an,luna,id_articol,serie,lot,pret,cants, ]+;
|
||||
[cant,cante,cont,acont,pretd,dataora,datain,dataout,id_gestiune,codmat,denumire,id_responsabil,nresp, ]+;
|
||||
[um,cgest,datapif,dns_luni,nume_gestiune,um2,cant_bax,grupa,subgrupa,id_sucursala,sucursala,furn_princ, codnc8, greutate, tara_origine ]+;
|
||||
[ from vstoc_obinv a]
|
||||
ENDIF
|
||||
|
||||
lcFiltru = [1=2]
|
||||
lcOrder = [1]
|
||||
lcgroup = []
|
||||
llAfiseaza=.F.
|
||||
lcFiltruOriginal = []
|
||||
llModParam = .T.
|
||||
_SCREEN.MOUSEPOINTER= 11
|
||||
|
||||
gencursor('postocuri','crsStocuri', lcSelect, lcFiltru, lcSchema, lcOrder, llAfiseaza, lcGroup, llModParam, lcFiltruOriginal)
|
||||
postocuri.ca_baza1.afisare()
|
||||
_SCREEN.MOUSEPOINTER= 0
|
||||
|
||||
PRIVATE pcListTipGest
|
||||
LOCAL loStocuri
|
||||
pcListTipGest = []
|
||||
loStocuri=CREATEOBJECT('frm_stocuri_obinv',tlInFolosinta)
|
||||
loStocuri.ntipgest = lnTipGest
|
||||
lnOptgrValue = IIF(lnTipGest<>0,IIF(lnTipGest=6,2,1),3)
|
||||
WITH loStocuri
|
||||
.Lb_titlu_alb_b121.CAPTION = [STOCURI / OBIECTE DE INVENTAR AFLATE IN FOLOSINTA]
|
||||
.cFiltruInitial = lcFiltruInitial
|
||||
.optgrup.VALUE = lnOptgrValue
|
||||
IF lnOptgrValue = 1
|
||||
.optgrup.option2.VISIBLE = .F.
|
||||
.optgrup.option3.VISIBLE = .F.
|
||||
ENDIF
|
||||
IF lnOptgrValue = 2
|
||||
.optgrup.option1.VISIBLE = .F.
|
||||
.optgrup.option3.VISIBLE = .F.
|
||||
ENDIF
|
||||
.optgrup.ENABLED = IIF(.ntipgest<>0,.F.,.T.)
|
||||
IF .But_modifica1.VISIBLE
|
||||
.But_modifica1.VISIBLE = IIF(.ntipgest<>0,.T.,.F.)
|
||||
ENDIF
|
||||
ENDWITH
|
||||
loStocuri.SHOW(1)
|
||||
RELEASE postocuri
|
||||
|
||||
ENDPROC && viz_stocuri_obinv
|
||||
|
||||
|
||||
|
||||
67
COMUN/programe/oproceduri_util.prg
Normal file
67
COMUN/programe/oproceduri_util.prg
Normal file
@@ -0,0 +1,67 @@
|
||||
*!* 03.01.2017
|
||||
*!* GetProcTvaStandard TVA 19%
|
||||
|
||||
*** proceduri utilitare
|
||||
|
||||
*!* get_oluna() intoarce un obiect cu luna, anul de inceput, luna, anul de sfarsit din calendar
|
||||
*!* tnAn, tnLuna - daca procedura da eroare se anul, luna inceput/sfarsit se intializeaza cu aceste valori
|
||||
Function get_oluna
|
||||
Lparameters tnAn, tnLuna
|
||||
|
||||
Local loReturn
|
||||
loReturn = Createobject("EMPTY")
|
||||
Local lcSelect, lcCursor, lnSucces, lnMaxLuna, lnMinLuna, lnLunaMax, lnAnMax, lnLunaMin, lnAnMin
|
||||
|
||||
lnLunaMin = tnAn
|
||||
lnAnMin = tnLuna
|
||||
lnLunaMax = tnAn
|
||||
lnAnMax = tnLuna
|
||||
|
||||
AddProperty(loReturn, 'lunamin',0)
|
||||
AddProperty(loReturn, 'anmin',0)
|
||||
AddProperty(loReturn, 'lunamax',0)
|
||||
AddProperty(loReturn, 'anmax',0)
|
||||
|
||||
|
||||
lcSelect = [select max(anul*12+luna) as maxluna, min(anul*12+luna) as minluna from calendar]
|
||||
lcCursor = [crsCalendarTemp]
|
||||
|
||||
lnSucces = goExecutor.oExecute(lcSelect,lcCursor)
|
||||
If lnSucces > 0
|
||||
|
||||
Select crsCalendarTemp
|
||||
lnMaxLuna = maxluna
|
||||
lnMinLuna = minluna
|
||||
|
||||
lnLunaMax = Round(Mod(lnMaxLuna,12),0)
|
||||
lnAnMax = Int(lnMaxLuna/12)
|
||||
If lnLunaMax = 0 And lnAnMax <> 0
|
||||
lnLunaMax = 12
|
||||
lnAnMax = lnAnMax - 1
|
||||
Endif
|
||||
|
||||
lnLunaMin = Round(Mod(lnMinLuna,12),0)
|
||||
lnAnMin = Int(lnMinLuna/12)
|
||||
If lnLunaMin = 0 And lnAnMin <> 0
|
||||
lnLunaMin = 12
|
||||
lnAnMin = lnAnMin - 1
|
||||
Endif
|
||||
|
||||
|
||||
|
||||
If Used(lcCursor)
|
||||
Use In (lcCursor)
|
||||
Endif
|
||||
Else
|
||||
aMESSAGEBOX(goExecutor.cEroare,0+16,'Eroare')
|
||||
Endif
|
||||
|
||||
loReturn.lunamin = lnLunaMin
|
||||
loReturn.anmin = lnAnMin
|
||||
loReturn.lunamax = lnLunaMax
|
||||
loReturn.anmax = lnAnMax
|
||||
|
||||
Return loReturn
|
||||
|
||||
Endfunc && get_oluna
|
||||
|
||||
323
COMUN/programe/orap_comenzi.prg
Normal file
323
COMUN/programe/orap_comenzi.prg
Normal file
@@ -0,0 +1,323 @@
|
||||
***************************************************************************************************************
|
||||
Procedure rap_marfa_comenzi_facturate_partial
|
||||
Private pcDataOra
|
||||
lcSql = [select * from ] + gcS + [.com_vrap_marfa_nelivrata]
|
||||
lcCursor = [crsraport]
|
||||
lnSucces = goExecutor.oExecute(lcSql, lcCursor)
|
||||
If lnSucces < 0
|
||||
amessagebox(goExecutor.cEroare, 0 + 48, "Eroare")
|
||||
Return
|
||||
Endif
|
||||
|
||||
*!* modificare v 2.0.11
|
||||
*!* If Reccount('crsraport')>0
|
||||
*!* pcDataOra=get_ora(2)
|
||||
*!* Keyboard "{ctrl+f10}"
|
||||
*!* Select crsraport
|
||||
*!* Report Form rap_marfa_nelivrata To Printer Prompt Preview
|
||||
*!* Else
|
||||
*!* amessagebox("Nu exista date pentru listare!",0+64,"Listare")
|
||||
*!* Endif
|
||||
goExport.export2frx(lcCursor, [rap_marfa_nelivrata])
|
||||
*!* modificare v 2.0.11 ^
|
||||
If Used(lcCursor)
|
||||
Use In (lcCursor)
|
||||
Endif
|
||||
Endproc && rap_marfa_comenzi_facturate_partial
|
||||
***************************************************************************************************************
|
||||
Procedure rap_vanzari_perioada
|
||||
Local lnOptiune
|
||||
lnOptiune = xmenu("\<Generare raport vanzari;\<Vizualizare raport vanzari")
|
||||
Do Case
|
||||
Case lnOptiune = 1 && generare tabel comenzi bazate pe vanzari
|
||||
genereaza_rap_vanz_per()
|
||||
Case lnOptiune = 2 && vizualizare tabel comenzi bazate pe vanzari
|
||||
viz_rap_vanz_per()
|
||||
Endcase
|
||||
ENDPROC
|
||||
|
||||
PROCEDURE sterg_rap_vanz_per
|
||||
LPARAMETERS tnIdComRapVanz
|
||||
|
||||
LOCAL llSucces
|
||||
PRIVATE pnIdComRapVanz
|
||||
IF !EMPTY(tnIdComRapVanz) AND TYPE('tnIdComRapVanz') = 'N'
|
||||
pnIdComRapVanz = m.tnIdComRapVanz
|
||||
ENDIF
|
||||
|
||||
lcSql = [begin pack_comenzi.raport_proc_vanzari_sterge(?pnIdComRapVanz); end;]
|
||||
llSucces = goExecutor.oExecuta(lcSql)
|
||||
|
||||
RETURN llSucces
|
||||
ENDPROC && sterg_rap_vanz_per
|
||||
|
||||
****************************************
|
||||
* Afiseaza centralizatorul de rapoarte bazate pe vanzari si se alege un raport - ulterior se vizualizeaza/editeaza
|
||||
* Intoarce id-ul raportului ales - pentru folosirea in (re)vizualizarea raportului
|
||||
****************************************
|
||||
Function viz_rap_vanz_per
|
||||
|
||||
Local loFrm As "frm_rap_vanz_centr"
|
||||
Local lcCursor, lcSql, lnIdComRapVanz, lnSucces
|
||||
|
||||
lnIdComRapVanz = 0
|
||||
|
||||
lcSql = [{call pack_comenzi.centralizator_rapoarte(?gnLuna, ?gnAn, ?gnId_sectie)}]
|
||||
lcCursor = [crsrapoarte]
|
||||
lnSucces = goExecutor.oExecute(lcSql, lcCursor)
|
||||
If lnSucces < 0
|
||||
amessagebox(goExecutor.cEroare, 0 + 48, "Eroare")
|
||||
Else
|
||||
If Reccount("crsrapoarte") > 0
|
||||
loFrm = Createobject("frm_rap_vanz_centr")
|
||||
loFrm.Show(1)
|
||||
If gnButon = 1
|
||||
lnIdComRapVanz = crsrapoarte.id_comrapvanz
|
||||
Endif
|
||||
Else
|
||||
amessagebox("Nu exista rapoarte in luna curenta!", 48, "Atentie")
|
||||
Endif
|
||||
Endif
|
||||
Use In (Select(lcCursor))
|
||||
Return m.lnIdComRapVanz
|
||||
Endfunc && viz_rap_vanz_per
|
||||
|
||||
***************************************************************************************************************
|
||||
Procedure genereaza_rap_vanz_per
|
||||
Lparameters tnIdComRapVanz, ttDataI, ttDataS
|
||||
* tnIdComRapVanz: optional = daca este completat se modifica raportul deja generat, altfel se genereaza un raport nou
|
||||
|
||||
Private ptDataI, ptDataS, pnIdGrupaGest, pcGrupaGest, pnProcent, pnIdComRapVanz, llSucces
|
||||
Local loFrm, lcSql, lcCursor, lnSucces, lcCursor2, llGenereaza
|
||||
lcCursor = [crsraport]
|
||||
lcCursor2 = [crscantitati]
|
||||
ptDataS = IIF(!EMPTY(m.ttDataI), m.ttDataI, get_Ora())
|
||||
ptDataI = IIF(!EMPTY(m.ttDataS), m.ttDataS, m.ptDataS - 60 * 60 * 24)
|
||||
pnIdGrupaGest = Null
|
||||
pcGrupaGest = []
|
||||
|
||||
pnIdComRapVanz = tnIdComRapVanz
|
||||
llGenereaza = !EMPTY(m.pnIdComRapVanz)
|
||||
|
||||
If Empty(m.tnIdComRapVanz)
|
||||
pnProcent = citeste_optiune_firma('PROCVANZPER')
|
||||
loFrm = Createobject("frm_rap_vanz")
|
||||
loFrm.Show(1)
|
||||
If gnButon <> 1
|
||||
Return
|
||||
Endif
|
||||
|
||||
lcSql = [{call pack_comenzi.raport_proc_vanzari(?ptDataI,?ptDataS,?pnIdGrupaGest,?pnProcent,?gnId_sectie,?gnIdUtil,?gnIdSucursala)}]
|
||||
Else
|
||||
lcSql = [{call pack_comenzi.raport_proc_vanzari_viz(?pnIdComRapVanz)}]
|
||||
Endif
|
||||
|
||||
llSucces = goExecutor.oExecuta(lcSql, lcCursor)
|
||||
|
||||
If m.llSucces
|
||||
If Reccount(lcCursor) > 0
|
||||
* Select *, IIF(cantitate <> 0, 1, 0) as validat From (lcCursor) Into CURSOR (lcCursor2) Order By nume_gestiune, subgrupa, denumire READWRITE
|
||||
*!* IF TYPE(lcCursor + '.validat') = 'U'
|
||||
*!* Select *, IIF(cantitate <> 0, 1, 0) as validat From (lcCursor) Into CURSOR (lcCursor2) Order By nume_gestiune, subgrupa, denumire READWRITE
|
||||
*!* ELSE
|
||||
Select * From (lcCursor) Into CURSOR (lcCursor2) Order By nume_gestiune, subgrupa, denumire READWRITE
|
||||
SELECT (lcCursor2)
|
||||
INDEX on id_comrapvanzelem TAG id
|
||||
SET ORDER TO
|
||||
|
||||
Use In (Select(lcCursor))
|
||||
*!* ENDIF
|
||||
*!* copiaza_structura_cursor(lcCursor, lcCursor2)
|
||||
*!* lnSucces = -1
|
||||
*!* Insert Into (lcCursor2) Select * From (lcCursor) Order By nume_gestiune, subgrupa, denumire
|
||||
Endif
|
||||
Endif
|
||||
|
||||
If Used(m.lcCursor2)
|
||||
Select (m.lcCursor2)
|
||||
Go Top
|
||||
pnIdComRapVanz = id_comrapvanz
|
||||
*!* Do While !llSucces
|
||||
loFrm = Createobject("frm_rap_vanz_cant", ptDataI, ptDataS, pnIdComRapVanz)
|
||||
loFrm.Show(1)
|
||||
If gnButon = 1
|
||||
llSucces = .T.
|
||||
IF m.llGenereaza
|
||||
listeaza_rap_vanz_per(m.pnIdComRapVanz)
|
||||
ENDIF
|
||||
*!* Else
|
||||
*!* llSucces = .F.
|
||||
*!* Endif
|
||||
ENDIF
|
||||
*!* Enddo
|
||||
Release pnIdComRapVanz
|
||||
Else
|
||||
amessagebox("Nu exista articole in perioada care sa aiba procentul de vanzari specificat!", 48, "Atentie")
|
||||
Endif
|
||||
|
||||
|
||||
|
||||
Use In (Select(lcCursor2))
|
||||
|
||||
Release loFrm, lcSql, lcCursor, lnSucces, ptDataI, ptDataS, pnIdGrupaGest, pcGrupaGest
|
||||
Endproc
|
||||
***************************************************************************************************************
|
||||
Function completeaza_rap_vanz_per
|
||||
Lparameters tnIdComRapVanz, tcCursorArt, tcCursorGest, tcCursor
|
||||
Local lcCursorTemp, lcCursorTemp2, lcIdArticole, lcIdGestiuni, llReturn, lnId, lcFiltru
|
||||
llReturn = .F.
|
||||
lcCursorTemp = Sys(2015)
|
||||
lcCursorTemp2 = Sys(2015)
|
||||
lcIdArticole = cursor2lista(tcCursorArt, "id_articol", ",")
|
||||
lcIdGestiuni = cursor2lista(tcCursorGest, "id_gestiune", ",")
|
||||
lcSql = [{call pack_comenzi.completeaza_raport(] + Alltrim(Str(tnIdComRapVanz)) + [,] + ;
|
||||
['] + Alltrim(lcIdArticole) + [','] + Alltrim(lcIdGestiuni) + [')}]
|
||||
lnSucces = goExecutor.oExecute(lcSql, lcCursorTemp)
|
||||
If lnSucces < 0
|
||||
amessagebox(goExecutor.cEroare, 0 + 48, "Eroare")
|
||||
Else
|
||||
Select (tcCursor)
|
||||
lcFiltru = Set('Filter')
|
||||
lnId = id_comrapvanzelem
|
||||
copiaza_structura_cursor(tcCursor, lcCursorTemp2)
|
||||
Insert Into (lcCursorTemp2) ;
|
||||
Select * From (lcCursorTemp) ;
|
||||
Union All ;
|
||||
Select * From (tcCursor)
|
||||
Use In (Select(tcCursor))
|
||||
copiaza_structura_cursor(lcCursorTemp2, tcCursor)
|
||||
Insert Into (tcCursor) Select * From (lcCursorTemp2) Order By nume_gestiune, subgrupa, denumire
|
||||
Use In (Select(lcCursorTemp))
|
||||
Use In (Select(lcCursorTemp2))
|
||||
Select (tcCursor)
|
||||
Set Filter To &lcFiltru
|
||||
Locate For id_comrapvanzelem = lnId
|
||||
llReturn = .T.
|
||||
Endif
|
||||
Release lcCursorTemp, lcCursorTemp2, lcIdArticole, lcIdGestiuni, lnId, lcFiltru
|
||||
Return llReturn
|
||||
Endfunc
|
||||
***************************************************************************************************************
|
||||
|
||||
|
||||
|
||||
***************************************************************************************************************
|
||||
* raport comenzi pe gestiuni bazat pe vanzarile dintr-o perioda
|
||||
***************************************************************************************************************
|
||||
Procedure listeaza_rap_vanz_per
|
||||
Lparameters tnIdComRapVanz, tnExportExcel
|
||||
Private ptDataRaport, pnIdComRapVanz
|
||||
Local lcSql, lcCursor, lnSucces, lnExportExcel
|
||||
If Type('tnExportExcel') = 'L'
|
||||
lnExportExcel = tnExportExcel
|
||||
Else
|
||||
lnExportExcel = .F.
|
||||
Endif
|
||||
ptDataRaport = Datetime()
|
||||
pnIdComRapVanz = tnIdComRapVanz
|
||||
lcSql = [{call pack_comenzi.listeaza_raport(?pnIdComRapVanz,?@ptDataRaport)}]
|
||||
lcCursor = [crslistare]
|
||||
lnSucces = goExecutor.oExecute(lcSql, lcCursor)
|
||||
If lnSucces < 0
|
||||
amessagebox(goExecutor.cEroare, 0 + 48, "Eroare")
|
||||
Else
|
||||
If lnExportExcel
|
||||
goExport.export2xls(lcCursor, [rap_comanda_vanz])
|
||||
Else
|
||||
goExport.export2frx(lcCursor, [rap_comanda_vanz])
|
||||
Endif
|
||||
Endif
|
||||
If Used(lcCursor)
|
||||
Use In (lcCursor)
|
||||
Endif
|
||||
Release ptDataRaport, pnIdComRapVanz, lcSql, lcCursor, lnSucces
|
||||
Endproc
|
||||
|
||||
***************************************************************************************************************
|
||||
* raport comenzi pe furnizori bazat pe vanzarile dintr-o perioda
|
||||
***************************************************************************************************************
|
||||
Procedure listeaza_rap_vanz_fz_per
|
||||
Lparameters tnIdComRapVanz, tlCantitate, tlExportExcel
|
||||
Private ptDataRaport, ptDataI, ptDataS, pnIdComRapVanz, pnCantitate
|
||||
Local lcSql, lcCursor, lnSucces, llExportExcel
|
||||
pnCantitate = IIF(Type('tlCantitate') = 'L', IIF(m.tlCantitate, 1, 0), 0) && daca se foloseste coloana "cantitate" sau "vanzari" pentru cantitate
|
||||
llExportExcel = IIF(Type('tlExportExcel') = 'L', m.tlExportExcel, .F.)
|
||||
|
||||
ptDataRaport = Datetime()
|
||||
ptDataI = Datetime()
|
||||
ptDataS = Datetime()
|
||||
pnIdComRapVanz = tnIdComRapVanz
|
||||
lcSql = [{call pack_comenzi.listeaza_raport_vz_fz(?pnIdComRapVanz, ?pnCantitate, ?@ptDataRaport,?@ptDataI,?@ptDataS)}]
|
||||
lcCursor = [crslistare]
|
||||
llSucces = goExecutor.oExecuta(lcSql, lcCursor)
|
||||
If m.llSucces
|
||||
SET FILTER TO cantitate <> 0 OR stocdep <> 0 IN (m.lcCursor)
|
||||
LOCATE FOR cantitate <> 0 OR stocdep <> 0
|
||||
IF !FOUND()
|
||||
AMESSAGEBOX('Nu exista inregistrari pentru listare!', 0+64, _screen.Caption)
|
||||
ELSE
|
||||
If m.llExportExcel
|
||||
goExport.export2xls(lcCursor, [rap_comanda_vanz_fz])
|
||||
Else
|
||||
goExport.export2frx(lcCursor, [rap_comanda_vanz_fz])
|
||||
ENDIF
|
||||
ENDIF
|
||||
Endif
|
||||
|
||||
Use In (SELECT(lcCursor))
|
||||
|
||||
Release ptDataRaport, pnIdComRapVanz, lcSql, lcCursor, llSucces
|
||||
Endproc
|
||||
***************************************************************************************************************
|
||||
***************************************************************************************************************
|
||||
Procedure listeaza_rap_vanz_fz_val_per
|
||||
Lparameters tnIdComRapVanz, tlCantitate, tnExportExcel
|
||||
Private ptDataRaport, ptDataI, ptDataS, pnIdComRapVanz, pnCantitate
|
||||
Local lcSql, lcCursor, lnSucces, llExportExcel
|
||||
pnCantitate = IIF(Type('tlCantitate') = 'L', IIF(m.tlCantitate, 1, 0), 0) && daca se foloseste coloana "cantitate" sau "vanzari" pentru cantitate
|
||||
llExportExcel = IIF(Type('tlExportExcel') = 'L', m.tlExportExcel, .F.)
|
||||
|
||||
ptDataRaport = Datetime()
|
||||
ptDataI = Datetime()
|
||||
ptDataS = Datetime()
|
||||
pnIdComRapVanz = tnIdComRapVanz
|
||||
lcSql = [{call pack_comenzi.listeaza_raport_vz_fz(?pnIdComRapVanz, ?pnCantitate, ?@ptDataRaport,?@ptDataI,?@ptDataS)}]
|
||||
lcCursor = [crslistare]
|
||||
llSucces = goExecutor.oExecuta(lcSql, lcCursor)
|
||||
If m.llSucces
|
||||
SET FILTER TO stoci<>0 OR stocf <> 0 OR cantitate <> 0 OR stocdep <> 0 IN (m.lcCursor)
|
||||
LOCATE FOR stoci<>0 OR stocf <> 0 OR cantitate <> 0 OR stocdep <> 0
|
||||
IF !FOUND()
|
||||
AMESSAGEBOX('Nu exista inregistrari pentru listare!', 0+64, _screen.Caption)
|
||||
ELSE
|
||||
If m.llExportExcel
|
||||
goExport.export2xls(lcCursor, [rap_comanda_vanz_fz_val])
|
||||
Else
|
||||
goExport.export2frx(lcCursor, [rap_comanda_vanz_fz_val])
|
||||
ENDIF
|
||||
ENDIF
|
||||
Endif
|
||||
Use In (SELECT(lcCursor))
|
||||
Release ptDataRaport, pnIdComRapVanz, lcSql, lcCursor, llSucces
|
||||
Endproc
|
||||
***************************************************************************************************************
|
||||
|
||||
***************************************************************************************************************
|
||||
* Detaliu vanzari articol, gestiune pe o perioada
|
||||
* Dbl Click pe coloana vanzari
|
||||
***************************************************************************************************************
|
||||
Procedure rap_vanz_per_detaliu
|
||||
Parameters tnIdComrapvanzElem
|
||||
|
||||
lcCursor = [crsCantitatiDetaliu]
|
||||
lcSql = [{call pack_comenzi.rap_vanz_per_detaliu(?tnIdComrapvanzElem)}]
|
||||
llSucces = goExecutor.oExecuta(lcSql, lcCursor)
|
||||
If m.llSucces
|
||||
If Reccount(m.lcCursor) > 0
|
||||
loFrm = Createobject("frm_rap_vanz_cant_detaliu")
|
||||
loFrm.Show(1)
|
||||
Else
|
||||
amessagebox("Nu exista articole in perioada care sa aiba procentul de vanzari specificat!", 48, "Atentie")
|
||||
Endif
|
||||
Endif
|
||||
Endproc
|
||||
725
COMUN/programe/orap_terti_comun.prg
Normal file
725
COMUN/programe/orap_terti_comun.prg
Normal file
@@ -0,0 +1,725 @@
|
||||
*!* 25.03.2022
|
||||
*!* viz_frm_facturi > situatie_facturi se afiseaza si facturile cu total cu tva = 0
|
||||
|
||||
*_________________________________________________________*
|
||||
* *
|
||||
* proceduri utilizate pentru generarea rapoartelor din: *
|
||||
* Terti->Furnizori *
|
||||
* ->Clienti *
|
||||
* ->Alti *
|
||||
*_________________________________________________________*
|
||||
|
||||
* PROCEDURE viz_frm_facturi( tntip )
|
||||
* Date : 19/11/2004, 14:36:36
|
||||
* author : lavinia.viziru
|
||||
* description:
|
||||
|
||||
****** PARAMETER BLOCK **************
|
||||
* Parameters : 1
|
||||
* Parameter 1:
|
||||
*
|
||||
******************************************* INCEPUT:viz_frm_facturi *******************************************
|
||||
Procedure viz_frm_facturi
|
||||
Parameters tntip, tccont, tnId_part, tcNume
|
||||
|
||||
&& tnId_part, tcNume - din programul de contracte, ca sa intru deja pe partenerul pe care sunt pozitionat in lista de contracte
|
||||
|
||||
|
||||
Private pocauta, pnlunai, pnani, pnlunaf, pnanf, pccont, plemise, pcperioada, pctitlu, pcpartener
|
||||
Store '' To pocauta, pcperioada, pctitlu, pcpartener
|
||||
Store 0 To pnlunai, pnani, pnlunaf, pnanf
|
||||
|
||||
plemise = Iif(tntip = 2, .T., .F.)
|
||||
plActiv = .T.
|
||||
pccont = Iif(!Empty(tccont), tccont, [])
|
||||
If !Empty(pccont)
|
||||
pcexec = [select NVL(fel_cont,0) as fel_cont from ] + gcs + [.vcoresp_tip_cont where cont=?pcCont]
|
||||
pcCursor = [felCont_cursor]
|
||||
pnsucces = goExecutor.oExecute(pcexec, pcCursor)
|
||||
If pnsucces > 0 And _Tally > 0
|
||||
Select felCont_cursor
|
||||
Locate
|
||||
plActiv = Iif(felCont_cursor.fel_cont = 0, .T., .F.)
|
||||
Use In felCont_cursor
|
||||
Endif
|
||||
Endif
|
||||
|
||||
gnButon = 1
|
||||
Do While gnButon = 1
|
||||
ofrm = Createobject('frm_rap_facturi')
|
||||
With ofrm
|
||||
If !Empty(tnId_part)
|
||||
.lnIdPart = tnId_part
|
||||
.ncu_contract = 1
|
||||
.ckContract.Value = 1
|
||||
*.clb_tx_simplu3.text_simplu1.Value = [<TOATE INREGISTRARILE>]
|
||||
Endif
|
||||
If !Empty(tcNume)
|
||||
.clb_tx_simplu2.text_simplu1.Value = tcNume
|
||||
Endif
|
||||
.lcCont = pccont
|
||||
.llActiv = plActiv
|
||||
.clb_tx_simplu1.text_simplu1.Value = pccont
|
||||
.lb_titlu_alb_b121.Caption = [Facturi ] + Iif(!Empty(pccont), pccont, [])
|
||||
.opt_perioada.Value = tntip
|
||||
.lhide = .T.
|
||||
Endwith
|
||||
ofrm.Show(1)
|
||||
pccont = ofrm.lcCont
|
||||
plemise = Iif(ofrm.opt_perioada.Value = 1, .F., .T.)
|
||||
pnIdPart = ofrm.lnIdPart
|
||||
plActiv = ofrm.llActiv
|
||||
pnani = ofrm.Caut_anluna1.nan
|
||||
pnanf = ofrm.Caut_anluna2.nan
|
||||
pnlunai = ofrm.Caut_anluna1.nluna
|
||||
pnlunaf = ofrm.Caut_anluna2.nluna
|
||||
pnCuAnalitic = ofrm.ncu_analitic
|
||||
pcAnalitic = ofrm.lcAcont
|
||||
pnCuValuta = ofrm.ncu_valuta
|
||||
pnIdValuta = ofrm.lnIdValuta
|
||||
pnCuVechime = ofrm.ncu_vechime
|
||||
pcValuta = ofrm.txt_valuta.Value
|
||||
pnCuContract = ofrm.ncu_contract
|
||||
pnIdCtr = ofrm.lnIdCtr
|
||||
ofrm.Release
|
||||
|
||||
If gnButon = 1
|
||||
pcperioada = [Perioada: ] + Alltrim(Str(pnlunai)) + [/] + Alltrim(Str(pnani)) + ;
|
||||
[ - ] + Alltrim(Str(pnlunaf)) + [/] + Alltrim(Str(pnanf))
|
||||
|
||||
|
||||
* lcCursor = situatie_facturi(pccont,plActiv,plemise,pnIdPart,pnani,pnlunai,pnanf,pnlunaf,pnCuAnalitic,pcAnalitic,pnCuValuta,pnIdValuta,pnCuVechime)
|
||||
lcCursor = situatie_facturi(Alltrim(pccont), plActiv, plemise, pnIdPart, pnani, pnlunai, pnanf, pnlunaf, pnCuAnalitic, pcAnalitic, pnCuValuta, pnIdValuta, pnCuVechime, pnCuContract, pnIdCtr)
|
||||
|
||||
*!* Do Case
|
||||
*!* Case Empty(lcCursor)
|
||||
*!* amessagebox("Nu a fost generata selectia pentru listare!",0+48,"Atentie")
|
||||
*!* Case Reccount(lcCursor) = 0
|
||||
*!* amessagebox("Nu exista inregistrari pentru listare!",0+48,"Atentie")
|
||||
*!* Use In (lcCursor)
|
||||
*!* Otherwise
|
||||
If Alltrim(pccont) = [401]
|
||||
pcpartener = [Furnizor: ]
|
||||
lctitlu = [Situatia facturilor de cumparari]
|
||||
Else && pccont = [411]
|
||||
pcpartener = [Client: ]
|
||||
lctitlu = [Situatia facturilor de vanzari]
|
||||
Endif
|
||||
If pnCuVechime = 0
|
||||
lcRaport = [rap_facturi]
|
||||
Else
|
||||
lcRaport = [rap_facturi_vechime]
|
||||
Endif
|
||||
|
||||
If pnCuAnalitic = 0
|
||||
pcGrupAcont = [EOF()]
|
||||
Else
|
||||
pcGrupAcont = [acont]
|
||||
Endif
|
||||
If !Empty(pnIdValuta)
|
||||
lctitlu = lctitlu + Chr(13) + [Valuta ] + Alltrim(pcValuta)
|
||||
Endif
|
||||
*!* pctitlu = ceretitlu_rap('Titlul Raportului',lctitlu)
|
||||
*!* pcDataOra = Get_Ora(2)
|
||||
*!* Select (lcCursor)
|
||||
*!* Report Form &lcRaport To Printer Prompt Preview
|
||||
pctitlu = lctitlu
|
||||
goExport.export2frx(lcCursor, lcRaport, .T., , , , , .T., , )
|
||||
|
||||
If Messagebox('Doriti sa exportati in XLS?', 4 + 32, _Screen.Caption) = 6
|
||||
lcFileXLS = Putfile("Salvati fisierul XLS", "Facturi.xls", "xls")
|
||||
If !Empty(lcFileXLS)
|
||||
Select (lcCursor)
|
||||
Copy To (lcFileXLS) Type Xl5
|
||||
open_default_app(lcFileXLS)
|
||||
Endif
|
||||
Endif
|
||||
Use In (lcCursor)
|
||||
*!* Endcase
|
||||
Endif
|
||||
Enddo
|
||||
Endproc
|
||||
****************************************** SFARSIT: viz_frm_facturi ****************************
|
||||
* PROCEDURE situatie_facturi
|
||||
* Date : 10/04/2006, 16:10:03
|
||||
* author : georgiana.voicu
|
||||
* description: preluare facturi pentru conturi cu inregistrari
|
||||
|
||||
****** PARAMETER BLOCK **************
|
||||
* Parameters : 3
|
||||
* Parameter 1: tlemise
|
||||
* Description: tipul facturilor preluate
|
||||
* (.t.-facturi emise intr-o perioada determinata
|
||||
* .f.-facturi cu sold dintr-o perioada determinata)
|
||||
* Parameter 2: tccont
|
||||
* Description: contul partenerului(411-client, 401- furnizor)
|
||||
* Parameter 3: topartener
|
||||
* Description: obiectul care contine datele partenerului(client/furnizor) selectat:nume + id_part
|
||||
* (daca numele partenerului=<TOATE INREGISTRARILE> atunci se iau in considerare
|
||||
* toti partenerii- clienti sau furnizori)
|
||||
* Parameter 4,5,6,7 : perioada
|
||||
******************************************* INCEPUT:situatie_facturi *******************************************
|
||||
Procedure situatie_facturi
|
||||
Parameters tccont, tlActiv, tlemise, tnIdPart, tnAnI, tnLunaI, tnAnF, tnLunaF, tnCuAnalitic, tcAnalitic, tnCuValuta, tnIdValuta, tnCuVechime, tnCuContract, tnIdCtr
|
||||
|
||||
Private lnrlunii, lnrlunif, lnNrPrimaL
|
||||
|
||||
Local lcAchitat, lcAcontIncPl, lcCondAnalitic, lcCondData, lcCondExclud, lcCondId_ctr, lcCondId_part
|
||||
Local lcCondPerioada, lcCondPrimaLuna, lcConditieSupl, lcCondvaluta, lcContIncPl, lcCursor
|
||||
Local lcCursor1, lcExceptii, lcIdPartener, lcIdPereche, lcOrder, lcPartener, lcPereche, lcSelect
|
||||
Local lcSelect1, lcSoldPrec, lcSql, lcTotctva, lcTotctvaPrec, ldDataFactura, ldDataVechime, lnIdFact
|
||||
Local lnIdPart, lnNrRand, lnNrZile, lnSoldFact, lnSoldPart, lnSucces, lnSucces1
|
||||
PRIVATE lnnrlunii, lnnrlunif
|
||||
PRIVATE oComplet, oInc, objFactInc, osold, pcExplicatie
|
||||
oComplet = NULL
|
||||
oInc = NULL
|
||||
objFactInc = NULL
|
||||
osold = NULL
|
||||
pcExplicatie = ''
|
||||
lnnrlunii = tnLunaI + 12 * tnAnI
|
||||
lnnrlunif = tnLunaF + 12 * tnAnF
|
||||
|
||||
*!* IF tlemise
|
||||
lnNrPrimaL = lnnrlunii
|
||||
*!* ELSE
|
||||
*!* lnNrPrimaL = lnnrlunii -1
|
||||
*!* ENDIF
|
||||
|
||||
Local lnId_ctr, lcContract
|
||||
Store 0 To lnId_ctr
|
||||
Store '' To lcContract
|
||||
|
||||
If tnIdPart = 0
|
||||
lcCondId_part = [1=1]
|
||||
Else
|
||||
lcCondId_part = [id_part = ] + Alltrim(Str(tnIdPart))
|
||||
Endif
|
||||
|
||||
If tnIdCtr = 0
|
||||
lcCondId_ctr = [1=1]
|
||||
Else
|
||||
lcCondId_ctr = [id_ctr = ] + Alltrim(Str(tnIdCtr))
|
||||
Endif
|
||||
|
||||
lcSql = [select * from ] + gcs + [.exceptii_ireg where invers = 1 and debit = ] + Iif(tlActiv, [1], [0]) + [ and cont = ] + tccont
|
||||
lcCursor = [ex_debit]
|
||||
lnSucces = goExecutor.oExecute(lcSql, lcCursor)
|
||||
lcExceptii = [-1]
|
||||
If lnSucces > 0
|
||||
Select ex_debit
|
||||
Scan
|
||||
lcExceptii = lcExceptii + ',' + Alltrim(cont_c)
|
||||
Endscan
|
||||
Use In ex_debit
|
||||
Endif
|
||||
|
||||
If !tlActiv && - furnizori
|
||||
lcTotctva = Iif(tnCuValuta = 0, [credit + preccred], [valcredit + precvalcred])
|
||||
*!* modificare v 2.0.46
|
||||
lcTotctvaPrec = Iif(tnCuValuta = 0, [preccred], [precvalcred]) && am nevoie pentru calcularea soldului prec.
|
||||
*!* modificare v 2.0.46 ^
|
||||
lcSoldPrec = Iif(tnCuValuta = 0, [preccred - precdeb], [precvalcred - precvaldeb])
|
||||
*lcAchitat = [debit + precdeb]
|
||||
lcAchitat = Iif(tnCuValuta = 0, [precdeb], [precvaldeb])
|
||||
lcPereche = [pereched]
|
||||
lcIdPereche = [id_factd]
|
||||
lcPartener = [partd]
|
||||
lcIdPartener = [id_partd]
|
||||
lcContIncPl = [scd]
|
||||
lcAcontIncPl = [ascd]
|
||||
lcCondExclud = [(to_number(scc) not in (] + lcExceptii + [))]
|
||||
Else && - clienti
|
||||
lcTotctva = Iif(tnCuValuta = 0, [debit + precdeb], [valdebit + precvaldeb])
|
||||
*!* modificare v 2.0.46
|
||||
lcTotctvaPrec = Iif(tnCuValuta = 0, [precdeb], [precvaldeb])
|
||||
*!* modificare v 2.0.46 ^
|
||||
lcSoldPrec = Iif(tnCuValuta = 0, [precdeb - preccred], [precvaldeb - precvalcred])
|
||||
*lcAchitat = [credit + preccred]
|
||||
lcAchitat = Iif(tnCuValuta = 0, [preccred], [precvalcred])
|
||||
lcPereche = [perechec]
|
||||
lcIdPereche = [id_factc]
|
||||
lcPartener = [partc]
|
||||
lcIdPartener = [id_partc]
|
||||
lcContIncPl = [scc]
|
||||
lcAcontIncPl = [ascc]
|
||||
lcCondExclud = [(to_number(scd) not in (] + lcExceptii + [))]
|
||||
Endif
|
||||
|
||||
lcCondPerioada = [((luna + 12*an) between ?lnNrPrimaL and ?lnnrlunif)]
|
||||
lcCondData = [(to_number(to_char(dataireg,'MM'),'99') + 12*to_number(to_char(dataireg,'YYYY'),'9999'))]
|
||||
lcCondPrimaLuna = [(luna + 12*an = ?lnNrPrimaL)]
|
||||
If tnCuAnalitic = 1
|
||||
lcCondAnalitic = Iif(!Empty(tcAnalitic), [acont = ?tcAnalitic], [1=1])
|
||||
Else
|
||||
lcCondAnalitic = [1=1]
|
||||
Endif
|
||||
If tnCuValuta = 1
|
||||
lcCondvaluta = Iif(!Empty(tnIdValuta), [id_valuta = ?tnIdValuta], [id_valuta<>0])
|
||||
Else
|
||||
lcCondvaluta = [1=1]
|
||||
Endif
|
||||
pcExplicatie = [Din Precedent]
|
||||
|
||||
|
||||
*!* lcSelect = [select an, luna, id_fact, id_part, nume, acont, dataact, nract,] + lcTotctva + [ as totctva,?pcExplicatie as fdoc,] + ;
|
||||
*!* IIF(tlemise,[0],[(case when ] + lcCondPrimaLuna +[ then ] + lcAchitat + [ else 0 end)]) + [ as achitat] + ;
|
||||
*!* [ from ] + gcS + [.vireg_parteneri ] + ;
|
||||
*!* [where cont = ?tccont and ] + lcCondId_part + [ and ] + lcCondPerioada + ;
|
||||
*!* [ and (luna + 12*an =] + IIF(tlemise,lcCondData,[(case when ] + lcCondPrimaLuna +;
|
||||
*!* [ then luna + 12*an else ] + lcCondData + [ end)]) + [)] + ;
|
||||
*!* [ order by an, luna, nume, dataact, nract]
|
||||
|
||||
lcSelect = [select an, luna, id_fact, id_part, nume, cod_fiscal, ] + ;
|
||||
Iif(tnCuContract = 1, [id_ctr], [0]) + [ as id_ctr, ] + ;
|
||||
Iif(tnCuContract = 1, [contract], ['xxxxxxxxxxxxxxxxxxxx']) + [ as contract, ] + ;
|
||||
Iif(tnCuAnalitic = 1, [acont], ['xxxx']) + [ as acont, serie_act, dataact, nract,] + ;
|
||||
Iif(tnCuValuta = 1, [id_valuta,nume_val,], []) + ;
|
||||
[(case when precdeb <> 0 or preccred <> 0 then 1 else 0 end) as precedent,SUM(] + lcTotctva + [) as totctva, SUM(] + m.lcSoldPrec + [) as soldprec, ?pcExplicatie as fdoc,] + ;
|
||||
[SUM(] + Iif(tlemise, [0], [(case when ] + lcCondPrimaLuna + [ then ] + lcAchitat + [ else 0 end)]) + [) as achitat] + ;
|
||||
[ from ] + gcs + [.vireg_parteneri ] + ;
|
||||
[ where cont = ?tccont and ] + lcCondId_part + [ and ] + lcCondId_ctr + [ and ] + lcCondPerioada + [ and ] + lcCondAnalitic + [ and ] + lcCondvaluta + m.gcCondSucursala + ;
|
||||
[ and (luna + 12*an =] + Iif(tlemise, lcCondData, [(case when ] + lcCondPrimaLuna + ;
|
||||
[ then luna + 12*an else ] + lcCondData + [ end)]) + [)] + ;
|
||||
[ group by an, luna, id_fact, id_part, nume, cod_fiscal, ] + Iif(tnCuContract = 1, [id_ctr, contract,], []) + Iif(tnCuAnalitic = 1, [acont,], []) + [ dataact, serie_act, nract] + Iif(tnCuValuta = 1, [,id_valuta,nume_val], []) + [,(case when precdeb <> 0 or preccred <> 0 then 1 else 0 end)] + ;
|
||||
[ order by ] + Iif(tnCuContract = 1, [contract,], []) + [ an, luna, nume, cod_fiscal, ] + Iif(tnCuContract = 1, [contract,], []) + Iif(tnCuValuta = 1, [id_valuta,], []) + Iif(tnCuAnalitic = 1, [acont,], []) + [dataact, serie_act, nract]
|
||||
|
||||
lcCursor = [cFacturi]
|
||||
|
||||
If Used(lcCursor)
|
||||
Use In (lcCursor)
|
||||
Endif
|
||||
|
||||
lnSucces = goExecutor.oExecute(lcSelect, lcCursor)
|
||||
If lnSucces < 0
|
||||
amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare')
|
||||
Return ''
|
||||
Endif
|
||||
|
||||
Select (lcCursor)
|
||||
Replace All dataact With {} For Isnull(dataact)
|
||||
|
||||
&& 27.05.2008
|
||||
&& soldurile initiale pentru facturile emise in perioada nu se pot obtine din facturile din cFacturi (nu am precdeb/preccred <> 0)
|
||||
&& trebuie sa le selectez din ireg_parteneri separat
|
||||
If tlemise
|
||||
lcSelect = [select an, luna, id_part, cont, acont, Sum(] + lcSoldPrec + [) as soldprec ] + ;
|
||||
[ from ireg_parteneri ] + ;
|
||||
[ where cont = ?tccont and ] + lcCondId_part + [ and ] + lcCondAnalitic + ;
|
||||
[ and ] + lcCondvaluta + gcCondSucursala + ;
|
||||
[ and ] + lcCondPrimaLuna + ;
|
||||
[ group by an, luna, id_part, cont, acont]
|
||||
|
||||
lcCursor = [cSoldParteneri]
|
||||
|
||||
If Used(lcCursor)
|
||||
Use In (lcCursor)
|
||||
Endif
|
||||
|
||||
lnSucces = goExecutor.oExecute(lcSelect, lcCursor)
|
||||
If lnSucces < 0
|
||||
amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare')
|
||||
Return ''
|
||||
Endif
|
||||
Endif
|
||||
&& soldurile initiale pentru facturile emise in perioada ^
|
||||
|
||||
&& iau in considerare doar incasarile inregistrate in perioada data
|
||||
|
||||
lcCondPerioada = [((luna + 12*an) between ?lnNrLuniI and ?lnNrLuniF)]
|
||||
If tnIdPart = 0
|
||||
lcCondId_part = [1=1]
|
||||
Else
|
||||
lcCondId_part = lcIdPartener + [ = ] + Alltrim(Str(tnIdPart))
|
||||
Endif
|
||||
If tnCuAnalitic = 1
|
||||
lcCondAnalitic = Iif(!Empty(tcAnalitic), lcAcontIncPl + [ = ?tcAnalitic], [1=1])
|
||||
Else
|
||||
lcCondAnalitic = [1=1]
|
||||
Endif
|
||||
If tnCuValuta = 1
|
||||
lcCondvaluta = Iif(!Empty(tnIdValuta), [id_valuta = ?tnIdValuta and suma_val<>0], [id_valuta<>0 and suma_val<>0])
|
||||
Else
|
||||
lcCondvaluta = [1=1]
|
||||
Endif
|
||||
|
||||
*!* modificare v 2.0.46
|
||||
If tccont = '4111'
|
||||
lcConditieSupl = [ OR (SCD = '4111' ] + Iif(!Empty(tcAnalitic), [AND ASCD = ?tcAnalitic ], []) + ;
|
||||
[AND SCC = '4427' ] + Iif(tnIdPart = 0, [], [AND ID_PARTD = ] + Alltrim(Str(tnIdPart)) + [ ]) + ;
|
||||
[AND (NVL(PERECHED,0) <> 0 OR NVL(ID_FACTD,0)<>0))]
|
||||
lcSelect1 = [Select (case when scc = '4427' then id_partd else id_partc end) as id_part,] + ;
|
||||
[(case when scc = '4427' then partd else partc end) as nume,fdoc,dataact as datadoc,] + ;
|
||||
[serie_act as serie_doc,nract as nrdoc,] + ;
|
||||
Iif(tnCuAnalitic = 1, [(case when scc='4427' then ascd else ascc end)], ['xxxx']) + [ as acont,] + ;
|
||||
[(case when scc = '4427' then pereched else perechec end) as pereche,] + ;
|
||||
[(case when scc = '4427' then id_factd else id_factc end) as id_fact,] + ;
|
||||
[(case when scc = '4427' then (-1)*] + Iif(tnCuValuta = 0, [suma else suma], [suma_val else suma_val]) + [ end) as suma,] + ;
|
||||
[ id_valuta, luna as luna_inc, an as an_inc ] + ;
|
||||
[ from ] + gcs + [.vact ] + ;
|
||||
[ where ((] + lcContIncPl + [ = ] + tccont + [ and ] + lcCondId_part + [ and ] + lcCondAnalitic + [ and (] + lcPereche + [ <> 0 or ] + lcIdPereche + [ <>0))] + ;
|
||||
lcConditieSupl + [)] + ;
|
||||
[ and ] + lcCondExclud + [ and ] + lcCondPerioada + ;
|
||||
[ and ] + lcCondvaluta + gcCondSucursala + ;
|
||||
[ order by serie_act, nract, dataact]
|
||||
Else
|
||||
lcSelect1 = [select ] + lcIdPartener + [ as id_part,] + lcPartener + [ as nume,fdoc,dataact as datadoc,serie_act as serie_doc,nract as nrdoc,] + ;
|
||||
Iif(tnCuAnalitic = 1, lcAcontIncPl, ['xxxx']) + [ as acont,] + lcPereche + [ as pereche,] + lcIdPereche + [ as id_fact,] + ;
|
||||
Iif(tnCuValuta = 0, [suma], [suma_val]) + [ as suma,] + ;
|
||||
[ id_valuta, luna as luna_inc, an as an_inc ] + ;
|
||||
[ from ] + gcs + [.vact ] + ;
|
||||
[ where ] + lcContIncPl + [ = ] + tccont + [ and ] + lcCondId_part + [ and ] + lcCondvaluta + [ and ] + lcCondAnalitic + ;
|
||||
[ and ] + lcCondExclud + [ and (] + lcPereche + [ <> 0 or ] + lcIdPereche + [ <>0) and ] + lcCondPerioada + ;
|
||||
gcCondSucursala + ;
|
||||
[ order by serie_act, nract, dataact]
|
||||
Endif
|
||||
*!* modificare v 2.0.46 ^
|
||||
lcCursor1 = [cIncasari_temp]
|
||||
|
||||
If Used(lcCursor1)
|
||||
Use In (lcCursor1)
|
||||
Endif
|
||||
|
||||
lnSucces1 = goExecutor.oExecute(lcSelect1, lcCursor1)
|
||||
If lnSucces1 < 0
|
||||
amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare')
|
||||
Return ''
|
||||
Endif
|
||||
|
||||
Select cIncasari_temp
|
||||
Replace All datadoc With {} For Isnull(datadoc)
|
||||
|
||||
Select an, luna, id_fact, id_part, nume, cod_fiscal, acont, Nvl(Ttod(dataact), {}) As datafact, Nvl(serie_act, []) As serie_fact, ;
|
||||
id_ctr, contract, ;
|
||||
nract As nrfact, totctva, ;
|
||||
Padr(fdoc, 30, ' ') As fdoc, {//} As datadoc, 00000000000000 As nrdoc, precedent, ;
|
||||
achitat As suma, 00000000000000000000.0000 As sold, ;
|
||||
00000000000000000000.0000 As soldcumulat, 0 As tip, 00 As luna_inc, 0000 As an_inc, 0 As sold_final, ;
|
||||
00000000000000000000.0000 As vechime_1, 00000000000000000000.0000 As vechime_2, 00000000000000000000.0000 As vechime_3, 00000000000000000000.0000 As vechime_4 ;
|
||||
From cFacturi ;
|
||||
Where totctva - achitat <> 0 OR totctva = 0 ;
|
||||
Order By nume, id_part, acont, dataact, serie_act, nract ;
|
||||
Into Cursor cFactInc Readwrite
|
||||
|
||||
Select cIncasari_temp
|
||||
Scan
|
||||
Scatter Name oInc
|
||||
Select cFactInc
|
||||
Locate For id_fact = oInc.id_fact And id_part = oInc.id_part And Nvl(acont, [xxxx]) = Nvl(oInc.acont, [xxxx])
|
||||
Do Case
|
||||
Case !Found() && nu exista factura pentru incasare
|
||||
*!* modificare v 2.0.50 ^
|
||||
*!* modificare v 2.0.46
|
||||
*!* Append blank
|
||||
*!* caut incasarea neimperecheata
|
||||
If Used('crstempireg')
|
||||
Use In crstempireg
|
||||
Endif
|
||||
lcSql = [select 1 as precedent,id_fact,id_part,serie_act as serie_fact,nract as nrfact,dataact as datafact,] + ;
|
||||
[pack_sesiune.suma_ron((-1)*] + ;
|
||||
Iif(!tlActiv, Iif(tnCuValuta = 0, [debit], [valdebit]), Iif(tnCuValuta = 0, [credit], [valcredit])) + ;
|
||||
[,Nvl(dataact,to_date(an||luna,'YYYYMM'))) as totctvaprec ] + ;
|
||||
[from ireg_parteneri ] + ;
|
||||
[where id_fact = ] + Alltrim(Str(oInc.id_fact)) + [ and id_part = ] + Alltrim(Str(oInc.id_part)) + [ ] + ;
|
||||
[and ] + Iif(tnCuValuta = 0, [precdeb=0 and preccred=0], [precvaldeb=0 and precvalcred=0]) + [ and ] + ;
|
||||
Iif(!tlActiv, Iif(tnCuValuta = 0, [credit], [valcredit]), Iif(tnCuValuta = 0, [debit], [valdebit])) + [=0]
|
||||
lnSucces = goExecutor.oExecute(lcSql, [crstempireg])
|
||||
If lnSucces < 0
|
||||
amessagebox(goExecutor.cEroare, 16, "Eroare")
|
||||
Return
|
||||
Else
|
||||
If Reccount('crstempireg') > 0
|
||||
Select crstempireg
|
||||
Scatter Name oComplet
|
||||
AddProperty(oComplet, "totctva", oComplet.totctvaprec)
|
||||
Use In crstempireg
|
||||
Select cFacturi
|
||||
Locate For id_fact = oComplet.id_fact && verificare daca mai exista deja
|
||||
If !Found()
|
||||
Append Blank
|
||||
Gather Name oComplet Fields id_part, totctva, totctvaprec, precedent
|
||||
Select cFactInc
|
||||
Append Blank
|
||||
Gather Name oComplet
|
||||
Else
|
||||
Select cFactInc
|
||||
Append Blank
|
||||
Endif
|
||||
Else
|
||||
Select cFactInc
|
||||
Append Blank
|
||||
Endif
|
||||
Endif
|
||||
*!* modificare v 2.0.50
|
||||
Case Found() And ((tip = 1) Or (tip = 0 And suma <> 0)) && daca mai exista deja o incasare pe factura sau are achitat din precedent
|
||||
Scatter Name objFactInc
|
||||
lnId_ctr = id_ctr
|
||||
lcContract = contract
|
||||
Append Blank
|
||||
Gather Name objFactInc
|
||||
Replace totctva With 0
|
||||
Case Found() And tip = 0 && daca nu mai exista incasare pe factura
|
||||
&& completez dupa case
|
||||
lnId_ctr = id_ctr
|
||||
lcContract = contract
|
||||
Otherwise && adaug incasarea
|
||||
Append Blank
|
||||
Endcase
|
||||
*!* Endif
|
||||
*!* modificare v 2.0.50 ^
|
||||
*!* modificare v 2.0.46 ^
|
||||
Gather Name oInc
|
||||
Replace id_ctr With lnId_ctr, contract With lcContract && las contractul de pe factura (f. probabil sa nu-l am in precedent pe incasare )
|
||||
Replace tip With 1
|
||||
Select cIncasari_temp
|
||||
Endscan
|
||||
|
||||
* calculez soldurile (initial, cumulat, pe factura)
|
||||
* ordonez datele pentru grupare
|
||||
*!* SELECT id_part, SUM(totctva-achitat) as soldi_part FROM cFacturi WHERE an*12 + luna = lnNrPrimaL INTO CURSOR cSoldiPart GROUP BY id_part
|
||||
*!* SELECT id_part,acont, SUM(totctva-achitat) as soldi_ana FROM cFacturi WHERE an*12 + luna = lnNrPrimaL INTO CURSOR cSoldiAna GROUP BY id_part, acont
|
||||
|
||||
&& 27.05.2008
|
||||
&& soldurile initiale pentru facturile emise in perioada nu se pot obtine din facturile din cFacturi (nu am precdeb/preccred <> 0)
|
||||
If tlemise
|
||||
Select id_part, Sum(soldprec) As soldi_part From cSoldParteneri Into Cursor cSoldiPart Group By id_part
|
||||
Select id_part, Nvl(acont, Space(4)) As acont, Sum(soldprec) As soldi_ana From cSoldParteneri Into Cursor cSoldiAna Group By id_part, acont Readwrite
|
||||
Else
|
||||
*!* modificare v 2.0.46
|
||||
*!* Select id_part, Sum(totctva-achitat) As soldi_part From cFacturi Where precedent = 1 Into Cursor cSoldiPart Group By id_part
|
||||
*!* Select id_part,Nvl(acont,Space(4)) As acont, Sum(totctva-achitat) As soldi_ana From cFacturi Where precedent = 1 Into Cursor cSoldiAna Group By id_part, acont Readwrite
|
||||
Select id_part, Sum(soldprec) As soldi_part From cFacturi Where precedent = 1 Into Cursor cSoldiPart Group By id_part
|
||||
Select id_part, Nvl(acont, Space(4)) As acont, Sum(soldprec) As soldi_ana From cFacturi Where precedent = 1 Into Cursor cSoldiAna Group By id_part, acont Readwrite
|
||||
*!* modificare v 2.0.46 ^
|
||||
Endif
|
||||
&& 27.05.2008 ^
|
||||
|
||||
If tnCuContract = 1
|
||||
lcOrder = [c.nume, c.id_part, c.id_ctr, c.acont, c.datafact, c.serie_fact, c.nrfact, c.id_fact]
|
||||
Else
|
||||
lcOrder = [c.nume, c.id_part, c.acont, c.datafact, c.serie_fact, c.nrfact, c.id_fact]
|
||||
Endif
|
||||
|
||||
* SELECT * FROM cFactInc INTO TABLE c:\factinc.dbf
|
||||
|
||||
Select c.*, p.soldi_part, a.soldi_ana ;
|
||||
From cFactInc c ;
|
||||
Left Join cSoldiPart p On c.id_part = p.id_part ;
|
||||
Left Join cSoldiAna a On c.id_part = a.id_part And Nvl(c.acont, '') = Nvl(a.acont, '') ;
|
||||
Into Cursor cFactIncO ;
|
||||
Order By &lcOrder Readwrite
|
||||
|
||||
If Used('cSoldiPart')
|
||||
Use In cSoldiPart
|
||||
Endif
|
||||
If Used('cSoldiAna')
|
||||
Use In cSoldiAna
|
||||
Endif
|
||||
* soldul cumulat
|
||||
**** pt vechime (temporar) aflu ultima zi a perioadei , consider data de referinta
|
||||
ldDataVechime = Gomonth(Date(tnAnF, tnLunaF, 1), 1) - 1
|
||||
****
|
||||
|
||||
Select cFactIncO
|
||||
Locate
|
||||
lnIdFact = id_fact
|
||||
lnIdPart = id_part
|
||||
lnSoldFact = Nvl(totctva, 0)
|
||||
lnSoldPart = Nvl(soldi_part, 0)
|
||||
*ldDataFactura = NVL(TTOD(datafact),{})
|
||||
ldDataFactura = Nvl(datafact, {})
|
||||
Scan
|
||||
Scatter Name osold
|
||||
lnNrRand = Recno()
|
||||
If lnIdFact <> osold.id_fact
|
||||
Select cFactIncO
|
||||
If tnCuVechime = 1
|
||||
Go lnNrRand - 1
|
||||
Replace sold_final With 1
|
||||
lnNrZile = ldDataVechime - ldDataFactura
|
||||
If Empty(ldDataFactura)
|
||||
lnNrZile = 400 && peste 1 An
|
||||
Else
|
||||
lnNrZile = ldDataVechime - ldDataFactura
|
||||
Endif
|
||||
Do Case
|
||||
Case Between(lnNrZile, 0, 30)
|
||||
Replace vechime_1 With sold
|
||||
Case Between(lnNrZile, 31, 90)
|
||||
Replace vechime_2 With sold
|
||||
Case Between(lnNrZile, 91, 365)
|
||||
Replace vechime_3 With sold
|
||||
Otherwise
|
||||
Replace vechime_4 With sold
|
||||
Endcase
|
||||
|
||||
Select cFactIncO
|
||||
Go lnNrRand
|
||||
Endif
|
||||
*ldDataFactura = NVL(TTOD(datafact),{})
|
||||
ldDataFactura = Nvl(datafact, {})
|
||||
lnIdFact = osold.id_fact
|
||||
lnSoldFact = Nvl(osold.totctva, 0)
|
||||
Endif
|
||||
If lnIdPart <> osold.id_part
|
||||
lnIdPart = osold.id_part
|
||||
lnSoldPart = Nvl(osold.soldi_part, 0)
|
||||
Endif
|
||||
lnSoldFact = lnSoldFact - Nvl(osold.suma, 0)
|
||||
* lnSoldPart = lnSoldPart + IIF(osold.an*12+osold.luna >=lnnrlunii, NVL(osold.totctva,0), 0) - IIF(osold.an_inc*12+osold.luna_inc >=lnnrlunii, NVL(osold.suma,0), 0)
|
||||
lnSoldPart = lnSoldPart + Iif(osold.precedent = 0, Nvl(osold.totctva, 0), 0) - Iif(osold.an_inc * 12 + osold.luna_inc >= lnnrlunii, Nvl(osold.suma, 0), 0)
|
||||
Replace sold With lnSoldFact, soldcumulat With lnSoldPart
|
||||
Select cFactIncO
|
||||
Endscan
|
||||
|
||||
If tnCuVechime = 1
|
||||
Select cFactIncO
|
||||
Go Bottom
|
||||
Replace sold_final With 1
|
||||
*ldDataFactura = NVL(TTOD(datafact),{})
|
||||
ldDataFactura = Nvl(datafact, {})
|
||||
If Empty(ldDataFactura)
|
||||
lnNrZile = 400 && peste 1 An
|
||||
Else
|
||||
lnNrZile = ldDataVechime - ldDataFactura
|
||||
Endif
|
||||
Do Case
|
||||
Case Between(lnNrZile, 0, 30)
|
||||
Replace vechime_1 With sold
|
||||
Case Between(lnNrZile, 31, 90)
|
||||
Replace vechime_2 With sold
|
||||
Case Between(lnNrZile, 91, 365)
|
||||
Replace vechime_3 With sold
|
||||
Otherwise
|
||||
Replace vechime_4 With sold
|
||||
Endcase
|
||||
Endif
|
||||
|
||||
*!* SELECT cFactIncO
|
||||
*!* DELETE from cFactIncO WHERE id_fact IN (select id_fact from cFactIncO where sold_final = 1 AND NVL(vechime_1,0) = 0 AND NVL(vechime_2,0) = 0 AND NVL(vechime_3,0) = 0 AND NVL(vechime_4,0) = 0)
|
||||
|
||||
If Used('cFacturi')
|
||||
Use In cFacturi
|
||||
Endif
|
||||
If Used('cIncasari_temp')
|
||||
Use In cIncasari_temp
|
||||
Endif
|
||||
If Used('cFactInc')
|
||||
Use In cFactInc
|
||||
Endif
|
||||
|
||||
Return "cFactIncO"
|
||||
Endproc
|
||||
******************************************* SFARSIT: situatie_facturi *******************************************
|
||||
|
||||
Procedure Alege_Cont
|
||||
Lparameters tccont, tleActiv
|
||||
|
||||
Private polista, pcschema1, pcselect1, pcfiltru1, pcorder1
|
||||
Store "" To polista
|
||||
pcschema1 = ['cont c(4),acont c(4),explicatie c(50)']
|
||||
pcselect1 = ['select distinct cont,rpad(CHR(32),4,CHR(32)) as acont,explicatie from ] + gcs + [.vcoresp_tip_cont where 1=2']
|
||||
pcfiltru1 = [2=2]
|
||||
pcorder1 = [cont]
|
||||
llAfisare = .F.
|
||||
gencursor('polista', 'clista', pcselect1, pcfiltru1, pcschema1, pcorder1, llAfisare)
|
||||
polista.ca_baza1.afisare()
|
||||
|
||||
|
||||
Select clista
|
||||
loCont = myscatter('blank')
|
||||
|
||||
Private eActiv
|
||||
Store .T. To eActiv
|
||||
|
||||
Ol = Createobject("frm_cere_cont")
|
||||
With Ol
|
||||
*.titlufrumos1.CAPTION= 'Selectati contul'
|
||||
If Empty(.cboCont.RowSource)
|
||||
.cboCont.RowSource = "clista.cont,acont"
|
||||
Endif
|
||||
.ocont = loCont
|
||||
If Empty(.cAlias)
|
||||
.cAlias = Left(.cboCont.RowSource, At(".", .cboCont.RowSource) - 1)
|
||||
Endif
|
||||
.Height = 190
|
||||
Endwith
|
||||
Ol.Show(1)
|
||||
|
||||
If buton = 2
|
||||
Use In clista
|
||||
Return
|
||||
Endif
|
||||
|
||||
tccont = loCont.Cont
|
||||
tleActiv = eActiv
|
||||
Endproc
|
||||
|
||||
********************************************************************************************
|
||||
********************************* INCEPUT:incasari_facturi_lunac ****************************
|
||||
Procedure incasari_facturi_lunac
|
||||
Parameters tlemitere
|
||||
|
||||
Private pctitlu, pddata_incasi, pddata_incasf && pcDataOra,
|
||||
Store '' To pctitlu && ,pcDataOra
|
||||
|
||||
pddata_incasi = Ctod('01/' + Alltrim(Str(gnLuna)) + '/' + Alltrim(Str(gnAn)))
|
||||
If Month(Date()) = gnLuna And Year(Date()) = gnAn
|
||||
pddata_incasf = Date()
|
||||
Else
|
||||
pddata_incasf = Gomonth(pddata_incasi, 1) - 1
|
||||
Endif
|
||||
|
||||
Do Form frm_filtru_numar Name ofrm_filtru Linked With [a.dataact], [Data incasarii], 1, 1, 'D', [], 0 To lcFiltruData Noshow
|
||||
*ofrm_filtru.text1.ResetToDefault([lostfocus])
|
||||
*ofrm_filtru.text1.lostfocus()
|
||||
ofrm_filtru.text2.SetFocus()
|
||||
ofrm_filtru.text1.ControlSource = [pddata_incasi]
|
||||
ofrm_filtru.text2.ControlSource = [pddata_incasf]
|
||||
ofrm_filtru.Show(1)
|
||||
|
||||
pcperioada = [Perioada: ] + Alltrim(Dtoc(pddata_incasi)) + [-] + Alltrim(Dtoc(pddata_incasf))
|
||||
|
||||
If tlemitere
|
||||
lcOrdonare = [data_fact,data_incas]
|
||||
Else
|
||||
lcOrdonare = [data_incas,data_fact]
|
||||
Endif
|
||||
|
||||
lcSelect = [select a.dataact as data_incas,a.nract as nr_doc, a.serie_act, f.fel_document as fdoc, a.suma as incasat,] + ;
|
||||
[a.scd as tip_incas, d.denumire as nume, c.nract as nr_fact, e.nrord, c.dataact as data_fact, ] + ;
|
||||
[ c.datascad, c.debit + c.precdeb as total_fact] + Iif(glEMama, [,g.firma as sucursala], []) + [ ] + ;
|
||||
[from ] + gcs + [.act a join ] + gcs + [.ireg_parteneri c on ] + ;
|
||||
[a.perechec = c.nract and a.id_partc = c.id_part and NVL(a.id_sucursala,-99) = NVL(c.id_sucursala,-99) ] + ;
|
||||
[left join ] + gcs + [.nom_parteneri d on c.id_part = d.id_part ] + ;
|
||||
[left join ] + gcs + [.vnom_lucrari e on c.id_lucrare = e.id_lucrare ] + ;
|
||||
[left join ] + gcs + [.nom_fdoc f on a.id_fdoc = f.id_fdoc ] + ;
|
||||
Iif(glEMama, [left join syn_nom_firme g on a.id_sucursala = g.id_firma ], []) + ;
|
||||
[where a.sters = 0 and SUBSTR(a.scc,1,4) = '4111' and SUBSTR(a.scd,1,1) = '5' and c.cont = '4111'] + ;
|
||||
[ and a.an = ] + Alltrim(Str(gnAn)) + [ and a.luna = ] + Alltrim(Str(gnLuna)) + ;
|
||||
[ and c.an = ] + Alltrim(Str(gnAn)) + [ and c.luna = ] + Alltrim(Str(gnLuna)) + ;
|
||||
Strtran(gcCondSucursala, [id_sucursala], [a.id_sucursala]) + ;
|
||||
[ ] + lcFiltruData + [ order by ] + lcOrdonare
|
||||
lcCursor = [cIncasari]
|
||||
|
||||
lnSucces = goExecutor.oExecute(lcSelect, lcCursor)
|
||||
If lnSucces < 0
|
||||
amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare')
|
||||
Return
|
||||
Endif
|
||||
|
||||
*!* If Reccount(lcCursor)>0
|
||||
pctitlu = [Situatia incasarilor ]
|
||||
goExport.export2frx(lcCursor, [rap_incasari_facturi], .T.)
|
||||
*!* pctitlu = ceretitlu_rap('Titlul Raportului',lctitlu)
|
||||
*!* pcDataOra= Get_Ora(2)
|
||||
*!* Select (lcCursor)
|
||||
*!* Report Form rap_incasari_facturi To Printer Prompt Preview
|
||||
*!* Else
|
||||
*!* amessagebox("Nu exista inregistrari pentru listare!",48,"Atentie")
|
||||
*!* Endif
|
||||
|
||||
Use In (lcCursor)
|
||||
Release pctitlu, pddata_incasi, pddata_incasf
|
||||
Endproc
|
||||
********************************* SFARSIT:incasari_facturi_lunac ****************************
|
||||
|
||||
1135
COMUN/programe/orapoarte.prg
Normal file
1135
COMUN/programe/orapoarte.prg
Normal file
File diff suppressed because it is too large
Load Diff
251
COMUN/programe/orapoarte_dinamice.prg
Normal file
251
COMUN/programe/orapoarte_dinamice.prg
Normal file
@@ -0,0 +1,251 @@
|
||||
*!* 04.03.2011
|
||||
*!* marius.mutu
|
||||
*!* alege_raport - arat doar rapoartele pe care are drepturi utilizatorul curent
|
||||
|
||||
Procedure alege_raport
|
||||
Lparameters tnIdFormularRaport, tlDrepturi
|
||||
|
||||
Private pnIdRaport
|
||||
Local lcSql, lnSucces, loFrmAlegeRaport,loFrmRaport,lcForm
|
||||
|
||||
pnIdRaport = 0
|
||||
|
||||
|
||||
lcForm = [frm_date_rapoarte_rulaje]
|
||||
Do Case
|
||||
Case tnIdFormularRaport = 1 && rapoarte bazate pe rulaje
|
||||
lcForm = [frm_date_rapoarte_rulaje]
|
||||
Case tnIdFormularRaport = 2 && rapoarte dinamice sql
|
||||
lcForm = [frm_date_rapoarte_sql]
|
||||
Case tnIdFormularRaport = 3 && rapoarte bazate pe balanta de parteneri
|
||||
lcForm = [frm_date_rapoarte_balpart]
|
||||
Otherwise
|
||||
amessagebox("Nu exista configurari pentru acest tip de raport!",16,_screen.Caption)
|
||||
Return
|
||||
Endcase
|
||||
|
||||
If Used('crsrapoarte')
|
||||
Use In crsrapoarte
|
||||
Endif
|
||||
|
||||
IF tlDrepturi
|
||||
lcSql = [select r.id_raport,Substr(denumire,1,254) as denumire,titlu from vrapoarte r join rapoarte_utilizatori ru on r.id_raport = ru.id_raport ] + ;
|
||||
[where r.id_formular_raport = ] + Alltrim(Str(m.tnIdFormularRaport)) + [ and ru.id_utilizator = ] + ALLTRIM(STR(m.gnIdUtil)) + [ order by denumire]
|
||||
ELSE
|
||||
lcSql = [select r.id_raport,Substr(denumire,1,254) as denumire,titlu from vrapoarte r ] + ;
|
||||
[where r.id_formular_raport = ] + Alltrim(Str(tnIdFormularRaport)) + [ order by denumire]
|
||||
ENDIF
|
||||
lnSucces = goExecutor.oExecute(lcSql,[crsrapoarte])
|
||||
If lnSucces < 0
|
||||
amessagebox(goExecutor.cEroare,16,"Eroare")
|
||||
Return
|
||||
ELSE
|
||||
lcMenu = [Raport nou;\-]
|
||||
SELECT crsRapoarte
|
||||
SCAN
|
||||
lcMenu = lcMenu + [;] + ALLTRIM(denumire)
|
||||
ENDSCAN
|
||||
lnMenu = xmenu(lcMenu)
|
||||
*!* If Reccount('crsrapoarte') > 0
|
||||
*!* loFrmAlegeRaport = Createobject('frm_optiuni_rapoarte')
|
||||
*!* loFrmAlegeRaport.Show(1)
|
||||
*!* Else
|
||||
*!* gnButon = 1
|
||||
*!* Endif
|
||||
pnIdRaport = 0
|
||||
IF lnMenu > 0
|
||||
IF lnMenu = 1 && raport nou
|
||||
pnIdRaport = 0
|
||||
ELSE
|
||||
SELECT crsRapoarte
|
||||
IF RECCOUNT()>= lnMenu-2
|
||||
GOTO lnMenu - 2
|
||||
pnIdRaport = id_raport
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
|
||||
loFrmRaport = Createobject(lcForm, m.pnIdRaport, m.tlDrepturi)
|
||||
loFrmRaport.Show(1)
|
||||
|
||||
ENDIF && lnMenu > 0
|
||||
If Used('crsrapoarte')
|
||||
Use In crsrapoarte
|
||||
Endif
|
||||
ENDIF && lnSucces < 0
|
||||
|
||||
|
||||
|
||||
Release loFrmAlegeRaport,loFrmRaport
|
||||
Endproc
|
||||
|
||||
*===========================================================
|
||||
* lanseaza formularul de editare raport cu un raport incarcat (fara sa aleg raportul)
|
||||
* folosesc daca stiu ID-ul raportului (ex. rapoarte sql predefinite)
|
||||
*===========================================================
|
||||
PROCEDURE executa_raport
|
||||
LPARAMETERS tnIdFormularRaport, tnIdRaport
|
||||
|
||||
llDrepturi = .T.
|
||||
lcForm = []
|
||||
Do Case
|
||||
Case tnIdFormularRaport = 1 && rapoarte bazate pe rulaje
|
||||
lcForm = [frm_date_rapoarte_rulaje]
|
||||
Case tnIdFormularRaport = 2 && rapoarte dinamice sql
|
||||
lcForm = [frm_date_rapoarte_sql]
|
||||
Case tnIdFormularRaport = 3 && rapoarte bazate pe balanta de parteneri
|
||||
lcForm = [frm_date_rapoarte_balpart]
|
||||
ENDCASE
|
||||
IF EMPTY(m.lcForm)
|
||||
amessagebox("Nu exista configurari pentru acest tip de raport!",16,_screen.Caption)
|
||||
Return
|
||||
ENDIF
|
||||
|
||||
loFrmRaport = Createobject(m.lcForm, m.tnIdRaport, m.llDrepturi)
|
||||
loFrmRaport.Show(1)
|
||||
ENDPROC
|
||||
|
||||
*===========================================================
|
||||
* creez cursorul cu parametri din tcSql, il completez cu definitiile salvate in rapoarte.csql_parametri
|
||||
* salvez definitia parametrilor (titlu, tip ...) in rapoarte
|
||||
* salvez filtrul cu parametri in rapoarte_filtre (titlu,camp,semn,valoare)
|
||||
*===========================================================
|
||||
Procedure parametri_rapoarte_sql
|
||||
Parameters tcSql, tnIdRaport
|
||||
|
||||
Private pcParametriXML, pcFiltru
|
||||
|
||||
Local lcParametriXML, lnSucces, lcText, lcValue, lnAtPos1, lnAtPos2, lcSelect
|
||||
Local lcParametri, lcParametru, loFrmAlegeRaport, lcTitlu, lcCamp, lcTipCamp
|
||||
Local lcPozitieSemn, lcValoare
|
||||
|
||||
pcParametriXML = ""
|
||||
pcFiltru = ""
|
||||
|
||||
lcSelect = Select()
|
||||
lcText = tcSql
|
||||
lcParametri = ""
|
||||
|
||||
|
||||
lnSucces = goExecutor.oSelect2Value([select csql_parametri from rapoarte where id_raport = ?tnIdRaport], @lcParametriXML)
|
||||
|
||||
If lnSucces < 0
|
||||
amessagebox(goExecutor.cEroare,16,"Eroare")
|
||||
Return
|
||||
Endif
|
||||
|
||||
Create Cursor crsParametriTemp(parametru C(250))
|
||||
|
||||
Create Cursor crsParametriXML(parametru C(250), titlu C(100), CAMP M, TIPCAMP C(10), CAMPID C(100), CAMPCAUTARE C(100))
|
||||
If !Empty(Nvl(m.lcParametriXML,''))
|
||||
Xmltocursor(m.lcParametriXML, "crsParametriXMLTemp")
|
||||
Select crsParametriXML
|
||||
Append From Dbf("crsParametriXMLTemp")
|
||||
Use In (Select("crsParametriXMLTemp"))
|
||||
Endif
|
||||
|
||||
*** Lista de parametri din sql dupa separatori <%=...%>
|
||||
*** ex: select * from act where an = <%=tnAn%> and luna = <%=tnLuna%>
|
||||
|
||||
Do While Atcc('<%=', lcText) > 0
|
||||
* Get the start and end position of the next expression
|
||||
lnAtPos1 = Atcc('<%=', lcText)
|
||||
lnAtPos2 = Atcc('%>', lcText)
|
||||
|
||||
* Extract the next expression
|
||||
lcParametru = Substr(m.lcText, lnAtPos1 + 3, lnAtPos2 - lnAtPos1 - 3)
|
||||
* Remove any cariage returns from the expression as they could be inserted by an HTML editor
|
||||
lcParametru = Upper(Alltrim(Chrtran(m.lcParametru, Chr(13) + Chr(10), '')))
|
||||
* Adaug o singura aparitie a unui parametru (sa nu ii cer de mai multe ori data curenta, daca in sql este nevoie de ea de mai multe ori)
|
||||
SELECT crsParametriTemp
|
||||
LOCATE FOR parametru = lcParametru
|
||||
IF !FOUND()
|
||||
Insert Into crsParametriTemp (parametru) Values (m.lcParametru)
|
||||
ENDIF
|
||||
* Evaluate it
|
||||
*!* lcValue = TRANSFORM(EVALUATE(lcEval))
|
||||
lcValue = 'x'
|
||||
* Stuff the result back instead of the original expression
|
||||
lcText = Stuffc(lcText, lnAtPos1, lnAtPos2 - lnAtPos1 + 2, lcValue)
|
||||
Enddo
|
||||
***
|
||||
|
||||
*!* completare parametri cu definitia salvata in baza de date
|
||||
Select p.parametru, x.titlu, p.parametru as CAMP, x.TIPCAMP, x.CAMPID, x.CAMPCAUTARE ;
|
||||
FROM crsParametriTemp p Left Join crsParametriXML x On p.parametru = x.parametru ;
|
||||
INTO Cursor crsParametri Readwrite
|
||||
Use In (Select('crsParametriTemp'))
|
||||
Use In (Select('crsParametriXML'))
|
||||
Select crsParametri
|
||||
|
||||
loFrmAlegeRaport = Createobject('frm_optiuni_rapoarte_sql')
|
||||
loFrmAlegeRaport.Show(1)
|
||||
|
||||
If gnButon = 1
|
||||
Cursortoxml("crsParametri", "pcParametriXML",1,0+2,0,"")
|
||||
lnSucces = goExecutor.oExecute("update rapoarte set csql_parametri = ?pcParametriXML where id_raport = ?tnIdRaport")
|
||||
|
||||
If lnSucces < 0
|
||||
amessagebox(goExecutor.cEroare,16,"Eroare")
|
||||
ELSE
|
||||
*** salvez filtrul in rapoarte_filtre
|
||||
pcFiltru = ""
|
||||
Select crsParametri
|
||||
Scan
|
||||
lcTitlu = Alltrim(titlu)
|
||||
lcCamp = Alltrim(parametru)
|
||||
lcTipCamp = Upper(Alltrim(TIPCAMP))
|
||||
lcCamp = Iif(lcTipCamp = 'D1', 'AN*12+LUNA', lcCamp)
|
||||
lcPozitieSemn = Iif(lcTipCamp = 'N', '1', Iif(lcTipCamp = 'C', '2', Iif(lcTipCamp = 'D', '1', Iif(lcTipCamp = 'D1', '1', '1'))))
|
||||
lcValoare = Iif(lcTipCamp = 'N', '0', Iif(lcTipCamp = 'C', '', Iif(lcTipCamp = 'D', '{//}', Iif(lcTipCamp = 'D1', Padl(Alltrim(Str(gnLuna)),2,[0]) + [/] + Alltrim(Str(gnAn)), '0'))))
|
||||
|
||||
pcFiltru = pcFiltru + lcTitlu + [;] + lcCamp + [;] + lcPozitieSemn + [;;] + lcValoare + [|]
|
||||
*!* IESIRI;CANTE;2;;0.000|SI|TIP RULAJ;NONE;0;0;INTRARE/IESIRE REALA|SI|PERIOADA;AN*12+LUNA;1;;LUNA_CURENTA|
|
||||
lnSucces = goExecutor.oExecute("begin pack_rapoarte.salveaza_filtru(?tnIdRaport, ?pcFiltru); end;")
|
||||
|
||||
If lnSucces < 0
|
||||
amessagebox(goExecutor.cEroare,16,"Eroare")
|
||||
ENDIF
|
||||
Endscan
|
||||
|
||||
|
||||
Endif
|
||||
Endif
|
||||
|
||||
|
||||
Use In (Select('crsParametri'))
|
||||
Select (lcSelect)
|
||||
RETURN gnButon
|
||||
|
||||
Endproc
|
||||
|
||||
|
||||
*===========================================================
|
||||
* creeaza cursorul crsParametriXML cu criteriile de selectie (an, luna etc.)
|
||||
*===========================================================
|
||||
Procedure criterii_rapoarte_sql
|
||||
Parameters tnIdRaport
|
||||
|
||||
Local lcParametriXML, lnSucces, lcSelect
|
||||
|
||||
|
||||
lcSelect = Select()
|
||||
|
||||
|
||||
Create Cursor crsParametriXML(parametru C(250), titlu C(100), CAMP M, TIPCAMP C(10), CAMPID C(100), CAMPCAUTARE C(100) )
|
||||
|
||||
lnSucces = goExecutor.oSelect2Value([select csql_parametri from rapoarte where id_raport = ?tnIdRaport], @lcParametriXML)
|
||||
|
||||
If lnSucces < 0
|
||||
amessagebox(goExecutor.cEroare,16,"Eroare")
|
||||
Else
|
||||
If !Empty(Nvl(m.lcParametriXML,''))
|
||||
Xmltocursor(m.lcParametriXML, "crsParametriXMLTemp")
|
||||
Select crsParametriXML
|
||||
Append From Dbf("crsParametriXMLTemp")
|
||||
Use In (Select("crsParametriXMLTemp"))
|
||||
Endif
|
||||
Endif
|
||||
|
||||
Select (lcSelect)
|
||||
Endproc && criterii_rapoarte_sql
|
||||
300
COMUN/programe/oredeschid.prg
Normal file
300
COMUN/programe/oredeschid.prg
Normal file
@@ -0,0 +1,300 @@
|
||||
*!* 12.01.2011
|
||||
*!* marius.mutu
|
||||
*!* deschidluna + parametru: tlProgramat
|
||||
*!* deschiderea / redeschiderea de luna se face automat de catre un job in baza de date noaptea
|
||||
|
||||
*******************************************
|
||||
* PROCEDURE deschiluna( )
|
||||
* Data/ora : 11/15/04, 17:13:14
|
||||
* autor : liana.macinic
|
||||
* descriere:
|
||||
|
||||
****** PARAMETER BLOCK **************
|
||||
* Parametri : 1
|
||||
* parametru: tdeschid = este .t. daca procedura se foloseste pentru deschidere de luna
|
||||
* este .f. daca procedura se foloseste pentru redeschidere de luna
|
||||
* parametru: tcTipRefacere: refacere_completa, refacere_precedente_rulaje
|
||||
* refacere_completa - stergere si refacere
|
||||
* parametru: tlProgramat: deschiderea / redeschiderea de luna se face automat de catre un job in baza de date noaptea
|
||||
*******************************************
|
||||
Procedure deschidluna
|
||||
Lparameters tlDeschid,tcTipRefacere, tlProgramat
|
||||
Local lcExplicatie,lcConfirmare,lcMesaj,loFrm
|
||||
If tlDeschid
|
||||
lcAn = Alltrim(Str(Year(Gomonth(Date(gnAn,gnLuna,1),1))))
|
||||
lcLuna = Alltrim(Str(Month(Gomonth(Date(gnAn,gnLuna,1),1))))
|
||||
lcExplicatie = [Deschidere de lun<75>]
|
||||
lcConfirmare = [Doriti s<> deschideti luna ] + lcLuna + [ / ] + lcAn + [ ?]
|
||||
lcMesaj = [S-a deschis luna ] + lcLuna + [ / ] + lcAn + [ !]
|
||||
Else
|
||||
lcAn = Alltrim(Str(gnAn))
|
||||
lcLuna = Alltrim(Str(gnLuna))
|
||||
lcExplicatie = [Redeschidere de luna]
|
||||
lcConfirmare = [Doriti s<> redeschideti luna ] + lcLuna + [ / ] + lcAn + [ ?]
|
||||
lcMesaj = [S-a redeschis luna ] + lcLuna + [ / ] + lcAn + [ !]
|
||||
|
||||
IF m.glLunaInchisa
|
||||
AMESSAGEBOX('Luna este inchisa! Nu se poate face redeschiderea de luna!',0+64,_screen.Caption)
|
||||
RETURN
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
*!* modificare v 2.4.0
|
||||
private pnTvaIncasare, pnImpozitProfit
|
||||
pnTvaIncasare = goCalendar.tva_incasare
|
||||
pnImpozitProfit = goCalendar.impozit_profit
|
||||
|
||||
loFrm = createobject("frm_deschidere_luna_cont",lcExplicatie,lcConfirmare,tlDeschid)
|
||||
loFrm.Show()
|
||||
if gnButon = 1
|
||||
*!* If AMESSAGEBOX(lcConfirmare,4+32,lcExplicatie)=6
|
||||
*!* modificare v 2.4.0 ^
|
||||
_Screen.MousePointer = 11
|
||||
*!* modificare v 2.4.0 : am adaugat pnTvaIncasare
|
||||
lcSql = [begin deschidere_luna(] + lcAn + [,] + lcLuna + [,] + Iif(tlDeschid,[1],[0]) + [,] + ;
|
||||
IIF(EMPTY(tcTipRefacere),[1],IIF(UPPER(ALLTRIM(tcTipRefacere)) = [REFACERE_COMPLETA],[3],[1])) + [,?pnTvaIncasare,?gnIdUtil); end;]
|
||||
lnSucces = goExecutor.oExecute(lcSql)
|
||||
_Screen.MousePointer = 0
|
||||
If lnSucces < 0
|
||||
AMESSAGEBOX(goExecutor.cEroare,64,"Eroare")
|
||||
Else
|
||||
AMESSAGEBOX(lcMesaj,48,lcExplicatie)
|
||||
If tlDeschid
|
||||
lnSucces = update_calendar()
|
||||
If lnSucces < 0
|
||||
AMESSAGEBOX('Eroare la actualizarea calendarului!' + CHR(13)+CHR(10) + goExecutor.cEroare, 16, "Eroare")
|
||||
Return
|
||||
Endif
|
||||
|
||||
Select calendar
|
||||
Locate For luna = VAL(lcLuna) And anul = VAL(lcAn)
|
||||
If Found()
|
||||
Scatter Name goCalendar
|
||||
Else
|
||||
AMESSAGEBOX('Eroare la citirea lunii in calendar!' + CHR(13)+CHR(10) + goExecutor.cEroare, 16, "Eroare")
|
||||
Return
|
||||
Endif
|
||||
Do OINIT_OPTIUNI.prg
|
||||
Endif
|
||||
Endif
|
||||
Endif
|
||||
Release pnTvaIncasare && modificare v 2.4.0
|
||||
Endproc
|
||||
*******************************************
|
||||
*!* PROCEDURE deschidluna
|
||||
*!* PARAMETERS tldeschid, tcTipRefacere
|
||||
*!*
|
||||
*!* LOCAL lnDuplicatTva
|
||||
*!* lnDuplicatTva = 0
|
||||
|
||||
*!* PRIVATE plDeschid, pnDeschid
|
||||
*!* IF !tlDeschid AND glLunaInchisa
|
||||
*!* MESSAGEBOX('Luna este blocata! Nu se poate redeschide luna.', 0+64, _screen.Caption)
|
||||
*!* RETURN
|
||||
*!* ENDIF
|
||||
*!* IF EMPTY(tldeschid)
|
||||
*!* STORE .F. TO plDeschid
|
||||
*!* pnDeschid = 0
|
||||
*!* ELSE
|
||||
*!* plDeschid = tldeschid
|
||||
*!* pnDeschid = 1
|
||||
*!* ENDIF
|
||||
|
||||
*!* IF EMPTY(tcTipRefacere) OR TYPE('tcTipRefacere') <> 'C'
|
||||
*!* tcTipRefacere = "REFACERE_PRECEDENTE_RULAJE"
|
||||
*!* ELSE
|
||||
*!* tcTipRefacere = UPPER(tcTipRefacere)
|
||||
*!* ENDIF
|
||||
*!*
|
||||
*!* IF plDeschid
|
||||
*!* ldData1 = GOMONTH(DATE(gnAn,gnLuna,1),1)
|
||||
*!* lnAn = YEAR(ldData1)
|
||||
*!* lnLuna = MONTH(ldData1)
|
||||
*!* lcAn = ALLTRIM(STR(lnAn))
|
||||
*!* lcLuna = PADL(ALLTRIM(STR(lnLuna)),2,'0')
|
||||
|
||||
*!* lnValoare = 12*lnAn + lnLuna
|
||||
*!* lcSelect = [select COUNT(*) as duplicat from ] + gcS + [.CALENDAR where 12*anul + luna = ?lnValoare]
|
||||
*!* lnSucces = goExecutor.oExecute(lcSelect,[crsTest])
|
||||
*!* IF lnSucces < 0
|
||||
*!* AMESSAGEBOX(goExecutor.cEroare)
|
||||
*!* RETURN
|
||||
*!* ENDIF
|
||||
|
||||
*!* SELECT crsTest
|
||||
*!* IF duplicat > 0
|
||||
*!* AMESSAGEBOX('Luna ' + lcLuna + ' / ' + lcAn + ' este deja deschisa! ')
|
||||
*!* RETURN
|
||||
*!* ENDIF
|
||||
*!* USE IN crsTest
|
||||
|
||||
|
||||
|
||||
*!* lnPlafonCasa = goCalendar.plafon_casa
|
||||
*!* lnPlafonPlati = goCalendar.plafon_plati
|
||||
*!* lnPlafonFurniz = goCalendar.plafon_furnizori
|
||||
*!* IF AMESSAGEBOX('Doriti sa deschideti luna ' + lcLuna + ' / ' + lcAn + '?',4+32,"Deschidere de luna")!=6
|
||||
*!* RETURN
|
||||
*!* ENDIF
|
||||
|
||||
*!* *!* 10.07.2006
|
||||
*!* *!* FLORIN CIOCAN
|
||||
*!* lcSelect = [select COUNT(*) as duplicatTVA from COTE_TVA ] + ;
|
||||
*!* [ where an = ] + TRANSFORM(lnAn) + [ AND luna = ] + TRANSFORM(lnLuna) + [ AND sters = 0]
|
||||
*!* lnSucces = goExecutor.oExecute(lcSelect,[crsTest])
|
||||
*!* IF lnSucces < 0
|
||||
*!* AMESSAGEBOX(goExecutor.cEroare)
|
||||
*!* RETURN
|
||||
*!* ENDIF
|
||||
|
||||
*!* SELECT crsTest
|
||||
*!* lnDuplicatTva = duplicatTva
|
||||
*!* USE IN crsTest
|
||||
|
||||
*!* IF lnDuplicatTva = 0
|
||||
*!* lcSql = [insert into cote_tva (proc_tva, descriere, procent, an, luna) ] + ;
|
||||
*!* [ SELECT proc_tva, descriere, procent, ] + TRANSFORM(lnAn) + [,] + TRANSFORM(lnLuna) + [ from cote_tva where an = ?gnAn and luna = ?gnLuna and sters = 0 ]
|
||||
|
||||
*!* lnSucces = goExecutor.oExecute(lcSql)
|
||||
*!* IF lnSucces < 0
|
||||
*!* AMESSAGEBOX(goExecutor.cEroare)
|
||||
*!* RETURN
|
||||
*!* ENDIF
|
||||
*!* ENDIF
|
||||
|
||||
*!* lcInsert = [INSERT INTO ] + gcS + [.CALENDAR (NL,AN,CTVAI,CTVAM,PLAFON_casa,plafon_plati,plafon_furnizori,anul,luna) ] + ;
|
||||
*!* [VALUES (?lcLuna ,?lcAn,] + ALLTRIM(STR(NVL(goCalendar.ctvai,0),5,3)) + [,] + ALLTRIM(STR(NVL(goCalendar.ctvam,0),5,3)) + [,?lnPlafonCasa,?lnPlafonPlati,?lnPlafonFurniz,?lnAn,?lnLuna)]
|
||||
|
||||
*!* lnSucces = goExecutor.oExecute(lcInsert)
|
||||
*!* IF lnSucces < 0
|
||||
*!* AMESSAGEBOX(goExecutor.cEroare)
|
||||
*!* RETURN
|
||||
*!* ENDIF
|
||||
|
||||
*!* lnSucces = update_calendar()
|
||||
*!* IF lnSucces < 0
|
||||
*!* AMESSAGEBOX('Eroare la actualizarea Calendarului ' + goExecutor.cEroare)
|
||||
*!* RETURN
|
||||
*!* ENDIF
|
||||
|
||||
*!* SELECT calendar
|
||||
*!* LOCATE FOR luna = lnLuna AND anul = lnAn
|
||||
*!* IF FOUND()
|
||||
*!* SCATTER NAME goCalendar
|
||||
*!* ELSE
|
||||
*!* AMESSAGEBOX('Eroare la citirea lunii in Calendar ' + goExecutor.cEroare)
|
||||
*!* RETURN
|
||||
*!* ENDIF
|
||||
|
||||
*!* *!* 11.05.2007
|
||||
*!* *!* PAULA MUTU
|
||||
*!* ***
|
||||
*!* IF gnLuna = 12
|
||||
*!* lcSql = [insert into plcont (acont, explicatie, cont, tip_sold, an, tip_cont, id_mod, inactiv, nefolosit, explicatieS) ] + ;
|
||||
*!* [ SELECT acont, explicatie, cont, tip_sold, ] +ALLTRIM(STR(gnAn+1)) + [ as an, tip_cont, id_mod, inactiv, nefolosit, explicatieS ]+;
|
||||
*!* [ from plcont where an = ?gnAn ]
|
||||
|
||||
*!* lnSucces = goExecutor.oExecute(lcSql)
|
||||
*!* IF lnSucces < 0
|
||||
*!* AMESSAGEBOX(goExecutor.cEroare)
|
||||
*!* RETURN
|
||||
*!* ENDIF
|
||||
*!* ENDIF
|
||||
*!* ***
|
||||
|
||||
*!* DO OINIT_OPTIUNI.prg
|
||||
*!* * DO update_nomenclator IN updateserver.prg
|
||||
*!* ELSE
|
||||
*!* IF AMESSAGEBOX('Doriti sa redeschideti luna ' + ALLTRIM(STR(gnLuna)) + ' / ' + ALLTRIM(STR(gnAn)) + '?',4+32,"Redeschidere de luna")!=6
|
||||
*!* RETURN
|
||||
*!* ENDIF
|
||||
*!* ENDIF
|
||||
|
||||
*!* *DO verificareGlobala WITH .F.,.T. IN overificari.prg
|
||||
*!* lnLuna = goCalendar.luna
|
||||
*!* lnAn = goCalendar.anul
|
||||
|
||||
*!* DO VerificareLunaDeschisa WITH lnLuna, lnAn, .T., .T., .T. IN overificari.prg
|
||||
*!* IF USED('crsverificari')
|
||||
*!* lnNrInreg = 1
|
||||
*!* lnInreg = 1
|
||||
*!* lnNrInreg=lnNrInreg+RECCOUNT('crsconturi')
|
||||
*!* loTherm = NEWOBJECT("_thermometer","_therm","","Generare situatie luna contabila "+ALLTRIM(STR(lnLuna))+"/"+ALLTRIM(STR(lnAn))+"...")
|
||||
*!* WITH loTherm
|
||||
*!* .SHOW()
|
||||
*!* lnPercent = 0
|
||||
|
||||
*!* lcexplicatia="Generare situatie"
|
||||
*!* .UPDATE(lnPercent,lcexplicatia)
|
||||
|
||||
*!* SELECT crsverificari
|
||||
*!* SCAN
|
||||
*!* lcsursa = UPPER(ALLTRIM(sursa))
|
||||
*!* lccont = ALLTRIM(CONT)
|
||||
*!* lctip = IIF(UPPER(tcTipRefacere) = 'REFACERE_COMPLETA', '3', '1')
|
||||
*!* lcexplicatia = explicatia
|
||||
*!* lnPercent =(lnInreg*100)/lnNrInreg
|
||||
|
||||
*!* .UPDATE(lnPercent,'Generare '+lcexplicatia)
|
||||
|
||||
*!* DO refacere WITH lcsursa,lctip,lccont IN orefaceri.prg
|
||||
*!* lnInreg=lnInreg+1
|
||||
*!* SELECT crsverificari
|
||||
*!* ENDSCAN
|
||||
*!* .COMPLETE()
|
||||
*!* ENDWITH
|
||||
*!* RELEASE loTherm
|
||||
|
||||
*!* IF plDeschid
|
||||
*!* AMESSAGEBOX('S-a deschis luna '+ ALLTRIM(STR(gnLuna)) + ' / ' + ALLTRIM(STR(gnAn)) + '!',48,"Deschidere de luna")
|
||||
*!* ELSE
|
||||
*!* AMESSAGEBOX('S-a redeschis luna '+ ALLTRIM(STR(gnLuna)) + ' / ' + ALLTRIM(STR(gnAn))+ '!',48,"Redeschidere de luna")
|
||||
*!* ENDIF
|
||||
*!*
|
||||
*!* lcSelect = [insert into log_redeschid (anul, luna, id_program, deschid, id_util) values (?gnAn, ?gnLuna, ?gnIdProgram, ?pnDeschid, ?gnIdUtil)]
|
||||
*!* lnSucces = goExecutor.oExecute(lcSelect)
|
||||
*!* IF lnSucces < 0
|
||||
*!* AMESSAGEBOX(goExecutor.cEroare)
|
||||
*!* ENDIF
|
||||
*!*
|
||||
*!* ELSE
|
||||
*!* AMESSAGEBOX('Nu s-au refacut situatiile! Verificati in meniul Actualizari / Verificare globala!',48, IIF(plDeschid,"Deschidere de luna","Redeschidere de luna"))
|
||||
*!* ENDIF
|
||||
*!* IF USED('crsverificari')
|
||||
*!* USE IN crsverificari
|
||||
*!* ENDIF
|
||||
|
||||
|
||||
*!* ENDPROC && deschiluna
|
||||
|
||||
*********************** SFARSIT procedura deschiluna *************************
|
||||
|
||||
|
||||
*********************** INCEPUT redeschidere_de_luna *************************
|
||||
|
||||
|
||||
*********************** SFARSIT redeschidere_de_luna *************************
|
||||
|
||||
|
||||
*********************** INCEPUT programare_deschidere_luna *************************
|
||||
PROCEDURE programare_deschidere_luna
|
||||
PRIVATE poProgramare
|
||||
LOCAL m.lcSelect, m.lcFiltru, m.lcSchema, m.lcOrder, m.llAfisare
|
||||
|
||||
poProgramare = null
|
||||
lcSchema=[]
|
||||
lcSelect=[select id_redeschid, anul, luna, id_program, program, id_util, utilizator, dataora, deschid, programat, dataora_start, dataora_stop, id_utils, utilizators, dataoras, sters, SUBSTR(observatii,1,250) as observatii from vlog_redeschid]
|
||||
lcFiltru=[STERS = 0 AND LUNA = ]+ALLTRIM(STR(m.gnluna))+[ AND ANUL = ]+ALLTRIM(STR(m.gnan))
|
||||
lcOrder=[anul desc, luna desc, dataora desc]
|
||||
llAfisare=.F.
|
||||
lcGroup = []
|
||||
llModParam = .T.
|
||||
lcFiltruOriginal = ""
|
||||
gencursor('poProgramare','cLogRedeschid', m.lcSelect, m.lcFiltru, m.lcSchema, m.lcOrder, m.llAfisare, m.lcgroup, m.llModParam, m.lcFiltruOriginal)
|
||||
|
||||
poProgramare.ca_baza1.afisare()
|
||||
|
||||
loProgramareForm = NEWOBJECT("frm_log_deschidereluna","odeschidereluna.vcx")
|
||||
loProgramareForm.show(1)
|
||||
ENDPROC && programare_deschidere_luna
|
||||
*********************** SFARSIT programare_deschidere_luna *************************
|
||||
112
COMUN/programe/orefaceri.prg
Normal file
112
COMUN/programe/orefaceri.prg
Normal file
@@ -0,0 +1,112 @@
|
||||
Procedure refacere
|
||||
Lparameters tcSursa,tcLunar,tcCont,tnLuna,tnAn
|
||||
*!* 11.02.2008
|
||||
*!* TREBUIE SA FIE SETAT pack_contafin.SET_ID_SUCURSALA INAINTE DE REFACERE/SCRIERE
|
||||
|
||||
LOCAL lcExecute, lcSql
|
||||
|
||||
Private lcLunar,lcCont,lnSucces,lnLuna,lnAn
|
||||
lnSucces = -1
|
||||
If Empty(tnLuna)
|
||||
lnLuna=gnLuna
|
||||
Else
|
||||
lnLuna=tnLuna
|
||||
Endif
|
||||
|
||||
If Empty(tnAn)
|
||||
lnAn=gnAn
|
||||
Else
|
||||
lnAn=tnAn
|
||||
Endif
|
||||
|
||||
lcProc = "REFAC_" + Upper(Alltrim(tcSursa))
|
||||
lcLunar=Alltrim(tcLunar)
|
||||
If Empty(tcCont)
|
||||
lcCont = ""
|
||||
Else
|
||||
lcCont = Alltrim(tcCont)
|
||||
Endif
|
||||
|
||||
Do Case
|
||||
Case lcProc == 'REFAC_BALANTA'
|
||||
lcSql = [begin PACK_REFACERI.] + lcProc + [('] + gcS +[',] + Alltrim(Str(lnAn)) + [,] +;
|
||||
ALLTRIM(Str(lnLuna)) + [,] + lcLunar + [); end;]
|
||||
|
||||
Case lcProc == 'REFAC_BALANTA_PARTENERI'
|
||||
lcSql = [begin PACK_REFACERI.] + lcProc + [('] + gcS +[',] + Alltrim(Str(lnAn)) + [,] +;
|
||||
ALLTRIM(Str(lnLuna)) + [,'] + lcCont + [',] + lcLunar + [); end;]
|
||||
|
||||
Case lcProc == 'REFAC_IREG_PARTENERI'
|
||||
|
||||
lcSql = [begin PACK_REFACERI.] + lcProc + [('] + gcS +[',] + Alltrim(Str(lnAn)) + [,] +;
|
||||
ALLTRIM(Str(lnLuna)) + [,'] + lcCont + [',] + lcLunar + [,0); end;]
|
||||
|
||||
Case lcProc == 'REFAC_TVA_2007'
|
||||
lcSql = [begin ] + gcS + [.PACK_REFACERI.] + lcProc + [('] + lcCont + [',] + Alltrim(Str(lnAn)) + [,] + ;
|
||||
ALLTRIM(Str(lnLuna)) + [); end;]
|
||||
|
||||
Case lcProc == 'REFAC_TVA'
|
||||
Select infisiere
|
||||
If lcCont = '4426'
|
||||
Locate For Cont = '4426'
|
||||
lcCorespD = Alltrim(coresp_d)
|
||||
lcCorespC = Alltrim(coresp_c)
|
||||
lcCorespDtva = Alltrim(coresp_d) + [,4428]
|
||||
lcCorespCtva = Alltrim(coresp_c)
|
||||
*lcExceptii = [767]
|
||||
lcExceptii = [-1]
|
||||
lcTabel = [cump]
|
||||
lcSql = [select distinct cont_c as exceptie from ] + gcS + [.exceptii_ireg where cont in (] + lcCorespD + [) and invers = 1]
|
||||
Endif
|
||||
If lcCont = '4427'
|
||||
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]
|
||||
lcExceptii = [419]
|
||||
lcTabel = [vanz]
|
||||
lcSql = [select distinct cont_c as exceptie from ] + gcS + [.exceptii_ireg where cont in (] + lcCorespC + [) and invers = 1]
|
||||
Endif
|
||||
|
||||
lnSucces = goExecutor.oExecute(lcSql,'cont_exceptii')
|
||||
If lnSucces > 0
|
||||
Select cont_exceptii
|
||||
Scan
|
||||
lcExceptii = lcExceptii + ',' + Alltrim(exceptie)
|
||||
Endscan
|
||||
Use In cont_exceptii
|
||||
Else
|
||||
amessagebox(lcProc + CRLF + goExecutor.cEroare,0+16,"Eroare")
|
||||
Endif
|
||||
|
||||
lcListaCampuri = get_lista_Act()
|
||||
lcSql = [begin pack_REFACERI.REFAC_TVA('] + gcS +[',?lcTabel, pack_contafin.getCotaTVAStandard(?gnLuna,?gnAn), 1.09, '] + lcCorespDtva +[', '] + lcCorespD +[', '] + lcCorespCtva +[', '] + lcCorespC +[',] + lcCont + [, '] + lcExceptii +[',?lnAn, ?lnLuna,1,'] + lcListaCampuri + [' ); end;]
|
||||
|
||||
Case lcProc == 'REFAC_STOC'
|
||||
lcSql = [begin pack_refaceri.refac_stoc(?gcS,?lnAn,?lnLuna,] + lcLunar + [); end;]
|
||||
|
||||
Case lcProc == 'REFAC_STOC_OBINV'
|
||||
lcSql = [begin pack_refaceri.refac_stoc_obinv(?gcS,?lnAn,?lnLuna,] + lcLunar + [); end;]
|
||||
|
||||
Otherwise
|
||||
lcSql = []
|
||||
Endcase
|
||||
|
||||
If !Empty(lcSql)
|
||||
*!* 11.02.2008
|
||||
lcExecute = [begin pack_contafin.SET_ID_SUCURSALA(?gnIdSucursala); end;]
|
||||
lnSucces = goExecutor.oExecute(lcExecute)
|
||||
If lnSucces < 0
|
||||
amessagebox(goExecutor.cEroare,0+16,"Eroare")
|
||||
ELSE
|
||||
lnSucces = goExecutor.oExecute(lcSql)
|
||||
If lnSucces < 0
|
||||
amessagebox(lcProc + CRLF + goExecutor.cEroare,0+16,"Eroare")
|
||||
ENDIF
|
||||
ENDIF
|
||||
*!* 11.02.2008 ^
|
||||
Endif
|
||||
Return lnSucces
|
||||
Endproc
|
||||
2395
COMUN/programe/osalarii_comun.prg
Normal file
2395
COMUN/programe/osalarii_comun.prg
Normal file
File diff suppressed because it is too large
Load Diff
1194
COMUN/programe/oschimbare_pret.prg
Normal file
1194
COMUN/programe/oschimbare_pret.prg
Normal file
File diff suppressed because it is too large
Load Diff
357
COMUN/programe/oscrie_in_fisiere.prg
Normal file
357
COMUN/programe/oscrie_in_fisiere.prg
Normal file
@@ -0,0 +1,357 @@
|
||||
*!* 21.12.2011
|
||||
*!* marius.mutu
|
||||
*!* tlNuSuprascrieCod default .F. se foloseste codul generat din pack_contafin, .T. se foloseste codul din act_temp
|
||||
*!* folosit in inventare de corectie. se foloseste acelasi cod, id_fact ca la inventarul original
|
||||
|
||||
*!* 11.01.2012
|
||||
*!* marius.mutu
|
||||
*!* tlLoadBackup - apelare oscrie_in_fisiere cu restaurarea actactan, rul_temp, rul_temp_obinv din backupset
|
||||
|
||||
*!* 24.03.2026
|
||||
*!* marius.mutu
|
||||
*!* stergere_import_note_contabile - se stergea doar prima nota cu succes, apoi iesea din scan
|
||||
|
||||
Parameters tnScrie_Sterge, tlModificare, tlRul, tlNuSuprascrieCod, tlLoadBackup
|
||||
*!* tnScrie_Sterge: 0 = scriere, 2 = stergere, 1 = refacere (nu se foloseste de oscrie_in_fisiere)
|
||||
*!* tlModificare: .F. = nota noua, .T. modificare nota (scriere + stergere)
|
||||
*!* tlNuSuprascrieCod default .F. se foloseste codul generat din pack_contafin, .T. se foloseste codul din act_temp
|
||||
*!* tlLoadBackup: default .F. - nu restaurez actactan, rul_temp, rul_temp_obinv din backupset, .T. restaurez actactan, rul_temp, rul_temp_obinv din backupset
|
||||
|
||||
Private pcMesajRefacereNota, pdData
|
||||
Local lnSucces, lnCod, lcSql, llManualTransactions, lnSucces2
|
||||
|
||||
*!* 11.01.2012
|
||||
Local loBackupXML
|
||||
pcMesajRefacereNota = ""
|
||||
loBackupXML = Createobject("backupxml", "oscrie_in_fisiere") && oproceduri_comune.prg
|
||||
If m.tlLoadBackup
|
||||
If loBackupXML.ExistsBackupSet()
|
||||
loBackupXML.RestoreBackupSet()
|
||||
If Used('actactan')
|
||||
Select ACTACTAN
|
||||
Browse
|
||||
Endif
|
||||
If Used('rul_temp')
|
||||
Select RUL_TEMP
|
||||
Browse
|
||||
Endif
|
||||
If Used('rul_temp_obinv')
|
||||
Select RUL_TEMP_OBINV
|
||||
Browse
|
||||
Endif
|
||||
If AMESSAGEBOX('Doriti sa continuati scrierea notelor din backup?', 4 + 32, _Screen.Caption) <> 6
|
||||
lnSucces = -1
|
||||
Return m.lnSucces
|
||||
Endif
|
||||
Else
|
||||
AMESSAGEBOX('Nu Exista backupset-ul "oscrie_in_fisiere"!', 0 + 48, _Screen.Caption)
|
||||
lnSucces = -1
|
||||
Return m.lnSucces
|
||||
Endif
|
||||
Else
|
||||
If loBackupXML.ExistsBackupSet()
|
||||
loBackupXML.DeleteBackupSet()
|
||||
Endif
|
||||
|
||||
If Used('actactan')
|
||||
loBackupXML.SaveBackupSet("actactan")
|
||||
Endif
|
||||
If Used('rul_temp')
|
||||
loBackupXML.SaveBackupSet("rul_temp")
|
||||
Endif
|
||||
If Used('rul_temp_obinv')
|
||||
loBackupXML.SaveBackupSet("rul_temp_obinv")
|
||||
Endif
|
||||
Endif
|
||||
*!* 11.01.2012 ^
|
||||
|
||||
lnSucces = -1
|
||||
If Reccount('actactan') = 0
|
||||
AMESSAGEBOX('Nu s-a inregistrat nota contabila.')
|
||||
Return lnSucces
|
||||
Endif
|
||||
|
||||
If Empty(tnScrie_Sterge) Or Isnull(tnScrie_Sterge)
|
||||
tnScrie_Sterge = 0
|
||||
Endif
|
||||
|
||||
If !Used('ACTACTAN')
|
||||
AMESSAGEBOX('Nu exista fisierul <actactan>.')
|
||||
Return lnSucces
|
||||
Endif
|
||||
|
||||
If tnScrie_Sterge = 2
|
||||
Select ACTACTAN
|
||||
Locate
|
||||
lnCod = cod
|
||||
Else
|
||||
lnCod = Null
|
||||
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 = goExecutor.oExecute(lcSql)
|
||||
If lnSucces < 0
|
||||
AMESSAGEBOX(goExecutor.oPrelucrareEroare(), 16, "Eroare")
|
||||
Return lnSucces
|
||||
Endif
|
||||
If !Isnull(pcMesaj)
|
||||
AMESSAGEBOX(pcMesaj, 48, "Atentie")
|
||||
Release pcMesaj
|
||||
Return - 5
|
||||
Endif
|
||||
Release pcMesaj
|
||||
Else
|
||||
lnSucces = 1
|
||||
Endif
|
||||
|
||||
llManualTransactions = Iif(SQLGetprop(gnhandle, "Transactions") = 2, .T., .F.)
|
||||
|
||||
If lnSucces > 0
|
||||
If !tlModificare And !llManualTransactions
|
||||
lnSucces = SQLSetprop(gnhandle, "Transactions", 2)
|
||||
Endif
|
||||
Endif
|
||||
|
||||
If lnSucces > 0
|
||||
pdData = {}
|
||||
lcSql = [begin pack_contafin.init_scriere_act_rul_local(?gnIdUtil,?gnAn,?gnLuna,] + ;
|
||||
Iif(m.tlNuSuprascrieCod, "0", "1") + [,] + Alltrim(Str(tnScrie_Sterge)) + [,?gnIdSucursala); end;]
|
||||
lnSucces = Iif(goExecutor.oExecuta(lcSql), 1, -1)
|
||||
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
|
||||
pcMesajRefacereNota = ""
|
||||
lcSql = [begin pack_contafin.final_scriere_act_rul_local(?gnIdUtil,?gnAn,?gnLuna,] + Iif(tnScrie_Sterge == 2, Alltrim(Str(lnCod)), [NULL]) + [,] + ;
|
||||
Alltrim(Str(tnScrie_Sterge)) + [,] + Iif(tlModificare, [0], [1]) + [,?@pcMesajRefacereNota); end;]
|
||||
lnSucces = Iif(goExecutor.oExecuta(lcSql), 1, -1)
|
||||
If !Empty(Nvl(pcMesajRefacereNota, ''))
|
||||
AMESSAGEBOX(pcMesajRefacereNota, 0 + 48, 'Atentie')
|
||||
Endif
|
||||
Endif
|
||||
|
||||
If !tlModificare And !llManualTransactions
|
||||
If lnSucces < 0
|
||||
lcSql = "ROLLBACK"
|
||||
Else
|
||||
lcSql = "COMMIT"
|
||||
Endif
|
||||
lnSucces2 = goExecutor.oExecute(lcSql)
|
||||
|
||||
If lnSucces2 < 0
|
||||
AMESSAGEBOX(lcSql + Chr(13) + goExecutor.cEroare, 0 + 16, "Eroare")
|
||||
Endif
|
||||
|
||||
lnSucces2 = SQLSetprop(gnhandle, "Transactions", 1)
|
||||
If lnSucces2 < 0
|
||||
AMESSAGEBOX('Programul nu a reusit sa treaca pe tranzactie automata. Iesiti din program si intrati din nou!', 0 + 48, 'Atentie!')
|
||||
Endif
|
||||
Endif
|
||||
|
||||
Return lnSucces
|
||||
|
||||
|
||||
|
||||
&& ------------------------------------------------------------------------------------
|
||||
Procedure sql_temp_insert
|
||||
Lparameters tcAlias, tcTableName
|
||||
|
||||
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 = goExecutor.oExecute(lcSql, lcCursor)
|
||||
If lnSucces < 0
|
||||
AMESSAGEBOX('Eroare la selectare coloane din ' + lcTableName + Chr(13) + goExecutor.cEroare, 0 + 16, 'Eroare')
|
||||
Endif
|
||||
|
||||
If lnSucces > 0
|
||||
***
|
||||
Select (lcAlias)
|
||||
lnCount = Fcount()
|
||||
Scan
|
||||
lcFields = []
|
||||
lcValues = []
|
||||
lcInsert = []
|
||||
Scatter Name poIreg
|
||||
|
||||
For i = 1 To lnCount
|
||||
Select (lcAlias)
|
||||
lcFieldName = Upper(Alltrim(Field(i)))
|
||||
lcFieldType = Type(lcFieldName)
|
||||
lcFieldValue = Evaluate(lcFieldName)
|
||||
If lcFieldType = 'C'
|
||||
lcVariable = '?ALLTRIM(poIreg.' + lcFieldName + ')'
|
||||
Else
|
||||
lcVariable = '?poIreg.' + lcFieldName
|
||||
Endif
|
||||
|
||||
Select CRS_COLOANE
|
||||
Locate For Upper(Alltrim(COLOANA)) == lcFieldName
|
||||
If !Found()
|
||||
Loop
|
||||
Endif
|
||||
lcFields = lcFields + [,] + lcFieldName
|
||||
lcNumber = '0'
|
||||
lcDate = ''
|
||||
lcString = ''
|
||||
|
||||
lcValues = lcValues + [,] + lcVariable
|
||||
|
||||
*!* DO CASE
|
||||
*!* CASE lcFieldType = 'N'
|
||||
*!* IF EMPTY(lcFieldValue) OR ISNULL(lcFieldValue)
|
||||
*!* lcNumber = '0'
|
||||
*!* ELSE
|
||||
*!* lcNumber = ALLTRIM(STR(lcFieldValue,24,4))
|
||||
*!* ENDIF
|
||||
|
||||
*!* lcValues = lcValues + [,] + lcNumber
|
||||
*!* CASE lcFieldType = 'C'
|
||||
*!* IF EMPTY(lcFieldValue) OR ISNULL(lcFieldValue)
|
||||
*!* lcString = ''
|
||||
*!* ELSE
|
||||
*!* lcString = ALLTRIM(lcFieldValue)
|
||||
*!* ENDIF
|
||||
|
||||
*!* lcValues = lcValues + [,] + ['] + lcString + [']
|
||||
*!* CASE INLIST(lcFieldType,'D','T')
|
||||
*!* IF EMPTY(lcFieldValue) OR ISNULL(lcFieldValue)
|
||||
*!* lcDate = ''
|
||||
*!* ELSE
|
||||
*!* lcDate = DTOS(lcFieldValue)
|
||||
*!* ENDIF
|
||||
*!* lcValues = lcValues + [,] + [TO_DATE('] + lcDate + [','YYYY-MM-DD')]
|
||||
*!* ENDCASE
|
||||
|
||||
Endfor
|
||||
* FAC NULL ID-URILE CU VALOARE 0
|
||||
poIreg.id_sucursala = IIF(!EMPTY(NVL(poIreg.id_sucursala,0)), poIreg.id_sucursala, NULL)
|
||||
IF TYPE('poIreg.taxcode') <> 'U'
|
||||
poIreg.taxcode = IIF(!EMPTY(NVL(poIreg.taxcode,0)), poIreg.taxcode, NULL)
|
||||
ENDIF
|
||||
IF TYPE('poIreg.paymentcode') <> 'U'
|
||||
poIreg.paymentcode = IIF(!EMPTY(NVL(poIreg.paymentcode,'')), poIreg.paymentcode, NULL)
|
||||
ENDIF
|
||||
IF TYPE('poIreg.id_jtva_coloana') <> 'U'
|
||||
poIreg.id_jtva_coloana = IIF(!EMPTY(NVL(poIreg.id_jtva_coloana,0)), poIreg.id_jtva_coloana, NULL)
|
||||
ENDIF
|
||||
|
||||
lcFields = Substr(lcFields, 2)
|
||||
lcValues = Substr(lcValues, 2)
|
||||
|
||||
&& INSERT INTO ACT_TEMP
|
||||
lcInsert = [INSERT INTO ] + lcTableName + [ (] + lcFields + [) VALUES (] + lcValues + [)]
|
||||
lnSucces = goExecutor.oExecute(lcInsert)
|
||||
If lnSucces < 0
|
||||
|
||||
AMESSAGEBOX(goExecutor.cEroare, 0 + 16, 'Eroare')
|
||||
Exit
|
||||
Endif
|
||||
|
||||
Endscan
|
||||
Endif
|
||||
If Used('crs_coloane')
|
||||
Use In CRS_COLOANE
|
||||
Endif
|
||||
|
||||
Return lnSucces
|
||||
|
||||
Endproc && sql_temp_insert
|
||||
|
||||
|
||||
******************
|
||||
* Sterge importuri dupa act.explicatia5 sau un cod, cate un calup de note (cod)
|
||||
******************
|
||||
PROCEDURE stergere_import_note_contabile
|
||||
LPARAMETERS tcExplicatia, tnCod, tcColoana
|
||||
* tcExplicatia = valoarea din coloana act.explicatia5
|
||||
* tcColoana (optional) default = 'explicatia5'
|
||||
* tnCod (optional) daca doresc sa sterg un singur cod
|
||||
|
||||
PRIVATE pcExplicatia
|
||||
Local lcColoana, lcCursor, lcSql, llSucces, lnSucces, lcSelect
|
||||
LOCAL lnPercent, lcTask
|
||||
lcselect = SELECT()
|
||||
lcColoana = IIF(EMPTY(m.tcColoana), 'explicatia5', m.tcColoana)
|
||||
pcExplicatia = ALLTRIM(NVL(m.tcExplicatia, ''))
|
||||
pnCod = NVL(m.tnCod, 0)
|
||||
IF EMPTY(m.pcExplicatia) AND EMPTY(m.pnCod)
|
||||
llSucces = .F.
|
||||
SELECT (m.lcSelect)
|
||||
RETURN m.llSucces
|
||||
ENDIF
|
||||
lcTask = 'Stergere...'
|
||||
|
||||
lcSql = [select distinct cod from act where an=?gnAn and Luna=?gnLuna and sters=0 ] + ;
|
||||
IIF(!EMPTY(m.pcExplicatia), [ and ] + m.lcColoana + [ = ?pcExplicatia], '') + ;
|
||||
IIF(!EMPTY(m.pnCod), [ and cod = ?pnCod], '')
|
||||
lcCursor = [cCoduri]
|
||||
llSucces = goExecutor.oExecuta(m.lcSql, m.lcCursor)
|
||||
|
||||
IF !m.llSucces
|
||||
SELECT (m.lcSelect)
|
||||
RETURN m.llSucces
|
||||
ENDIF
|
||||
|
||||
lnSucces = SQLSetprop(m.gnhandle, "Transactions", 2)
|
||||
lcSql = [begin pack_contafin.init_scriere_act_rul_local(?gnIdUtil,?gnAn,?gnLuna, 1,0,?gnIdSucursala); end;]
|
||||
llSucces = goExecutor.oExecuta(lcSql)
|
||||
If m.llSucces
|
||||
Select cCoduri
|
||||
Scan
|
||||
pnCod = cod
|
||||
If Mod(Recno(), 10) = 0
|
||||
lnPercent = Round(Recno() / Reccount() * 100, 0)
|
||||
WAIT WINDOW m.lcTask + Alltrim(Str(m.lnPercent)) + '%' NOWAIT
|
||||
Endif
|
||||
lcSql = [begin pack_contafin.sterge_document(?pnCod); end;]
|
||||
llSucces = goExecutor.oExecuta(lcSql)
|
||||
If !m.llSucces
|
||||
Exit
|
||||
Endif
|
||||
ENDSCAN
|
||||
Endif
|
||||
|
||||
If m.llSucces
|
||||
llSucces2 = goExecutor.oExecuta('COMMIT')
|
||||
Else
|
||||
llSucces2 = goExecutor.oExecuta('ROLLBACK')
|
||||
Endif
|
||||
|
||||
SQLSetprop(m.gnhandle, "Transactions", 1)
|
||||
|
||||
SELECT (m.lcSelect)
|
||||
|
||||
RETURN m.llSucces
|
||||
ENDPROC && stergere_import_note_contabile
|
||||
|
||||
268
COMUN/programe/osecurity.prg
Normal file
268
COMUN/programe/osecurity.prg
Normal file
@@ -0,0 +1,268 @@
|
||||
*!* 19.05.2009
|
||||
*!* marius.mutu
|
||||
*!* gnewcryptxml = .T. nu mai exista fisiere roa_security.xml cu criptarea veche (windows api)
|
||||
|
||||
*!* 21.06.2012
|
||||
*!* marius.mutu
|
||||
*!* VERIFICA_UTILIZATOR
|
||||
*!* tratare utilizatori ADMIN -1, SUPER -2
|
||||
|
||||
#DEFINE CRLF CHR(13) + CHR(10)
|
||||
*** osecurity
|
||||
|
||||
********************* INCEPUT Getcrssecurity **********************
|
||||
* PROCEDURE Getcrssecurity( )
|
||||
* Date : 04/05/05, 11:25:56
|
||||
* author : marius.mutu
|
||||
* description:
|
||||
|
||||
PROCEDURE GetcrsSecurity
|
||||
LPARAMETERS tcSecurityFile
|
||||
|
||||
*!* SECURITY.TXT - NECRIPTAT
|
||||
*!* SECURITY.XML - CRIPTAT
|
||||
*!* DACA EXISTA SECURITY.XML - PARSEZ XML, ALTFEL PARSEZ TXT
|
||||
*!* gnewcryptxml - daca roa_security.xml are criptare noua(blowfish)
|
||||
*!* gnewcryptfll - daca exista vfpencryption.fll
|
||||
|
||||
IF TYPE("gnewcryptxml")="U"
|
||||
PUBLIC gnewcryptxml
|
||||
ENDIF
|
||||
*!* 19.05.2009
|
||||
*!* nu mai exista fisiere roa_security.xml cu criptarea veche (windows api)
|
||||
*!* gnewcryptxml=.F.
|
||||
gnewcryptxml = .T.
|
||||
|
||||
IF TYPE("gnewcryptfll")="U"
|
||||
PUBLIC gnewcryptfll
|
||||
ENDIF
|
||||
gnewcryptfll=.T.
|
||||
LOCAL lnAt,lcDirMare
|
||||
IF TYPE("gcComunPath")="U"
|
||||
PUBLIC gcComunPath
|
||||
lnAt=RAT("\",gcAppPath,2)
|
||||
lcDirMare=LEFT(gcAppPath,lnAt)
|
||||
gcComunPath=ADDBS(lcDirMare)+"COMUNROA\"
|
||||
ENDIF
|
||||
|
||||
LOCAL loex AS EXCEPTION
|
||||
TRY
|
||||
lcEncryptionFile = gcComunPath+"vfpencryption.fll"
|
||||
IF !"vfpencryption"$LOWER(SET("Library"))
|
||||
SET LIBRARY TO (lcEncryptionFile) ADDITIVE
|
||||
ENDIF
|
||||
CATCH TO loex
|
||||
gnewcryptfll=.F.
|
||||
ENDTRY
|
||||
|
||||
|
||||
|
||||
LOCAL lcSecurityFile,lcSecurityPath, lcCursor, lcLinie, lcMode
|
||||
LOCAL lcSecurityFileXML
|
||||
|
||||
lcSecurityFileXML = FORCEEXT(tcSecurityFile,'xml')
|
||||
|
||||
lcCursor = "crsHost"
|
||||
lcSecurityFile = tcSecurityFile
|
||||
lcSecurityPath = ADDBS(JUSTPATH(lcSecurityFile))
|
||||
|
||||
lnValid = 0
|
||||
llSucces = .T.
|
||||
IF !DIRECTORY(lcSecurityPath)
|
||||
TRY
|
||||
MD (lcSecurityPath)
|
||||
CATCH
|
||||
aMESSAGEBOX('Nu se poate crea directorul ' + lcSecurityPath + '!',0+16,'Atentie')
|
||||
ENDTRY
|
||||
ENDIF
|
||||
|
||||
IF !(FILE(lcSecurityFile) OR FILE(lcSecurityFileXML))
|
||||
CD (lcSecurityPath)
|
||||
IF !FILE(lcSecurityFileXML)
|
||||
lcSecurityText = 'ROA;CONTAFIN_ORACLE;123;'
|
||||
lcSecurityText = INPUTBOX('Host(DSN);SCHEMA;SCHEMA_PASSWORD;1;','Server',lcSecurityText)
|
||||
lcSecurityText = ALLTRIM(lcSecurityText)
|
||||
IF !EMPTY(lcSecurityText)
|
||||
IF RIGHT(lcSecurityText,1) # ';'
|
||||
lcSecurityText = lcSecurityText + ';'
|
||||
ENDIF
|
||||
ELSE
|
||||
llSucces = .F.
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
IF llSucces
|
||||
TRY
|
||||
IF !(FILE(lcSecurityFileXML) OR FILE(lcSecurityFile))
|
||||
*!* SECURITY.TXT
|
||||
STRTOFILE(lcSecurityText, lcSecurityFile)
|
||||
*!* SECURITY.TXT ^
|
||||
ENDIF
|
||||
|
||||
|
||||
*!* SECURITY.XML
|
||||
IF !FILE(lcSecurityFileXML)
|
||||
CREATE CURSOR cXML (HOST c(50), schema c(50), pwd c(50))
|
||||
INSERT INTO cXML (HOST, schema, pwd) VALUES("ROA","CONTAFIN_ORACLE","ENCRYPTED PWD")
|
||||
|
||||
CURSORTOXML("cXML",lcSecurityFileXML, 1, 512, 0, "1")
|
||||
USE IN cXML
|
||||
ENDIF
|
||||
*!* SECURITY.XML ^
|
||||
CATCH
|
||||
aMESSAGEBOX('Nu s-a putut crea fisierul ' + lcSecurityFile,0+16,'Atentie')
|
||||
llSucces = .F.
|
||||
ENDTRY
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
IF llSucces
|
||||
IF !FILE(lcSecurityFile) AND !FILE(lcSecurityFileXML)
|
||||
aMESSAGEBOX('Nu exista fisierul ' + lcSecurityFile,0+16,'Atentie')
|
||||
llSucces = .F.
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
IF llSucces
|
||||
IF USED(lcCursor)
|
||||
USE IN (lcCursor)
|
||||
ENDIF
|
||||
|
||||
|
||||
&& daca exista security.xml - il transform in cursorul cXML si completez crsHost
|
||||
CREATE CURSOR (lcCursor)(HOST c(100), schema c(100), pwd v(100), IsEncrypted c(1))
|
||||
IF FILE(lcSecurityFileXML)
|
||||
TRY
|
||||
lcSecurityText = FILETOSTR(lcSecurityFileXML)
|
||||
XMLTOCURSOR(lcSecurityFileXML, "cXML", 512)
|
||||
SELECT cXML
|
||||
GO TOP
|
||||
SCATTER NAME lofirstrecord
|
||||
|
||||
IF lofirstrecord.HOST="ENCRYPTION"
|
||||
gnewcryptxml=.T.
|
||||
DELETE
|
||||
ENDIF
|
||||
|
||||
|
||||
INSERT INTO (lcCursor) (HOST, schema, pwd, IsEncrypted) ;
|
||||
SELECT HOST, schema, pwd, "1" AS IsEncrypted ;
|
||||
FROM cXML
|
||||
lnValid = RECCOUNT('cXML')
|
||||
|
||||
USE IN cXML
|
||||
CATCH TO loex
|
||||
*!* Local loEx As Exception
|
||||
aMESSAGEBOX('Mesaj: ' + loex.MESSAGE + CRLF + ;
|
||||
'Eroare nr: ' + ALLTRIM(TRANSFORM(loex.ERRORNO)) + CRLF + ;
|
||||
'Cod: ' + loex.LINECONTENTS + CRLF + 'Procedura: ' + loex.PROCEDURE + CRLF + ;
|
||||
'Linia nr: ' + ALLTRIM(TRANSFORM(loex.LINENO)),0+16,'Eroare')
|
||||
FINALLY
|
||||
USE IN (SELECT('cXML'))
|
||||
ENDTRY
|
||||
|
||||
ELSE
|
||||
* CREATE CURSOR (lcCursor)(HOST c(100), Schema c(100), Pwd v(100), IsEncrypted c(1))
|
||||
lcSecurityText = FILETOSTR(lcSecurityFile)
|
||||
LOCAL laHost
|
||||
DIMENSION laHost[1]
|
||||
|
||||
lnLen = ALINES(laHost, lcSecurityText)
|
||||
|
||||
IF lnLen > 0
|
||||
FOR i = 1 TO lnLen
|
||||
lcLinie = laHost[i]
|
||||
|
||||
lcHost = GETWORDNUM(lcLinie, 1, ';')
|
||||
lcSchema = GETWORDNUM(lcLinie, 2, ';')
|
||||
lcPassword = GETWORDNUM(lcLinie, 3, ';')
|
||||
lcMode = "0" && necriptat - security.txt
|
||||
|
||||
IF EMPTY(lcHost) OR EMPTY(lcSchema) OR EMPTY(lcPassword)
|
||||
LOOP
|
||||
ENDIF
|
||||
|
||||
lnValid = lnValid + 1
|
||||
INSERT INTO &lcCursor (HOST, schema, pwd, IsEncrypted) VALUES (lcHost, lcSchema, lcPassword, IIF(EMPTY(lcMode), '0', lcMode))
|
||||
ENDFOR
|
||||
ENDIF
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
RETURN lnValid
|
||||
ENDPROC
|
||||
********************* SFARSIT Getcrssecurity **********************
|
||||
*************************************************************************************************************
|
||||
FUNCTION verifica_utilizator
|
||||
LPARAMETERS tcNumeUtilizator,tcParola
|
||||
LOCAL lnVerificare,lnRezultat,lnSuma,lnCkSum
|
||||
glAdministrator = .F.
|
||||
glSupervizor = .F.
|
||||
|
||||
lnRezultat = -1
|
||||
TRY
|
||||
lcSql = [SELECT pack_drepturi.verificautilizator(']+ALLTRIM(tcNumeUtilizator)+[',']+;
|
||||
ALLTRIM(tcParola)+[') as id_util from dual]
|
||||
lcCursor = [v_verificare]
|
||||
lnSucces = goExecutor.oExecute(lcSql,lcCursor)
|
||||
goExecutor.oReset()
|
||||
IF USED('v_verificare') AND RECCOUNT('v_verificare')>0
|
||||
SELECT v_verificare
|
||||
lnVerificare = id_util
|
||||
USE IN v_verificare
|
||||
ENDIF
|
||||
IF m.lnVerificare = -1
|
||||
glAdministrator = .F.
|
||||
glSupervizor = .F.
|
||||
RETURN m.lnRezultat
|
||||
ENDIF
|
||||
IF lnVerificare < -1000000 && ADMIN, SUPER, SERVER
|
||||
lnRezultat = lnVerificare + 1000000
|
||||
DO case
|
||||
CASE lnRezultat = -1 && ADMIN
|
||||
glAdministrator = .T.
|
||||
CASE lnRezultat = -2 && SUPER
|
||||
glSupervizor = .T.
|
||||
ENDCASE
|
||||
ELSE
|
||||
lnSuma = 0
|
||||
lnRezultat = INT(lnVerificare/100) && id_util
|
||||
lnVerificare = ABS(m.lnVerificare) && pentru cazul in care am id_util (-1,-2,-3)
|
||||
i = lnRezultat
|
||||
lnCkSum = MOD(lnVerificare,100)
|
||||
DO WHILE i > 0
|
||||
lnSuma = lnSuma+MOD(i,10)
|
||||
i = INT(i/10)
|
||||
ENDDO
|
||||
IF MOD(lnSuma+lnCkSum, 13) = 0
|
||||
glAdministrator = .T. && GRUP ADMINISTRARE ID = 0
|
||||
ELSE
|
||||
IF MOD(lnSuma+lnCkSum, 11) = 0
|
||||
glSupervizor = .T. && GRUP SUPERVIZARE ID = -1
|
||||
ENDIF
|
||||
ENDIF
|
||||
ENDIF
|
||||
CATCH
|
||||
lnRezultat = -1
|
||||
ENDTRY
|
||||
|
||||
RETURN lnRezultat
|
||||
ENDFUNC
|
||||
*************************************************************************************************************
|
||||
FUNCTION verifica_id_util
|
||||
LPARAMETERS tnIdUtil
|
||||
LOCAL lcRezultat
|
||||
lcRezultat=[]
|
||||
lcSql = [SELECT pack_drepturi.verificaidutil(]+;
|
||||
ALLTRIM(STR(tnIdUtil))+[) as utilizator from dual]
|
||||
lcCursor = [v_cursor_verif]
|
||||
lnSucces = goExecutor.oExecute(lcSql,lcCursor)
|
||||
goExecutor.oReset()
|
||||
IF USED('v_cursor_verif') AND RECCOUNT('v_cursor_verif')>0
|
||||
SELECT v_cursor_verif
|
||||
lcRezultat=utilizator
|
||||
USE IN v_cursor_verif
|
||||
ENDIF
|
||||
RETURN lcRezultat
|
||||
ENDFUNC
|
||||
*************************************************************************************************************
|
||||
448
COMUN/programe/oserii_numere.prg
Normal file
448
COMUN/programe/oserii_numere.prg
Normal file
@@ -0,0 +1,448 @@
|
||||
**************************************************************************************************************
|
||||
** Clase:
|
||||
** oGeneratorNumere
|
||||
** Proceduri:
|
||||
** viz_config_serii_complet
|
||||
** creeaza_cursor_serii
|
||||
** Functii:
|
||||
** caut_serii_fact
|
||||
** caut_tipentitate_permis
|
||||
**************************************************************************************************************
|
||||
*********************************** Obiect oNumereDocumente *********************************
|
||||
Define Class oGeneratorNumere As Custom
|
||||
cAliasVechi = Null
|
||||
lInitializare = .F. && modificare 14.07.2010
|
||||
nTipuriDocument = 30
|
||||
Declare paPlaje (30,8)
|
||||
** 1 - numar
|
||||
** 2 - nume cursor
|
||||
** 3 - cu_serie
|
||||
** 4 - cu_plaja
|
||||
** 5 - id_serie
|
||||
** 6 - cu buffer .T. daca se genereaza mai multe numere in cadrul aceleiasi operatii
|
||||
** 7 - tip buffer 1 - in caz de renuntare, se dezaloca toate numerele din buffer ( implicit )
|
||||
** 2 - in caz de renuntare, se dezaloca toate numerele din buffer, cu exceptia primului, care este repus in array
|
||||
** 8 - nume cursor buffer
|
||||
******************************
|
||||
Procedure Init
|
||||
*!* modificare 14.07.2010
|
||||
*!* This.ResetAll()
|
||||
This.lInitializare = .T.
|
||||
This.ResetAll()
|
||||
This.lInitializare = .F.
|
||||
*!* modificare 14.07.2010 ^
|
||||
Endproc
|
||||
******************************
|
||||
Procedure Reset
|
||||
Lparameters tnIdTipDoc
|
||||
With This
|
||||
.paPlaje(tnIdTipDoc,1) = 0
|
||||
.paPlaje(tnIdTipDoc,2) = Null
|
||||
.paPlaje(tnIdTipDoc,3) = .F.
|
||||
.paPlaje(tnIdTipDoc,4) = .F.
|
||||
.paPlaje(tnIdTipDoc,5) = Null
|
||||
.dezactiveazaBuffer(tnIdTipDoc)
|
||||
Endwith
|
||||
Endproc
|
||||
******************************
|
||||
Procedure ResetAll
|
||||
With This
|
||||
For i = 1 To This.nTipuriDocument
|
||||
.Reset(i)
|
||||
Endfor
|
||||
Endwith
|
||||
Endproc
|
||||
******************************
|
||||
Procedure ResetNumar
|
||||
Lparameters tnIdTipDoc
|
||||
With This
|
||||
.paPlaje(tnIdTipDoc,1) = 0
|
||||
.paPlaje(tnIdTipDoc,5) = Null
|
||||
Endwith
|
||||
Endproc
|
||||
******************************
|
||||
Procedure ResetNumere
|
||||
With This
|
||||
For i = 1 To This.nTipuriDocument
|
||||
.ResetNumar(i)
|
||||
Endfor
|
||||
Endwith
|
||||
Endproc
|
||||
******************************
|
||||
Procedure activeazaBuffer
|
||||
Lparameters tnIdTipDoc,tnTipBuffer
|
||||
Local lnTipBuffer
|
||||
lcSql = [begin pack_serii_numere.seteazaNumereMultiple(1); end;]
|
||||
If goExecutor.oExecuta(lcSql)
|
||||
If Empty(tnTipBuffer) Or !Between(tnTipBuffer,1,2)
|
||||
lnTipBuffer = 1
|
||||
Else
|
||||
lnTipBuffer = tnTipBuffer
|
||||
Endif
|
||||
lcCursor = [crsbufsertemp]+Alltrim(Str(tnIdTipDoc))
|
||||
Create Cursor (lcCursor) (numar N(14))
|
||||
*!* If !Empty(This.paPlaje(tnIdTipDoc,1))
|
||||
*!* Select (lcCursor)
|
||||
*!* Append Blank
|
||||
*!* Replace numar With This.paPlaje(tnIdTipDoc,1)
|
||||
*!* This.ResetNumar(tnIdTipDoc)
|
||||
*!* Endif
|
||||
This.paPlaje(tnIdTipDoc,6) = .T.
|
||||
This.paPlaje(tnIdTipDoc,7) = lnTipBuffer
|
||||
This.paPlaje(tnIdTipDoc,8) = lcCursor
|
||||
Endif
|
||||
Endproc
|
||||
******************************
|
||||
Procedure dezactiveazaBuffer
|
||||
Lparameters tnIdTipDoc
|
||||
lcSql = [begin pack_serii_numere.seteazaNumereMultiple(0); end;]
|
||||
*!* modificare 14.07.2010 : imi apeleaza de 20 de ori procedura la fiecare initializare a obiectului
|
||||
*!* lnSucces = goExecutor.oExecute(lcSql)
|
||||
If (This.lInitializare And tnIdTipDoc = 1) Or !This.lInitializare
|
||||
llSucces = goExecutor.oExecuta(lcSql)
|
||||
Else
|
||||
llSucces = .T.
|
||||
Endif
|
||||
*!* modificare 14.07.2010 ^
|
||||
If llSucces
|
||||
lcCursor = This.paPlaje(tnIdTipDoc,8)
|
||||
If !Empty(Nvl(lcCursor,[]))
|
||||
Use In (lcCursor)
|
||||
Endif
|
||||
This.paPlaje(tnIdTipDoc,6) = .F.
|
||||
This.paPlaje(tnIdTipDoc,7) = 1
|
||||
This.paPlaje(tnIdTipDoc,8) = Null
|
||||
Endif
|
||||
Endproc
|
||||
******************************
|
||||
Procedure salveazaAliasVechi
|
||||
This.cAliasVechi = Alias()
|
||||
Endproc
|
||||
******************************
|
||||
Procedure selecteazaAliasVechi
|
||||
If !Empty(Nvl(This.cAliasVechi,[]))
|
||||
Select (This.cAliasVechi)
|
||||
Endif
|
||||
Endproc
|
||||
******************************
|
||||
Function creeaza_cursor_serii
|
||||
Lparameters tnIdTipDoc
|
||||
Local lcSql,lcCursor,llSucces
|
||||
Private pnIdTipDoc,pnRezultat
|
||||
pnIdTipDoc = tnIdTipDoc
|
||||
pnRezultat = 0
|
||||
This.salveazaAliasVechi()
|
||||
lcCursor = [crsseriitemp]+Alltrim(Str(tnIdTipDoc))
|
||||
If Used(lcCursor)
|
||||
Use In (lcCursor)
|
||||
Endif
|
||||
lcSql = [{call ] + gcS + [.pack_serii_numere.verifica_cursor_serii(?pnIdTipDoc,?gnIdUtil,?gnIdSucursala,?@pnRezultat)}]
|
||||
llSucces = goExecutor.oExecuta(lcSql,lcCursor)
|
||||
With This
|
||||
*!* modificare 04.09.2012
|
||||
If !llSucces OR pnRezultat = -1
|
||||
*!* If !llSucces
|
||||
*!* modificare 04.09.2012 ^
|
||||
*!* modificare ROAGEST v 2.0.138
|
||||
lcSql = [{call ] + gcs + [.pack_serii_numere.verifica_tipdoc(?pnIdTipDoc,?@pnRezultat)}]
|
||||
IF !goExecutor.oExecuta(lcSql,lcCursor)
|
||||
*!* modificare ROAGEST v 2.0.138 ^
|
||||
pnRezultat = 1
|
||||
.paPlaje(tnIdTipDoc,2) = Null
|
||||
.paPlaje(tnIdTipDoc,3) = .F.
|
||||
.paPlaje(tnIdTipDoc,4) = .F.
|
||||
*!* modificare ROAGEST v 2.0.138
|
||||
Else
|
||||
.paPlaje(tnIdTipDoc,2) = Null
|
||||
.paPlaje(tnIdTipDoc,3) = Iif(Mod(pnRezultat,2)=1,.T.,.F.)
|
||||
.paPlaje(tnIdTipDoc,4) = .F.
|
||||
Endif
|
||||
*!* modificare ROAGEST v 2.0.138 ^
|
||||
Else
|
||||
If Reccount(lcCursor) > 0
|
||||
.paPlaje(tnIdTipDoc,2) = lcCursor
|
||||
.paPlaje(tnIdTipDoc,3) = Iif(Mod(pnRezultat,2)=1,.T.,.F.)
|
||||
.paPlaje(tnIdTipDoc,4) = Iif(pnRezultat>=2,.T.,.F.)
|
||||
Else
|
||||
pnRezultat = 1
|
||||
.paPlaje(tnIdTipDoc,2) = Null
|
||||
.paPlaje(tnIdTipDoc,3) = .F.
|
||||
.paPlaje(tnIdTipDoc,4) = .F.
|
||||
Endif
|
||||
Endif
|
||||
Endwith
|
||||
This.selecteazaAliasVechi()
|
||||
Release pnIdTipDoc
|
||||
Return pnRezultat
|
||||
Endfunc && creeaza_cursor_serii
|
||||
******************************
|
||||
Function aloca_numar
|
||||
Lparameters tnIdTipDoc,tnIdGestiune
|
||||
Private pnIdTipDoc,pnIdGestiune,pnNumar,pnIdSerie
|
||||
Do Case
|
||||
Case Isnull(This.paPlaje(tnIdTipDoc,2))
|
||||
pnNumar = 0
|
||||
*!* modificare ROAGEST v 2.0.105
|
||||
*!* Case This.paPlaje(tnIdTipDoc,1) <> 0
|
||||
*!* modificare ROAGEST v 2.0.105 ^
|
||||
Case This.paPlaje(tnIdTipDoc,1) <> 0 And !This.paPlaje(tnIdTipDoc,6)
|
||||
pnNumar = This.paPlaje(tnIdTipDoc,1)
|
||||
Otherwise
|
||||
pnNumar = -1
|
||||
pnIdTipDoc = tnIdTipDoc
|
||||
pnIdGestiune = Iif(Isnull(tnIdGestiune) Or Pcount()=1,Null,tnIdGestiune)
|
||||
This.salveazaAliasVechi()
|
||||
lcCursor = This.paPlaje(tnIdTipDoc,2)
|
||||
If Used(lcCursor)
|
||||
Select (lcCursor)
|
||||
pnIdSerie = id_serie
|
||||
Else
|
||||
pnIdSerie = Null
|
||||
Endif
|
||||
lcSql=[begin ] + gcS + [.pack_serii_numere.aloca_numar(?pnIdTipDoc,?pnIdSerie,?pnIdGestiune,?gnIdUtil,?gnIdSucursala,?@pnNumar); end;]
|
||||
IF !goExecutor.oExecuta(lcSql)
|
||||
pnNumar = 0
|
||||
Endif
|
||||
Release pnIdTipDoc,pnIdGestiune,pnIdEntitate
|
||||
With This
|
||||
*!* modificare ROAGEST v 2.0.105 : daca e activat buffer-ul, atunci pun fiecare numar generat in cursor,nu in array ( in afara de primul, care ramane in array )
|
||||
If This.paPlaje(tnIdTipDoc,6)
|
||||
lcCursor = This.paPlaje(tnIdTipDoc,8)
|
||||
Select (lcCursor)
|
||||
Append Blank
|
||||
Replace numar With pnNumar
|
||||
Else
|
||||
*!* modificare ROAGEST v 2.0.105^
|
||||
.paPlaje(tnIdTipDoc,1) = pnNumar
|
||||
*!* modificare ROAGEST v 2.0.105
|
||||
Endif
|
||||
*!* modificare ROAGEST v 2.0.105 ^
|
||||
.paPlaje(tnIdTipDoc,5) = pnIdSerie
|
||||
Endwith
|
||||
This.selecteazaAliasVechi()
|
||||
Endcase
|
||||
Return pnNumar
|
||||
Endfunc && aloca_numar
|
||||
******************************
|
||||
Procedure verifica_numar
|
||||
Lparameters tnIdTipDoc,tnNumar
|
||||
With This
|
||||
If tnNumar <> .paPlaje(tnIdTipDoc,1) And .paPlaje(tnIdTipDoc,1) <> 0
|
||||
.dezaloca_numar(tnIdTipDoc)
|
||||
Endif
|
||||
Endwith
|
||||
Endproc
|
||||
******************************
|
||||
Function verifica_serie
|
||||
Lparameters tnIdTipDoc
|
||||
Local lcCursor,llReturn
|
||||
llReturn = .F.
|
||||
With This
|
||||
If !Isnull(This.paPlaje(tnIdTipDoc,2))
|
||||
.salveazaAliasVechi()
|
||||
lcCursor = Alltrim(.paPlaje(tnIdTipDoc,2))
|
||||
If Used(lcCursor)
|
||||
Select (lcCursor)
|
||||
If Nvl(.paPlaje(tnIdTipDoc,5),-99)<>Nvl(id_serie,-99)
|
||||
.dezaloca_numar(tnIdTipDoc)
|
||||
llReturn = .T.
|
||||
Endif
|
||||
Endif
|
||||
.selecteazaAliasVechi()
|
||||
Else
|
||||
llReturn = .T.
|
||||
Endif
|
||||
Endwith
|
||||
Return llReturn
|
||||
Endfunc
|
||||
******************************
|
||||
Procedure dezaloca_numar
|
||||
Lparameters tnIdTipDoc
|
||||
Private pnIdTipDoc
|
||||
pnIdTipDoc = tnIdTipDoc
|
||||
With This
|
||||
If !Isnull(This.paPlaje(tnIdTipDoc,2))
|
||||
.salveazaAliasVechi()
|
||||
If .paPlaje(tnIdTipDoc,1) <> 0
|
||||
* Cateodata dadea eroare la executia in Oracle wrong type, desi pnIdTipDoc era numeric
|
||||
*!* lcSql=[begin ] + gcS + [.pack_serii_numere.dezaloca_numar(?pnIdTipDoc); end;]
|
||||
lcSql=[begin pack_serii_numere.dezaloca_numar(] + ALLTRIM(TRANSFORM(m.pnIdTipDoc)) + [); end;]
|
||||
If goExecutor.oExecuta(lcSql)
|
||||
.paPlaje(tnIdTipDoc,1) = 0
|
||||
Endif
|
||||
Endif
|
||||
.selecteazaAliasVechi()
|
||||
Endif
|
||||
Endwith
|
||||
Release pnIdTipDoc
|
||||
Endproc && dezaloca_numar
|
||||
******************************
|
||||
Procedure dezaloca_buffer
|
||||
Lparameters tnIdTipDoc,tlDezactiveazaBuffer
|
||||
Private pnIdTipDoc
|
||||
pnIdTipDoc = tnIdTipDoc
|
||||
With This
|
||||
pnTip = .paPlaje(tnIdTipDoc,7)
|
||||
.salveazaAliasVechi()
|
||||
lcSql=[begin ] + gcS + [.pack_serii_numere.dezaloca_numere(?pnIdTipDoc,?pnTip); end;]
|
||||
If goExecutor.oExecuta(lcSql)
|
||||
If pnTip = 1
|
||||
.paPlaje(tnIdTipDoc,1) = 0
|
||||
Endif
|
||||
If tlDezactiveazaBuffer
|
||||
.dezactiveazaBuffer(tnIdTipDoc)
|
||||
Endif
|
||||
Endif
|
||||
.selecteazaAliasVechi()
|
||||
Endwith
|
||||
Release pnIdTipDoc,pnTip
|
||||
Endproc && dezaloca_numere
|
||||
*******************************
|
||||
Procedure dezaloca_numere
|
||||
With This
|
||||
For i = 1 To This.nTipuriDocument
|
||||
If .paPlaje(i,1)<>0
|
||||
.dezaloca_numar(i)
|
||||
Endif
|
||||
Endfor
|
||||
Endwith
|
||||
Endproc && dezaloca_numere
|
||||
******************************
|
||||
Function getNumeCursor
|
||||
Lparameters tnIdTipDoc
|
||||
Return This.paPlaje(tnIdTipDoc,2)
|
||||
Endfunc && getNumeCursor
|
||||
******************************
|
||||
Function getSerieCursor
|
||||
Lparameters tnIdTipDoc
|
||||
Local lcSerie
|
||||
With This
|
||||
If Reccount(.paPlaje(tnIdTipDoc,2))>0
|
||||
.salveazaAliasVechi()
|
||||
Select (.paPlaje(tnIdTipDoc,2))
|
||||
lcSerie = Alltrim(serie)
|
||||
.selecteazaAliasVechi()
|
||||
Else
|
||||
lcSerie = []
|
||||
Endif
|
||||
Endwith
|
||||
Return lcSerie
|
||||
Endfunc && getNumeCursor
|
||||
******************************
|
||||
Function getLungimeSerie
|
||||
Lparameters tnIdTipDoc
|
||||
Local lnLungime
|
||||
With This
|
||||
If Reccount(.paPlaje(tnIdTipDoc,2))>0
|
||||
.salveazaAliasVechi()
|
||||
Select (.paPlaje(tnIdTipDoc,2))
|
||||
lnLungime = lungime
|
||||
.selecteazaAliasVechi()
|
||||
Else
|
||||
lnLungime = Null
|
||||
Endif
|
||||
Endwith
|
||||
Return lnLungime
|
||||
Endfunc && getLungimeSerie
|
||||
******************************
|
||||
Function getIdSerie
|
||||
Lparameters tnIdTipDoc
|
||||
Return This.paPlaje(tnIdTipDoc,5)
|
||||
Endfunc && getIdSerie
|
||||
******************************
|
||||
Enddefine
|
||||
************************************ INCEPUT : viz_config_serii_complet **********************************
|
||||
Procedure viz_config_serii_complet
|
||||
Lparameters tnIdTipDoc
|
||||
Private pcSchema,pcSelect,pcFiltru,pcOrder,poDocumente,poPlaje,poSerii
|
||||
Local llAfiseaza
|
||||
Store [] To pcSchema,pcSelect,pcFiltru,pcOrder,poDocumente,poPlaje,poSerii
|
||||
Store .F. To llAfiseaza
|
||||
pcSchema = []
|
||||
pcSelect = [select id_tipdoc, id_tipentitate, tipdoc, descriere, maxlen, cu_serie, cu_plaje, tipentitate, plajepeentitate, an, luna, an2caractere from vserii_tipdoc where]
|
||||
If Empty(tnIdTipDoc)
|
||||
pcFiltru = [2=2]
|
||||
Else
|
||||
pcFiltru = [id_tipdoc=] + Alltrim(Str(tnIdTipDoc))
|
||||
Endif
|
||||
pcOrder = [tipdoc]
|
||||
llAfiseaza = .F.
|
||||
gencursor('poDocumente','crsTipdoc',pcSelect,pcFiltru,pcSchema,pcOrder,llAfiseaza)
|
||||
poDocumente.ca_baza1.afisare()
|
||||
|
||||
pcSchema = [id_serie N(10),serie C(10),an N(1),luna N(1),lungime N(10),inactiv N(1),resetare C(50),exemplu C(50), isautofactura N(1), isbeneficiari N(1), isterti N(1), isfurnizori N(1), prefix N(5), an2caractere N(1)]
|
||||
pcSelect = [select id_serie, serie, an, luna, lungime, inactiv, resetare, exemplu, isautofactura, isbeneficiari, isterti, isfurnizori, prefix, an2caractere from vserii where]
|
||||
pcFiltru = [2=2]
|
||||
pcOrder = [serie]
|
||||
llAfiseaza = .F.
|
||||
gencursor('poSerii','crsSerii',pcSelect,pcFiltru,pcSchema,pcOrder,llAfiseaza)
|
||||
poSerii.ca_baza1.afisare()
|
||||
|
||||
pcSchema = [id_plaja N(10),id_tipdoc N(10),id_tipentitate N(10),id_entitate N(10),pl_inf N(18),pl_sup N(18),] + ;
|
||||
[inactiv N(1),id_serie N(10),datai d,datas d,tipentitate C(100),entitate C(100),serie C(10),urmval C(100),valabil N(1)]
|
||||
pcSelect = [select id_plaja, id_tipdoc, id_tipentitate, id_entitate, pl_inf, pl_sup, inactiv, id_serie,] + ;
|
||||
[datai, datas, tipentitate, entitate, serie, urmval, valabil from vplaje_numere where]
|
||||
pcFiltru = [1=2]
|
||||
pcOrder = [id_tipdoc]
|
||||
llAfiseaza = .F.
|
||||
lcFiltruOriginal = [NVL(id_sucursala,-99) = NVL(?gnIdSucursala,-99)]
|
||||
gencursor('poPlaje','crsPlaje',pcSelect,pcFiltru,pcSchema,pcOrder,llAfiseaza,[],.F.,lcFiltruOriginal)
|
||||
|
||||
ofrmseriicomplet = Createobject('frm_plaje_numere')
|
||||
ofrmseriicomplet.Show(1)
|
||||
|
||||
Use In (Select('crsTipdoc'))
|
||||
Use In (Select('crsSerii'))
|
||||
Use In (Select('crsPlaje'))
|
||||
Release ofrmseriicomplet, poDocumente, poSerii, poPlaje
|
||||
Endproc && viz_config_serii_complet
|
||||
************************************ SFARSIT : viz_config_serii_complet **********************************
|
||||
*********************************** INCEPUT : caut_tipentitate_permis ********************************
|
||||
Function caut_tipentitate_permis
|
||||
Parameters tnTipDoc,tnPornire, tlDesktop
|
||||
Private pnTipDoc
|
||||
pnTipDoc = tnTipDoc
|
||||
Local lcCont,loCauta, lnPornire, llDesktop
|
||||
lnPornire = tnPornire && 1-incepe cu...6-toate
|
||||
llDesktop = tlDesktop
|
||||
Store "" To loCauta
|
||||
|
||||
lcSelect = [select id_tipentitate, descriere from ] + gcS + [.vserii_tipentpermis]
|
||||
lcFiltru = [1=2]
|
||||
lcSchema = []
|
||||
lcOrder = [descriere]
|
||||
lccoloane = [descriere]
|
||||
lcTitlu = [Alegeti tipul entitatii]
|
||||
lcTitluColoane = [Tip entitate]
|
||||
lcFiltruOriginal = [id_tipdoc = ?pnTipDoc]
|
||||
lcNumeProc = []
|
||||
llToateIreg = .F.
|
||||
loCauta = cauta_alfa(lcSelect,lcFiltru,lcSchema,lcOrder,lccoloane,lcTitlu,lcTitluColoane, lcNumeProc, llToateIreg, lcFiltruOriginal,,lnPornire,,,llDesktop) && 11.07.2007
|
||||
|
||||
Return loCauta
|
||||
Endfunc && caut_tipentitate_permis
|
||||
********************************** SFARSIT : caut_tipentitate_permis ********************************
|
||||
************************************** INCEPUT : caut_serii_fact ************************************
|
||||
Function caut_serii_fact
|
||||
Parameters tnPornire, tlDesktop
|
||||
|
||||
Local lcCont,loCauta, lnPornire, llDesktop
|
||||
lnPornire = tnPornire && 1-incepe cu...6-toate
|
||||
llDesktop = tlDesktop
|
||||
Store "" To loCauta
|
||||
|
||||
lcSelect = [select id_serie,serie,resetare,lungime,exemplu,an,luna from ] + gcS + [.vserii]
|
||||
lcFiltru = [1=2]
|
||||
lcSchema = [id_serie N(10),serie C(50),resetare C(50),lungime N(10),exemplu C(50),an N(1),luna N(1)]
|
||||
lcOrder = [serie,luna,an]
|
||||
lccoloane = [serie,resetare,lungime,exemplu]
|
||||
lcTitlu = [Alegeti seria]
|
||||
lcTitluColoane = [Serie,Resetare,Lungime,Exemplu]
|
||||
lcFiltruOriginal = [inactiv = 0]
|
||||
lcNumeProc = []
|
||||
llToateIreg = .F.
|
||||
loCauta = cauta_alfa(lcSelect,lcFiltru,lcSchema,lcOrder,lccoloane,lcTitlu,lcTitluColoane, lcNumeProc, llToateIreg, lcFiltruOriginal,,lnPornire,,,llDesktop) && 11.07.2007
|
||||
|
||||
Return loCauta
|
||||
Endfunc && caut_serii_fact
|
||||
************************************** SFARSIT : caut_serii_fact ************************************
|
||||
337
COMUN/programe/ostartfirma.prg
Normal file
337
COMUN/programe/ostartfirma.prg
Normal file
@@ -0,0 +1,337 @@
|
||||
*!* 09.07.2020
|
||||
*!* marius.mutu
|
||||
*!* start_firma - initializare pack_sesiune.set_an, set_luna, pack_sesiune.set_sucursala, pack_sesiune.set_id_util
|
||||
|
||||
* PROCEDURE Start_Firma( )
|
||||
* Date : 06/10/2004, 12:27:00
|
||||
* author : marius.mutu
|
||||
* description:
|
||||
* creeaza cursorul v_firme;
|
||||
* alege firma, anul, luna;
|
||||
* initializeaza <gcS> = schema firmei
|
||||
* creeaza cursorul <calendar> si verifica luna aleasa
|
||||
* apeleaza <oinit_optiuni>
|
||||
* apeleaza <update_nomenclator>
|
||||
|
||||
****** PARAMETER BLOCK **************
|
||||
* Parameters : 0
|
||||
*
|
||||
******************************************* INCEPUT:Start_Firma *******************************************
|
||||
Procedure Start_Firma
|
||||
|
||||
|
||||
*** selectez firmele
|
||||
Do update_firme_util_prog With gnIdProgram,gnIdUtil In updateserver.prg
|
||||
|
||||
Select v_Firme
|
||||
If Reccount() = 0
|
||||
aMessagebox('Nu aveti drepturi pe nici o firma!',0+16,'Atentie')
|
||||
Quit
|
||||
Endif
|
||||
Go Top
|
||||
If Type('goFirma') = 'O' And Type('goFirma.id_firma') = 'N'
|
||||
If !Empty(goFirma.id_firma) And !Isnull(goFirma.id_firma)
|
||||
Locate For id_firma = goFirma.id_firma
|
||||
If !Found()
|
||||
Go Top
|
||||
Endif
|
||||
Endif
|
||||
Endif
|
||||
|
||||
Do While .T.
|
||||
|
||||
|
||||
*---------------------
|
||||
Private polunilean
|
||||
|
||||
lcSelect = [select * from syn_lunilean ]
|
||||
lcCursor = [v_lunilean]
|
||||
lnSucces = goExecutor.oExecute(lcSelect,lcCursor)
|
||||
If lnSucces < 0
|
||||
aMessagebox('Eroare la selectie ' + goExecutor.cEroare)
|
||||
Return
|
||||
Endif
|
||||
|
||||
|
||||
|
||||
*---------------------
|
||||
If Type('loStart_Firma')!='O' Or Isnull(loStart_Firma)
|
||||
*!* DO FORM frm_start_firma NAME loStart_Firma LINKED NOSHOW
|
||||
Select v_Firme
|
||||
Do Form frm_start_firma_nou Name loStart_Firma Linked Noshow
|
||||
Endif
|
||||
|
||||
Select v_Firme
|
||||
If gnLuna*gnAn <> 0
|
||||
Select v_lunilean
|
||||
Locate For nrluna = gnLuna
|
||||
|
||||
loStart_Firma.cLuna = Alltrim(v_lunilean.numeluna)
|
||||
loStart_Firma.cAn = Alltrim(Str(gnAn))
|
||||
Endif
|
||||
loStart_Firma.cFirma = Alltrim(v_Firme.firma)
|
||||
*****************************Inceput Lansare toolbar*****************************
|
||||
If !(gnLuna*gnAn <> 0 And primadata=.T.)
|
||||
loStart_Firma.Show(1)
|
||||
Else
|
||||
*!* 05.03.2007
|
||||
*!* la lansarea din toolbar formularul este invizibil si gnbuton = 2 -> (ca si cum as da renunt - iese din program)
|
||||
gnbuton = 1
|
||||
*!* 05.03.2007 ^
|
||||
|
||||
Select v_Firme
|
||||
*!* 11.02.2008
|
||||
*!* Locate For Upper(Alltrim(schema))== gcs
|
||||
Locate For id_firma = gnIdFirma
|
||||
*!* 11.02.2008 ^
|
||||
lcschemaParola=Alltrim(v_Firme.parola)
|
||||
loStart_Firma.nnrluna = gnLuna
|
||||
loStart_Firma.cAn = Alltrim(Str(gnAn))
|
||||
lnschema_noua = schema_noua
|
||||
lnIdFirma = v_firme.id_firma
|
||||
|
||||
lnSucces = schimba_firma(gnHandle,gcs,lnIdFirma,lcschemaParola,lnschema_noua)
|
||||
If lnSucces<0
|
||||
aMessagebox(goExecutor.cEroare, 0+16, 'Eroare')
|
||||
Return
|
||||
Endif
|
||||
*--- &&lansare
|
||||
Endif
|
||||
|
||||
*****************************Sfarsit Lansare toolbar*****************************
|
||||
*!* modificare 01.03.2007
|
||||
*!* am pus conditia TYPE("loStart_Firma") # "O" pentru cazul in care utilizatorul apasa "X"
|
||||
*!* atunci cand este vizibila fereastra de alegere a firmei/lunii/anului >> apare "Doriti sa iesiti din program"
|
||||
*!* si daca apasa da,atunci gnButon = 1 din fereastra de confirmare si nu de la fereastra de alegere a firmei
|
||||
If Type("loStart_Firma.nnrluna") = "U" And gnbuton = 1
|
||||
Return To Master
|
||||
Endif
|
||||
*!* modificare 01.03.2007 ^
|
||||
If gnbuton <> 1
|
||||
* QUIT
|
||||
Cancel
|
||||
*RETRY
|
||||
*RETURN
|
||||
If Buton = 2
|
||||
Do Start_Firma
|
||||
Endif
|
||||
Endif
|
||||
|
||||
Select v_Firme
|
||||
*!* modificare 17.12.2008
|
||||
Locate for id_firma = gnIdFirma
|
||||
*!* modificare 17.12.2008 ^
|
||||
Scatter Name goFirma && variabila globala
|
||||
|
||||
If Type('gofirma.codfiscalfro') = 'U'
|
||||
AddProperty(gofirma, 'codfiscalfro', ALLTRIM(Strtran(Alltrim(gofirma.cod_fiscal), 'RO','')))
|
||||
Endif
|
||||
|
||||
lnId_Firma = v_Firme.id_firma
|
||||
*lnLuna = ROUND(VAL(loStart_Firma.cLuna),0)
|
||||
lnLuna = loStart_Firma.nnrluna
|
||||
lnAn = Round(Val(loStart_Firma.cAn),0)
|
||||
lcFirma = Upper(Alltrim(v_Firme.firma))
|
||||
lcSchema = Upper(Alltrim(v_Firme.schema))
|
||||
lcschemaParola = Upper(Alltrim(v_Firme.parola))
|
||||
lnschema_noua = v_Firme.schema_noua
|
||||
|
||||
*!* IF USED('v_ancalendar')
|
||||
*!* USE IN v_ancalendar
|
||||
*!* ENDIF
|
||||
*!* IF USED('crs_ani')
|
||||
*!* USE IN crs_ani
|
||||
*!* ENDIF
|
||||
|
||||
|
||||
|
||||
If Empty(lcSchema) Or Isnull(lcSchema)
|
||||
*!* DO mesaj WITH "Firma "+ lcFirma + " nu are definita schema in <NOM_FIRME>",""
|
||||
lcMesaj="Firma "+ lcFirma + " nu are definita schema in <NOM_FIRME>!"
|
||||
aMessagebox(lcMesaj,0+48,"Atentie")
|
||||
Loop
|
||||
Endif
|
||||
|
||||
*!* 11.02.2008
|
||||
*!* If gcs <> lcSchema
|
||||
IF lnId_Firma <> goFirma.id_firma
|
||||
LLSCHIMB = .T.
|
||||
Else
|
||||
LLSCHIMB = .F.
|
||||
Endif
|
||||
*!* 11.02.2008 ^
|
||||
|
||||
gcs = lcSchema
|
||||
lnSucces = 1
|
||||
If LLSCHIMB
|
||||
lnSucces = schimba_firma(gnHandle,gcS,lnId_Firma,lcSchema,lnschema_noua)
|
||||
*DO schimba_firma WITH gnHandle,GCS,lcschemaParola
|
||||
If lnSucces < 0
|
||||
aMessagebox('Firma nu s-a putut schimba!'+Chr(13)+Chr(13)+'ostartfirma.prg',0+16)
|
||||
Return
|
||||
Endif
|
||||
|
||||
Endif
|
||||
|
||||
If lnSucces > 0
|
||||
lnSucces = update_calendar()
|
||||
Endif
|
||||
|
||||
|
||||
|
||||
llLunaBuna = .F.
|
||||
If !Used('calendar')
|
||||
*!* DO mesaj WITH 'Nu s-a putut deschide calendarul firmei ' + lcFirma,''
|
||||
lcMesaj="Nu s-a putut deschide calendarul firmei "+ lcFirma + "!"
|
||||
aMessagebox(lcMesaj,0+48,"Atentie")
|
||||
Loop
|
||||
Endif
|
||||
*** verific daca luna aleasa e deschisa in calendar
|
||||
Select Min(Val(an)*12 + Val(nl)) As minluna,Max(Val(an)*12 + Val(nl)) As maxluna From calendar Into Cursor crsCalendar
|
||||
Select crsCalendar
|
||||
lnMaxLuna = maxluna
|
||||
lnMinLuna = minluna
|
||||
lnAnLuna = lnAn * 12+ lnLuna
|
||||
Use In crsCalendar
|
||||
|
||||
lnLunaMax = Mod(lnMaxLuna,12)
|
||||
lnAnMax = Int(lnMaxLuna/12)
|
||||
If lnLunaMax = 0 And lnAnMax <> 0
|
||||
lnLunaMax = 12
|
||||
lnAnMax = lnAnMax - 1
|
||||
Endif
|
||||
|
||||
lnLunaMin = Mod(lnMinLuna,12)
|
||||
lnAnMin = Int(lnMinLuna/12)
|
||||
If lnLunaMin = 0 And lnAnMin <> 0
|
||||
lnLunaMin = 12
|
||||
lnAnMin = lnAnMin - 1
|
||||
Endif
|
||||
|
||||
Select calendar
|
||||
Locate For Val(nl) = lnLuna And Val(an) = lnAn
|
||||
If Found()
|
||||
llLunaBuna = .T.
|
||||
Scatter Name goCalendar
|
||||
|
||||
If lnMaxLuna = lnAnLuna
|
||||
glUltimaLuna = .T.
|
||||
Endif
|
||||
If lnMinLuna = lnAnLuna
|
||||
glPrimaLuna = .T.
|
||||
Endif
|
||||
|
||||
glLunaBuna = llLunaBuna
|
||||
|
||||
|
||||
lnSucces = OINIT_OPTIUNI()
|
||||
If lnSucces > 0
|
||||
Do update_nomenclator.prg
|
||||
Do ovariabile_globale.prg
|
||||
lcSql = [begin pack_contafin.set_idutil(?gnIdUtil); pack_contafin.set_id_sucursala(?gnIdSucursala); pack_sesiune.setan(?gnAn); pack_sesiune.setluna(?gnLuna);end;]
|
||||
lnSucces = goExecutor.oExecute(m.lcSql)
|
||||
Endif
|
||||
|
||||
Return lnSucces
|
||||
|
||||
Else
|
||||
|
||||
|
||||
Do Case
|
||||
Case lnAnLuna > lnMaxLuna And lnMaxLuna <> 0
|
||||
lcMesaj = [Ultima luna deschisa este ] + Alltrim(Str(lnLunaMax)) + [/] + Alltrim(Str(lnAnMax))
|
||||
gnLuna = lnLunaMax
|
||||
gnAn = lnAnMax
|
||||
pcNl = Padl(Alltrim(Str(gnLuna)),2,'0')
|
||||
pcAn = Alltrim(Str(gnAn))
|
||||
m.nl = m.pcnl
|
||||
m.an = m.pcAn
|
||||
Case lnAnLuna < lnMinLuna And lnMinLuna <>0
|
||||
lcMesaj = [Prima luna deschisa este ] + Alltrim(Str(lnLunaMin)) + [/] + Alltrim(Str(lnAnMin))
|
||||
gnLuna = lnLunaMin
|
||||
gnAn = lnAnMin
|
||||
pcNl = Padl(Alltrim(Str(gnLuna)),2,'0')
|
||||
pcAn = Alltrim(Str(gnAn))
|
||||
m.nl = m.pcnl
|
||||
m.an = m.pcAn
|
||||
Otherwise
|
||||
lcMesaj = [Luna ] + Alltrim(Str(lnLuna)) + [ / ] + Alltrim(Str(lnAn)) + [ nu este deschisa in calendar]
|
||||
Endcase
|
||||
*!* DO mesaj WITH lcMesaj,''
|
||||
aMessagebox(lcMesaj,0+48,"Atentie")
|
||||
Loop
|
||||
Endif
|
||||
Enddo
|
||||
Endproc
|
||||
******************************************* SFARSIT: Start_Firma *******************************************
|
||||
|
||||
|
||||
* PROCEDURE login( )
|
||||
* Date : 18/10/2004, 13:14:01
|
||||
* author : marius.mutu
|
||||
* description:
|
||||
|
||||
****** PARAMETER BLOCK **************
|
||||
* Parameters : 0
|
||||
*
|
||||
******************************************* INCEPUT:login *******************************************
|
||||
Procedure login( )
|
||||
*LPARAMETERS tcHost,tcUserName,tcPassword,tcUserNameApp,tcPasswordApp,tnIdUtil,tnIdProgram
|
||||
|
||||
Do Form frm_login
|
||||
|
||||
Endproc
|
||||
******************************************* SFARSIT: login *******************************************
|
||||
|
||||
|
||||
******************************************* INCEPUT:schimba_firma *************************************
|
||||
Procedure schimba_firma
|
||||
Lparameters tnHandle,tcSchema, tnIdFirma,tcschemaParola,tnschema_noua
|
||||
Local llDeconectez,lcuser, lnSucces, lnIdFirma
|
||||
LOCAL lnSucces
|
||||
lnSucces = 1
|
||||
|
||||
IF TYPE('goFirma') = 'O'
|
||||
lnIdFirma = goFirma.id_firma
|
||||
ELSE
|
||||
lnIdFirma = -1
|
||||
ENDIF
|
||||
*!* 16.02.2009
|
||||
*!* aveam probleme :)
|
||||
*!* ma deconectez/conectez la fiecare apel
|
||||
*!* IF tnIdFirma <> lnIdFirma
|
||||
*!* llDeconectez = .T.
|
||||
*!* ENDIF
|
||||
llDeconectez = .T.
|
||||
*!* 16.02.2009 ^
|
||||
|
||||
If llDeconectez
|
||||
goConn.Disconnect(tnHandle)
|
||||
|
||||
If tnschema_noua = 0
|
||||
lcHost = gcHost
|
||||
lcuser = gcUserName
|
||||
lcPassword = gcPassword
|
||||
Else
|
||||
lcHost = gcHost
|
||||
lcuser = tcSchema
|
||||
lcPassword = tcschemaParola
|
||||
Endif
|
||||
|
||||
lnHandle = goConn.Connect(lcHost, lcuser, lcPassword)
|
||||
goLog.Log('CONECTARE ' + lcHost + ' ' + lcUser + ' ID_FIRMA ' + STR(lnIdFirma) + ' HANDLE = ' + TRANSFORM(lnHandle), PROGRAM())
|
||||
|
||||
If lnHandle < 0
|
||||
lnSucces = -1
|
||||
Else
|
||||
lnSucces = 1
|
||||
Endif
|
||||
gcs = tcSchema
|
||||
|
||||
Endif && llDeconectez
|
||||
|
||||
|
||||
Return lnSucces
|
||||
|
||||
Endproc
|
||||
******************************************* SFARSIT:schimba_firma *************************************
|
||||
515
COMUN/programe/oupdate.prg
Normal file
515
COMUN/programe/oupdate.prg
Normal file
@@ -0,0 +1,515 @@
|
||||
*!* 21.07.2009
|
||||
*!* marius.mutu
|
||||
*!* set library to inainte de dezarhivarea arhivelor (vezi comunroa care are vfpencryption si da conflict)
|
||||
|
||||
*!* 19.03.2024
|
||||
*!* marius.mutu
|
||||
*!* updatecheck: s-a inlocuit dezarhivarea cu vfpcompression cu shell.copyhere
|
||||
|
||||
*!* comun\programe\
|
||||
*!* oupdate.prg
|
||||
*!* iniacces.prg
|
||||
*!* procese.prg
|
||||
*!* version.prg
|
||||
*!* xmlaccess.prg
|
||||
*!* xmlparser.prg
|
||||
*!* filebringer.prg
|
||||
*!* wwcodeupdate.prg
|
||||
*!* wwhttp.prg
|
||||
*!* wwapi.prg
|
||||
|
||||
*!* comun\include\
|
||||
*!* security.h
|
||||
|
||||
*!* comun\clase\
|
||||
*!* wwdialogs.vcx
|
||||
|
||||
*!* main.prg
|
||||
*!* PRIVATE gcDirMare
|
||||
*!* gcDirMare=Left(gcAppPath,liat)
|
||||
|
||||
*!* SET CLASSLIB TO wwdialogs ADDITIVE
|
||||
|
||||
#Define crlf Chr(13)+Chr(10)
|
||||
Define Class oUpdate As Custom
|
||||
oInterfataXml = Null
|
||||
oContainerAfisare = Null
|
||||
cFisier = Null
|
||||
cExtensieFisier = [.zip]
|
||||
cExtensieFisierExe = [.exe] && pentru romfast_suport
|
||||
|
||||
Procedure Init
|
||||
Lparameters tcFisier,toContainerAfisare,tcProgram
|
||||
Declare ExitProcess In WIN32API Integer
|
||||
|
||||
Return This.initializeazaDate(tcFisier,toContainerAfisare,tcProgram)
|
||||
Endproc
|
||||
|
||||
Function reinitializeazaDate
|
||||
Lparameters tcFisier,toContainerAfisare,tcProgram
|
||||
This.oInterfataXml = Null
|
||||
Return This.initializeazaDate(tcFisier,toContainerAfisare,tcProgram)
|
||||
Endfunc
|
||||
|
||||
Function initializeazaDate
|
||||
Lparameters tcFisier,toContainerAfisare,tcProgram
|
||||
Local llReturn
|
||||
llReturn = .T.
|
||||
This.oContainerAfisare = toContainerAfisare
|
||||
If Empty(tcFisier)
|
||||
This.cFisier= This.getServer()
|
||||
Else
|
||||
This.cFisier = tcFisier
|
||||
Endif
|
||||
This.oInterfataXml = Createobject("xmlAccess",This.cFisier)
|
||||
If Type('This.oInterfataXml') <> 'O'
|
||||
This.actualizeazaContainerAfisare("Nu se pot face actualiz<69>ri!")
|
||||
If !Empty(tcProgram)
|
||||
lcVersiune = Iif(Left(tcProgram,3)='ROA',Getversion(tcProgram),GetTxtVersion(tcProgram))
|
||||
lcVersiune = Iif(lcVersiune = [0.0.0],[...],[ ] + lcVersiune)
|
||||
This.actualizeazaContainerAfisare("Se lanseaz<61> " + tcProgram + lcVersiune)
|
||||
Endif
|
||||
llReturn = .F.
|
||||
Endif
|
||||
Return llReturn
|
||||
Endfunc
|
||||
|
||||
Procedure actualizeazaContainerAfisare
|
||||
Lparameters tcMesaj &&,tlSelStart modificare ROASTART v 2.0.23
|
||||
If Type('this.oContainerAfisare') = 'O'
|
||||
This.oContainerAfisare.Value = This.oContainerAfisare.Value + tcMesaj + crlf
|
||||
*!* modificare ROASTART v 2.0.23
|
||||
*!* If tlSelStart
|
||||
*!* This.oContainerAfisare.SelStart = Len(This.oContainerAfisare.Value)
|
||||
*!* Endif
|
||||
*!* modificare ROASTART v 2.0.23 ^
|
||||
This.oContainerAfisare.Refresh()
|
||||
Endif
|
||||
Endproc
|
||||
|
||||
Function getServer
|
||||
Local lcnumeserver
|
||||
|
||||
lcnumeserver=[]
|
||||
If Type('goFirma') = 'O' And Type('goFirma.nume_server') <> 'U'
|
||||
lcnumeserver = Alltrim(goFirma.nume_server)
|
||||
Else
|
||||
lcSql = [select nume_server from syn_nom_firme where id_firma=?gnIdFirma]
|
||||
lnSucces = goExecutor.oExecute(lcSql,[crsnf])
|
||||
If lnSucces < 0
|
||||
aMessagebox(goExecutor.ceroare,64,'Eroare')
|
||||
Else
|
||||
Select crsnf
|
||||
lcnumeserver = Alltrim(nume_server)
|
||||
Endif
|
||||
If Used('crsnf')
|
||||
Use In crsnf
|
||||
Endif
|
||||
Endif
|
||||
Return lcnumeserver
|
||||
Endfunc
|
||||
Procedure createUpdateCursor
|
||||
Lparameters tcNumeCursor
|
||||
This.oInterfataXml.getXmlItems(tcNumeCursor)
|
||||
Endproc
|
||||
|
||||
Function Getversion
|
||||
Lparameters tcProgram
|
||||
Return This.oInterfataXml.Getversion(tcProgram)
|
||||
Endfunc
|
||||
|
||||
Function updatecheckTxt
|
||||
Lparameters tcCurrentProg, tlSilent, tlLocalFileExist
|
||||
* tlLocalFileExist: daca exista fisierul pe calculator. se descarca chiar daca versiunile din fisierul de setari si cel de pe internet sunt la fel, dar nu exista fisierul pe local
|
||||
|
||||
Local lcCaleActualizari, lcVersiuneLocal, lcVersiuneInternet, lcFisier, lcFisierVersiuniInternet, lcSectiune, lcExtensieFisier
|
||||
Local lcLibraryPath, loEx As Exception
|
||||
lcLibraryPath = gcDirMare + [COMUNROA\vfpconnection.fll]
|
||||
*!* modificare 06.03.2014 : am adaugat lcExtensieFisier in loc de This.cExtensieFisier
|
||||
lcExtensieFisier = IIF(INLIST(tcCurrentProg, [romfast_suport], [roascreenshot]),This.cExtensieFisierExe,This.cExtensieFisier)
|
||||
If File(lcLibraryPath)
|
||||
Try
|
||||
Set Library To (lcLibraryPath) Additive
|
||||
lcCaleActualizari = [http://www.romfast.ro/romfastsuport/files/]
|
||||
lcFisierVersiuniInternet = [versiune_aplicatii.txt]
|
||||
lcSectiune = [versiuni]
|
||||
lcFisier = lcCaleActualizari + lcFisierVersiuniInternet
|
||||
If !HTTPGet(lcFisier, gcTempPath+lcFisierVersiuniInternet, [MyProgressHandler("] + lcFisier + [")])
|
||||
IF !m.tlSilent
|
||||
polog.Log("Nu se poate descarca fisierul cu versiuni! " + m.lcFisier, Program())
|
||||
Messagebox("Nu se poate descarca fisierul cu versiuni!",16,"Eroare")
|
||||
ENDIF
|
||||
Else
|
||||
lcBuffer=Space(255)
|
||||
|
||||
DECLARE INTEGER GetPrivateProfileString ;
|
||||
IN WIN32API ;
|
||||
STRING cSection,;
|
||||
STRING cEntry,;
|
||||
STRING cDefault,;
|
||||
STRING @cRetVal,;
|
||||
INTEGER nSize,;
|
||||
STRING cFileName
|
||||
|
||||
GetPrivateProfileString(lcSectiune,tcCurrentProg,"",@lcBuffer, Len(lcBuffer), gcTempPath+lcFisierVersiuniInternet)
|
||||
lcVersiuneInternet = Alltrim(Strtran(lcBuffer,Chr(0),""))
|
||||
Delete File (gcTempPath+lcFisierVersiuniInternet)
|
||||
loIniHandler = Createobject("iniaccess")
|
||||
lcVersiuneLocal = loIniHandler.getCValue(lcSectiune,tcCurrentProg)
|
||||
polog.Log("Program: " + tcCurrentProg + " VersiuneLocal: " + lcVersiuneLocal + " VersiuneInternet: " + lcVersiuneInternet + " LocalFileExist: " + TRANSFORM(m.tlLocalFileExist), Program())
|
||||
If ((Empty(lcVersiuneLocal) Or lcVersiuneLocal < lcVersiuneInternet) And !Empty(lcVersiuneInternet)) OR !m.tlLocalFileExist
|
||||
*!* modificare 28.06.2012 : am adaugat This.cExtensieFisier in loc de .exe
|
||||
*!* modificare 06.03.2014 : am adaugat lcExtensieFisier in loc de This.cExtensieFisier
|
||||
lcFisier = lcCaleActualizari + tcCurrentProg + lcExtensieFisier
|
||||
If (Bringfile(lcFisier,tcCurrentProg,gcDirMare+tcCurrentProg+lcExtensieFisier )=.F.)
|
||||
IF !m.tlSilent
|
||||
polog.Log("Eroare la copierea "+tcCurrentProg + ", versiunea "+lcVersiuneInternet+"!", Program())
|
||||
Messagebox("Eroare la copierea "+tcCurrentProg + ", versiunea "+lcVersiuneInternet+"!",16,"Eroare")
|
||||
ENDIF
|
||||
Else
|
||||
loIniHandler.setCValue(lcSectiune,tcCurrentProg,lcVersiuneInternet)
|
||||
Endif
|
||||
Endif
|
||||
Release loIniHandler
|
||||
Endif
|
||||
Catch To loEx
|
||||
IF !m.tlSilent
|
||||
polog.Log('vfpconnection ' + loEx.Message, Program())
|
||||
Messagebox('vfpconnection ' + loEx.Message)
|
||||
ENDIF
|
||||
Endtry
|
||||
Endif
|
||||
Return .T.
|
||||
Endfunc
|
||||
|
||||
Function updatecheck
|
||||
Lparameters tccurrentprog,tlmsgshow,tnTipActualizare,tcDefaultDir
|
||||
* tccurrentprog este programul care trebuie actualizat
|
||||
* lcmsgshow - daca e true,atunci se citeste din ini daca apare mesajul de confirmare sau nu
|
||||
* tnTipActualizare - 0 = este din numeserver.xml ;
|
||||
1 = este din roastart.xml ;
|
||||
2 = programul se actualizeaza singur la pornire
|
||||
* tcDefaultDir - directorul in care se copiaza actualizarile pentru configurarile USER... ;
|
||||
( de ex.: DEV_USERREPORTS e tccurrentprog,dar trebuie sa fie copiat in USERREPORTS )
|
||||
|
||||
Local iniHandler As Object,lnTipFisier,lnTipActualizare && modificare v 2.0.14 : am adaugat lnTipFisier
|
||||
LOCAL lcOldLibrary
|
||||
|
||||
lnTipActualizare = Iif(!Empty(tnTipActualizare),tnTipActualizare,0)
|
||||
*!* modificare v 2.0.6
|
||||
*!* If Used("SERVER_INFO")
|
||||
*!* Use In SERVER_INFO
|
||||
*!* Endif
|
||||
*!* modificare v 2.0.6 ^
|
||||
If lnTipActualizare<>2
|
||||
If At("_",tccurrentprog)#0
|
||||
lccurrentUR=Substr(tccurrentprog,At("_",tccurrentprog)+1)
|
||||
Else
|
||||
lccurrentUR=tccurrentprog
|
||||
Endif
|
||||
|
||||
********************************************
|
||||
* Rularea procedurii de update pentru
|
||||
* toate programele in afara de ROASTART
|
||||
********************************************
|
||||
|
||||
|
||||
lbrun=.T.
|
||||
Local lraspuns
|
||||
lraspuns=4
|
||||
Local loex1,loex2,loex As Exception
|
||||
*!* Verifica daca trebuie rulate
|
||||
*!* procedurile de update
|
||||
This.actualizeazaContainerAfisare(tccurrentprog + " se verific<69> ultima versiune")
|
||||
iniHandler=Createobject("iniaccess")
|
||||
If lnTipActualizare = 0
|
||||
lnTipFisier = 0
|
||||
If Empty(This.cFisier) Or This.cFisier = "ROASTART"
|
||||
XmlData="nu s-a putut conecta"
|
||||
Else
|
||||
polog.Log("S-a gasit serverul "+This.cFisier,Program())
|
||||
polog.Log("Se cauta pentru "+This.cFisier+".XML",Program())
|
||||
XmlData=This.oInterfataXml.ReadXmlFile(tccurrentprog)
|
||||
Endif
|
||||
Else
|
||||
If Left(tccurrentprog,3)="ROA"
|
||||
lnTipFisier = 0
|
||||
Else
|
||||
lnTipFisier = 1
|
||||
Endif
|
||||
polog.Log("Se cauta xml-ul pentru "+tccurrentprog,Program())
|
||||
XmlData=This.oInterfataXml.ReadXmlFile(tccurrentprog)
|
||||
Endif
|
||||
Do Case
|
||||
Case XmlData$"<>(){}"
|
||||
polog.Log("Nu s-au gasit in fisierul Xml inregistrari pentru "+tccurrentprog,Program())
|
||||
Case XmlData$"nu s-a putut conecta"
|
||||
If iniHandler.getURL()!=""
|
||||
This.actualizeazaContainerAfisare("Nu s-a g<>sit actualizare pe internet.")
|
||||
else
|
||||
This.actualizeazaContainerAfisare("Nu s-a g<>sit actualizare <20>n re<72>ea/local.") &&,.T. modificare ROASTART v 2.0.23
|
||||
Endif
|
||||
Otherwise
|
||||
|
||||
If tlmsgshow=.F.
|
||||
lcallowconfirm=.T.
|
||||
Else
|
||||
lcallowconfirm=.F.
|
||||
If(iniHandler.getAllowConfirm())
|
||||
lcallowconfirm=.T.
|
||||
Endif
|
||||
Endif
|
||||
|
||||
If Compareversion(stripXmlVersion(XmlData),XmlData,;
|
||||
IIF(Empty(tcDefaultDir),tccurrentprog,tcDefaultDir),lcallowconfirm,lnTipFisier)
|
||||
polog.Log("S-a gasit versiunea " + stripXmlVersion(XmlData) + " pentru "+tccurrentprog + " (" + Getversion(tccurrentprog) + ")",Program())
|
||||
lcconfirm=0
|
||||
If iniHandler.getAllowConfirm()
|
||||
lcconfirm = aMessagebox(stripXmlMsg(XmlData)+crlf+"Dori<72>i s<>-l <20>nc<6E>rca<63>i?",36,"Confirmare actualizare")
|
||||
Else
|
||||
lcconfirm = 6
|
||||
Endif
|
||||
If lcconfirm = 6
|
||||
This.actualizeazaContainerAfisare(tccurrentprog + " se actualizeaz<61> versiunea "+stripXmlVersion(XmlData))&&,.T. modificare ROASTART v 2.0.23
|
||||
polog.Log("Se incepe actualizarea "+tccurrentprog+" la versiunea "+stripXmlVersion(XmlData),Program())
|
||||
*!* Verifica daca nu cumva programul este in procese
|
||||
*This.oContainerAfisare.value = This.oContainerAfisare.value+"Se verfica daca se poate face updateul" + crlf
|
||||
polog.Log("Se verifica daca nu cumva programul este in procese ",Program())
|
||||
lnWinHandle=1
|
||||
Do While lnWinHandle=1 And lraspuns=4
|
||||
lnWinHandle=0
|
||||
|
||||
If CheckProcess(tccurrentprog)
|
||||
lnWinHandle=1
|
||||
*This.oContainerAfisare.value = This.oContainerAfisare.value+"Nu se poate face updateul(fisier in uz)" + crlf
|
||||
polog.Log("Programul s-a gasit printre procesele care ruleaza",Program())
|
||||
Endif
|
||||
|
||||
If lnWinHandle =1
|
||||
lraspuns=aMessagebox("<22>nchideti toate instantele " + tccurrentprog + " <20>i ap<61>sa<73>i pe Repet<65> pentru a actualiza programul!",21,"Actualizare")
|
||||
Else
|
||||
Exit
|
||||
Endif
|
||||
Enddo
|
||||
If lraspuns=2
|
||||
polog.Log("S-a respins actualizarea",Program())
|
||||
This.actualizeazaContainerAfisare("S-a respins actualizarea " + tccurrentprog)&&,.T. modificare ROASTART v 2.0.23
|
||||
Endif
|
||||
|
||||
If lnWinHandle =0
|
||||
************review ..CV
|
||||
************03.oct.2007
|
||||
polog.Log("Se aduce fisierul",Program())
|
||||
myfilestr=StripXmlFile(XmlData)
|
||||
If iniHandler.getDefault()="URL"
|
||||
If Occurs("http",myfilestr)>0
|
||||
lcFileToBeBrought=myfilestr
|
||||
Else
|
||||
If Left(myfilestr,1)="\"
|
||||
lcFileToBeBrought=Right(myfilestr,Len(myfilestr)-1)
|
||||
Else
|
||||
lcFileToBeBrought=myfilestr
|
||||
Endif
|
||||
lcFileToBeBrought=iniHandler.getURL()+"/"+lcFileToBeBrought
|
||||
Endif
|
||||
lcFileToBeBrought = strtran(lcFileToBeBrought,[\],[/]) && modificare ROASTART v 2.1.3
|
||||
Else
|
||||
If Left(myfilestr,1)="\"
|
||||
lcFileToBeBrought=Right(myfilestr,Len(myfilestr)-1)
|
||||
Else
|
||||
lcFileToBeBrought=myfilestr
|
||||
Endif
|
||||
lcFileToBeBrought=Addbs(ShortPath(iniHandler.getNetworkPath()))+lcFileToBeBrought
|
||||
Endif
|
||||
****************review***Cristian Vasile***
|
||||
****************cale relativa URL**********
|
||||
******************************03.10.2007***
|
||||
If(Bringfile(lcFileToBeBrought,tccurrentprog)=.F.)
|
||||
aMessagebox("A intervenit o eroare la copierea fisierului!",16,"Copiere")
|
||||
polog.Log("A intervenit o eroare la copierea fisierului",Program())
|
||||
*This.oContainerAfisare.txt_Mesaj.Caption = This.oContainerAfisare.txt_Mesaj.Caption+"A intervenit o eroare la copierea fisierului" + crlf
|
||||
Else
|
||||
tempfile = GetCurrentTempPath(tccurrentprog)
|
||||
Cd Addbs(Justpath(tempfile))
|
||||
|
||||
*!* lcEncryptionFile = gcComunPath+"vfpcompression.fll"
|
||||
*!* IF !"vfpcompression"$LOWER(SET("Library"))
|
||||
*!* SET LIBRARY TO (lcEncryptionFile) ADDITIVE
|
||||
*!* ENDIF
|
||||
*!* UnzipQuick(tempfile)
|
||||
|
||||
lcErrorMessage = ''
|
||||
lcUnzipDir = JUSTPATH(m.tempfile)
|
||||
llSucces = UnzipQuickShell(m.tempfile, @lcUnzipDir, @lcErrorMessage)
|
||||
IF m.llSucces
|
||||
polog.Log("S-a actualizat "+ tccurrentprog + " la versiunea "+stripXmlVersion(XmlData),Program())
|
||||
This.actualizeazaContainerAfisare(tccurrentprog + " s-a actualizat la versiunea "+stripXmlVersion(XmlData))&&,.T. modificare ROASTART v 2.0.23
|
||||
ELSE
|
||||
|
||||
polog.Log("Nu s-a actualizat "+ tccurrentprog + " la versiunea "+stripXmlVersion(XmlData),Program())
|
||||
This.actualizeazaContainerAfisare(tccurrentprog + " NU s-a actualizat la versiunea "+stripXmlVersion(XmlData) + " " + m.lcErrorMessage)&&,.T. modificare ROASTART v 2.0.23
|
||||
ENDIF
|
||||
lcDir=Addbs(Justpath(Sys(16,0)))
|
||||
*!* Stergere temporar
|
||||
*!*
|
||||
Try
|
||||
*!* modificare 28.06.2012
|
||||
*!* Delete File "&tempfile"
|
||||
DELETE FILE (tempfile)
|
||||
*!* modificare 28.06.2012 ^
|
||||
Catch To loex2
|
||||
If loex2.ErrorNo=1705
|
||||
This.actualizeazaContainerAfisare("NU s-a putut sterge fisierul temporar!")&&,.T. modificare ROASTART v 2.0.23
|
||||
Endif
|
||||
Endtry
|
||||
|
||||
*!*
|
||||
|
||||
If Atc("PROCEDURE",lcDir) > 0
|
||||
lcDir = Substr(lcDir,Rat(":",lcDir)-1)
|
||||
Endif
|
||||
Cd (lcDir)
|
||||
|
||||
Endif
|
||||
Else
|
||||
* MESSAGEBOX("Inchideti toate instantele de ale ROA - Financiar contabilitate pentru a actualiza programul.",16,"Actualizare !")
|
||||
lbrun=.F.
|
||||
Endif
|
||||
Else
|
||||
*!* Strtofile(Dtoc(Date())+" "+Time()+" > S-a respins de utillizator updateul programului "+tccurrentprog+Chr(13)+Chr(10),gcDirMare + "updates.log",1)
|
||||
polog.Log("S-a respins de utilizator actualizarea programului "+tccurrentprog,Program())
|
||||
|
||||
Endif
|
||||
|
||||
Else
|
||||
polog.Log(tccurrentprog + " " + stripXmlVersion(XmlData)+" este cea mai noua versiune.",Program())
|
||||
This.actualizeazaContainerAfisare(tccurrentprog + " " + stripXmlVersion(XmlData)+" este cea mai nou<6F> versiune.")&&,.T. modificare ROASTART v 2.0.23
|
||||
Endif
|
||||
Endcase
|
||||
|
||||
|
||||
*!* Release InterfataXml
|
||||
Release iniHandler
|
||||
|
||||
|
||||
Return lbrun
|
||||
|
||||
********************************************
|
||||
* Rularea procedurii de update pentru
|
||||
* toate programele in afara de ROASTART
|
||||
********************************************
|
||||
Else
|
||||
Try
|
||||
*!* modificare 28.06.2012
|
||||
*!* Delete file "temporar.exe"
|
||||
Delete File "temporar"+This.cExtensieFisier
|
||||
*!* modificare 28.06.2012 ^
|
||||
Delete File "test.vbs"
|
||||
Endtry
|
||||
*MESSAGEBOX("Verificare")
|
||||
*!* InterfataXml=Createobject("xmlAccess")
|
||||
iniHandler=Createobject("iniaccess")
|
||||
|
||||
XmlData=This.oInterfataXml.ReadXmlFile(tccurrentprog)
|
||||
Do Case
|
||||
Case XmlData$"<>(){}"
|
||||
polog.Log("Nu s-au gasit in fisierul Xml inregistrari pentru "+tccurrentprog,Program())
|
||||
Case XmlData$"nu s-a putut conecta"
|
||||
If iniHandler.getURL()!=""
|
||||
This.actualizeazaContainerAfisare("Nu s-a g<>sit actualizare pe internet.")
|
||||
ELSE
|
||||
This.actualizeazaContainerAfisare("Nu s-a g<>sit actualizare <20>n re<72>ea/local.")&&,.T. modificare ROASTART v 2.0.23
|
||||
Endif
|
||||
Otherwise
|
||||
polog.Log("Am inceput update "+tccurrentprog+" !",Program())
|
||||
polog.Log("Versiunea din xml este " + stripXmlVersion(XmlData))
|
||||
If Compareversion(stripXmlVersion(XmlData),XmlData,tccurrentprog,iniHandler.getAllowConfirm())
|
||||
polog.Log("Am detectat versiuni diferite",Program())
|
||||
lcconfirm=0
|
||||
If iniHandler.getAllowConfirm()
|
||||
lcconfirm = aMessagebox(stripXmlMsg(XmlData)+crlf+"Dori<72>i s<>-l <20>nc<6E>rca<63>i?",292,"Confirmare actualizare")
|
||||
Else
|
||||
lcconfirm = 6
|
||||
Endif
|
||||
|
||||
If lcconfirm = 6
|
||||
polog.Log("Trebuie sa aduca programul",Program())
|
||||
************review ..CV
|
||||
************03.oct.2007
|
||||
myfilestr=StripXmlFile(XmlData)
|
||||
If iniHandler.getDefault()="URL"
|
||||
If Occurs("http",myfilestr)>0
|
||||
lcFileToBeBrought=myfilestr
|
||||
Else
|
||||
If Left(myfilestr,1)="\"
|
||||
lcFileToBeBrought=Right(myfilestr,Len(myfilestr)-1)
|
||||
Else
|
||||
lcFileToBeBrought=myfilestr
|
||||
Endif
|
||||
lcFileToBeBrought=iniHandler.getURL()+"/"+lcFileToBeBrought
|
||||
Endif
|
||||
|
||||
Else
|
||||
If Left(myfilestr,1)="\"
|
||||
lcFileToBeBrought=Right(myfilestr,Len(myfilestr)-1)
|
||||
Else
|
||||
lcFileToBeBrought=myfilestr
|
||||
Endif
|
||||
lcFileToBeBrought=Addbs(ShortPath(iniHandler.getNetworkPath()))+lcFileToBeBrought
|
||||
Endif
|
||||
****************review***Cristian Vasile***
|
||||
****************cale relativa URL**********
|
||||
******************************03.10.2007***
|
||||
If(Bringfile(lcFileToBeBrought,tccurrentprog)=.F.)
|
||||
aMessagebox("A intervenit o eroare la <20>ncercarea copierii fi<66>ierului de actualizare!",16,"Actualizare")
|
||||
Else
|
||||
polog.Log("Am adus programul",Program())
|
||||
*!* tempfile = GetCurrentTempPath(tccurrentprog) && modificare 28.06.2012
|
||||
*!* modificare v 2.0.29
|
||||
*!* lcrunvbs=[Run /N7 ]+Addbs(Substr(gcAppPath,1,Rat([\],gcAppPath,2)))+[COMUNROA\updater.exe ] + ;
|
||||
*!* STRTRAN(Addbs(Justpath(Sys(16,0))),[ ],[~])+tccurrentprog+[.EXE]
|
||||
lcrunvbs=[Run /N7 ]+shortpath(Addbs(Substr(gcAppPath,1,Rat([\],gcAppPath,2))))+[COMUNROA\updater.exe |] + ;
|
||||
shortpath(Addbs(Justpath(Sys(16,0))))+tccurrentprog+[.EXE]
|
||||
*!* modificare v 2.0.29 ^
|
||||
&lcrunvbs
|
||||
polog.Log("Am executat updater.exe",Program())
|
||||
ExitProcess(0)
|
||||
|
||||
Endif
|
||||
Endif
|
||||
Endif
|
||||
Endcase
|
||||
Return .T.
|
||||
Endif
|
||||
Endfunc
|
||||
Enddefine
|
||||
|
||||
Function updatecheckfiles
|
||||
*!* (07.09.09) tlSilent = .T. - daca nu apare mesajul de eroare in caz ca nu poate copia fisierul
|
||||
Lparameters lcFisier,tlSilent
|
||||
Local loUpdate,cLocalFile,cFilePath
|
||||
***************************************
|
||||
*
|
||||
***************************************
|
||||
iniHandler = Createobject("iniaccess")
|
||||
If lcFisier="ROA_SECURITY.XML"
|
||||
cLocalFile = gcDirMare + "Security\" + lcFisier
|
||||
Else
|
||||
cLocalFile = gcDirMare + lcFisier
|
||||
Endif
|
||||
|
||||
If (iniHandler.getNetworkPath()#"" And iniHandler.getDefault()="NetworkPath") && Or iniHandler.getNetworkPath()#"" And iniHandler.getURL()="")
|
||||
cFilePath = Addbs(ShortPath(iniHandler.getNetworkPath())) + lcFisier
|
||||
Else
|
||||
If(iniHandler.getURL()#"" And iniHandler.getDefault()="URL") && Or iniHandler.getURL()#"" And iniHandler.getNetworkPath()="")
|
||||
cFilePath =iniHandler.getURL() +"/"+ lcFisier
|
||||
Else
|
||||
Return .F.
|
||||
Endif
|
||||
Endif
|
||||
|
||||
If(Bringfile(cFilePath,lcFisier,cLocalFile)=.F.) and !tlSilent
|
||||
aMessagebox("A intervenit o eroare la copierea fisierului de actualizare! " + CHR(10) + ;
|
||||
TRANSFORM(cFilePath) + CHR(10) + TRANSFORM(lcFisier) + CHR(10) + TRANSFORM(cLocalFile),16,"Actualizare")
|
||||
Endif
|
||||
Endfunc
|
||||
91
COMUN/programe/outile.prg
Normal file
91
COMUN/programe/outile.prg
Normal file
@@ -0,0 +1,91 @@
|
||||
Define Class oUtile As Custom
|
||||
|
||||
Procedure Init
|
||||
Declare Integer GetShortPathName In Win32API;
|
||||
STRING @lpszLongPath, String @lpszShortPath,;
|
||||
INTEGER cchBuffer
|
||||
Endproc
|
||||
|
||||
Function ShortPath
|
||||
Lparameter tcPath
|
||||
Local lcPath, lcShortName, lnLength, lnResult
|
||||
lcPath = tcPath
|
||||
lcShortName = Space(260)
|
||||
lnLength = Len(lcShortName)
|
||||
lnResult = GetShortPathName(@lcPath, @lcShortName, lnLength)
|
||||
If lnResult = 0
|
||||
Return ""
|
||||
Endif
|
||||
Return Left(lcShortName,lnResult)
|
||||
Endfunc
|
||||
|
||||
Function GetAppStartPath
|
||||
Local lcPath
|
||||
Do Case
|
||||
*** VFP 6 provides ServerName property for COM servers EXE/DLL/MTDLL
|
||||
Case Inlist(Application.StartMode,2,3,5)
|
||||
lcPath = Justpath(Application.ServerName)
|
||||
*!* *** Interactive
|
||||
*!* CASE (Application.StartMode) = 0
|
||||
*!* lcPath = SYS(5) + CURDIR()
|
||||
*** Active Document
|
||||
Case Atc(".APP",Sys(16,0)) > 0
|
||||
lcPath = Justpath(Sys(16,0))
|
||||
*** Standalone EXE or VFP Development
|
||||
Otherwise
|
||||
lcPath = Justpath(Sys(16,0))
|
||||
If Atc("PROCEDURE",lcPath) > 0
|
||||
lcPath = Substr(lcPath,Rat(":",lcPath)-1)
|
||||
Endif
|
||||
Endcase
|
||||
Return Addbs(lcPath)
|
||||
Endfunc
|
||||
|
||||
Procedure lista2array
|
||||
Lparameters tcLISTA,taArray,tcSeparator
|
||||
&& tcLista este un sir de caractere care contine elementele separate prin <;> default
|
||||
&& tarray este vectorul care se completeaza - trebuie dat prin referinta
|
||||
&& tcSeparator separatorul de elemente din tcLista - default este ";" - este optional
|
||||
&& intoarce numarul de elemente gasite
|
||||
&& ex: lnNr = lista2array("ana;are;mere",@alista,";")
|
||||
External Array taArray
|
||||
Local Lclista,lcSeparator,lnNRF,lcF1,i
|
||||
lnNRF = 0
|
||||
Lclista=Allt(tcLISTA)
|
||||
If Parameters()<3 Or Empty(tcSeparator)
|
||||
lcSeparator=";"
|
||||
Else
|
||||
lcSeparator=Alltrim(tcSeparator)
|
||||
Endif
|
||||
|
||||
If Right(Lclista,1)!=lcSeparator
|
||||
Lclista=Lclista+lcSeparator
|
||||
Endif
|
||||
|
||||
lnNRF=Occurs(lcSeparator,Lclista)
|
||||
|
||||
If lnNRF>0
|
||||
Dimension taArray[lnNrf,1]
|
||||
|
||||
For i=1 To lnNRF
|
||||
lcF1=Left(Lclista,At(lcSeparator,Lclista)-1)
|
||||
|
||||
If i!=lnNRF
|
||||
Lclista=Substr(Lclista,At(lcSeparator,Lclista)+1)
|
||||
Endif
|
||||
|
||||
taArray[i]=lcF1
|
||||
Endfor
|
||||
Else
|
||||
lnNRF = 0
|
||||
Endif
|
||||
|
||||
Return lnNRF
|
||||
|
||||
Endproc && lista2array
|
||||
|
||||
Procedure decripteazaParola
|
||||
|
||||
Endproc
|
||||
|
||||
Enddefine
|
||||
363
COMUN/programe/overificari.prg
Normal file
363
COMUN/programe/overificari.prg
Normal file
@@ -0,0 +1,363 @@
|
||||
**************************************
|
||||
* Intoarce .T. daca luna are situatii contabile invalidate
|
||||
**************************************
|
||||
PROCEDURE VerificaInvalidat
|
||||
LPARAMETERS tnAn, tnLuna
|
||||
LOCAL llInvalidat, lnRec, llInvalidat, lcSql
|
||||
PRIVATE pnRec
|
||||
llInvalidat = .F.
|
||||
|
||||
lcSql = [select count(*) as nr from tabele_validare where dinvalidat is not null]
|
||||
IF !(EMPTY(m.tnAn) OR EMPTY(m.tnLuna))
|
||||
lcSql = lcSql + [ and an = ] + ALLTRIM(STR(m.tnAn)) + [ and luna = ] + ALLTRIM(STR(m.tnLuna))
|
||||
ENDIF
|
||||
pnRec = 0
|
||||
llSucces = goExecutor.oSelecteaza2Value(m.lcSql, @pnRec)
|
||||
IF m.llSucces
|
||||
llInvalidat = (m.pnRec > 0)
|
||||
ENDIF
|
||||
RETURN m.llInvalidat
|
||||
ENDPROC
|
||||
|
||||
|
||||
*!* Arata situatii contabile invalidate in luna curenta
|
||||
Procedure SituatiiInvalidate
|
||||
|
||||
Private poSituatii
|
||||
Local loSituatiiInvalide As 'frm_situatii_invalidate'
|
||||
Local lcFiltru, lcFiltruOriginal, lcGroup, lcOrder, lcSelect, llAfiseaza, llModParam
|
||||
poSituatii = null
|
||||
|
||||
Text To lcSelect Noshow
|
||||
select tabel,
|
||||
situatie,
|
||||
an,
|
||||
luna,
|
||||
cont,
|
||||
id_gestiune,
|
||||
cgest,
|
||||
nume_gestiune,
|
||||
dultima_operatie,
|
||||
dultima_refacere,
|
||||
dinvalidat,
|
||||
id_util_invalidare,
|
||||
util_invalidare,
|
||||
explicatie,
|
||||
tip_validare,
|
||||
ctip_validare,
|
||||
blocat,
|
||||
id_util_validare,
|
||||
util_validare,
|
||||
dataora_validare
|
||||
from vtabele_validare
|
||||
Endtext
|
||||
lcSchema = []
|
||||
lcOrder = [tabel, cont, cgest, an, luna]
|
||||
lcGroup = []
|
||||
lcFiltru = [1=2]
|
||||
lcFiltruOriginal = []
|
||||
llModParam = .T.
|
||||
llAfiseaza = .F.
|
||||
|
||||
gencursor('poSituatii', 'cSituatiiInvalidate', lcSelect, lcFiltru, lcSchema, lcOrder, llAfiseaza, lcGroup, llModParam, lcFiltruOriginal)
|
||||
poSituatii.ca_baza1.afisare()
|
||||
|
||||
If Used('cSituatiiInvalidate')
|
||||
loSituatiiInvalide = Createobject('frm_situatii_invalidate')
|
||||
loSituatiiInvalide.Show(1)
|
||||
Endif
|
||||
|
||||
Endproc && SituatiiInvalide
|
||||
|
||||
Procedure verificareGlobala
|
||||
Parameters tlArat, tlFaraPeriada
|
||||
Private plArat, pcondper, plPerioada, plFaraPeriada
|
||||
|
||||
Local lnPoz
|
||||
Store .F. To plPerioada
|
||||
|
||||
If Empty(tlArat)
|
||||
Store .F. To plArat
|
||||
Else
|
||||
plArat = tlArat
|
||||
Endif
|
||||
|
||||
If Empty(tlFaraPeriada)
|
||||
Store .F. To plFaraPeriada
|
||||
Else
|
||||
plFaraPeriada = tlFaraPeriada
|
||||
Endif
|
||||
|
||||
pcondper = ""
|
||||
If !plFaraPeriada
|
||||
ofrmperioada = Createobject('frm_perioada_luni')
|
||||
ofrmperioada.Show(1)
|
||||
|
||||
If gnButon = 2
|
||||
Return
|
||||
Endif
|
||||
|
||||
lnPoz = At('_', pcondper)
|
||||
If lnPoz > 0
|
||||
plPerioada = .T.
|
||||
Endif
|
||||
Endif
|
||||
|
||||
Private pcmesaj_refacere
|
||||
Store "" To pcmesaj_refacere
|
||||
If Used('crsverificari')
|
||||
Use In crsverificari
|
||||
Endif
|
||||
Create Cursor crsverificari (sursa c(20), Cont c(20), tip c(1), mesaj c(200), selectat N(1), explicatia c(50), luna N(2), an N(4))
|
||||
|
||||
If !plArat
|
||||
If plPerioada
|
||||
lnInit = Val(Substr(pcondper, 1, 2)) + Val(Substr(pcondper, 3, 4)) * 12
|
||||
lnFinal = Val(Substr(pcondper, 8, 2)) + Val(Substr(pcondper, 10, 4)) * 12
|
||||
For k = lnInit To lnFinal
|
||||
lnLuna = Mod(k, 12)
|
||||
lnAn = Int(k / 12)
|
||||
If lnLuna = 0
|
||||
lnLuna = 12
|
||||
lnAn = lnAn - 1
|
||||
Endif
|
||||
Do VerificareLunaDeschisa With lnLuna, lnAn, .F.
|
||||
Endfor
|
||||
Select crsverificari
|
||||
Set Filter To !Empty(mesaj)
|
||||
Go Top
|
||||
obj = Createobject('frm_verificare_globala_per')
|
||||
obj.lb_titlu_alb_b121.Caption = "VERIFICARE GLOBALA PENTRU PERIOADA " + Substr(pcondper, 1, 2) + "/" + Substr(pcondper, 3, 4) + " - " + Substr(pcondper, 8, 2) + "/" + Substr(pcondper, 10, 4)
|
||||
obj.ninit = lnInit
|
||||
obj.nfinal = lnFinal
|
||||
obj.Show(1)
|
||||
Else
|
||||
Do VerificareLunaDeschisa
|
||||
If Empty(pcmesaj_refacere)
|
||||
obj = Createobject('frm_verificare_globala')
|
||||
obj.Show(1)
|
||||
Endif
|
||||
Endif
|
||||
Else
|
||||
Do VerificareLunaDeschisa
|
||||
Select crsverificari
|
||||
Replace All selectat With 1
|
||||
If Used('crsrefaceri')
|
||||
Use In crsrefaceri
|
||||
Endif
|
||||
Select sursa, Cont, tip From crsverificari Where selectat = 1 Into Cursor crsrefaceri
|
||||
If Reccount('crsrefaceri') > 0
|
||||
Local lcsursa, lccont, lctip
|
||||
Select crsrefaceri
|
||||
Scan
|
||||
lcsursa = Upper(Alltrim(sursa))
|
||||
lccont = Alltrim(Cont)
|
||||
* lctip=tip
|
||||
lctip = '1'
|
||||
Do refacere With lcsursa, lctip, lccont In orefaceri.prg
|
||||
Select crsrefaceri
|
||||
Endscan
|
||||
|
||||
If Used('crsverificari')
|
||||
Use In crsverificari
|
||||
Endif
|
||||
Create Cursor crsverificari (sursa c(20), Cont c(20), tip c(1), mesaj c(200), selectat N(1), explicatia c(50), luna N(2), an N(4))
|
||||
Do VerificareLunaDeschisa
|
||||
Select crsverificari
|
||||
Go Top
|
||||
*!* MESSAGEBOX("Refacerea s-a incheiat!",0+64,"Info refacere")
|
||||
Endif
|
||||
|
||||
Use In crsrefaceri
|
||||
Endif
|
||||
|
||||
Use In crsverificari
|
||||
Endproc
|
||||
**********************************************************************************************************************************
|
||||
|
||||
**********************************************************************************************************************************
|
||||
Procedure VerificareLunaDeschisa
|
||||
Lparameters tnLuna, tnAn, tlRefaceri, tlFaraTest, tlExtraCont
|
||||
&& tlRefaceri = .T. cu refaceri ; .F. fara refaceri
|
||||
&& tlTest = .T. face inainte_de
|
||||
&& llExtraCont = .T. : + STOC, STOC_OBINV
|
||||
|
||||
Private pcmesaj, pctip
|
||||
Local lnselectat, lcsursa, lccont, lnNrInreg, loTherm, lcTask, lnPercent, lcexplicatia, lnInregAct, lnLuna, lnAn, llRefaceri
|
||||
Store "" To pcmesaj, pctip, lcsursa, lccont, loTherm, lcTask, lcexplicatia
|
||||
Store 0 To lnselectat, lnNrInreg, lnPercent, lnInregAct
|
||||
lnNrInreg = 6
|
||||
|
||||
If !Used('crsverificari')
|
||||
Create Cursor crsverificari (sursa c(20), Cont c(20), tip c(1), mesaj c(200), selectat N(1), explicatia c(50), luna N(2), an N(4))
|
||||
Endif
|
||||
|
||||
|
||||
If Empty(tnLuna)
|
||||
lnLuna = gnLuna
|
||||
Else
|
||||
lnLuna = tnLuna
|
||||
Endif
|
||||
|
||||
If Empty(tnAn)
|
||||
lnAn = gnAn
|
||||
Else
|
||||
lnAn = tnAn
|
||||
Endif
|
||||
|
||||
If Pcount() = 3
|
||||
llRefaceri = tlRefaceri
|
||||
Else
|
||||
llRefaceri = .T.
|
||||
Endif
|
||||
llCuTest = !tlFaraTest
|
||||
|
||||
lcsursa = "BALANTA"
|
||||
If llCuTest
|
||||
Do inainte With lcsursa, '', "pcmesaj", "pctip", '', '', lnLuna, lnAn In oinainte_de.prg
|
||||
Else
|
||||
pcmesaj = ""
|
||||
Endif
|
||||
If !Empty(pcmesaj) And llRefaceri
|
||||
pcmesaj_refacere = pcmesaj + Chr(10) + Chr(13) + Chr(10) + Chr(13) + "Doriti sa refaceti balanta?"
|
||||
If Empty(plArat) Or !plArat
|
||||
If aMessagebox(pcmesaj_refacere, 4 + 32, "Diferente la balanta") == 6
|
||||
aMessagebox("Se apeleaza refacerea", 64, "Info refacere")
|
||||
lccont = ""
|
||||
Do refacere With lcsursa, pctip, lccont, lnLuna, lnAn In orefaceri.prg
|
||||
pcmesaj_refacere = ""
|
||||
Do inainte With lcsursa, '', "pcmesaj", "pctip", '', '', lnLuna, lnAn In oinainte_de.prg
|
||||
Else
|
||||
*Return
|
||||
pcmesaj_refacere = ""
|
||||
Endif
|
||||
Else
|
||||
Do refacere With lcsursa, pctip, lnLuna, lnAn In orefaceri.prg
|
||||
pcmesaj_refacere = ""
|
||||
Do inainte With lcsursa, '', "pcmesaj", "pctip", '', '', lnLuna, lnAn In oinainte_de.prg
|
||||
Endif
|
||||
|
||||
Endif
|
||||
|
||||
lnselectat = Iif(Empty(pcmesaj), 0, 1)
|
||||
Insert Into crsverificari (sursa, tip, mesaj, selectat, explicatia, luna, an) Values (lcsursa, pctip, pcmesaj, lnselectat, 'Balanta', lnLuna, lnAn)
|
||||
|
||||
lcSql = [select distinct 1 as nrcrt,cont from ] + Alltrim(gcS) + [.config_cont_ireg ]
|
||||
lcSql = lcSql + [ union ]
|
||||
lcSql = lcSql + [select distinct 2 as nrcrt,cont from ] + Alltrim(gcS) + [.config_Cont_ireg ] + ;
|
||||
[where cu_Inregistrari = 1]
|
||||
lcSql = lcSql + [ order by cont]
|
||||
lcCursor = [crsConturi]
|
||||
lnSucces = goExecutor.oExecute(lcSql, lcCursor)
|
||||
If lnSucces < 0
|
||||
aMessagebox(goExecutor.cEroare, 0 + 16, "Eroare")
|
||||
Endif
|
||||
|
||||
If Used('crsconturi')
|
||||
lnNrInreg = lnNrInreg + Reccount('crsconturi')
|
||||
Endif
|
||||
|
||||
loTherm = Newobject("_thermometer", "_therm", "", "Verificare globala " + Alltrim(Str(lnLuna)) + "/" + Alltrim(Str(lnAn)) + "...")
|
||||
With loTherm
|
||||
.Show()
|
||||
lnPercent = 0
|
||||
|
||||
*!* modificare 2007
|
||||
If gnAn < 2007
|
||||
lcexplicatia = "Registrul de vanzari"
|
||||
.Update(lnPercent, 'Verificare ' + lcexplicatia)
|
||||
|
||||
lcCoresp = ['4111']
|
||||
lcExceptii = ['667,622']
|
||||
lcsursa = "VANZ"
|
||||
If llCuTest
|
||||
Do inainte With lcsursa, , "pcmesaj", "pctip", lcExceptii, lcCoresp, lnLuna, lnAn In oinainte_de.prg
|
||||
Endif
|
||||
lnselectat = Iif(Empty(pcmesaj), 0, 1)
|
||||
Insert Into crsverificari (sursa, Cont, tip, mesaj, selectat, explicatia, luna, an) Values ('TVA', '4427', pctip, pcmesaj, lnselectat, lcexplicatia, lnLuna, lnAn)
|
||||
|
||||
|
||||
lnPercent = (1 * 100) / lnNrInreg
|
||||
lcexplicatia = 'Registrul de cumparari'
|
||||
.Update(lnPercent, 'Verificare ' + lcexplicatia)
|
||||
lcsursa = "CUMP"
|
||||
If llCuTest
|
||||
Do inainte With lcsursa, '', "pcmesaj", "pctip", '', '', lnLuna, lnAn In oinainte_de.prg
|
||||
Endif
|
||||
lnselectat = Iif(Empty(pcmesaj), 0, 1)
|
||||
Insert Into crsverificari (sursa, Cont, tip, mesaj, selectat, explicatia, luna, an) Values ('TVA', '4426', pctip, pcmesaj, lnselectat, lcexplicatia, lnLuna, lnAn)
|
||||
Else
|
||||
|
||||
lcexplicatia = "Registrul de vanzari"
|
||||
.Update(lnPercent, 'Verificare ' + lcexplicatia)
|
||||
|
||||
lcCoresp = []
|
||||
lcExceptii = []
|
||||
lcsursa = "TVA_2007"
|
||||
pcmesaj = ""
|
||||
If llCuTest
|
||||
Do inainte With "VANZ2007", , "pcmesaj", "pctip", lcExceptii, lcCoresp, lnLuna, lnAn In oinainte_de.prg
|
||||
Endif
|
||||
lnselectat = Iif(Empty(pcmesaj), 0, 1)
|
||||
Insert Into crsverificari (sursa, Cont, tip, mesaj, selectat, explicatia, luna, an) Values (lcsursa, 'JV', pctip, pcmesaj, lnselectat, lcexplicatia, lnLuna, lnAn)
|
||||
|
||||
|
||||
lnPercent = (1 * 100) / lnNrInreg
|
||||
lcexplicatia = 'Registrul de cumparari'
|
||||
pcmesaj = ""
|
||||
.Update(lnPercent, 'Verificare ' + lcexplicatia)
|
||||
lcsursa = "TVA_2007"
|
||||
If llCuTest
|
||||
Do inainte With "CUMP2007", '', "pcmesaj", "pctip", '', '', lnLuna, lnAn In oinainte_de.prg
|
||||
Endif
|
||||
lnselectat = Iif(Empty(pcmesaj), 0, 1)
|
||||
Insert Into crsverificari (sursa, Cont, tip, mesaj, selectat, explicatia, luna, an) Values (lcsursa, 'JC', pctip, pcmesaj, lnselectat, lcexplicatia, lnLuna, lnAn)
|
||||
|
||||
Endif
|
||||
|
||||
|
||||
If Used('crsconturi') And Reccount('crsconturi') > 0
|
||||
lnInreg = 6
|
||||
Select crsconturi
|
||||
Scan
|
||||
lnnrcrt = nrcrt
|
||||
lccont = Cont
|
||||
Do Case
|
||||
Case lnnrcrt = 1
|
||||
lnPercent = (lnInreg * 100) / lnNrInreg
|
||||
lcexplicatia = 'Balanta analitica - cont ' + lccont
|
||||
.Update(lnPercent, 'Verificare ' + lcexplicatia)
|
||||
lcsursa = "BALANTA_PARTENERI"
|
||||
pcmesaj = ""
|
||||
If llCuTest
|
||||
Do inainte With lcsursa, lccont, "pcmesaj", "pctip", '', '', lnLuna, lnAn In oinainte_de.prg
|
||||
Endif
|
||||
lnselectat = Iif(Empty(pcmesaj), 0, 1)
|
||||
Insert Into crsverificari (sursa, Cont, tip, mesaj, selectat, explicatia, luna, an) Values (lcsursa, lccont, pctip, pcmesaj, lnselectat, lcexplicatia, lnLuna, lnAn)
|
||||
lnInreg = lnInreg + 1
|
||||
|
||||
Case lnnrcrt = 2
|
||||
lnPercent = (lnInreg * 100) / lnNrInreg
|
||||
lcexplicatia = 'Inregistrari - cont ' + lccont
|
||||
.Update(lnPercent, 'Verificare ' + lcexplicatia)
|
||||
lcsursa = "IREG_PARTENERI"
|
||||
pcmesaj = ""
|
||||
If llCuTest
|
||||
Do inainte With lcsursa, lccont, "pcmesaj", "pctip", '', '', lnLuna, lnAn In oinainte_de.prg
|
||||
Endif
|
||||
lnselectat = Iif(Empty(pcmesaj), 0, 1)
|
||||
Insert Into crsverificari (sursa, Cont, tip, mesaj, selectat, explicatia, luna, an) Values (lcsursa, lccont, pctip, pcmesaj, lnselectat, lcexplicatia, lnLuna, lnAn)
|
||||
lnInreg = lnInreg + 1
|
||||
|
||||
Endcase
|
||||
Endscan
|
||||
If tlExtraCont
|
||||
Insert Into crsverificari (sursa, Cont, tip, mesaj, selectat, explicatia, luna, an) Values ('STOC', '', '', '', 0, 'Stocuri', lnLuna, lnAn)
|
||||
Insert Into crsverificari (sursa, Cont, tip, mesaj, selectat, explicatia, luna, an) Values ('STOC_OBINV', '', '', '', 0, 'Stocuri obiecte de inventar', lnLuna, lnAn)
|
||||
Endif
|
||||
Endif
|
||||
.Complete()
|
||||
Endwith
|
||||
Release loTherm
|
||||
|
||||
Endproc
|
||||
1164
COMUN/programe/pmenu.prg
Normal file
1164
COMUN/programe/pmenu.prg
Normal file
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user