Skip to main content

Ayuda sobre productos BOLD:

Control en la solicitud de permisos asociados a la presencia

Página:
< Volver

En ocasiones los clientes precisan que los empleados soliciten permisos para el reconocimiento de un exceso de jornada bien para remunerarlo, bien para compensarlo. En estos casos el control asociado a este tipo de permisos requiere el ánalisis de la presencia en base a los marcajes realizados en la jornada.

Las siguientes funciones permiten analizar si una determinada franja de tiempo asociada a una jornada se podría catalogar como presencia extraordinaria y reconocerla como tal. Este tipo de ánalisis, con estas funciones, sólo tienen sentido en un contexto en el que jornada anual se infiere de los turnos planificados y no de la presencia,pese a que esta tb se controle y procese.

<Function Name="CheckPresenciaJornadaProcesada" Type="bool" ShowName="CheckPresenciaJornadaProcesada" Description="Retorna si hay presencia completa en el intervalo marcado">
        <Param Name="ID_JP" Type="int"/>
        <Param Name="aBegin" Type="dateTime"/>
        <Param Name="aEnd" Type="dateTime"/>
        <Expression><![CDATA[
        IfElse(!IsInvalid(Object(ID_JP,"WorkerClockMarckProcess")),
                ToBool(PL_DurationH(PL_Interval(PL_FilterByMarcks(Object(ID_JP,"WorkerClockMarckProcess").Periods,0,2,3,6),aBegin,aEnd,true,true)) >= ToDoubleDef((aEnd-aBegin)*24.0,0.0)-(1.0/60.0)),
                false)
    ]]></Expression>
    </Function>
<Function Name="ControlPresenciaFueraDeJornadaOrdinaria" Type="string" ShowName="ControlPresenciaFueraDeJornadaOrdinaria" Description="ControlPresenciaFueraDeJornadaOrdinaria">
            <Param Name="ID_Case" Type="int"/>
            <Param Name="ID_worker" Type="int"/>
            <Param Name="aDate" Type="dateTime"/>
            <Param Name="aBegin" Type="dateTime"/>
            <Param Name="aEnd" Type="dateTime"/>
            <Expression><![CDATA[
			IfElse(PL_DurationH(PL_Interval(GetPlanAsPL(ID_Case, ID_worker, aDate,aDate),aBegin,aEnd,true,true))> 1.0/60.0,
			       "La franja de tiempo solicitada solapa con el turno planificado. No se considera presencia extraordinaria",
				   ReturnLast(SetV("xxxClockMarckProcessID",GetWorkerClockMarckProcessID(ID_worker, aDate)),
				              IfElse(v("xxxClockMarckProcessID")<=0,
									 "Todavia no se ha procesado la presencia para la jornada solicitada. Puede intentarlo más adelante",
						             IfElse(Object(v("xxxClockMarckProcessID"),"WorkerClockMarckProcess").ProcessStatus!=1,
									        "La jornada para la que se solicita el reconocimiento de presencia fuera de horario está pendiente de revisión.Puede intentarlo más adelante",
											IfElse(!CheckPresenciaJornadaProcesada(GetWorkerClockMarckProcessID(ID_worker, aDate),aBegin,aEnd),
											       "No hay presencia reconocida en la franja requerida para la jornada solicitada","")
											)
						             )
							)
				)			
  ]]></Expression>
        </Function>
Was this article helpful?
0 out Of 5 Stars
5 Estrellas 0%
4 Estrellas 0%
3 Estrellas 0%
2 Estrellas 0%
1 Estrellas 0%
5
How can we improve this article?
How Can We Improve This Article?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Contenido