<?php

/**
 * Descripción del Modelo de Datos ControlConsecutivos
 *
 * %%DESC_MODELO%%
 *
 * 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\Datos\ControlConsecutivos
 * @author     JUAN PABLO LLINAS RAMIREZ <jpllinas@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    201711301215
 * @link       http://sicam.ccsm.org.co/docs/modelos/datos/ControlConsecutivos
 */
 
class ControlConsecutivos extends ModeloDatos {

    /**
     * Recibe el Identificador del registro de ControlConsecutivo y 
     * devuelve un objeto con sus datos.
     * @param int $consecutivosID
     * @return Objeto ControlConsecutivo
     */
    public static function datos($consecutivosID) {
        $sqlQuery = ControlConsecutivosSQL::DATOS_BASICOS . " WHERE consecutivoID =  ? ; ";
        return SicamDB::selectUnaFila($sqlQuery, array($consecutivosID));
    }
    /**
     * Recibe el Identificador del registro de ControlConsecutivo y 
     * devuelve un objeto con sus datos completos con todas sus relacion.
     * @param int $consecutivosID
     * @return Objeto ControlConsecutivo
     */
    public static function datosCompletos($consecutivosID) {
        $sqlQuery = ControlConsecutivosSQL::DATOS_COMPLETOS . " WHERE consecutivoID =  ? ; ";
        $ControlConsecutivo = SicamDB::selectUnaFila($sqlQuery, array($consecutivosID));
        return $ControlConsecutivo;
    }
    /**
     * Devuelve todos los registros de ControlConsecutivos, según el estado.
     * Si no se envia el estado devuelve todos los registros 
     * sin importar su estado.
     * @param String $consecutivosESTADO
     * @return Array de Objetos ControlConsecutivos
     */
    public static function todos() {
        $sqlQuery = ControlConsecutivosSQL::DATOS_BASICOS;
        return SicamDB::selectVariasFilas($sqlQuery);
    }
    
    /**
     * Recibe Todos los datos de necesarios para la creación de un nuevo 
     * registro de ControlConsecutivos.
     * @param int $categoriaID Identificador de la Categoria
     * @param String $consecutivosCODIGO Código de ControlConsecutivos 
     * @param String $consecutivosTITULO Titulo de ControlConsecutivos 
     * @param Texto $consecutivosDESCRIPCION Descripción de ControlConsecutivos
     * @param Url $consecutivosURL Url del archivo asociado al ControlConsecutivos
     * @param String $consecutivosESTADO Estado del registro de ControlConsecutivos
     * @return int con el Identificador del Registro ControlConsecutivos 
     */
    public static function guardar($consecutivoCODIGO, $consecutivoTITULO, $consecutivoPREFIJO, $consecutivoRELLENO, $consecutivoACTUAL) {
        $sqlQuery = ControlConsecutivosSQL::CREAR_REGISTRO;
        return SicamDB::insertFila($sqlQuery, array(
              $consecutivoCODIGO, $consecutivoTITULO, $consecutivoPREFIJO, $consecutivoRELLENO,
              $consecutivoACTUAL, Cliente::usuarioID()
                )
        );
    }
    /**
     * Recibe los todos los datos del registro para ser actualizados, junto con
     * el identificador del registro que se va ha actualizar.
     * @param int $consecutivosID Identificador del Registro de ControlConsecutivos
     * @param int $categoriaID Identificador de la Categoria
     * @param String $consecutivosCODIGO Código de ControlConsecutivos 
     * @param String $consecutivosTITULO Titulo de ControlConsecutivos 
     * @param Texto $consecutivosDESCRIPCION Descripción de ControlConsecutivos
     * @param Url $consecutivosURL Url del archivo asociado al ControlConsecutivos
     * @param String $consecutivosESTADO Estado del registro de ControlConsecutivos
     * @return int cantidad de registros actualziados en la operacion
     */
    public static function actualizar($consecutivoID, $consecutivoCODIGO, $consecutivoTITULO, $consecutivoPREFIJO, $consecutivoRELLENO, $consecutivoACTUAL) {
        $sqlQuery = ControlConsecutivosSQL::ACTUALIZAR_REGISTRO;
        return SicamDB::actualizarFila($sqlQuery, array(
              $consecutivoCODIGO, $consecutivoTITULO,
              $consecutivoPREFIJO, $consecutivoRELLENO, $consecutivoACTUAL,
              Cliente::usuarioID(), $consecutivoID
                )
        );
    }
        /**
     * Recibe un identificador de ControlConsecutivos y elimina el registro.
     * @param int $consecutivosID Identificador del registro
     * ha eliminar.
     * @return int Cantidad de registros eliminados
     */
    public static function eliminar($consecutivosID) {
        $sqlQuery = ControlConsecutivosSQL::ELIMINAR_REGISTRO;
        return SicamDB::actualizarFila($sqlQuery, array($consecutivosID));
    }
    
}
// Generado el 2017-11-30 12:15:22:000000

