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_status' => $e->getMessage(),
]);
$singleRow = WriterEntityFactory::createRow($this->memberEnrollmentService->makeResultRowWithResultFormat($new_member_data));
$writer->addRow($singleRow);
$failed_member_data[] = ['row_number' => $index, 'error' => $e->getMessage()];
// try {
$singleRow = WriterEntityFactory::createRow($this->memberEnrollmentService->makeResultRowWithResultFormat($new_member_data));
$writer->addRow($singleRow);
// } catch (\Exception $e) {
$failed_member_data[] = ['row_number' => $index, 'error' => $e->getMessage(), 'data' => $new_member_data];
// }
} catch (\Exception $e) {
// Write Server Error to File
$new_member_data = array_merge($new_member_data, [

View File

@@ -247,6 +247,10 @@ class MemberEnrollmentService
$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)
{
if (empty($row['record_type'])) {
@@ -360,7 +364,7 @@ class MemberEnrollmentService
"member_id" => $row['member_id'] ?? null,
"payor_id" => $row['payor_id'] ?? 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']),
// "language" => $row['language'] ?? null,
// "race" => $row['race'] ?? null,
@@ -415,7 +419,7 @@ class MemberEnrollmentService
],
[
'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']),
'language' => $row['language'] ?? null,
'race' => $row['race'] ?? null,
@@ -462,7 +466,7 @@ class MemberEnrollmentService
$person = Person::create([
'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']),
'language' => $row['language'] ?? null,
'race' => $row['race'] ?? null,
@@ -474,8 +478,8 @@ class MemberEnrollmentService
$memberPolicy->fill([
'member_id' => $member->member_id,
'policy_id' => $row['policy_number'],
'start' => Carbon::parse(strtotime($row['member_effective_date'])),
'end' => Carbon::parse(strtotime($row['member_expiry_date'])),
'start' => $this->dateParser($row['member_effective_date']),
'end' => $this->dateParser($row['member_expiry_date']),
'status' => 'active'
]);
$memberPolicy->save();
@@ -505,8 +509,8 @@ class MemberEnrollmentService
$member->memberPlans()->create([
'plan_id' => $plan->id,
'status' => 'active',
'start' => Carbon::parse(strtotime($row['member_effective_date'])),
'end' => Carbon::parse(strtotime($row['member_expiry_date'])),
'start' => $this->dateParser($row['member_effective_date']),
'end' => $this->dateParser($row['member_expiry_date']),
]);
}
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);
}
if (
Carbon::parse($memberPolicy->end) > Carbon::parse(strtotime($row['member_expiry_date']))
|| $memberPolicy->end > Carbon::parse(strtotime($row['member_expiry_date']))
Carbon::parse($memberPolicy->end) > $this->dateParser($row['member_expiry_date'])
|| $memberPolicy->end > $this->dateParser($row['member_expiry_date'])
) {
throw new ImportRowException(__('enrollment.MEMBER_RENEWAL_STILL_ACTIVE'), 0, null, $row);
}
@@ -663,13 +667,13 @@ class MemberEnrollmentService
]), 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);
}
if (
Carbon::parse($memberPolicy->end) > Carbon::parse(strtotime($row['member_expiry_date']))
|| $memberPolicy->end > Carbon::parse(strtotime($row['member_expiry_date']))
Carbon::parse($memberPolicy->end) > $this->dateParser($row['member_expiry_date'])
|| $memberPolicy->end > $this->dateParser($row['member_expiry_date'])
) {
throw new ImportRowException(__('enrollment.MEMBER_RENEWAL_STILL_ACTIVE'), 0, null, $row);
}
@@ -850,11 +854,11 @@ class MemberEnrollmentService
]), 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);
}
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);
}
@@ -889,8 +893,8 @@ class MemberEnrollmentService
$newMemberPolicy->fill([
'member_id' => $row['member_id'],
'policy_id' => $row['policy_number'],
'start' => Carbon::parse(strtotime($row['member_effective_date'])),
'end' => Carbon::parse(strtotime($row['member_expiry_date'])),
'start' => $this->dateParser($row['member_effective_date']),
'end' => $this->dateParser($row['member_expiry_date']),
'status' => 'active'
]);
$newMemberPolicy->save();
@@ -931,7 +935,7 @@ class MemberEnrollmentService
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);
}
@@ -1016,7 +1020,7 @@ class MemberEnrollmentService
$cells = [];
foreach ($this->result_doc_headers as $header) {
$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;

View File

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

View File

@@ -47,6 +47,12 @@ class ServiceSeeder extends Seeder
'code' => 'OPT',
'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);
foreach ($corporates as $corporate) {
$corporateService = $corporate->corporateServices()->create([
$corporateService = $corporate->corporateServices()->firstOrCreate([
'service_code' => $service->code
],[
'service_code' => $service->code,
'status' => 'active'
'status' => 'inactive'
]);
$corporateService->configs()->insert([
$corporate_service_configs_data = [
[
'corporate_service_id' => $corporateService->id,
'name' => 'gp_external_doctor_online',
@@ -122,7 +130,14 @@ class ServiceSeeder extends Seeder
'name' => 'specialist_practitioner_fee',
'value' => false,
],
]);
];
foreach ($corporate_service_configs_data as $config) {
$corporateService->configs()->firstOrCreate([
'corporate_service_id' => $config['corporate_service_id'],
'name' => $config['name']
], $config);
}
}
}
}