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);
|
return response()->json($ansuran);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getLaporanAnsuranUjrah($kodcaw,Request $request){
|
|
||||||
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first();
|
|
||||||
|
|
||||||
$ansuran_data = Transaction::on('mysql7')
|
public function getLaporanAnsuranUjrah($kodcaw, Request $request)
|
||||||
->select('transaction.norujukan',
|
{
|
||||||
'trans.tarikh_bayaran',
|
$cawangan = Cawangan::on('mysql7')->where('kodcaw', '=', $kodcaw)->first();
|
||||||
'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();
|
|
||||||
|
|
||||||
$ansuran = [];
|
// 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);
|
||||||
|
|
||||||
if($ansuran_data){
|
// Tambah filter berdasarkan jenis
|
||||||
foreach($ansuran_data as $index=>$ansuranData){
|
if ($request->jenis == 'arrahnpay') {
|
||||||
$gadai = Gadai::on($cawangan['mysql'])->where('norujukan',$ansuranData['norujukan'])->first();
|
$query->where('transaction.teller', '=', 'Online');
|
||||||
|
} elseif ($request->jenis == 'kaunter') {
|
||||||
|
$query->where('transaction.teller', '!=', 'Online');
|
||||||
|
}
|
||||||
|
|
||||||
array_push($ansuran,[
|
// Dapatkan data selepas filter
|
||||||
"norujukan" => $ansuranData['norujukan'],
|
$ansuran_data = $query
|
||||||
"tarikh_bayaran" => $ansuranData['tarikh_bayaran'],
|
->orderBy('transaction.teller')
|
||||||
"nokp" => $ansuranData['nokp'],
|
->orderBy('trans.tarikh_bayaran')
|
||||||
"kodcaw" => $ansuranData['kodcaw'],
|
->get();
|
||||||
"trans_type" => $ansuranData['trans_type'],
|
|
||||||
"nama" => $ansuranData['nama'],
|
$ansuran = [];
|
||||||
"tempoh" => $gadai['tempoh'],
|
|
||||||
"bakipjm" => $gadai['bakipjm'],
|
// Loop data dan tambahkan maklumat dari jadual gadai
|
||||||
"bayaran_pembiayaan" => $ansuranData['bayaran_pembiayaan'],
|
if ($ansuran_data) {
|
||||||
"duit_masuk" => $ansuranData['duit_masuk'],
|
foreach ($ansuran_data as $index => $ansuranData) {
|
||||||
"bayaran_keuntungan" => $ansuranData['bayaran_keuntungan'],
|
$gadai = Gadai::on($cawangan['mysql'])->where('norujukan', $ansuranData['norujukan'])->first();
|
||||||
"teller" => $ansuranData['teller'],
|
|
||||||
"ansuranujrah" => $ansuranData['ujrah'],
|
array_push($ansuran, [
|
||||||
"ansuranonepercent" => $ansuranData['onepercent'],
|
"norujukan" => $ansuranData['norujukan'],
|
||||||
"t_gadai" => $gadai['t_gadai'],
|
"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) {
|
return $compare_teller;
|
||||||
$compare_teller = strcmp($a['teller'], $b['teller']);
|
});
|
||||||
|
|
||||||
if ($compare_teller === 0) {
|
return response()->json($ansuran);
|
||||||
return strcmp($a['tarikh_bayaran'], $b['tarikh_bayaran']);
|
}
|
||||||
}
|
|
||||||
|
|
||||||
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){
|
public function getAnsuranSummary($kodcaw,Request $request){
|
||||||
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first();
|
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first();
|
||||||
|
|||||||
Reference in New Issue
Block a user