<div class="content-wrapper">
    <section class="content-header">
        <h1>Nuevo Parte de Salida</h1>
    </section>

    <section class="content">
        <div class="row">
            <div class="col-md-12">
                <div class="panel panel-primary">
                    <div class="panel-heading"><strong>Registro de Parte de Salida</strong></div>
                    <div class="panel-body">

                        <?php echo validation_errors('<div class="alert alert-danger">', '</div>'); ?>

                        <form id="formPS" method="post" action="<?php echo base_url('index.php/logistica/parte_salida/store'); ?>">

                            <input type="hidden" name="cliente_id" id="cliente_id">

                            <!-- FILA 1: Tipo / Fecha / Almacén -->
                            <div class="row">
                                <div class="col-md-3 form-group">
                                    <label>Tipo de salida <span class="text-danger">*</span></label>
                                    <select name="tiposalida" id="tiposalida" class="form-control" required>
                                        <option value="">Seleccione</option>
                                        <option value="M">M - Muestra</option>
                                        <option value="C">C - Consumo interno</option>
                                        <option value="A">A - Traslado entre almacenes</option>
                                    </select>
                                </div>
                                <div class="col-md-2 form-group">
                                    <label>Fecha <span class="text-danger">*</span></label>
                                    <input type="date" name="fecha" class="form-control"
                                           value="<?php echo date('Y-m-d'); ?>" required>
                                </div>
                                <div class="col-md-3 form-group">
                                    <label>Almacén <span class="text-danger">*</span></label>
                                    <select name="almacen_id" id="almacen_id" class="form-control" required>
                                        <option value="">Seleccione</option>
                                        <?php foreach($almacenes as $item): ?>
                                            <option value="<?php echo $item->id; ?>">
                                                <?php echo $item->nombre; ?>
                                            </option>
                                        <?php endforeach; ?>
                                    </select>
                                </div>
                            </div>

                            <!-- FILA 2: Cliente (solo VENTA) / Empleado (solo CONSUMO) -->
                            <div class="row" id="bloqueCliente" style="display:none;">
                                <div class="col-md-5 form-group">
                                    <label>Cliente <span class="text-danger">*</span></label>
                                    <input type="text" id="cliente_busqueda" class="form-control"
                                           placeholder="Buscar por razón social o RUC" autocomplete="off">
                                </div>
                                <div class="col-md-3 form-group">
                                    <label>RUC / Documento</label>
                                    <input type="text" id="cliente_documento" class="form-control" readonly>
                                </div>
                            </div>

                            <div class="row" id="bloqueEmpleado" style="display:none;">
                                <div class="col-md-5 form-group">
                                    <label>Empleado solicitante <span class="text-danger">*</span></label>
                                    <select name="empleado_id" id="empleado_id" class="form-control">
                                        <option value="">Seleccione</option>
                                        <?php foreach($empleados as $item): ?>
                                            <option value="<?php echo $item->id; ?>">
                                                <?php echo $item->apellidos . ' ' . $item->nombres; ?>
                                            </option>
                                        <?php endforeach; ?>
                                    </select>
                                </div>
                            </div>

                            <hr>

                            <!-- BÚSQUEDA PRODUCTO -->
                            <div class="row">
                                <div class="col-md-4 form-group">
                                    <label>Agregar producto</label>
                                    <input type="text" id="producto_busqueda" class="form-control"
                                           placeholder="Buscar por código o nombre" autocomplete="off">
                                </div>
                            </div>

                            <!-- TABLA DETALLE -->
                            <div class="table-responsive">
                                <table class="table table-bordered table-hover table-striped" id="tablaDetalle">
                                    <thead>
                                        <tr>
                                            <th style="width:90px;">Código</th>
                                            <th>Descripción</th>
                                            <th style="width:70px;">Und.</th>
                                            <th style="width:80px;">Stock</th>
                                            <th style="width:100px;">Cantidad</th>
                                            <th style="width:120px;">Precio Unit.</th>
                                            <th style="width:110px;">Subtotal</th>
                                            <th style="width:45px;">Acc.</th>
                                        </tr>
                                    </thead>
                                    <tbody></tbody>
                                    <tfoot>
                                        <tr>
                                            <th colspan="6" class="text-right">Total</th>
                                            <th><input type="text" id="ps_total" class="form-control text-right" value="0.00" readonly></th>
                                            <th></th>
                                        </tr>
                                    </tfoot>
                                </table>
                            </div>

                            <!-- OBSERVACIONES -->
                            <div class="row">
                                <div class="col-md-12 form-group">
                                    <label>Observaciones</label>
                                    <textarea name="observaciones" class="form-control" rows="2"></textarea>
                                </div>
                            </div>

                            <button type="submit" class="btn btn-primary">
                                <i class="fa fa-save"></i> Guardar Parte de Salida
                            </button>
                            <a href="<?php echo base_url('index.php/logistica/parte_salida'); ?>" class="btn btn-default">
                                Cancelar
                            </a>

                        </form>
                    </div>
                </div>
            </div>
        </div>
    </section>
