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

class Transportista_model extends CI_Model {

    public function listar() {
        return $this->db
            ->select('t.*, e.nombre as entidad_emisora_nombre')
            ->from('mt_transportista t')
            ->join('mt_entidad_emisora e', 'e.id = t.entidad_emisora_id')
            ->order_by('t.id', 'DESC')
            ->get()
            ->result();
    }

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

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

    public function actualizar($id, $data) {
        return $this->db
            ->where('id', $id)
            ->update('mt_transportista', $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_transportista', $data);
    }

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

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

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

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

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

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

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

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