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

class EstadoCuentaCliente extends MY_Controller {

    public function __construct() {
        parent::__construct();
        $this->load->model('cobranzas/EstadoCuentaCliente_model');
        $this->load->model('configuracion/Empresa_model');
    }

    public function index() {
        $this->validar_permiso('estado_cuenta_cliente_ver');

        $cliente_id  = $this->input->get('cliente_id', TRUE) ?: null;
        $fecha_desde = $this->input->get('fecha_desde', TRUE) ?: null;
        $fecha_hasta = $this->input->get('fecha_hasta', TRUE) ?: null;

        $cliente      = null;
        $comprobantes = array();
        $totales      = array('total' => 0, 'cobrado' => 0, 'saldo' => 0);

        if ($cliente_id) {
            $cliente      = $this->EstadoCuentaCliente_model->obtener_cliente($cliente_id);
            $comprobantes = $this->EstadoCuentaCliente_model->obtener_comprobantes($cliente_id, $fecha_desde, $fecha_hasta);

            foreach ($comprobantes as &$cp) {
                $cp->cobros       = $this->EstadoCuentaCliente_model->obtener_cobros($cp->id);
                $cp->total_cobrado= (float)$cp->pago_neto - (float)$cp->saldo;
                $totales['total']  += (float)$cp->pago_neto;
                $totales['cobrado']+= $cp->total_cobrado;
                $totales['saldo']  += (float)$cp->saldo;
            }
            unset($cp);
        }

        $data['titulo']        = 'Estado de Cuenta por Cliente';
        $data['clientes']      = $this->EstadoCuentaCliente_model->listar_clientes();
        $data['cliente']       = $cliente;
        $data['cliente_id']    = $cliente_id;
        $data['comprobantes']  = $comprobantes;
        $data['totales']       = $totales;
        $data['fecha_desde']   = $fecha_desde;
        $data['fecha_hasta']   = $fecha_hasta;
        $data['fecha_reporte'] = date('d/m/Y H:i');
        $data['empresa']       = $this->Empresa_model->obtener_activa();

        $this->layout('cobranzas/estado_cuenta_cliente/index', $data);
    }
}