<?php

/**
 * Descripción del Modelo de Datos ControlOperacionesSQL
 *
 * Consultas SQL para el Modelo de Datos ControlOperaciones
 *
 * Licenciado bajo la Licencia Apache, Versión 2.0;
 * Usted no puede usar este archivo excepto en conformidad con la Licencia.
 * Usted puede obtener una copia de la Licencia en:
 *      http://www.php.net/license/3_01.txt. 
 * A menos que sea requerido por la ley aplicable o acordado por escrito, el software
 * Distribuido bajo la licencia se distribuye en una "AS IS" o  "COMO ESTA" BASE,
 * SIN GARANTÍAS NI CONDICIONES DE NINGÚN TIPO, expresas o implícitas.
 * Consulte la Licencia para los permisos y Limitaciones bajo la Licencia.
 *
 * @package    Modelos\SQL\ControlOperacionesSQL
 * @author     LUIS ANTONIO MONTOYA CONTRERAS <lmontoya@ccsm.org.co>
 * @author     SICAM 20171025 <sicam32@ccsm.org.co>
 * @copyright  2017 Cámara de Comercio de Santa Marta para el Magdalena
 * @license    http://www.php.net/license/3_01.txt  PHP License 3.01
 * @version    201712051128
 * @link       http://sicam.ccsm.org.co/docs/modelos/sql/ControlOperacionesSQL
 */
 
class ControlOperacionesSQL extends ModeloDatos {
    /**
     * Consulta SQL que permite SELECCIONAR los datos básicos y sus datos relacionados
     */
    const DATOS_COMPLETOS = <<<sql
    SELECT
    	ControlOperaciones.operacionID,
    	ControlOperaciones.controladorID,
    	ControlOperaciones.operacionORDEN,
    	ControlOperaciones.operacionCODIGO,
    	ControlOperaciones.operacionTITULO,
    	ControlOperaciones.operacionFUNCION,
    	ControlOperaciones.operacionNOMBRETAB,
    	ControlOperaciones.operacionMENU,
    	ControlOperaciones.operacionMENUICONO,
    	ControlOperaciones.operacionMENUTITULO,
    	ControlOperaciones.operacionPUBLICO,
    	ControlOperaciones.operacionESTADO,
    	ControlOperaciones.operacionDESCRIPCION,
    	ControlOperaciones.operacionFCHCREACION,
    	ControlOperaciones.operacionUSRCREO,
    	ControlControladores.controladorID,
    	ControlControladores.componenteID,
    	ControlControladores.controladorORDEN,
    	ControlControladores.controladorMENU,
    	ControlControladores.controladorMENUICONO,
    	ControlControladores.controladorMENUTITULO,
    	ControlControladores.controladorCLASE,
    	ControlControladores.controladorCODIGO,
    	ControlControladores.controladorTITULO,
    	ControlControladores.controladorDESCRIPTION,
    	ControlControladores.controladorFCHCREADO,
    	ControlControladores.controladorUSRCREO,
    	ControlComponentes.componenteID,
    	ControlComponentes.componenteMENU,
    	ControlComponentes.componenteMENUICONO,
    	ControlComponentes.componenteMENUTITULO,
    	ControlComponentes.componenteCARPETA,
    	ControlComponentes.componenteCODIGO,
    	ControlComponentes.componenteTITULO,
    	ControlComponentes.componenteESTADO,
    	ControlComponentes.componenteDESCRIPCION,
    	ControlComponentes.componenteFCHCREADO,
    	ControlComponentes.componenteUSRCREO
    FROM
    	ControlOperaciones
    INNER JOIN ControlControladores ON ControlOperaciones.controladorID = ControlControladores.controladorID
    INNER JOIN ControlComponentes ON ControlControladores.componenteID = ControlComponentes.componenteID
sql;

