68 lines
1.6 KiB
Plaintext
68 lines
1.6 KiB
Plaintext
*!* 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
|
|
|