<?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;
    }

}

