140 lines
3.9 KiB
PHP
140 lines
3.9 KiB
PHP
|
@use(App\Models\Checkout)
|
||
|
@use(App\Models\Invoice)
|
||
|
|
||
|
@extends('adminlte::layouts.app')
|
||
|
|
||
|
@section('htmlheader_title')
|
||
|
Payment Cart
|
||
|
@endsection
|
||
|
@section('page_title')
|
||
|
Payments
|
||
|
@endsection
|
||
|
|
||
|
@section('contentheader_title')
|
||
|
Payment Cart
|
||
|
@endsection
|
||
|
@section('contentheader_description')
|
||
|
@endsection
|
||
|
|
||
|
@section('main-content')
|
||
|
<div class="row">
|
||
|
<div class="col-4">
|
||
|
<div class="card card-dark">
|
||
|
<div class="card-header p-2">
|
||
|
<span class="card-title">Invoices to Pay</span>
|
||
|
</div>
|
||
|
|
||
|
<div class="card-body">
|
||
|
<form method="POST" action="{{ url('u/checkout/pay') }}">
|
||
|
@csrf
|
||
|
|
||
|
<input type="hidden" name="type" value="invoice">
|
||
|
|
||
|
<!-- @todo This is currently forcing only paypal -->
|
||
|
<x-leenooks::form.select id="checkout_id" name="checkout_id" icon="fa-credit-card" label="Payment Method" feedback="Payment Method is required" choose="true" :options="Checkout::active()->where('name','ilike','paypal')->orderBy('name')->get()->map(function ($item) { $item->value = $item->name; return $item; })"/>
|
||
|
|
||
|
<table id="invoices" class="table table-sm w-100">
|
||
|
<tr>
|
||
|
<th>Invoice</th>
|
||
|
<th class="text-right">Balance Due</th>
|
||
|
</tr>
|
||
|
|
||
|
@foreach (($invoices=Invoice::whereIn('id',session('invoice.cart',[]))->get()) as $io)
|
||
|
<input type="hidden" name="invoice_id[]" value="{{ $io->id }}">
|
||
|
<tr>
|
||
|
<td><a class="cart_delete text-dark" data-id="{{ $io->id }}" data-value="{{ $io->due }}" href="{{ url('/u/cart/delete',$io->id) }}"><i class="fas fa-trash-alt"></i></a> {{ $io->sid }}</td>
|
||
|
<td class="text-right">{{ number_format($io->due,2) }}</td>
|
||
|
</tr>
|
||
|
@endforeach
|
||
|
|
||
|
<tfoot>
|
||
|
<tr>
|
||
|
<th class="text-right">Sub Total</th>
|
||
|
<td class="text-right"><span id="subtotal">{{ number_format($invoices->sum('due'),2) }}</span></td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<th class="text-right">Payment Fees</th>
|
||
|
<td class="text-right"><span id="payfee">TBA</span></td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<th class="text-right">Payment Total</th>
|
||
|
<th class="text-right"><span id="paytotal">TBA</span></th>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<th colspan="2">
|
||
|
<!-- Buttons -->
|
||
|
<x-leenooks::button.cancel/>
|
||
|
<x-leenooks::button.submit class="float-right" disabled>Pay</x-leenooks::button.submit>
|
||
|
<a href="{{ url('/home') }}" class="mt-4 btn btn-sm btn-primary">Add Invoice</a>
|
||
|
</th>
|
||
|
</tr>
|
||
|
</tfoot>
|
||
|
</table>
|
||
|
</form>
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
|
||
|
<x-leenooks::errors/>
|
||
|
@endsection
|
||
|
|
||
|
@section('page-scripts')
|
||
|
<script type="text/javascript">
|
||
|
var subtotal = {{ $invoices->sum('due') }};
|
||
|
|
||
|
function fee_total() {
|
||
|
$.ajax({
|
||
|
type: 'POST',
|
||
|
data: {
|
||
|
total: subtotal,
|
||
|
checkout_id: $('#checkout_id').val()
|
||
|
},
|
||
|
dataType: 'json',
|
||
|
url: '{{ url('u/checkout/fee') }}',
|
||
|
timeout: 5000,
|
||
|
error: function() {
|
||
|
alert('Failed to submit, please try again...');
|
||
|
},
|
||
|
success: function(data) {
|
||
|
$('span[id=payfee]').html(data.toFixed(2));
|
||
|
$('span[id=paytotal]').html((subtotal+data).toFixed(2));
|
||
|
$('button[type=submit]').prop('disabled',false);
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
|
||
|
$(document).ready(function() {
|
||
|
if ($('#checkout_id').val())
|
||
|
fee_total();
|
||
|
|
||
|
$('#checkout_id').on('change',fee_total);
|
||
|
|
||
|
$('.cart_delete').click(function(item) {
|
||
|
var that = $(this);
|
||
|
|
||
|
// Delete
|
||
|
$.ajax({
|
||
|
url: '{{ url('u/checkout/cart/remove') }}',
|
||
|
method: 'POST',
|
||
|
data: {id: that.data('id')},
|
||
|
|
||
|
}).done(function(data) {
|
||
|
that.closest('tr').hide();
|
||
|
that.closest('tr').parent().find('input').attr('disabled',true);
|
||
|
subtotal -= that.data('value');
|
||
|
$('span[id=subtotal]').html(subtotal.toFixed(2));
|
||
|
if ($('#checkout_id').val())
|
||
|
fee_total();
|
||
|
|
||
|
}).fail(function(data) {
|
||
|
alert('Hmm, that didnt work?');
|
||
|
});
|
||
|
|
||
|
// Clear the data cache
|
||
|
that.removeData();
|
||
|
return false;
|
||
|
});
|
||
|
});
|
||
|
</script>
|
||
|
@append
|