<?php
defined('BASEPATH') or exit('No direct script access allowed');

class estudiantes extends CI_Controller
{

    public function __construct()
    {
        parent::__construct();
        $this->load->model("estudiantes_model");
        $this->load->model("tipousuarios_model");
        if (!$this->session->userdata("login")) {
            redirect(base_url() . "cpanel");
        }
    }

    public function index()
    {

        $contenido_interno = array(
            'estudiantes' => $this->estudiantes_model->getestudiantes(),
        );

        $contenido_exterior = array(
            'title'     => 'estudiantes',
            'contenido' => $this->load->view('backend/estudiantes/index', $contenido_interno, true),
        );

        $this->load->view('backend/template', $contenido_exterior);
    }

    public function add()
    {

        $contenido_interno = array(
            'tipousuarios' => $this->tipousuarios_model->gettipousuarios(),
        );

        $contenido_exterior = array(
            'title'     => 'Agregar Estudiante',
            'contenido' => $this->load->view('backend/estudiantes/add', $contenido_interno, true),
        );

        $this->load->view('backend/template', $contenido_exterior);

    }

    public function store()
    {
        $nombre      = $this->input->post("nombre");
        $Apellido1   = $this->input->post("Apellido1");
        $Apellido2   = $this->input->post("Apellido2");
        $Cedula      = $this->input->post("Cedula");
        $telefono    = $this->input->post("telefono");
        $Direccion   = $this->input->post("Direccion");
        $tipousuario = $this->input->post("idtipousuario");
        $email       = $this->input->post("email");        
        $Genero      = $this->input->post("Genero");
        $Seccion     = $this->input->post("Seccion");
        //$FechaSolicitud = $this->input->post("FechaSolicitud");
        //$Aprobado       = $this->input->post("Aprobado");
        //$FechaAprobado  = $this->input->post("FechaAprobado");
        //$Eliminado      = $this->input->post("Eliminado");
        
        $this->form_validation->set_rules('nombre', 'nombre', 'trim|required', array('required' => 'Debes proporcionar un %s.'));
        $this->form_validation->set_rules('Apellido1', 'Apellido1', 'trim|required', array('required' => 'Debes proporcionar un %s.'));
        $this->form_validation->set_rules('Apellido2', 'Apellido2', 'trim|required', array('required' => 'Debes proporcionar un %s.'));
        $this->form_validation->set_rules('Cedula', 'Cedula', 'trim|required|min_length[9]|max_length[12]|is_unique[estudiantes.Cedula]', array('required' => 'Debes proporcionar una %s.', 'is_unique' => 'Este numero de %s ya existe', 'min_length' => 'La %s debe ser de 9 digitos como minimo.', 'max_length' => 'La %s debe ser de 12 digitos como maximo.'));
        $this->form_validation->set_rules('Direccion', 'Direccion', 'trim|required', array('required' => 'Debes proporcionar una %s.'));
        //$this->form_validation->set_rules('idtipousuario', 'Tipo estudiante', 'trim|required', array('required' => 'Debes proporcionar un %s.'));
        $this->form_validation->set_rules('email', 'email', 'trim|required|valid_email|is_unique[estudiantes.email]', array('required' => 'Debes proporcionar un %s.', 'is_unique' => 'Este %s ya existe', 'valid_email' => 'El %s no es valido'));        
        $this->form_validation->set_rules('telefono', 'telefono', 'trim|required', array('required' => 'Debes proporcionar un %s.'));
        //$this->form_validation->set_rules('FechaSolicitud', 'Fecha Solicitud', 'trim|required', array('required' => 'Debes proporcionar un %s.'));
        
        $this->form_validation->set_error_delimiters('<span class="help-block">', '</span>');

        if ($this->form_validation->run() == false) {
            $this->add();
        } else {

            $config['upload_path']   = './assets/images/perfiles';
            $config['allowed_types'] = 'gif|jpg|png';

            $this->load->library('upload', $config);

            if (!$this->upload->do_upload('imagen')) {
                $imagen = "default-book.png";
            } else {
                $data   = array('upload_data' => $this->upload->data());
                $imagen = $data["upload_data"]["file_name"];
            }

            $dataUsuario = array(

                'nombre'        => ucwords($nombre),
                'Apellido1'     => ucwords($Apellido1),
                'Apellido2'     => ucwords($Apellido2),
                'Cedula'        => $Cedula,
                'telefono'      => $telefono,
                'Direccion'     => $Direccion,
                'email'         => $email,
                'Eliminado'     => '0',
                'idtipousuario' => '5',
                'Genero'        => $Genero,
                'Seccion'       => $Seccion,
                'FechaSolicitud' => '2019-09-30 00:00:00',
                'Aprobado'      => '0',
                'FechaAprobado' => '2019-09-30 00:00:00',
                'foto'          => $imagen,

            );

            if ($this->estudiantes_model->guardar($dataUsuario)) {
                redirect(base_url() . "backend/estudiantes");
            } else {
                $this->session->set_flashdata("error","No se pudo registrar al usuario");
                redirect(base_url() . "backend/estudiantes/add");
            }
        }

    }

