Merge remote-tracking branch 'origin/staging'

This commit is contained in:
Linksehat Staging Server
2023-06-13 11:39:11 +07:00
1984 changed files with 7613 additions and 2056 deletions

0
Modules/Internal/Http/Controllers/.gitkeep Normal file → Executable file
View File

View File

View File

@@ -0,0 +1,90 @@
<?php
namespace Modules\Internal\Http\Controllers\Api;
use App\Helpers\Helper;
use App\Models\AuditTrail;
use Illuminate\Contracts\Support\Renderable;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller;
use Modules\Internal\Transformers\AuditTrailResource;
class AuditTrailController extends Controller {
/**
* Display a listing of the resource.
* @return Renderable
*/
public function index(Request $request, $id)
{
$audittrails = AuditTrail::query()
->where('model', '=', $request->model)
->where('model_id', '=', $id)
// ->latest()
->paginate(1000);
return response()->json(Helper::paginateResources(AuditTrailResource::collection($audittrails)));
}
/**
* Show the form for creating a new resource.
* @return Renderable
*/
public function create()
{
return view('internal::create');
}
/**
* Store a newly created resource in storage.
* @param Request $request
* @return Renderable
*/
public function store(Request $request)
{
//
}
/**
* Show the specified resource.
* @param int $id
* @return Renderable
*/
public function show($id)
{
$appointments = Appointment::query()
->with('doctor.user', 'doctor.speciality', 'appointmentDetail', 'healthCare')
->where('nID', $id)
->first();
return response()->json(new AppointmentResource($appointments));
}
/**
* Show the form for editing the specified resource.
* @param int $id
* @return Renderable
*/
public function edit($id)
{
return view('internal::edit');
}
/**
* Update the specified resource in storage.
* @param Request $request
* @param int $id
* @return Renderable
*/
public function update(Request $request, $id)
{
//
}
/**
* Remove the specified resource from storage.
* @param int $id
* @return Renderable
*/
public function destroy($id)
{
//
}
}
?>

View File

View File

View File

162
Modules/Internal/Http/Controllers/Api/ClaimController.php Normal file → Executable file
View File

