Files

345 lines
12 KiB
PHP

<?php
namespace App\Console\Commands;
use App\Cawangan;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\DB;
class InsertSempornaData extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'palsu:insert-data {kodcaw=011237 : The kodcaw value to insert data for}';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Insert sample data into palsu table for specific kodcaw';
/**
* Execute the console command.
*
* @return int
*/
public function handle()
{
$kodcaw = $this->argument('kodcaw');
$this->info("Inserting data for kodcaw: {$kodcaw}");
// Validate if kodcaw exists in Cawangan table
$cawangan = DB::connection('mysql7')->table('arrahn_master_db')->where('kodcaw', $kodcaw)->first();
if (!$cawangan) {
$this->error("Error: kodcaw '{$kodcaw}' not found in Cawangan table!");
return Command::FAILURE;
}
// Convert stdClass to array if needed
$cawangan = (array) $cawangan;
if (!isset($cawangan['mysql']) || empty($cawangan['mysql'])) {
$this->error("Error: Database connection not found for kodcaw '{$kodcaw}'!");
return Command::FAILURE;
}
$this->info("Using database connection: {$cawangan['mysql']}");
$data = [
[
'kodcaw' => $kodcaw,
'tarikh' => '2024-11-28',
'norujukan' => '011237240808-0003',
'teller' => 'DM',
'nota' => 'Barang Kes Semporna 28/11/24',
'nilaimarhun' => 1748.20,
'jbg' => 4,
'untung' => 78.00,
'untungonepercent' => 52.00,
'untungcajlain' => 26.00,
'pembiayaan' => 1300.00,
],
[
'kodcaw' => $kodcaw,
'tarikh' => '2024-11-28',
'norujukan' => '011237240719-0015',
'teller' => 'DM',
'nota' => 'Barang Kes Semporna 28/11/24',
'nilaimarhun' => 8499.80,
'jbg' => 4.5,
'untung' => 519.30,
'untungonepercent' => 305.55,
'untungcajlain' => 213.75,
'pembiayaan' => 6790.00,
],
[
'kodcaw' => $kodcaw,
'tarikh' => '2024-11-28',
'norujukan' => '011237240806-0011',
'teller' => 'DM',
'nota' => 'Barang Kes Semporna 28/11/24',
'nilaimarhun' => 8740.98,
'jbg' => 4,
'untung' => 475.40,
'untungonepercent' => 279.60,
'untungcajlain' => 195.80,
'pembiayaan' => 6990.00,
],
[
'kodcaw' => $kodcaw,
'tarikh' => '2024-11-28',
'norujukan' => '011237240828-0001',
'teller' => 'DM',
'nota' => 'Barang Kes Semporna 28/11/24',
'nilaimarhun' => 8121.20,
'jbg' => 3,
'untung' => 316.65,
'untungonepercent' => 182.70,
'untungcajlain' => 133.95,
'pembiayaan' => 6090.00,
],
[
'kodcaw' => $kodcaw,
'tarikh' => '2024-11-28',
'norujukan' => '011237240904-0007',
'teller' => 'DM',
'nota' => 'Barang Kes Semporna 28/11/24',
'nilaimarhun' => 16135.20,
'jbg' => 3,
'untung' => 617.10,
'untungonepercent' => 363.00,
'untungcajlain' => 254.10,
'pembiayaan' => 12100.00,
],
[
'kodcaw' => $kodcaw,
'tarikh' => '2024-11-28',
'norujukan' => '011237240904-0008',
'teller' => 'DM',
'nota' => 'Barang Kes Semporna 28/11/24',
'nilaimarhun' => 12101.40,
'jbg' => 3,
'untung' => 462.60,
'untungonepercent' => 272.10,
'untungcajlain' => 190.50,
'pembiayaan' => 9070.00,
],
[
'kodcaw' => $kodcaw,
'tarikh' => '2024-11-28',
'norujukan' => '011237240904-0009',
'teller' => 'DM',
'nota' => 'Barang Kes Semporna 28/11/24',
'nilaimarhun' => 6050.70,
'jbg' => 3,
'untung' => 231.00,
'untungonepercent' => 135.90,
'untungcajlain' => 95.10,
'pembiayaan' => 4530.00,
],
[
'kodcaw' => $kodcaw,
'tarikh' => '2024-11-28',
'norujukan' => '011237240719-0023',
'teller' => 'DM',
'nota' => 'Barang Kes Semporna 28/11/24',
'nilaimarhun' => 19001.24,
'jbg' => 4.5,
'untung' => 149.18,
'untungonepercent' => 87.75,
'untungcajlain' => 61.43,
'pembiayaan' => 1950.00,
],
[
'kodcaw' => $kodcaw,
'tarikh' => '2024-11-28',
'norujukan' => '011237240719-0024',
'teller' => 'DM',
'nota' => 'Barang Kes Semporna 28/11/24',
'nilaimarhun' => 8499.80,
'jbg' => 4.5,
'untung' => 65.03,
'untungonepercent' => 38.25,
'untungcajlain' => 26.78,
'pembiayaan' => 850.00,
],
[
'kodcaw' => $kodcaw,
'tarikh' => '2024-11-28',
'norujukan' => '011237240719-0025',
'teller' => 'DM',
'nota' => 'Barang Kes Semporna 28/11/24',
'nilaimarhun' => 15972.57,
'jbg' => 4.5,
'untung' => 122.40,
'untungonepercent' => 72.00,
'untungcajlain' => 50.40,
'pembiayaan' => 1600.00,
],
[
'kodcaw' => $kodcaw,
'tarikh' => '2024-11-28',
'norujukan' => '011237240618-0026',
'teller' => 'DM',
'nota' => 'Barang Kes Semporna 28/11/24',
'nilaimarhun' => 8552.90,
'jbg' => 5.5,
'untung' => 187.00,
'untungonepercent' => 110.00,
'untungcajlain' => 77.00,
'pembiayaan' => 2000.00,
],
[
'kodcaw' => $kodcaw,
'tarikh' => '2024-11-28',
'norujukan' => '011237240719-0027',
'teller' => 'DM',
'nota' => 'Barang Kes Semporna 28/11/24',
'nilaimarhun' => 42923.11,
'jbg' => 4.5,
'untung' => 328.95,
'untungonepercent' => 193.50,
'untungcajlain' => 135.45,
'pembiayaan' => 4300.00,
],
[
'kodcaw' => $kodcaw,
'tarikh' => '2024-11-28',
'norujukan' => '011237240719-0028',
'teller' => 'DM',
'nota' => 'Barang Kes Semporna 28/11/24',
'nilaimarhun' => 41872.04,
'jbg' => 4.5,
'untung' => 321.30,
'untungonepercent' => 189.00,
'untungcajlain' => 132.30,
'pembiayaan' => 4200.00,
],
[
'kodcaw' => $kodcaw,
'tarikh' => '2024-11-28',
'norujukan' => '011237240618-0020',
'teller' => 'DM',
'nota' => 'Barang Kes Semporna 28/11/24',
'nilaimarhun' => 15495.86,
'jbg' => 5.5,
'untung' => 280.50,
'untungonepercent' => 165.00,
'untungcajlain' => 115.50,
'pembiayaan' => 3000.00,
],
[
'kodcaw' => $kodcaw,
'tarikh' => '2024-11-28',
'norujukan' => '011237240719-0030',
'teller' => 'DM',
'nota' => 'Barang Kes Semporna 28/11/24',
'nilaimarhun' => 17483.01,
'jbg' => 4.5,
'untung' => 133.88,
'untungonepercent' => 78.75,
'untungcajlain' => 55.13,
'pembiayaan' => 1750.00,
],
[
'kodcaw' => $kodcaw,
'tarikh' => '2024-11-28',
'norujukan' => '011237240618-0029',
'teller' => 'DM',
'nota' => 'Barang Kes Semporna 28/11/24',
'nilaimarhun' => 10062.25,
'jbg' => 5.5,
'untung' => 280.50,
'untungonepercent' => 165.00,
'untungcajlain' => 115.50,
'pembiayaan' => 3000.00,
],
[
'kodcaw' => $kodcaw,
'tarikh' => '2024-11-28',
'norujukan' => '011237240731-0026',
'teller' => 'DM',
'nota' => 'Barang Kes Semporna 28/11/24',
'nilaimarhun' => 10283.50,
'jbg' => 4.5,
'untung' => 558.45,
'untungonepercent' => 328.50,
'untungcajlain' => 229.95,
'pembiayaan' => 7300.00,
],
[
'kodcaw' => $kodcaw,
'tarikh' => '2024-11-28',
'norujukan' => '011237240715-0027',
'teller' => 'DM',
'nota' => 'Barang Kes Semporna 28/11/24',
'nilaimarhun' => 29624.77,
'jbg' => 4.5,
'untung' => 1147.50,
'untungonepercent' => 675.00,
'untungcajlain' => 472.50,
'pembiayaan' => 15000.00,
],
[
'kodcaw' => $kodcaw,
'tarikh' => '2024-11-28',
'norujukan' => '011237240912-0009',
'teller' => 'DM',
'nota' => 'Barang Kes Semporna 28/11/24',
'nilaimarhun' => 12654.35,
'jbg' => 3,
'untung' => 428.40,
'untungonepercent' => 252.00,
'untungcajlain' => 176.40,
'pembiayaan' => 8400.00,
],
];
$insertedCount = 0;
$skippedCount = 0;
// Start database transaction
DB::connection($cawangan['mysql'])->beginTransaction();
try {
foreach ($data as $record) {
// Check if record already exists
$exists = DB::connection($cawangan['mysql'])->table('palsu')
->where('kodcaw', $record['kodcaw'])
->where('norujukan', $record['norujukan'])
->exists();
if (!$exists) {
DB::connection($cawangan['mysql'])->table('palsu')->insert($record);
$insertedCount++;
$this->line("✓ Inserted: {$record['norujukan']}");
} else {
$skippedCount++;
$this->line("- Skipped: {$record['norujukan']} (already exists)");
}
}
// Commit the transaction if everything is successful
DB::connection($cawangan['mysql'])->commit();
$this->info("✓ Transaction committed successfully!");
} catch (\Exception $e) {
// Rollback the transaction if any error occurs
DB::connection($cawangan['mysql'])->rollback();
$this->error("✗ Transaction failed and rolled back: " . $e->getMessage());
return Command::FAILURE;
}
$this->info("\nSummary:");
$this->info("Inserted: {$insertedCount} records");
$this->info("Skipped: {$skippedCount} records");
return Command::SUCCESS;
}
}