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

class Valorizacion extends MY_Controller {

    public function __construct() {
        parent::__construct();
        $this->load->model('almacen/Valorizacion_model');
    }

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

        $almacen_id  = $this->input->get('almacen_id', TRUE)  ?: null;
        $categoria_id = $this->input->get('categoria_id', TRUE) ?: null;

        $productos = $this->Valorizacion_model->listar($almacen_id, $categoria_id);

        // Agrupar por categoría
        $agrupado = array();
        foreach ($productos as $item) {
            $cat = !empty($item->categoria) ? $item->categoria : 'SIN CATEGORÍA';
            if (!isset($agrupado[$cat])) {
                $agrupado[$cat] = array(
                    'items'    => array(),
                    'subtotal' => 0
                );
            }
            $agrupado[$cat]['items'][]  = $item;
            $agrupado[$cat]['subtotal'] += (float)$item->valor_stock;
        }

        $data['titulo']       = 'Valorización de Inventario';
        $data['almacenes']    = $this->Valorizacion_model->listar_almacenes();
        $data['categorias']   = $this->Valorizacion_model->listar_categorias();
        $data['agrupado']     = $agrupado;
        $data['total_general']= array_sum(array_column($agrupado, 'subtotal'));
        $data['almacen_id']   = $almacen_id;
        $data['categoria_id'] = $categoria_id;
        $data['fecha_reporte']= date('d/m/Y H:i');

        $this->layout('almacen/valorizacion/index', $data);
    }
}
