@extends('layouts.master') @section('content')

Pelanggan

@if ($errors->any())
@endif
Tambah Pelanggan
@csrf @if (isset($customer)) @endif
@php $ranges = \App\Models\RangePlafond::all(); $sangatTerpercaya = $ranges->where('rating', 'Sangat Terpercaya')->first(); @endphp
@if(auth()->user()->pegawai && auth()->user()->pegawai->jabatan_id == 1) @endif
@if(isset($customer)) Kembali @endif
@if(!isset($customer))
Daftar Pelanggan
Reset
@if (isset($customers) && count($customers) > 0) @forelse ($customers as $customer) @php // Hitung sisa plafond dan rating dinamis untuk modal $status_belum_lunas = ['belum ada pembayaran', 'belum_lunas', 'Uang Muka', 'Termin 1', 'Termin 2', 'Retur Potong Nota']; $total_sisa_tagihan_modal = 0; $transaksis_modal = $customer->transaksis()->where('jenis', 2)->whereIn('status_pembayaran', $status_belum_lunas)->get(); foreach ($transaksis_modal as $trx_modal) { $total_tagihan_modal = $trx_modal->barangTransaksis->sum(function($barang) { $subtotal = $barang->jumlah * $barang->harga_jual; $diskon = $barang->diskon > 0 ? ($subtotal * $barang->diskon / 100) : 0; $setelah_diskon = $subtotal - $diskon; $pajak = $barang->pajak > 0 ? ($setelah_diskon * $barang->pajak / 100) : 0; return $setelah_diskon + $pajak; }); $total_tagihan_modal += ($trx_modal->biaya_ekspedisi ?? 0); $uang_muka_modal = $trx_modal->pembayarans->where('status_pembayaran', 'Uang Muka')->sum('jumlah_bayar'); $termin1_modal = $trx_modal->pembayarans->where('status_pembayaran', 'Termin 1')->sum('jumlah_bayar'); $termin2_modal = $trx_modal->pembayarans->where('status_pembayaran', 'Termin 2')->sum('jumlah_bayar'); $retur_potong_nota_modal = 0; if ($trx_modal->returPenjualan) { foreach ($trx_modal->returPenjualan as $retur) { foreach ($retur->barangTransaksis as $barangRetur) { if ($barangRetur->tipe_retur == 'potong_nota') { $retur_potong_nota_modal += $barangRetur->harga_total; } } } } $sisa_modal = $total_tagihan_modal - ($uang_muka_modal + $termin1_modal + $termin2_modal + $retur_potong_nota_modal); if ($sisa_modal < 0) $sisa_modal = 0; $total_sisa_tagihan_modal += $sisa_modal; } $sisa_plafond_modal = $customer->plafond - $total_sisa_tagihan_modal; $ranges = \App\Models\RangePlafond::all(); $kurangTerpercaya = $ranges->where('rating', 'Kurang Terpercaya')->first(); $terpercaya = $ranges->where('rating', 'Terpercaya')->first(); $sangatTerpercaya = $ranges->where('rating', 'Sangat Terpercaya')->first(); if ($sisa_plafond_modal >= $sangatTerpercaya->plafond_minimal) { $rating_modal = 'sangat_terpercaya'; } elseif ($sisa_plafond_modal >= $terpercaya->plafond_minimal && $sisa_plafond_modal <= $terpercaya->plafond_maksimal) { $rating_modal = 'terpercaya'; } elseif ($sisa_plafond_modal >= $kurangTerpercaya->plafond_minimal && $sisa_plafond_modal <= $kurangTerpercaya->plafond_maksimal) { $rating_modal = 'kurang_terpercaya'; } else { $rating_modal = 'tidak_terdefinisi'; } @endphp @empty @endforelse @else @endif
Nama Alamat Telepon Kota Plafond Sales Ekspedisi Rating Aksi
{{ $customer->nama }} {{ $customer->alamat }} {{ $customer->telepon }} {{ $customer->kota ? $customer->kota->jenis . ' ' . $customer->kota->nama : '-' }} @php // Status pembayaran yang dianggap belum lunas $status_belum_lunas = ['belum ada pembayaran', 'belum_lunas', 'Uang Muka', 'Termin 1', 'Termin 2', 'Retur Potong Nota']; $total_sisa_tagihan = 0; $transaksis = $customer->transaksis()->where('jenis', 2)->whereIn('status_pembayaran', $status_belum_lunas)->get(); foreach ($transaksis as $trx) { // Ambil total tagihan $total_tagihan = $trx->barangTransaksis->sum(function($barang) { $subtotal = $barang->jumlah * $barang->harga_jual; $diskon = $barang->diskon > 0 ? ($subtotal * $barang->diskon / 100) : 0; $setelah_diskon = $subtotal - $diskon; $pajak = $barang->pajak > 0 ? ($setelah_diskon * $barang->pajak / 100) : 0; return $setelah_diskon + $pajak; }); $total_tagihan += ($trx->biaya_ekspedisi ?? 0); // Hitung total pembayaran $uang_muka = $trx->pembayarans->where('status_pembayaran', 'Uang Muka')->sum('jumlah_bayar'); $termin1 = $trx->pembayarans->where('status_pembayaran', 'Termin 1')->sum('jumlah_bayar'); $termin2 = $trx->pembayarans->where('status_pembayaran', 'Termin 2')->sum('jumlah_bayar'); $lunas = $trx->pembayarans->where('status_pembayaran', 'Lunas')->sum('jumlah_bayar'); // Retur potong nota $retur_potong_nota = 0; if ($trx->returPenjualan) { foreach ($trx->returPenjualan as $retur) { foreach ($retur->barangTransaksis as $barangRetur) { if ($barangRetur->tipe_retur == 'potong_nota') { $retur_potong_nota += $barangRetur->harga_total; } } } } // Sisa tagihan = total tagihan - (uang muka + termin1 + termin2 + retur potong nota) $sisa = $total_tagihan - ($uang_muka + $termin1 + $termin2 + $retur_potong_nota); if ($sisa < 0) $sisa = 0; $total_sisa_tagihan += $sisa; } $sisa_plafond = $customer->plafond - $total_sisa_tagihan; // Ambil range rating $ranges = \App\Models\RangePlafond::all(); $kurangTerpercaya = $ranges->where('rating', 'Kurang Terpercaya')->first(); $terpercaya = $ranges->where('rating', 'Terpercaya')->first(); $sangatTerpercaya = $ranges->where('rating', 'Sangat Terpercaya')->first(); if ($sisa_plafond >= $sangatTerpercaya->plafond_minimal) { $rating = 'sangat_terpercaya'; } elseif ($sisa_plafond >= $terpercaya->plafond_minimal && $sisa_plafond <= $terpercaya->plafond_maksimal) { $rating = 'terpercaya'; } elseif ($sisa_plafond >= $kurangTerpercaya->plafond_minimal && $sisa_plafond <= $kurangTerpercaya->plafond_maksimal) { $rating = 'kurang_terpercaya'; } else { $rating = 'tidak_terdefinisi'; } @endphp {{ 'Rp ' . number_format($sisa_plafond, 0, ',', '.') }} {{ $customer->sales->nama ?? '-' }} {{ $customer->ekspedisi->nama ?? '-' }} @if($rating == 'sangat_terpercaya') @elseif($rating == 'terpercaya') @elseif($rating == 'kurang_terpercaya') @else @endif
Pelanggan tidak ditemukan
Pelanggan tidak ditemukan
@endif @endsection @push('scripts') @endpush