@@ -13,6 +13,8 @@ use Illuminate\Contracts\Support\Renderable;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller;
use Modules\Internal\Transformers\ClaimShowResource;
use Box\Spout\Reader\Common\Creator\ReaderEntityFactory;
use Box\Spout\Writer\Common\Creator\WriterEntityFactory;
use PDF;
class ClaimController extends Controller
@@ -177,6 +179,7 @@ class ClaimController extends Controller
$order = 1;
$data = [];
$claim->items()->forceDelete();
$totalClaim = 0;
foreach ($request->benefit_items as $benefitItem) {
$benefit = Benefit::find($benefitItem['id']);
if ($benefit) {
@@ -189,10 +192,16 @@ class ClaimController extends Controller
'nominal_dicover' => $benefitItem['biaya_disetujui'] ?? 0,
'nominal_total' => $benefitItem['biaya_disetujui'] ?? 0,
]);
$totalClaim += $benefitItem['biaya_disetujui'];
}
$order++;
}
// Update total
$claim->total_claim = $totalClaim;
$claim->save();
return Helper::responseJson([], message: "Item Claim berhasil di update");
}
@@ -285,4 +294,157 @@ class ClaimController extends Controller
return $view;
}
public function dataClaimReport(Request $request){
$file_name = 'Data Claim Report';
// 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('Worksheet');
$headers_map_to_table_fields = Claim::$listing_doc_headers;
$headerRow = WriterEntityFactory::createRowFromArray($headers_map_to_table_fields);
$writer->addRow($headerRow);
$claims = Claim::with([
'member',
'member.currentPolicy',
'member.currentPlan',
'member.currentCorporate',
'diagnoses' => function ($diagnosis) {
return $diagnosis->where('type', 'primary');
},
'diagnoses.icd',
'plan',
'benefit',
'claimRequest',
'claimRequest.service'
])
// ->latest()
->get()->toArray();
foreach ($claims as $index => $row){
$rowData = [
'', // Count of Usage
$row['code'], // Claim Number
'', // Insurar Code
$row['member']['current_policy']? $row['member']['current_policy']['code'] : '', // Policy no
$row['member']['current_corporate']? $row['member']['current_corporate']['name'] : '', // Corporate Name
$row['member']['current_plan']? $row['member']['current_plan']['code'] : '', // Plan Code
$row['member']['name'], // Member Name
$row['member']['record_type'], // Member Status
$row['member']['birth_date'], // Date of brith
$row['member']['member_id'], // Member Number
$row['member']['current_corporate']? $row['member']['current_corporate']['code'] : '', // Institution Code
'', // Invoice Line Number
$row['status'], // Claim Status
'', // Admission Date
'', // Discharge Date
'', // Date Of Service
'', // Place Of Service
'', // Los
'', // Provider code
'', // Treating Doctor Code
'', // Treating Doctor Name
'', // Doctor Title
$row['diagnoses']?$row['diagnoses'][0]['icd']['name']: '-', // Diagnosis
$row['plan']?$row['plan']['service_code']: '', // Service Code
$row['plan']?$row['plan']['type'] : '', // ServiceType
$row['claim_request'] ? $row['claim_request']['service']['description'] : '', // ServiceDescription
'', // UnitPrice
'', // Quantity
'', // Tarif
'', // Claimable amount
'', // Paid by customer
'', // HD Disc
'', // Doctor Notes
'', // ConsultationID Date
'', // Pharmacy Code
'', // Pharmacy Name
'', // Pharmacy Permit Number
'', // Pharmacy Address
'', // Pharmacy Phone number
'', // Delivery Address
'', // Claimable Status
$row['claim_request'] ? $row['claim_request']['service']['description'] : '', // ServiceDescription, // Benefit Code
];
$row = WriterEntityFactory::createRowFromArray($rowData);
$writer->addRow($row);
}
// $dataClaim = Claim::query
// $dataPlans = Claim::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);
// }
$writer->close();
return Helper::responseJson([
'file_name' => "Data Claim Report " . date('Y-m-d h:i:s'),
"file_url" => url('files/CorporatePlan&BenefitImportData.xlsx')
]);
}
}

View File

View File

