added account service
This commit is contained in:
@@ -127,34 +127,54 @@ class ImbangDugaService
|
||||
|
||||
$firstMonth = (clone $currentDate)->firstOfMonth();
|
||||
$lastMonth = (clone $currentDate)->endOfMonth();
|
||||
|
||||
/* Start Keuntungan Semasa Calculation */
|
||||
$get_norujukan = Gadai::on($cawangan['mysql'])
|
||||
->selectRaw("norujukan,CASE WHEN (YEAR(t_gadai) = YEAR(t_update) and MONTH(t_gadai) = MONTH(t_update)) THEN '1' ELSE '0' END AS result")
|
||||
->whereNotNull('hargajualan')->where('tagbaru', 0)->having('result', '=', 0)->pluck('norujukan');
|
||||
|
||||
$collection_trans = Transaction::on('mysql7')
|
||||
->leftJoin('transaksi_keuntungan as trans', function ($join) {
|
||||
$join->on('transaction.norujukan', '=', 'trans.norujukan');
|
||||
$join->on('transaction.created_at', '=', 'trans.tarikh_bayaran');
|
||||
})
|
||||
->where('transaction.kodcaw', $this->kodcaw)
|
||||
->whereYear('transaction.created_at', '=', $currentDate->year)
|
||||
->whereMonth('transaction.created_at', '=', $currentDate->month)
|
||||
->get();
|
||||
|
||||
$summation = Transaction::on('mysql7')
|
||||
->selectRaw("SUM(CASE WHEN (transaction.trans_type) <> 'A' THEN (trans.keuntungan_rebet) ELSE 0 END) AS sum_keun,SUM(CASE WHEN (transaction.trans_type) = 'A' THEN (trans.bayaran_keuntungan) ELSE 0 END) AS sum_bayaran")
|
||||
->leftJoin('transaksi_keuntungan as trans', function ($join) {
|
||||
$join->on('transaction.norujukan', '=', 'trans.norujukan');
|
||||
$join->on('transaction.created_at', '=', 'trans.tarikh_bayaran');
|
||||
})
|
||||
->whereIn('trans.norujukan', $get_norujukan)
|
||||
->whereDate('trans.tarikh_bayaran', '>=', $firstMonth)
|
||||
->whereDate('trans.tarikh_bayaran', '<=', $lastMonth)
|
||||
->whereYear('tarikh_bayaran', '=', $currentDate->year)
|
||||
->where('trans.kodcaw', $this->kodcaw)
|
||||
->get()->toArray();
|
||||
|
||||
$array_norujukan = $collection_trans->pluck('norujukan')->toArray();
|
||||
|
||||
$collection_gadai = Gadai::on($cawangan['mysql'])->whereIn('norujukan', $array_norujukan)->where('tagbaru',0)->get();
|
||||
|
||||
$keuntungan_semasa_collection = $collection_trans->filter(function ($trans) use ($collection_gadai) {
|
||||
foreach ($collection_gadai as $gadai) {
|
||||
if ($gadai->norujukan === $trans->norujukan) {
|
||||
$t_gadai = Carbon::parse($gadai->t_gadai);
|
||||
$t_bayaran = Carbon::parse($trans->tarikh_bayaran);
|
||||
|
||||
if (($t_gadai->month == $t_bayaran->month) && ($t_gadai->year == $t_bayaran->year)) {
|
||||
return false;
|
||||
}else{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
});
|
||||
|
||||
$total_ansuran = $keuntungan_semasa_collection->filter(function ($transaction){
|
||||
return $transaction->trans_type == 'A';
|
||||
})->sum('bayaran_keuntungan');
|
||||
|
||||
$total_tebus = $keuntungan_semasa_collection->filter(function ($transaction){
|
||||
return $transaction->trans_type !== 'A';
|
||||
})->sum('keuntungan_rebet');
|
||||
|
||||
/* Keuntungan Lelong */
|
||||
$upahlelong = Lelong::on($cawangan['mysql'])
|
||||
->where([['tagujrah','=',0],['t_jual', '>=', $firstMonth], ['t_jual', '<=', $lastMonth], ['t_jual', '>', '2022-07-24']])
|
||||
->whereYear('t_jual', '=', $currentDate->year)
|
||||
->sum('bakiupah');
|
||||
|
||||
$sum_keuntungan = ($summation) ? $summation[0]['sum_keun'] : 0;
|
||||
$sum_bayaran = ($summation) ? $summation[0]['sum_bayaran'] : 0;
|
||||
|
||||
$total_keuntungan_semasa = ($sum_keuntungan + $sum_bayaran + $upahlelong);
|
||||
$total_keuntungan_semasa = ($total_ansuran + $total_tebus + $upahlelong);
|
||||
|
||||
/* End Keuntungan Semasa Calculation */
|
||||
return $total_keuntungan_semasa;
|
||||
@@ -205,10 +225,12 @@ class ImbangDugaService
|
||||
|
||||
if ($t_gadai->month === $t_bayaran->month) {
|
||||
return false;
|
||||
}else{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
return false;
|
||||
});
|
||||
|
||||
|
||||
@@ -295,62 +317,25 @@ class ImbangDugaService
|
||||
$year = (clone $tarikh)->year;
|
||||
$month = (clone $tarikh)->month;
|
||||
|
||||
$get_norujukan = Gadai::on($cawangan['mysql'])
|
||||
->selectRaw("norujukan,CASE WHEN (YEAR(t_gadai) = YEAR(t_update) and MONTH(t_gadai) = MONTH(t_update)) THEN '1' ELSE '0' END AS result")
|
||||
->whereNotNull('hargajualan')
|
||||
->having('result', '=', 1)
|
||||
->whereYear('t_gadai', '=', $year)
|
||||
->whereMonth('t_gadai', '<=', $month)
|
||||
->where('sttebus', '<>', '')
|
||||
->pluck('norujukan');
|
||||
$lastDayPreviousMonth = $tarikh->subMonthsNoOverflow()->endOfMonth()->toDateString();
|
||||
|
||||
$get_imbangduga = imbangdugabackup::on($cawangan['mysql'])->where('tarikh',$lastDayPreviousMonth)->first()->toArray();
|
||||
|
||||
|
||||
$sum_keun = Transaction::on('mysql7')
|
||||
->selectRaw("trans.norujukan,SUM(CASE WHEN (transaction.trans_type) <> 'A' THEN (trans.keuntungan_rebet) ELSE 0 END) AS sum_keun,SUM(CASE WHEN (transaction.trans_type) = 'A' AND (trans.margin_semasa) = 0 THEN (trans.bayaran_keuntungan) ELSE 0 END) AS sum_bayaran")
|
||||
// ->select('trans.norujukan','transaction.trans_type','trans.keuntungan_rebet','trans.bayaran_keuntungan','trans.margin_semasa')
|
||||
->leftJoin('transaksi_keuntungan as trans', function ($join) {
|
||||
$join->on('transaction.norujukan', '=', 'trans.norujukan');
|
||||
$join->on('transaction.created_at', '=', 'trans.tarikh_bayaran');
|
||||
})
|
||||
->whereIn('trans.norujukan', $get_norujukan)->get()->toArray();
|
||||
|
||||
$sum_keuntungan = ($sum_keun) ? $sum_keun[0]['sum_keun'] : 0;
|
||||
$sum_bayaran = ($sum_keun) ? $sum_keun[0]['sum_bayaran'] : 0;
|
||||
|
||||
/* Ansuran masuk dalam ni */
|
||||
|
||||
// $get_norujukan_ansuran = Gadai::on($cawangan['mysql'])
|
||||
// ->selectRaw("norujukan,CASE WHEN (YEAR(t_gadai) = YEAR(t_update) and MONTH(t_gadai) = MONTH(t_update)) THEN '1' ELSE '0' END AS result")
|
||||
// ->whereNotNull('hargajualan')
|
||||
// ->having('result','=',1)
|
||||
// ->whereYear('t_gadai', '=', $year)
|
||||
// ->whereMonth('t_gadai', '<=', $month)
|
||||
// ->where('sttebus','=','')
|
||||
// ->where('tagbaru','=',1)
|
||||
// ->pluck('norujukan');
|
||||
|
||||
// $summation_ansuran = TransaksiKeuntungan::on('mysql7')
|
||||
// ->whereIn('norujukan',$get_norujukan_ansuran)->sum('bayaran_keuntungan');
|
||||
|
||||
$collection_trans = Transaction::on('mysql7')
|
||||
->leftJoin('transaksi_keuntungan as trans', function ($join) {
|
||||
$join->on('transaction.norujukan', '=', 'trans.norujukan');
|
||||
$join->on('transaction.created_at', '=', 'trans.tarikh_bayaran');
|
||||
})
|
||||
->where('transaction.trans_type', 'A')
|
||||
->where('transaction.kodcaw', $this->kodcaw)
|
||||
->where('trans.margin_semasa','>',0)
|
||||
->whereYear('transaction.created_at', '=', $year)
|
||||
->whereMonth('transaction.created_at', '<=', $month)
|
||||
->whereMonth('transaction.created_at', '=', $month)
|
||||
->get();
|
||||
|
||||
$array_norujukan = $collection_trans->pluck('norujukan')->toArray();
|
||||
|
||||
$collection_gadai = Gadai::on($cawangan['mysql'])->whereIn('norujukan', $array_norujukan)->where('tagbaru',1)->get();
|
||||
$collection_gadai = Gadai::on($cawangan['mysql'])->whereIn('norujukan', $array_norujukan)->whereYear('t_gadai',$year)->get();
|
||||
|
||||
$keuntungan_semasa_collection = $collection_trans->filter(function ($trans) use ($collection_gadai) {
|
||||
|
||||
foreach ($collection_gadai as $gadai) {
|
||||
if ($gadai->norujukan === $trans->norujukan) {
|
||||
$t_gadai = Carbon::parse($gadai->t_gadai);
|
||||
@@ -358,17 +343,24 @@ class ImbangDugaService
|
||||
|
||||
if ($t_gadai->month !== $t_bayaran->month) {
|
||||
return false;
|
||||
}else{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
return false;
|
||||
});
|
||||
|
||||
$summation_ansuran = $keuntungan_semasa_collection->sum('bayaran_keuntungan');
|
||||
$total_ansuran = $keuntungan_semasa_collection->filter(function ($transaction){
|
||||
return $transaction->trans_type == 'A';
|
||||
})->sum('bayaran_keuntungan');
|
||||
|
||||
$total_tebus = $keuntungan_semasa_collection->filter(function ($transaction){
|
||||
return $transaction->trans_type !== 'A';
|
||||
})->sum('keuntungan_rebet');
|
||||
|
||||
$total = $total_ansuran + $total_tebus + $get_imbangduga['keun_sebenar'];
|
||||
|
||||
$total = $sum_keuntungan + $sum_bayaran + $summation_ansuran;
|
||||
// $total = $sum_keuntungan + $sum_bayaran;
|
||||
return $total;
|
||||
}
|
||||
|
||||
@@ -911,7 +903,7 @@ class ImbangDugaService
|
||||
$ujrah = $accrual['ujrah'];
|
||||
$onepercent = $accrual['onepercent'];
|
||||
$bayaranpend = -1*($bayaranpend);
|
||||
$untungrugiterkumpul = $this->getUntungRugiTerkumpul();
|
||||
// $untungrugiterkumpul = $this->getUntungRugiTerkumpul();
|
||||
|
||||
$totalharta = imbangdugabackup::on($cawangan['mysql'])->where('tarikh', $this->tarikh)
|
||||
->get()
|
||||
@@ -922,9 +914,9 @@ class ImbangDugaService
|
||||
|
||||
$totaltanggungan = imbangdugabackup::on($cawangan['mysql'])->where('tarikh', $this->tarikh)
|
||||
->get()
|
||||
->map(function ($ig) use ($ujrah, $onepercent, $keun_sebenar, $pend_terakru,$pendahuluan,$untungrugiterkumpul) {
|
||||
->map(function ($ig) use ($ujrah, $onepercent, $keun_sebenar, $pend_terakru,$pendahuluan) {
|
||||
return $pend_terakru + $ig['bds'] + $ig['perubatan'] + $ig['keraian'] + $ig['rugilelong'] + $ig['bakilelong']
|
||||
+ $ig['wtd'] + $untungrugiterkumpul + $keun_sebenar + $pendahuluan + $ig['cajlelong']
|
||||
+ $ig['wtd'] + $ig['untungrugiterkumpul'] + $keun_sebenar + $pendahuluan + $ig['cajlelong']
|
||||
+ $ig['cajperkhidmatan'] + $ig['cajlelongxtra'] + $ig['upahsimpanxtra'] + $ig['bakilelongxtra'] + $ig['rugilelongxtra']
|
||||
+ $ig['utgterkumpulxtra'] + $ig['jualan1stop'] + $ig['hapuskira'] + $ujrah + $onepercent;
|
||||
});
|
||||
@@ -936,7 +928,7 @@ class ImbangDugaService
|
||||
} else {
|
||||
$booltally = false;
|
||||
}
|
||||
|
||||
// dd($totalharta[0],$totaltanggungan[0],$pend_terakru,$keuntungan_penggadai,$keun_sebenar);
|
||||
|
||||
imbangdugabackup::on($cawangan['mysql'])->where('tarikh', $this->tarikh)->update([
|
||||
'tunaiditangan' => $tunaiditangan,
|
||||
@@ -948,7 +940,7 @@ class ImbangDugaService
|
||||
'bayaranpendahuluan' => $bayaranpend,
|
||||
'serahan' => $serahan,
|
||||
'pendahuluan' => $pendahuluan,
|
||||
'untungrugiterkumpul' => $untungrugiterkumpul,
|
||||
// 'untungrugiterkumpul' => $untungrugiterkumpul,
|
||||
'totalharta' => round($totalharta[0], 2),
|
||||
'totaltanggungan' => round($totaltanggungan[0], 2),
|
||||
'tagtally' => $booltally,
|
||||
|
||||
Reference in New Issue
Block a user