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

class Profesores extends CI_Controller
{

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

    public function index()
    {

        $contenido_interno = array(
            'Profesores' => $this->profesores_model->getproferores(),
        );

        $contenido_exterior = array(
            'title'     => 'Profesores',
            'contenido' => $this->load->view('backend/Profesores/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 profesor',
            'contenido' => $this->load->view('backend/Profesores/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");
        //$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");

        $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[funcionarios.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 profesor', 'trim|required', array('required' => 'Debes proporcionar un %s.'));
        $this->form_validation->set_rules('email', 'email', 'trim|required|valid_email|is_unique[funcionarios.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 {
            $dataUsuario = array(

                'nombre'        => ucwords($nombre),
                'Apellido1'     => ucwords($Apellido1),
                'Apellido2'     => ucwords($Apellido2),
                'Cedula'        => $Cedula,
                'telefono'      => $telefono,
                'Direccion'     => $Direccion,
                'email'         => $email,
                'idtipousuario' => '4',
                'Genero'        => $Genero,
                'Fecha' => '2019-09-30 00:00:00',
                //'foto'          => $foto,

            );

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

    }

    public function edit($id)
    {

        $contenido_interno = array(
            'profesor'       => $this->profesores_model->getprofesor($id),
            'tipousuarios' => $this->tipousuarios_model->gettipousuarios(),
        );

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

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

    public function update()
    {
        $IdUsuario = $this->input->post("IdUsuario");
        $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");
        
        $email       = $this->input->post("email");        
        $Genero      = $this->input->post("Genero");
        //$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");

        $proferor_actual = $this->profesores_model->getprofesor($IdUsuario);

        if ($Cedula != $proferor_actual->Cedula) {
            $is_unique = '|is_unique[funcionarios.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 profesor', '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($IdUsuario);
        } else {
            $dataproferor = array(
                'nombre'        => ucwords($nombre),
                'Apellido1'     => ucwords($Apellido1),
                'Apellido2'     => ucwords($Apellido2),
                'Cedula'        => $Cedula,
                'telefono'      => $telefono,
                'Direccion'     => $Direccion,
                'email'         => $email,
                'idtipousuario' => '4',
                'Genero'        => $Genero,
                'Fecha' => '2019-09-30 00:00:00',
                //'foto'          => $foto,
            );

            if ($this->profesores_model->update($IdUsuario, $dataproferor)) {
                redirect(base_url() . "backend/Profesores");
            } else {
                $this->session->set_flashdata("error","No se pudo registrar al usuario");
                redirect(base_url() . "backend/Profesores/edit/" . $IdUsuario);
            }
        }

    }

    public function delete($IdUsuario)
    {

        if ($this->profesores_model->delete($IdUsuario)) {
            redirect(base_url() . "backend/Profesores");
        } else {
            redirect(base_url() . "backend/Profesores");
        }
    }

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

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

}
