diff --git a/Modules/Internal/Http/Controllers/Api/CorporateController.php b/Modules/Internal/Http/Controllers/Api/CorporateController.php
index 7fee5620..b00e27e7 100644
--- a/Modules/Internal/Http/Controllers/Api/CorporateController.php
+++ b/Modules/Internal/Http/Controllers/Api/CorporateController.php
@@ -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',
diff --git a/Modules/Internal/Services/MemberEnrollmentService.php b/Modules/Internal/Services/MemberEnrollmentService.php
index c61d1349..257842ba 100644
--- a/Modules/Internal/Services/MemberEnrollmentService.php
+++ b/Modules/Internal/Services/MemberEnrollmentService.php
@@ -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'])
diff --git a/app/Services/ImportService.php b/app/Services/ImportService.php
index 037800f9..a5f91133 100644
--- a/app/Services/ImportService.php
+++ b/app/Services/ImportService.php
@@ -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;
}
+
}
diff --git a/frontend/dashboard/src/pages/Corporates/Member/List.tsx b/frontend/dashboard/src/pages/Corporates/Member/List.tsx
index da62e0ef..4374d949 100644
--- a/frontend/dashboard/src/pages/Corporates/Member/List.tsx
+++ b/frontend/dashboard/src/pages/Corporates/Member/List.tsx
@@ -560,6 +560,12 @@ export default function CorporatePlanList({handleSubmitSuccess}) {
: {row.email ?? '-'}
+
+ Phone
+
+
+ : {row.person?.phone ?? '-'}
+