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

class Login_model extends CI_Model {
    
        protected $database;
    
        function __construct()
        {
            parent::__construct();
            $this->load->database();
            $this->load->helper('util');
        }

        /*
         * Get usuario by mail
         */
        function get_user_by_user($user)
        {
            $select = "usr_id, perfil_id, usr_username, usr_password, usr_nombre, usr_paterno, usr_materno, usr_f_nac, usr_genero_cve, usr_rfc, usr_env_calle, usr_env_num_ext, usr_env_num_int, usr_env_colonia, usr_env_localidad, usr_env_municipio, usr_env_edo_cve, usr_env_pais_cve, usr_env_cp, usr_correo, usr_tel, usr_movil, esp_id, usr_estatus_cve,esp_id,usr_path_foto,emp_id,usr_cedula, suc_id, cei_id";
            //$this->db->select(parsea_select($select, 'cpresto2905'));
            $this->db->select($select);
            $this->db->from('sis20_usuarios');
            $this->db->where('usr_username' , $user);
            //$this->db->where_in('perfil_id' , array(1));
            $result = $this->db->get();
            if ($result->num_rows() > 0)
            {
                return $result->row_array();
            }
            else
            {
                return FALSE;
            }
        }
        
        function get_user($usr_id)
        {
            $this->db->select('*');
            $this->db->from('sis20_usuarios');
            $this->db->where('usr_id' , $usr_id);
            $this->db->where_in('perfil_id' , array(50,51,52));
            $result = $this->db->get();
            if ($result->num_rows() > 0)
            {
                return $result->row_array();
            }
            else
            {
                return FALSE;
            }
        }
        
        function get_email($email)
        {
            $this->db->select('*');
            $this->db->from('sis20_usuarios');
            $this->db->like('usr_correo' , $email,'left');
            $this->db->where_in('perfil_id' , array(50,51,52));
            $result = $this->db->get();
            if ($result->num_rows() > 0)
            {
                return $result->row_array();
            }
            else
            {
                return FALSE;
            }
        }

        function insert_log($user, $cve = 'IN')
        {
            $this->load->library('user_agent');
            $data_insert['usr_id'] = $user['usr_id'];
            $data_insert['usr_username'] = $user['usr_username'];
            $data_insert['usrlog_accion_cve'] = $cve;
            $data_insert['usrlog_acceso_f'] = date('Y-m-d H:i:s');
            $data_insert['usrlog_acceso_ip'] = $this->input->ip_address();
            if ($this->agent->is_browser())
                $data_insert['usrlog_navegador'] = $this->agent->browser().' '.$this->agent->version();
            if ($this->agent->is_robot())
                $data_insert['usrlog_navegador'] = $this->agent->robot();
            if ($this->agent->is_mobile())
                $data_insert['usrlog_navegador'] = $this->agent->mobile();
            $data_insert['usrlog_os'] = $this->agent->platform();
            $data_insert['usrlog_agente'] = $this->agent->agent_string();
            
            //solo en el login recibe el tamaño de pantalla
            if($cve == 'IN')
            {
                $params = base64_decode($this->input->post('res'));
                foreach (explode('&', $params) as $opt) {
                    $param = explode("=", $opt);
                    if ($param) {
                        $data_insert[urldecode($param[0])] = urldecode($param[1]);
                    }
                }
            }
            $this->db->insert('sis25_usuarios_log',$data_insert);
            return $this->db->insert_id();
        }
        
        function update_user($usr_id, $data_usr)
        {
            $data = array_merge($data_usr, log_update('restore password'));
            $this->db->where('usr_id',$usr_id);
            return $this->db->update('sis20_usuarios',$data);
        }
}
