Add File Import Example Download

This commit is contained in:
R
2023-01-15 11:28:07 +07:00
parent 7ff199a3c1
commit 9087580138
10 changed files with 91 additions and 6 deletions

View File

@@ -3,6 +3,7 @@
namespace Modules\Internal\Http\Controllers\Api; namespace Modules\Internal\Http\Controllers\Api;
use App\Exceptions\ImportRowException; use App\Exceptions\ImportRowException;
use App\Helpers\Helper;
use App\Imports\PlansImport; use App\Imports\PlansImport;
use App\Models\Benefit; use App\Models\Benefit;
use App\Models\Claim; use App\Models\Claim;
@@ -19,7 +20,8 @@ use Illuminate\Routing\Controller;
use Maatwebsite\Excel\Facades\Excel; use Maatwebsite\Excel\Facades\Excel;
use Box\Spout\Reader\Common\Creator\ReaderEntityFactory; use Box\Spout\Reader\Common\Creator\ReaderEntityFactory;
use App\Models\File; use App\Models\File;
use Illuminate\Support\Facades\File as FacadesFile;
use Illuminate\Support\Facades\Response;
use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\Storage;
use Modules\Internal\Services\CorporateService; use Modules\Internal\Services\CorporateService;
@@ -486,4 +488,31 @@ class CorporateController extends Controller
] ]
]; ];
} }
public function importDocumentExample($document_type)
{
switch ($document_type) {
case 'plan-benefit':
return Helper::responseJson([
'file_name' => "Corporate Plan & Benefit Import.xlsx",
"file_url" => url('files/Corporate Plan & Benefit Import.xlsx')
]);
break;
case 'member':
return Helper::responseJson([
'file_name' => "Corporate Membership Import.xlsx",
"file_url" => url('files/Corporate Membership Import.xlsx')
]);
break;
case 'diagnosis-exclusion':
return Helper::responseJson([
'file_name' => "Corporate Exclusion Import.xlsx",
"file_url" => url('files/Corporate Exclusion Import.xlsx')
]);
break;
default:
return Helper::responseJson([], 'error', 404);
break;
}
}
} }

View File

@@ -51,6 +51,7 @@ Route::prefix('internal')->group(function () {
Route::resource('corporates', CorporateController::class); Route::resource('corporates', CorporateController::class);
Route::get('corporates/import-document-example/{document_type}', [CorporateController::class, 'importDocumentExample']);
Route::put('corporates/{corporate_id}/activation', [CorporateController::class, 'activation']); Route::put('corporates/{corporate_id}/activation', [CorporateController::class, 'activation']);
Route::post('corporates/{corporate_id}/import-plan-benefit', [CorporateController::class, 'importPlanBenefit']); Route::post('corporates/{corporate_id}/import-plan-benefit', [CorporateController::class, 'importPlanBenefit']);

View File

@@ -112,7 +112,12 @@ class ClaimService{
// $policy = $member->currentPolicy; // $policy = $member->currentPolicy;
// $corporate = $member->currentCorporate; // $corporate = $member->currentCorporate;
$benefit = $member->currentPlan->benefits()->where('code', $benefit_code)->first(); $benefit = $member->currentPlan->benefits()->where('code', $benefit_code)->first();
$corporateBenefit = $member->currentPlan->corporateBenefits()->where('benefit_id', $benefit->id ?? null)->where('plan_id', $member->currentPlan->id)->active()->first(); $corporateBenefit = $member->currentPlan
->corporateBenefits()
->where('benefit_id', $benefit->id ?? null)
->where('plan_id', $member->currentPlan->id)
->active()
->first();
// dd($benefit->toArray()); // dd($benefit->toArray());
// dd(compact(['plan', 'policy', 'corporate', 'benefit'])); // dd(compact(['plan', 'policy', 'corporate', 'benefit']));

View File

@@ -163,6 +163,19 @@ export default function PlanList() {
enqueueSnackbar('No File Selected', { variant: 'warning' }); enqueueSnackbar('No File Selected', { variant: 'warning' });
} }
}; };
const handleGetTemplate = (type :string) => {
axios.get('corporates/import-document-example/' + type)
.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 ( return (
<div> <div>
@@ -200,7 +213,7 @@ export default function PlanList() {
}} }}
> >
<MenuItem onClick={handleImportButton}>Import</MenuItem> <MenuItem onClick={handleImportButton}>Import</MenuItem>
<MenuItem onClick={handleClose}>Download Template</MenuItem> <MenuItem onClick={() => {handleGetTemplate('plan-benefit')}}>Download Template</MenuItem>
</Menu> </Menu>
</Stack> </Stack>
)} )}

View File

@@ -155,6 +155,18 @@ export default function List(props: any) {
enqueueSnackbar('No File Selected', { variant: 'warning' }); enqueueSnackbar('No File Selected', { variant: 'warning' });
} }
}; };
const handleGetTemplate = (type :string) => {
axios.get('corporates/import-document-example/' + type)
.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 ( return (
<div> <div>
@@ -192,7 +204,7 @@ export default function List(props: any) {
}} }}
> >
<MenuItem onClick={handleImportButton}>Import</MenuItem> <MenuItem onClick={handleImportButton}>Import</MenuItem>
<MenuItem onClick={handleClose}>Download Template</MenuItem> <MenuItem onClick={() => {handleGetTemplate('diagnosis-exclusion')}}>Download Template</MenuItem>
</Menu> </Menu>
</Stack> </Stack>
)} )}

View File

@@ -192,6 +192,19 @@ export default function CorporatePlanList() {
enqueueSnackbar('No File Selected', { variant: 'warning' }); enqueueSnackbar('No File Selected', { variant: 'warning' });
} }
}; };
const handleGetTemplate = (type :string) => {
axios.get('corporates/import-document-example/' + type)
.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 ( return (
<div> <div>
@@ -229,7 +242,7 @@ export default function CorporatePlanList() {
}} }}
> >
<MenuItem onClick={handleImportButton}>Import</MenuItem> <MenuItem onClick={handleImportButton}>Import</MenuItem>
<MenuItem onClick={handleClose}>Download Template</MenuItem> <MenuItem onClick={() => {handleGetTemplate('member')}}>Download Template</MenuItem>
</Menu> </Menu>
</Stack> </Stack>
)} )}

View File

@@ -147,6 +147,18 @@ export default function CorporatePlanList() {
} }
}; };
const handleGetTemplate = (type :string) => {
axios.get('corporates/import-document-example/' + type)
.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 ( return (
<div> <div>
<input <input
@@ -183,7 +195,7 @@ export default function CorporatePlanList() {
}} }}
> >
<MenuItem onClick={handleImportButton}>Import</MenuItem> <MenuItem onClick={handleImportButton}>Import</MenuItem>
<MenuItem onClick={handleClose}>Download Template</MenuItem> <MenuItem onClick={() => {handleGetTemplate('plan-benefit')}}>Download Template</MenuItem>
</Menu> </Menu>
</Stack> </Stack>
)} )}

Binary file not shown.

Binary file not shown.

Binary file not shown.