HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux ip-172-31-42-149 5.15.0-1084-aws #91~20.04.1-Ubuntu SMP Fri May 2 07:00:04 UTC 2025 aarch64
User: ubuntu (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/vhost/disk-apps/demo.sports-crowd.com/resources/views/academy/payments/list.blade.php
@extends('modules.head') @section('contenido')
<style>
    /* Ensure that the demo table scrolls */
    /* th, */
    td {
        white-space: nowrap;
    }

    div.dataTables_wrapper {
        height: fit-content;
        margin: 0px 10px 0px 10px;
    }

    .dataTables_scrollBody {
        max-height: none !important;
    }

    .bold {
        font-weight: bold;
    }

    .pending {
        background-color: #F7CB73 !important;
    }
</style>

<div class="box-header">
    @if(!in_array(Auth::user()->rol->id, [14]))
    <a class="btn btn-app btnReportProducts" data-toggle="modal" data-target="#edit_payments">
        <i class="fa fa-cloud-upload"></i> {{ Lang::get('messages.academy_payments.titleEdit')}}
    </a>
    @endif
</div>

<h3>
    <a class="ruta" class=""
        href="{{ url('/academy_user') }}{{ '/' . $academyUser->type_academy }}">{{ Lang::get('messages.academy_users.title') }}
    </a>
    <span class="separador-ruta">|</span>
    <a class="ruta" class=""
        href="{{ url('/academy_user_payment/' . $academyUser->id) }}">{{ Lang::get('messages.academy_payments.title') }}
    </a>
</h3>

<div class="box">
    <div class="box-header">
        <h3 class="box-title">{{ Lang::get('messages.academy_payments.title') }} ➜
            {{ $academyUser->student_name . ' ' . $academyUser->student_last_name }}
        </h3>
    </div>

    <!-- /.box-header -->
    <div class="box-body table-responsive ">
        <table id="example2" class="stripe row-border order-column" style="width:100%" role="grid" aria-describedby="example2_info">
            <thead>
                <tr role="row">
                    <th class="sorting" tabindex="0" aria-controls="example2" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">{{ Lang::get('messages.academy_purchases.id')}}</th>
                    <th class="sorting" tabindex="0" aria-controls="example2" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">{{ Lang::get('messages.academy_payments.tag4')}}</th>
                    <th class="sorting" tabindex="0" aria-controls="example2" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">{{ Lang::get('messages.academy_payments.tag6')}}</th>
                    <th class="sorting" tabindex="0" aria-controls="example2" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">{{ Lang::get('messages.academy_payments.tag7')}}</th>
                    <th class="sorting" tabindex="0" aria-controls="example2" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">{{ Lang::get('messages.academy_payments.tag8')}}</th>
                    <th class="sorting" tabindex="0" aria-controls="example2" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">{{ Lang::get('messages.academy_payments.tag22')}}</th>
                    <th class="sorting" tabindex="0" aria-controls="example2" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">{{ Lang::get('messages.academy_payments.tag23')}}</th>
                    <th class="sorting" tabindex="0" aria-controls="example2" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">{{ Lang::get('messages.academy_payments.tag5')}}</th>
                    <th class="sorting" tabindex="0" aria-controls="example2" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">{{ Lang::get('messages.academy_payments.tag17-1')}}</th>
                    <th class="sorting" tabindex="0" aria-controls="example2" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">{{ Lang::get('messages.academy_payments.tag17-2')}}</th>
                    <th class="sorting" tabindex="0" aria-controls="example2" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">{{ Lang::get('messages.academy_payments.tag18-1')}}</th>
                    <th class="sorting" tabindex="0" aria-controls="example2" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">{{ Lang::get('messages.academy_payments.tag18-2')}}</th>
                    <th class="sorting" tabindex="0" aria-controls="example2" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">{{ Lang::get('messages.academy_payments.tag18-3')}}</th>
                    <th class="sorting" tabindex="0" aria-controls="example2" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">{{ Lang::get('messages.academy_payments.tag9-1')}}</th>
                    <th class="sorting" tabindex="0" aria-controls="example2" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">{{ Lang::get('messages.academy_payments.tag9-2')}}</th>
                    <th class="sorting" tabindex="0" aria-controls="example2" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">{{ Lang::get('messages.academy_payments.tag10')}}</th>
                    <th class="sorting" tabindex="0" aria-controls="example2" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">{{ Lang::get('messages.academy_payments.tag11')}}</th>
                    <th class="sorting" tabindex="0" aria-controls="example2" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">{{ Lang::get('messages.academy_purchases.payment_method') }}</th>
                    <th class="sorting" tabindex="0" aria-controls="example2" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">{{ Lang::get('messages.academy_purchases.gateway_payments')}}</th>
                    <th class="sorting" tabindex="0" aria-controls="example2" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">{{ Lang::get('messages.academy_payments.tag16')}}</th>
                    <th class="sorting" tabindex="0" aria-controls="example2" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">{{ Lang::get('messages.academy_payments.tag13')}}</th>
                    <th class="sorting" tabindex="0" aria-controls="example2" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">{{ Lang::get('messages.academy_purchases.erp_identifier') }}</th>
                    <th class="sorting" tabindex="0" aria-controls="example2" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">{{ Lang::get('messages.academy_purchases.erp_reference') }}</th>
                    <th class="sorting" tabindex="0" aria-controls="example2" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">{{ Lang::get('messages.academy_purchases.sync_with_erp') }}</th>
                    <th class="sorting" tabindex="0" aria-controls="example2" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">{{ Lang::get('messages.academy_payments.tag20')}}</th>
                    <th class="sorting" tabindex="0" aria-controls="example2" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">{{ Lang::get('messages.academy_users.tag41')}}</th>
                </tr>
            </thead>
        </table>
    </div>
    <!-- /.box-body -->
</div>

@include('academy.payments.modal.edit_payments')

<script src="{{ asset('js/jQuery/jquery-2.2.3.min.js') }}"></script>
<script src="{{ asset('js/bootstrap/js/bootstrap.min.js') }}"></script>
<script src="{{ asset('js/academy_user_payment.js') . '?v=' . time() }}"></script>
<script src="{{ asset('js/crud.js') . '?v=' . time() }}"></script>
<script src="{{ asset('js/util.js') . '?v=' . time() }}"></script>
<script type="text/javascript">
    $(document).ready(function() {
        let fixedColumns = false;
        let isMobileDevice = /Android|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
        if (!isMobileDevice) {
            fixedColumns = {
                left: 2,
                right: 2
            };
        }

        _table = $('#example2').DataTable({
            responsive: true,
            processing: true,
            serverSide: true,
            language: {
                url: window.DATATABLES_LANGUAGE_URL,
            },
            scrollX: true,
            scrollCollapse: true,
            paging: true,
            fixedColumns: fixedColumns,
            ajax: '/academy_user_payment/list/{{$academyUser->id}}',
            columns: [{
                    data: 'id',
                    name: 'id'
                },
                {
                    data: 'term_type',
                    name: 'term_type'
                },
                {
                    data: 'term',
                    name: 'term'
                },
                {
                    data: 'start_term',
                    name: 'start_term'
                },
                {
                    data: 'end_term',
                    name: 'end_term'
                },
                {
                    data: 'payment_activation',
                    name: 'payment_activation'
                },
                {
                    data: 'payment_due_date',
                    name: 'payment_due_date'
                },
                {
                    data: 'enrollment_academy_price',
                    render: function(data, type, row) {
                        return formatCurrency(row.enrollment_academy_price ?? row.monthly_academy_price);
                    },
                    name: 'enrollment_academy_price'
                },
                {
                    data: 'price_discount',
                    render: function(data, type, row) {
                        return formatCurrency(row.price_discount);
                    },
                    name: 'price_discount'
                },
                {
                    data: 'discount',
                    render: function(data, type, row) {
                        return row.discount + '%';
                    },
                    name: 'discount'
                },
                {
                    data: 'subtotal',
                    render: function(data, type, row) {
                        return formatCurrency(row.subtotal);
                    },
                    sClass: "bold",
                    name: 'subtotal'
                },
                {
                    data: 'service_charge',
                    render: function(data, type, row) {
                        return formatCurrency(row.service_charge);
                    },
                    sClass: "bold",
                    name: 'service_charge'
                },
                {
                    data: 'price',
                    render: function(data, type, row) {
                        return formatCurrency(row.price);
                    },
                    sClass: "bold",
                    name: 'price'
                },
                {
                    data: 'payment_transaction_id',
                    render: function(data, type, row) {
                        return row.payment_transaction && row.payment_transaction.reference ? row.payment_transaction.reference : '';
                    },
                    name: 'payment_transaction.reference'
                },
                {
                    data: 'payment_transaction_id',
                    render: function(data, type, row) {
                        return row.payment_transaction && row.payment_transaction.gateway_transaction_id ? row.payment_transaction.gateway_transaction_id : '';
                    },
                    name: 'payment_transaction.gateway_transaction_id'
                },
                {
                    data: 'state',
                    name: 'payment_transaction.state'
                },
                {
                    data: 'payment_transaction_id',
                    render: function(data, type, row) {
                        return row.payment_transaction ? row.payment_transaction.comment : '';
                    },
                    name: 'payment_transaction.comment'
                },
                {
                    data: 'payment_method',
                    name: 'payment_methods.name'
                },
                {
                    data: 'payment_transaction_id',
                    render: function(data, type, row) {
                        return row.payment_transaction && row.payment_transaction.gateway_payments ? row.payment_transaction.gateway_payments.name : '';
                    },
                    name: 'gateway_payments.name'
                },
                {
                    data: 'payment_transaction_id',
                    render: function(data, type, row, sData, oData, nTd) {
                        return row.payment_transaction && row.payment_transaction.support ? "<a href='" + row.payment_transaction.support + "' target='_blank'>Ver documento</a>" : '';
                    },
                    name: 'payment_transaction.support'
                },
                {
                    data: 'payment_date',
                    name: 'payment_transaction.payment_date'
                },
                {
                    data: 'erp_reference',
                    name: 'erp_reference'
                },
                {
                    data: 'erp_response',
                    name: 'erp_response'
                },
                {
                    data: 'sync_with_erp',
                    render: function(data, type, row) {
                        return row.sync_with_erp ? 'SI' : 'NO';
                    },
                    name: 'sync_with_erp'
                },
                {
                    data: 'active',
                    name: 'active'
                },
                {
                    data: 'actions',
                    name: 'actions'
                },
            ],
            "createdRow": function(row, data, dataIndex) {
                if (data['pending']) {
                    $(row).addClass('pending');
                }
            }
        });

        var info =
            '<i class="fa  fa-info-circle"  id="btn-info-busqueda"></i><div class="dropdown-menu" id="menuBusqueda" style="left: 50%; padding: 5px; background-color: #f9fb8f;"><p data-toggle="modal">Busqueda por Código, Nombre y Teléfono</p></div>';
        $('#example2_filter').append(info);
        $('#btn-info-busqueda').on('click', function() {
            $('#menuBusqueda').toggle();
        });
    });

    function clickValidatePay(id) {
        swal(Lang.get("messagesClient.academy_payments.confirm_payment"), {
            buttons: {
                cancel: "No",
                Ok: true,
            },
        }).then((val) => {
            if (val == "Ok") {
                $('#loading').show();
                var info = {
                    id: id,
                    state: 'CONFIRMED',
                };
                $.ajax({
                    url: "/academy_user_payment/validatePay",
                    type: "PUT",
                    contentType: "application/json",
                    headers: {
                        "X-CSRF-TOKEN": $(
                            'meta[name="csrf-token"]'
                        ).attr("content"),
                        "Content-Type": "application/json",
                    },
                    data: JSON.stringify(info),
                    success: function(r) {
                        $('#loading').hide();
                        if (r.r) {
                            swal(r.m, {
                                icon: "success",
                                buttons: {
                                    Ok: true,
                                },
                            }).then((val) => {
                                if (val == "Ok") {
                                    localStorage.setItem("setPageTable", true);
                                    var academyUserId = document.location.href.match(
                                        /[0-9]+/)[0];
                                    $(location).attr("href", "/academy_user_payment/" +
                                        academyUserId);
                                }
                            });
                        } else {
                            swal("Error", r.m, "error");
                        }
                    },
                    error: function(e) {
                        $('#loading').hide();
                        swal("Error", Lang.get(
                                "messagesClient.academy_payments.error_confirm_payment"),
                            "error");
                    },
                });
            }
        });
    }
</script>
@endsection