command->info('Seeding MasterCoa data...'); // Data static (diambil dari gambar, tanpa id) $data = [ ['category' => 'aktiva', 'name' => 'AKTIVA LANCAR', 'code' => '1-100.000', 'debit' => 1, 'credit' => 0], ['category' => 'hutang', 'name' => 'HUTANG LANCAR', 'code' => '2-100.000', 'debit' => 0, 'credit' => 1], ['category' => 'ekuitas', 'name' => 'EKUITAS', 'code' => '3-000.000', 'debit' => 0, 'credit' => 1], ['category' => 'pendapatan', 'name' => 'PENDAPATAN PUSAT', 'code' => '4-000.000', 'debit' => 0, 'credit' => 1], ['category' => 'hpp', 'name' => 'HPP', 'code' => '5-000.000', 'debit' => 1, 'credit' => 0], ['category' => 'beban_usaha', 'name' => 'BEBAN PENJUALAN', 'code' => '6-000.000', 'debit' => 1, 'credit' => 0], ['category' => 'aktiva', 'name' => 'AKTIVA TETAP', 'code' => '1-200.000', 'debit' => 1, 'credit' => 0], ['category' => 'aktiva', 'name' => 'KAS DAN BANK', 'code' => '1-100.100', 'debit' => 1, 'credit' => 0], ['category' => 'aktiva', 'name' => 'PIUTANG USAHA', 'code' => '1-100.200', 'debit' => 1, 'credit' => 0], ['category' => 'aktiva', 'name' => 'PIUTANG INTERNAL', 'code' => '1-100.300', 'debit' => 1, 'credit' => 0], ['category' => 'aktiva', 'name' => 'PERSEDIAAN', 'code' => '1-100.400', 'debit' => 1, 'credit' => 0], ['category' => 'aktiva', 'name' => 'UANG MUKA', 'code' => '1-100.500', 'debit' => 1, 'credit' => 0], ['category' => 'aktiva', 'name' => 'BIAYA DIBAYAR DIMUKA', 'code' => '1-100.600', 'debit' => 1, 'credit' => 0], ['category' => 'aktiva', 'name' => 'PAJAK DIBAYAR DIMUKA', 'code' => '1-100.700', 'debit' => 1, 'credit' => 0], ]; // Total bisnis unit yang berbeda $serviceCategoryIds = [1, 2, 3, 4, 5, 6, 9, 10, 11, 12]; // Kecuali Managemen dan Pool (10 Bisnis Unit) // Hitung total record untuk progress bar $totalRecords = count($data) * count($serviceCategoryIds); $this->command->getOutput()->progressStart($totalRecords); // Looping untuk create data foreach ($serviceCategoryIds as $serviceCategoryId) { foreach ($data as $record) { // Cek apakah data sudah ada berdasarkan 'code' dan 'service_category_id' $exists = MasterCoa::where('code', $record['code']) ->where('service_category_id', $serviceCategoryId) ->exists(); if (!$exists) { // Jika tidak ada, buat data baru MasterCoa::create([ 'category' => $record['category'], 'name' => $record['name'], 'code' => $record['code'], 'debit' => $record['debit'], 'credit' => $record['credit'], 'site_project_id' => $this->getCurrentSiteProjectId($serviceCategoryId), 'city_branch_id' => $this->getCurrentCityBranchId($serviceCategoryId), 'service_category_id' => $serviceCategoryId, 'created_by' => 528, // Default user ID ]); } $this->command->getOutput()->progressAdvance(); } } $this->command->getOutput()->progressFinish(); $this->command->info('MasterCoa seeding completed!'); } public function getCurrentSiteProjectId($serviceCategoryId) { // Ambil Selalu Pusat $siteProjectId = SiteProject::where('name', 'Pusat')->where('service_category_id', $serviceCategoryId)->first()->id; return $siteProjectId; } public function getCurrentCityBranchId($serviceCategoryId) { // Ambil Selalu Pusat $cityBranchId = CityBranch::where('name', 'Jabodetabek')->where('service_category_id', $serviceCategoryId)->first()->id; return $cityBranchId; } }