added timestmap for gldetail

This commit is contained in:
hafifierahman
2025-02-26 01:27:49 +08:00
committed by Hafifie PKB
parent 73c8220e1a
commit e966d21417
4 changed files with 183 additions and 10 deletions
+82
View File
@@ -0,0 +1,82 @@
<?php
namespace App\Console\Commands;
use Exception;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Artisan;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log;
class CloneDatabase extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'migrate:clone';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Generate Laravel migrations from an existing database';
/**
* Execute the console command.
*
* @return int
*/
public function handle()
{
$tables = DB::connection('mysql7')->select("SHOW TABLES");
$namedatabase = DB::connection('mysql7')->getDatabaseName();
if (empty($tables)) {
$this->error("No tables found in database");
return;
}
$boolreject = false;
$list_of_rejected = ($boolreject) ? $this->rejected_table() : [];
// Get table names
$tableNames = array_map(fn($table) => is_array($table) ? array_values($table) : $table, $tables);
$tableString = collect($tables)->pluck('Tables_in_' .$namedatabase)->reject(fn($table) => in_array($table, $list_of_rejected))->implode(',');
// Run migration generator
Artisan::call("migrate:generate --path=database/migrations --tables=" .$tableString);
// Artisan::call("migrate:status");
$this->info("Migrations generated successfully for database");
}
protected function rejected_table() : Array{
return [
'alert','auditbarcode','auditdaftar',
'auditrekodsemakan','audtrail','bakipelanggan',
'bandar','batchlel_xtra','bayaranpenebusan','belian',
'brand','checker','configkaunter','gadaisimulasi','gadaitemp',
'gadaixtra','hapusgadaionline','hargaemasbeli',
'hargaemasjual','imbangan','inoutmarxtra',
'jemas00', 'jemasbeli','jemasxtra',
'jenisakaun','jualan','jualemas','jumlahtebus',
'karat','karatbeli','karatjual','karatxtra',
'ku_nm', 'ku_nmbaru', 'ku_nmxtra', 'kumpulan',
'kurangxtra', 'lapringkasan', 'laptebus', 'lapterkumpul',
'lapterkumpulharian','lelkarat','lelmarhun_xtra', 'marhunbeli',
'marhunjual', 'marhunsimulasi', 'marhunxtra', 'model',
'outmarhun', 'outmarhunxtra', 'palsu', 'pemeriksaan',
'pengesahangadai', ' peratusan', 'percentonline',
'polisxtra','product','ramalan', 'rekodtangguh', 'sahabat',
'simpanan', 'simulasi_batchlel', 'simulasi_batchlelxtra',
'simulasi_lelmarhun', 'simulasi_lelong', 'simulasi_lelongxtra',
'tagpelanggan', 'tangguhlelong', 'taraf',
'tebus_xtra', 'tebuslelong', 'temp_ic', 'tempimbang',
'tempnosiri', 'tempnosirixtra', 'temppwd', 'temptarikhaging',
'tunaigadteb', 'tuntutbakixtra', 'ubs_code', 'ugama',
'updateserver', 'zparameter', 'zparameterxtra','ZPARAMETER1'];
}
}
+52 -10
View File
@@ -719,6 +719,25 @@ class VaultController extends Controller
return response()->json($vault);
}
public function createAutoSerahan($kodcaw,Request $request){
$current = Carbon::now();
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first();
ApprovalWithdrawal::on('mysql7')->create([
'kodcaw' => $request->kodcaw,
'pc_name' => $request->teller,
'operasi_name' => null,
'amount' => $request->amaun,
'approval_status' => 'PENDING',
'approval_timestamp' => null,
'gldetail_id' => 0,
'updated_serahan_v2' => 0,
'updated_pendahuluan_v3' => 0,
'created_at' => $current,
'updated_at' => $current,
]);
}
public function autoSerahan($kodcaw,Request $request){
$current = Carbon::now();
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first();
@@ -755,9 +774,14 @@ class VaultController extends Controller
'ktacct' => $request->ktacct,
'descpt' => $request->keterangan,
'pendahuluan' => $request->amaun,
'teller' => $request->teller . ' (AUTO V3)'
'teller' => $request->teller . ' (AUTO V3)',
'date_created' => $current
]);
ApprovalWithdrawal::on('mysql7')->update(array(
'updated_pendahuluan_v3' => 1,
));
}else if($request->jenispendahuluanserahan == 'serahan'){
$totalserahan = $request->amaun + $serahan;
@@ -770,14 +794,15 @@ class VaultController extends Controller
'bakieod' => $bakiakhir
));
GlDetail::on($cawangan['mysql'])->create([
$gldetail = GlDetail::on($cawangan['mysql'])->create([
'kodcaw' => $request->kodcaw,
'tarikh' => $current->toDateString(),
'dtacct' => $request->dtacct,
'ktacct' => $request->ktacct,
'descpt' => $request->keterangan,
'serahan' => $request->amaun,
'teller' => $request->teller . ' (AUTO V3)'
'teller' => $request->teller . ' (AUTO V3)',
'date_created' => $current
]);
DenoPendSer::on('mysql7')->create([
@@ -807,14 +832,13 @@ class VaultController extends Controller
'jenis' =>$request->jenis,
'recno' =>$request->recno,
'update' => '0'
]);
ApprovalWithdrawal::on('mysql7')->create([
'kodcaw' => $request->kodcaw,
'amaun' => $request->amaun,
'status' => '1',
'teller' => $request->teller . ' (AUTO V3)'
]);
ApprovalWithdrawal::on('mysql7')->update(array(
'updated_serahan_v2' => 1,
'gldetail_id' => $gldetail->id
));
}
// Commit transactions
@@ -828,6 +852,24 @@ class VaultController extends Controller
}
}
public function autoSerahanApproval($kodcaw,Request $request){
$current = Carbon::now();
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first();
$vault = Vault::on($cawangan['mysql'])->where('kodcaw','=',$kodcaw)->where('tarikh','=',$current->toDateString())->orderby('tarikh','desc')->first();
DB::connection($cawangan['mysql'])->beginTransaction();
DB::connection('mysql7')->beginTransaction();
try{
DB::connection('mysql7')->commit();
DB::connection($cawangan['mysql'])->commit();
}catch(\Exception $e){
DB::connection($cawangan['mysql'])->rollBack();
DB::connection('mysql7')->rollBack();
return response()->json($e->getMessage());
}
}
}
@@ -0,0 +1,48 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class AddTimestampToGldetailTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function getActiveDB(){
$config_db = array_keys(config("database.connections"));
$db_connection = array_filter($config_db,function($connection){
try{
if($connection == 'mysql7')
return false;
$db = DB::connection($connection)->getPdo();
return true;
} catch(\Exception $e){
return false;
}
});
return $db_connection;
}
public function up()
{
$db_connection = $this->getActiveDB();
foreach($db_connection as $dbase){
Schema::connection($dbase)->table('gldetail', function (Blueprint $table) use($dbase) {
$dateCreated = Schema::connection($dbase)->hasColumn('gldetail', 'date_created');
if (!$dateCreated) {
$table->timestamp('date_created');
}
});
}
}
}
+1
View File
@@ -680,6 +680,7 @@ $router->group(['prefix'=>'api'], function () use ($router){
/* Endpoint for Auto Serahan */
$router->get('auto/serahan/{kodcaw}',['uses'=>'VaultController@autoSerahan']);
$router->put('auto/approve/serahan/{kodcaw}',['uses'=>'VaultController@autoSerahanApproval']);
});