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

class Banco_cuenta_model extends CI_Model {

    public function listar_por_banco($banco_id) {
        return $this->db
            ->select('
                bc.*,
                b.nombre as banco_nombre,
                m.nombre as moneda_nombre,
                m.abreviado as moneda_abreviado,
                pc.codigo as plan_codigo,
                pc.nombre as plan_nombre
            ')
            ->from('mt_banco_cuenta bc')
            ->join('mt_banco b', 'b.id = bc.banco_id')
            ->join('mt_moneda m', 'm.id = bc.moneda_id', 'left')
            ->join('mt_plan_contable pc', 'pc.id = bc.plancontable_id', 'left')
            ->where('bc.banco_id', $banco_id)
            ->order_by('bc.id', 'DESC')
            ->get()
            ->result();
    }

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

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

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

    public function listar_monedas() {
        return $this->db
            ->where('estado', 1)
            ->order_by('nombre', 'ASC')
            ->get('mt_moneda')
            ->result();
    }

    public function listar_planes_contables() {
        return $this->db
            ->where('estado', 1)
            ->order_by('codigo', 'ASC')
            ->get('mt_plan_contable')
            ->result();
    }

    public function listar_activas_para_impresion() {
        return $this->db
            ->select('
                bc.*,
                b.nombre as banco_nombre,
                m.nombre as moneda_nombre,
                m.abreviado as moneda_abreviado
            ')
            ->from('mt_banco_cuenta bc')
            ->join('mt_banco b', 'b.id = bc.banco_id')
            ->join('mt_moneda m', 'm.id = bc.moneda_id', 'left')
            ->where('bc.estado', 1)
            ->order_by('b.nombre', 'ASC')
            ->order_by('bc.descripcion', 'ASC')
            ->get()
            ->result();
    }
}