From 0ac42331d49436b93c01558c335d0f9fda6e8b2d Mon Sep 17 00:00:00 2001 From: Afiq Hamzah Date: Mon, 19 Jan 2026 16:41:10 +0800 Subject: [PATCH 1/3] Add krk changes to prod --- app/Http/Controllers/AdminPageController.php | 4 +-- app/Http/Controllers/MarhunController.php | 4 +-- app/Services/Reports/ImbangDugaService.php | 3 +- .../Reports/RingkasanHarianService.php | 2 +- composer.json | 2 +- composer.lock | 31 +++++++++---------- config/tennant_master.php | 2 +- 7 files changed, 23 insertions(+), 25 deletions(-) diff --git a/app/Http/Controllers/AdminPageController.php b/app/Http/Controllers/AdminPageController.php index ac61471..55d9e2a 100644 --- a/app/Http/Controllers/AdminPageController.php +++ b/app/Http/Controllers/AdminPageController.php @@ -4050,11 +4050,11 @@ class AdminPageController extends Controller 'tarikh' => $request->tarikh, 'kodcaw' => $kodcaw, ]); - $exception_case = $this->AkruKeuntunganSebenar($requestData); + $exception_case = $this->AkruKeuntunganSebenar($requestData)->getData(); } $backdate_keun_sebenar += isset($get_imbangduga['keun_sebenar']) ? $get_imbangduga['keun_sebenar'] : 0; - $backdate_keun_sebenar += $exception_case; + $backdate_keun_sebenar += (float) ($exception_case ?? 0); $recentDate->subYear()->startOfYear(); } diff --git a/app/Http/Controllers/MarhunController.php b/app/Http/Controllers/MarhunController.php index 8c8a7b7..1ae633e 100644 --- a/app/Http/Controllers/MarhunController.php +++ b/app/Http/Controllers/MarhunController.php @@ -203,7 +203,7 @@ class MarhunController extends Controller $marhun = Marhun::on($cawangan['mysql']) ->select('marhun.norujukan','gadai.nokp','customer.nama','marhun.marhun','marhun.nota','marhun.berat','marhun.karat','marhun.harga','marhun.n_marhun','marhun.t_gadai','marhun.tag_permata', 'marhun.berat_batu_permata') ->rightJoin('gadai', 'gadai.norujukan', '=', 'marhun.norujukan') - ->rightJoin('online_arrahn.customer as customer', 'customer.kpbaru','=','gadai.nokp') + ->rightJoin('master_krk.customer as customer', 'customer.kpbaru','=','gadai.nokp') ->where('marhun.t_gadai','=',$tarikh) ->orderBy('marhun.t_gadai') ->get(); @@ -221,7 +221,7 @@ class MarhunController extends Controller $marhun = Marhun::on($cawangan['mysql']) ->select('marhun.norujukan','gadai.sttebus','gadai.pinjaman','gadai.nokp','customer.nama','marhun.marhun','marhun.nota','marhun.berat','marhun.karat','marhun.harga','marhun.n_marhun','marhun.t_gadai') ->rightJoin('gadai', 'gadai.norujukan', '=', 'marhun.norujukan') - ->rightJoin('online_arrahn.customer as customer', 'customer.kpbaru','=','gadai.nokp') + ->rightJoin('master_krk.customer as customer', 'customer.kpbaru','=','gadai.nokp') ->where('marhun.t_gadai','<=',$tarikh) ->whereYear('marhun.t_gadai','=',$current->year) ->where('gadai.sttebus','=','') diff --git a/app/Services/Reports/ImbangDugaService.php b/app/Services/Reports/ImbangDugaService.php index a349f8b..de5f976 100644 --- a/app/Services/Reports/ImbangDugaService.php +++ b/app/Services/Reports/ImbangDugaService.php @@ -377,7 +377,8 @@ class ImbangDugaService 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 $total; } diff --git a/app/Services/Reports/RingkasanHarianService.php b/app/Services/Reports/RingkasanHarianService.php index 4167b47..ccb76c5 100644 --- a/app/Services/Reports/RingkasanHarianService.php +++ b/app/Services/Reports/RingkasanHarianService.php @@ -1322,7 +1322,7 @@ class RingkasanHarianService return floatval($totalSerahan); } - return floatval(0); + return floatval($serahanpkbTawarruq); } diff --git a/composer.json b/composer.json index e26171c..458063f 100644 --- a/composer.json +++ b/composer.json @@ -9,7 +9,7 @@ "auth0/auth0-php": "^7.4", "doctrine/dbal": "2.13.5", "laravel/lumen-framework": "^7.0", - "laravel/tinker": "^2.8", + "laravel/tinker": "^2.9", "rap2hpoutre/laravel-log-viewer": "^1.7", "spatie/laravel-ray": "^1.33" }, diff --git a/composer.lock b/composer.lock index bc01192..fc82312 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "2a35e67752107934701ceea957a4fd34", + "content-hash": "fd818732ff1c4578859e2cd033cf5114", "packages": [ { "name": "auth0/auth0-php", @@ -2541,25 +2541,25 @@ }, { "name": "laravel/tinker", - "version": "v2.8.2", + "version": "v2.9.0", "source": { "type": "git", "url": "https://github.com/laravel/tinker.git", - "reference": "b936d415b252b499e8c3b1f795cd4fc20f57e1f3" + "reference": "502e0fe3f0415d06d5db1f83a472f0f3b754bafe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/tinker/zipball/b936d415b252b499e8c3b1f795cd4fc20f57e1f3", - "reference": "b936d415b252b499e8c3b1f795cd4fc20f57e1f3", + "url": "https://api.github.com/repos/laravel/tinker/zipball/502e0fe3f0415d06d5db1f83a472f0f3b754bafe", + "reference": "502e0fe3f0415d06d5db1f83a472f0f3b754bafe", "shasum": "" }, "require": { - "illuminate/console": "^6.0|^7.0|^8.0|^9.0|^10.0", - "illuminate/contracts": "^6.0|^7.0|^8.0|^9.0|^10.0", - "illuminate/support": "^6.0|^7.0|^8.0|^9.0|^10.0", + "illuminate/console": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0", + "illuminate/contracts": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0", + "illuminate/support": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0", "php": "^7.2.5|^8.0", - "psy/psysh": "^0.10.4|^0.11.1", - "symfony/var-dumper": "^4.3.4|^5.0|^6.0" + "psy/psysh": "^0.11.1|^0.12.0", + "symfony/var-dumper": "^4.3.4|^5.0|^6.0|^7.0" }, "require-dev": { "mockery/mockery": "~1.3.3|^1.4.2", @@ -2567,13 +2567,10 @@ "phpunit/phpunit": "^8.5.8|^9.3.3" }, "suggest": { - "illuminate/database": "The Illuminate Database package (^6.0|^7.0|^8.0|^9.0|^10.0)." + "illuminate/database": "The Illuminate Database package (^6.0|^7.0|^8.0|^9.0|^10.0|^11.0)." }, "type": "library", "extra": { - "branch-alias": { - "dev-master": "2.x-dev" - }, "laravel": { "providers": [ "Laravel\\Tinker\\TinkerServiceProvider" @@ -2604,9 +2601,9 @@ ], "support": { "issues": "https://github.com/laravel/tinker/issues", - "source": "https://github.com/laravel/tinker/tree/v2.8.2" + "source": "https://github.com/laravel/tinker/tree/v2.9.0" }, - "time": "2023-08-15T14:27:00+00:00" + "time": "2024-01-04T16:10:04+00:00" }, { "name": "monolog/monolog", @@ -8396,5 +8393,5 @@ "php": "^7.2.5" }, "platform-dev": [], - "plugin-api-version": "2.3.0" + "plugin-api-version": "2.2.0" } diff --git a/config/tennant_master.php b/config/tennant_master.php index e0e2cbe..6e88ed0 100644 --- a/config/tennant_master.php +++ b/config/tennant_master.php @@ -1,5 +1,5 @@ env('TENNANT_MASTER_DB','master_erahn') + 'database' => env('TENNANT_MASTER_DB','master_krk') ]; From 8fe42c1d9f98af79ed7a9d4fee9d91b7e5bd495e Mon Sep 17 00:00:00 2001 From: Afiq Hamzah Date: Tue, 20 Jan 2026 11:36:41 +0800 Subject: [PATCH 2/3] Refactor tenant database configuration to use dynamic config values MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Replace hardcoded database names (online_arrahn, master_krk, kaunterpkb) with configurable values across the codebase - Rename tennant_master.php to tennant_database.php for clearer naming - Update config keys: 'database' → 'master_db', add 'kaunter_db' - Update env variables: TENNANT_MASTER_DB and TENNANT_KAUNTER_DB - Modify Helper.php to use dynamic database references in getOnlineArrahnConnection(), getActiveCawanganDbConnection(), and getInactiveCawanganDbConnection() methods - Update database JOIN queries in CustomerController and MarhunController to use config values instead of hardcoded database names - Simplify migration logic by removing redundant hardcoded database checks - Update debug messages in CawanganDebugConnections to show actual configured database name - Update bootstrap/app.php to load tennant_database config This change improves multi-environment flexibility and eliminates environment-specific hardcoded values, making the application more configurable for different deployment scenarios (KRK, KGMK, etc). --- app/Console/Commands/CawanganDebugConnections.php | 2 +- app/Helper.php | 6 +++--- app/Http/Controllers/CustomerController.php | 2 +- app/Http/Controllers/MarhunController.php | 4 ++-- bootstrap/app.php | 2 +- config/tennant_database.php | 6 ++++++ config/tennant_master.php | 5 ----- .../2023_11_14_121109_add_columns_to_komuditi_transaksi.php | 4 ++-- tinker/getActiveCawanganDbConnection.php | 2 +- 9 files changed, 17 insertions(+), 16 deletions(-) create mode 100644 config/tennant_database.php delete mode 100644 config/tennant_master.php diff --git a/app/Console/Commands/CawanganDebugConnections.php b/app/Console/Commands/CawanganDebugConnections.php index d4372f8..ec15539 100644 --- a/app/Console/Commands/CawanganDebugConnections.php +++ b/app/Console/Commands/CawanganDebugConnections.php @@ -80,7 +80,7 @@ class CawanganDebugConnections extends Command return $idToNameMap[$item['mysql']] !== $item['database']; }); } catch (\Throwable $th) { - dump(sprintf('Connection %s not found in table online_arrahn.arrahn_master_db but present in config. Make sure both of connection exist in both app/config and arrahn_master_db', $tested_connection)); + dump(sprintf('Connection %s not found in table %s.arrahn_master_db but present in config. Make sure both of connection exist in both app/config and arrahn_master_db', $tested_connection, config('tennant_database.master_db'))); return; } diff --git a/app/Helper.php b/app/Helper.php index 63fb7b7..ceccf4f 100644 --- a/app/Helper.php +++ b/app/Helper.php @@ -12,7 +12,7 @@ class Helper { $online_arrahn_connection = array_filter(config('database.connections'), function ($connection) { - if ($connection['database'] === 'online_arrahn') { + if ($connection['database'] === config('tennant_database.master_db')) { return $connection; } }); @@ -43,7 +43,7 @@ class Helper } }); - $non_cawangan_database = ['lelong', 'online_arrahn', 'kaunterpkb']; + $non_cawangan_database = ['lelong', config('tennant_database.master_db'), config('tennant_database.kaunter_db')]; $all_cawangan_db = array_filter($all_active_db_keys, function ($db_key) use ($non_cawangan_database) { $isNotCawangan = in_array(config('database.connections.' . $db_key . '.database'), $non_cawangan_database); @@ -74,7 +74,7 @@ class Helper } }); - $non_cawangan_database = ['lelong', 'online_arrahn', 'kaunterpkb']; + $non_cawangan_database = ['lelong', config('tennant_database.master_db'), config('tennant_database.kaunter_db')]; $all_cawangan_db = array_filter($all_inactive_db_keys, function ($db_key) use ($non_cawangan_database) { $isNotCawangan = in_array(config('database.connections.' . $db_key . '.database'), $non_cawangan_database); diff --git a/app/Http/Controllers/CustomerController.php b/app/Http/Controllers/CustomerController.php index c19232b..06fc48f 100644 --- a/app/Http/Controllers/CustomerController.php +++ b/app/Http/Controllers/CustomerController.php @@ -720,7 +720,7 @@ class CustomerController extends Controller $customer = Customer::on($cawangan['mysql']) ->where('kplama','=',$nokp) ->orWhere('kpbaru','=',$nokp) - ->rightJoin('online_arrahn.bank', 'bank.id', '=', 'customer.kodbank') + ->rightJoin(config('tennant_database.master_db') . '.bank', 'bank.id', '=', 'customer.kodbank') ->first(); if(!empty($customer)) diff --git a/app/Http/Controllers/MarhunController.php b/app/Http/Controllers/MarhunController.php index 1ae633e..2153483 100644 --- a/app/Http/Controllers/MarhunController.php +++ b/app/Http/Controllers/MarhunController.php @@ -203,7 +203,7 @@ class MarhunController extends Controller $marhun = Marhun::on($cawangan['mysql']) ->select('marhun.norujukan','gadai.nokp','customer.nama','marhun.marhun','marhun.nota','marhun.berat','marhun.karat','marhun.harga','marhun.n_marhun','marhun.t_gadai','marhun.tag_permata', 'marhun.berat_batu_permata') ->rightJoin('gadai', 'gadai.norujukan', '=', 'marhun.norujukan') - ->rightJoin('master_krk.customer as customer', 'customer.kpbaru','=','gadai.nokp') + ->rightJoin(config('tennant_database.master_db') . '.customer as customer', 'customer.kpbaru','=','gadai.nokp') ->where('marhun.t_gadai','=',$tarikh) ->orderBy('marhun.t_gadai') ->get(); @@ -221,7 +221,7 @@ class MarhunController extends Controller $marhun = Marhun::on($cawangan['mysql']) ->select('marhun.norujukan','gadai.sttebus','gadai.pinjaman','gadai.nokp','customer.nama','marhun.marhun','marhun.nota','marhun.berat','marhun.karat','marhun.harga','marhun.n_marhun','marhun.t_gadai') ->rightJoin('gadai', 'gadai.norujukan', '=', 'marhun.norujukan') - ->rightJoin('master_krk.customer as customer', 'customer.kpbaru','=','gadai.nokp') + ->rightJoin(config('tennant_database.master_db') . '.customer as customer', 'customer.kpbaru','=','gadai.nokp') ->where('marhun.t_gadai','<=',$tarikh) ->whereYear('marhun.t_gadai','=',$current->year) ->where('gadai.sttebus','=','') diff --git a/bootstrap/app.php b/bootstrap/app.php index bf393b1..16b5e30 100644 --- a/bootstrap/app.php +++ b/bootstrap/app.php @@ -61,7 +61,7 @@ $app->singleton( $app->configure('app'); $app->configure('tinker'); -$app->configure('tennant_master'); +$app->configure('tennant_database'); $app->configure('report'); $app->configure('app_parameter'); diff --git a/config/tennant_database.php b/config/tennant_database.php new file mode 100644 index 0000000..09d92cb --- /dev/null +++ b/config/tennant_database.php @@ -0,0 +1,6 @@ + env('TENNANT_MASTER_DB','online_arrahn'), + 'kaunter_db' => env('TENNANT_KAUNTER_DB','kaunterpkb') +]; diff --git a/config/tennant_master.php b/config/tennant_master.php deleted file mode 100644 index 6e88ed0..0000000 --- a/config/tennant_master.php +++ /dev/null @@ -1,5 +0,0 @@ - env('TENNANT_MASTER_DB','master_krk') -]; diff --git a/database/migrations/2023_11_14_121109_add_columns_to_komuditi_transaksi.php b/database/migrations/2023_11_14_121109_add_columns_to_komuditi_transaksi.php index e564eb6..897302e 100644 --- a/database/migrations/2023_11_14_121109_add_columns_to_komuditi_transaksi.php +++ b/database/migrations/2023_11_14_121109_add_columns_to_komuditi_transaksi.php @@ -42,7 +42,7 @@ class AddColumnsToKomuditiTransaksi extends Migration { $online_arrahn_connection_array = array_filter(config('database.connections'), function($connection) { - if($connection['database'] === 'online_arrahn' || $connection['database'] === 'master_krk' || $connection['database'] === config('tennant_master.database')){ + if($connection['database'] === config('tennant_database.master_db')){ return true; } @@ -53,7 +53,7 @@ class AddColumnsToKomuditiTransaksi extends Migration if(empty($online_arrahn_connection_array)){ - throw new Exception("online_arrahn or master_krk doesn't exist in config.database.connections array"); + throw new Exception("Tennant master database (" . config('tennant_database.master_db') . ") doesn't exist in config.database.connections array"); } return array_keys($online_arrahn_connection_array)[0]; diff --git a/tinker/getActiveCawanganDbConnection.php b/tinker/getActiveCawanganDbConnection.php index a9fd113..96df402 100644 --- a/tinker/getActiveCawanganDbConnection.php +++ b/tinker/getActiveCawanganDbConnection.php @@ -11,7 +11,7 @@ $all_active_db_keys = array_filter(array_keys(config('database.connections')), f } }); -$non_cawangan_database = ['lelong', 'online_arrahn', 'kaunterpkb']; +$non_cawangan_database = ['lelong', config('tennant_database.master_db'), config('tennant_database.kaunter_db')]; $all_cawangan_db = array_filter($all_active_db_keys, function($db_key) use($non_cawangan_database){ $isNotCawangan = in_array(config('database.connections.' . $db_key . '.database'), $non_cawangan_database); From 288c10bcc6766c551a15a2eba260527945d01525 Mon Sep 17 00:00:00 2001 From: Afiq Hamzah Date: Tue, 20 Jan 2026 11:42:43 +0800 Subject: [PATCH 3/3] Restore composer.json and composer.lock from production --- composer.json | 2 +- composer.lock | 31 +++++++++++++++++-------------- 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/composer.json b/composer.json index 458063f..e26171c 100644 --- a/composer.json +++ b/composer.json @@ -9,7 +9,7 @@ "auth0/auth0-php": "^7.4", "doctrine/dbal": "2.13.5", "laravel/lumen-framework": "^7.0", - "laravel/tinker": "^2.9", + "laravel/tinker": "^2.8", "rap2hpoutre/laravel-log-viewer": "^1.7", "spatie/laravel-ray": "^1.33" }, diff --git a/composer.lock b/composer.lock index fc82312..bc01192 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "fd818732ff1c4578859e2cd033cf5114", + "content-hash": "2a35e67752107934701ceea957a4fd34", "packages": [ { "name": "auth0/auth0-php", @@ -2541,25 +2541,25 @@ }, { "name": "laravel/tinker", - "version": "v2.9.0", + "version": "v2.8.2", "source": { "type": "git", "url": "https://github.com/laravel/tinker.git", - "reference": "502e0fe3f0415d06d5db1f83a472f0f3b754bafe" + "reference": "b936d415b252b499e8c3b1f795cd4fc20f57e1f3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/tinker/zipball/502e0fe3f0415d06d5db1f83a472f0f3b754bafe", - "reference": "502e0fe3f0415d06d5db1f83a472f0f3b754bafe", + "url": "https://api.github.com/repos/laravel/tinker/zipball/b936d415b252b499e8c3b1f795cd4fc20f57e1f3", + "reference": "b936d415b252b499e8c3b1f795cd4fc20f57e1f3", "shasum": "" }, "require": { - "illuminate/console": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0", - "illuminate/contracts": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0", - "illuminate/support": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0", + "illuminate/console": "^6.0|^7.0|^8.0|^9.0|^10.0", + "illuminate/contracts": "^6.0|^7.0|^8.0|^9.0|^10.0", + "illuminate/support": "^6.0|^7.0|^8.0|^9.0|^10.0", "php": "^7.2.5|^8.0", - "psy/psysh": "^0.11.1|^0.12.0", - "symfony/var-dumper": "^4.3.4|^5.0|^6.0|^7.0" + "psy/psysh": "^0.10.4|^0.11.1", + "symfony/var-dumper": "^4.3.4|^5.0|^6.0" }, "require-dev": { "mockery/mockery": "~1.3.3|^1.4.2", @@ -2567,10 +2567,13 @@ "phpunit/phpunit": "^8.5.8|^9.3.3" }, "suggest": { - "illuminate/database": "The Illuminate Database package (^6.0|^7.0|^8.0|^9.0|^10.0|^11.0)." + "illuminate/database": "The Illuminate Database package (^6.0|^7.0|^8.0|^9.0|^10.0)." }, "type": "library", "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + }, "laravel": { "providers": [ "Laravel\\Tinker\\TinkerServiceProvider" @@ -2601,9 +2604,9 @@ ], "support": { "issues": "https://github.com/laravel/tinker/issues", - "source": "https://github.com/laravel/tinker/tree/v2.9.0" + "source": "https://github.com/laravel/tinker/tree/v2.8.2" }, - "time": "2024-01-04T16:10:04+00:00" + "time": "2023-08-15T14:27:00+00:00" }, { "name": "monolog/monolog", @@ -8393,5 +8396,5 @@ "php": "^7.2.5" }, "platform-dev": [], - "plugin-api-version": "2.2.0" + "plugin-api-version": "2.3.0" }