@php($receiptCurrency=(json_decode($receipt->rules_snapshot,true)?:[])['currency_code']??'MYR')
Receipt {{ $receipt->receipt }}Click image to view full size

{{ $receipt->receipt }}

{{ $receipt->email }}

{{ $receipt->branch }} · {{ $receipt->purchase_date }}

Verified purchase amount: {{ $receipt->purchase_amount!==null ? \App\Services\CampaignCurrency::format($receipt->purchase_amount,$receiptCurrency) : 'Not recorded' }}

Submitted: {{ $receipt->created_at }}

@if(\Illuminate\Support\Facades\DB::table('receipt_submissions')->where('image_hash',$receipt->image_hash)->where('id','!=',$receipt->id)->exists())

Duplicate image warning: another submission uses this same image.

@endif @php($submittedProfile=json_decode($receipt->profile,true) ?: []) @if($submittedProfile)
Submitted customer details

Name: {{ $submittedProfile['name'] ?? 'Not provided' }} · Mobile: {{ $submittedProfile['mobile'] ?? 'Not provided' }}

@foreach($submittedProfile['custom_answers'] ?? [] as $answer)

{{ $answer['label'] }}: {{ $answer['value'] }}

@endforeach
@endif @php($claimResults=\Illuminate\Support\Facades\DB::table('spins')->where('receipt_id',$receipt->id)->get())

Spins left: {{ $receipt->remaining_claim_spins }} / {{ $receipt->claim_spins }} · Play before: {{ $receipt->review_deadline ?: 'Not set' }}

@php($claimRules=json_decode($receipt->rules_snapshot,true) ?: []) @if($claimRules)
Rules saved for this claim

Minimum spend: {{ isset($claimRules['minimum_spend']) ? \App\Services\CampaignCurrency::format($claimRules['minimum_spend'],$receiptCurrency) : 'Not set' }}

@endif @foreach($claimResults as $reward)

{{ $reward->prize_name }} · {{ ucfirst($reward->reward_status) }} @if($reward->redemption_code)
Redemption code: {{ $reward->redemption_code }}@endif

@if($reward->reward_status==='confirmed')
@csrf
@endif @endforeach @foreach(\Illuminate\Support\Facades\DB::table('claim_emails')->where('receipt_id',$receipt->id)->get() as $emailJob)

Email ({{ str_starts_with($emailJob->kind,'reward-') ? 'Reward confirmation' : ucfirst($emailJob->kind) }}): {{ ucfirst($emailJob->status) }} · {{ $emailJob->to }}@if($emailJob->sent_at) · {{ $emailJob->sent_at }}@endif

@if(!in_array($emailJob->status,['sent','skipped']))
@csrf
@endif @endforeach @if($receipt->status==='pending') @if($errors->any() && (string)old('editing_receipt')===(string)$receipt->id)@endif
@csrfYou may approve before the customer spins. Existing results are confirmed now; future wins from this receipt are confirmed and emailed automatically. Unused spins keep the saved play deadline.
Reject receipt
@csrf
@else

{{ ucfirst($receipt->status) }} · {{ $receipt->reviewed_at }}

@if($receipt->spins)

{{ $receipt->spins }} results confirmed

@endif @if($receipt->reason)

{{ $receipt->reason }}

@endif @endif