Merged in hotfix/account-service (pull request #222)
Hotfix/account service
This commit is contained in:
@@ -49,11 +49,8 @@ use App\imbangdugalama;
|
||||
use App\HapusKira;
|
||||
use App\MaxPinjaman;
|
||||
use App\Penghutang;
|
||||
use App\RingkasanAnsuran;
|
||||
use App\RingkasanGadai;
|
||||
use App\RingkasanLelong;
|
||||
use App\RingkasanMain;
|
||||
use App\RingkasanTebus;
|
||||
use App\Services\Reports\AccountService;
|
||||
use App\imbangdugabackup;
|
||||
use App\Services\RingkasanHarianServices;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use DateTime;
|
||||
@@ -62,6 +59,10 @@ use Illuminate\Pagination\Paginator;
|
||||
use Illuminate\Support\Collection;
|
||||
use Illuminate\Pagination\LengthAwarePaginator;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
use App\Jobs\AccountCheckJob;
|
||||
use Illuminate\Support\Str;
|
||||
use Illuminate\Support\Facades\Cache;
|
||||
|
||||
class AdminPageController extends Controller
|
||||
{
|
||||
@@ -3120,80 +3121,111 @@ class AdminPageController extends Controller
|
||||
$year = $current->year;
|
||||
$month = $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');
|
||||
|
||||
$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' 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)->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 */
|
||||
|
||||
$collection_trans = TransaksiKeuntungan::on('mysql7')
|
||||
->leftJoin('transaction as trans', function($join)
|
||||
{
|
||||
$join->on('transaksi_keuntungan.norujukan', '=', 'trans.norujukan');
|
||||
$join->on('transaksi_keuntungan.tarikh_bayaran', '=', 'trans.created_at');
|
||||
})
|
||||
->where('trans.kodcaw','=',$request->kodcaw)
|
||||
->where('trans.trans_type','=','A')
|
||||
->where('transaksi_keuntungan.margin_semasa','>','0')
|
||||
->whereYear('transaksi_keuntungan.tarikh_bayaran','=',$year)
|
||||
->whereMonth('transaksi_keuntungan.tarikh_bayaran','<=',$month)
|
||||
->get();
|
||||
|
||||
|
||||
$array_norujukan = $collection_trans->pluck('norujukan')->toArray();
|
||||
|
||||
$collection_gadai = Gadai::on($cawangan['mysql'])->whereIn('norujukan',$array_norujukan)->where('tagbaru',1)->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) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
});
|
||||
|
||||
$summation_ansuran = $keuntungan_semasa_collection->sum('bayaran_keuntungan');
|
||||
|
||||
// $get_norujukan_ansuran = Gadai::on($cawangan['mysql'])
|
||||
// $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','=','')
|
||||
// ->where('tagbaru','=',1)
|
||||
// ->where('sttebus','<>','')
|
||||
// ->pluck('norujukan');
|
||||
|
||||
// $summation_ansuran = TransaksiKeuntungan::on('mysql7')
|
||||
// ->whereIn('norujukan',$get_norujukan_ansuran)->sum('bayaran_keuntungan');
|
||||
// $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' 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)->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 */
|
||||
|
||||
// $collection_trans = TransaksiKeuntungan::on('mysql7')
|
||||
// ->leftJoin('transaction as trans', function($join)
|
||||
// {
|
||||
// $join->on('transaksi_keuntungan.norujukan', '=', 'trans.norujukan');
|
||||
// $join->on('transaksi_keuntungan.tarikh_bayaran', '=', 'trans.created_at');
|
||||
// })
|
||||
// ->where('trans.kodcaw','=',$request->kodcaw)
|
||||
// ->where('trans.trans_type','=','A')
|
||||
// ->where('transaksi_keuntungan.margin_semasa','>','0')
|
||||
// ->whereYear('transaksi_keuntungan.tarikh_bayaran','=',$year)
|
||||
// ->whereMonth('transaksi_keuntungan.tarikh_bayaran','<=',$month)
|
||||
// ->get();
|
||||
|
||||
|
||||
// $array_norujukan = $collection_trans->pluck('norujukan')->toArray();
|
||||
|
||||
// $collection_gadai = Gadai::on($cawangan['mysql'])->whereIn('norujukan',$array_norujukan)->where('tagbaru',1)->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) {
|
||||
// return false;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// return true;
|
||||
// });
|
||||
|
||||
// $summation_ansuran = $keuntungan_semasa_collection->sum('bayaran_keuntungan');
|
||||
|
||||
|
||||
// $total = $sum_keuntungan + $sum_bayaran + $summation_ansuran;
|
||||
|
||||
$lastDayPreviousMonth = $tarikh->subMonthsNoOverflow()->endOfMonth()->toDateString();
|
||||
|
||||
$get_imbangduga = imbangdugabackup::on($cawangan['mysql'])->where('tarikh',$lastDayPreviousMonth)->first()->toArray();
|
||||
|
||||
$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', $request->kodcaw)
|
||||
->whereYear('transaction.created_at', '=', $year)
|
||||
->whereMonth('transaction.created_at', '=', $month)
|
||||
->get();
|
||||
|
||||
$array_norujukan = $collection_trans->pluck('norujukan')->toArray();
|
||||
|
||||
$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);
|
||||
$t_bayaran = Carbon::parse($trans->tarikh_bayaran);
|
||||
|
||||
if ($t_gadai->month !== $t_bayaran->month) {
|
||||
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');
|
||||
|
||||
$total = $total_ansuran + $total_tebus + $get_imbangduga['keun_sebenar'];
|
||||
|
||||
$total = $sum_keuntungan + $sum_bayaran + $summation_ansuran;
|
||||
return response()->json($total);
|
||||
}
|
||||
|
||||
@@ -3800,4 +3832,45 @@ class AdminPageController extends Controller
|
||||
|
||||
return response()->json($cawangan);
|
||||
}
|
||||
|
||||
public function getAccountList(Request $request){
|
||||
|
||||
$cawangan = Cawangan::on('mysql7')->simplePaginate(5);
|
||||
$check = app(AccountService::class);
|
||||
$array_all = ['current_page' => $cawangan->currentPage(), 'job_ids' => []];
|
||||
foreach($cawangan as $caw){
|
||||
try{
|
||||
$jobId = Str::uuid();
|
||||
$res = dispatch(new AccountCheckJob($caw['kodcaw'], $request->month,$jobId));
|
||||
// $array_all['data'][$caw['details_caw']] = $res;
|
||||
$array_all['data'][$caw['details_caw']] = [
|
||||
'jobId' => $jobId,
|
||||
'status' => 'queued',
|
||||
];
|
||||
$array_all['job_ids'][] = $jobId;
|
||||
}catch(\Exception $e){
|
||||
Log::error("Error processing: " . $caw['kodcaw']);
|
||||
Log::error($e->getMessage());
|
||||
|
||||
}
|
||||
}
|
||||
$response = $array_all;
|
||||
|
||||
return response()->json($response);
|
||||
}
|
||||
|
||||
public function getJobStatus(Request $request)
|
||||
{
|
||||
$jobId = $request->input('jobId');
|
||||
|
||||
// Get the job status and result from cache (or database)
|
||||
$status = Cache::get("job_status_{$jobId}", 'not_found');
|
||||
$result = Cache::get("job_result_{$jobId}", []);
|
||||
|
||||
// Return both the status and the result
|
||||
return response()->json([
|
||||
'status' => $status,
|
||||
'result' => $status === 'completed' ? $result : null,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,6 +25,7 @@ use App\imbangdugabackup;
|
||||
use Carbon\Carbon;
|
||||
use App\imbangdugalama;
|
||||
use App\Services\Reports\ImbangDugaService;
|
||||
use App\Services\Reports\Account\GeneralLedger;
|
||||
|
||||
|
||||
use DateTime;
|
||||
@@ -1245,112 +1246,12 @@ class LaporanController extends Controller
|
||||
}
|
||||
|
||||
public function SemakanKeuntunganLejer($kodcaw,Request $request){
|
||||
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$request->kodcaw)->first();
|
||||
$current = Carbon::now();
|
||||
$current = new Carbon();
|
||||
|
||||
$mulaCarbon = new Carbon($request->mula);
|
||||
$hinggaCarbon = new Carbon($request->hingga);
|
||||
$gledger = new GeneralLedger($kodcaw,$request->mula,$request->hingga);
|
||||
$current_profit = $gledger->SemakanKeuntunganLejer();
|
||||
|
||||
/* Start Keuntungan Sebenar 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')->having('result','=',1)->whereDate('t_update','>=',$request->mula)->whereDate('t_update','<=',$request->hingga)->where('sttebus','<>','')->pluck('norujukan');
|
||||
$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")
|
||||
->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;
|
||||
|
||||
// $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)
|
||||
// ->whereDate('t_update','>=',$request->mula)->whereDate('t_update','<=',$request->hingga)
|
||||
// ->where('sttebus','=','')
|
||||
// ->where('tagbaru','=',1)
|
||||
// ->pluck('norujukan');
|
||||
|
||||
// $summation_ansuran = TransaksiKeuntungan::on('mysql7')
|
||||
// ->whereIn('norujukan',$get_norujukan_ansuran)->sum('bayaran_keuntungan');
|
||||
|
||||
$collection_trans = TransaksiKeuntungan::on('mysql7')
|
||||
->leftJoin('transaction as trans', function($join)
|
||||
{
|
||||
$join->on('transaksi_keuntungan.norujukan', '=', 'trans.norujukan');
|
||||
$join->on('transaksi_keuntungan.tarikh_bayaran', '=', 'trans.created_at');
|
||||
})
|
||||
->where('trans.kodcaw','=',$request->kodcaw)
|
||||
->where('trans.trans_type','=','A')
|
||||
->where('transaksi_keuntungan.margin_semasa','>','0')
|
||||
->whereDate('transaksi_keuntungan.tarikh_bayaran','>=',$request->mula)
|
||||
->whereDate('transaksi_keuntungan.tarikh_bayaran','<=',$request->hingga)
|
||||
->get();
|
||||
|
||||
|
||||
$array_norujukan = $collection_trans->pluck('norujukan')->toArray();
|
||||
|
||||
$collection_gadai = Gadai::on($cawangan['mysql'])->whereIn('norujukan',$array_norujukan)->where('tagbaru',1)->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) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
});
|
||||
|
||||
$summation_ansuran = $keuntungan_semasa_collection->sum('bayaran_keuntungan');
|
||||
|
||||
$total_keuntungan_sebenar = $sum_keuntungan + $sum_bayaran + $summation_ansuran;
|
||||
/* End Keuntungan Sebenar Calculation */
|
||||
|
||||
/* 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');
|
||||
|
||||
$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' ,'>=', $request->mula)
|
||||
->whereDate('trans.tarikh_bayaran' ,'<=', $request->hingga)
|
||||
->whereYear('tarikh_bayaran','=',$mulaCarbon->year)
|
||||
->where('trans.kodcaw',$request->kodcaw)
|
||||
->get()->toArray();
|
||||
|
||||
$upahlelong = Lelong::on($cawangan['mysql'])
|
||||
->where([['tagujrah','=',0],['t_jual','>=',$request->mula],['t_jual','<=',$request->hingga],['t_jual','>','2022-07-24']])
|
||||
->whereYear('t_jual','=',$mulaCarbon->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_sebenar;
|
||||
$total_keuntungan_semasa = ($sum_keuntungan + $sum_bayaran + $upahlelong);
|
||||
|
||||
/* End Keuntungan Semasa Calculation */
|
||||
|
||||
$array_keuntungan = ['keuntungan_sebenar' => $total_keuntungan_sebenar, 'keuntungan_semasa' => $total_keuntungan_semasa];
|
||||
$array_keuntungan = ['keuntungan_sebenar' => $current_profit['keuntungan_sebenar'], 'keuntungan_semasa' => $current_profit['keuntungan_semasa']];
|
||||
|
||||
return response($array_keuntungan);
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ use App\imbangdugabackup;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Services\Reports\ImbangDugaService;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
|
||||
class BalanceSheetsController extends Controller
|
||||
{
|
||||
@@ -24,10 +25,27 @@ class BalanceSheetsController extends Controller
|
||||
|
||||
public function insertBalanceSheets(Request $request){
|
||||
$igService = new ImbangDugaService($request->kodcaw,$request->tarikh);
|
||||
|
||||
$insert_imbangduga = $igService->setImbangDugaBackup();
|
||||
|
||||
return $insert_imbangduga;
|
||||
}
|
||||
|
||||
public function updateIGBalanceSheets(Request $request){
|
||||
$cawangan = Cawangan::on('mysql7')->where('zone','<>',1)->get();
|
||||
$date = Carbon::now()->month($request->month);
|
||||
$lastDay = (clone $date)->endOfMonth();
|
||||
|
||||
try{
|
||||
foreach($cawangan as $caw){
|
||||
$igService = new ImbangDugaService($caw['kodcaw'],$lastDay->toDateString());
|
||||
$insert_imbangduga = $igService->setImbangDugaBackup();
|
||||
}
|
||||
}catch(\Exception $e){
|
||||
Log::error($e->getMessage());
|
||||
}
|
||||
|
||||
|
||||
return response('success');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1736,39 +1736,41 @@ class TebusController extends Controller
|
||||
$result_audit_backdate = $this->StokAuditGenerateTerakru($month_sebelum,$cawangan,$year_generate);
|
||||
}
|
||||
|
||||
$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','>',7)
|
||||
->whereMonth('t_gadai','=',$month)
|
||||
->where('sttebus','<>','')
|
||||
->pluck('norujukan');
|
||||
// $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','>',7)
|
||||
// ->whereMonth('t_gadai','=',$month)
|
||||
// ->where('sttebus','<>','')
|
||||
// ->pluck('norujukan');
|
||||
|
||||
$sum_keun_tebus = Transaction::on('mysql7')
|
||||
->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)
|
||||
->where('transaction.trans_type','<>','A')
|
||||
->where('trans.margin_semasa','=',0) //3.80
|
||||
->sum('keuntungan_rebet');
|
||||
// $sum_keun_tebus = Transaction::on('mysql7')
|
||||
// ->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)
|
||||
// ->where('transaction.trans_type','<>','A')
|
||||
// ->where('trans.margin_semasa','=',0) //3.80
|
||||
// ->sum('keuntungan_rebet');
|
||||
|
||||
$sum_keun_ansuran = Transaction::on('mysql7')
|
||||
->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)
|
||||
->where('transaction.trans_type','A')
|
||||
->where('trans.margin_semasa','=',0)
|
||||
->sum('bayaran_keuntungan');
|
||||
// $sum_keun_ansuran = Transaction::on('mysql7')
|
||||
// ->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)
|
||||
// ->where('transaction.trans_type','A')
|
||||
// ->where('trans.margin_semasa','=',0)
|
||||
// ->sum('bayaran_keuntungan');
|
||||
|
||||
$total = $sum_keun_tebus + $sum_keun_ansuran;
|
||||
// $total = $sum_keun_tebus + $sum_keun_ansuran;
|
||||
|
||||
$total = $this->calculateKeuntunganSemasa($tarikh,$request->kodcaw);
|
||||
|
||||
if(!$determine_past->isToday()){
|
||||
$calculate_month = (int)$month_sekarang - $latest_month_akrunet->bulan;
|
||||
@@ -1818,8 +1820,9 @@ class TebusController extends Controller
|
||||
'kodcaw' => $request->kodcaw,
|
||||
]);
|
||||
|
||||
$calculation_keuntungan_sebenar = $this->untungrugicalculationLejer($request->kodcaw,$request_dibina);
|
||||
$upah_diterima = $calculation_keuntungan_sebenar->getContent();
|
||||
// $calculation_keuntungan_sebenar = $this->untungrugicalculationLejer($request->kodcaw,$request_dibina);
|
||||
// $upah_diterima = $calculation_keuntungan_sebenar->getContent();
|
||||
$upah_diterima = $total;
|
||||
$calculation = $totaltunggakan_sebelum - $upah_diterima;
|
||||
$accrual_net = $totaltunggakan_now - $calculation;
|
||||
|
||||
@@ -1835,20 +1838,20 @@ class TebusController extends Controller
|
||||
$akrunet->setConnection($cawangan['mysql']);
|
||||
$akrunet->tahun = $current->year;
|
||||
$akrunet->bulan = $tarikh->month;
|
||||
$akrunet->jumlah = ($accrual_net - $total);
|
||||
$akrunet->jumlah = ($accrual_net);
|
||||
$akrunet->save();
|
||||
}else{
|
||||
if($available_akru[0]['jumlah'] !== ($accrual_net - $total))
|
||||
if($available_akru[0]['jumlah'] !== ($accrual_net))
|
||||
{
|
||||
AkruNet::on($cawangan['mysql'])->where('bulan','=',(int)$month_sekarang)->where('tahun',$current->year)
|
||||
->update(['jumlah' => ($accrual_net - $total)]);
|
||||
->update(['jumlah' => ($accrual_net)]);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
//dd($jumlahakru,$accrual_net,$total);
|
||||
$total_accrual_net = $jumlahakru + ($accrual_net - $total);
|
||||
$total_accrual_net = $jumlahakru + ($accrual_net);
|
||||
|
||||
}else{
|
||||
|
||||
@@ -1893,6 +1896,65 @@ class TebusController extends Controller
|
||||
return response()->json($total_accrual_net);
|
||||
}
|
||||
|
||||
private function calculateKeuntunganSemasa($currentDate,$kodcaw)
|
||||
{
|
||||
$cawangan = Cawangan::on('mysql7')->where('kodcaw', '=', $kodcaw)->first();
|
||||
|
||||
$firstMonth = (clone $currentDate)->firstOfMonth();
|
||||
$lastMonth = (clone $currentDate)->endOfMonth();
|
||||
/* Start Keuntungan Semasa Calculation */
|
||||
|
||||
$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', $kodcaw)
|
||||
->whereYear('transaction.created_at', '=', $currentDate->year)
|
||||
->whereMonth('transaction.created_at', '=', $currentDate->month)
|
||||
->get();
|
||||
|
||||
|
||||
$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([['t_jual', '>=', $firstMonth], ['t_jual', '<=', $lastMonth], ['t_jual', '>', '2022-07-24']])
|
||||
->whereYear('t_jual', '=', $currentDate->year)
|
||||
->sum('bakiupah');
|
||||
|
||||
$total_keuntungan_semasa = ($total_ansuran + $total_tebus + $upahlelong);
|
||||
|
||||
/* End Keuntungan Semasa Calculation */
|
||||
return $total_keuntungan_semasa;
|
||||
}
|
||||
|
||||
public function kiraupahUjrahOnePercent($kodcaw,$norujukan){
|
||||
$master = new MasterServices($kodcaw);
|
||||
$response = $master->kiraupahUjrahOnePercent($kodcaw,$norujukan);
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
<?php
|
||||
|
||||
namespace App\Jobs;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use App\Services\Reports\AccountService;
|
||||
use Illuminate\Bus\Queueable;
|
||||
use Illuminate\Queue\SerializesModels;
|
||||
use Illuminate\Queue\InteractsWithQueue;
|
||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||
use Illuminate\Support\Facades\Cache;
|
||||
|
||||
class AccountCheckJob implements ShouldQueue
|
||||
{
|
||||
use InteractsWithQueue, Queueable, SerializesModels;
|
||||
|
||||
protected $kodcaw;
|
||||
protected $month;
|
||||
protected $jobId;
|
||||
|
||||
/**
|
||||
* Create a new job instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct($kodcaw, $month, $jobId)
|
||||
{
|
||||
$this->kodcaw = $kodcaw;
|
||||
$this->month = $month;
|
||||
$this->jobId = $jobId;
|
||||
}
|
||||
|
||||
/**
|
||||
* Execute the job.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function handle()
|
||||
{
|
||||
$logger = app('job_log');
|
||||
|
||||
try {
|
||||
$check = app(AccountService::class);
|
||||
$test =$check->checkAccount( $this->kodcaw,$this->month);
|
||||
Cache::put("job_result_{$this->jobId}", $test, Carbon::now()->addMinutes(10));
|
||||
Cache::put("job_status_{$this->jobId}", 'completed', Carbon::now()->addMinutes(10));
|
||||
} catch (\Exception $e) {
|
||||
$logger->error($e);
|
||||
throw $e;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,723 @@
|
||||
<?php
|
||||
namespace App\Services\Reports\Account;
|
||||
|
||||
use App\Advansur;
|
||||
use App\Cawangan;
|
||||
use App\Gadai;
|
||||
use App\GlCode;
|
||||
use App\GlDetail;
|
||||
use App\imbangdugabackup;
|
||||
use App\imbangdugalama;
|
||||
use App\Lelong;
|
||||
use App\Panjar;
|
||||
use App\Tebus;
|
||||
use App\Transaction;
|
||||
use App\TransaksiKeuntungan;
|
||||
use App\WTD;
|
||||
use Carbon\Carbon;
|
||||
|
||||
class GeneralLedger
|
||||
{
|
||||
protected $kodcaw;
|
||||
protected $mula;
|
||||
protected $hingga;
|
||||
|
||||
public function __construct($kodcaw,$mula,$hingga){
|
||||
$this->kodcaw = $kodcaw;
|
||||
$this->mula = $mula;
|
||||
$this->hingga = $hingga;
|
||||
}
|
||||
|
||||
private function getTarikhTawarruq($kodcaw){
|
||||
switch ($this->kodcaw) {
|
||||
case 'KB2':
|
||||
$tarikhtawarruq = '2021-04-13';
|
||||
break;
|
||||
case 'WCY':
|
||||
$tarikhtawarruq = '2021-05-04';
|
||||
break;
|
||||
case '1STOP':
|
||||
$tarikhtawarruq = '2021-05-09';
|
||||
break;
|
||||
case '020301':
|
||||
$tarikhtawarruq = '2021-05-18';
|
||||
break;
|
||||
case 'ALS':
|
||||
$tarikhtawarruq = '2021-05-24';
|
||||
break;
|
||||
case 'WB':
|
||||
$tarikhtawarruq = '2021-05-24';
|
||||
break;
|
||||
case 'APM':
|
||||
$tarikhtawarruq = '2021-06-08';
|
||||
break;
|
||||
case 'ARM':
|
||||
$tarikhtawarruq = '2021-06-08';
|
||||
break;
|
||||
case '020306':
|
||||
$tarikhtawarruq = '2021-06-08';
|
||||
break;
|
||||
case '010311':
|
||||
$tarikhtawarruq = '2021-06-13';
|
||||
break;
|
||||
case 'GC':
|
||||
$tarikhtawarruq = '2021-06-13';
|
||||
break;
|
||||
case 'JLI':
|
||||
$tarikhtawarruq = '2021-06-13';
|
||||
break;
|
||||
case '010621':
|
||||
$tarikhtawarruq = '2021-06-15';
|
||||
break;
|
||||
case 'ARP':
|
||||
$tarikhtawarruq = '2021-06-15';
|
||||
break;
|
||||
case '010621':
|
||||
$tarikhtawarruq = '2021-06-21';
|
||||
break;
|
||||
case '010136':
|
||||
$tarikhtawarruq = '2021-06-20';
|
||||
break;
|
||||
case '011235':
|
||||
$tarikhtawarruq = '2021-06-21';
|
||||
break;
|
||||
case '011227':
|
||||
$tarikhtawarruq = '2021-06-21';
|
||||
break;
|
||||
case '010620':
|
||||
$tarikhtawarruq = '2021-06-21';
|
||||
break;
|
||||
case '010617':
|
||||
$tarikhtawarruq = '2021-06-21';
|
||||
break;
|
||||
case '010915':
|
||||
$tarikhtawarruq = '2021-06-22';
|
||||
break;
|
||||
case '011228':
|
||||
$tarikhtawarruq = '2021-06-22';
|
||||
break;
|
||||
case '010219':
|
||||
$tarikhtawarruq = '2021-06-22';
|
||||
break;
|
||||
case '011230':
|
||||
$tarikhtawarruq = '2021-06-23';
|
||||
break;
|
||||
case '011229':
|
||||
$tarikhtawarruq = '2021-06-22';
|
||||
break;
|
||||
case '011013':
|
||||
$tarikhtawarruq = '2021-06-23';
|
||||
break;
|
||||
case '011412':
|
||||
$tarikhtawarruq = '2021-06-23';
|
||||
break;
|
||||
case '011234':
|
||||
$tarikhtawarruq = '2021-06-28';
|
||||
break;
|
||||
case '020303':
|
||||
$tarikhtawarruq = '2021-06-29';
|
||||
break;
|
||||
case '010618':
|
||||
$tarikhtawarruq = '2021-06-29';
|
||||
break;
|
||||
case '011231':
|
||||
$tarikhtawarruq = '2021-06-23';
|
||||
break;
|
||||
case '011232':
|
||||
$tarikhtawarruq = '2021-06-28';
|
||||
break;
|
||||
case '011233':
|
||||
$tarikhtawarruq = '2021-06-28';
|
||||
break;
|
||||
}
|
||||
|
||||
return $tarikhtawarruq;
|
||||
}
|
||||
|
||||
public function getPinjamanDiberi()
|
||||
{
|
||||
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$this->kodcaw)->first();
|
||||
|
||||
$gadai = Gadai::on($cawangan['mysql'])
|
||||
->where('tagpalsu','=',0)
|
||||
->where([['t_gadai','>=',$this->mula],['t_gadai','<=',$this->hingga]])
|
||||
->sum('pinjaman');
|
||||
|
||||
$tebus = Gadai::on($cawangan['mysql'])
|
||||
->join('tebus as teb','teb.norujukan','=','gadai.norujukan')
|
||||
->where('gadai.sttebus','=','T')
|
||||
->where([['teb.t_tebus','>=',$this->mula],['teb.t_tebus','<=',$this->hingga]])
|
||||
->sum('teb.pinjaman');
|
||||
|
||||
$pembiayaanlelong = Lelong::on($cawangan['mysql'])
|
||||
->join('gadai as gad','gad.norujukan','=','lelong.norujukan')
|
||||
->where([['t_jual','>=',$this->mula],['t_jual','<=',$this->hingga]])
|
||||
->sum('lelong.pinjaman');
|
||||
|
||||
$tebus = $tebus + $pembiayaanlelong;
|
||||
|
||||
$array_rekodemas = ['Gadai' => $gadai,'Tebus' => $tebus];
|
||||
|
||||
return $array_rekodemas;
|
||||
}
|
||||
|
||||
public function getPembiayaanTawarruq()
|
||||
{
|
||||
|
||||
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$this->kodcaw)->first();
|
||||
|
||||
$Gadai = Gadai::on($cawangan['mysql'])->where([['t_gadai','>=',$this->mula],['t_gadai','<=',$this->hingga],['hargajualan','<>','NULL']])->sum('pinjaman');
|
||||
|
||||
$Tebus = Gadai::on($cawangan['mysql'])
|
||||
->where('gadai.tagpalsu','=',0)
|
||||
->where([['gadai.t_update','>=',$this->mula],['gadai.t_update','<=',$this->hingga],['gadai.hargajualan','<>','NULL']])
|
||||
->whereIn('gadai.sttebus', ['T', 'L'])
|
||||
->sum('gadai.pinjaman');
|
||||
|
||||
|
||||
$rekod_pinjamandiberi = ['Gadai' => $Gadai,'Tebus' => $Tebus];
|
||||
|
||||
return $rekod_pinjamandiberi;
|
||||
}
|
||||
|
||||
public function getBayaranPendahuluan()
|
||||
{
|
||||
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$this->kodcaw)->first();
|
||||
|
||||
$datemula = new Carbon($this->mula);
|
||||
$datemula->addDays(1);
|
||||
|
||||
$datehingga = new Carbon($this->hingga);
|
||||
$datehingga->addDays(1);
|
||||
|
||||
$transaksi_data = TransaksiKeuntungan::on('mysql7')
|
||||
->whereDate('tarikh_bayaran','<=', $this->hingga)
|
||||
->whereDate('tarikh_bayaran','>=', $this->mula)
|
||||
->where('kodcaw',$this->kodcaw)
|
||||
->pluck('norujukan');
|
||||
|
||||
$transaksi_kredit_gadai = Gadai::on($cawangan['mysql'])
|
||||
->whereIn('norujukan',$transaksi_data)
|
||||
->where([['hargajualan','<>','null']])
|
||||
->pluck('norujukan');
|
||||
|
||||
$transaksi_kredit = TransaksiKeuntungan::on('mysql7')
|
||||
->leftJoin('transaction as trans', function($join)
|
||||
{
|
||||
$join->on('transaksi_keuntungan.norujukan', '=', 'trans.norujukan');
|
||||
$join->on('transaksi_keuntungan.tarikh_bayaran', '=', 'trans.created_at');
|
||||
})
|
||||
->whereIn('transaksi_keuntungan.norujukan',$transaksi_kredit_gadai)
|
||||
->where('trans.trans_type','=','A')
|
||||
->whereDate('tarikh_bayaran','<=', $this->hingga)
|
||||
->whereDate('tarikh_bayaran','>=', $this->mula)
|
||||
->sum('bayaran_pembiayaan');
|
||||
|
||||
|
||||
$tebus = Gadai::on($cawangan['mysql'])
|
||||
->select('gadai.norujukan','gadai.hargajualan','gadai.bakihargajualan')
|
||||
->whereIn('gadai.sttebus',['T','L'])
|
||||
->where([['t_update','>=',$this->mula],['t_update','<=',$this->hingga]])
|
||||
->groupBy('gadai.norujukan')
|
||||
->get();
|
||||
|
||||
$arraytebus = array();
|
||||
|
||||
foreach($tebus as $index => $t)
|
||||
{
|
||||
if($t['hargajualan'] != $t['bakihargajualan'])
|
||||
{
|
||||
array_push($arraytebus,$t['norujukan']);
|
||||
}
|
||||
}
|
||||
|
||||
$transaksi_debit = TransaksiKeuntungan::on('mysql7')
|
||||
->leftJoin('transaction as trans', function($join)
|
||||
{
|
||||
$join->on('transaksi_keuntungan.norujukan', '=', 'trans.norujukan');
|
||||
$join->on('transaksi_keuntungan.tarikh_bayaran', '=', 'trans.created_at');
|
||||
})
|
||||
->where('trans.trans_type','=','A')
|
||||
->whereIn('trans.norujukan',$arraytebus)
|
||||
->sum('bayaran_pembiayaan');
|
||||
|
||||
$arraylejer = ["keluar" => $transaksi_debit,"masuk" => $transaksi_kredit];
|
||||
|
||||
return $arraylejer;
|
||||
}
|
||||
|
||||
public function getPendahuluanSerahan()
|
||||
{
|
||||
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$this->kodcaw)->first();
|
||||
|
||||
$serahanpkb = '1000/020';
|
||||
$serahanjmc = '1000/026';
|
||||
$pendahuluanpkb = '7000/102';
|
||||
$pendahuluanjmc = '7000/106';
|
||||
$serahankoperasi = '1000/090';
|
||||
|
||||
//Selepas Tawarruq
|
||||
|
||||
$serahanpkbTawarruq = GlDetail::on($cawangan['mysql'])
|
||||
->where('ktacct','=',$serahanpkb)
|
||||
->where('tarikh','>=', $this->mula)
|
||||
->where('tarikh','<=', $this->hingga)
|
||||
->where('tarikh','>','2021-03-24')
|
||||
->sum('serahan');
|
||||
|
||||
//Sebelum Tawarruq
|
||||
if($this->kodcaw == 'KB2' || $this->kodcaw == 'WCY' || $this->kodcaw == '1STOP' || $this->kodcaw == 'ARM' || $this->kodcaw == 'APM' || $this->kodcaw == '010621' || $this->kodcaw == '010915')
|
||||
{
|
||||
$serahanpkb = GlDetail::on($cawangan['mysql'])
|
||||
->where('dtacct','=',$serahanpkb)
|
||||
->where('tarikh','>=', $this->mula)
|
||||
->where('tarikh','<=', $this->hingga)
|
||||
->where('tarikh','>','2013-12-31')
|
||||
->sum('amaun');
|
||||
|
||||
$serahanJMC = GlDetail::on($cawangan['mysql'])
|
||||
->where('dtacct','=',$serahanjmc)
|
||||
->where('tarikh','>=', $this->mula)
|
||||
->where('tarikh','<=', $this->hingga)
|
||||
->where('tarikh','>','2013-12-31')
|
||||
->sum('amaun');
|
||||
|
||||
|
||||
if($this->mula <= '2013-12-31')
|
||||
{
|
||||
$serahanpkblama = imbangdugalama::on($cawangan['mysql'])
|
||||
->sum('serahan_pkb');
|
||||
|
||||
$serahanjmclama = imbangdugalama::on($cawangan['mysql'])
|
||||
->sum('serahan_jmc');
|
||||
|
||||
$totaljmc = $serahanJMC + $serahanjmclama;
|
||||
$totalpkb = $serahanpkb + $serahanpkblama;
|
||||
|
||||
$totalserahan = $serahanpkbTawarruq + $totaljmc + $totalpkb;
|
||||
}else{
|
||||
|
||||
$totaljmc = $serahanJMC;
|
||||
$totalpkb = $serahanpkb;
|
||||
|
||||
$totalserahan = $serahanpkbTawarruq + $totaljmc + $totalpkb;
|
||||
}
|
||||
|
||||
|
||||
}else{
|
||||
|
||||
if($this->kodcaw == '020301')
|
||||
$serahanbaru = '1000/030';
|
||||
else
|
||||
$serahanbaru = '1000/026';
|
||||
|
||||
$serahanpkb = GlDetail::on($cawangan['mysql'])
|
||||
->where('dtacct','=',$serahanpkb)
|
||||
->where('tarikh','>=', $this->mula)
|
||||
->where('tarikh','<=', $this->hingga)
|
||||
->sum('amaun');
|
||||
|
||||
$serahanJMC = GlDetail::on($cawangan['mysql'])
|
||||
->where('dtacct','=',$serahanbaru)
|
||||
->where('tarikh','>=', $this->mula)
|
||||
->where('tarikh','<=', $this->hingga)
|
||||
->sum('amaun');
|
||||
|
||||
$totalserahan = $serahanpkbTawarruq + $serahanpkb + $serahanJMC;
|
||||
}
|
||||
|
||||
//Selepas Tawarruq
|
||||
|
||||
$pendahuluanPKBtawarruq = GlDetail::on($cawangan['mysql'])
|
||||
->where('ktacct','=',$pendahuluanpkb)
|
||||
->where([['tarikh','>=', $this->mula],['tarikh','<=', $this->hingga],['tarikh','>','2021-03-24']])
|
||||
->sum('pendahuluan');
|
||||
|
||||
//Sebelum Tawarruq
|
||||
|
||||
$pendahuluanPKB = GlDetail::on($cawangan['mysql'])
|
||||
->where('ktacct','=',$pendahuluanpkb)
|
||||
->where([['tarikh','>=', $this->mula],['tarikh','<=', $this->hingga],['tarikh','>','2013-12-31']])
|
||||
->sum('amaun');
|
||||
|
||||
$pendahuluanJMC = GlDetail::on($cawangan['mysql'])
|
||||
->where('ktacct','=','7000/106')
|
||||
->where([['tarikh','>=', $this->mula],['tarikh','<=', $this->hingga],['tarikh','>','2013-12-31']])
|
||||
->sum('amaun');
|
||||
|
||||
if($this->mula <= '2013-12-31')
|
||||
{
|
||||
$pendahuluanpkblama = imbangdugalama::on($cawangan['mysql'])
|
||||
->sum('pendahuluan_pkb');
|
||||
|
||||
$pendahuluanjmclama = imbangdugalama::on($cawangan['mysql'])
|
||||
->sum('pendahuluan_jmc');
|
||||
|
||||
$total = $pendahuluanPKBtawarruq + $pendahuluanjmclama + $pendahuluanpkblama + $pendahuluanPKB + $pendahuluanJMC;
|
||||
|
||||
$pindahkekpkb = GlCode::on($cawangan['mysql'])
|
||||
->where('glcode','=',$serahankoperasi)
|
||||
->sum('amaun');
|
||||
}else{
|
||||
|
||||
$total = $pendahuluanPKBtawarruq + $pendahuluanPKB + $pendahuluanJMC;
|
||||
|
||||
$pindahkekpkb = 0;
|
||||
|
||||
}
|
||||
|
||||
|
||||
$arraypend = ['pendahuluan' => $total,'serahan' => $totalserahan,'pindahkekpkb' => $pindahkekpkb];
|
||||
|
||||
return $arraypend;
|
||||
}
|
||||
|
||||
public function getpanjar()
|
||||
{
|
||||
|
||||
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$this->kodcaw)->first();
|
||||
|
||||
$baikidanselenggara = Panjar::on($cawangan['mysql'])
|
||||
->where('tarikh','>=', $this->mula)
|
||||
->where('tarikh','<=', $this->hingga)
|
||||
->where('tag', '=', 2)
|
||||
->sum('bayaran');
|
||||
|
||||
$perubatan = Panjar::on($cawangan['mysql'])
|
||||
->where('tarikh','>=', $this->mula)
|
||||
->where('tarikh','<=', $this->hingga)
|
||||
->where('tag', '=', 1)
|
||||
->sum('bayaran');
|
||||
|
||||
$keraian = Panjar::on($cawangan['mysql'])
|
||||
->where('tarikh','>=', $this->mula)
|
||||
->where('tarikh','<=', $this->hingga)
|
||||
->where('tag', '=', 3)
|
||||
->sum('bayaran');
|
||||
|
||||
|
||||
$arraycalculation = ['bds' => $baikidanselenggara, 'perubatan' => $perubatan, 'keraian' => $keraian];
|
||||
|
||||
return $arraycalculation;
|
||||
|
||||
}
|
||||
|
||||
public function BakiLelongCalculation()
|
||||
{
|
||||
$cas_lelong = 0;
|
||||
$jumlah_lelong = 0;
|
||||
$baki_lelong = 0;
|
||||
$rugi_lelong = 0;
|
||||
|
||||
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$this->kodcaw)->first();
|
||||
|
||||
|
||||
$bakilelong = Lelong::on($cawangan['mysql'])
|
||||
->where('trkhtuntut','>=',$this->mula)
|
||||
->where('trkhtuntut','<=',$this->hingga)
|
||||
->where('baki','>=',0)
|
||||
->sum('baki');
|
||||
|
||||
$rugilelong = Lelong::on($cawangan['mysql'])
|
||||
->where('trkhtuntut','>=',$this->mula)
|
||||
->where('trkhtuntut','<=',$this->hingga)
|
||||
->where('baki','<',0)
|
||||
->sum('baki');
|
||||
|
||||
$data_lelong = Lelong::on($cawangan['mysql'])->where([['t_jual','>=',$this->mula],['t_jual','<=',$this->hingga]])->get();
|
||||
|
||||
foreach($data_lelong as $index=>$lelong){
|
||||
if($lelong['baki'] >= 0){
|
||||
$cas_lelong += $lelong['cajlelong'];
|
||||
$jumlah_lelong += $lelong['hargajual'];
|
||||
$baki_lelong += $lelong['baki'];
|
||||
}elseif($lelong['baki'] < 0){
|
||||
$cas_lelong += $lelong['cajlelong'];
|
||||
$jumlah_lelong += $lelong['hargajual'];
|
||||
$rugi_lelong += abs($lelong['baki']);
|
||||
}
|
||||
}
|
||||
|
||||
$carbonMula = new Carbon($this->mula);
|
||||
if($carbonMula->month = 9 && $this->kodcaw == 'ARP')
|
||||
{
|
||||
$rugilelong += 119;
|
||||
}
|
||||
|
||||
$arraylelong = ['bakilelong' => $bakilelong, 'rugilelong' => $rugilelong, 'baki' => $baki_lelong, 'rugi' => $rugi_lelong, 'jumlahlelong' => $jumlah_lelong, 'caslelong' => $cas_lelong];
|
||||
|
||||
return $arraylelong;
|
||||
}
|
||||
|
||||
public function getKeuntunganSebenar()
|
||||
{
|
||||
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$this->kodcaw)->first();
|
||||
|
||||
$total = 0;
|
||||
$keuntungansebelumtawarruq = 0;
|
||||
|
||||
//Keuntungan Selepas Tawarruq
|
||||
$keuntungan_data = TransaksiKeuntungan::on('mysql7')
|
||||
// ->join($cawangan['db_name'].'.gadai as db2','transaksi_keuntungan.norujukan','=','db2.norujukan')
|
||||
->whereDate('transaksi_keuntungan.tarikh_bayaran' ,'>=', $this->mula)
|
||||
->whereDate('transaksi_keuntungan.tarikh_bayaran' ,'<=', $this->hingga)
|
||||
// ->whereYear('transaksi_keuntungan.tarikh_bayaran','=',$current->year)
|
||||
// ->whereNull('db2.hargajualan')
|
||||
// ->sum('bayaran_keuntungan');
|
||||
// ->get();
|
||||
->pluck('norujukan');
|
||||
|
||||
$gadaiData = Gadai::on($cawangan['mysql'])->whereIn('norujukan', $keuntungan_data)->whereNull('hargajualan')->pluck('norujukan');
|
||||
|
||||
$keuntungan = TransaksiKeuntungan::on('mysql7')->whereIn('norujukan',$gadaiData)->sum('bayaran_keuntungan');
|
||||
|
||||
// $keuntungan = 0;
|
||||
// if($keuntungan_data){
|
||||
// foreach($keuntungan_data as $index=>$keuntunganData){
|
||||
// $gadaiData = Gadai::on($cawangan['mysql'])->where([['norujukan',$keuntunganData['norujukan']],['hargajualan',null]])->first();
|
||||
// if($gadaiData){
|
||||
// $keuntungan += $keuntunganData['bayaran_keuntungan'];
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
$upahtebus = Tebus::on($cawangan['mysql'])
|
||||
->where([['t_tebus','>=',$this->mula],['t_tebus','<=',$this->hingga],['t_tebus','>','2013-12-31']])
|
||||
// ->whereYear('t_tebus','=',$current->year)
|
||||
->sum('upahdibayar');
|
||||
|
||||
$upahlelong = Lelong::on($cawangan['mysql'])
|
||||
->where([['t_jual','>=',$this->mula],['t_jual','<=',$this->hingga],['t_jual','>','2013-12-31'],['t_jual','<=','2022-07-24']])
|
||||
// ->whereYear('t_jual','=',$current->year)
|
||||
->sum('bakiupah');
|
||||
|
||||
$upahansur = Advansur::on($cawangan['mysql'])
|
||||
->where('tarikh','>=',$this->mula)
|
||||
->where('tarikh','<=',$this->hingga)
|
||||
// ->whereYear('tarikh','=',$current->year)
|
||||
->sum('upahdibayar');
|
||||
|
||||
|
||||
$keuntungansebelumtawarruq = $upahtebus + $upahlelong + $upahansur;
|
||||
|
||||
// $keuntunganselepastawarruq = $keuntunganselepastawarruqupah;
|
||||
|
||||
// $total = $keuntungansebelumtawarruq + $keuntunganselepastawarruq;
|
||||
|
||||
$total = $keuntungansebelumtawarruq + $keuntungan;
|
||||
|
||||
return $total;
|
||||
}
|
||||
|
||||
public function SemakanKeuntunganLejer(){
|
||||
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$this->kodcaw)->first();
|
||||
$current = Carbon::now();
|
||||
$current = new Carbon();
|
||||
|
||||
$mulaCarbon = new Carbon($this->mula);
|
||||
$hinggaCarbon = new Carbon($this->hingga);
|
||||
|
||||
/* Start Keuntungan Sebenar Calculation */
|
||||
$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)
|
||||
->whereDate('transaction.created_at' ,'>=', $this->mula)
|
||||
->whereDate('transaction.created_at' ,'<=', $this->hingga)
|
||||
->get();
|
||||
|
||||
$array_norujukan = $collection_trans->pluck('norujukan')->toArray();
|
||||
|
||||
$collection_gadai = Gadai::on($cawangan['mysql'])->whereIn('norujukan', $array_norujukan)->whereYear('t_gadai',$mulaCarbon->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);
|
||||
$t_bayaran = Carbon::parse($trans->tarikh_bayaran);
|
||||
|
||||
if ($t_gadai->month !== $t_bayaran->month) {
|
||||
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');
|
||||
|
||||
$total_keuntungan_sebenar = $total_ansuran + $total_tebus;
|
||||
/* End Keuntungan Sebenar Calculation */
|
||||
|
||||
/* Start Keuntungan Semasa Calculation */
|
||||
$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)
|
||||
->whereDate('transaction.created_at' ,'>=', $this->mula)
|
||||
->whereDate('transaction.created_at' ,'<=', $this->hingga)
|
||||
->get();
|
||||
|
||||
|
||||
$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', '>=', $this->mula], ['t_jual', '<=', $this->hingga], ['t_jual', '>', '2022-07-24']])
|
||||
->whereYear('t_jual', '=', $mulaCarbon->year)
|
||||
->sum('bakiupah');
|
||||
|
||||
$total_keuntungan_semasa = ($total_ansuran + $total_tebus + $upahlelong);
|
||||
/* End Keuntungan Semasa Calculation */
|
||||
|
||||
$array_keuntungan = ['keuntungan_sebenar' => $total_keuntungan_sebenar, 'keuntungan_semasa' => $total_keuntungan_semasa];
|
||||
|
||||
return $array_keuntungan;
|
||||
}
|
||||
|
||||
public function getwtdLejer()
|
||||
{
|
||||
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$this->kodcaw)->first();
|
||||
|
||||
|
||||
$wtd = WTD::on($cawangan['mysql'])
|
||||
->where('tarikh','>=', $this->mula)
|
||||
->where('tarikh','<=', $this->hingga)
|
||||
->sum('wtd');
|
||||
|
||||
return $wtd;
|
||||
}
|
||||
|
||||
public function getTotalKeuntungan() : Float{
|
||||
|
||||
/* Keuntungan Semasa */
|
||||
$keuntungan_semasa = $this->CurrentProfit($this->mula,$this->hingga,$this->kodcaw);
|
||||
$totalkeuntungan=$keuntungan_semasa['onepercent'];
|
||||
|
||||
return $totalkeuntungan;
|
||||
}
|
||||
|
||||
public function getTotalUjrah() : Float{
|
||||
|
||||
/* Keuntungan Semasa */
|
||||
$keuntungan_semasa = $this->CurrentProfit($this->mula,$this->hingga,$this->kodcaw);
|
||||
$totalujrah = $keuntungan_semasa['ujrah'];
|
||||
|
||||
|
||||
return $totalujrah;
|
||||
}
|
||||
|
||||
public function CurrentProfit($start,$end,$kodcaw){
|
||||
|
||||
$start = new Carbon($start);
|
||||
$year = $start->format('Y');
|
||||
|
||||
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first();
|
||||
|
||||
$collection_trans = TransaksiKeuntungan::on('mysql7')
|
||||
->leftJoin('transaction as trans', function($join)
|
||||
{
|
||||
$join->on('transaksi_keuntungan.norujukan', '=', 'trans.norujukan');
|
||||
$join->on('transaksi_keuntungan.tarikh_bayaran', '=', 'trans.created_at');
|
||||
})
|
||||
->where('trans.kodcaw','=',$kodcaw)
|
||||
->whereDate('transaksi_keuntungan.tarikh_bayaran' ,'<=', $end)
|
||||
->whereDate('transaksi_keuntungan.tarikh_bayaran' ,'>=', $start)
|
||||
->whereYear('transaksi_keuntungan.tarikh_bayaran','=',$year)
|
||||
->get();
|
||||
|
||||
$array_norujukan = $collection_trans->pluck('norujukan')->toArray();
|
||||
|
||||
$collection_gadai = Gadai::on($cawangan['mysql'])->whereIn('norujukan',$array_norujukan)->get();
|
||||
|
||||
/* filtering untuk gadai yang ditebus pada bukan bulan yang sama */
|
||||
$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) {
|
||||
return false;
|
||||
}else{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
});
|
||||
|
||||
|
||||
$ujrah = $this->filterCollection($keuntungan_semasa_collection,'A','ujrah');
|
||||
$onepercent = $this->filterCollection($keuntungan_semasa_collection,'A','onepercent');
|
||||
$ujrah_rebet = $this->filterCollection($keuntungan_semasa_collection,'T','ujrah_rebet');
|
||||
$onepercent_rebet = $this->filterCollection($keuntungan_semasa_collection,'T','onepercent_rebet');
|
||||
|
||||
$upahlelong = Lelong::on($cawangan['mysql'])
|
||||
->selectRaw('SUM(ujrah) as ujrah,SUM(onepercent) as onepercent')
|
||||
->where([['tagujrah','=',1],['t_jual','>=',$start],['t_jual','<=',$end]])
|
||||
->whereYear('t_jual','=',$year)
|
||||
->get()->toArray();
|
||||
|
||||
$ujrah_lelong = (empty($upahlelong)) ? 0 : $upahlelong[0]['ujrah'];
|
||||
$onepercent_lelong = (empty($upahlelong)) ? 0 : $upahlelong[0]['onepercent'];
|
||||
|
||||
$total_onepercent = $onepercent + $onepercent_rebet + $onepercent_lelong;
|
||||
$total_ujrah = $ujrah + $ujrah_rebet + $ujrah_lelong;
|
||||
|
||||
return ['ujrah' => $total_ujrah,'onepercent' => $total_onepercent];
|
||||
}
|
||||
|
||||
private function filterCollection($collection,$type,$sumtype) : Float{
|
||||
|
||||
$array_type = ['T','S','P','AT'];
|
||||
return $collection->filter(function ($item) use($type,$array_type) {
|
||||
if($type == 'T')
|
||||
return in_array($item->trans_type, $array_type);
|
||||
|
||||
return $item->trans_type === $type;
|
||||
})->sum($sumtype);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,88 @@
|
||||
<?php
|
||||
|
||||
namespace App\Services\Reports;
|
||||
|
||||
use App\AkruNet;
|
||||
use App\AkruNetPecahan;
|
||||
use App\Cawangan;
|
||||
use App\imbangdugabackup;
|
||||
use App\Services\Reports\Account\GeneralLedger;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class AccountService{
|
||||
public function checkAccount($kodcaw,$month){
|
||||
$cawangan = Cawangan::on('mysql7')->where('kodcaw',$kodcaw)->first();
|
||||
$date = Carbon::now()->month($month);
|
||||
$firstDay = (clone $date)->startOfMonth();
|
||||
$lastDay = (clone $date)->endOfMonth();
|
||||
$previousMonth = (clone $date)->subMonthNoOverflow()->endOfMonth();
|
||||
|
||||
$BSheetPreviousMonth = imbangdugabackup::on($cawangan['mysql'])->where('tarikh',$previousMonth->toDateString())->first()->toArray();
|
||||
$BSheetCurrentMonth = imbangdugabackup::on($cawangan['mysql'])->where('tarikh',$lastDay->toDateString())->first()->toArray();
|
||||
|
||||
$akru_net = AkruNet::on($cawangan['mysql'])->where('tahun',$date->year)->where('bulan','<=',$month)->sum('jumlah');
|
||||
$akru_net_ujrah = AkruNetPecahan::on($cawangan['mysql'])->where('tahun',$date->year)->where('bulan','<=',$month)->sum('pend_akru_ujrah');
|
||||
$akru_net_onepercent = AkruNetPecahan::on($cawangan['mysql'])->where('tahun',$date->year)->where('bulan','<=',$month)->sum('pend_akru_1persen');
|
||||
$model_class = "App\StokAudit{$month}";
|
||||
$keun_penggadai = $model_class::on($cawangan['mysql'])->select(DB::raw('SUM(upahblmbyar + utgonepercent + ujrah) as total_sum'))->where('tahun',$date->year)->first()->toArray();
|
||||
|
||||
$gledger = new GeneralLedger($kodcaw,$firstDay,$lastDay);
|
||||
$loan_given = $gledger->getPinjamanDiberi();
|
||||
$loan_tawarruq = $gledger->getPembiayaanTawarruq();
|
||||
$advance_payment = $gledger->getBayaranPendahuluan();
|
||||
$submission = $gledger->getPendahuluanSerahan();
|
||||
$cash = $gledger->getpanjar();
|
||||
$remain_auction = $gledger->BakiLelongCalculation();
|
||||
$real_profit = $gledger->getKeuntunganSebenar();
|
||||
$current_profit = $gledger->SemakanKeuntunganLejer();
|
||||
$unclaimed_money =$gledger->getwtdLejer();
|
||||
$akrual_onepercent = $gledger->getTotalKeuntungan();
|
||||
$akrual_ujrah = $gledger->getTotalUjrah();
|
||||
|
||||
$debit = /* $loan_given['Gadai'] + */ $loan_tawarruq['Gadai'] + $advance_payment['keluar'] +
|
||||
$submission['serahan'] + $cash['bds'] + $cash['perubatan'] + $cash['keraian'] +
|
||||
$remain_auction['rugi'] + $remain_auction['bakilelong'];
|
||||
$credit = /* $loan_given['Tebus'] + */ $loan_tawarruq['Tebus'] + $advance_payment['masuk'] +
|
||||
$remain_auction['rugilelong'] + $remain_auction['baki'] + $real_profit +
|
||||
$current_profit['keuntungan_semasa'] + $submission['pendahuluan'] + $remain_auction['caslelong'] +
|
||||
$current_profit['keuntungan_sebenar'] + $unclaimed_money + $akrual_onepercent + $akrual_ujrah;
|
||||
|
||||
$cash_credit = $debit;
|
||||
$cash_debit = $credit;
|
||||
|
||||
$total_tunaiditangan = $cash_debit - $cash_credit;
|
||||
$total_pembiayaantawarruq = $loan_tawarruq['Gadai'] - $loan_tawarruq['Tebus'];
|
||||
$total_bayaranpendahuluan = $advance_payment['keluar'] - $advance_payment['masuk'];
|
||||
$total_serahan = $submission['serahan'];
|
||||
$total_pendahuluan = $submission['pendahuluan'];
|
||||
$total_bds = -($cash['bds']);
|
||||
$total_perubatan = -($cash['perubatan']);
|
||||
$total_keraian = -($cash['keraian']);
|
||||
$total_keun_sebenar = $current_profit['keuntungan_sebenar'];
|
||||
$total_rugilelong = $remain_auction['rugi'] - $remain_auction['rugilelong'];
|
||||
$total_bakilelong = $remain_auction['baki'] - $remain_auction['bakilelong'];
|
||||
$total_pend_terakru = $akru_net;
|
||||
$total_ujrah = $akru_net_ujrah;
|
||||
$total_onepercent = $akru_net_onepercent;
|
||||
$total_keun_penggadai = $keun_penggadai['total_sum'];
|
||||
|
||||
/* Current Balance Sheets */
|
||||
$array_tally = [];
|
||||
foreach($BSheetCurrentMonth as $key=>$value){
|
||||
if($key !== 'recno' && $key !== 'kodcaw' && $key !== 'tarikh' && $key !== 'tagtally' && $key !== 'created_at' && $key !== 'updated_at'){
|
||||
if(isset(${"total_$key"})){
|
||||
if($key !== 'pend_terakru' && $key !== 'ujrah' && $key !== 'onepercent' && $key !== 'keun_penggadai'){
|
||||
${"temp_$key"} = $BSheetPreviousMonth[$key] + ${"total_$key"};
|
||||
}else{
|
||||
${"temp_$key"} = ${"total_$key"};
|
||||
}
|
||||
$temp_array = ['key' => $key, 'totallejer' => (float)round(${"temp_$key"},2), 'currentbsheet' => (float)round($BSheetCurrentMonth[$key],2),'tally' => (float)round(${"temp_$key"},2) == (float)round($BSheetCurrentMonth[$key],2)];
|
||||
array_push($array_tally,$temp_array);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $array_tally;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
});
|
||||
@@ -937,7 +929,6 @@ class ImbangDugaService
|
||||
$booltally = false;
|
||||
}
|
||||
|
||||
|
||||
imbangdugabackup::on($cawangan['mysql'])->where('tarikh', $this->tarikh)->update([
|
||||
'tunaiditangan' => $tunaiditangan,
|
||||
'keun_penggadai' => $keuntungan_penggadai,
|
||||
@@ -948,7 +939,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,
|
||||
|
||||
@@ -398,10 +398,12 @@ class OnePercentService
|
||||
|
||||
if ($t_gadai->month === $t_bayaran->month) {
|
||||
return false;
|
||||
}else{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
return false;
|
||||
});
|
||||
|
||||
|
||||
|
||||
@@ -29,5 +29,6 @@ $router->group(['prefix' => 'api/reports'], function () use ($router) {
|
||||
$router->get('balancesheets/get',['uses' => 'BalanceSheetsController@getBalanceSheetsList']);
|
||||
|
||||
$router->get('updateig',['uses' => 'BalanceSheetsController@insertBalanceSheets']);
|
||||
$router->get('updateigall',['uses' => 'BalanceSheetsController@updateIGBalanceSheets']);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -850,6 +850,10 @@ $router->group(['prefix'=>'admin'], function () use ($router){
|
||||
|
||||
$router->get('ig/penghutang',['uses'=>'AdminPageController@ListPenghutang']);
|
||||
$router->get('ig/bayaran_penghutang',['uses'=>'AdminPageController@SenaraiBayaranHutang']);
|
||||
|
||||
$router->get('get/accountcheck',['uses'=>'AdminPageController@getAccountList']);
|
||||
$router->post('get/jobstatus',['uses'=>'AdminPageController@getJobStatus']);
|
||||
|
||||
});
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user