From dccd4f70b9e33b707f300b532cc76c873487ac99 Mon Sep 17 00:00:00 2001 From: Tb Fajri Date: Fri, 28 Jul 2023 10:23:28 +0700 Subject: [PATCH] update real-time ke lms --- .../Services/MemberEnrollmentService.php | 95 ++++++++++++++++++- app/Models/OLDLMS/User.php | 11 +++ app/Models/OLDLMS/UserDetail.php | 12 +++ app/Models/OLDLMS/UserInsurance.php | 10 ++ 4 files changed, 126 insertions(+), 2 deletions(-) diff --git a/Modules/Internal/Services/MemberEnrollmentService.php b/Modules/Internal/Services/MemberEnrollmentService.php index 32a41612..db8ad1fd 100644 --- a/Modules/Internal/Services/MemberEnrollmentService.php +++ b/Modules/Internal/Services/MemberEnrollmentService.php @@ -14,6 +14,10 @@ use App\Models\MemberPolicy; use App\Models\MemberPlan; use App\Models\Person; use App\Models\Plan; +use App\Models\OLDLMS\User; +use App\Models\OLDLMS\UserDetail; +use App\Models\OLDLMS\UserInsurance; +use App\Models\OLDLMS\UserInsuranceDetail; use Box\Spout\Writer\Common\Creator\WriterEntityFactory; use Box\Spout\Common\Entity\Row; use Carbon\Carbon; @@ -625,6 +629,7 @@ class MemberEnrollmentService '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', @@ -633,6 +638,7 @@ class MemberEnrollmentService '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', @@ -649,7 +655,7 @@ class MemberEnrollmentService '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', @@ -793,7 +799,7 @@ class MemberEnrollmentService } break; case "2": // Member Information Update (Without Replacement Card) - + // $this->validateRow($row); $member = Member::query() ->where('member_id', $row['member_id']) @@ -824,6 +830,91 @@ class MemberEnrollmentService $memberPlan->plan_id = $plan->id; $memberPlan->save(); } + // Update jika ada perubahaan di ASO maka akan teriflek ke LMS juga\ + $userInsuranceLms = UserInsurance::query() + ->where('sNoPolis', $row['member_id']) + ->first(); + if ($userInsuranceLms){ + $userInsuranceLms->sNamaPeserta = $row['name']; + $userInsuranceLms->dStartDate = $row['member_effective_date']; + $userInsuranceLms->dExpireDate = $row['member_expiry_date']; + $nIDUser = $userInsuranceLms->nIDUser; + + UserInsurance::updateOrCreate( + ['nIDUser' => $nIDUser], + [ + 'sNamaPeserta' => $row['name'], + 'dStartDate' => $row['member_effective_date'], + 'dExpireDate' => $row['member_expiry_date'], + 'dTanggalLahir' => $row['date_of_birth'], + // 'nNoKTP' => $row['nric'] ?? , + ] + ); + /* Lihat ID Marital status di table tm_status_pernikahan Linksehat */ + if ($row['relationship_with_principal'] == 'H'){ + $sMartialStatus= 6; + $nIDHubunganKeluarga = 3; + } else if ($row['relationship_with_principal'] == 'W'){ + $sMartialStatus = 7; + $nIDHubunganKeluarga = 4; + } else if ($row['relationship_with_principal'] == 'S'){ + $sMartialStatus = 4; + $nIDHubunganKeluarga = 5; + } else if ($row['relationship_with_principal'] == 'D'){ + $sMartialStatus = 5; + $nIDHubunganKeluarga = 5; + } else { + $sMartialStatus = 0; + $nIDHubunganKeluarga = 0; + } + + + if($row['sex'] == 'M'){ + $nIDJenisKelamin = 1; + } else { + $nIDJenisKelamin = 2; + }; + // $ip_address = $CI->_prepare_ip($CI->input->ip_address()); + $name = explode(" ", $row['name']); + // First name + $first_name = isset($name[0]) ? $name[0] : ''; + // Middle name + $middle_name = isset($name[1]) ? $name[1] : ''; + // Last name + $last_name = ''; + if (count($name) > 2) { + $last_name = implode(" ", array_slice($name, 2)); + } + $userLms = User::updateOrCreate( + [ + 'nID' => $nIDUser // Kondisi untuk mencari data dengan 'nID' yang sesuai dengan $nIDUser + ], + [ + 'sFirstName' => 'rwdsa', + 'sLastName' => $middle_name . ' ' .$last_name, // Ubah ini dengan variabel yang sesuai dengan nama belakang (last name) + 'sPhone' => $row['telephone_mobile'], + 'sEmail' => str_replace(' ', '', $row['email']), + 'nIDHubunganKeluarga' => $nIDHubunganKeluarga !== 0 ? $nIDHubunganKeluarga : null, + 'dUpdateOn' => date('Y-m-d H:i:s'), + ] + ); + + $userLmsDetail = UserDetail::updateOrCreate( + [ + 'nIDUser' => $nIDUser + ], + [ + 'nIDUser' => $nIDUser, + 'dTanggalLahir' => $row['date_of_birth'], + 'dCreateOn' => date('Y-m-d H:i:s'), + 'sMartialStatus' => $sMartialStatus != 0 ? $sMartialStatus : null, + 'nIDJenisKelamin' => $nIDJenisKelamin, + 'sCreateBy' => $nIDUser, + 'sKTP' => $row['nric'] ?? null, + ] + ); + + } if (!$memberPolicy) { throw new ImportRowException(__('enrollment.MEMBER_NOT_EXISTS', [ 'member_id' => $row['member_id'], diff --git a/app/Models/OLDLMS/User.php b/app/Models/OLDLMS/User.php index 913248b5..3c179ca4 100644 --- a/app/Models/OLDLMS/User.php +++ b/app/Models/OLDLMS/User.php @@ -23,6 +23,17 @@ class User extends Model 'full_name', ]; + protected $primaryKey = 'nID'; + protected $fillable = [ + 'nID', + 'sFirstName', + 'sLastName', + 'sPhone', + 'sEmail', + 'nIDHubunganKeluarga', + 'dUpdateOn', + ]; + protected function fullName(): Attribute { return Attribute::make( diff --git a/app/Models/OLDLMS/UserDetail.php b/app/Models/OLDLMS/UserDetail.php index c37f0ef6..0d34d05c 100644 --- a/app/Models/OLDLMS/UserDetail.php +++ b/app/Models/OLDLMS/UserDetail.php @@ -14,7 +14,19 @@ class UserDetail extends Model const DELETED_AT = 'dDeleteOn'; protected $connection = 'oldlms'; + protected $primaryKey = 'nID'; protected $table = 'tm_users_detail'; + protected $fillable = [ + 'nIDUser', + 'dTanggalLahir', + 'dCreateOn', + 'sMartialStatus', + 'nIDJenisKelamin', + 'sCreateBy', + 'sKTP', + + ]; + } diff --git a/app/Models/OLDLMS/UserInsurance.php b/app/Models/OLDLMS/UserInsurance.php index b60a3980..c935f123 100644 --- a/app/Models/OLDLMS/UserInsurance.php +++ b/app/Models/OLDLMS/UserInsurance.php @@ -15,6 +15,16 @@ class UserInsurance extends Model const DELETED_AT = 'dDeleteOn'; protected $connection = 'oldlms'; + protected $primaryKey = 'nIDUser'; protected $table = 'tm_users_insurance'; + protected $fillable = [ + 'nIDUser', + 'sNamaPeserta', + 'dStartDate', + 'dExpireDate', + 'dTanggalLahir', + 'nNoKTP', + 'sNoPolis', + ]; }