@extends('layouts.master')
@section('title') Inicio @endsection
@section('content')
<!-- this is breadcrumbs -->
@component('components.breadcrumb')
@slot('li_1') Inicio @endslot
@slot('li_2') Panel Catastro @endslot
@slot('title') Registro de Pagos @endslot
@endcomponent

<!-- start page content -->
<div class="row">
    <div class="col-12">
        <div class="card">
            <div class="card-body mb-n3">
                <button type="button" class="btn btn-primary btn-sm px-4 mt-0 mb-3" 
                    data-bs-toggle="modal" 
                    data-bs-target="#modalCrearPago">
                    <i class="fas fa-plus"></i>  Nuevo Pago
                </button>

            


                <div class="table-responsive">
                    <table id="tablaRecibos" class="table table-striped mb-0 table-hover">
                        <thead class="table-light">
                            <tr>
                                <th>ID</th>
                                <th>Caja</th>
                                <th>N° Recibo(s)</th>
                                <th>Cliente(s)</th>
                                <th>Método</th>
                                <th>Monto</th>
                                <th>Referencia</th>
                                <th>Fecha</th>
                                <th>Acciones</th>
                            </tr>
                        </thead>
                        <tbody>
                            @foreach($pagos as $pago)
                                <tr>
                                    <td>{{ $pago->id_pago }}</td>
                                    <td>{{ $pago->historialCaja->caja->nombre ?? '—' }}</td>

                                    <!-- Recibos -->
                                    <td>
                                        @if($pago->recibos->count())
                                            @foreach($pago->recibos as $recibo)
                                                <span class="badge bg-info">{{ $recibo->numero_recibo }}</span>
                                            @endforeach
                                        @else
                                            —
                                        @endif
                                    </td>

                                    <!-- Clientes (del primer recibo o de todos) -->
                                    <td>
                                        @if($pago->recibos->count())
                                            @foreach($pago->recibos as $recibo)
                                                @if($recibo->facturas->first())
                                                    <span class="badge bg-secondary">
                                                        {{ $recibo->facturas->first()->conexion->cliente->nombres_razon_social }}
                                                    </span>
                                                @endif
                                            @endforeach
                                        @else
                                            —
                                        @endif
                                    </td>

                                    <td>{{ $pago->metodo_pago }}</td>
                                    <td>S/ {{ number_format($pago->monto, 2) }}</td>
                                    <td>{{ $pago->referencia ?? '-' }}</td>
                                    <td>{{ $pago->created_at->format('d/m/Y H:i') }}</td>
                                    <td>
                                        <!-- Botón Imprimir -->
                                        <button class="btn btn-primary btn-sm btnImprimirPago" 
                                                data-id="{{ $pago->id_pago }}">
                                            <i class="fas fa-print"></i> Imprimir
                                        </button>

                                        <!-- Botón Anular -->
                                        <button class="btn btn-sm btn-danger btnAnularPago" data-id="{{ $pago->id_pago }}">
                                            <i class="fas fa-ban"></i>
                                        </button>
                                    </td>
                                </tr>
                            @endforeach
                        </tbody>
                    </table>







                </div>
            </div>
            <!--end card-body-->
        </div>
        <!--end card-->
    </div>
    <!--end col-->
</div>



