Files
vfp_roaauto/COMUN/programe/oproceduri_util.prg

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