<div class="content-wrapper">
    <section class="content-header">
        <h1>Nuevo Anticipo desde Orden de Pedido</h1>
    </section>

    <section class="content">
        <div class="row">
            <div class="col-md-12">

                <?php if($this->session->flashdata('error')): ?>
                    <div class="alert alert-danger"><?php echo $this->session->flashdata('error'); ?></div>
                <?php endif; ?>

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

                <form method="post" action="<?php echo base_url('index.php/ventas/comprobante/store_anticipo_desde_orden/'.$orden->id); ?>" id="formAnticipo">

                    <div class="box box-default">
                        <div class="box-header with-border">
                            <h3 class="box-title">1. Datos del anticipo</h3>
                        </div>
                        <div class="box-body">

                            <input type="hidden" id="igv_porcentaje" value="<?php echo (float)$tributo_igv->valor_porcentual; ?>">
                            <input type="hidden" id="igv_modo" value="<?php echo (int)$tributo_igv->modo; ?>">
                            <input type="hidden" id="cliente_tiene_retencion" value="<?php echo !empty($retencion_cliente) ? 1 : 0; ?>">
                            <input type="hidden" id="cliente_retencion_porcentaje" value="<?php echo !empty($retencion_cliente) ? (float)$retencion_cliente->porcentaje : 0; ?>">
                            <input type="hidden" id="cliente_retencion_monto_minimo" value="<?php echo !empty($retencion_cliente) ? (float)$retencion_cliente->monto_minimo : 0; ?>">

                            <div class="row">
                                <div class="col-md-3">
                                    <div class="form-group">
                                        <label>Tipo de comprobante</label>
                                        <select name="comprobante_id" id="comprobante_id" class="form-control" required>
                                            <option value="">Seleccione...</option>
                                            <?php foreach($tipos_comprobante as $item): ?>
                                                <option value="<?php echo $item->id; ?>">
                                                    <?php echo $item->nombre; ?>
                                                </option>
                                            <?php endforeach; ?>
                                        </select>
                                    </div>
                                </div>

                                <div class="col-md-3">
                                    <div class="form-group">
                                        <label>Fecha</label>
                                        <input type="datetime-local" name="fecha" class="form-control" required>
                                    </div>
                                </div>

                                <div class="col-md-3">
                                    <div class="form-group">
                                        <label>Forma de pago</label>
                                        <select name="fp_id" id="fp_id" class="form-control" required disabled>
                                            <option value="">Seleccione...</option>
                                            <?php foreach($formas_pago as $item): ?>
                                                <option value="<?php echo $item->id; ?>"
                                                        data-codigo="<?php echo strtoupper($item->codigo); ?>"
                                                        data-nombre="<?php echo strtoupper($item->nombre); ?>"
                                                        <?php echo ((int)$orden->fp_id === (int)$item->id) ? 'selected' : ''; ?>>
                                                    <?php echo $item->nombre; ?>
                                                </option>
                                            <?php endforeach; ?>
                                        </select>
                                    </div>
                                </div>

                                <div class="col-md-3">
                                    <div class="form-group">
                                        <label>Monto anticipo</label>
                                        <input type="number" step="0.01" min="0.01" name="monto_anticipo" id="monto_anticipo" class="form-control" required>
                                    </div>
                                </div>
                            </div>

                            <div class="row">
                                <div class="col-md-12">
                                    <?php if((int)$tributo_igv->modo === 1): ?>
                                        <div class="alert alert-info" style="padding:8px 12px; margin-bottom:10px;">
                                            LOS PRECIOS INCLUYEN IGV
                                        </div>
                                    <?php else: ?>
                                        <div class="alert alert-warning" style="padding:8px 12px; margin-bottom:10px;">
                                            LOS PRECIOS NO INCLUYEN IGV
                                        </div>
                                    <?php endif; ?>
                                </div>
                            </div>

                            <div class="row">
                                <div class="col-md-6">
                                    <div class="form-group">
                                        <label>Cliente</label>
                                        <input type="text" class="form-control" value="<?php echo $orden->nro_documento . ' - ' . $orden->razon_social; ?>" readonly>
                                    </div>
                                </div>

                                <div class="col-md-2">
                                    <div class="form-group">
                                        <label>Moneda</label>
                                        <input type="text" class="form-control" value="<?php echo $orden->moneda_nombre; ?>" readonly>
                                    </div>
                                </div>

                                <div class="col-md-4">
                                    <div class="form-group">
                                        <label>Vendedor</label>
                                        <input type="text" class="form-control" value="<?php echo $orden->vendedor_nombre; ?>" readonly>
                                    </div>
                                </div>
                            </div>

                            <div class="form-group">
                                <label>Observaciones</label>
                                <textarea name="observaciones" class="form-control" rows="3">ANTICIPO SEGUN ORDEN DE PEDIDO N° <?php echo $orden->id; ?></textarea>
                            </div>

                        </div>
                    </div>

                    <div class="box box-default">
                        <div class="box-header with-border">
                            <h3 class="box-title">2. Resumen</h3>
                        </div>
                        <div class="box-body">
                            <div class="row">
                                <div class="col-md-4">
                                    <div class="alert alert-info">
                                        <strong>Total de la Orden:</strong><br>
                                        <?php echo number_format((float)$orden->orp_total, 2); ?>
                                    </div>
                                </div>
                                <div class="col-md-4">
                                    <div class="alert alert-warning">
                                        <strong>Anticipos Registrados:</strong><br>
                                        <?php echo number_format((float)$total_anticipos, 2); ?>
                                    </div>
                                </div>
                                <div class="col-md-4">
                                    <div class="alert alert-success">
                                        <strong>Saldo Referencial:</strong><br>
                                        <?php echo number_format((float)$orden->orp_total - (float)$total_anticipos, 2); ?>
                                    </div>
                                </div>
                            </div>

                            <?php if (!empty($anticipos)): ?>
                                <div class="table-responsive">
                                    <table class="table table-bordered table-striped">
                                        <thead>
                                            <tr>
                                                <th>Comprobante</th>
                                                <th>Fecha</th>
                                                <th>Monto Aplicado</th>
                                            </tr>
                                        </thead>
                                        <tbody>
                                            <?php foreach($anticipos as $a): ?>
                                                <tr>
                                                    <td><?php echo $a->serie . '-' . $a->numero; ?></td>
                                                    <td><?php echo $a->fecha; ?></td>
                                                    <td class="text-right"><?php echo number_format((float)$a->monto_aplicado, 2); ?></td>
                                                </tr>
                                            <?php endforeach; ?>
                                        </tbody>
                                    </table>
                                </div>
                            <?php endif; ?>

                            <div class="row">
                                <div class="col-md-3 col-md-offset-9">
                                    <table class="table table-bordered">
                                        <tr>
                                            <th>Subtotal</th>
                                            <td><input type="text" id="resumen_subtotal" class="form-control text-right" readonly value="0.00"></td>
                                        </tr>
                                        <tr>
                                            <th>IGV</th>
                                            <td><input type="text" id="resumen_igv" class="form-control text-right" readonly value="0.00"></td>
                                        </tr>
                                        <tr>
                                            <th>Total</th>
                                            <td><input type="text" id="resumen_total" class="form-control text-right" readonly value="0.00"></td>
                                        </tr>
                                        <tr>
                                            <th>Pago Neto</th>
                                            <td><input type="text" id="resumen_pago_neto" class="form-control text-right" readonly value="0.00"></td>
                                        </tr>
                                    </table>
                                </div>
                            </div>
                        </div>
                    </div>

                    <div class="box box-default" id="bloqueRetencion" style="display:none;">
                        <div class="box-header with-border">
                            <h3 class="box-title">Retención</h3>
                        </div>
                        <div class="box-body">
                            <div class="row">
                                <div class="col-md-6">
                                    <table class="table table-bordered">
                                        <tr>
                                            <th>Base imponible de la Retención</th>
                                            <td><input type="text" id="retencion_base" class="form-control text-right" readonly value="0.00"></td>
                                        </tr>
                                        <tr>
                                            <th>Porcentaje de Retención</th>
                                            <td><input type="text" id="retencion_porcentaje_texto" class="form-control text-right" readonly value="0.00%"></td>
                                        </tr>
                                        <tr>
                                            <th>Monto de la Retención</th>
                                            <td><input type="text" id="retencion_importe" class="form-control text-right" readonly value="0.00"></td>
                                        </tr>
                                        <tr>
                                            <th>Importe neto a pagar</th>
                                            <td><input type="text" id="retencion_pago_neto" class="form-control text-right" readonly value="0.00"></td>
                                        </tr>
                                    </table>
                                </div>
                            </div>
                        </div>
                    </div>

                    <div class="box box-default" id="bloqueCuotas" style="display:none;">
                        <div class="box-header with-border">
                            <h3 class="box-title">3. Cuotas</h3>
                        </div>
                        <div class="box-body">
                            <button type="button" id="btnAgregarCuota" class="btn btn-primary">
                                <i class="fa fa-plus"></i> Agregar cuota
                            </button>

                            <div class="alert alert-info" style="padding:8px 12px; margin-top:10px;">
                                La suma de cuotas debe ser igual al importe neto a pagar.
                            </div>

                            <br>

                            <div class="table-responsive">
                                <table class="table table-bordered table-striped" id="tablaCuotas">
                                    <thead>
                                        <tr>
                                            <th>Nro Cuota</th>
                                            <th>Fecha Vencimiento</th>
                                            <th>Importe</th>
                                            <th>Acción</th>
                                        </tr>
                                    </thead>
                                    <tbody>
                                        <tr id="filaSinCuotas">
                                            <td colspan="4" class="text-center">No hay cuotas agregadas</td>
                                        </tr>
                                    </tbody>
                                </table>
                            </div>

                            <div class="row">
                                <div class="col-md-3 col-md-offset-9">
                                    <div class="form-group">
                                        <label>Total cuotas</label>
                                        <input type="text" id="total_cuotas" class="form-control text-right" readonly value="0.00">
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>

                    <button type="submit" class="btn btn-primary">
                        <i class="fa fa-save"></i> Guardar Anticipo
                    </button>

                    <a href="<?php echo base_url('index.php/ventas/orden-pedido'); ?>" class="btn btn-default">
                        Cancelar
                    </a>

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

