Merged in bugfixlaporanansuran (pull request #333)
fix seperate laporan ansuran pembiayaan
This commit is contained in:
@@ -998,77 +998,188 @@ class GadaiController extends Controller
|
||||
return response()->json($ansuran);
|
||||
}
|
||||
|
||||
public function getLaporanAnsuranUjrah($kodcaw,Request $request){
|
||||
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first();
|
||||
|
||||
public function getLaporanAnsuranUjrah($kodcaw, Request $request)
|
||||
{
|
||||
$cawangan = Cawangan::on('mysql7')->where('kodcaw', '=', $kodcaw)->first();
|
||||
|
||||
$ansuran_data = Transaction::on('mysql7')
|
||||
->select('transaction.norujukan',
|
||||
'trans.tarikh_bayaran',
|
||||
'transaction.nokp',
|
||||
'transaction.kodcaw',
|
||||
'transaction.trans_type',
|
||||
'cust.nama','trans.bayaran_pembiayaan',
|
||||
'transaction.duit_masuk',
|
||||
'trans.bayaran_keuntungan',
|
||||
'transaction.teller',
|
||||
'trans.ujrah',
|
||||
'trans.onepercent')
|
||||
->leftJoin('transaksi_keuntungan as trans', function($join)
|
||||
{
|
||||
$join->on('transaction.norujukan', '=', 'trans.norujukan');
|
||||
$join->on('transaction.created_at', '=', 'trans.tarikh_bayaran');
|
||||
})
|
||||
->leftJoin('customer as cust', function($join)
|
||||
{
|
||||
$join->on('transaction.nokp', '=', 'cust.kpbaru');
|
||||
$join->orOn('transaction.nokp', '=', 'cust.kplama');
|
||||
})
|
||||
->where('transaction.kodcaw','=',$kodcaw)
|
||||
->where('transaction.trans_type','=','A')
|
||||
->whereDate('transaction.created_at', '>=', $request->mula)
|
||||
->whereDate('transaction.created_at', '<=', $request->akhir)
|
||||
->orderBy('transaction.teller')
|
||||
->orderBy('trans.tarikh_bayaran')
|
||||
->get();
|
||||
// Bina query asas dahulu
|
||||
$query = Transaction::on('mysql7')
|
||||
->select(
|
||||
'transaction.norujukan',
|
||||
'trans.tarikh_bayaran',
|
||||
'transaction.nokp',
|
||||
'transaction.kodcaw',
|
||||
'transaction.trans_type',
|
||||
'cust.nama',
|
||||
'trans.bayaran_pembiayaan',
|
||||
'transaction.duit_masuk',
|
||||
'trans.bayaran_keuntungan',
|
||||
'transaction.teller',
|
||||
'trans.ujrah',
|
||||
'trans.onepercent'
|
||||
)
|
||||
->leftJoin('transaksi_keuntungan as trans', function ($join) {
|
||||
$join->on('transaction.norujukan', '=', 'trans.norujukan');
|
||||
$join->on('transaction.created_at', '=', 'trans.tarikh_bayaran');
|
||||
})
|
||||
->leftJoin('customer as cust', function ($join) {
|
||||
$join->on('transaction.nokp', '=', 'cust.kpbaru');
|
||||
$join->orOn('transaction.nokp', '=', 'cust.kplama');
|
||||
})
|
||||
->where('transaction.kodcaw', '=', $kodcaw)
|
||||
->where('transaction.trans_type', '=', 'A')
|
||||
->whereDate('transaction.created_at', '>=', $request->mula)
|
||||
->whereDate('transaction.created_at', '<=', $request->akhir);
|
||||
|
||||
$ansuran = [];
|
||||
// Tambah filter berdasarkan jenis
|
||||
if ($request->jenis == 'arrahnpay') {
|
||||
$query->where('transaction.teller', '=', 'Online');
|
||||
} elseif ($request->jenis == 'kaunter') {
|
||||
$query->where('transaction.teller', '!=', 'Online');
|
||||
}
|
||||
|
||||
if($ansuran_data){
|
||||
foreach($ansuran_data as $index=>$ansuranData){
|
||||
$gadai = Gadai::on($cawangan['mysql'])->where('norujukan',$ansuranData['norujukan'])->first();
|
||||
// Dapatkan data selepas filter
|
||||
$ansuran_data = $query
|
||||
->orderBy('transaction.teller')
|
||||
->orderBy('trans.tarikh_bayaran')
|
||||
->get();
|
||||
|
||||
array_push($ansuran,[
|
||||
"norujukan" => $ansuranData['norujukan'],
|
||||
"tarikh_bayaran" => $ansuranData['tarikh_bayaran'],
|
||||
"nokp" => $ansuranData['nokp'],
|
||||
"kodcaw" => $ansuranData['kodcaw'],
|
||||
"trans_type" => $ansuranData['trans_type'],
|
||||
"nama" => $ansuranData['nama'],
|
||||
"tempoh" => $gadai['tempoh'],
|
||||
"bakipjm" => $gadai['bakipjm'],
|
||||
"bayaran_pembiayaan" => $ansuranData['bayaran_pembiayaan'],
|
||||
"duit_masuk" => $ansuranData['duit_masuk'],
|
||||
"bayaran_keuntungan" => $ansuranData['bayaran_keuntungan'],
|
||||
"teller" => $ansuranData['teller'],
|
||||
"ansuranujrah" => $ansuranData['ujrah'],
|
||||
"ansuranonepercent" => $ansuranData['onepercent'],
|
||||
"t_gadai" => $gadai['t_gadai'],
|
||||
]);
|
||||
}
|
||||
$ansuran = [];
|
||||
|
||||
// Loop data dan tambahkan maklumat dari jadual gadai
|
||||
if ($ansuran_data) {
|
||||
foreach ($ansuran_data as $index => $ansuranData) {
|
||||
$gadai = Gadai::on($cawangan['mysql'])->where('norujukan', $ansuranData['norujukan'])->first();
|
||||
|
||||
array_push($ansuran, [
|
||||
"norujukan" => $ansuranData['norujukan'],
|
||||
"tarikh_bayaran" => $ansuranData['tarikh_bayaran'],
|
||||
"nokp" => $ansuranData['nokp'],
|
||||
"kodcaw" => $ansuranData['kodcaw'],
|
||||
"trans_type" => $ansuranData['trans_type'],
|
||||
"nama" => $ansuranData['nama'],
|
||||
"tempoh" => optional($gadai)->tempoh,
|
||||
"bakipjm" => optional($gadai)->bakipjm,
|
||||
"bayaran_pembiayaan" => $ansuranData['bayaran_pembiayaan'],
|
||||
"duit_masuk" => $ansuranData['duit_masuk'],
|
||||
"bayaran_keuntungan" => $ansuranData['bayaran_keuntungan'],
|
||||
"teller" => $ansuranData['teller'],
|
||||
"ansuranujrah" => $ansuranData['ujrah'],
|
||||
"ansuranonepercent" => $ansuranData['onepercent'],
|
||||
"t_gadai" => optional($gadai)->t_gadai,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
// Susun ikut teller dan tarikh bayar
|
||||
usort($ansuran, function ($a, $b) {
|
||||
$compare_teller = strcmp($a['teller'], $b['teller']);
|
||||
|
||||
if ($compare_teller === 0) {
|
||||
return strcmp($a['tarikh_bayaran'], $b['tarikh_bayaran']);
|
||||
}
|
||||
|
||||
usort($ansuran, function ($a, $b) {
|
||||
$compare_teller = strcmp($a['teller'], $b['teller']);
|
||||
return $compare_teller;
|
||||
});
|
||||
|
||||
if ($compare_teller === 0) {
|
||||
return strcmp($a['tarikh_bayaran'], $b['tarikh_bayaran']);
|
||||
}
|
||||
return response()->json($ansuran);
|
||||
}
|
||||
|
||||
return $compare_teller;
|
||||
});
|
||||
|
||||
return response()->json($ansuran);
|
||||
}
|
||||
// public function getLaporanAnsuranUjrah($kodcaw, Request $request)
|
||||
// {
|
||||
// $cawangan = Cawangan::on('mysql7')->where('kodcaw', '=', $kodcaw)->first();
|
||||
// $semuaDescpt = Transaction::on('mysql7')
|
||||
// ->where('kodcaw', '=', $kodcaw)
|
||||
// ->pluck('descpt');
|
||||
|
||||
// dd($semuaDescpt);
|
||||
|
||||
// Dapatkan connection cawangan
|
||||
// $connection = $cawangan['mysql'];
|
||||
|
||||
// // Mula query utama ansuran
|
||||
// $query = Transaction::on('mysql7')
|
||||
// ->select(
|
||||
// 'transaction.norujukan',
|
||||
// 'trans.tarikh_bayaran',
|
||||
// 'transaction.nokp',
|
||||
// 'transaction.kodcaw',
|
||||
// 'transaction.trans_type',
|
||||
// 'cust.nama',
|
||||
// 'trans.bayaran_pembiayaan',
|
||||
// 'transaction.duit_masuk',
|
||||
// 'trans.bayaran_keuntungan',
|
||||
// 'transaction.teller',
|
||||
// 'trans.ujrah',
|
||||
// 'trans.onepercent'
|
||||
// )
|
||||
// ->leftJoin('transaksi_keuntungan as trans', function ($join) {
|
||||
// $join->on('transaction.norujukan', '=', 'trans.norujukan');
|
||||
// $join->on('transaction.created_at', '=', 'trans.tarikh_bayaran');
|
||||
// })
|
||||
// ->leftJoin('customer as cust', function ($join) {
|
||||
// $join->on('transaction.nokp', '=', 'cust.kpbaru');
|
||||
// $join->orOn('transaction.nokp', '=', 'cust.kplama');
|
||||
// })
|
||||
// ->where('transaction.kodcaw', '=', $kodcaw)
|
||||
// ->where('transaction.trans_type', '=', 'A')
|
||||
// ->whereDate('transaction.created_at', '>=', $request->mula)
|
||||
// ->whereDate('transaction.created_at', '<=', $request->akhir);
|
||||
|
||||
|
||||
// // 💡 Tambah filter ikut jenis
|
||||
// if ($request->jenis == 'online') {
|
||||
// $query->where('transaction.descpt', 'LIKE', 'Laporan Ansuran Pembiayaan (Arrahn Pay)%');
|
||||
// } elseif ($request->jenis == 'kaunter') {
|
||||
// $query->where('transaction.descpt', 'LIKE', 'Laporan Ansuran Pembiayaan (Kaunter aros)%');
|
||||
// } else {
|
||||
// $query->where('transaction.descpt', 'LIKE', 'Laporan Ansuran Pembiayaan%');
|
||||
// }
|
||||
|
||||
// // Order by
|
||||
// $query->orderBy('transaction.teller')->orderBy('trans.tarikh_bayaran');
|
||||
|
||||
// // Dapatkan data
|
||||
// $ansuran_data = $query->get();
|
||||
|
||||
// // Proses data
|
||||
// $ansuran = [];
|
||||
// if ($ansuran_data) {
|
||||
// foreach ($ansuran_data as $index => $ansuranData) {
|
||||
// $gadai = Gadai::on($connection)->where('norujukan', $ansuranData['norujukan'])->first();
|
||||
|
||||
// array_push($ansuran, [
|
||||
// "norujukan" => $ansuranData['norujukan'],
|
||||
// "tarikh_bayaran" => $ansuranData['tarikh_bayaran'],
|
||||
// "nokp" => $ansuranData['nokp'],
|
||||
// "kodcaw" => $ansuranData['kodcaw'],
|
||||
// "trans_type" => $ansuranData['trans_type'],
|
||||
// "nama" => $ansuranData['nama'],
|
||||
// "tempoh" => $gadai['tempoh'] ?? null,
|
||||
// "bakipjm" => $gadai['bakipjm'] ?? null,
|
||||
// "bayaran_pembiayaan" => $ansuranData['bayaran_pembiayaan'],
|
||||
// "duit_masuk" => $ansuranData['duit_masuk'],
|
||||
// "bayaran_keuntungan" => $ansuranData['bayaran_keuntungan'],
|
||||
// "teller" => $ansuranData['teller'],
|
||||
// "ansuranujrah" => $ansuranData['ujrah'],
|
||||
// "ansuranonepercent" => $ansuranData['onepercent'],
|
||||
// "t_gadai" => $gadai['t_gadai'] ?? null,
|
||||
// ]);
|
||||
// }
|
||||
// }
|
||||
|
||||
// // Susun data
|
||||
// usort($ansuran, function ($a, $b) {
|
||||
// $compare_teller = strcmp($a['teller'], $b['teller']);
|
||||
// return $compare_teller === 0
|
||||
// ? strcmp($a['tarikh_bayaran'], $b['tarikh_bayaran'])
|
||||
// : $compare_teller;
|
||||
// });
|
||||
|
||||
// return response()->json($ansuran);
|
||||
// }
|
||||
|
||||
public function getAnsuranSummary($kodcaw,Request $request){
|
||||
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first();
|
||||
|
||||
Reference in New Issue
Block a user