    public function edit($id)
    {

        $contenido_interno = array(
            'estudiante'       => $this->estudiantes_model->getestudiante($id),
            'tipousuarios' => $this->tipousuarios_model->gettipousuarios(),
        );

        $contenido_exterior = array(
            'title'     => 'Editar Estudiante',
            'contenido' => $this->load->view('backend/estudiantes/edit', $contenido_interno, true),
        );

        $this->load->view('backend/template', $contenido_exterior);
    }

    public function update()
    {
        $idestudiante = $this->input->post("idestudiante");
        $nombre      = $this->input->post("nombre");
        $Apellido1   = $this->input->post("Apellido1");
        $Apellido2   = $this->input->post("Apellido2");
        $Cedula      = $this->input->post("Cedula");
        $telefono    = $this->input->post("telefono");
        $Direccion   = $this->input->post("Direccion");
        $tipousuario = $this->input->post("idtipousuario");
        $email       = $this->input->post("email");        
        $Genero      = $this->input->post("Genero");
        $Seccion     = $this->input->post("Seccion");
        //$FechaSolicitud = $this->input->post("FechaSolicitud");
        //$Aprobado       = $this->input->post("Aprobado");
        //$FechaAprobado  = $this->input->post("FechaAprobado");
        //$Eliminado      = $this->input->post("Eliminado");
        //$foto        = $this->input->post("foto");

        $estudiante_actual = $this->estudiantes_model->comprobarCedula($Cedula);

        if ($Cedula != $estudiante_actual->Cedula) {
            $is_unique = '|is_unique[estudiantes.Cedula]';
        } else {
            $is_unique = '';
        }

        $this->form_validation->set_rules('nombre', 'nombre', 'trim|required', array('required' => 'Debes proporcionar un %s.'));
        $this->form_validation->set_rules('Apellido1', 'Apellido1', 'trim|required', array('required' => 'Debes proporcionar el %s.'));
        $this->form_validation->set_rules('Apellido2', 'Apellido2', 'trim|required', array('required' => 'Debes proporcionar el %s.'));
        $this->form_validation->set_rules('Cedula', 'Cedula', 'trim|required|min_length[9]|max_length[12]' . $is_unique, array('required' => 'Debes proporcionar una %s.', 'is_unique' => 'Este numero de %s ya existe', 'min_length' => 'La %s debe ser de 9 digitos como minimo.', 'max_length' => 'La %s debe ser de 12 digitos como maximo.'));
        $this->form_validation->set_rules('direccion', 'Direccion', 'trim|required', array('required' => 'Debes proporcionar un %s.'));
        $this->form_validation->set_rules('tipousuario', 'Tipo estudiante', 'trim|required', array('required' => 'Debes proporcionar un %s.'));
        $this->form_validation->set_error_delimiters('<span class="help-block">', '</span>');

        if ($this->form_validation->run() == false) {
            $this->edit($idestudiante);
        } else {
            $dataestudiante = array(
                'nombre'        => ucwords($nombre),
                'Apellido1'     => ucwords($Apellido1),
                'Apellido2'     => ucwords($Apellido2),
                'Cedula'        => $Cedula,
                'telefono'      => $telefono,
                'Direccion'     => $Direccion,
                'email'         => $email,
                'Eliminado'     => '0',
                'idtipousuario' => '5',
                'Genero'        => $Genero,
                'Seccion'       => $Seccion,
                'FechaSolicitud' => '2019-09-30 00:00:00',
                'Aprobado'      => '0',
                'FechaAprobado' => '2019-09-30 00:00:00',
                //'foto'          => $foto,
            );

            if ($this->estudiantes_model->update($idestudiante, $dataestudiante)) {
                redirect(base_url() . "backend/estudiantes");
            } else {
                $this->session->set_flashdata("error","No se pudo registrar al usuario");
                redirect(base_url() . "backend/estudiantes/edit/" . $idestudiante);
            }
        }

    }

    public function delete($idestudiante)
    {

        if ($this->estudiantes_model->delete($idestudiante)) {
            redirect(base_url() . "backend/estudiantes");
        } else {
            redirect(base_url() . "backend/estudiantes");
        }
    }

    public function comprobarCedula()
    {
        $Cedula = $this->input->post("Cedula");
        $res = $this->estudiantes_model->comprobarCedula($Cedula);
        if ($res) {
            if ($res->estado == 1) {
                echo json_encode($res);
            } else {
                echo "na"; // not available
            }

        } else {
            echo "nf"; // not found
        }
    }

}
