diff --git a/app/Models/Organization.php b/app/Models/Organization.php index 7a705843..6c3f7c73 100755 --- a/app/Models/Organization.php +++ b/app/Models/Organization.php @@ -19,6 +19,8 @@ class Organization extends Model 'part_of', 'main_address_id', 'corporate_id_partner', + 'phone', + 'email', ]; // public $with = [ diff --git a/database/migrations/2024_08_28_171751_add_column_to_organizations.php b/database/migrations/2024_08_28_171751_add_column_to_organizations.php new file mode 100644 index 00000000..399c5209 --- /dev/null +++ b/database/migrations/2024_08_28_171751_add_column_to_organizations.php @@ -0,0 +1,34 @@ +string('phone')->nullable()->after('main_address_id'); + $table->string('email')->nullable()->after('phone'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('organizations', function (Blueprint $table) { + $table->dropColumn('phone'); + $table->dropColumn('email'); + }); + } +}; diff --git a/database/seeders/ApotekMandiriInhealtSeeder.php b/database/seeders/ApotekMandiriInhealtSeeder.php new file mode 100644 index 00000000..ceef4d6e --- /dev/null +++ b/database/seeders/ApotekMandiriInhealtSeeder.php @@ -0,0 +1,87 @@ +open($file_path); + + $cell_map = [ // Urutan kolom di excel + 'No', + 'Nama KOP', + 'Nama KLY', + 'Kode Provider', + 'Nama Provider', + 'Jalan', + 'KODEPOS', + 'OPERASIONAL DAY', + 'OPERASIONAL HOUR', + 'AVAILABLE Brozo', + 'Geo Tag' + ]; + + foreach ($reader->getSheetIterator() as $sheet) { + foreach ($sheet->getRowIterator() as $index => $row) { + if ($index >= 4) { + $cells = $row->getCells(); + $data = [ + 'code' => $cells[3]->getValue(), + 'name' => $cells[4]->getValue(), + 'type' => 'hospital', + 'corporate_id_partner' => 5, // Mandiri Inhealth + 'phone' => $cells[11]->getValue(), + 'email' => isset($cells[12]) ? $cells[12]->getValue() : null, + ]; + + // Update or create organization + $organization = Organization::updateOrCreate( + ['code' => $cells[3]->getValue()], + $data + ); + + + // Update or create address + $geo = str_replace("'", "", $cells[9]->getValue()); // Hilangkan tanda petik tunggal + $datageo = explode(",", $geo); + + // Pastikan $datageo memiliki dua elemen sebelum mencoba mengaksesnya + $lat = isset($datageo[0]) ? $datageo[0] : null; + $lng = isset($datageo[1]) ? $datageo[1] : null; + + $address = $organization->addresses()->updateOrCreate( + ['addressable_id' => $organization->id], + [ + 'use' => 'both', + 'type' => 'physical', + 'text' => $cells[5]->getValue(), + 'postal_code' => $cells[6]->getValue(), + 'lat' => $lat, + 'lng' => $lng, + ] + ); + + // Set main address id + $organization->main_address_id = $address->id; + $organization->save(); + } + } + } + + $reader->close(); + + } +}