<div class="content-wrapper">
    <section class="content-header">
        <h1>Actualización de Precios</h1>
    </section>

    <section class="content">

        <!-- INFO DEL CRITERIO -->
        <div class="row">
            <div class="col-md-12">
                <div class="alert alert-info" style="margin-bottom:10px;">
                    <i class="fa fa-info-circle"></i>
                    Editá el <strong>Precio Base (100 unid.)</strong> de cada producto — el sistema calcula
                    automáticamente los precios para 1, 12, 25 y 50 unidades. El precio para 1000 unidades
                    (Millar) no se modifica.
                </div>
            </div>
        </div>

        <!-- FILTROS -->
        <div class="row" style="margin-bottom:5px !important; height: 45px;">
            <div class="col-md-12">
                <div class="panel panel-primary">
                    <div class="panel-heading"><strong><i class="fa fa-filter"></i> Filtros</strong></div>
                    <div class="panel-body">
                        <form method="get" action="<?php echo base_url('index.php/almacen/actualizar_precios'); ?>">
                            <div class="row">
                                <div class="col-md-3 form-group">
                                    <label>Categoría</label>
                                    <select name="categoria_id" class="form-control">
                                        <option value="">Todas las categorías</option>
                                        <?php foreach($categorias as $item): ?>
                                            <option value="<?php echo $item->id; ?>"
                                                <?php echo ($categoria_id == $item->id) ? 'selected' : ''; ?>>
                                                <?php echo $item->nombre; ?>
                                            </option>
                                        <?php endforeach; ?>
                                    </select>
                                </div>
                                <div class="col-md-4 form-group">
                                    <label>Buscar (código o nombre)</label>
                                    <input type="text" name="buscar" class="form-control"
                                           value="<?php echo !empty($buscar) ? htmlspecialchars($buscar) : ''; ?>"
                                           placeholder="Ej: CJFL, CAJA ALTA...">
                                </div>
                                <div class="col-md-2 form-group" style="padding-top:25px;">
                                    <button type="submit" class="btn btn-primary">
                                        <i class="fa fa-search"></i> Filtrar
                                    </button>
                                    <a href="<?php echo base_url('index.php/almacen/actualizar_precios'); ?>" class="btn btn-default">
                                        <i class="fa fa-refresh"></i>
                                    </a>
                                </div>
                            </div>
                        </form>
                    </div>
                </div>
            </div>
        </div>

        <!-- TABLA -->
        <div class="row">
            <div class="col-md-12">
                <div class="panel panel-default">
                    <div class="panel-heading">
                        <strong>Listado de productos</strong>
                        <span class="badge pull-right"><?php echo count($productos); ?> productos</span>

                        <button type="button" id="btnGuardarCambios" class="btn btn-success btn-sm pull-right" style="margin-right:10px; display:none;">
                            <i class="fa fa-save"></i> Guardar cambios (<span id="contadorCambios">0</span>)
                        </button>
                    </div>
                    <div class="panel-body">
                        <div class="table-responsive">
                            <table id="tablaPrecios" class="table table-bordered table-hover table-striped">
                                <thead>
                                    <tr class="text-center">
                                        <th>Código</th>
                                        <th>Producto</th>
                                        <th>Categoría</th>
                                        <th style="width:90px;">P. Unidad<br><small class="text-muted">(1)</small></th>
                                        <th style="width:90px;">P. Docena<br><small class="text-muted">(12)</small></th>
                                        <th style="width:90px;">P. 25<br><small class="text-muted">unid.</small></th>
                                        <th style="width:90px;">P. 50<br><small class="text-muted">unid.</small></th>
                                        <th style="width:110px; background:#fcf3cf;">P. Base<br><small class="text-muted">(100) — editable</small></th>
                                        <th style="width:90px;">P. Millar<br><small class="text-muted">(1000)</small></th>
                                    </tr>
                                </thead>
                                <tbody>
                                    <?php foreach($productos as $item): ?>
                                        <tr data-id="<?php echo $item->id; ?>">
                                            <td><?php echo $item->codigo; ?></td>
                                            <td><?php echo $item->nombre; ?></td>
                                            <td><?php echo $item->categoria ?? '-'; ?></td>
                                            <td class="text-right valor-unidad"><?php echo number_format((float)$item->precio_unidad, 4); ?></td>
                                            <td class="text-right valor-doce"><?php echo number_format((float)$item->precio_doce, 4); ?></td>
                                            <td class="text-right valor-veinticinco"><?php echo number_format((float)$item->precio_veinticinco, 4); ?></td>
                                            <td class="text-right valor-cincuenta"><?php echo number_format((float)$item->precio_cincuenta, 4); ?></td>
                                            <td style="background:#fdfaf0;">
                                                <input type="text"
                                                       class="form-control input-sm input-precio-base text-right"
                                                       data-original="<?php echo number_format((float)$item->precio_cien, 4, '.', ''); ?>"
                                                       value="<?php echo number_format((float)$item->precio_cien, 4); ?>">
                                            </td>
                                            <td class="text-right"><?php echo number_format((float)$item->precio_millar, 4); ?></td>
                                        </tr>
                                    <?php endforeach; ?>
                                </tbody>
                            </table>
                        </div>
                    </div>
                </div>
            </div>
        </div>

    </section>