    /**
     * Consulta SQL  que permite SELECIONAR con los datos básicos de un registro.
     */
    const DATOS_BASICOS = <<<sql
    SELECT 
        *
    FROM ControlOperaciones        
    INNER JOIN ControlControladores ON ControlOperaciones.controladorID = ControlControladores.controladorID
sql;
    /**
     * Consulta SQL que permite INSERTAR los datos básicos de un nuevo registro.
     */
    const CREAR_REGISTRO = <<<sql
    INSERT INTO ControlOperaciones ( 
        controladorID, operacionORDEN, operacionCODIGO, operacionTITULO, 
        operacionFUNCION, operacionNOMBRETAB, operacionMENU, operacionMENUICONO, operacionMENUTITULO, operacionPUBLICO, 
        operacionESTADO,  operacionDESCRIPCION,
        operacionUSRCREO
    ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )        
        
sql;
    /**
     * Consulta SQL que ACTUALIZA los datos básicos de un registro
     */
    const ACTUALIZAR_REGISTRO = <<<sql
    UPDATE ControlOperaciones SET
        controladorID = ? , operacionORDEN = ? , 
        operacionCODIGO = ? , operacionTITULO = ? , 
        operacionFUNCION = ? , operacionNOMBRETAB = ? ,
        operacionMENU = ? , operacionMENUICONO = ? ,
        operacionMENUTITULO = ? , operacionPUBLICO = ? ,
        operacionESTADO = ? , operacionDESCRIPCION = ? ,
        operacionFCHCREACION = CURRENT_TIMESTAMP , operacionUSRCREO = ? 
    WHERE operacionID = ?          
        
sql;
    /**
     * Consulta SQL que permite ELIMINAR un registro
     */
    const ELIMINAR_REGISTRO = "DELETE FROM ControlOperaciones WHERE operacionID = ? ";
    /**
     * Consulta SQL que actualiza el ESTADO de un registro.
     */
    const ACUALIZAR_ESTADO = "UPDATE ControlOperaciones SET operacionESTADO = ?  WHERE operacionID = ? ";
    
    const DATOS_POR_ROL = <<<sql
    SELECT
        ControlOperaciones.operacionID,
    	ControlOperaciones.operacionCODIGO,
    	ControlOperaciones.operacionTITULO,
    	ControlControladores.controladorTITULO,
    	ControlControladores.controladorCODIGO,
    	ControlOperacionesRoles.operacionRolID,
    	Roles.rolID,
    	Roles.rolCODIGO,
    	Roles.rolTITULO,
    	Roles.rolDESCRIPCION
    FROM
    	ControlOperaciones
    LEFT JOIN ControlControladores ON ControlOperaciones.controladorID = ControlControladores.controladorID
    INNER JOIN ControlOperacionesRoles ON ControlOperaciones.operacionID = ControlOperacionesRoles.operacionID
    INNER JOIN Roles ON ControlOperacionesRoles.rolID = Roles.rolID
sql;

    const DATOS_POR_USUARIO = <<<sql
    SELECT
	ControlOperaciones.operacionID,
	ControlOperaciones.controladorID,
	ControlOperaciones.operacionORDEN,
	ControlOperaciones.operacionCODIGO,
	ControlOperaciones.operacionTITULO,
	ControlOperaciones.operacionFUNCION,
	ControlOperaciones.operacionNOMBRETAB,
	ControlOperaciones.operacionMENU,
	ControlOperaciones.operacionMENUICONO,
	ControlOperaciones.operacionMENUTITULO,
	ControlOperaciones.operacionPUBLICO,
	ControlOperaciones.operacionESTADO,
	ControlOperaciones.operacionDESCRIPCION,
	ControlOperaciones.operacionFCHCREACION,
	ControlOperaciones.operacionUSRCREO,
	ControlControladores.controladorTITULO,
	ControlControladores.controladorCODIGO
    FROM
    	Usuarios
    INNER JOIN ControlOperacionesUsuarios ON ControlOperacionesUsuarios.usuarioID = Usuarios.usuarioID
    INNER JOIN ControlOperaciones ON ControlOperacionesUsuarios.operacionID = ControlOperaciones.operacionID
    INNER JOIN ControlControladores ON ControlOperaciones.controladorID = ControlControladores.controladorID
sql;
}
// Generado el 2017-12-05 11:28:54:000000

