<?php

class ParametrosControlador extends Controladores {
    
    function mostrarTodos(){    
        Vistas::mostrar('administrador', 'parametros/listado');
    }
    
    function tablaListado() {
        $parametros = Parametros::todos();
        Vistas::mostrar(
             'administrador','parametros/tbl-parametros',
             array('parametros' => $parametros)
        );
    }
    
    function mostrarFormularioNuevo() {
        $this->mostrarFormulario();
    }
    
    function mostrarFormularioEditar() {
        if(empty($this->parametroID)){
            echo Respuestassistema::error("No llego parametro. Verifique los datos, o contacte al Centro TICS.");
        }else{
            $parametro = Parametros::datos($this->parametroID);
            $this->mostrarFormulario($parametro);       
        }
    }
    
    private function mostrarFormulario($parametro = null) {
        $tiposPerametros = Parametros::tipos();
        Vistas::mostrar('administrador','parametros/form-parametros', array(
            'parametro'=> $parametro,
            'tiposPerametros' => $tiposPerametros
            ) );
    }
    
    function guardarDatosParametro() {
        if( empty($this->parametroID) ){
            $creado = Parametros::guardar(
                $this->tipoPerametro, 
                $this->parametroCODIGO, 
                $this->parametroTITULO,
                $this->parametroDESCRIPCION, 
                $this->parametroVALOR
            );
            if($creado){
                echo Respuestassistema::exito(null, Parametros::datos($creado) );
            }else{
                echo Respuestassistema::fallo("No se pudo guardar el nuevo parametro");
            }
        }else{
            $actualizado = Parametros::actualizar(
                $this->parametroID,
                $this->tipoPerametro, 
                $this->parametroCODIGO, 
                $this->parametroTITULO,
                $this->parametroDESCRIPCION, 
                $this->parametroVALOR
            );
            if($actualizado>0){
                echo Respuestassistema::exito(null, Parametros::datos($this->parametroID) );
            }else{
                echo Respuestassistema::fallo("No se actualizó el paramtro. Verifique los datos, o contacte al Centro TICS.");
            }
        }
    }
    
    /**
     * Eliminar un registro de la base de datos.
     * Esta operación es irreversible.
     * Si se tiene la referencia integral activada, la base de datos no va 
     * dejar eliminar si tiene otros registros asociados.
     * @return RespuestasSistema Resultado de la Operacion que se envia al cliente
     */
    function eliminar() {
        $parametrosParaEliminar = $this->checkparametros;
        if (count($parametrosParaEliminar)) {
            $n = 0;
            foreach ($parametrosParaEliminar as $parametroELIMINAR):
                if (Parametros::eliminar($parametroELIMINAR)) {
                    $n++;
                }
            endforeach;
            if ($n == 0) {
                echo RespuestasSistema::error('No fue posible ELIMINAR. Contacte al centro TICS.');
            } else if ($n == count($parametrosParaEliminar)) {
                echo RespuestasSistema::exito('Se realizó la OPERACION [ELIMINAR] exitosamente!');
            } else {
                echo RespuestasSistema::error('Hubo un error al  [ELIMINAR] alguno de los registros. Verifica los datos, o contacta al centro TICS.');
            }
        } else {
            echo RespuestasSistema::error('No llegarón los datos para  [ELIMINAR]. Contacta al centro TICS');
        }
    }
    
}
