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

class Entidades extends CI_Controller
{
    public function __construct()
    {
        parent::__construct();
        is_logedin();

        if (!is_admin()) {
            redirect('dashboard');
        }
        
        $this->load->model('Admin_model', 'admin');
        $this->load->library('form_validation');
    }

    public function index()
    {
        $data['title'] = "Mantenedor de Entidades";
        
        $data['entidades'] = $this->admin->get('tbl_entidades', null);
        
        $this->template->load('templates/dashboard', 'entidades_view/data', $data);
    }

    private function _validasi()
    {
        $this->form_validation->set_rules('nombre_entidad', 'Nombre Entidad', 'required|trim');
        $this->form_validation->set_rules('rut', 'RUT Entidad', 'required|trim|is_unique[tbl_entidades.rut]');
        $this->form_validation->set_rules('telefono', 'Teléfono', 'required|trim|numeric');
        $this->form_validation->set_rules('direccion', 'Dirección', 'required|trim');
        $this->form_validation->set_rules('email', 'Email', 'required|trim|valid_email');
        $this->form_validation->set_rules('nombre_contacto', 'Nombre Contacto', 'required|trim');
    }

    public function add()
    {
        $this->_validasi();
        if ($this->form_validation->run() == false) {
            $data['title'] = "Mantenedor de Entidades";
            $this->template->load('templates/dashboard', 'entidades_view/add', $data);
        } else {
            $input = $this->input->post(null, true);

            $input_data = [
                'nombre_entidad'    => $input['nombre_entidad'],
                'rut'               => $input['rut'],
                'telefono'          => $input['telefono'],
                'direccion'         => $input['direccion'],
                'is_active'         => $input['is_active'],
                'email'             => $input['email'],
                'nombre_contacto'   => $input['nombre_contacto'],
                'imagen'            => $input['imagen']
            ];

            $save = $this->admin->insert('tbl_entidades', $input_data);
            
            if ($save) {
                set_pesan('Entidad registrado correctamente en la base de datos');
                redirect('entidades');

            } else {
                set_pesan('Error al registrar el entidad en la base de datos', false);
                redirect('entidades/add');
            }
        }
    }


    public function edit($getId)
    {
        $id = encode_php_tags($getId);
        $this->_validasi();

        if ($this->form_validation->run() == false) {
            $data['title'] = "Mantenedor de Entidades";
            $data['entidades'] = $this->admin->get('tbl_entidades', ['id_entidad' => $id]);
            $this->template->load('templates/dashboard', 'entidades_view/edit', $data);
        } else {
            $input = $this->input->post(null, true);
            $update = $this->admin->update('tbl_entidades', 'id_entidad', $id, $input);

            if ($update) {
                set_pesan('Entidad actualizado correctamente en la base de datos', true, 'Modificación Exitosa');
                redirect('entidades');
            } else {
                set_pesan('Error al actualizar el entidad en la base de datos', false, 'Modificación Fallida');
                redirect('entidades/edit/' . $id);
            }
        }
    }

    public function delete($getId)
    {
        $id = encode_php_tags($getId);

        $input['is_active'] = 0;

        if ($this->admin->update('tbl_entidades', 'id_entidad', $id, $input)) {
            set_pesan('Entidad eliminado correctamente en la base de datos');
        } else {
            set_pesan('Error al eliminar entidad en la base de datos', false);
        }
        redirect('entidades');
    }
}
