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

class Conductor_model extends CI_Model {

    public function listar() {
        return $this->db
            ->select('c.*, d.nombre as documento_nombre, d.abreviado, d.codigo_sunat')
            ->from('mt_conductor c')
            ->join('mt_documento_identidad d', 'd.id = c.documento_identidad_id')
            ->order_by('c.id', 'DESC')
            ->get()
            ->result();
    }

    public function insertar($data) {
        return $this->db->insert('mt_conductor', $data);
    }

    public function obtener($id) {
        return $this->db
            ->where('id', $id)
            ->get('mt_conductor')
            ->row();
    }

    public function actualizar($id, $data) {
        return $this->db
            ->where('id', $id)
            ->update('mt_conductor', $data);
    }

    public function cambiarEstado($id, $estado, $usuario_id = null) {
        $data = array(
            'estado' => $estado,
            'updated_at' => date('Y-m-d H:i:s'),
            'updated_by' => $usuario_id
        );

        return $this->db
            ->where('id', $id)
            ->update('mt_conductor', $data);
    }

    public function listar_documentos() {
        return $this->db
            ->where('estado', 1)
            ->order_by('id', 'ASC')
            ->get('mt_documento_identidad')
            ->result();
    }

    public function existe_licencia($nro_licencia, $id = null) {
        $this->db->where('nro_licencia', $nro_licencia);

        if ($id !== null) {
            $this->db->where('id !=', $id);
        }

        return $this->db->get('mt_conductor')->num_rows() > 0;
    }

    public function existe_documento($nro_documento, $id = null) {
        $this->db->where('nro_documento', $nro_documento);

        if ($id !== null) {
            $this->db->where('id !=', $id);
        }

        return $this->db->get('mt_conductor')->num_rows() > 0;
    }

    public function obtener_documento_identidad($id) {
        return $this->db
            ->where('id', $id)
            ->where('estado', 1)
            ->get('mt_documento_identidad')
            ->row();
    }
}