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

    <section class="content">

        <!-- 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/config_stock'); ?>">
                            <div class="row">
                                <div class="col-md-4 form-group">
                                    <label>Almacén</label>
                                    <select name="almacen_id" class="form-control">
                                        <option value="">Todos los almacenes</option>
                                        <?php foreach($almacenes as $item): ?>
                                            <option value="<?php echo $item->id; ?>"
                                                <?php echo ($almacen_id == $item->id) ? 'selected' : ''; ?>>
                                                <?php echo $item->nombre; ?>
                                            </option>
                                        <?php endforeach; ?>
                                    </select>
                                </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/config_stock'); ?>" class="btn btn-default">
                                        <i class="fa fa-refresh"></i>
                                    </a>
                                </div>
                                <div class="col-md-6 form-group" style="padding-top:25px;">
                                    <div class="alert alert-info" style="margin:0; padding:8px 12px;">
                                        <i class="fa fa-info-circle"></i>
                                        Haz clic en cualquier valor de <strong>Mín.</strong>, <strong>Máx.</strong> o <strong>Reposición</strong> para editarlo directamente.
                                    </div>
                                </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>Productos con stock</strong>
                        <span class="badge pull-right"><?php echo count($productos); ?> productos</span>
                    </div>
                    <div class="panel-body">
                        <div class="table-responsive">
                            <table id="tablaConfigStock" class="table table-bordered table-hover table-striped">
                                <thead>
                                    <tr>
                                        <th>Código</th>
                                        <th>Producto</th>
                                        <th>Categoría</th>
                                        <th>Almacén</th>
                                        <th class="text-center">Und.</th>
                                        <th class="text-right">Stock Actual</th>
                                        <th class="text-right" style="background:#fdf2f8;">
                                            Stock Mín. <i class="fa fa-pencil text-muted"></i>
                                        </th>
                                        <th class="text-right" style="background:#fdf2f8;">
                                            Stock Máx. <i class="fa fa-pencil text-muted"></i>
                                        </th>
                                        <th class="text-right" style="background:#fdf2f8;">
                                            P. Reposición <i class="fa fa-pencil text-muted"></i>
                                        </th>
                                        <th class="text-right">P. Promedio</th>
                                    </tr>
                                </thead>
                                <tbody>
                                    <?php foreach($productos as $item): ?>
                                        <tr>
                                            <td><?php echo $item->codigo; ?></td>
                                            <td><?php echo $item->producto; ?></td>
                                            <td><?php echo $item->categoria ?? '-'; ?></td>
                                            <td><?php echo $item->almacen; ?></td>
                                            <td class="text-center"><?php echo $item->unidad ?? '-'; ?></td>
                                            <td class="text-right">
                                                <strong><?php echo number_format((float)$item->cantidad_stock, 2); ?></strong>
                                            </td>

                                            <!-- STOCK MÍNIMO - editable -->
                                            <td class="text-right celda-editable"
                                                data-id="<?php echo $item->id; ?>"
                                                data-campo="cantidad_minima"
                                                data-valor="<?php echo (float)$item->cantidad_minima; ?>"
                                                style="cursor:pointer; background:#fdf2f8;">
                                                <span class="valor-display">
                                                    <?php echo number_format((float)$item->cantidad_minima, 2); ?>
                                                </span>
                                            </td>

                                            <!-- STOCK MÁXIMO - editable -->
                                            <td class="text-right celda-editable"
                                                data-id="<?php echo $item->id; ?>"
                                                data-campo="cantidad_maxima"
                                                data-valor="<?php echo (float)$item->cantidad_maxima; ?>"
                                                style="cursor:pointer; background:#fdf2f8;">
                                                <span class="valor-display">
                                                    <?php echo number_format((float)$item->cantidad_maxima, 2); ?>
                                                </span>
                                            </td>

                                            <!-- PUNTO REPOSICIÓN - editable -->
                                            <td class="text-right celda-editable"
                                                data-id="<?php echo $item->id; ?>"
                                                data-campo="cantidad_reposicion"
                                                data-valor="<?php echo (float)$item->cantidad_reposicion; ?>"
                                                style="cursor:pointer; background:#fdf2f8;">
                                                <span class="valor-display">
                                                    <?php echo number_format((float)$item->cantidad_reposicion, 2); ?>
                                                </span>
                                            </td>

                                            <td class="text-right">
                                                <?php echo number_format((float)$item->precio_promedio, 4); ?>
                                            </td>
                                        </tr>
                                    <?php endforeach; ?>
                                </tbody>
                            </table>
                        </div>
                    </div>
                </div>
            </div>
        </div>

    </section>
</div>

<style>
.celda-editable:hover {
    background: #e8d5f0 !important;
}
.celda-editable input {
    width: 90px;
    text-align: right;
    border: 2px solid #3c8dbc;
    border-radius: 3px;
    padding: 2px 5px;
}
</style>

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

    $('#tablaConfigStock').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: [6, 7, 8] }
        ]
    });

    // EDICIÓN INLINE - clic en celda editable
    $(document).on('click', '.celda-editable', function() {
        var $celda = $(this);

        // Si ya hay un input activo, ignorar
        if ($celda.find('input').length > 0) return;

        var id     = $celda.data('id');
        var campo  = $celda.data('campo');
        var valor  = $celda.data('valor');

        // Reemplazar el span por un input
        $celda.find('.valor-display').hide();
        $celda.append(
            '<input type="number" step="0.01" min="0" class="input-inline" value="' + valor + '">'
        );
        $celda.find('input').focus().select();
    });

    // Guardar al presionar Enter o perder foco
    $(document).on('keydown blur', '.input-inline', function(e) {
        if (e.type === 'keydown' && e.which !== 13 && e.which !== 27) return;

        var $input = $(this);
        var $celda = $input.closest('.celda-editable');
        var id     = $celda.data('id');
        var campo  = $celda.data('campo');

        // ESC - cancelar
        if (e.type === 'keydown' && e.which === 27) {
            $input.remove();
            $celda.find('.valor-display').show();
            return;
        }

        var nuevoValor = parseFloat($input.val() || 0);

        if (isNaN(nuevoValor) || nuevoValor < 0) {
            Swal.fire({ icon: 'warning', title: 'Valor inválido', text: 'Ingresa un número mayor o igual a 0' });
            $input.focus();
            return;
        }

        // Guardar via AJAX
        $.ajax({
            url: '<?php echo base_url("index.php/almacen/config_stock/actualizar"); ?>',
            type: 'POST',
            data: { id: id, campo: campo, valor: nuevoValor },
            dataType: 'json',
            success: function(resp) {
                if (resp.status) {
                    // Actualizar valor en la celda
                    $celda.data('valor', nuevoValor);
                    $celda.find('.valor-display').text(nuevoValor.toFixed(2)).show();
                    $input.remove();

                    // Feedback visual breve
                    $celda.css('background', '#dff0d8');
                    setTimeout(function() {
                        $celda.css('background', '#fdf2f8');
                    }, 800);
                } else {
                    Swal.fire({ icon: 'error', title: 'Error', text: resp.message });
                    $input.focus();
                }
            },
            error: function() {
                Swal.fire({ icon: 'error', title: 'Error', text: 'No se pudo guardar el cambio' });
                $input.focus();
            }
        });
    });

});
</script>
