Fix Seeder

This commit is contained in:
R
2023-01-30 12:08:49 +07:00
parent 17daf20167
commit a8821dfb3c
4 changed files with 50 additions and 28 deletions

View File

@@ -192,9 +192,12 @@ class CorporateMemberController extends Controller
'ingestion_code' => $e->getCode(), 'ingestion_code' => $e->getCode(),
'ingestion_status' => $e->getMessage(), 'ingestion_status' => $e->getMessage(),
]); ]);
$singleRow = WriterEntityFactory::createRow($this->memberEnrollmentService->makeResultRowWithResultFormat($new_member_data)); // try {
$writer->addRow($singleRow); $singleRow = WriterEntityFactory::createRow($this->memberEnrollmentService->makeResultRowWithResultFormat($new_member_data));
$failed_member_data[] = ['row_number' => $index, 'error' => $e->getMessage()]; $writer->addRow($singleRow);
// } catch (\Exception $e) {
$failed_member_data[] = ['row_number' => $index, 'error' => $e->getMessage(), 'data' => $new_member_data];
// }
} catch (\Exception $e) { } catch (\Exception $e) {
// Write Server Error to File // Write Server Error to File
$new_member_data = array_merge($new_member_data, [ $new_member_data = array_merge($new_member_data, [

View File

@@ -247,6 +247,10 @@ class MemberEnrollmentService
$this->member = $member; $this->member = $member;
} }
public function dateParser($date_from_row) {
return is_string($date_from_row) ? Carbon::parse(strtotime($date_from_row)) : Carbon::parse($date_from_row);
}
protected function validateRow($row) protected function validateRow($row)
{ {
if (empty($row['record_type'])) { if (empty($row['record_type'])) {
@@ -360,7 +364,7 @@ class MemberEnrollmentService
"member_id" => $row['member_id'] ?? null, "member_id" => $row['member_id'] ?? null,
"payor_id" => $row['payor_id'] ?? null, "payor_id" => $row['payor_id'] ?? null,
"nik" => $row['nik'] ?? null, "nik" => $row['nik'] ?? null,
"birth_date" => Carbon::parse(strtotime($row['date_of_birth'])), "birth_date" => $this->dateParser($row['date_of_birth']),
"gender" => Helper::genderNormalization($row['sex']), "gender" => Helper::genderNormalization($row['sex']),
// "language" => $row['language'] ?? null, // "language" => $row['language'] ?? null,
// "race" => $row['race'] ?? null, // "race" => $row['race'] ?? null,
@@ -415,7 +419,7 @@ class MemberEnrollmentService
], ],
[ [
'name' => $row['name'] ?? null, 'name' => $row['name'] ?? null,
'birth_date' => Carbon::parse(strtotime($row['date_of_birth'])), 'birth_date' => $this->dateParser($row['date_of_birth']),
'gender' => Helper::genderPerson($row['sex']), 'gender' => Helper::genderPerson($row['sex']),
'language' => $row['language'] ?? null, 'language' => $row['language'] ?? null,
'race' => $row['race'] ?? null, 'race' => $row['race'] ?? null,
@@ -462,7 +466,7 @@ class MemberEnrollmentService
$person = Person::create([ $person = Person::create([
'name' => $row['name'], 'name' => $row['name'],
'birth_date' => Carbon::parse(strtotime($row['date_of_birth'])), 'birth_date' => $this->dateParser($row['date_of_birth']),
'gender' => Helper::genderPerson($row['sex']), 'gender' => Helper::genderPerson($row['sex']),
'language' => $row['language'] ?? null, 'language' => $row['language'] ?? null,
'race' => $row['race'] ?? null, 'race' => $row['race'] ?? null,
@@ -474,8 +478,8 @@ class MemberEnrollmentService
$memberPolicy->fill([ $memberPolicy->fill([
'member_id' => $member->member_id, 'member_id' => $member->member_id,
'policy_id' => $row['policy_number'], 'policy_id' => $row['policy_number'],
'start' => Carbon::parse(strtotime($row['member_effective_date'])), 'start' => $this->dateParser($row['member_effective_date']),
'end' => Carbon::parse(strtotime($row['member_expiry_date'])), 'end' => $this->dateParser($row['member_expiry_date']),
'status' => 'active' 'status' => 'active'
]); ]);
$memberPolicy->save(); $memberPolicy->save();
@@ -505,8 +509,8 @@ class MemberEnrollmentService
$member->memberPlans()->create([ $member->memberPlans()->create([
'plan_id' => $plan->id, 'plan_id' => $plan->id,
'status' => 'active', 'status' => 'active',
'start' => Carbon::parse(strtotime($row['member_effective_date'])), 'start' => $this->dateParser($row['member_effective_date']),
'end' => Carbon::parse(strtotime($row['member_expiry_date'])), 'end' => $this->dateParser($row['member_expiry_date']),
]); ]);
} }
DB::commit(); DB::commit();
@@ -620,13 +624,13 @@ class MemberEnrollmentService
} }
if (Carbon::parse(strtotime($row['member_effective_date'])) > Carbon::parse(strtotime($row['member_expiry_date']))) { if ($this->dateParser($row['member_effective_date']) > $this->dateParser($row['member_expiry_date'])) {
throw new ImportRowException(__('enrollment.MEMBER_EXPIRY_DATE_INVALID'), 0, null, $row); throw new ImportRowException(__('enrollment.MEMBER_EXPIRY_DATE_INVALID'), 0, null, $row);
} }
if ( if (
Carbon::parse($memberPolicy->end) > Carbon::parse(strtotime($row['member_expiry_date'])) Carbon::parse($memberPolicy->end) > $this->dateParser($row['member_expiry_date'])
|| $memberPolicy->end > Carbon::parse(strtotime($row['member_expiry_date'])) || $memberPolicy->end > $this->dateParser($row['member_expiry_date'])
) { ) {
throw new ImportRowException(__('enrollment.MEMBER_RENEWAL_STILL_ACTIVE'), 0, null, $row); throw new ImportRowException(__('enrollment.MEMBER_RENEWAL_STILL_ACTIVE'), 0, null, $row);
} }
@@ -663,13 +667,13 @@ class MemberEnrollmentService
]), 0, null, $row); ]), 0, null, $row);
} }
if (Carbon::parse(strtotime($row['member_effective_date'])) > Carbon::parse(strtotime($row['member_expiry_date']))) { if ($this->dateParser($row['member_effective_date']) > $this->dateParser($row['member_expiry_date'])) {
throw new ImportRowException(__('enrollment.MEMBER_EXPIRY_DATE_INVALID'), 0, null, $row); throw new ImportRowException(__('enrollment.MEMBER_EXPIRY_DATE_INVALID'), 0, null, $row);
} }
if ( if (
Carbon::parse($memberPolicy->end) > Carbon::parse(strtotime($row['member_expiry_date'])) Carbon::parse($memberPolicy->end) > $this->dateParser($row['member_expiry_date'])
|| $memberPolicy->end > Carbon::parse(strtotime($row['member_expiry_date'])) || $memberPolicy->end > $this->dateParser($row['member_expiry_date'])
) { ) {
throw new ImportRowException(__('enrollment.MEMBER_RENEWAL_STILL_ACTIVE'), 0, null, $row); throw new ImportRowException(__('enrollment.MEMBER_RENEWAL_STILL_ACTIVE'), 0, null, $row);
} }
@@ -850,11 +854,11 @@ class MemberEnrollmentService
]), 0, null, $row); ]), 0, null, $row);
} }
if (Carbon::parse(strtotime($row['member_effective_date'])) < now() || Carbon::parse(strtotime($row['member_expiry_date'])) < now()) { if ($this->dateParser($row['member_effective_date']) < now() || $this->dateParser($row['member_expiry_date']) < now()) {
throw new ImportRowException(__('enrollment.MEMBER_EXPIRY_MUST_BE_AFTER_TODAY'), 0, null, $row); throw new ImportRowException(__('enrollment.MEMBER_EXPIRY_MUST_BE_AFTER_TODAY'), 0, null, $row);
} }
if (Carbon::parse(strtotime($row['member_effective_date'])) > Carbon::parse(strtotime($row['member_expiry_date']))) { if ($this->dateParser($row['member_effective_date']) > $this->dateParser($row['member_expiry_date'])) {
throw new ImportRowException(__('enrollment.MEMBER_EXPIRY_DATE_INVALID'), 0, null, $row); throw new ImportRowException(__('enrollment.MEMBER_EXPIRY_DATE_INVALID'), 0, null, $row);
} }
@@ -889,8 +893,8 @@ class MemberEnrollmentService
$newMemberPolicy->fill([ $newMemberPolicy->fill([
'member_id' => $row['member_id'], 'member_id' => $row['member_id'],
'policy_id' => $row['policy_number'], 'policy_id' => $row['policy_number'],
'start' => Carbon::parse(strtotime($row['member_effective_date'])), 'start' => $this->dateParser($row['member_effective_date']),
'end' => Carbon::parse(strtotime($row['member_expiry_date'])), 'end' => $this->dateParser($row['member_expiry_date']),
'status' => 'active' 'status' => 'active'
]); ]);
$newMemberPolicy->save(); $newMemberPolicy->save();
@@ -931,7 +935,7 @@ class MemberEnrollmentService
throw new ImportRowException(__('enrollment.MEMBER_EXPIRY_DATE_NO_CHANGE'), 0, null, $row); throw new ImportRowException(__('enrollment.MEMBER_EXPIRY_DATE_NO_CHANGE'), 0, null, $row);
} }
if (Carbon::parse(strtotime($row['member_effective_date'])) > Carbon::parse(strtotime($row['member_expiry_date']))) { if ($this->dateParser($row['member_effective_date']) > $this->dateParser($row['member_expiry_date'])) {
throw new ImportRowException(__('enrollment.MEMBER_EXPIRY_DATE_INVALID'), 0, null, $row); throw new ImportRowException(__('enrollment.MEMBER_EXPIRY_DATE_INVALID'), 0, null, $row);
} }
@@ -1016,7 +1020,7 @@ class MemberEnrollmentService
$cells = []; $cells = [];
foreach ($this->result_doc_headers as $header) { foreach ($this->result_doc_headers as $header) {
$value = $row_data[$this->doc_headers_to_field_map[$header]] ?? null; $value = $row_data[$this->doc_headers_to_field_map[$header]] ?? null;
$cells[] = WriterEntityFactory::createCell($value); $cells[] = WriterEntityFactory::createCell(is_string($value) ? $value : 'error not string');
} }
return $cells; return $cells;

