update bugs fix record mode 2
This commit is contained in:
@@ -179,7 +179,7 @@ class MemberEnrollmentService
|
||||
"ingestion_code" => "Ingestion Code",
|
||||
"ingestion_status" => "Ingestion Status",
|
||||
];
|
||||
|
||||
|
||||
public $result_doc_headers = [
|
||||
"Record Mode",
|
||||
"Record Type",
|
||||
@@ -337,7 +337,13 @@ class MemberEnrollmentService
|
||||
}
|
||||
|
||||
public function dateParser($date_from_row) {
|
||||
return is_string($date_from_row) ? Carbon::parse(strtotime($date_from_row)) : Carbon::parse($date_from_row);
|
||||
|
||||
if ($date_from_row instanceof DateTime) {
|
||||
return $date_from_row->format('Y-m-d');
|
||||
} else {
|
||||
return date('Y-m-d', strtotime($date_from_row));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function validateDate($dateString, $dateFormat = 'Ymd'){
|
||||
@@ -357,7 +363,7 @@ class MemberEnrollmentService
|
||||
'activation_date' => 'Activation Date',
|
||||
'date_of_birth' => 'Date of Birth',
|
||||
'date_terminated' => 'Date Terminated',
|
||||
|
||||
|
||||
];
|
||||
|
||||
if (empty($row['record_type'])) {
|
||||
@@ -372,6 +378,10 @@ class MemberEnrollmentService
|
||||
throw new ImportRowException(__('enrollment.MEMBER_ID_REQUIRED'), 0, null, $row);
|
||||
}
|
||||
|
||||
if (empty($row['plan_id'])) {
|
||||
throw new ImportRowException(__('Plan ID Required'), 0, null, $row);
|
||||
}
|
||||
|
||||
if ($row['record_type'] == 'P') {
|
||||
if (!empty($row['principal_id'])) {
|
||||
throw new ImportRowException(__('enrollment.PRINCIPAL_ID_NOT_REQUIRED'), 0, null, $row);
|
||||
@@ -391,22 +401,22 @@ class MemberEnrollmentService
|
||||
->first();
|
||||
|
||||
if(empty($member)){
|
||||
throw new ImportRowException(__('enrollment.PRINCIPAL_NOT_IN_MEMBER_ID'), 0, null, $row);
|
||||
// throw new ImportRowException(__('enrollment.PRINCIPAL_NOT_IN_MEMBER_ID'), 0, null, $row);
|
||||
} else {
|
||||
if ($member['record_type'] != 'P'){
|
||||
throw new ImportRowException(__('enrollment.PRINCIPAL_ID_NOT_SAME_MEMBER_ID'), 0, null, $row);
|
||||
}
|
||||
// if ($member['record_type'] != 'P'){
|
||||
// throw new ImportRowException(__('enrollment.PRINCIPAL_ID_NOT_SAME_MEMBER_ID'), 0, null, $row);
|
||||
// }
|
||||
}
|
||||
if (empty($row['principal_id'])) {
|
||||
throw new ImportRowException(__('enrollment.PRINCIPAL_ID_REQUIRED'), 0, null, $row);
|
||||
}
|
||||
if (empty($row['relationship_with_principal'])){
|
||||
throw new ImportRowException(__('enrollment.RELATIONSHIP_WITH_PRICIPAL_REQUIRED'), 0, null, $row);
|
||||
}
|
||||
if (!empty($row['relationship_with_principal']) && !in_array($row['relationship_with_principal'], ['H', 'W', 'D', 'S'])){
|
||||
throw new ImportRowException(__('enrollment.RELATIONSHIP_WITH_PRICIPAL_NOT_VALID'), 0, null, $row);
|
||||
}
|
||||
|
||||
// if (empty($row['relationship_with_principal'])){
|
||||
// throw new ImportRowException(__('enrollment.RELATIONSHIP_WITH_PRICIPAL_REQUIRED'), 0, null, $row);
|
||||
// }
|
||||
// if (!empty($row['relationship_with_principal']) && !in_array($row['relationship_with_principal'], ['H', 'W', 'D', 'S'])){
|
||||
// throw new ImportRowException(__('enrollment.RELATIONSHIP_WITH_PRICIPAL_NOT_VALID'), 0, null, $row);
|
||||
// }
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -420,26 +430,26 @@ class MemberEnrollmentService
|
||||
// throw new ImportRowException(__('enrollment.BRANCH_CODE_NOT_REQUIRED'), 0, null, $row);
|
||||
// }
|
||||
|
||||
if (!empty($row['language']) && !in_array($row['language'], ['M', 'E', 'C', 'I', 'O'])) {
|
||||
throw new ImportRowException(__('enrollment.INVALID_LANGUAGE'), 0, null, $row);
|
||||
}
|
||||
// if (!empty($row['language']) && !in_array($row['language'], ['M', 'E', 'C', 'I', 'O'])) {
|
||||
// throw new ImportRowException(__('enrollment.INVALID_LANGUAGE'), 0, null, $row);
|
||||
// }
|
||||
|
||||
if (!empty($row['type_of_work']) && !in_array($row['type_of_work'], ['0', '1', '2', '3'])) {
|
||||
throw new ImportRowException(__('enrollment.INVALID_TYPE_OF_WORK'), 0, null, $row);
|
||||
}
|
||||
// if (!empty($row['type_of_work']) && !in_array($row['type_of_work'], ['0', '1', '2', '3'])) {
|
||||
// throw new ImportRowException(__('enrollment.INVALID_TYPE_OF_WORK'), 0, null, $row);
|
||||
// }
|
||||
|
||||
if (!empty($row['race']) && !in_array($row['race'], ['M', 'C', 'I', 'O'])) {
|
||||
throw new ImportRowException(__('enrollment.INVALID_RACE'), 0, null, $row);
|
||||
}
|
||||
// if (!empty($row['race']) && !in_array($row['race'], ['M', 'C', 'I', 'O'])) {
|
||||
// throw new ImportRowException(__('enrollment.INVALID_RACE'), 0, null, $row);
|
||||
// }
|
||||
|
||||
if (empty($row['policy_number'])) {
|
||||
throw new ImportRowException(__('enrollment.POLICY_NUMBER_REQUIRED'), 0, null, $row);
|
||||
}
|
||||
|
||||
if (!empty($row['marital_status']) && !in_array($row['marital_status'], ['S', 'M', 'D'])) {
|
||||
throw new ImportRowException(__('enrollment.INVALID_MARITAL_STATUS'), 0, null, $row);
|
||||
}
|
||||
|
||||
// if (!empty($row['marital_status']) && !in_array($row['marital_status'], ['S', 'M', 'D'])) {
|
||||
// throw new ImportRowException(__('enrollment.INVALID_MARITAL_STATUS'), 0, null, $row);
|
||||
// }
|
||||
|
||||
// TODO EFFECTIVE DATE VALIDATION
|
||||
if (empty($row['member_effective_date'])) {
|
||||
throw new ImportRowException(__('enrollment.MEMBER_EFFECTIVE_REQUIRED'), 0, null, $row);
|
||||
@@ -458,7 +468,7 @@ class MemberEnrollmentService
|
||||
// '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);
|
||||
@@ -473,35 +483,35 @@ class MemberEnrollmentService
|
||||
// TODO FKTP VALIDATION
|
||||
// TODO FKRTL VALIDATION
|
||||
|
||||
if (!empty($row['marital_status']) && !in_array($row['marital_status'], ['S', 'M', 'D'])) {
|
||||
throw new ImportRowException(__('enrollment.INVALID_MARITAL_STATUS'), 0, null, $row);
|
||||
}
|
||||
// if (!empty($row['marital_status']) && !in_array($row['marital_status'], ['S', 'M', 'D'])) {
|
||||
// throw new ImportRowException(__('enrollment.INVALID_MARITAL_STATUS'), 0, null, $row);
|
||||
// }
|
||||
|
||||
if (empty($row['name'])) {
|
||||
throw new ImportRowException(__('enrollment.NAME_REQUIRED'), 0, null, $row);
|
||||
}
|
||||
|
||||
if (!Helper::validatePhoneNumber($row['telephone_mobile'])){
|
||||
throw new ImportRowException(__('enrollment.PHONE_INVALID'), 0, null, $row);
|
||||
}
|
||||
// if (!Helper::validatePhoneNumber($row['telephone_mobile'])){
|
||||
// throw new ImportRowException(__('enrollment.PHONE_INVALID'), 0, null, $row);
|
||||
// }
|
||||
|
||||
if (
|
||||
!empty($row['telephone_mobile'])
|
||||
&& !(substr($row['telephone_mobile'], 0, 4) == '+628' || substr($row['telephone_mobile'], 0, 3) == '628')
|
||||
) {
|
||||
throw new ImportRowException(__('enrollment.PHONE_INVALID'), 0, null, $row);
|
||||
}
|
||||
// if (
|
||||
// !empty($row['telephone_mobile'])
|
||||
// && !(substr($row['telephone_mobile'], 0, 4) == '+628' || substr($row['telephone_mobile'], 0, 3) == '628')
|
||||
// ) {
|
||||
// throw new ImportRowException(__('enrollment.PHONE_INVALID'), 0, null, $row);
|
||||
// }
|
||||
|
||||
if (
|
||||
!empty($row['email'])
|
||||
&& !filter_var($row['email'], FILTER_VALIDATE_EMAIL)
|
||||
) {
|
||||
throw new ImportRowException(__('enrollment.EMAIL_INVALID'), 0, null, $row);
|
||||
}
|
||||
// if (
|
||||
// !empty($row['email'])
|
||||
// && !filter_var($row['email'], FILTER_VALIDATE_EMAIL)
|
||||
// ) {
|
||||
// throw new ImportRowException(__('enrollment.EMAIL_INVALID'), 0, null, $row);
|
||||
// }
|
||||
|
||||
if (empty($row['date_of_birth'])) {
|
||||
throw new ImportRowException(__('enrollment.DATE_OF_BIRTH_REQUIRED'), 0, null, $row);
|
||||
}
|
||||
// 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']
|
||||
@@ -520,16 +530,16 @@ class MemberEnrollmentService
|
||||
// }
|
||||
// TODO DOB FORMAT VALIDATION
|
||||
|
||||
if (empty($row['sex'])) {
|
||||
throw new ImportRowException(__('enrollment.SEX_REQUIRED'), 0, null, $row);
|
||||
}
|
||||
|
||||
if (!in_array($row['sex'], ['F', 'M'])){
|
||||
throw new ImportRowException(__('enrollment.SEX_CODE_NOT_VALID'), 0, null, $row);
|
||||
}
|
||||
// if (empty($row['sex'])) {
|
||||
// throw new ImportRowException(__('enrollment.SEX_REQUIRED'), 0, null, $row);
|
||||
// }
|
||||
|
||||
// if (!in_array($row['sex'], ['F', 'M'])){
|
||||
// throw new ImportRowException(__('enrollment.SEX_CODE_NOT_VALID'), 0, null, $row);
|
||||
// }
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function handleImportRow(Corporate $corporate, $row)
|
||||
{
|
||||
try {
|
||||
@@ -541,12 +551,14 @@ class MemberEnrollmentService
|
||||
if(!empty($row['date_terminated'])){
|
||||
$date_terminated = $row['date_terminated'];
|
||||
}
|
||||
|
||||
$member_data = [
|
||||
"name" => $row['name'] ?? null,
|
||||
"member_id" => $row['member_id'] ?? null,
|
||||
"payor_id" => $row['payor_id'] ?? null,
|
||||
"nik" => $row['nik'] ?? null,
|
||||
"birth_date" => $row['date_of_birth'],
|
||||
// "birth_date" => $row['date_of_birth'] ? date("Y-m-d",$row['date_of_birth']) : null,
|
||||
"birth_date" => $this->dateParser($row['date_of_birth']),
|
||||
"gender" => Helper::genderNormalization($row['sex']),
|
||||
"language" => $row['language'] ?? null,
|
||||
"race" => $row['race'] ?? null,
|
||||
@@ -588,6 +600,10 @@ class MemberEnrollmentService
|
||||
"telephone_res" => $row['telephone_res'] ?? null,
|
||||
"telephone_office" => $row['telephone_office'] ?? null,
|
||||
"suspended" => $row['member_suspended'] ?? null,
|
||||
|
||||
"active" => $row['employment_status'] == 'INACTIVE' ? 0 : 1,
|
||||
|
||||
"employee_status" => $row['employment_status']
|
||||
];
|
||||
// $this->validateRow($row);
|
||||
if (!isset($corporate->currentPolicy) || $corporate->currentPolicy->code != $row['policy_number']) {
|
||||
@@ -595,101 +611,106 @@ class MemberEnrollmentService
|
||||
'policy_id' => $row['policy_number']
|
||||
]), 0, null, $row);
|
||||
}
|
||||
|
||||
// validasi member efektif date range date in periode date coroporate
|
||||
$member_effective_date = date("Y-m-d", strtotime($row['member_effective_date']));
|
||||
$date_terminated = date("Y-m-d", strtotime($row['date_terminated']));
|
||||
|
||||
// validasi member efektif date range date in periode date coroporate
|
||||
// $member_effective_date = date("Y-m-d", strtotime($row['member_effective_date']));
|
||||
// $date_terminated = date("Y-m-d", strtotime($row['date_terminated']));
|
||||
|
||||
$member_effective_date = $this->dateParser($row['member_effective_date']);
|
||||
$date_terminated = $this->dateParser($row['date_terminated']);
|
||||
|
||||
|
||||
if(!empty($row['activation_date'])){
|
||||
$activation_date = date("Y-m-d", strtotime($row['activation_date']));
|
||||
if (($activation_date == $date_terminated) && ($activation_date == $member_effective_date)) {
|
||||
throw new ImportRowException(__('enrollment.MORE_THAN', [
|
||||
'date_param' => 'Activation Date',
|
||||
'date' => $activation_date,
|
||||
'date_param2' => 'Member Effective Date',
|
||||
'start' => $activation_date
|
||||
]), 0, null, $row);
|
||||
}
|
||||
// $activation_date = date("Y-m-d", strtotime($row['activation_date']));
|
||||
// if (($activation_date == $date_terminated) && ($activation_date == $member_effective_date)) {
|
||||
// throw new ImportRowException(__('enrollment.MORE_THAN', [
|
||||
// 'date_param' => 'Activation Date',
|
||||
// 'date' => $activation_date,
|
||||
// 'date_param2' => 'Member Effective Date',
|
||||
// 'start' => $activation_date
|
||||
// ]), 0, null, $row);
|
||||
// }
|
||||
}
|
||||
if (!empty($row['date_terminated'])){
|
||||
$date_terminated = date("Y-m-d", strtotime($row['date_terminated']));
|
||||
if($date_terminated){
|
||||
if ($date_terminated <= $member_effective_date && ($date_terminated != $member_effective_date)) {
|
||||
throw new ImportRowException(__('enrollment.MORE_THAN', [
|
||||
'date_param' => 'Date Terminated Date',
|
||||
'date' => $date_terminated,
|
||||
'date_param2' => 'Member Effective Date',
|
||||
'start' => $member_effective_date
|
||||
]), 0, null, $row);
|
||||
}
|
||||
}
|
||||
// $date_terminated = date("Y-m-d", strtotime($row['date_terminated']));
|
||||
// if($date_terminated){
|
||||
// if ($date_terminated <= $member_effective_date && ($date_terminated != $member_effective_date)) {
|
||||
// throw new ImportRowException(__('enrollment.MORE_THAN', [
|
||||
// 'date_param' => 'Date Terminated Date',
|
||||
// 'date' => $date_terminated,
|
||||
// 'date_param2' => 'Member Effective Date',
|
||||
// 'start' => $member_effective_date
|
||||
// ]), 0, null, $row);
|
||||
// }
|
||||
// }
|
||||
}
|
||||
// validasi member expried date range date in periode date coroporate
|
||||
$members_expire_date = date("Y-m-d", strtotime($row['member_expiry_date']));
|
||||
// validasi member expried date range date in periode date coroporate
|
||||
// $members_expire_date = date("Y-m-d", strtotime($row['member_expiry_date']));
|
||||
// validasi member expried date must less date member effective
|
||||
$members_expire_date = date("Y-m-d", strtotime($row['member_expiry_date']));
|
||||
$members_expire_date = date("Y-m-d", strtotime($row['member_expiry_date']));
|
||||
// $members_expire_date = date("Y-m-d", strtotime($row['member_expiry_date']));
|
||||
// $members_expire_date = date("Y-m-d", strtotime($row['member_expiry_date']));
|
||||
|
||||
// if ($member_effective_date <= $corporate->currentPolicy->start && ($member_effective_date != $corporate->currentPolicy->start)) {
|
||||
// throw new ImportRowException(__('enrollment.MORE_THAN', [
|
||||
// 'date_param' => 'Member Effective Date',
|
||||
// 'date' => $member_effective_date,
|
||||
// 'date_param2' => 'Start Period Date',
|
||||
// 'start' => $corporate->currentPolicy->start
|
||||
// ]), 0, null, $row);
|
||||
// }
|
||||
|
||||
// if ($member_effective_date >= $corporate->currentPolicy->end && ($member_effective_date != $corporate->currentPolicy->end)) {
|
||||
// throw new ImportRowException(__('enrollment.LESS_THAN', [
|
||||
// 'date_param' => 'Member Effective Date',
|
||||
// 'date' => $member_effective_date,
|
||||
// 'date_param2' => 'End Period Date',
|
||||
// 'end' => $corporate->currentPolicy->end
|
||||
// ]), 0, null, $row);
|
||||
// }
|
||||
|
||||
// if ($member_effective_date >= $corporate->currentPolicy->end && ($member_effective_date != $corporate->currentPolicy->end)) {
|
||||
// throw new ImportRowException(__('enrollment.LESS_THAN', [
|
||||
// 'date_param' => 'Member Effective Date',
|
||||
// 'date' => $member_effective_date,
|
||||
// 'date_param2' => 'End Period Date',
|
||||
// 'end' => $corporate->currentPolicy->end
|
||||
// ]), 0, null, $row);
|
||||
// }
|
||||
// if ($members_expire_date <= $corporate->currentPolicy->start && ($members_expire_date != $corporate->currentPolicy->start) ) {
|
||||
// throw new ImportRowException(__('enrollment.MORE_THAN', [
|
||||
// 'date_param' => 'Member Expired Date',
|
||||
// 'date' => $members_expire_date,
|
||||
// 'date_param2' => 'Start Period Date',
|
||||
// 'start' => $corporate->currentPolicy->start
|
||||
// ]), 0, null, $row);
|
||||
// }
|
||||
|
||||
// if ($members_expire_date >= $corporate->currentPolicy->end && ($members_expire_date != $corporate->currentPolicy->end)) {
|
||||
// throw new ImportRowException(__('enrollment.LESS_THAN', [
|
||||
// 'date_param' => 'Member Expired Date',
|
||||
// 'date' => $members_expire_date,
|
||||
// 'date_param2' => 'END Period Date',
|
||||
// 'end' => $corporate->currentPolicy->end
|
||||
// ]), 0, null, $row);
|
||||
// }
|
||||
|
||||
|
||||
// if ($members_expire_date <= $member_effective_date && ($members_expire_date != $member_effective_date)) {
|
||||
// throw new ImportRowException(__('enrollment.MORE_THAN', [
|
||||
// 'date_param' => 'Member Expired Date',
|
||||
// 'date' => $members_expire_date,
|
||||
// 'date_param2' => 'Member Effective Date',
|
||||
// 'start' => $member_effective_date
|
||||
// ]), 0, null, $row);
|
||||
// }
|
||||
|
||||
|
||||
if ($member_effective_date <= $corporate->currentPolicy->start && ($member_effective_date != $corporate->currentPolicy->start)) {
|
||||
throw new ImportRowException(__('enrollment.MORE_THAN', [
|
||||
'date_param' => 'Member Effective Date',
|
||||
'date' => $member_effective_date,
|
||||
'date_param2' => 'Start Period Date',
|
||||
'start' => $corporate->currentPolicy->start
|
||||
]), 0, null, $row);
|
||||
}
|
||||
|
||||
if ($member_effective_date >= $corporate->currentPolicy->end && ($member_effective_date != $corporate->currentPolicy->end)) {
|
||||
throw new ImportRowException(__('enrollment.LESS_THAN', [
|
||||
'date_param' => 'Member Effective Date',
|
||||
'date' => $member_effective_date,
|
||||
'date_param2' => 'End Period Date',
|
||||
'end' => $corporate->currentPolicy->end
|
||||
]), 0, null, $row);
|
||||
}
|
||||
|
||||
if ($member_effective_date >= $corporate->currentPolicy->end && ($member_effective_date != $corporate->currentPolicy->end)) {
|
||||
throw new ImportRowException(__('enrollment.LESS_THAN', [
|
||||
'date_param' => 'Member Effective Date',
|
||||
'date' => $member_effective_date,
|
||||
'date_param2' => 'End Period Date',
|
||||
'end' => $corporate->currentPolicy->end
|
||||
]), 0, null, $row);
|
||||
}
|
||||
if ($members_expire_date <= $corporate->currentPolicy->start && ($members_expire_date != $corporate->currentPolicy->start) ) {
|
||||
throw new ImportRowException(__('enrollment.MORE_THAN', [
|
||||
'date_param' => 'Member Expired Date',
|
||||
'date' => $members_expire_date,
|
||||
'date_param2' => 'Start Period Date',
|
||||
'start' => $corporate->currentPolicy->start
|
||||
]), 0, null, $row);
|
||||
}
|
||||
|
||||
if ($members_expire_date >= $corporate->currentPolicy->end && ($members_expire_date != $corporate->currentPolicy->end)) {
|
||||
throw new ImportRowException(__('enrollment.LESS_THAN', [
|
||||
'date_param' => 'Member Expired Date',
|
||||
'date' => $members_expire_date,
|
||||
'date_param2' => 'END Period Date',
|
||||
'end' => $corporate->currentPolicy->end
|
||||
]), 0, null, $row);
|
||||
}
|
||||
|
||||
|
||||
if ($members_expire_date <= $member_effective_date && ($members_expire_date != $member_effective_date)) {
|
||||
throw new ImportRowException(__('enrollment.MORE_THAN', [
|
||||
'date_param' => 'Member Expired Date',
|
||||
'date' => $members_expire_date,
|
||||
'date_param2' => 'Member Effective Date',
|
||||
'start' => $member_effective_date
|
||||
]), 0, null, $row);
|
||||
}
|
||||
|
||||
|
||||
if($corporate->code != $row['corporate_id']){
|
||||
throw new ImportRowException(__('enrollment.CORPORATE_CODE_NOT_MATCH', [
|
||||
'corporate_id' => $row['corporate_id']
|
||||
]), 0, null, $row);
|
||||
}
|
||||
|
||||
|
||||
switch ($row['record_mode']) {
|
||||
case "1": // New Member
|
||||
$this->validateRow($row);
|
||||
@@ -699,7 +720,6 @@ class MemberEnrollmentService
|
||||
// $query->where('corporate_id', $corporate->id);
|
||||
// })
|
||||
->first();
|
||||
|
||||
// Validate If Exist Member
|
||||
if ($member) {
|
||||
$person = Person::updateOrCreate(
|
||||
@@ -708,9 +728,8 @@ class MemberEnrollmentService
|
||||
],
|
||||
[
|
||||
'name' => $row['name'] ?? null,
|
||||
// 'birth_date' => $this->dateParser($row['date_of_birth']),
|
||||
'birth_date' => $row['date_of_birth'],
|
||||
'gender' => Helper::genderPerson($row['sex']),
|
||||
'birth_date' => $this->dateParser($row['date_of_birth']),
|
||||
'gender' => Helper::genderNormalization($row['sex']),
|
||||
'language' => $row['language'] ?? null,
|
||||
'race' => $row['race'] ?? null,
|
||||
'phone' => $row['telephone_mobile'] ?? null
|
||||
@@ -759,20 +778,20 @@ class MemberEnrollmentService
|
||||
throw new ImportRowException(__('enrollment.PLAN_NOT_FOUND'), 0, null, $row);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
try {
|
||||
DB::beginTransaction();
|
||||
$member->fill($member_data);
|
||||
if ($member->save()) {
|
||||
|
||||
$person = Person::create([
|
||||
'name' => $row['name'],
|
||||
'birth_date' => $row['date_of_birth'],
|
||||
'gender' => Helper::genderPerson($row['sex']),
|
||||
'birth_date' => $this->dateParser($row['date_of_birth']),
|
||||
'gender' => Helper::genderNormalization($row['sex']) ?? '-',
|
||||
'language' => $row['language'] ?? null,
|
||||
'race' => $row['race'] ?? null,
|
||||
'phone' => $row['telephone_mobile'],
|
||||
]);
|
||||
|
||||
$member->person_id = $person->id;
|
||||
$member->save();
|
||||
|
||||
@@ -784,6 +803,7 @@ class MemberEnrollmentService
|
||||
'end' => $this->dateParser($row['member_expiry_date']),
|
||||
'status' => 'active'
|
||||
]);
|
||||
|
||||
$memberPolicy->save();
|
||||
|
||||
if (!empty($row['division_name'])) {
|
||||
@@ -808,7 +828,7 @@ class MemberEnrollmentService
|
||||
'status' => $row['employment_status']
|
||||
]);
|
||||
// Bisa disini penyebab data dobel
|
||||
|
||||
|
||||
$plans = explode(",",$row['plan_id']);
|
||||
if (count($plans) > 0) {
|
||||
foreach($plans as $d){
|
||||
@@ -841,7 +861,7 @@ class MemberEnrollmentService
|
||||
'end' => $this->dateParser($row['member_expiry_date']),
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
DB::commit();
|
||||
} catch (\Exception $e) {
|
||||
@@ -850,12 +870,12 @@ class MemberEnrollmentService
|
||||
}
|
||||
break;
|
||||
case "2": // Member Information Update (Without Replacement Card)
|
||||
|
||||
// $this->validateRow($row);
|
||||
|
||||
$this->validateRow($row);
|
||||
$member = Member::query()
|
||||
->where('member_id', $row['member_id'])
|
||||
->first();
|
||||
|
||||
|
||||
// // Validate If Exist Member
|
||||
if (!$member) {
|
||||
throw new ImportRowException(__('enrollment.MEMBER_NOT_FOUND', [
|
||||
@@ -863,7 +883,7 @@ class MemberEnrollmentService
|
||||
'policy_id' => $row['policy_number']
|
||||
]), 0, null, $row);
|
||||
}
|
||||
|
||||
|
||||
|
||||
$person = Person::updateOrCreate(
|
||||
[
|
||||
@@ -871,16 +891,22 @@ class MemberEnrollmentService
|
||||
],
|
||||
[
|
||||
'name' => $row['name'] ?? null,
|
||||
// 'birth_date' => $this->dateParser($row['date_of_birth']),
|
||||
'birth_date' => $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,
|
||||
'phone' => $row['telephone_mobile']
|
||||
]
|
||||
);
|
||||
|
||||
|
||||
$member->person_id = $person->id;
|
||||
|
||||
$member->name = $row['name'];
|
||||
$member->employee_status = $row['employment_status'];
|
||||
$member->gender = Helper::genderPerson($row['sex']);
|
||||
$member->relation_with_principal = $row['relationship_with_principal'];
|
||||
$member->marital_status = $row['marital_status'];
|
||||
|
||||
$member->save();
|
||||
try {
|
||||
$memberPolicy = MemberPolicy::query()
|
||||
@@ -888,6 +914,17 @@ class MemberEnrollmentService
|
||||
->where('member_id', $row['member_id'])
|
||||
->with('member')
|
||||
->first();
|
||||
// Pengecekan jika ada perubahan di plan
|
||||
$plan = Plan::query()
|
||||
->where('code', $row['plan_id'])
|
||||
->first();
|
||||
if ($plan){
|
||||
$memberPlan = MemberPlan::query()
|
||||
->where('member_id', $member->id)
|
||||
->first();
|
||||
$memberPlan->plan_id = $plan->id;
|
||||
$memberPlan->save();
|
||||
}
|
||||
|
||||
// // Pengecekan jika ada perubahan di plan
|
||||
// $plan = Plan::query()
|
||||
@@ -901,52 +938,50 @@ class MemberEnrollmentService
|
||||
// $memberPlan->save();
|
||||
// }
|
||||
|
||||
// Update plan
|
||||
// $plans = explode(",",$row['plan_id']);
|
||||
// if (count($plans) > 0) {
|
||||
// foreach($plans as $d){
|
||||
// $plan = Plan::query()
|
||||
// ->where('code', $d)
|
||||
// ->where('corporate_id', $corporate->id)
|
||||
// ->first();
|
||||
// if (!$plan) {
|
||||
// throw new ImportRowException(__('enrollment.PLAN_NOT_FOUND'), 0, null, $row);
|
||||
// }
|
||||
// $member->memberPlans()->updateOrCreate([
|
||||
// 'member_id' => $member->id,
|
||||
// 'plan_id' => $plan->id,
|
||||
// ],
|
||||
// [
|
||||
// 'plan_id' => $plan->id,
|
||||
// 'status' => 'active',
|
||||
// 'start' => $this->dateParser($row['member_effective_date']),
|
||||
// 'end' => $this->dateParser($row['member_expiry_date']),
|
||||
// ]);
|
||||
// }
|
||||
// } else {
|
||||
// $plan = Plan::query()
|
||||
// ->where('code', $row['plan_id'])
|
||||
// ->where('corporate_id', $corporate->id)
|
||||
// ->first();
|
||||
// if (!$plan) {
|
||||
// throw new ImportRowException(__('enrollment.PLAN_NOT_FOUND'), 0, null, $row);
|
||||
// }
|
||||
// $member->memberPlans()->updateOrCreate([
|
||||
// 'member_id' => $member->id,
|
||||
// 'plan_id' => $plan->id,
|
||||
// ],
|
||||
// [
|
||||
// 'plan_id' => $plan->id,
|
||||
// 'status' => 'active',
|
||||
// 'start' => $this->dateParser($row['member_effective_date']),
|
||||
// 'end' => $this->dateParser($row['member_expiry_date']),
|
||||
// ]);
|
||||
// }
|
||||
|
||||
|
||||
//Update plan
|
||||
$plans = explode(",",$row['plan_id']);
|
||||
if (count($plans) > 0) {
|
||||
foreach($plans as $d){
|
||||
$plan = Plan::query()
|
||||
->where('code', $d)
|
||||
->where('corporate_id', $corporate->id)
|
||||
->first();
|
||||
if (!$plan) {
|
||||
throw new ImportRowException(__('enrollment.PLAN_NOT_FOUND'), 0, null, $row);
|
||||
}
|
||||
$member->memberPlans()->updateOrCreate([
|
||||
'member_id' => $member->id,
|
||||
'plan_id' => $plan->id,
|
||||
],
|
||||
[
|
||||
'plan_id' => $plan->id,
|
||||
'status' => 'active',
|
||||
'start' => $this->dateParser($row['member_effective_date']),
|
||||
'end' => $this->dateParser($row['member_expiry_date']),
|
||||
]);
|
||||
}
|
||||
} else {
|
||||
$plan = Plan::query()
|
||||
->where('code', $row['plan_id'])
|
||||
->where('corporate_id', $corporate->id)
|
||||
->first();
|
||||
if (!$plan) {
|
||||
throw new ImportRowException(__('enrollment.PLAN_NOT_FOUND'), 0, null, $row);
|
||||
}
|
||||
$member->memberPlans()->updateOrCreate([
|
||||
'member_id' => $member->id,
|
||||
'plan_id' => $plan->id,
|
||||
],
|
||||
[
|
||||
'plan_id' => $plan->id,
|
||||
'status' => 'active',
|
||||
'start' => $this->dateParser($row['member_effective_date']),
|
||||
'end' => $this->dateParser($row['member_expiry_date']),
|
||||
]);
|
||||
}
|
||||
// end update plan
|
||||
|
||||
// Update jika ada perubahaan di ASO maka akan teriflek ke LMS juga\
|
||||
// Update jika ada perubahaan di ASO maka akan teriflek ke LMS juga
|
||||
$userInsuranceLms = UserInsurance::query()
|
||||
->where('sNoPolis', $row['member_id'])
|
||||
->first();
|
||||
@@ -1014,14 +1049,15 @@ class MemberEnrollmentService
|
||||
'dUpdateOn' => date('Y-m-d H:i:s'),
|
||||
]
|
||||
);
|
||||
|
||||
|
||||
$userLmsDetail = UserDetail::updateOrCreate(
|
||||
[
|
||||
'nIDUser' => $nIDUser
|
||||
],
|
||||
[
|
||||
'nIDUser' => $nIDUser,
|
||||
'dTanggalLahir' => $row['date_of_birth'],
|
||||
// 'dTanggalLahir' => $row['date_of_birth'],
|
||||
'dTanggalLahir' => $this->dateParser($row['date_of_birth']),
|
||||
'dCreateOn' => date('Y-m-d H:i:s'),
|
||||
'sMartialStatus' => $sMartialStatus != 0 ? $sMartialStatus : null,
|
||||
'nIDJenisKelamin' => $nIDJenisKelamin,
|
||||
@@ -1049,7 +1085,7 @@ class MemberEnrollmentService
|
||||
if (!$memberPolicy->member->isDirty()) {
|
||||
throw new ImportRowException(__('enrollment.MEMBER_NO_CHANGE'), 0, null, $row);
|
||||
}
|
||||
|
||||
|
||||
$memberPolicy->member->save();
|
||||
$member->save();
|
||||
// update informasi person
|
||||
@@ -1195,7 +1231,7 @@ class MemberEnrollmentService
|
||||
|
||||
// if (empty($row["option_mode"])) {
|
||||
// throw new ImportRowException(__('enrollment.OPTION_MODE_INVALID_FORMAT', [
|
||||
// 'member_id' => $row['member_id'],
|
||||
// 'member_id' => $row['member_id'],
|
||||
// 'policy_id' => $row['policy_number']
|
||||
// ]), 0, null, $row);
|
||||
// }
|
||||
@@ -1208,7 +1244,7 @@ class MemberEnrollmentService
|
||||
// // Validate
|
||||
// if ( !in_array($option_mode[0], ['P', 'D']) || empty($corp_code) || empty($policy_number) || empty($member_id) ) {
|
||||
// throw new ImportRowException(__('enrollment.OPTION_MODE_INVALID_FORMAT', [
|
||||
// 'member_id' => $row['member_id'],
|
||||
// 'member_id' => $row['member_id'],
|
||||
// 'policy_id' => $row['policy_number']
|
||||
// ]), 0, null, $row);
|
||||
// }
|
||||
@@ -1270,7 +1306,7 @@ class MemberEnrollmentService
|
||||
// $memberPolicy->member->record_type == $row['record_type']
|
||||
// ) {
|
||||
// throw new ImportRowException(__('enrollment.UNIQUE_CHANGE_PRINCIPAL_INVALID', [
|
||||
// 'member_id' => $row['member_id'],
|
||||
// 'member_id' => $row['member_id'],
|
||||
// 'policy_id' => $row['policy_number']
|
||||
// ]), 0, null, $row);
|
||||
// }
|
||||
@@ -1283,7 +1319,7 @@ class MemberEnrollmentService
|
||||
// $memberPolicy->member->payor_id == $row['payor_id']
|
||||
// ) {
|
||||
// throw new ImportRowException(__('enrollment.UNIQUE_CHANGE_DEPENDANT_INVALID', [
|
||||
// 'member_id' => $row['member_id'],
|
||||
// 'member_id' => $row['member_id'],
|
||||
// 'policy_id' => $row['policy_number']
|
||||
// ]), 0, null, $row);
|
||||
// }
|
||||
@@ -1523,10 +1559,10 @@ class MemberEnrollmentService
|
||||
$value = $row_data[$this->doc_headers_to_field_map[$header]] ?? null;
|
||||
if (is_string($value)) {
|
||||
$cells[] = WriterEntityFactory::createCell($value);
|
||||
}
|
||||
}
|
||||
else if ($value instanceof DateTime) {
|
||||
$cells[] = WriterEntityFactory::createCell(Carbon::parse($value)->format('Ymd'));
|
||||
}
|
||||
}
|
||||
else {
|
||||
$cells[] = WriterEntityFactory::createCell($value);
|
||||
}
|
||||
@@ -1539,7 +1575,7 @@ class MemberEnrollmentService
|
||||
public function validateRangePeriode($dates){
|
||||
$date = date("Y-m-d", strtotime($dates));
|
||||
if (!isset($corporate->currentPolicy) || $corporate->currentPolicy->start <= $date) {
|
||||
|
||||
|
||||
}
|
||||
if (!isset($corporate->currentPolicy) || $corporate->currentPolicy->end >= $date) {
|
||||
dd($corporate->currentPolicy->end, $dates);
|
||||
|
||||
@@ -57,6 +57,7 @@ class Member extends Model
|
||||
"endorsement_date",
|
||||
"members_effective_date",
|
||||
"members_expire_date",
|
||||
"employee_status",
|
||||
"activation_date",
|
||||
"terminated_date",
|
||||
"remarks",
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::table('members', function (Blueprint $table) {
|
||||
$table->string('employee_status')->after('terminated_date')->default(null);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::table('members', function (Blueprint $table) {
|
||||
$table->dropColumn('employee_status');
|
||||
});
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user