@extends('layouts.finance')
@php
$providerKey = $providerKey ?? '';
$provider = $provider ?? null;
$providers = $providers ?? \App\Support\FinanceSuiteMetrics::KUICKPAY_PROVIDERS;
$providerLabel = $provider['label'] ?? 'All KuickPay';
$providerCards = $providerCards ?? collect();
$kuickpayRows = $kuickpayRows ?? collect();
$storeCreditRows = $storeCreditRows ?? collect();
$filters = $filters ?? ['mode' => 'month', 'month' => now()->format('Y-m'), 'from' => now()->startOfMonth()->toDateString(), 'to' => now()->endOfMonth()->toDateString(), 'q' => '', 'provider' => ''];
$kuickpayTotal = (float) ($kuickpayTotal ?? 0);
$kuickpayFeeTotal = (float) ($kuickpayFeeTotal ?? 0);
$storeCreditTotal = (float) ($storeCreditTotal ?? 0);
$storeCreditToday = (float) ($storeCreditToday ?? 0);
$manualStoreCreditRows = $manualStoreCreditRows ?? collect();
$manualStoreCreditTotal = (float) ($manualStoreCreditTotal ?? 0);
$manualStoreCreditToday = (float) ($manualStoreCreditToday ?? 0);
$verificationGap = (float) ($verificationGap ?? 0);
$storeCreditSource = $storeCreditSource ?? null;
$isKuickpayPaginated = $kuickpayRows instanceof \Illuminate\Contracts\Pagination\LengthAwarePaginator;
$isStoreCreditPaginated = $storeCreditRows instanceof \Illuminate\Contracts\Pagination\LengthAwarePaginator;
$isManualStoreCreditPaginated = $manualStoreCreditRows instanceof \Illuminate\Contracts\Pagination\LengthAwarePaginator;
@endphp
@section('title', 'KuickPay Store Credit Verification')
@section('subtitle', 'Compare KuickPay paid amount with KuickPay-added and manual/refund store credit')
@section('content')
Filters
{{ $filters['mode'] === 'date' ? 'Date wise' : 'Monthly' }}
{{ $providerLabel }} KuickPay Gross
{{ $metrics->money($kuickpayTotal, 'PKR') }}
Fee {{ $metrics->money($kuickpayFeeTotal, 'PKR') }} · Net {{ $metrics->money(max(0, $kuickpayTotal - $kuickpayFeeTotal), 'PKR') }}
Store Credit Added By KuickPay
{{ $metrics->money($storeCreditTotal, 'PKR') }}
Filtered rows · Today {{ $metrics->money($storeCreditToday, 'PKR') }}
Manual / Refund Store Credit
{{ $metrics->money($manualStoreCreditTotal, 'PKR') }}
Excluded from KuickPay verification · Today {{ $metrics->money($manualStoreCreditToday, 'PKR') }}
Verification Gap
{{ $metrics->money($verificationGap, 'PKR') }}
KuickPay gross minus KuickPay-added store credit only
Store Credit Source
{{ $storeCreditSource ?: 'Not found' }}
Filtered 1-Link add rows only
KuickPay Provider Summary
HBL · Faysal · FlyFreedom
| Account |
Prefix |
Filtered Gross |
Filtered Fee |
Filtered Net |
@foreach($providerCards as $card)
| {{ $card['label'] }} |
{{ $card['prefix'] }} |
{{ $metrics->money($card['filtered_gross'], 'PKR') }} |
{{ $metrics->money($card['filtered_fee'], 'PKR') }} |
{{ $metrics->money($card['filtered_net'], 'PKR') }} |
@endforeach
KuickPay Paid Rows
Link1Voucher
| # |
Voucher |
Candidate |
Agent |
Amount |
Fee |
Date |
@forelse($kuickpayRows as $i => $row)
@php
$offset = $isKuickpayPaginated ? (($kuickpayRows->currentPage() - 1) * $kuickpayRows->perPage()) : 0;
$rowNum = $offset + $i + 1;
$amount = (float) ($row->TransactionAmount ?? 0);
$fee = $metrics->kuickpayFee($amount);
@endphp
| {{ $rowNum }} |
{{ $row->Voucher ?? '-' }} |
{{ $row->CandName ?? '-' }} |
#{{ $row->agent_id ?? '-' }} |
{{ $metrics->money($amount, 'PKR') }} |
{{ $metrics->money($fee, 'PKR') }} |
{{ $row->TransactionDate ?? '-' }} |
@empty
| No KuickPay rows found for the selected filters. |
@endforelse
@if($isKuickpayPaginated && $kuickpayRows->hasPages())
{{ $kuickpayRows->appends(array_merge(request()->query(), ['section' => 'kuickpay']))->links() }}
@endif
Store Credit Added From KuickPay
1-Link add rows
| # |
Reference |
Agent |
Order |
Note |
Amount |
Date |
@forelse($storeCreditRows as $i => $row)
@php
$offset = $isStoreCreditPaginated ? (($storeCreditRows->currentPage() - 1) * $storeCreditRows->perPage()) : 0;
$rowNum = $offset + $i + 1;
$date = $row->created_at ?? $row->updated_at ?? '-';
@endphp
| {{ $rowNum }} |
{{ \Illuminate\Support\Str::limit($row->TransactionId ?? '-', 24) }} |
#{{ $row->agent_id ?? '-' }} |
{{ $row->order_id ?? '-' }} |
{{ $row->note ?? '-' }} |
{{ $metrics->money((float) ($row->amount ?? 0), 'PKR') }} |
{{ $date }} |
@empty
| No KuickPay-added store credit rows found for the selected filters. |
@endforelse
@if($isStoreCreditPaginated && $storeCreditRows->hasPages())
{{ $storeCreditRows->appends(request()->query())->links() }}
@endif
Manual / Refund Store Credit Added
Non-KuickPay add rows
These rows are shown separately so manual credits and refund credits do not affect the KuickPay verification gap.
| # |
Reference |
Agent |
Order |
Note |
Amount |
Date |
@forelse($manualStoreCreditRows as $i => $row)
@php
$offset = $isManualStoreCreditPaginated ? (($manualStoreCreditRows->currentPage() - 1) * $manualStoreCreditRows->perPage()) : 0;
$rowNum = $offset + $i + 1;
$date = $row->created_at ?? $row->updated_at ?? '-';
@endphp
| {{ $rowNum }} |
{{ \Illuminate\Support\Str::limit($row->TransactionId ?? '-', 24) }} |
#{{ $row->agent_id ?? '-' }} |
{{ $row->order_id ?? '-' }} |
{{ $row->note ?? '-' }} |
{{ $metrics->money((float) ($row->amount ?? 0), 'PKR') }} |
{{ $date }} |
@empty
| No manual or refund store credit rows found for the selected filters. |
@endforelse
@if($isManualStoreCreditPaginated && $manualStoreCreditRows->hasPages())
{{ $manualStoreCreditRows->appends(request()->query())->links() }}
@endif
@endsection