<script>
window.addEventListener('load', function () {
    var contadorCuotas = 0;

    function alternarCuotas() {
        var comprobanteId = $('#comprobante_id').val();
        var fpOption = $('#fp_id option:selected');
        var fpCodigo = (fpOption.data('codigo') || '').toString().toUpperCase();
        var fpNombre = (fpOption.data('nombre') || '').toString().toUpperCase();

        var esFactura = (parseInt(comprobanteId, 10) === 1);
        var esCredito = (fpCodigo === 'CREDITO' || fpNombre === 'CREDITO');

        if (esFactura && esCredito) {
            $('#bloqueCuotas').show();
        } else {
            $('#bloqueCuotas').hide();
            $('#tablaCuotas tbody').html('<tr id="filaSinCuotas"><td colspan="4" class="text-center">No hay cuotas agregadas</td></tr>');
            contadorCuotas = 0;
            recalcularTotalCuotas();
        }
    }

    function recalcularTotalCuotas() {
        var total = 0;
        $('input[name="cuota_importe[]"]').each(function () {
            total += parseFloat($(this).val()) || 0;
        });
        $('#total_cuotas').val(total.toFixed(2));
    }

    function renumerarCuotas() {
        var nro = 1;
        $('#tablaCuotas tbody tr').not('#filaSinCuotas').each(function () {
            $(this).find('.nro-cuota-texto').text(nro);
            $(this).find('input[name="cuota_nro[]"]').val(nro);
            nro++;
        });
        contadorCuotas = nro - 1;
    }

    function recalcularRetencion(total) {
        var tieneRetencion = parseInt($('#cliente_tiene_retencion').val(), 10) || 0;
        var porcentajeRet = parseFloat($('#cliente_retencion_porcentaje').val()) || 0;
        var montoMinimoRet = parseFloat($('#cliente_retencion_monto_minimo').val()) || 0;
        var comprobanteId = parseInt($('#comprobante_id').val(), 10) || 0;
        var esFactura = (comprobanteId === 1);

        var pagoNeto = total;

        if (tieneRetencion === 1 && esFactura && total >= montoMinimoRet) {
            var importeRet = total * (porcentajeRet / 100);
            pagoNeto = total - importeRet;

            $('#retencion_base').val(total.toFixed(2));
            $('#retencion_porcentaje_texto').val(porcentajeRet.toFixed(2) + '%');
            $('#retencion_importe').val(importeRet.toFixed(2));
            $('#retencion_pago_neto').val(pagoNeto.toFixed(2));
            $('#bloqueRetencion').show();
        } else {
            $('#retencion_base').val('0.00');
            $('#retencion_porcentaje_texto').val('0.00%');
            $('#retencion_importe').val('0.00');
            $('#retencion_pago_neto').val(total.toFixed(2));
            $('#bloqueRetencion').hide();
        }

        $('#resumen_pago_neto').val(pagoNeto.toFixed(2));
    }

    function recalcularTotales() {
        var monto = parseFloat($('#monto_anticipo').val()) || 0;
        var modo = parseInt($('#igv_modo').val(), 10);
        var porcentaje = parseFloat($('#igv_porcentaje').val()) || 0;

        var subtotal = 0;
        var igv = 0;
        var total = 0;

        if (modo === 1) {
            total = monto;
            subtotal = total / (1 + (porcentaje / 100));
            igv = total - subtotal;
        } else {
            subtotal = monto;
            igv = subtotal * (porcentaje / 100);
            total = subtotal + igv;
        }

        $('#resumen_subtotal').val(subtotal.toFixed(2));
        $('#resumen_igv').val(igv.toFixed(2));
        $('#resumen_total').val(total.toFixed(2));

        recalcularRetencion(total);
    }

    $('#monto_anticipo').on('keyup change', function () {
        recalcularTotales();
    });

    $('#comprobante_id').on('change', function () {
        $('#fp_id').prop('disabled', $(this).val() === '');
        alternarCuotas();
        recalcularTotales();
    });

    $('#fp_id').on('change', function () {
        alternarCuotas();
        recalcularTotales();
    });

    $('#btnAgregarCuota').on('click', function () {
        $('#filaSinCuotas').remove();

        contadorCuotas++;

        var fila = '';
        fila += '<tr>';
        fila += '<td><span class="nro-cuota-texto">' + contadorCuotas + '</span><input type="hidden" name="cuota_nro[]" value="' + contadorCuotas + '"></td>';
        fila += '<td><input type="date" name="cuota_fecha[]" class="form-control" required></td>';
        fila += '<td><input type="number" step="0.01" min="0.01" name="cuota_importe[]" class="form-control cuota-importe" value="0.00" required></td>';
        fila += '<td><button type="button" class="btn btn-danger btn-xs btnEliminarCuota"><i class="fa fa-trash"></i></button></td>';
        fila += '</tr>';

        $('#tablaCuotas tbody').append(fila);
        recalcularTotalCuotas();
    });

    $(document).on('keyup change', '.cuota-importe', function () {
        recalcularTotalCuotas();
    });

    $(document).on('click', '.btnEliminarCuota', function () {
        $(this).closest('tr').remove();

        if ($('#tablaCuotas tbody tr').length === 0) {
            $('#tablaCuotas tbody').html('<tr id="filaSinCuotas"><td colspan="4" class="text-center">No hay cuotas agregadas</td></tr>');
        }

        renumerarCuotas();
        recalcularTotalCuotas();
    });

    $('#fp_id').prop('disabled', $('#comprobante_id').val() === '');
    recalcularTotales();
});
</script>