<?php
defined('BASEPATH') OR exit('No direct script access allowed');
 
class Amenidad extends CI_Controller{
    function __construct()
    {
        parent::__construct();
        $this->load->model('Amenidad_model');
    } 

    /*
     * Listing of amenidades
     */
    function index($page = FALSE)
    {
        if(!($this->session->userdata('id'))) 
        {
            redirect(base_url()."login");
        };

        $breadcrumb = array(
            "Amenidades" => ""
        );
        $data['breadcrumb'] = $breadcrumb;

        $params['page'] = $page;
        $params['limit'] = 5; 
        $params['offset'] = $page ? (($page - 1) * $params['limit']) : 0;
        
        $config = $this->config->item('pagination');
        $config['base_url'] = site_url('amenidad/page');
        $config['total_rows'] = $this->Amenidad_model->get_all_amenidades_count();
        $config['per_page'] = $params['limit'];
        $config['use_page_numbers'] = TRUE;
        $config['first_url'] = base_url('amenidad');
        $config['attributes'] = array('class' => 'page-link');
        $config['full_tag_open'] = '<ul class="pagination">';
        $config['full_tag_close'] = '</ul>';
        $config['cur_tag_open'] = '<li class="page-item active"><span class="page-link">';
        $config['cur_tag_close'] = '</span></li>';
        $config['num_tag_open'] = '<li class="page-item">';
        $config['num_tag_close'] = '</li>';
        $config['prev_tag_open'] = '<li class="page-item">';
        $config['prev_tag_close'] = '</li>';
        $config['next_tag_open'] = '<li class="page-item">';
        $config['next_tag_close'] = '</li>';
        $config['first_tag_open'] = '<li class="page-item">';
        $config['first_tag_close'] = '</li>';
        $config['last_tag_open'] = '<li class="page-item">';
        $config['last_tag_close'] = '</li>';
        $config['first_link'] = "<<";
        $config['last_link'] = ">>";
        $this->pagination->initialize($config);

        $data['listado'] = TRUE;
        $data['controlador'] = 'amenidad';
        $data['amenidades'] = $this->Amenidad_model->get_all_amenidades($params);
        $data['contenido'] = 'amenidad/index';
        $data['titulo'] = 'Amenidades';
        $data['_view'] = 'amenidad/index';
        $this->load->view('templates/template_admin', $data);
    }

    /*
     * Adding a new amenidad
     */
    function add()
    {   
        if(!($this->session->userdata('id'))) 
        {
            redirect(base_url()."login");
        };
        $breadcrumb = array(
            "Amenidades" => "./",
            "Agregar" => ""
        );
        $data['breadcrumb'] = $breadcrumb;

        $this->load->library('form_validation');

		$this->form_validation->set_rules('nombre','Nombre','required|min_length[1]');
		$this->form_validation->set_rules('descripcion','Descripcion','required');
		$this->form_validation->set_rules('costo','Costo','required');
		$this->form_validation->set_rules('hora_apertura','Hora Apertura','required');
		$this->form_validation->set_rules('hora_cierre','Hora Cierre','required');
		
		if($this->form_validation->run())     
        {   

            $subir = $this->cargar_archivo($_FILES['userfile']['name']);

            if (!$subir['correcto']) {
            // ERROR
                $data['uploadError'] = $subir['error'];
                $data['controlador'] = 'amenidad';
                $data['contenido'] = 'amenidad/add';
                $data['titulo'] = 'Nueva Amenidad';
                $data['_view'] = 'amenidad/add';
                $this->load->view('templates/template_admin', $data);
            } else {
                $archivo = $subir['archivo'];
                

                $params = array(
    				'creado_por' => $this->session->userdata('id'),
    				'fecha_registro' => date("Y-m-d H:i:s"),
    				'fecha_modificacion' => date("Y-m-d H:i:s"),
    				'estado' => 1,
    				'nombre' => $this->input->post('nombre'),
    				'costo_tipo' => 1,
    				'costo' => $this->input->post('costo'),
    				'ubicacion' => $this->input->post('ubicacion'),
    				'tipo_id' => 1,
    				'hora_apertura' => $this->input->post('hora_apertura'),
    				'hora_cierre' => $this->input->post('hora_cierre'),
    				'foto_principal' => $archivo,
    				'id_condominio' => $this->session->userdata('condominio'),
    				'descripcion' => $this->input->post('descripcion'),
                );
            
                $amenidad_id = $this->Amenidad_model->add_amenidad($params);
                redirect('amenidad');
            }
        }
        else
        {            
            $data['controlador'] = 'amenidad';
            $data['contenido'] = 'amenidad/add';
            $data['titulo'] = 'Nueva Amenidad';
            $data['_view'] = 'amenidad/add';
            $this->load->view('templates/template_admin', $data);
        }
    }  

