<?php


require_once dirname(__FILE__,3)."/personas/controladores/Personas.control.php";

class PersonasEstudiosControlador extends Controladores {
    public function mostrarTablaEstudiosAcademicos(){
        $estudios = PersonasEstudios::estudiosPorIdPersonas($this->personaId);
        Vistas::mostrar("personas","estudios/estudios", array('personas' => $estudios, 'controlador' => 'PersonasEstudios'));
    }
    
    public function mostrarFormularioNuevo(){
        $this->mostrarFormulario(array('personaID' => Personas::idPorIdentificacion(Cliente::cedula())));
    }
    
    public function mostrarFormularioEditar(){
        $this->mostrarFormulario(PersonasEstudios::porId($this->estudioAcademicoId));
    }
    
    public function mostrarFormulario($persona){
        $personas = new PersonasControlador();
        if(is_array($persona)){
            $persona['tipoEstudioAcademico'] = $personas->crearArray(PersonasEstudios::getAlltiposEstudiosAcademicos(),'tipoEstudioAcademicoID','tipoEstudioAcademicoTITULO');    
        }else{
            $persona->tipoEstudioAcademico = $personas->crearArray(PersonasEstudios::getAlltiposEstudiosAcademicos(),'tipoEstudioAcademicoID','tipoEstudioAcademicoTITULO');
        }
        
        Vistas::mostrar("personas","estudios/crear",array('persona'=>$persona));
    }
    
    public function guardar(){
        if(!isset($this->estudioAcademicoFECHAFINAL)){
            $this->estudioAcademicoFECHAFINAL = null;
        }
        if(isset($this->estudioAcademicoId)){
            $this->modificarEstudioAcademico($this->estudioAcademicoId, $this->estudioAcademicoTITULO, $this->estudioAcademicoFECHAINICIO, $this->estudioAcademicoFECHAFINAL,
            $this->estudioAcademicoESTADO, $this->estudioAcademicoINSTITUCION, $this->tipoEstudioAcademicoID);
        }else{
            $this->agregarNuevoEstudioAcademico($this->estudioAcademicoTITULO, $this->estudioAcademicoFECHAINICIO, $this->estudioAcademicoFECHAFINAL,
            $this->estudioAcademicoESTADO, $this->estudioAcademicoINSTITUCION, $this->tipoEstudioAcademicoID, $this->personaId);
        }
    }
    
    public function agregarNuevoEstudioAcademico($estudioAcademicoTITULO, $estudioAcademicoFECHAINICIO, $estudioAcademicoFECHAFINAL, $estudioAcademicoESTADO, $estudioAcademicoINSTITUCION, $tipoEstudioAcademicoID, $personaID){
        $persona  = PersonasEstudios::guardar($estudioAcademicoTITULO, $estudioAcademicoFECHAINICIO, $estudioAcademicoFECHAFINAL, $estudioAcademicoESTADO, $estudioAcademicoINSTITUCION, $tipoEstudioAcademicoID, $personaID);
        if(is_null($persona)){
            RespuestasSistema::exito('LOS DATOS SE ACTULIZARON DE MANERA EXITOSA');
        }else{
            RespuestasSistema::error('ERROR AL ACTUALIZAR, VOLVER A INTENTARLO');
        }
    }
    
    public function modificarEstudioAcademico($estudioAcademicoID, $estudioAcademicoTITULO, $estudioAcademicoFECHAINICIO, $estudioAcademicoFECHAFINAL, $estudioAcademicoESTADO, $estudioAcademicoINSTITUCION, $tipoEstudioAcademicoID){
        $persona  = PersonasEstudios::actualizar($estudioAcademicoID, $estudioAcademicoTITULO, $estudioAcademicoFECHAINICIO, $estudioAcademicoFECHAFINAL, $estudioAcademicoESTADO, $estudioAcademicoINSTITUCION, $tipoEstudioAcademicoID);
        if(is_null($persona)){
            echo RespuestasSistema::exito('LOS DATOS SE ACTULIZARON DE MANERA EXITOSA');
        }else{
            echo RespuestasSistema::error('ERROR AL ACTUALIZAR, VOLVER A INTENTARLO');
        }
       
    }
    
    /**
     * 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() {
        $EstudioAcademicoParaEliminar = $this->checkPersonasEstudios;
        if (count($EstudioAcademicoParaEliminar)) {
            $n = 0;
            foreach ($EstudioAcademicoParaEliminar as $estudioELIMINAR):
                if (PersonasEstudios::eliminar($estudioELIMINAR)) {
                    $n++;
                }
            endforeach;
            if ($n == 0) {
                echo RespuestasSistema::error('No fue posible ELIMINAR. Contacte al centro TICS.');
            } else if ($n == count($EstudioAcademicoParaEliminar)) {
                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');
        }
    }
}
