Update Claim

This commit is contained in:
2023-06-08 11:41:19 +07:00
parent afafed11d5
commit 778d2b5bb5
6 changed files with 222 additions and 13 deletions

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
@@ -285,4 +287,147 @@ 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',
'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'],
$row['code'],
$row['code'],
$row['code'],
$row['code'],
$row['code'],
$row['code'],
$row['code'],
$row['code'],
$row['code'],
$row['code'],
$row['code'],
$row['code'],
$row['code'],
$row['code'],
$row['code'],
$row['code'],
$row['code'],
$row['code'],
$row['code'],
$row['code'],
$row['code'],
$row['code'],
$row['code'],
$row['code'],
$row['code'],
$row['code'],
$row['code'],
$row['code'],
$row['code'],
$row['code'],
$row['code'],
$row['code'],
$row['code'],
$row['code'],
$row['code'],
];
}
// $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')
]);
}
}