<?php

class Notificaciones {
    
    const OPERACION = 'OPERACION';
    const ALERTA = 'ALERTA';
    const AVISO = 'AVISO';
    const ERROR = 'ERROR';
    const INFORMACION = 'INFORMACION';
    
    public static function datosCompletos($notificacionID){
         $sqlQuery = NotificacionesSQL::DATOS_COMPLETOS . 
        ' WHERE ColaboradoresNotificaciones.notificacionID = ? ';
        return SicamDB::selectUnaFila($sqlQuery, array($notificacionID));
    }
    
    public static function paraColaborador($colaboradorID, $notificacionTIPO,  $notificacionTITULO, $notificacionMENSAJE, $notificacionOPERACION = NULL){
        $sqlQuery = 'INSERT INTO ColaboradoresNotificaciones ( '
            .'notificacionNOTIFICADO, notificacionTIPO, notificacionTITULO, notificacionMENSAJE, '
            .'notificacionOPERACION, notificacionUSRCREO'
            .') VALUES ( ?, ?, ?, ?, ?, ? )';        
        return SicamDB::insertFila($sqlQuery,
            array(
                $colaboradorID, $notificacionTIPO, 
                $notificacionTITULO, $notificacionMENSAJE, 
                $notificacionOPERACION, Cliente::usuarioID()
            )
        );
    }
    
    static function enviadasPorElCliente(){
        return self::porElColaborador(Cliente::usuarioID());
    }
    public static function porElColaborador($usuarioID){
         $sqlQuery = NotificacionesSQL::DATOS_COMPLETOS . 
        ' WHERE ColaboradoresNotificaciones.notificacionUSRCREO = ? ';
        return SicamDB::selectVariasFilas($sqlQuery, array($usuarioID));
    }
    
    static function delCliente(){
        return self::delColaborador( Cliente::colaboradorID() );
    }
    public static function delColaborador($colaboradorID){
         $sqlQuery = NotificacionesSQL::DATOS_COMPLETOS . 
        ' WHERE ColaboradoresNotificaciones.notificacionNOTIFICADO = ? ';
        return SicamDB::selectVariasFilas($sqlQuery, array($colaboradorID));
    }
    
    static function delClientePendientes(){
        return self::delColaboradorPendientes( Cliente::colaboradorID() );
    }
    static function delClientePendientesLectura(){
        return self::delColaboradorPendientesLectura( Cliente::colaboradorID() );
    }
    static function delClientePendientesOperacion(){
        return self::delColaboradorPendientesOperacion( Cliente::colaboradorID() );
    }
    
    public static function delColaboradorPendientes($colaboradorID){
        $sqlQuery = NotificacionesSQL::DATOS_COMPLETOS . 
        ' WHERE ColaboradoresNotificaciones.notificacionNOTIFICADO = ? AND ( ( ColaboradoresNotificaciones.notificacionFCHLECTURA IS NULL ) OR ( ColaboradoresNotificaciones.notificacionFCHOPERACION IS NULL AND ColaboradoresNotificaciones.notificacionOPERACION IS NOT NULL  ) ) ';
        return SicamDB::selectVariasFilas($sqlQuery, array($colaboradorID));
    }
    
    public static function delColaboradorPendientesLectura($colaboradorID){
        $sqlQuery = NotificacionesSQL::DATOS_COMPLETOS . 
        ' WHERE ColaboradoresNotificaciones.notificacionNOTIFICADO = ? AND ColaboradoresNotificaciones.notificacionFCHLECTURA IS NULL ';
        return SicamDB::selectVariasFilas($sqlQuery, array($colaboradorID));
    }
    
    public static function delColaboradorPendientesOperacion($colaboradorID){
        $sqlQuery = NotificacionesSQL::DATOS_COMPLETOS . 
        ' WHERE ColaboradoresNotificaciones.notificacionNOTIFICADO = ?  '
        .'AND (  '
        .'      ( ColaboradoresNotificaciones.notificacionFCHLECTURA IS NULL )  '
        .'      OR ( ColaboradoresNotificaciones.notificacionFCHOPERACION IS NULL AND ColaboradoresNotificaciones.notificacionOPERACION IS NOT NULL  )  '
        .')  ';
        return SicamDB::selectVariasFilas($sqlQuery, array($colaboradorID));
    }
    
    public static function registrarLectura($notificacionID){
        $sqlQuery = "UPDATE ColaboradoresNotificaciones SET ".
        "notificacionFCHLECTURA = CURRENT_TIMESTAMP ".
        "WHERE notificacionID = ? ;";
        return SicamDB::actualizarFila( $sqlQuery, array($notificacionID) );
    }
    
    public static function registrarOperacion($notificacionID){
        $sqlQuery = "UPDATE ColaboradoresNotificaciones SET ".
        "notificacionFCHOPERACION = CURRENT_TIMESTAMP ".
        "WHERE notificacionID = ? ;";
        return SicamDB::actualizarFila( $sqlQuery, array($notificacionID) );
    }
    
    
    
}
