HEX
Server: Apache/2.4.58 (Ubuntu)
System: Linux Bradford-Sitios 6.14.0-1017-azure #17~24.04.1-Ubuntu SMP Mon Dec 1 20:10:50 UTC 2025 x86_64
User: www-data (33)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/gestor-horarios.bradford/app/models/trabajadores_model.php
<?php
defined('BASEPATH') or exit('No direct script access allowed');

class Trabajadores_model extends CI_Model
{

	public function getTrabajadores($where = array(), $select = '')
	{
		$select = trim($select);
		if (!empty($select)) {
			$this->db->select($select);
		}
		if (!empty($where)) {
			$this->db->where($where);
		} else {
			$this->db->where("eliminado", 0);
		}
		$this->db->from("trabajadores");
		$this->db->order_by("nombres", "asc");
		$resultado = $this->db->get();
		return $resultado->result();
	}
	public function getPerfiles($where = array())
	{
		if (!empty($where)) {
			$this->db->where($where);
		}
		$this->db->from("perfiles");
		$this->db->order_by("nombre", "asc");
		$resultado = $this->db->get();
		return $resultado->result();
	}



	public function getTrabajador($id)
	{
		$this->db->where("id", $id);
		$resultado = $this->db->get("trabajadores");
		return $resultado->row();
	}
	public function getTrabajadorWhere($where, $select = '')
	{
		$select = trim($select);
		if (!empty($select)) {
			$this->db->select($select);
		}
		$this->db->where($where);
		$resultado = $this->db->get("trabajadores");
		return $resultado->row();
	}

	public function buscaEmail($email, $where)
	{
		$this->db->from("trabajadores");
		$this->db->where($where);
		$this->db->like("email", "$email");
		$results = $this->db->get();
		return $results->row();
	}


	public function update($data, $id)
	{
		$this->db->where("id", $id);
		return $this->db->update("trabajadores", $data);
	}

	public function delete($data, $where)
	{
		$this->db->where($where);
		return $this->db->update("trabajadores", $data);
	}


	public function insert($data)
	{
		$insert = $this->db->insert('trabajadores', $data);
		if ($insert) {
			return $this->db->insert_id();
		} else {
			return false;
		}
	}



	public function getTrabajadoresInfo($where, $resultado_tipo = '')
	{
		if (!empty($where)) {
			$where = 'WHERE ' . $where;
		} else {
			$where = 'WHERE eliminado = 0';
		}
		$query = $this->db->query("SELECT t.id, t.nombres, t.apellido_p, t.apellido_m, t.fecha_nacimiento,
									t.sexo, t.nacionalidad, t.es_jefe, t.jefe_id,
									CONCAT(IFNULL(t.nombres,'N/A'), ' ', t.apellido_p, ' ', t.apellido_m) AS nombre_evaludor,
									CASE WHEN t.jefe_id > 0 THEN CONCAT(IFNULL(j.nombres,'N/A'), ' ', j.apellido_p, ' ', j.apellido_m)
										ELSE 'N/A' 
									END AS nombre_jefe, UPPER(u.nombre) AS nom_area, UPPER(c.nombre) AS cargo, UPPER(s.nombre) AS sucusal
									FROM trabajadores t 			
									LEFT JOIN unidades u ON t.unidades_id = u.id	
									LEFT JOIN trabajadores j ON t.jefe_id = j.id									 
									LEFT JOIN cargos c ON t.cargos_id = c.id		
									LEFT JOIN sucursales s ON t.sucursales_id = s.id			
									$where");
		if (trim(strtolower($resultado_tipo)) == 'row') {
			return $query->row();
		} else {
			return $query->result();
		}
	}
}