    /*
     * Editing a amenidad
     */
    function edit($id)
    {   
        if(!($this->session->userdata('id'))) 
        {
            redirect(base_url()."login");
        };
        $breadcrumb = array(
            "Amenidades" => "../",
            "Editar" => ""
        );
        $data['breadcrumb'] = $breadcrumb;
        // check if the amenidad exists before trying to edit it
        $data['amenidad'] = $this->Amenidad_model->get_amenidad($id);
        
        if(isset($data['amenidad']['id']))
        {
            $this->load->library('form_validation');

			$this->form_validation->set_rules('nombre','Nombre','required|min_length[1]');
			$this->form_validation->set_rules('descripcion','Descripcion','required');
			$this->form_validation->set_rules('costo','Costo','required');
			$this->form_validation->set_rules('hora_apertura','Hora Apertura','required');
			$this->form_validation->set_rules('hora_cierre','Hora Cierre','required');
		
			if($this->form_validation->run())     
            {   

                $subir = $this->cargar_archivo($_FILES['userfile']['name']);

                if (!$subir['correcto']) {
                    // ERROR
                        $data['uploadError'] = $subir['error'];
                        $data['controlador'] = 'amenidad';
                        $data['contenido'] = 'amenidad/edit';
                        $data['titulo'] = 'Editar Amenidad';
                        $data['_view'] = 'amenidad/edit';
                        $this->load->view('templates/template_admin', $data);
                } else {
                    $archivo = $subir['archivo'];
                    if (is_null($archivo) ) {
                        $archivo = $this->input->post('foto_principal');
                    }

                    $params = array(
    					'creado_por' => $this->input->post('creado_por'),
    					'fecha_registro' => $this->input->post('fecha_registro'),
    					'fecha_modificacion' => date("Y-m-d H:i:s"),
    					'estado' => $this->input->post('estado'),
    					'nombre' => $this->input->post('nombre'),
    					'costo_tipo' => $this->input->post('costo_tipo'),
    					'costo' => $this->input->post('costo'),
    					'ubicacion' => $this->input->post('ubicacion'),
    					'tipo_id' => $this->input->post('tipo_id'),
    					'hora_apertura' => $this->input->post('hora_apertura'),
    					'hora_cierre' => $this->input->post('hora_cierre'),
    					'foto_principal' => $archivo,
    					'id_condominio' => $this->input->post('id_condominio'),
    					'descripcion' => $this->input->post('descripcion'),
                    );

                    $this->Amenidad_model->update_amenidad($id,$params);            
                    redirect('amenidad');
                }
            }
            else
            {
                $data['controlador'] = 'amenidad';
                $data['contenido'] = 'amenidad/edit';
                $data['titulo'] = 'Editar Amenidad';
                $data['_view'] = 'amenidad/edit';
                $this->load->view('templates/template_admin', $data);
            }
        }
        else
            show_error('The amenidad you are trying to edit does not exist.');
    } 

    /*
     * Deleting amenidad
     */
    function remove($id)
    {
        if(!($this->session->userdata('id'))) 
        {
            redirect(base_url()."login");
        };
        $amenidad = $this->Amenidad_model->get_amenidad($id);

        // check if the amenidad exists before trying to delete it
        if(isset($amenidad['id']))
        {
            $this->Amenidad_model->delete_amenidad($id);
            //echo 'voy';
            redirect('amenidad');
        }
        else
            show_error('The amenidad you are trying to delete does not exist.');
           
    }

    function cargar_archivo($file)
    {
        if ($file != NULL) {
            $str=rand(); 
            $result = sha1($str); 
            $archivo = null;
            $ext = pathinfo(convert_accented_characters($file), PATHINFO_EXTENSION);

            $config['upload_path'] = "./assets/uploads";
            $config['file_name'] = $result . $ext;
            $config['allowed_types'] = "jpg|png";
            $config['max_filename'] = 20;

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

            $resultado = $this->upload->do_upload();

            $respuesta = array (
                "correcto" => $resultado,
                "error" => ($resultado ? NULL : $this->upload->display_errors()),
                "archivo" => ($resultado ? base_url('assets/uploads') . '/' . $this->upload->data('file_name') : NULL)
            );        
        } else {
            $respuesta = array (
                "correcto" => TRUE,
                "error" => NULL,
                "archivo" => NULL
            ); 
        }
        return $respuesta;
    }
    
}