</div>

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

    var filaIndex = 0;

    function redondear(num, dec) {
        return parseFloat(parseFloat(num).toFixed(dec));
    }

    function recalcularTotal() {
        var suma = 0;
        $('#tablaDetalle tbody tr').each(function() {
            suma += parseFloat($(this).find('.item-subtotal').val() || 0);
        });
        $('#ps_total').val(redondear(suma, 2).toFixed(2));
    }

    function recalcularFila($fila) {
        var cantidad = parseFloat($fila.find('.item-cantidad').val() || 0);
        var precio   = parseFloat($fila.find('.item-precio').val() || 0);
        var subtotal = redondear(cantidad * precio, 2);
        $fila.find('.item-subtotal').val(subtotal.toFixed(2));
        recalcularTotal();
    }

    function agregarFila(producto) {
        var idx = filaIndex++;
        var html = '<tr data-producto-id="' + producto.id + '" data-stock="' + producto.cantidad_stock + '">';
        html += '<td>';
        html += '<input type="hidden" name="detalle[' + idx + '][producto_id]" value="' + producto.id + '">';
        html += '<input type="text" class="form-control input-sm" value="' + producto.codigo + '" readonly>';
        html += '</td>';
        html += '<td><input type="text" name="detalle[' + idx + '][detalle]" class="form-control input-sm" value="' + (producto.nombre || '') + '"></td>';
        html += '<td><input type="text" class="form-control input-sm" value="' + (producto.unidad_abreviado || '') + '" readonly></td>';
        html += '<td class="text-center"><span class="label label-info">' + parseFloat(producto.cantidad_stock || 0).toFixed(2) + '</span></td>';
        html += '<td><input type="number" step="0.01" min="0.01" name="detalle[' + idx + '][cantidad]" class="form-control input-sm item-cantidad" value="1"></td>';
        html += '<td><input type="number" step="0.0001" min="0" name="detalle[' + idx + '][precio_unitario]" class="form-control input-sm item-precio" value="' + (producto.precio_unidad || '0.0000') + '"></td>';
        html += '<td><input type="text" name="detalle[' + idx + '][subtotal]" class="form-control input-sm item-subtotal text-right" value="0.00" readonly></td>';
        html += '<td class="text-center"><button type="button" class="btn btn-danger btn-xs btn-eliminar"><i class="fa fa-trash"></i></button></td>';
        html += '</tr>';

        $('#tablaDetalle tbody').append(html);
        recalcularFila($('#tablaDetalle tbody tr').last());
    }

    // Mostrar/ocultar bloques según tipo de salida
    $('#tiposalida').on('change', function() {
        var tipo = $(this).val();
        $('#bloqueCliente').hide();
        $('#bloqueEmpleado').hide();
        if (tipo == 'V') $('#bloqueCliente').show();
        if (tipo == 'C') $('#bloqueEmpleado').show();
    });

    // Autocomplete cliente
    $('#cliente_busqueda').autocomplete({
        source: function(request, response) {
            $.ajax({
                url: '<?php echo base_url("index.php/logistica/parte_salida/buscar_cliente"); ?>',
                dataType: 'json',
                data: { term: request.term },
                success: function(data) { response(data); }
            });
        },
        minLength: 2,
        select: function(event, ui) {
            $('#cliente_id').val(ui.item.id);
            $('#cliente_busqueda').val(ui.item.razon_social);
            $('#cliente_documento').val(ui.item.nro_documento);
            return false;
        }
    });

    // Autocomplete producto (incluye stock del almacén seleccionado)
    $('#producto_busqueda').autocomplete({
        source: function(request, response) {
            $.ajax({
                url: '<?php echo base_url("index.php/logistica/parte_salida/buscar_producto"); ?>',
                dataType: 'json',
                data: { term: request.term, almacen_id: $('#almacen_id').val() },
                success: function(data) { response(data); }
            });
        },
        minLength: 2,
        select: function(event, ui) {
            var existe = false;
            $('#tablaDetalle tbody tr').each(function() {
                if ($(this).data('producto-id') == ui.item.id) { existe = true; }
            });
            if (existe) {
                Swal.fire({ icon: 'warning', title: 'Atención', text: 'El producto ya fue agregado' });
                $('#producto_busqueda').val('');
                return false;
            }
            agregarFila(ui.item);
            $('#producto_busqueda').val('');
            return false;
        }
    });

    // Recalcular al cambiar cantidad o precio
    $(document).on('input', '.item-cantidad, .item-precio', function() {
        var $fila   = $(this).closest('tr');
        var stock   = parseFloat($fila.data('stock') || 0);
        var cantidad = parseFloat($fila.find('.item-cantidad').val() || 0);

        if (cantidad > stock) {
            Swal.fire({ icon: 'warning', title: 'Stock insuficiente', text: 'La cantidad supera el stock disponible (' + stock.toFixed(2) + ')' });
            $fila.find('.item-cantidad').val(stock);
        }
        recalcularFila($fila);
    });

    // Eliminar fila
    $(document).on('click', '.btn-eliminar', function() {
        $(this).closest('tr').remove();
        recalcularTotal();
    });

    // Validar al enviar
    $('#formPS').on('submit', function(e) {
        var tipo = $('#tiposalida').val();

        if (tipo == 'V' && $('#cliente_id').val() === '') {
            e.preventDefault();
            Swal.fire({ icon: 'warning', title: 'Atención', text: 'Debes seleccionar un cliente' });
            return false;
        }
        if (tipo == 'C' && $('#empleado_id').val() === '') {
            e.preventDefault();
            Swal.fire({ icon: 'warning', title: 'Atención', text: 'Debes seleccionar el empleado' });
            return false;
        }
        if ($('#tablaDetalle tbody tr').length === 0) {
            e.preventDefault();
            Swal.fire({ icon: 'warning', title: 'Atención', text: 'Debes agregar al menos un producto' });
            return false;
        }
    });

});
</script>
