From 578a8847a240a87317407e564bb3d321afe30a20 Mon Sep 17 00:00:00 2001 From: Muhammad Fajar Date: Fri, 13 Sep 2024 09:41:05 +0700 Subject: [PATCH] Update Data Organization Inhealth --- app/Models/Organization.php | 4 + .../seeders/ApotekMandiriInhealtSeeder.php | 160 ++++++++++++++---- ...data-apotik-layanan-pharmacy-delivery.xlsx | Bin 0 -> 19208 bytes ...data-apotik-layanan-pharmacy-delivery.xlsx | Bin 0 -> 165 bytes 4 files changed, 127 insertions(+), 37 deletions(-) create mode 100644 resources/files/data-apotik-layanan-pharmacy-delivery.xlsx create mode 100644 resources/files/~$data-apotik-layanan-pharmacy-delivery.xlsx diff --git a/app/Models/Organization.php b/app/Models/Organization.php index 6c3f7c73..5141d18a 100755 --- a/app/Models/Organization.php +++ b/app/Models/Organization.php @@ -21,6 +21,10 @@ class Organization extends Model 'corporate_id_partner', 'phone', 'email', + 'operational_day', + 'operational_hour', + 'operational_day_other', + 'operational_hour_other', ]; // public $with = [ diff --git a/database/seeders/ApotekMandiriInhealtSeeder.php b/database/seeders/ApotekMandiriInhealtSeeder.php index ceef4d6e..a523c765 100644 --- a/database/seeders/ApotekMandiriInhealtSeeder.php +++ b/database/seeders/ApotekMandiriInhealtSeeder.php @@ -16,7 +16,7 @@ class ApotekMandiriInhealtSeeder extends Seeder */ public function run() { - $file_path = resource_path('files/Data_Provider_Pharmacy_Delivery_Mandiri_Inhealth_-_10_Juni_2024.xlsx'); + $file_path = resource_path('files/data-apotik-layanan-pharmacy-delivery.xlsx'); $reader = ReaderEntityFactory::createReaderFromFile($file_path); $reader->open($file_path); @@ -35,48 +35,102 @@ class ApotekMandiriInhealtSeeder extends Seeder ]; foreach ($reader->getSheetIterator() as $sheet) { + $previousCells = null; 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 - ); - + $data = []; - // Update or create address - $geo = str_replace("'", "", $cells[9]->getValue()); // Hilangkan tanda petik tunggal - $datageo = explode(",", $geo); + // Check Merging + if ($cells[0]->getValue() == '' && $cells[1]->getValue() == '' && $cells[2]->getValue() == '' && $cells[3]->getValue() == '' && $cells[4]->getValue() == '' && $cells[5]->getValue() == '' && $cells[6]->getValue() == '' && $cells[9]->getValue() == '' && $cells[10]->getValue() == '' && $cells[11]->getValue() == '' && $cells[12]->getValue() == '') { + $data = [ + 'code' => $previousCells[3]->getValue(), + 'name' => $previousCells[4]->getValue(), + 'type' => 'hospital', + 'corporate_id_partner' => 5, // Mandiri Inhealth + 'phone' => $previousCells[11]->getValue(), + 'email' => isset($previousCells[12]) ? $previousCells[12]->getValue() : null, + 'operational_day' => $this->expandDaysRange($previousCells[7]->getValue(), [$cells[7]->getValue()]), + 'operational_hour' => $previousCells[8]->getValue() == "24 jam" ? "00:00-24:00" : $previousCells[8]->getValue(), + 'operational_day_other' => $cells[7]->getValue(), + 'operational_hour_other' => $cells[8]->getValue() + ]; - // Pastikan $datageo memiliki dua elemen sebelum mencoba mengaksesnya - $lat = isset($datageo[0]) ? $datageo[0] : null; - $lng = isset($datageo[1]) ? $datageo[1] : null; + // Update or create organization + $organization = Organization::updateOrCreate( + ['code' => $previousCells[3]->getValue()], + $data + ); + - $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(); + // Update or create address + $geo = str_replace("'", "", $previousCells[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' => $previousCells[5]->getValue(), + 'postal_code' => $previousCells[6]->getValue(), + 'lat' => $lat, + 'lng' => $lng, + ] + ); + + // Set main address id + $organization->main_address_id = $address->id; + $organization->save(); + } else { + $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, + 'operational_day' => $this->expandDaysRange($cells[7]->getValue()), + 'operational_hour' => $cells[8]->getValue() == "24 jam" ? "00:00-24:00" : $cells[8]->getValue(), + ]; + + // 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(); + } + + $previousCells = $cells; } } } @@ -84,4 +138,36 @@ class ApotekMandiriInhealtSeeder extends Seeder $reader->close(); } + + private function expandDaysRange($input, $excludedDays = []) { + // Daftar hari dalam seminggu + $daysOfWeek = ["Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu", "Minggu"]; + + // Pisahkan input berdasarkan tanda "-" + $range = array_map('trim', explode('-', $input)); + + if (count($range) == 2) { + // Cari posisi hari pertama dan hari terakhir di dalam array $daysOfWeek + $startIndex = array_search($range[0], $daysOfWeek); + $endIndex = array_search($range[1], $daysOfWeek); + + // Jika ditemukan, ambil rentang hari + if ($startIndex !== false && $endIndex !== false && $startIndex <= $endIndex) { + // Ambil hari-hari dalam rentang tersebut + $daysRange = array_slice($daysOfWeek, $startIndex, ($endIndex - $startIndex + 1)); + + // Jika ada hari yang ingin di-exclude, hapus dari $daysRange + if (!empty($excludedDays)) { + $daysRange = array_diff($daysRange, $excludedDays); + } + + // Gabungkan menjadi string dengan koma + return implode(', ', $daysRange); + } else { + return "Hari tidak valid atau rentang tidak benar."; + } + } else { + return "Format input tidak sesuai."; + } + } } diff --git a/resources/files/data-apotik-layanan-pharmacy-delivery.xlsx b/resources/files/data-apotik-layanan-pharmacy-delivery.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..3718186ac81741c69c02d1dfd038556a4ce61170 GIT binary patch literal 19208 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 literal 0 HcmV?d00001 diff --git a/resources/files/~$data-apotik-layanan-pharmacy-delivery.xlsx b/resources/files/~$data-apotik-layanan-pharmacy-delivery.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..080115ed85fb0f8c9377d6d255590d3a2d61a544 GIT binary patch literal 165 lcmd