<!-- Modal -->
<div class="modal fade" id="modalCrearPago" tabindex="-1" aria-labelledby="modalCrearPagoLabel" aria-hidden="true">
  <div class="modal-dialog modal-xl">
    <div class="modal-content">
      
      <div class="modal-header bg-primary text-white">
        <h5 class="modal-title" id="modalCrearPagoLabel">
          <i class="fas fa-money-bill"></i> Registrar Pago
        </h5>
        <button type="button" class="btn-close" data-bs-dismiss="modal"></button>
      </div>

      <div class="modal-body">
        <form id="formCrearPago">
            @csrf

            <!-- Seleccionar Caja -->
            <div class="mb-3">
                <label class="form-label">Caja</label>
                <select name="id_caja" class="form-select" required>
                    @if($cajaAbierta)
                        <option value="{{ $cajaAbierta->id_caja }}">
                            {{ $cajaAbierta->nombre }} (Aperturada: {{ $cajaAbierta->fecha_apertura }})
                        </option>
                    @else
                        <option value="">⚠ No hay cajas abiertas</option>
                    @endif
                </select>
            </div>

            <!-- Buscar cliente -->
            <div class="mb-3">
                <label class="form-label">Documento del Cliente</label>
                <div class="input-group">
                    <input type="text" id="documentoCliente" class="form-control" placeholder="Ingrese DNI o RUC">
                    <button type="button" id="btnBuscarCliente" class="btn btn-secondary">
                        <i class="fas fa-search"></i> Buscar
                    </button>
                </div>
                <div class="mt-2">
                    <strong>Cliente:</strong> <span id="nombreCliente" class="text-primary">---</span>
                </div>
            </div>

            <!-- Grid de recibos -->
            <div class="mb-3">
                <label class="form-label">Recibos Pendientes</label>
                <div id="recibosGrid" class="table-responsive">
                    <table class="table table-bordered table-sm">
                        <thead class="table-light">
                            <tr>
                                <th></th>
                                <th>N° Recibo</th>
                                <th>Facturas</th>
                                <th>Monto Total</th>
                            </tr>
                        </thead>
                        <tbody id="tbodyRecibos">
                            <tr>
                                <td colspan="4" class="text-center text-muted">Busque un cliente para cargar recibos...</td>
                            </tr>
                        </tbody>
                    </table>
                </div>
            </div>

            <!-- Total seleccionado -->
            <div class="mb-3">
                <label class="form-label">Monto Total a Pagar</label>
                <input type="text" id="montoRecibo" class="form-control" readonly>
            </div>

            <!-- Método de pago -->
            <div class="mb-3">
                <label class="form-label">Método de Pago</label>
                <select name="metodo_pago" class="form-select" required>
                    <option value="">Seleccione...</option>
                    <option value="Efectivo">Efectivo</option>
                    <option value="Tarjeta">Tarjeta</option>
                    <option value="Transferencia">Transferencia</option>
                    <option value="Yape">Yape</option>
                    <option value="Plin">Plin</option>
                </select>
            </div>

            <!-- Referencia -->
            <div class="mb-3">
                <label class="form-label">Referencia (Voucher / Operación)</label>
                <input type="text" name="referencia" class="form-control">
            </div>
        </form>
      </div>

      <div class="modal-footer">
        <button type="button" class="btn btn-light" data-bs-dismiss="modal">Cancelar</button>
        <button type="button" id="btnGuardarPago" class="btn btn-success">
          Guardar Pago
        </button>
      </div>

    </div>
  </div>
</div>











<!--end row-->


@endsection
@section('script')
<!-- jQuery y DataTables -->

<!-- jQuery y DataTables -->
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="https://cdn.datatables.net/1.13.6/js/jquery.dataTables.min.js"></script>

<!-- DataTables Buttons -->
<script src="https://cdn.datatables.net/buttons/2.3.6/js/dataTables.buttons.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.10.1/jszip.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.2.7/pdfmake.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.2.7/vfs_fonts.js"></script>
<script src="https://cdn.datatables.net/buttons/2.3.6/js/buttons.html5.min.js"></script>
<script src="https://cdn.datatables.net/buttons/2.3.6/js/buttons.print.min.js"></script>
<script src="https://cdn.datatables.net/buttons/2.3.6/js/buttons.colVis.min.js"></script>

<!-- DataTables CSS -->
<link rel="stylesheet" href="https://cdn.datatables.net/1.13.6/css/jquery.dataTables.min.css">
<link rel="stylesheet" href="https://cdn.datatables.net/buttons/2.3.6/css/buttons.dataTables.min.css">
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
<!-- tablas -->
<script>
    $(document).ready(function () {
        $("#tablaRecibos").DataTable({
            "responsive": true,
            "lengthChange": true,
            "autoWidth": false,
            "buttons": [
                {
                    extend: 'collection',
                    text: 'Opciones',
                    buttons: [
                        { extend: 'copy', text: 'Copiar' },
                        { extend: 'csv', text: 'CSV' },
                        { extend: 'excel', text: 'Excel', title: 'Periodos Académicos' },
                        { extend: 'pdf', text: 'PDF' },
                        { extend: 'print', text: 'Imprimir' }
                    ]
                },
                { extend: 'colvis', text: 'Visibilidad de Columna' }
            ],
            "paging": true,
            "searching": true,
            "info": true,
            "language": {
                "search": "Buscar:",
                "lengthMenu": "Mostrar _MENU_ registros por página",
                "info": "Mostrando _START_ a _END_ de _TOTAL_ entradas",
                "paginate": {
                    "first": "Primero",
                    "previous": "Anterior",
                    "next": "Siguiente",
                    "last": "Último"
                }
            }
        }).buttons().container().appendTo('#tablaRecibos_wrapper .col-md-6:eq(0)');
    });
