'clean', 'base_url' => 'https://clean.bintorocorp.co.id/api', ], [ 'base_import_name' => 'pest', 'base_url' => 'https://pest.bintorocorp.co.id/api', ], [ 'base_import_name' => 'architect', 'base_url' => 'https://arsitek.bintorocorp.co.id/api', ] ]; /** * ni fungsi bakal dipanggil dikelas lain * entar parameter di callablenya itu response dari API * * @param string $endpoint * @param callable $callback * @return void */ public static function import($endpoint, callable $callback) { /** @var ServiceCategoryRepositoryInterface */ $serviceCategoryRepository = app(ServiceCategoryRepositoryInterface::class); foreach (self::APIs as $api) { $service = $serviceCategoryRepository->findByBaseImportName( $api['base_import_name'] ); if (!$service) continue; // ngambil data json dari API $res = httpRequest($api['base_url'] . '/' . $endpoint); if ($res) { changeDatabase($service->database_name); $siteProject = SiteProject::where([ ['name', DB::raw('LOWER("DKI Jakarta Jawa Barat")')], ['service_category_id', $service->id] ])->first(); if (!$siteProject) { $siteProject = SiteProject::create([ 'name' => 'DKI Jakarta Jawa Barat', 'office_address' => '-', 'phone_number' => '-', ]); } setSiteProjectId($siteProject->id); $callback($res, $api['base_import_name'], $service); } changeDatabase(); } } /** * Run the database seeds. * * @return void */ public function run() { /** * ngehapus semua data dulu di database buku */ Schema::disableForeignKeyConstraints(); ChartOfAccount::truncate(); Item::truncate(); ManualJournal::truncate(); SaleOrder::truncate(); ItemSaleOrder::truncate(); Invoice::truncate(); RetainerInvoice::truncate(); PurchaseOrder::truncate(); ItemPurchaseOrder::truncate(); Bill::truncate(); Expense::truncate(); Payment::truncate(); TaxDeducated::truncate(); ChartOfAccountTransaction::truncate(); Tax::truncate(); Term::truncate(); $this->call([ ImportTermSeeder::class, ImportTaxSeeder::class, ImportCoaSeeder::class, ImportItemSeeder::class, ImportManualJournalSeeder::class, ImportRetainerInvoiceSeeder::class, ImportInvoiceSeeder::class, ImportPurchaseOrderSeeder::class, ImportExpenseSeeder::class, ]); } }