merge
This commit is contained in:
@@ -19,6 +19,7 @@ use Illuminate\Http\Request;
|
||||
use Illuminate\Routing\Controller;
|
||||
use Maatwebsite\Excel\Facades\Excel;
|
||||
use Box\Spout\Reader\Common\Creator\ReaderEntityFactory;
|
||||
use Box\Spout\Writer\Common\Creator\WriterEntityFactory;
|
||||
use App\Models\File;
|
||||
use Illuminate\Support\Facades\File as FacadesFile;
|
||||
use Illuminate\Support\Facades\Response;
|
||||
@@ -455,7 +456,6 @@ class CorporateController extends Controller
|
||||
} else if ($sheet->getName() == 'Benefit') {
|
||||
$corporateService->handleBenefitRow($corporate, $row_data);
|
||||
}
|
||||
|
||||
// Write Success Result to File
|
||||
$import->addArrayToRow(array_merge($row_data, [
|
||||
'Ingest Code' => 200,
|
||||
@@ -519,5 +519,170 @@ class CorporateController extends Controller
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public function dataPlanBenefit(Request $request, $corporate_id){
|
||||
|
||||
$file_name = 'Corporate Plan and Benefit';
|
||||
// Membuat penulis entitas Spout
|
||||
$writer = WriterEntityFactory::createXLSXWriter();
|
||||
// Membuka penulis untuk menulis ke file
|
||||
$writer->openToFile(public_path('files/CorporatePlan&BenefitImportData.xlsx'));
|
||||
|
||||
// Sheet 1
|
||||
$writer->getCurrentSheet()->setName('Plans');
|
||||
$headers_map_to_table_fields = Plan::$listing_doc_headers;
|
||||
$headerRow = WriterEntityFactory::createRowFromArray($headers_map_to_table_fields);
|
||||
$writer->addRow($headerRow);
|
||||
|
||||
$dataPlans = Plan::query()
|
||||
->filter($request->all())
|
||||
->where('corporate_id', $corporate_id)
|
||||
// ->whereHas('corporatePlan', function ($corporatePlan) use ($corporate_id) {
|
||||
// $corporatePlan->where('corporate_id', $corporate_id);
|
||||
// })
|
||||
// ->with('corporatePlan')
|
||||
->orderBy('corporate_plan_id', 'asc')
|
||||
->get()->toArray();
|
||||
foreach ($dataPlans as $index => $row){
|
||||
$rowData = [
|
||||
$row['service_code'], // Service
|
||||
$row['corporate_plan_id'], // Plan
|
||||
$row['code'], // Customer plans
|
||||
$row['type'], // Plan Type
|
||||
$row['start'], // Start Date of Plan
|
||||
$row['end'], // End Date of Plan
|
||||
$row['require_referral'], // Referral
|
||||
$row['referral_source'], // Referral Source
|
||||
$row['referral_duration'], // Referral Duration
|
||||
$row['family_plan'], // Family Plan
|
||||
$row['family_plan_share_rules'], // Family Sharing Overflow
|
||||
$row['limit_rules'], // Plan Limit
|
||||
$row['layer'], // Layer ID
|
||||
$row['layer_conditions'], // Layer Condition
|
||||
$row['budget_type'], // Budget Type
|
||||
$row['budget_code'], // Budget Code
|
||||
$row['budget_conditions'], // Budget Condition
|
||||
$row['surgery_limit'], // Surgery
|
||||
$row['non_surgery_limit'], // Non Surgery
|
||||
$row['max_claim_limit'], // Max/Claim
|
||||
$row['max_claim_count'], // Max Count of Claim
|
||||
$row['area_limit'], // Area
|
||||
$row['limit_shared_plans'], // Shared Plan
|
||||
$row['limit_shared_plan_type'], // Shared Plan Type
|
||||
$row['cashless_percentage'], // Cashless(%)
|
||||
$row['reimbursement_percentage'], // Reimbursement(%)
|
||||
$row['digital_percentage'], // Digital(%)
|
||||
$row['co_share_m_percentage'], // CoShareM(%)
|
||||
$row['co_share_s_percentage'], // CoShareS(%)
|
||||
$row['co_share_c_percentage'], // CoShareC(%)
|
||||
$row['cashless_deductible'], // Cashless Deductible
|
||||
$row['cashless_deductible'], // Reimbursement Deductible
|
||||
$row['digital_deductible'], // Digital Deductible
|
||||
$row['co_share_m_deductible'], // DeductibleM
|
||||
$row['co_share_s_deductible'], // DeductibleS
|
||||
$row['co_share_c_deductible'], // DeductibleC
|
||||
$row['co_share_deductible_condition'], // Co-share & Deductible Condition
|
||||
$row['msc'], // MSC
|
||||
$row['genders'], // Gender
|
||||
$row['min_age'], // Min Age
|
||||
$row['max_age'], // Max Age
|
||||
$row['rule_of_excess'], // Rule of Excess
|
||||
$row['max_excess_covered'], // Max Excess Covered
|
||||
$row['prorate_type'], // Prorate Type
|
||||
$row['prorate_lookup'], // Prorate Lookup
|
||||
$row['currency'], // Currency
|
||||
$row['max_surgery_reinstatement_days'], // Reinstatement days for Surgery NonSurgery
|
||||
$row['max_surgery_periode_days'], // Max Periode of Surgery Non Surgery
|
||||
];
|
||||
$row = WriterEntityFactory::createRowFromArray($rowData);
|
||||
$writer->addRow($row);
|
||||
}
|
||||
|
||||
// Menutup penulis
|
||||
|
||||
// Sheet 2
|
||||
$writer->addNewSheetAndMakeItCurrent();
|
||||
$writer->getCurrentSheet()->setName('Benefit');
|
||||
$headers_map_to_table_fields = CorporateBenefit::$listing_doc_headers;
|
||||
$headerRow = WriterEntityFactory::createRowFromArray($headers_map_to_table_fields);
|
||||
$writer->addRow($headerRow);
|
||||
|
||||
$dataBenfit = CorporateBenefit::query()
|
||||
->where('corporate_id', $corporate_id)
|
||||
->with('benefit', 'plan')
|
||||
->orderBy('plan_id', 'asc')
|
||||
->get()->toArray();
|
||||
// dd($dataBenfit);
|
||||
foreach($dataBenfit as $index => $row){
|
||||
$rowData = [
|
||||
$row['benefit']['service_code'] ?? NULL, // "Service",
|
||||
$row['plan']['type'] ?? NULL, // "Plan",
|
||||
$row['benefit']['code'] ?? NULL, // "Benefit Code",
|
||||
$row['benefit']['code'] ?? NULL, // "Customer Benefit Code",
|
||||
$row['benefit']['description'] ?? NULL, // "Detail Benefit",
|
||||
$row['budget'], // "ASO/Budget",
|
||||
$row['budget_conditions'], // "Budget Condition",
|
||||
$row['budget_code'], // "Budget Code",
|
||||
$row['primary_benefit_code'], // "Primary benefit",
|
||||
$row['benefit_mode'], // "Benefit Mode",
|
||||
$row['room_class_coverage'], // "Room Class",
|
||||
$row['max_bed_coverage'], // "Max Bed",
|
||||
$row['tolerance_parameter'], // "Tolerance Paramater",
|
||||
$row['max_room_class'], // "Max. Room Class",
|
||||
$row['limit_amount'], // "Limit Value",
|
||||
$row['area_limit'], // "Area",
|
||||
$row['shared_benefit'], // "Shared Benefit With",
|
||||
$row['shared_benefit_type'], // "Shared Benefit Type",
|
||||
$row['msc'], // "MSC",
|
||||
$row['genders'], // "Gender",
|
||||
$row['min_age'], // "Min Age",
|
||||
$row['max_age'], // "Max Age",
|
||||
$row['max_frequency_period'], // "Freq. Period",
|
||||
$row['daily_frequency'], // "Daily Frequency",
|
||||
$row['weekly_frequency'], // "Weekly Frequency",
|
||||
$row['monthly_frequency'], // "Monthly Frequency",
|
||||
$row['yearly_frequency'], // "Yearly Frequency",
|
||||
$row['custom_frequency_days'], // "Custom Duration",
|
||||
$row['custom_duration_value'], // "Custom Duration Value",
|
||||
NULL, // "Cashless, Reimbursement",
|
||||
$row['high_plan_factor'], // "High Plan Factor",
|
||||
$row['pre_post_treatment'], // "Pre Post Treatment",
|
||||
$row['pre_treatment_days'], // "Pre Treatment",
|
||||
$row['post_treatment_days'], // "Post Treatment",
|
||||
$row['layer_type_1'], // "Layer Type 1",
|
||||
$row['layer_value_1'], // "Layer Value 1",
|
||||
$row['layer_type_2'], // "Layer Type 2",
|
||||
$row['layer_value_2'], // "Layer Value 2",
|
||||
$row['cashless_percentage'], // "Cashless (%)",
|
||||
$row['reimbursement_percentage'], // "Reimburse (%)",
|
||||
$row['digital_percentage'], // "Digital (%)",
|
||||
$row['co_share_m_percentage'], // "CoShareM (%)",
|
||||
$row['co_share_s_percentage'], // "CoShareS (%)",
|
||||
$row['co_share_c_deductible'], // "CoShareC (%)",
|
||||
$row['cashless_deductible'], // "Cashless Deductible",
|
||||
$row['reimbursement_deductible'], // "Reimbursement Deductible",
|
||||
$row['digital_deductible'], // "Digital Deductible",
|
||||
$row['co_share_m_deductible'], // "DeductibleM",
|
||||
$row['co_share_s_deductible'], // "DeductibleS",
|
||||
$row['co_share_c_deductible'], // "DeductibleC",
|
||||
$row['prorate_type'], // "Prorate Type",
|
||||
$row['prorate_lookup'], // "Prorate Lookup",
|
||||
$row['max_days_for_disability'], // "Max Days for Disability",
|
||||
$row['max_period_for_disability'], // "Max Periode of Disability",
|
||||
$row['currency'], // "Currency",
|
||||
$row['show_benefit_item'], // "Show Benefit Item",
|
||||
$row['show_benefit_value'], // "Show Benefit Value",
|
||||
];
|
||||
$row = WriterEntityFactory::createRowFromArray($rowData);
|
||||
$writer->addRow($row);
|
||||
}
|
||||
|
||||
$writer->close();
|
||||
|
||||
return Helper::responseJson([
|
||||
'file_name' => "Data Corporate Plan & Benefit List " . date('Y-m-d h:i:s'),
|
||||
"file_url" => url('files/CorporatePlan&BenefitImportData.xlsx')
|
||||
]);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -66,6 +66,7 @@ Route::prefix('internal')->group(function () {
|
||||
Route::get('corporates/import-document-example/{document_type}', [CorporateController::class, 'importDocumentExample']);
|
||||
Route::put('corporates/{corporate_id}/activation', [CorporateController::class, 'activation']);
|
||||
Route::post('corporates/{corporate_id}/import-plan-benefit', [CorporateController::class, 'importPlanBenefit']);
|
||||
Route::get('corporates/{corporate_id}/data-plan-benefit', [CorporateController::class, 'dataPlanBenefit']);
|
||||
|
||||
Route::get('corporates/{corporate_id}/corporate-plans', [CorporatePlanController::class, 'index']);
|
||||
Route::post('corporates/{corporate_id}/corporate-plans', [CorporatePlanController::class, 'store']);
|
||||
|
||||
@@ -6,6 +6,7 @@ use App\Exceptions\ImportRowException;
|
||||
use App\Models\Benefit;
|
||||
use App\Models\Corporate;
|
||||
use App\Models\CorporateBenefit;
|
||||
use App\Models\CorporatePolicy;
|
||||
use App\Models\Plan;
|
||||
use Box\Spout\Writer\Common\Creator\WriterEntityFactory;
|
||||
|
||||
@@ -13,16 +14,105 @@ class CorporateService
|
||||
{
|
||||
protected function validatePlanRow($row)
|
||||
{
|
||||
// $corporate_policy = CorporatePolicy::where('corporate_id', $corporateId)->get();
|
||||
/*
|
||||
Refer to Coverage code :
|
||||
MEDIVAC = Medical evacuation
|
||||
MSO = Medical second opinion
|
||||
PAC = Personal Assistant Concierge
|
||||
OPDE = Outpatient Dental
|
||||
IP=Inpatient
|
||||
OP=Outpatient
|
||||
MA=Maternity
|
||||
ANC = Ante/Post Natal Care
|
||||
DE=Dental
|
||||
GL=Glasses
|
||||
SP=Special Treatment
|
||||
PF=Pooled Fund
|
||||
MCU=Medical Check Up
|
||||
KB-VACC = Family Planning/Vaccination
|
||||
LAB = Test Diagnostic
|
||||
PHAR = Pharmacy
|
||||
**/
|
||||
|
||||
$service_code = ['MEDIVAC', 'MSO', 'PAC', 'OPDE', 'IP', 'OP', 'MA', 'ANC', 'DE', 'GL', 'SP', 'PF', 'MCU', 'KB-VACC', 'LAB', 'PHAR'];
|
||||
$plan_code = [1, 2, 3, 4];
|
||||
$prorate_type = [0, 1, 2];
|
||||
$family_plan = ['F', 'S', 'N'];
|
||||
|
||||
if (empty($row['service_code'])) {
|
||||
throw new ImportRowException(__('plan.RECORD_TYPE_REQUIRED'), 0, null, $row);
|
||||
throw new ImportRowException(__('plan.REQUIRED', [
|
||||
'attribute' => 'Service Code'
|
||||
] ), 0, null, $row);
|
||||
} else if (!in_array($row['service_code'], $service_code)){
|
||||
throw new ImportRowException(__('plan.NOT_MATCH', [
|
||||
'attribute' => 'Service Code',
|
||||
'code' => $row['service_code']
|
||||
]), 0, null, $row);
|
||||
}
|
||||
|
||||
if (empty($row['corporate_plan_id'])) {
|
||||
throw new ImportRowException(__('plan.REQUIRED', [
|
||||
'attribute' => 'Plan'
|
||||
]), 0, null, $row);
|
||||
}
|
||||
|
||||
if (empty($row['code'])) {
|
||||
throw new ImportRowException(__('plan.CODE_REQUIRED'), 0, null, $row);
|
||||
throw new ImportRowException(__('plan.REQUIRED', [
|
||||
'attribute' => 'Customer Plan'
|
||||
]), 0, null, $row);
|
||||
}
|
||||
|
||||
if (!in_array($row['type'], $plan_code)){
|
||||
throw new ImportRowException(__('plan.NOT_MATCH', [
|
||||
'attribute' => 'Plan Type',
|
||||
'code' => $row['type']
|
||||
]), 0, null, $row);
|
||||
} else if ($row['type'] == 2 && $row['limit_rules'] != 999999999){
|
||||
throw new ImportRowException(__('plan.LIMIT_PLAN'), 0, null, $row);
|
||||
}
|
||||
|
||||
if (empty($row['type'])) {
|
||||
throw new ImportRowException(__('plan.TYPE_REQUIRED'), 0, null, $row);
|
||||
// if (!empty($row['start'])) {
|
||||
// throw new ImportRowException(__('plan.REQUIRED', [
|
||||
// 'attribute' => 'Start Date of Plan'
|
||||
// ]), 0, null, $row);
|
||||
// }
|
||||
|
||||
// if (empty($row['type'])) {
|
||||
// throw new ImportRowException(__('plan.TYPE_REQUIRED'), 0, null, $row);
|
||||
// } else if (!in_array($row['type'],$plan_code)){
|
||||
// throw new ImportRowException(__('plan.NOT_MATCH', [
|
||||
// 'attribute' => 'Plan Type',
|
||||
// 'code' => $row['code']
|
||||
// ]), 0, null, $row);
|
||||
// }
|
||||
|
||||
if (!empty($row['family_plan']) && !in_array($family_plan)) {
|
||||
throw new ImportRowException(__('plan.NOT_MATCH', [
|
||||
'attribute' => 'Family Plan',
|
||||
'code' => $row['family_plan']
|
||||
]), 0, null, $row);
|
||||
}
|
||||
|
||||
if (!empty($row['family_plan']) && !in_array($family_plan)) {
|
||||
throw new ImportRowException(__('plan.NOT_MATCH', [
|
||||
'attribute' => 'Family Plan',
|
||||
'code' => $row['family_plan']
|
||||
]), 0, null, $row);
|
||||
}
|
||||
|
||||
if (!empty($row['prorate_type']) && !in_array($prorate_type)) {
|
||||
throw new ImportRowException(__('plan.NOT_MATCH', [
|
||||
'attribute' => 'Prorate Type',
|
||||
'code' => $row['prorate_type']
|
||||
]), 0, null, $row);
|
||||
}
|
||||
|
||||
if (!empty($row['prorate_lookup']) && !in_array($prorate_type)) {
|
||||
throw new ImportRowException(__('plan.NOT_MATCH', [
|
||||
'attribute' => 'Prorate Lookup',
|
||||
'code' => $row['prorate_lookup']
|
||||
]), 0, null, $row);
|
||||
}
|
||||
|
||||
if (empty($row['limit_rules'])) {
|
||||
@@ -38,8 +128,8 @@ class CorporateService
|
||||
{
|
||||
try {
|
||||
$plan_data = $row;
|
||||
$plan_data["corporate_id"] = $corporate->id;
|
||||
$this->validatePlanRow($plan_data);
|
||||
$plan_data["corporate_id"] = $corporate->id;
|
||||
$plan = $corporate->plans()->updateOrCreate([
|
||||
'corporate_plan_id' => $plan_data['corporate_plan_id'],
|
||||
// 'active' => 0,
|
||||
@@ -53,6 +143,8 @@ class CorporateService
|
||||
|
||||
protected function validateBenefitRow($row)
|
||||
{
|
||||
$max_frequence = 7;
|
||||
$budget_aso = [1,2];
|
||||
if (empty($row['service_code'])) {
|
||||
throw new ImportRowException(__('benefit.SERVICE_CODE_REQUIRED'), 0, null, $row);
|
||||
}
|
||||
@@ -77,6 +169,13 @@ class CorporateService
|
||||
if (empty($row['genders'])) {
|
||||
throw new ImportRowException(__('benefit.GENDER_REQUIRED'), 0, null, $row);
|
||||
}
|
||||
if (!empty($row['max_frequency_period']) && $row['max_frequency_period'] >= $max_frequence){ // jenis frequence
|
||||
throw new ImportRowException(__('benefit.MAX_FREQUENCY'), 0, null, $row);
|
||||
}
|
||||
|
||||
if (!empty($row['budget']) && !in_array($budget_aso)) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public function handleBenefitRow(Corporate $corporate, $row)
|
||||
|
||||
@@ -13,9 +13,9 @@ class ExclusionService
|
||||
{
|
||||
protected function validateDiagnosisExclusionRow($row)
|
||||
{
|
||||
// if (empty($row['service_code'])) {
|
||||
// throw new ImportRowException(__('plan.RECORD_TYPE_REQUIRED'), 0, null, $row);
|
||||
// }
|
||||
if (empty($row['service_code'])) {
|
||||
throw new ImportRowException(__('plan.REQUIRED'), 0, null, $row);
|
||||
}
|
||||
}
|
||||
|
||||
public function handleDiagnosisExclusionRow(Corporate $corporate, $row)
|
||||
|
||||
@@ -131,6 +131,66 @@ class CorporateBenefit extends Model
|
||||
"Show Benefit Value" => 'show_benefit_value',
|
||||
];
|
||||
|
||||
public static $listing_doc_headers = [
|
||||
"Service",
|
||||
"Plan",
|
||||
"Benefit Code",
|
||||
"Customer Benefit Code",
|
||||
"Detail Benefit",
|
||||
"ASO/Budget",
|
||||
"Budget Condition",
|
||||
"Budget Code",
|
||||
"Primary benefit",
|
||||
"Benefit Mode",
|
||||
"Room Class",
|
||||
"Max Bed",
|
||||
"Tolerance Paramater",
|
||||
"Max. Room Class",
|
||||
"Limit Value",
|
||||
"Area",
|
||||
"Shared Benefit With",
|
||||
"Shared Benefit Type",
|
||||
"MSC",
|
||||
"Gender",
|
||||
"Min Age",
|
||||
"Max Age",
|
||||
"Freq. Period",
|
||||
"Daily Frequency",
|
||||
"Weekly Frequency",
|
||||
"Monthly Frequency",
|
||||
"Yearly Frequency",
|
||||
"Custom Duration",
|
||||
"Custom Duration Value",
|
||||
"Cashless, Reimbursement",
|
||||
"High Plan Factor",
|
||||
"Pre Post Treatment",
|
||||
"Pre Treatment",
|
||||
"Post Treatment",
|
||||
"Layer Type 1",
|
||||
"Layer Value 1",
|
||||
"Layer Type 2",
|
||||
"Layer Value 2",
|
||||
"Cashless (%)",
|
||||
"Reimburse (%)",
|
||||
"Digital (%)",
|
||||
"CoShareM (%)",
|
||||
"CoShareS (%)",
|
||||
"CoShareC (%)",
|
||||
"Cashless Deductible",
|
||||
"Reimbursement Deductible",
|
||||
"Digital Deductible",
|
||||
"DeductibleM",
|
||||
"DeductibleS",
|
||||
"DeductibleC",
|
||||
"Prorate Type",
|
||||
"Prorate Lookup",
|
||||
"Max Days for Disability",
|
||||
"Max Periode of Disability",
|
||||
"Currency",
|
||||
"Show Benefit Item",
|
||||
"Show Benefit Value",
|
||||
];
|
||||
|
||||
public static $max_frequency_periods = [
|
||||
0 => 'Policy Period',
|
||||
1 => 'Daily Visit',
|
||||
|
||||
@@ -126,6 +126,57 @@ class Plan extends Model
|
||||
"Max Periode of Surgery Non Surgery" => "max_surgery_periode_days",
|
||||
];
|
||||
|
||||
public static $listing_doc_headers = [
|
||||
"Service",
|
||||
"Plan",
|
||||
"Customer Plan",
|
||||
"Plan Type",
|
||||
"Start Date of Plan",
|
||||
"End Date of Plan",
|
||||
"Referral",
|
||||
"Referral Source",
|
||||
"Referral Duration",
|
||||
"Family Plan",
|
||||
"Family Sharing Overflow",
|
||||
"Plan Limit",
|
||||
"Layer ID",
|
||||
"Layer Condition",
|
||||
"Budget Type",
|
||||
"Budget Code",
|
||||
"Budget Condition",
|
||||
"Surgery",
|
||||
"Non Surgery",
|
||||
"Max/Claim",
|
||||
"Max Count of Claim",
|
||||
"Area",
|
||||
"Shared Plan",
|
||||
"Shared Plan Type",
|
||||
"Cashless(%)",
|
||||
"Reimbursement(%)",
|
||||
"Digital(%)",
|
||||
"CoShareM(%)",
|
||||
"CoShareS(%)",
|
||||
"CoShareC(%)",
|
||||
"Cashless Deductible",
|
||||
"Reimbursement Deductible",
|
||||
"Digital Deductible",
|
||||
"DeductibleM",
|
||||
"DeductibleS",
|
||||
"DeductibleC",
|
||||
"Co-share & Deductible Condition",
|
||||
"MSC",
|
||||
"Gender",
|
||||
"Min Age",
|
||||
"Max Age",
|
||||
"Rule of Excess",
|
||||
"Max Excess Covered",
|
||||
"Prorate Type",
|
||||
"Prorate Lookup",
|
||||
"Currency",
|
||||
"Reinstatement days for Surgery NonSurgery",
|
||||
"Max Periode of Surgery Non Surgery",
|
||||
];
|
||||
|
||||
public function setAreaLimitAttribute($value)
|
||||
{
|
||||
$this->attributes['area_limit'] = empty($value) ? null : $value;
|
||||
|
||||
@@ -182,6 +182,18 @@ export default function PlanList() {
|
||||
})
|
||||
}
|
||||
|
||||
const handleGetData = (type :string) => {
|
||||
axios.get(`corporates/${corporate_id}/data-plan-benefit`)
|
||||
.then((response) => {
|
||||
const link = document.createElement('a');
|
||||
link.href = response.data.data.file_url;
|
||||
link.setAttribute('download', response.data.data.file_name);
|
||||
document.body.appendChild(link);
|
||||
link.click();
|
||||
handleClose();
|
||||
})
|
||||
}
|
||||
|
||||
return (
|
||||
<div>
|
||||
<input
|
||||
@@ -219,6 +231,7 @@ export default function PlanList() {
|
||||
>
|
||||
<MenuItem onClick={handleImportButton}>Import</MenuItem>
|
||||
<MenuItem onClick={() => {handleGetTemplate('plan-benefit')}}>Download Template</MenuItem>
|
||||
<MenuItem onClick={() => {handleGetData('data-plan-benefit')}}>Download Data Plan & Benefit</MenuItem>
|
||||
</Menu>
|
||||
</Stack>
|
||||
)}
|
||||
|
||||
@@ -165,6 +165,18 @@ export default function CorporatePlanList() {
|
||||
})
|
||||
}
|
||||
|
||||
const handleGetData = (type :string) => {
|
||||
axios.get(`corporates/${corporate_id}/data-plan-benefit`)
|
||||
.then((response) => {
|
||||
const link = document.createElement('a');
|
||||
link.href = response.data.data.file_url;
|
||||
link.setAttribute('download', response.data.data.file_name);
|
||||
document.body.appendChild(link);
|
||||
link.click();
|
||||
handleClose();
|
||||
})
|
||||
}
|
||||
|
||||
return (
|
||||
<div>
|
||||
<input
|
||||
@@ -202,6 +214,7 @@ export default function CorporatePlanList() {
|
||||
>
|
||||
<MenuItem onClick={handleImportButton}>Import</MenuItem>
|
||||
<MenuItem onClick={() => {handleGetTemplate('plan-benefit')}}>Download Template</MenuItem>
|
||||
<MenuItem onClick={() => {handleGetData('data-plan-benefit')}}>Download Plans & Benefit</MenuItem>
|
||||
</Menu>
|
||||
</Stack>
|
||||
)}
|
||||
|
||||
73
lang/en/plan.php
Normal file
73
lang/en/plan.php
Normal file
@@ -0,0 +1,73 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Enrollment Import Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines are used during import enrollment for various
|
||||
|
|
||||
*/
|
||||
"REQUIRED" => ":attribute must be filled",
|
||||
"NOT_MATCH" => "Wrong :attribute Code (:code)",
|
||||
"LIMIT_PLAN" => "Limit Plan must be filled 999999999",
|
||||
"MODE_UNAVAILABLE" => "Record mode for member is not available",
|
||||
"RECORD_TYPE_REQUIRED" => "Record Type must be filled for member (Member ID)",
|
||||
"MEMBER_UNIQUE" => "Member (:member_id) is already exist, change Member ID or use another mode",
|
||||
"MEMBER_EXISTS" => "Member (:member_id) for policy (:policy_id) already exist in database",
|
||||
"MEMBER_NOT_FOUND" => "Member (Member ID) for policy (Policy No) not found",
|
||||
"MEMBER_NOT_EXISTS" => "Member (Member ID) for policy (Policy No) not found",
|
||||
"MEMBER_INACTIVE" => "Member (Member ID) for policy (Policy No) is inactive",
|
||||
"MEMBER_NO_CHANGE" => "No changes in plan/ personal info found",
|
||||
"MEMBER_EXPIRY_DATE_NO_CHANGE" => "No changes in member effective/ expiry date found",
|
||||
"MEMBER_EXPIRY_DATE_INVALID" => "Member Effective Date must be before or equal to Member Expiry Date",
|
||||
"MEMBER_RENEWAL_STILL_ACTIVE" => "Policy period is still active, please use mode 11/12/13",
|
||||
"OPTION_MODE_INVALID_FORMAT" => "Option Mode must follow delimited format",
|
||||
"UNIQUE_CHANGE_PRINCIPAL_INVALID" => "No changes in the following info found:
|
||||
> Corporate Code (Field 7)
|
||||
> Policy No (Field 15)
|
||||
> Member ID (Field 4)
|
||||
> Record Type (Field 2)",
|
||||
"UNIQUE_CHANGE_DEPENDANT_INVALID" => "No changes in the following info found:
|
||||
> Corporate Code (Field 7)
|
||||
> Policy No (Field 15)
|
||||
> Record Type (Field 2)
|
||||
> Payor ID (Field 3)",
|
||||
"MEMBER_EXPIRY_MUST_BE_AFTER_TODAY" => "Valid if Activation Date is later than member effective date, not empty and in YYYYMMDD format",
|
||||
"PLAN_NOT_FOUND" => "Plan ID inactive / not found in the system",
|
||||
|
||||
"PAYOR_ID_REQUIRED" => "Payor ID must be filled for member (Member ID)",
|
||||
"MEMBER_ID_REQUIRED" => "Member ID must be filled",
|
||||
"PRINCIPAL_ID_NOT_REQUIRED" => "Mapping ID should only be filled for dependents",
|
||||
"CORPORATE_ID_REQUIRED" => "Corporate ID must be filled",
|
||||
"PRINCIPAL_ID_REQUIRED" => "Mapping ID must be filled",
|
||||
"PRINCIPAL_ID_NOT_SAME_MEMBER_ID" => "Mapping ID cannot be filled with the same Member ID.",
|
||||
"BRANCH_CODE_NOT_REQUIRED" => "Dependents don't need to fill in Branch Code ",
|
||||
"INVALID_LANGUAGE" => "Language (field 12) is invalid",
|
||||
"INVALID_DATE" => "Format Date (:title) is invalid",
|
||||
"INVALID_TYPE_OF_WORK" => "Type of work (field 13) is invalid",
|
||||
"INVALID_RACE" => "Race (field 14) is invalid",
|
||||
|
||||
"POLICY_NUMBER_REQUIRED" => "Policy Number must be filled for member (Member ID)",
|
||||
"MORE_THAN" => ":date_param (:date) must be greater than :date_param2 date (:start)",
|
||||
"LESS_THAN" => ":date_param (:date) must be less than :date_param2 date (:end)",
|
||||
"MEMBER_EFFECTIVE_REQUIRED" => "Member's Effective Date must be filled for member (Member ID)",
|
||||
"MEMBER_EXPIRY_REQUIRED" => "Member's Expiry Date must be filled for member (Member ID)",
|
||||
|
||||
"MEMBER_EXPIRY_REQUIRED" => "Member's Expiry Date must be filled for member (Member ID)",
|
||||
"ACTIVATION_DATE_REQUIRED" => "Activation's Date must be filled for member (Member ID)",
|
||||
"INVALID_MARITAL_STATUS" => "Marital Status (field 16) is invalid",
|
||||
"NAME_REQUIRED" => "Member Name must be filled",
|
||||
"PHONE_INVALID" => "Telephone - Mobile must follow +628 format",
|
||||
"EMAIL_INVALID" => "Email must folllow email format e.g. xx@gmail.com",
|
||||
"DATE_OF_BIRTH_REQUIRED" => "Date of Birth must be filled",
|
||||
"DATE_OF_TERMINATED" => "Date of Terminated must be filled",
|
||||
"SEX_REQUIRED" => "Sex must be filled",
|
||||
"SEX_CODE_NOT_VALID" => "Sex must be filled F or M",
|
||||
|
||||
"RELATIONSHIP_WITH_PRICIPAL_REQUIRED" => "Relationship must be filled",
|
||||
"RELATIONSHIP_WITH_PRICIPAL_NOT_VALID" => "Relationship must be filled W, S, D or H",
|
||||
|
||||
];
|
||||
BIN
public/files/Corporate Plan & Benefit Import.xlsx
Executable file → Normal file
BIN
public/files/Corporate Plan & Benefit Import.xlsx
Executable file → Normal file
Binary file not shown.
BIN
public/files/CorporatePlan&BenefitImportData.xlsx
Normal file
BIN
public/files/CorporatePlan&BenefitImportData.xlsx
Normal file
Binary file not shown.
Reference in New Issue
Block a user