{{-- resources/views/suppliers/show.blade.php --}} @extends('layouts.app') @section('title', $supplier->name) @section('content') @php use Carbon\Carbon; // Opening balance $opening = (float) ($supplier->opening_balance ?? 0); // Purchases summary $totalPurchases = (float) ($purchases?->sum('total') ?? 0); $totalPaidInPurchases = (float) ($purchases?->sum('paid') ?? 0); // ✅ Payment history sum (যদি controller থেকে $payments আসে) $totalPaidPayments = (float) ($payments?->sum('amount') ?? 0); // Supplier returns sum $totalReturns = (float) ($returns?->sum('total') ?? 0); /** * ✅ Current Due হিসাব: * Opening + Total Purchases - (Total Paid from Payments OR Purchases) - Returns * * এখানে priority দিচ্ছি Payment History sum কে, * কারণ তুমি payments module দিয়ে টাকা দিচ্ছো। * যদি payments না থাকে (খালি), তখন purchases->paid ধরবে। */ $paidForDue = $totalPaidPayments > 0 ? $totalPaidPayments : $totalPaidInPurchases; $currentDue = $opening + $totalPurchases - $paidForDue - $totalReturns; if ($currentDue < 0) $currentDue = 0; // safeguard @endphp

{{ $supplier->name }}

Phone: {{ $supplier->phone ?? '-' }} | Address: {{ $supplier->address ?? '-' }}
Opening Balance: {{ number_format($opening, 2) }}
Total Purchases: {{ number_format($totalPurchases, 2) }}
{{-- ✅ Paid breakdown --}}
Total Paid (Payments): {{ number_format($totalPaidPayments, 2) }}
Paid (from Purchases table): {{ number_format($totalPaidInPurchases, 2) }}
Total Returns: {{ number_format($totalReturns, 2) }}
Current Due: {{ number_format($currentDue, 2) }}
← Back to Suppliers {{-- 🔸 Purchase History --}}
Purchase History
@if(($purchases?->isEmpty() ?? true))

No purchases from this supplier yet.

@else @foreach($purchases as $purchase) {{-- Purchase Items --}} @endforeach
Date Invoice Total Paid Due Status Next Due
{{ $purchase->date ? Carbon::parse($purchase->date)->format('d-m-Y') : '-' }} {{ $purchase->invoice_no }} {{ number_format($purchase->total ?? 0, 2) }} {{ number_format($purchase->paid ?? 0, 2) }} {{ number_format($purchase->due ?? 0, 2) }} @if(($purchase->status ?? null) === 'paid') Paid @else Due @endif {{ $purchase->next_due_date ? Carbon::parse($purchase->next_due_date)->format('d-m-Y') : '-' }}
@forelse($purchase->items as $item) @empty @endforelse
  Product Qty Price Line Total
  {{ $item->product->name ?? '—' }} {{ $item->qty }} {{ number_format($item->price ?? 0, 2) }} {{ number_format($item->line_total ?? 0, 2) }}
  No items
@endif
{{-- 🔹 Payment History --}}
Payment History Total: {{ number_format($totalPaidPayments, 2) }}
@if(($payments?->isEmpty() ?? true))

No payments to this supplier yet.
(Tip: PaymentController এ `type` mismatch থাকলে এখানে দেখাবে না)

@else @foreach($payments as $pay) @endforeach
Date Method Amount Ref No Note
{{ $pay->date ? Carbon::parse($pay->date)->format('d-m-Y') : '-' }} {{ $pay->method ?? '-' }} {{ number_format($pay->amount ?? 0, 2) }} {{ $pay->ref_no ?? '-' }} {{ $pay->note ?? '-' }}
@endif
{{-- 🔥 Return History --}}
Return History
@if(($returns?->isEmpty() ?? true))

No return entries for this supplier.

@else @foreach($returns as $r) @endforeach
Date Product Qty Unit Price Total Note
{{ $r->date ? (is_string($r->date) ? Carbon::parse($r->date)->format('d-m-Y') : $r->date->format('d-m-Y')) : '-' }} {{ optional($r->product)->name ?? '—' }} {{ $r->qty ?? 0 }} {{ number_format($r->unit_price ?? 0, 2) }} {{ number_format($r->total ?? 0, 2) }} {{ $r->note ?? '-' }}
@endif
@endsection