From 909c3e3a166577691aee2da06da1c67eba721bce Mon Sep 17 00:00:00 2001 From: root Date: Mon, 30 Dec 2024 23:40:57 +0800 Subject: [PATCH 1/3] changed from server 30/12/2024 --- app/BayaranHutang.php | 1 - app/Http/Controllers/AdminPageController.php | 15 +++-- app/Http/Controllers/GadaiController.php | 53 ++++++++++++++++- app/Http/Controllers/LaporanController.php | 52 +++++++++++------ app/Http/Controllers/LelongController.php | 1 + app/Http/Controllers/TebusController.php | 2 +- .../Reports/Account/GeneralLedger.php | 58 ++++++++++++++++++- app/Support/v1/Penebusan.php | 9 +-- app/Support/v2/GadaiV2.php | 12 +++- app/Support/v2/Penebusan.php | 6 +- 10 files changed, 171 insertions(+), 38 deletions(-) diff --git a/app/BayaranHutang.php b/app/BayaranHutang.php index 5a9e0a5..aeaa4c7 100644 --- a/app/BayaranHutang.php +++ b/app/BayaranHutang.php @@ -1,4 +1,3 @@ - where('kodcaw','=',$request->kodcaw)->first(); $current = Carbon::now(); @@ -3181,11 +3181,12 @@ class AdminPageController extends Controller // $total = $sum_keuntungan + $sum_bayaran + $summation_ansuran; - + $lastDayPreviousMonth = $tarikh->subMonthsNoOverflow()->endOfMonth()->toDateString(); - - $get_imbangduga = imbangdugabackup::on($cawangan['mysql'])->where('tarikh',$lastDayPreviousMonth)->first()->toArray(); - + + $get_imbangduga = imbangdugabackup::on($cawangan['mysql'])->where('tarikh',$lastDayPreviousMonth)->first(); + $get_imbangduga = optional($get_imbangduga)->toArray() ?? []; + $collection_trans = Transaction::on('mysql7') ->leftJoin('transaksi_keuntungan as trans', function ($join) { $join->on('transaction.norujukan', '=', 'trans.norujukan'); @@ -3224,7 +3225,9 @@ class AdminPageController extends Controller return $transaction->trans_type !== 'A'; })->sum('keuntungan_rebet'); - $total = $total_ansuran + $total_tebus + $get_imbangduga['keun_sebenar']; + + $backdate_keun_sebenar = isset($get_imbangduga['keun_sebenar']) ? $get_imbangduga['keun_sebenar'] : 0; + $total = $total_ansuran + $total_tebus + $backdate_keun_sebenar; return response()->json($total); } diff --git a/app/Http/Controllers/GadaiController.php b/app/Http/Controllers/GadaiController.php index eeff97f..38fb557 100644 --- a/app/Http/Controllers/GadaiController.php +++ b/app/Http/Controllers/GadaiController.php @@ -49,10 +49,16 @@ class GadaiController extends Controller } public function gadaiTransactionByCawanganAndDay($cawangan_code,$date){ + try{ + $cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$cawangan_code)->first(); $gadaiTransaction = Gadai::on($cawangan['mysql'])->where('t_gadai','=',$date)->orderBy('sirig', 'desc')->first(); - + }catch(\Exception $e){ + Log::debug($e); + Log::debug($cawangan_code); + return response()->json('error'); + } return response()->json($gadaiTransaction); } @@ -3083,6 +3089,51 @@ class GadaiController extends Controller $current = Carbon::now(); $current = new Carbon(); + if($request->kodcaw == 'GC'){ + $transaksi_data = []; + TransaksiKeuntungan::on('mysql7') + ->where('tarikh_bayaran', '<=', $daterequest) + ->where('kodcaw', $request->kodcaw) + ->chunk(1000, function ($transactions) use (&$transaksi_data) { + $transaksi_data = array_merge($transaksi_data, $transactions->pluck('norujukan')->toArray()); + }); + + $gadaiData = []; + $chunkedTransaksiData = array_chunk($transaksi_data, 1000); + + foreach ($chunkedTransaksiData as $chunk) { + Gadai::on($cawangan['mysql']) + ->whereIn('norujukan', $chunk) + ->where(function ($query) use ($request) { + $query->where([ + ['sttebus', '=', ''], + ['hargajualan', '<>', null] + ]) + ->orWhere([ + ['sttebus', '!=', ''], + ['t_update', '>', $request->tarikh], + ['hargajualan', '<>', null] + ]); + }) + ->orderBy('norujukan') + ->chunk(1000, function ($gadaiChunk) use (&$gadaiData) { + $gadaiData = array_merge($gadaiData, $gadaiChunk->pluck('norujukan')->toArray()); + }); + } + + $totalPembiayaan = 0; + $chunkedGadaiData = array_chunk($gadaiData, 1000); + + foreach ($chunkedGadaiData as $chunk) { + $totalPembiayaan += TransaksiKeuntungan::on('mysql7') + ->whereIn('norujukan', $chunk) + ->where('tarikh_bayaran', '<=', $daterequest) + ->sum('bayaran_pembiayaan'); + } + + return response($totalPembiayaan); + } + $transaksi_data = TransaksiKeuntungan::on('mysql7') ->where('tarikh_bayaran' ,'<=', $daterequest) ->where('kodcaw',$request->kodcaw) diff --git a/app/Http/Controllers/LaporanController.php b/app/Http/Controllers/LaporanController.php index 5b26dc6..1c5f4c8 100644 --- a/app/Http/Controllers/LaporanController.php +++ b/app/Http/Controllers/LaporanController.php @@ -27,6 +27,7 @@ use App\imbangdugalama; use App\Services\Reports\ImbangDugaService; use App\Services\Reports\Account\GeneralLedger; +use Illuminate\Support\Facades\Log; use DateTime; use Illuminate\Support\Facades\DB; @@ -50,7 +51,7 @@ class LaporanController extends Controller $bayaranonline = $bayaranonlinequery->sum('duit_masuk'); $bilbayaranonline = $bayaranonlinequery->count(); - + $ansurankaunter = TransaksiKeuntungan::on('mysql7') ->leftJoin('transaction as trans', function($join) { @@ -108,7 +109,7 @@ class LaporanController extends Controller $total_keuntunganansuran_kaunter = $keuntunganansuran_kaunter_query->sum('bayaran_keuntungan'); $bil_keuntunganansuran_kaunter = $keuntunganansuran_kaunter_query->count(); - + // $total_keuntunganansuran = 0; // if($total_keuntunganansuran_data){ // foreach($total_keuntunganansuran_data as $index=>$total_keuntunganansuranData){ @@ -167,7 +168,7 @@ class LaporanController extends Controller // ->pluck('transaksi_keuntungan.norujukan'); // dd($total_keuntunganbukanansuran_data_kaunter); - + // $gadaiDataKaunter = Gadai::on($cawangan['mysql'])->whereIn('norujukan',$total_keuntunganbukanansuran_data_kaunter)->whereNotNull('hargajualan')->pluck('norujukan'); @@ -245,7 +246,6 @@ class LaporanController extends Controller $keuntungan_kaunter = $keuntungan_kaunter_query->sum('bayaran_keuntungan'); $bil_keuntungan_kaunter = $keuntungan_kaunter_query->count(); - // $keuntungan = 0; @@ -364,7 +364,7 @@ class LaporanController extends Controller $panjar_harian = Panjar::on($cawangan['mysql'])->where('tarikh','=',$request->tarikh)->sum('bayaran'); $panjar_bulanan = Panjar::on($cawangan['mysql'])->where([['tarikh','<=',$request->tarikh],['tarikh','>=',$firstDay]])->sum('bayaran'); $panjar_tahunan = Panjar::on($cawangan['mysql'])->where([['tarikh','<=',$request->tarikh],['tarikh','>=',$firstDayYear]])->sum('bayaran'); - + //e $tarikhtawarruq = ''; @@ -497,21 +497,37 @@ class LaporanController extends Controller $daterequest = new Carbon($request->tarikh); $daterequest->addDays(1); - - $bayaranpendahuluan_data = TransaksiKeuntungan::on('mysql7') - ->where('tarikh_bayaran' ,'<=', $daterequest) - ->where('kodcaw',$request->kodcaw) - ->pluck('norujukan'); + + // $bayaranpendahuluan_data = TransaksiKeuntungan::on('mysql7') + // ->where('tarikh_bayaran' ,'<=', $daterequest) + // ->where('kodcaw',$request->kodcaw) + // ->pluck('norujukan'); - $gadaiData = Gadai::on($cawangan['mysql'])->whereIn('norujukan',$bayaranpendahuluan_data) - ->where([['sttebus',''],['hargajualan','<>','null']]) - ->orWhere([['sttebus','!=',''],['t_update','>',$request->tarikh],['hargajualan','<>','null']]) - ->pluck('norujukan'); + // $gadaiData = Gadai::on($cawangan['mysql'])->whereIn('norujukan',$bayaranpendahuluan_data) + // ->where([['sttebus',''],['hargajualan','<>','null']]) + // ->orWhere([['sttebus','!=',''],['t_update','>',$request->tarikh],['hargajualan','<>','null']]) + // ->pluck('norujukan'); - $bayaranpendahuluan = TransaksiKeuntungan::on('mysql7') - ->whereIn('norujukan',$gadaiData) - ->where('tarikh_bayaran' ,'<=', $daterequest) - ->sum('bayaran_pembiayaan'); + //$bayaranpendahuluan = TransaksiKeuntungan::on('mysql7') + // ->whereIn('norujukan',$gadaiData) + // ->where('tarikh_bayaran' ,'<=', $daterequest) + // ->sum('bayaran_pembiayaan'); + +$date = new Carbon($request->tarikh); + $lastDayPreviousMonth = $date->subMonthsNoOverflow()->endOfMonth()->toDateString(); + $get_imbangduga = imbangdugabackup::on($cawangan['mysql'])->where('tarikh',$lastDayPreviousMonth)->first()->toArray(); + $start = new Carbon($request->tarikh); + $start_date = $start->startOfMonth()->toDateString(); + + //$general_ledger = new GeneralLedger($request->kodcaw,$start_date,$request->tarikh); + //$bayaran_pendahuluan = $general_ledger->getBayaranPendahuluan(); + //$total_bayaran_current = $bayaran_pendahuluan['keluar'] - $bayaran_pendahuluan['masuk']; + // Log::info($bayaran_pendahuluan); + // $bayaranpendahuluan = $get_imbangduga['bayaranpendahuluan'] + $total_bayaran_current; + $bayaranpendahuluan = 0; + //$bayaranpendahuluan = 0; + + // $bayaranpendahuluan = 0; diff --git a/app/Http/Controllers/LelongController.php b/app/Http/Controllers/LelongController.php index c98fae7..0e6e9a3 100644 --- a/app/Http/Controllers/LelongController.php +++ b/app/Http/Controllers/LelongController.php @@ -259,6 +259,7 @@ class LelongController extends Controller if($kodcaw == 'GC'){ $bakilelong += 2135.75; + $bakilelong -= 3; //added 15/10/2024 sebab ada kemusykilan 3 ringgit daripada rugi lelong } $arraylelong = ['bakilelong' => $bakilelong, 'rugilelong' => $rugitotal]; diff --git a/app/Http/Controllers/TebusController.php b/app/Http/Controllers/TebusController.php index 217f8ee..be4b2ff 100644 --- a/app/Http/Controllers/TebusController.php +++ b/app/Http/Controllers/TebusController.php @@ -1970,7 +1970,7 @@ class TebusController extends Controller /* Keuntungan Lelong */ $upahlelong = Lelong::on($cawangan['mysql']) - ->where([['t_jual', '>=', $firstMonth], ['t_jual', '<=', $lastMonth], ['t_jual', '>', '2022-07-24']]) + ->where([['tagujrah','0'],['t_jual', '>=', $firstMonth], ['t_jual', '<=', $lastMonth], ['t_jual', '>', '2022-07-24']]) ->whereYear('t_jual', '=', $currentDate->year) ->sum('bakiupah'); diff --git a/app/Services/Reports/Account/GeneralLedger.php b/app/Services/Reports/Account/GeneralLedger.php index 08371bc..f7ebc94 100644 --- a/app/Services/Reports/Account/GeneralLedger.php +++ b/app/Services/Reports/Account/GeneralLedger.php @@ -14,6 +14,7 @@ use App\Tebus; use App\Transaction; use App\TransaksiKeuntungan; use App\WTD; +use App\AkruNet; use Carbon\Carbon; class GeneralLedger @@ -517,6 +518,43 @@ class GeneralLedger $mulaCarbon = new Carbon($this->mula); $hinggaCarbon = new Carbon($this->hingga); + if($this->isFullMonth($this->mula,$this->hingga) && $mulaCarbon->month < 10){ + $lastDayOfPreviousMonth = $mulaCarbon->subMonth()->endOfMonth(); + + $balancesheet_previousmonth = imbangdugabackup::on($cawangan['mysql'])->where('tarikh',$lastDayOfPreviousMonth->toDateString())->first()->toArray(); + $balancesheet_currentmonth = imbangdugabackup::on($cawangan['mysql'])->where('tarikh',$this->hingga)->first()->toArray(); + // dd($lastDayOfPreviousMonth->toDateString(),$this->hingga,$balancesheet_previousmonth['keun_sebenar'],$balancesheet_currentmonth['keun_sebenar']); + + $realprofit_previousmonth = ($lastDayOfPreviousMonth->year == $hinggaCarbon->year) ? $balancesheet_previousmonth['keun_sebenar'] : 0; + $realprofit_currentmonth = $balancesheet_currentmonth['keun_sebenar']; + + $total_keuntungan_sebenar = $realprofit_currentmonth - $realprofit_previousmonth; + + $month = $lastDayOfPreviousMonth->month; + $className_previous = "App\StokAudit{$month}"; + + $month_current = $hinggaCarbon->month; + $className_current = "App\StokAudit{$month_current}"; + + $stokaudit_previous = $className_previous::on($cawangan['mysql'])->where('tahun',$lastDayOfPreviousMonth->year); + $stokaudit_current = $className_current::on($cawangan['mysql'])->where('tahun',$hinggaCarbon->year); + + $akrunet = AkruNet::on($cawangan['mysql'])->where('bulan',$month_current)->where('tahun',$hinggaCarbon->year)->first()->toArray(); + + + $stokaudit_previous = $stokaudit_previous->sum('upahblmbyar'); + $stokaudit_current = $stokaudit_current->sum('upahblmbyar'); + + // $pend_terakru = $balancesheet_currentmonth['pend_terakru']; + + $total = $akrunet['jumlah'] - $stokaudit_current; + $total_keuntungan_semasa = abs($total) - $stokaudit_previous; + + $array_keuntungan = ['keuntungan_sebenar' => abs($total_keuntungan_sebenar), 'keuntungan_semasa' => abs($total_keuntungan_semasa)]; + + return $array_keuntungan; + } + /* Start Keuntungan Sebenar Calculation */ $collection_trans = Transaction::on('mysql7') ->leftJoin('transaksi_keuntungan as trans', function ($join) { @@ -718,6 +756,24 @@ class GeneralLedger })->sum($sumtype); } + private function isFullMonth($startDate,$endDate){ + // Parse the dates to Carbon instances + $start = Carbon::parse($startDate); + $end = Carbon::parse($endDate); + + // Check if the start date is the first day of the month + $isFirstDay = $start->isSameDay($start->copy()->startOfMonth()); + + // Check if the end date is the last day of the month + $isLastDay = $end->isSameDay($end->copy()->endOfMonth()); + + // Check if both dates are in the same month and year + $isSameMonth = $start->isSameMonth($end) && $start->isSameYear($end); + + // Return true only if all conditions are met + return $isFirstDay && $isLastDay && $isSameMonth; + } -} \ No newline at end of file + +} diff --git a/app/Support/v1/Penebusan.php b/app/Support/v1/Penebusan.php index 7c35110..cd7cf7f 100644 --- a/app/Support/v1/Penebusan.php +++ b/app/Support/v1/Penebusan.php @@ -188,7 +188,8 @@ class Penebusan $bilang_bln = $tempoh - $gadai_data['tempohbayar']; $tawarruqservices = new V1Calculation(); - $keuntungan = $tawarruqservices->kiraanTawarruq($gadai_data['pinjaman'],$gadai_data['kadarupah']); + //$keuntungan = $tawarruqservices->kiraanTawarruq($gadai_data['pinjaman'],$gadai_data['kadarupah']); + $keuntungan = $tawarruqservices->kiraanTawarruq(($gadai_data['pinjaman'] !== null) ? $gadai_data['pinjaman'] : 0,($gadai_data['kadarupah'] !== null) ? $gadai_data['kadarupah'] : 0); $upahsemasa_raw = $bilang_bln * $keuntungan; $upah_semasa_round = number_format($upahsemasa_raw,2); @@ -458,7 +459,7 @@ class Penebusan //check duplicate $data = Transaction::on('mysql7')->where('norujukan','=',$norujukan)->where('trans_type','=','T')->first(); if(!empty($data)){ - return 'duplicate'; + return response()->json('duplicate'); } $gadai = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->first(); @@ -601,7 +602,7 @@ class Penebusan //check duplicate $data = Transaction::on('mysql7')->where('norujukan','=',$norujukan)->where('trans_type','=','AT')->first(); if(!empty($data)){ - return 'duplicate'; + return response()->json('duplicate'); } $update_gadai = Gadai::on($cawangan['mysql'])->where('norujukan','=',$norujukan)->update(array( @@ -771,4 +772,4 @@ class Penebusan return $tempoh_gadai; } -} \ No newline at end of file +} diff --git a/app/Support/v2/GadaiV2.php b/app/Support/v2/GadaiV2.php index ee08f42..23663d5 100644 --- a/app/Support/v2/GadaiV2.php +++ b/app/Support/v2/GadaiV2.php @@ -175,8 +175,11 @@ class GadaiV2 $bilang_bln = $tempoh - $gadai_data['tempohbayar']; $upah = $onepercentservices->kiraanKeuntunganSebenar($gadai_data['pinjaman'],$gadai_data['nilaimarhun'],$gadai_data['kadarupah'],$gadai_data['percentpinj']); - $upahsemasa_raw = $bilang_bln * $upah['keuntungan']; - $upahsemasa_raw = $onepercentservices->getRoundedMethod($upahsemasa_raw); + //$upahsemasa_raw = $bilang_bln * $upah['keuntungan']; + $onepercent = $onepercentservices->getRoundedMethod($bilang_bln * $upah['onepercent']); + $ujrah = $onepercentservices->getRoundedMethod($bilang_bln * $upah['ujrah']); + $upahsemasa_raw = $onepercent + $ujrah; + $upahsemasa_raw = $onepercentservices->getRoundedMethod($upahsemasa_raw); return $upahsemasa_raw; } @@ -201,7 +204,10 @@ class GadaiV2 $upah = $onepercentservices->kiraanKeuntunganRebet($gadai_data['bakipjm'],$gadai_data['nilaimarhun'],$gadai_data['kadarupah'],$gadai_data['margin_semasa']); - $upahrebet_raw = $bilang_bln * $upah['keuntungan']; + //$upahrebet_raw = $bilang_bln * $upah['keuntungan']; + $onepercent = $onepercentservices->getRoundedMethod($bilang_bln * $upah['onepercent']); + $ujrah = $onepercentservices->getRoundedMethod($bilang_bln * $upah['ujrah']); + $upahrebet_raw = $onepercent + $ujrah; $upahrebet_raw = $onepercentservices->getRoundedMethod($upahrebet_raw); return $upahrebet_raw; diff --git a/app/Support/v2/Penebusan.php b/app/Support/v2/Penebusan.php index af95f76..fadbf44 100644 --- a/app/Support/v2/Penebusan.php +++ b/app/Support/v2/Penebusan.php @@ -483,7 +483,7 @@ class Penebusan $data = Transaction::on('mysql7')->where('norujukan','=',$norujukan)->whereIn('trans_type', ['P', 'T', 'S'])->first(); if(!empty($data)){ - return 'duplicate'; + return response()->json('duplicate'); } $ujrah=0;$onepercent=0;$rounded=0; @@ -649,7 +649,7 @@ class Penebusan $data = Transaction::on('mysql7')->where('norujukan','=',$norujukan)->where('trans_type','=','AT')->first(); if(!empty($data)){ - return 'duplicate'; + return response()->json('duplicate'); } $ujrah=0;$onepercent=0;$rounded=0; @@ -917,4 +917,4 @@ class Penebusan } -} \ No newline at end of file +} From 645183a1a578629db1f274ca6c85f4354e19c450 Mon Sep 17 00:00:00 2001 From: hafifierahman Date: Tue, 31 Dec 2024 00:18:55 +0800 Subject: [PATCH 2/3] delete failover --- ...3407_create_failover_transaction_table.php | 39 ------------------- ...eate_failover_transaction_failed_table.php | 36 ----------------- 2 files changed, 75 deletions(-) delete mode 100644 database/migrations/2024_11_17_163407_create_failover_transaction_table.php delete mode 100644 database/migrations/2024_11_18_111139_create_failover_transaction_failed_table.php diff --git a/database/migrations/2024_11_17_163407_create_failover_transaction_table.php b/database/migrations/2024_11_17_163407_create_failover_transaction_table.php deleted file mode 100644 index 14717ad..0000000 --- a/database/migrations/2024_11_17_163407_create_failover_transaction_table.php +++ /dev/null @@ -1,39 +0,0 @@ -create('failover_transaction', function (Blueprint $table) { - $table->id(); - $table->string('kodcaw',10); - $table->string('teller',255); - $table->string('old_norujukan',50); - $table->string('new_norujukan',50)->nullable(); - $table->boolean('db_caw')->default(false); // Boolean for db_caw, default to false - $table->boolean('db_online')->default(false); - $table->enum('status', ['pending', 'resolved', 'failed'])->default('pending'); // Use ENUM for statuses - $table->timestamp('resolve_time')->nullable(); // Timestamp for resolve time, nullable - $table->timestamps(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::connection('mysql7')->dropIfExists('failover_transaction'); - } -} diff --git a/database/migrations/2024_11_18_111139_create_failover_transaction_failed_table.php b/database/migrations/2024_11_18_111139_create_failover_transaction_failed_table.php deleted file mode 100644 index e322922..0000000 --- a/database/migrations/2024_11_18_111139_create_failover_transaction_failed_table.php +++ /dev/null @@ -1,36 +0,0 @@ -id(); - $table->unsignedBigInteger('original_id'); // Reference to failover_transaction - $table->string('kodcaw'); - $table->string('norujukan'); - $table->integer('code_error'); - $table->text('error_message')->nullable(); - $table->timestamps(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('failover_transaction_failed'); - } -} From 040ba3c476703b1d1914c87e52376237b706da60 Mon Sep 17 00:00:00 2001 From: hafifierahman Date: Tue, 31 Dec 2024 00:19:58 +0800 Subject: [PATCH 3/3] delete app failover --- app/FailoverTransaction.php | 43 ------------------------------- app/FailoverTransactionFailed.php | 30 --------------------- 2 files changed, 73 deletions(-) delete mode 100644 app/FailoverTransaction.php delete mode 100644 app/FailoverTransactionFailed.php diff --git a/app/FailoverTransaction.php b/app/FailoverTransaction.php deleted file mode 100644 index 2872b32..0000000 --- a/app/FailoverTransaction.php +++ /dev/null @@ -1,43 +0,0 @@ - 'boolean', - 'db_online' => 'boolean', - 'resolve_time' => 'datetime', - ]; -} diff --git a/app/FailoverTransactionFailed.php b/app/FailoverTransactionFailed.php deleted file mode 100644 index e45546e..0000000 --- a/app/FailoverTransactionFailed.php +++ /dev/null @@ -1,30 +0,0 @@ -