@@ -34,6 +34,7 @@ class CorporateBenefitController extends Controller
$benefit = CorporateBenefit::findOrFail($benefit_id);
$benefit->active = $request->active == '1';
$benefit->reason = $request->reason;
if ($benefit->save()) {
return response()->json([

View File

@@ -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;
@@ -81,6 +82,7 @@ class CorporateController extends Controller
$request->validate([
'code' => 'required|regex:/^[a-zA-Z0-9]+$/',
'name' => 'required',
'payor_id' => 'required',
// 'logo' => 'required',
'policy_code' => 'required_with:policy_id',
'policy_total_premi' => 'required_with:policy_code',
@@ -100,6 +102,7 @@ class CorporateController extends Controller
if ($request->has('policy_code') && !empty($request->policy_code)) {
$newCorporate->policies()->create([
'code' => $request->policy_code ?? NULL,
'payor_id' => $request->payor_id ?? NULL,
'total_premi' => $request->policy_total_premi ?? NULL,
'minimal_deposit_percentage' => $request->policy_minimal_deposit_percentage ?? NULL,
'minimal_deposit_net' => $request->policy_minimal_deposit_net ?? NULL,
@@ -301,6 +304,7 @@ class CorporateController extends Controller
{
$request->validate([
'code' => 'required|regex:/^[a-zA-Z0-9]+$/',
'payor_id' => 'required',
'name' => 'required',
'policy_code' => 'required_with:policy_id',
'policy_total_premi' => 'required_with:policy_code',
@@ -327,6 +331,7 @@ class CorporateController extends Controller
['id' => $request->policy_id],
[
'code' => $request->policy_code ?? NULL,
'payor_id' => $request->payor_id ?? NULL,
'total_premi' => $request->policy_total_premi ?? NULL,
'minimal_deposit_percentage' => $request->policy_minimal_deposit_percentage ?? NULL,
'minimal_deposit_net' => $request->policy_minimal_deposit_net ?? NULL,
@@ -455,7 +460,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 +523,191 @@ 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')
]);
}
public function corporateCode(Request $request){
$corporates = Corporate::query()
->when($request->search, function ($query, $search) {
return $query->where('name', 'LIKE', '%' . $search . '%')
->orWhere('code', 'LIKE', '%' . $search . '%');
})
->with('currentPolicy', 'subCorporates')
->withCount([
'employees',
'corporateBenefits',
'corporatePlans',
// 'claims'
])
->where('active', 1)
->get()
->pluck('code');
return $corporates;
}
}

View File

@@ -6,6 +6,7 @@ use App\Exceptions\ImportRowException;
use App\Helpers\Helper;
use App\Http\Resources\MemberDataTableResource;
use App\Models\Corporate;
use App\Models\CorporateEmployee;
use App\Models\Member;
use Box\Spout\Reader\Common\Creator\ReaderEntityFactory;
use Box\Spout\Writer\Common\Creator\WriterEntityFactory;
@@ -45,11 +46,16 @@ class CorporateMemberController extends Controller
// return $claim->used(now()->startOfYear(), now()->endOfYear());
},
'currentPlan',
'currentPlan.benefits'
'currentPlan.benefits' => function ($benefit) use ($corporate_id){
return $benefit->where([
'corporate_benefits.active' => 1,
'corporate_benefits.corporate_id' => $corporate_id,
// 'corporate_benefits.plan_id' => $corporate_id,
]);
}
])
->paginate()
->appends($request->all());
return Helper::paginateResources(MemberDataTableResource::collection($members));
}
@@ -63,6 +69,7 @@ class CorporateMemberController extends Controller
$member = Member::findOrFail($member_id);
$member->active = $request->active == '1';
$member->reason = $request->reason;
if ($member->save()) {
return response()->json([
@@ -179,11 +186,9 @@ class CorporateMemberController extends Controller
$new_member_data[$headers_map_to_table_fields[$doc_headers_indexes[$header_index]]] = $cell->getValue();
}
}
try {
$rowResponse = $this->memberEnrollmentService->handleImportRow($corporate, $new_member_data);
// Write Success Result to File
$singleRow = WriterEntityFactory::createRow($this->memberEnrollmentService->makeResultRowWithResultFormat($rowResponse));
$writer->addRow($singleRow);
@@ -219,7 +224,6 @@ class CorporateMemberController extends Controller
$writer->close();
Storage::delete('temp/' . $file_name);
// throw(404);
return [
'total_success_row' => $imported_member_data,
'total_failed_row' => count($failed_member_data),
@@ -234,21 +238,145 @@ class CorporateMemberController extends Controller
public function generateLog(Request $request, $member_id)
{
$member = Member::findOrFail($member_id)
->load([
'currentPlan',
'currentPolicy',
'currentPlan.corporateBenefits' => function ($benefit) use ($request) {
return $benefit->when($request->benefit_ids, function ($q, $ids) {
return $q->whereIn('benefit_id', $ids);
});
},
'currentPlan.corporateBenefits.benefit']);
$corporate_id = CorporateEmployee::where('member_id', $member_id)->value('corporate_id');
// $member = Member::findOrFail($member_id)
// ->load([
// 'currentPlan',
// 'currentPolicy',
// 'currentPlan.corporateBenefits' => function ($benefit) use ($request) {
// return $benefit->when($request->benefit_ids, function ($q, $ids) {
// $q->whereIn('benefit_id', $ids)
// ->where([
// 'corporate_benefits.active' => 1,
// 'corporate_benefits.corporate_id' => $corporate_id,
// ]);
// });
// },
// // 'currentPlan.corporateBenefits.benefit'
// ]);
$member = Member::with([
'currentPlan',
'currentPolicy',
'currentPlan.corporateBenefits' => function ($query) use ($request, $corporate_id) {
$query->when($request->benefit_ids, function ($q, $ids) use ($corporate_id) {
$q->whereIn('benefit_id', $ids)
->where('active', 1)
->where('corporate_id', $corporate_id);
});
},
// 'currentPlan.corporateBenefits.benefit'
])->findOrFail($member_id);
$dateOfAdmission = $request->date_of_admission ? Carbon::parse($request->date_of_admission) : now();
// return view('pdf.guaranted_leter', compact('member'));
$pdf = PDF::loadView('pdf.guaranted_leter', compact(['member', 'dateOfAdmission']));
return $pdf->download('Guaranted Letter - '.$member->full_name.'.pdf');
}
public function generateMemberList(Request $request, $corporate_id){
// Mendapatkan data yang akan diekspor (misalnya, dari database)
$data = Member::with(['currentPlan', 'currentCorporate', 'division', 'employeds', 'currentPolicy'])
// ->filter($request->all())
// ->where('corporate_id', $corporate_id)
->whereHas('employeds', function ($employeds) use ($corporate_id) {
$employeds->where('corporate_id', $corporate_id);
})->get()->toArray();
// Membuat penulis entitas Spout
$writer = WriterEntityFactory::createXLSXWriter();
// Membuka penulis untuk menulis ke file
$writer->openToFile(public_path('files/CorporateMembershipList.xlsx'));
// Menulis header kolom
$headers_map_to_table_fields = $this->memberEnrollmentService->listing_doc_headers;
$headerRow = WriterEntityFactory::createRowFromArray($headers_map_to_table_fields);
$writer->addRow($headerRow);
// dd('test');
// Menulis data
if (!empty($data)) {
foreach ($data as $item) {
$rowData = [ $item['record_mode'], // Recode Mode
$item['record_type'], // Recode Type
$item['payor_id'], // Payor ID
$item['member_id'], // Member ID
$item['principal_id'], // Mapping ID
NULL, // Link Medis Member ID
$item['current_corporate']['code'] ?? null, // Corporate ID
$item['employeds'][0]['nik'] ?? null, // NIK
$item['division']['code'] ?? null, // Devision
$item['employeds'][0]['branch_code'] ?? null, // Branch Code
$item['bank_info'], // Bank Info
$item['language'], // Language
null, // Type of Work
$item['race'], // Race
$item['current_policy']['code'] ?? null, // Policy Number
$item['marital_status'], // Marital Status
$item['relation_with_principal'], // Relationship
str_replace('-', '',$item['members_effective_date']), // Member effective date
str_replace('-', '',$item['members_expire_date']), // Member expiry date
NULL, // Faskes FKTP (First Level Provider) or Individual preferred provider
NULL, // Faskes FKRTL (Next Level Provider) or Individual group preferred provider
$item['bpjs_class'], // The Right Classes Room of BPJS Participants
NULL, // Name of Faskes
NULL, // Rule BPJSK
NULL, // Internal Use
$item['full_name'], // Member Name
$item['address1'], // Address1
$item['address2'], // Address2
$item['address3'], // Address3
$item['address4'], // Address4
$item['city'], // City
NULL, // State
$item['postal_code'], // Post Code
NULL, // Telephone - Mobile
NULL, // Telephone - Res
NULL, // Telephone - Office
$item['nric'], // NRIC
$item['passport_no'], // Passport No
$item['passport_country'], // Passport Country
$item['email'], // Email
$item['identification_code'], // Identification Code
$item['birth_date'], // Date of Birth
$item['gender_code'], // Sex
NULL, // Internal Use
$item['current_plan']['code'] ?? null, // Plan-ID
NULL, // Employment-Status
NULL, // Internal Use
NULL, // Internal Use
NULL,// Internal Use
str_replace('-', '',$item['terminated_date']), // Date Terminated
$item['pre_existing'], // Pre Existing
$item['bpjs_id'], // BPJS ID
$item['endorsement_date'], // Endorsement Date
$item['remarks'], // Remarks
NULL, // Internal Use
NULL,// Member Since
NULL,// Internal Use
$item['policy_in_force'], // Policy Inforce
NULL, // Member Suspended
str_replace('-', '',$item['activation_date']), // Activation Date
NULL, // Internal Use
$item['start_no_claim'], // StartNoClaim
$item['end_no_claim'], // EndNoClaim
NULL, // Option Mode
];
$row = WriterEntityFactory::createRowFromArray($rowData);
$writer->addRow($row);
}
}
// Menutup penulis
$writer->close();
// dd('test');
// Mengembalikan response untuk mengunduh file
$filePath = public_path('files/CorporateMembershipList.xlsx');
// dd($filePath);
// Mengembalikan response untuk mengunduh file
return Helper::responseJson([
'file_name' => "Corporate Plan & Benefit List " . date('Y-m-d h:i:s'),
"file_url" => url('files/CorporateMembershipList.xlsx')
]);
}
}

View File

@@ -35,6 +35,7 @@ class CorporatePlanController extends Controller
$plan = CorporatePlan::findOrFail($plan_id);
$plan->active = $request->active == '1';
$plan->reason = $request->reason;
if ($plan->save()) {
return response()->json([

View File

@@ -136,6 +136,7 @@ class CorporateServiceController extends Controller
public function corporateServiceUpdate(Request $request, $corporate_id, $service_code)
{
// dd($request->all);
// $corporate = Corporate::findOrFail($corporate_id);
$corporateService = CorporateService::query()
->where('corporate_id', $corporate_id)
@@ -143,7 +144,8 @@ class CorporateServiceController extends Controller
// ->with('configs', 'service')
->first();
$corporateService->fill([
'status' => $request->status == 'active' ? 'active' : 'inactive'
'status' => $request->status == 'active' ? 'active' : 'inactive',
'reason' => $request->reason
]);
$corporateService->save();

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

@@ -13,10 +13,14 @@ class MemberController extends Controller
* Display a listing of the resource.
* @return Renderable
*/
public function index()
public function index(Request $request)
{
return Member::query()
->with('currentPlan')
->when($request->search, function ($query, $search) {
return $query->where('name', 'LIKE', '%' . $search . '%')
->orWhere('member_id', 'LIKE', '%' . $search . '%');
})
->with('currentPlan', 'currentCorporate')
->paginate();
}

View File

View File

View File

View File

View File

View File

View File

@@ -12,6 +12,7 @@ use Illuminate\Routing\Controller;
use Illuminate\Support\Facades\DB;
use Modules\Internal\Transformers\EncounterResource;
class ClaimEncounterController extends Controller
{
/**
@@ -31,6 +32,13 @@ class ClaimEncounterController extends Controller
{
return view('internal::create');
}
public function getAllData()
{
$encounters = Encounter::with('claim.member')->get();
return Helper::responseJson(data: EncounterResource::collection($encounters), message: 'Data berhasil diambil');
}
/**
* Store a newly created resource in storage.
@@ -255,6 +263,22 @@ class ClaimEncounterController extends Controller
}
}
public function x`counters($claim_id)
{
$claim = Claim::findOrFail($claim_id);
$encounters = $claim->encounters()->get();
return response()->json($encounters);
}
public function getEncounterData($encounter_id)
{
$encounter = Encounter::with('claim.member')->findOrFail($encounter_id);
return Helper::responseJson(data: EncounterResource::make($encounter), message: 'Data berhasil diambil');
}
/**
* Remove the specified resource from storage.
* @param int $id

View File