</div>

<style>
.fila-modificada { background-color: #fcf8e3 !important; }
.input-precio-base.modificado { border-color: #f0ad4e; font-weight: bold; }
</style>

<script>
window.addEventListener('load', function () {

    var URL_CALCULAR = '<?php echo base_url("index.php/almacen/actualizar_precios/calcular"); ?>';
    var URL_GUARDAR  = '<?php echo base_url("index.php/almacen/actualizar_precios/guardar"); ?>';

    var tabla = $('#tablaPrecios').DataTable({
        language: {
            lengthMenu:   "Mostrar _MENU_ registros",
            zeroRecords:  "No se encontraron productos",
            info:         "Mostrando _START_ al _END_ de _TOTAL_ registros",
            infoEmpty:    "Sin registros",
            infoFiltered: "(filtrado de _MAX_ registros)",
            search:       "Buscar:",
            paginate: { first: "Primero", last: "Último", next: "Siguiente", previous: "Anterior" }
        },
        pageLength: 25,
        order: [[1, 'asc']],
        columnDefs: [
            { orderable: false, targets: [3,4,5,6,7,8] }
        ]
    });

    function actualizarContador() {
        var n = $('.input-precio-base.modificado').length;
        $('#contadorCambios').text(n);
        $('#btnGuardarCambios').toggle(n > 0);
    }

    // Recalcular en vivo al cambiar el precio base
    $('#tablaPrecios tbody').on('change keyup', '.input-precio-base', function() {
        var $input = $(this);
        var $row   = $input.closest('tr');
        var valor  = parseFloat($input.val());

        if (isNaN(valor) || valor < 0) return;

        // Marcar como modificado si difiere del original
        var original = parseFloat($input.data('original'));
        if (Math.abs(valor - original) > 0.00001) {
            $input.addClass('modificado');
            $row.addClass('fila-modificada');
        } else {
            $input.removeClass('modificado');
            $row.removeClass('fila-modificada');
        }
        actualizarContador();

        // Pedir cálculo al servidor (misma fórmula que el Excel)
        $.post(URL_CALCULAR, { precio_cien: valor }, function(resp) {
            if (resp.status) {
                $row.find('.valor-unidad').text(parseFloat(resp.precios.precio_unidad).toFixed(4));
                $row.find('.valor-doce').text(parseFloat(resp.precios.precio_doce).toFixed(4));
                $row.find('.valor-veinticinco').text(parseFloat(resp.precios.precio_veinticinco).toFixed(4));
                $row.find('.valor-cincuenta').text(parseFloat(resp.precios.precio_cincuenta).toFixed(4));
            }
        }, 'json');
    });

    // Guardar cambios
    $('#btnGuardarCambios').on('click', function() {
        var cambios = [];

        $('.input-precio-base.modificado').each(function() {
            var $row = $(this).closest('tr');
            cambios.push({
                id: $row.data('id'),
                precio_cien: parseFloat($(this).val())
            });
        });

        if (cambios.length === 0) return;

        Swal.fire({
            title: '¿Guardar cambios?',
            text: 'Se actualizarán los precios de ' + cambios.length + ' producto(s).',
            icon: 'question',
            showCancelButton: true,
            confirmButtonText: 'Sí, guardar',
            cancelButtonText: 'Cancelar'
        }).then(function(result) {
            if (!result.isConfirmed) return;

            $.post(URL_GUARDAR, { cambios: cambios }, function(resp) {
                if (resp.status) {
                    Swal.fire({ icon: 'success', title: '¡Listo!', text: resp.message })
                        .then(function() { location.reload(); });
                } else {
                    Swal.fire({ icon: 'error', title: 'Error', text: resp.message });
                }
            }, 'json');
        });
    });

});
</script>