</script>

<script>
$(document).ready(function() {

    // Buscar cliente y cargar recibos
    $('#btnBuscarCliente').click(function() {
        let documento = $('#documentoCliente').val();
        if(documento === '') return;

        $.get('/buscar-recibos/' + documento, function(res) {
            if(!res.success){
                Swal.fire('Error', res.message, 'error');
                return;
            }

            $('#nombreCliente').text(res.cliente.nombres_razon_social);

            let $tbody = $('#tbodyRecibos');
            $tbody.empty();

            if(res.recibos.length === 0){
                $tbody.append(`
                    <tr>
                        <td colspan="4" class="text-center text-muted">No hay recibos pendientes</td>
                    </tr>
                `);
                return;
            }

            res.recibos.forEach(r => {
                let totalFacturas = r.facturas.reduce((sum, f) => sum + parseFloat(f.monto_total), 0).toFixed(2);

                let facturasTexto = r.facturas.map(f => `${f.numero_factura}: S/ ${f.monto_total}`).join('<br>');

                $tbody.append(`
                    <tr>
                        <td>
                            <input type="checkbox" class="recibo-check" 
                                   value="${r.id_recibo}" 
                                   data-monto="${totalFacturas}">
                        </td>
                        <td>${r.numero_recibo}</td>
                        <td>${facturasTexto}</td>
                        <td>S/ ${totalFacturas}</td>
                    </tr>
                `);
            });
        });
    });

    // Calcular total cuando marquen recibos
    $(document).on('change', '.recibo-check', function() {
        let total = 0;
        $('.recibo-check:checked').each(function() {
            total += parseFloat($(this).data('monto'));
        });
        $('#montoRecibo').val(total.toFixed(2));
    });


    // Guardar pago
    $('#btnGuardarPago').click(function() {
        let monto = $('#montoRecibo').val();

        if(monto <= 0){
            Swal.fire('Atención', 'Debes seleccionar al menos un recibo', 'warning');
            return;
        }

        let formData = $('#formCrearPago').serializeArray();

        // Agregar monto
        formData.push({ name: 'monto', value: monto });

        // Agregar recibos seleccionados
        $('.recibo-check:checked').each(function() {
            formData.push({ name: 'recibos[]', value: $(this).val() });
        });

        console.log("Datos a enviar:", formData);

        $.post("{{ route('pagos.store') }}", formData, function(res) {
            if(res.success){
                Swal.fire('Éxito', 'Pago registrado correctamente', 'success').then(() => {
                    $('#modalCrearPago').modal('hide');
                    location.reload();
                });
            } else {
                Swal.fire('Error', res.message || 'No se pudo registrar el pago', 'error');
            }
        }).fail(function(err){
            console.log(err);
            Swal.fire('Error', 'Error en el servidor', 'error');
        });
    });

});
</script>


<script>
    $(document).on('click', '.btnImprimirPago', function() {
        let idPago = $(this).data('id');
        window.open('/pagos/' + idPago + '/ticket', '_blank', 'width=320,height=500');
    });


$(document).on('click', '.btnAnularPago', function() {
    let idPago = $(this).data('id');
    Swal.fire({
        title: '¿Desea anular este pago?',
        icon: 'warning',
        showCancelButton: true,
        confirmButtonText: 'Sí, anular',
        cancelButtonText: 'Cancelar'
    }).then((result) => {
        if(result.isConfirmed){
            $.post('/pagos/' + idPago + '/anular', {_token: '{{ csrf_token() }}'}, function(res){
                if(res.success){
                    Swal.fire('Anulado', 'Pago anulado correctamente', 'success').then(() => location.reload());
                } else {
                    Swal.fire('Error', res.message, 'error');
                }
            });
        }
    });
});

</script>


@endsection
