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

class AntiguedadSaldos_model extends CI_Model {

    public function listar($cliente_id = null, $fecha_corte = null) {
        $fecha_corte = $fecha_corte ?: date('Y-m-d');

        $this->db->select("
            c.id, c.serie, c.numero, c.saldo, c.pago_neto, c.fecha, c.fecvencimiento,
            cl.id as cliente_id,
            cl.razon_social as cliente,
            cl.nro_documento as cliente_ruc,
            tc.nombre as tipo_comprobante,
            m.abreviado as moneda,
            DATEDIFF('" . $this->db->escape_str($fecha_corte) . "', c.fecvencimiento) as dias_vencido
        ", FALSE);
        $this->db->from('vt_comprobante c');
        $this->db->join('vt_cliente cl',          'cl.id = c.cliente_id');
        $this->db->join('mt_tipo_comprobante tc', 'tc.id = c.comprobante_id', 'left');
        $this->db->join('mt_moneda m',            'm.id = c.moneda_id',        'left');
        $this->db->where_in('c.estado_id', array(23, 27));
        $this->db->where('c.saldo >', 0);

        if ($cliente_id) {
            $this->db->where('c.cliente_id', $cliente_id);
        }

        $this->db->order_by('cl.razon_social', 'ASC');
        $this->db->order_by('c.fecvencimiento', 'ASC');

        return $this->db->get()->result();
    }

    public function listar_clientes_con_saldo() {
        return $this->db
            ->select('cl.id, cl.razon_social, cl.nro_documento')
            ->from('vt_comprobante c')
            ->join('vt_cliente cl', 'cl.id = c.cliente_id')
            ->where_in('c.estado_id', array(23, 27))
            ->where('c.saldo >', 0)
            ->group_by('cl.id')
            ->order_by('cl.razon_social', 'ASC')
            ->get()->result();
    }
}
