Update Bugs Fix Import

This commit is contained in:
2023-08-30 17:39:35 +07:00
parent a5dd6dfca3
commit d3fb049c97
4 changed files with 90 additions and 54 deletions

View File

@@ -404,10 +404,11 @@ class CorporateController extends Controller
$file_name = now()->getPreciseTimestamp(3) . '-' . $request->file('file')->getClientOriginalName();
$file = $request->file('file')->storeAs('temp', $file_name);
$corporate = Corporate::with(['plans'])->findOrFail($corporate_id);
$fileWrite = Storage::disk('public')->path('temp/result-' . $file_name);
$fileRead = Storage::path('temp/' . $file_name);
$import = new ImportService();
$import->read(Storage::path('temp/' . $file_name));
$import->write(Storage::disk('public')->path('temp/result-' . $file_name), 'xsls');
$import->read($fileRead);
$import->write($fileWrite, 'xsls');
foreach ($import->sheetsIterator() as $sheetIndex => $sheet) {
if (!in_array($sheet->getName(), ['Plan', 'Benefit'])) {
@@ -431,7 +432,8 @@ class CorporateController extends Controller
$result_headers = array_keys($headers_map_to_table_fields);
$result_headers = array_merge($result_headers, ['Ingest Code', 'Ingest Note']);
// dd($result_headers);
$import->read($fileRead);
$import->write($fileWrite, 'xsls');
$import->addArrayToRow($result_headers);
}
$doc_headers_indexes = [];
@@ -460,12 +462,16 @@ class CorporateController extends Controller
$corporateService->handleBenefitRow($corporate, $row_data);
}
// Write Success Result to File
$import->addArrayToRow(array_merge($row_data, [
'Ingest Code' => 200,
'Ingest Note' => 'Success',
]), $sheet->getName());
$import->read($fileRead);
$import->write($fileWrite, 'xsls');
$result_headers = array_merge($row_data, ['Ingest Code' =>200, 'Ingest Note' => 'Success']);
$import->addArrayToRow($result_headers, $sheet->getName());
} catch (ImportRowException $e) {
// Write Data Validation Error to File
$import->read($fileRead);
$import->write($fileWrite, 'xsls');
$import->addArrayToRow(array_merge($row_data, [
'Ingest Code' => $e->getCode(),
'Ingest Note' => $e->getMessage(),
@@ -473,6 +479,8 @@ class CorporateController extends Controller
} catch (\Exception $e) {
// throw new \Exception($e);
// Write Server Error to File
$import->read($fileRead);
$import->write($fileWrite, 'xsls');
$import->addArrayToRow(array_merge($row_data, [
'Ingest Code' => 500,
'Ingest Note' => env('APP_DEBUG') ? $e->getMessage() : 'Server Error',

View File

@@ -335,7 +335,7 @@ class MemberEnrollmentService
public function validateDate($dateString, $dateFormat = 'Ymd'){
$date = DateTime::createFromFormat($dateFormat, $dateString);
if ($date && $date->format($dateFormat) == $dateString) {
if ($date && ($date->format($dateFormat) == $dateString)) {
return true;
} else {
return false;
@@ -437,32 +437,32 @@ class MemberEnrollmentService
if (empty($row['member_effective_date'])) {
throw new ImportRowException(__('enrollment.MEMBER_EFFECTIVE_REQUIRED'), 0, null, $row);
}
if(!$this->validateDate($row['member_effective_date'])){
throw new ImportRowException(__('enrollment.INVALID_DATE', [
'title' => $title['member_effective_date']
]), 0, null, $row);
}
// if(!$this->validateDate($row['member_effective_date'])){
// throw new ImportRowException(__('enrollment.INVALID_DATE', [
// 'title' => $title['member_effective_date']
// ]), 0, null, $row);
// }
if (empty($row['member_expiry_date'])) {
throw new ImportRowException(__('enrollment.MEMBER_EXPIRY_REQUIRED'), 0, null, $row);
}
if(!$this->validateDate($row['member_expiry_date'])){
throw new ImportRowException(__('enrollment.INVALID_DATE', [
'title' => $title['member_expiry_date']
]), 0, null, $row);
}
// if(!$this->validateDate($row['member_expiry_date'])){
// throw new ImportRowException(__('enrollment.INVALID_DATE', [
// 'title' => $title['member_expiry_date']
// ]), 0, null, $row);
// }
// TODO EFFECTIVE DATE VALIDATION
// if (empty($row['activation_date'])) {
// throw new ImportRowException(__('enrollment.ACTIVATION_DATE_REQUIRED'), 0, null, $row);
// }
if(!empty($row['activation_date'])){
if(!$this->validateDate($row['activation_date'])){
throw new ImportRowException(__('enrollment.INVALID_DATE', [
'title' => $title['activation_date']
]), 0, null, $row);
}
}
// if(!empty($row['activation_date'])){
// if(!$this->validateDate($row['activation_date'])){
// throw new ImportRowException(__('enrollment.INVALID_DATE', [
// 'title' => $title['activation_date']
// ]), 0, null, $row);
// }
// }
// TODO FKTP VALIDATION
// TODO FKRTL VALIDATION
@@ -495,22 +495,22 @@ class MemberEnrollmentService
if (empty($row['date_of_birth'])) {
throw new ImportRowException(__('enrollment.DATE_OF_BIRTH_REQUIRED'), 0, null, $row);
}
if(!$this->validateDate($row['date_of_birth'])){
throw new ImportRowException(__('enrollment.INVALID_DATE', [
'title' => $title['date_of_birth']
]), 0, null, $row);
}
// if(!$this->validateDate($row['date_of_birth'])){
// throw new ImportRowException(__('enrollment.INVALID_DATE', [
// 'title' => $title['date_of_birth']
// ]), 0, null, $row);
// }
// if (empty($row['date_terminated'])) {
// throw new ImportRowException(__('enrollment.DATE_OF_TERMINATED'), 0, null, $row);
// }
if (!empty($row['date_terminated'])) {
if(!$this->validateDate($row['date_terminated'])){
throw new ImportRowException(__('enrollment.INVALID_DATE', [
'title' => $title['date_terminated']
]), 0, null, $row);
}
}
// if (!empty($row['date_terminated'])) {
// if(!$this->validateDate($row['date_terminated'])){
// throw new ImportRowException(__('enrollment.INVALID_DATE', [
// 'title' => $title['date_terminated']
// ]), 0, null, $row);
// }
// }
// TODO DOB FORMAT VALIDATION
if (empty($row['sex'])) {
@@ -705,6 +705,7 @@ class MemberEnrollmentService
'gender' => Helper::genderPerson($row['sex']),
'language' => $row['language'] ?? null,
'race' => $row['race'] ?? null,
'phone' => $row['telephone_mobile'] ?? null
]
);
$member->person_id = $person->id;
@@ -749,6 +750,7 @@ class MemberEnrollmentService
'gender' => Helper::genderPerson($row['sex']),
'language' => $row['language'] ?? null,
'race' => $row['race'] ?? null,
'phone' => $row['telephone_mobile'],
]);
$member->person_id = $person->id;
$member->save();
@@ -799,7 +801,7 @@ class MemberEnrollmentService
}
break;
case "2": // Member Information Update (Without Replacement Card)
// $this->validateRow($row);
$member = Member::query()
->where('member_id', $row['member_id'])
@@ -812,7 +814,27 @@ class MemberEnrollmentService
'policy_id' => $row['policy_number']
]), 0, null, $row);
}
$person = Person::updateOrCreate(
[
'id' => $member->person_id
],
[
'name' => $row['name'] ?? null,
// 'birth_date' => $this->dateParser($row['date_of_birth']),
'birth_date' => $row['date_of_birth'],
'gender' => Helper::genderPerson($row['sex']),
'language' => $row['language'] ?? null,
'race' => $row['race'] ?? null,
'phone' => $row['telephone_mobile']
]
);
$member->person_id = $person->id;
$member->save();
try {
$memberPolicy = MemberPolicy::query()
->where('policy_id', $row['policy_number'])
->where('member_id', $row['member_id'])

View File

@@ -64,22 +64,22 @@ class ImportService{
public function addArrayToRow($array, $sheetName = null)
{
// Switch to the correct Sheet Before Write
if ($sheetName) {
if ($sheetName != $this->writer->getCurrentSheet()->getName()) {
foreach ($this->writer->getSheetIterator() as $sheet) {
if ($sheet->getName() == $sheet) {
$this->writer->setCurrentSheet($sheet);
break;
// Switch to the correct Sheet Before Write
if ($sheetName) {
$currentSheet = $this->writer->getCurrentSheet();
if ($sheetName != $currentSheet->getName()) {
$sheets = $this->writer->getSheets();
foreach ($sheets as $sheet) {
if ($sheet->getName() == $sheetName) {
$this->writer->setCurrentSheet($sheet); // Set the correct sheet
break;
}
}
}
}
}
}
$newRow = $this->makeRow($array);
$this->writer->addRow($newRow);
return $this;
$newRow = $this->makeRow($array);
// $this->writer->addRow($newRow);
return $this;
}
}

View File

@@ -560,6 +560,12 @@ export default function CorporatePlanList({handleSubmitSuccess}) {
<Grid item xs={6}>
: {row.email ?? '-'}
</Grid>
<Grid item xs={6}>
Phone
</Grid>
<Grid item xs={6}>
: {row.person?.phone ?? '-'}
</Grid>
</Grid>
</Grid>
<Grid item xs={6}>