View File

@@ -20,8 +20,8 @@ class CorporateServiceConfigResource extends JsonResource
'corporate_id' => $this->corporate_id, 'corporate_id' => $this->corporate_id,
'service_code' => $this->service_code, 'service_code' => $this->service_code,
'status' => $this->status, 'status' => $this->status,
'name' => $this->service->name, 'name' => $this->service->name ?? '-',
'description' => $this->service->description, 'description' => $this->service->description ?? '-',
'configurations' => $this->configs->pluck('value', 'name'), 'configurations' => $this->configs->pluck('value', 'name'),
'selected_specialities' => $this->corporateServiceSpecialities->where('active', true)->pluck('speciality.name', 'speciality_id'), 'selected_specialities' => $this->corporateServiceSpecialities->where('active', true)->pluck('speciality.name', 'speciality_id'),
'exclusions' => $this->corporateServiceSpecialities->map(function ($speciality) { 'exclusions' => $this->corporateServiceSpecialities->map(function ($speciality) {

View File

@@ -47,6 +47,12 @@ class ServiceSeeder extends Seeder
'code' => 'OPT', 'code' => 'OPT',
'description' => 'Optical', 'description' => 'Optical',
], ],
[
'id' => 6,
'name' => 'Medical Check Up',
'code' => 'MCU',
'description' => 'Medical Check Up',
],
]; ];
@@ -56,12 +62,14 @@ class ServiceSeeder extends Seeder
$service = Service::updateOrCreate(['id' => $service['id']], $service); $service = Service::updateOrCreate(['id' => $service['id']], $service);
foreach ($corporates as $corporate) { foreach ($corporates as $corporate) {
$corporateService = $corporate->corporateServices()->create([ $corporateService = $corporate->corporateServices()->firstOrCreate([
'service_code' => $service->code
],[
'service_code' => $service->code, 'service_code' => $service->code,
'status' => 'active' 'status' => 'inactive'
]); ]);
$corporateService->configs()->insert([ $corporate_service_configs_data = [
[ [
'corporate_service_id' => $corporateService->id, 'corporate_service_id' => $corporateService->id,
'name' => 'gp_external_doctor_online', 'name' => 'gp_external_doctor_online',
@@ -122,7 +130,14 @@ class ServiceSeeder extends Seeder
'name' => 'specialist_practitioner_fee', 'name' => 'specialist_practitioner_fee',
'value' => false, 'value' => false,
], ],
]); ];
foreach ($corporate_service_configs_data as $config) {
$corporateService->configs()->firstOrCreate([
'corporate_service_id' => $config['corporate_service_id'],
'name' => $config['name']
], $config);
}
} }
} }
} }