<?php
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
/**
* Description of Asistencias
*
* @author root
*/
class Asistencias {
const ENTRADA = 'ENTRADA';
const SALIDA = 'SALIDA';
public static function datos($asistenciaLaboralID) {
$sqlQuery = AsistenciasSQL::$sqlDatos . " WHERE ControlAsistenciasLaborales.asistenciaLaboralID = ? ";
return SicamDB::selectUnaFila($sqlQuery, array($asistenciaLaboralID));
}
public static function registrarTiempoAsistencia($colaboradorID, $sede, $jordana, $horario, $sentido, $carnet, $longitud, $latitud, $foto, $ip) {
$sqlQuery = "INSERT INTO ControlAsistenciasLaborales ( "
. "colaboradorID, sedeID, jornadaID, horarioID, "
. "asistenciaLaboralSENTIDO, asistenciaLaboralCARNET, "
. "asistenciaLaboralLONGITUD, asistenciaLaboralLATITUD, "
. "asistenciaLaboralFOTO, asistenciaLaboralIP "
. ") VALUES (?, ?, ?, ?, ?, ?, ?,?, ?, ?)";
return SicamDB::insertFila($sqlQuery,
array(
$colaboradorID, $sede, $jordana, $horario, $sentido, $carnet,
$longitud, $latitud, $foto, $ip
)
);
}
public static function JornadaPorTiempo($tiempo) {
$sqlQuery = "Select * FROM CamaraJornadas where jornadaHORAINICIAL = ?";
return SicamDB::selectUnaFila($sqlQuery, array($tiempo))->jornadaID;
}
public static function HorarioPorJornada($id) {
$sqlQuery = "Select * FROM ColaboradoresHorarios"
. "inner join CamaraColaboradores on ColaboradoresHorarios.colaboradorID = CamaraColaboradores.colaboradorID"
. "inner join CamaraJornadas on Colaboradores.jornadaID = CamaraJornadas.jornadaID"
. "Where Colaboradores.jornadaID = ? ";
return SicamDB::selectUnaFila($sqlQuery, array($id))->horarioID;
}
public static function jornadaTiempoAsistenciaColaborador($tiempoRegistro, $sentidoRegistro, $colaboradorID) {
$diffTiempo = array('jornada' => array(), 'medida' => array(), 'limite' => array());
$Jornadas = Jornadas::delColaborador($colaboradorID);
if (count($Jornadas)):
foreach ($Jornadas as $Jornada) :
$diffJornada = Fechas::segundosEntre($Jornada->jornadaHORAFINAL,
$Jornada->jornadaHORAINICIAL);
switch ($sentidoRegistro):
case self::ENTRADA:
$diffSentido = Fechas::segundosEntre($Jornada->jornadaHORAINICIAL,
$tiempoRegistro);
break;
case self::SALIDA:
$diffSentido = Fechas::segundosEntre($tiempoRegistro,
$Jornada->jornadaHORAFINAL);
break;
endswitch;
array_push($diffTiempo['medida'], $diffSentido);
array_push($diffTiempo['jornada'], $Jornada->jornadaID);
array_push($diffTiempo['limite'], $diffJornada);
endforeach;
$idMenorLista = Numeros::menorDeLista($diffTiempo['medida']);
return array('JORNADA' => $diffTiempo['jornada'][$idMenorLista],
'MEDIDA' => $diffTiempo['medida'][$idMenorLista],
'LIMITE' => $diffTiempo['limite'][$idMenorLista]);
endif;
return null;
}
}