Update Formularium

This commit is contained in:
ivan-sim
2024-05-15 14:44:14 +07:00
parent 8bcc3fe15d
commit c4cf1bc64e
16 changed files with 1742 additions and 25 deletions

View File

@@ -24,20 +24,41 @@ use Modules\Internal\Services\IcdService;
class FormulariumTemplateController extends Controller
{
public function index(Request $request)
{
if ($request->search){
return FormulariumTemplate::when($request->search ?? null, function($icd, $search) {
$icd->where('name', 'LIKE', '%'.$search.'%')
->orWhere('description', 'LIKE', '%'.$search.'%');
})->paginate(15);
} else {
$diagnosisTemplate = FormulariumTemplate::query()
// ->filter($request->toArray())
->orderBy('name', 'ASC')
->paginate(15);
return $diagnosisTemplate;
{ if($request->corporate_id)
{
if ($request->search){
return FormulariumTemplate::when($request->search ?? null, function($icd, $search) {
$icd->where('name', 'LIKE', '%'.$search.'%')
->orWhere('description', 'LIKE', '%'.$search.'%');
})
->join('corporate_formulariums', 'formularium_templates.id', '=', 'corporate_formulariums.formularium_template_id')
->where('corporate_formulariums.corporate_id', '=', $request->corporate_id)
->paginate(15);
} else {
$diagnosisTemplate = FormulariumTemplate::query()
// ->filter($request->toArray())
->join('corporate_formulariums', 'formularium_templates.id', '=', 'corporate_formulariums.formularium_template_id')
->where('corporate_formulariums.corporate_id', '=', $request->corporate_id)
->orderBy('name', 'ASC')
->paginate(15);
return $diagnosisTemplate;
}
}
else
{
if ($request->search){
return FormulariumTemplate::when($request->search ?? null, function($icd, $search) {
$icd->where('name', 'LIKE', '%'.$search.'%')
->orWhere('description', 'LIKE', '%'.$search.'%');
})->paginate(15);
} else {
$diagnosisTemplate = FormulariumTemplate::query()
// ->filter($request->toArray())
->orderBy('name', 'ASC')
->paginate(15);
return $diagnosisTemplate;
}
}
}
/**
@@ -127,7 +148,7 @@ class FormulariumTemplateController extends Controller
})->limit(10)->get();
}
public function import(Request $request)
public function import(Request $request)
{
$request->validate([
'file' => 'required|file|mimes:xls,xlsx,csv,txt',
@@ -171,7 +192,7 @@ class FormulariumTemplateController extends Controller
6 => 'version',
7 => 'active',
];
foreach ($row->getCells() as $header_index => $cell) {
if (isset($row_map[$header_index])) {
$value = $cell->getValue();
@@ -246,7 +267,7 @@ class FormulariumTemplateController extends Controller
public function activation(Request $request, $id)
{
$request->validate([
'active' => 'required'
]);
@@ -268,20 +289,20 @@ class FormulariumTemplateController extends Controller
// Membuat penulis entitas Spout
$writer = WriterEntityFactory::createXLSXWriter();
// Membuka penulis untuk menulis ke file
$writer->openToFile(public_path('files/CorporateMembershipList.xlsx'));
/** Create a style with the StyleBuilder */
$style = (new StyleBuilder())
->setFontBold()
->build();
// Menulis header kolom
$headers_map_to_table_fields = $this->icdService->listing_doc_headers;
$headerRow = WriterEntityFactory::createRowFromArray($headers_map_to_table_fields, $style);
$writer->addRow($headerRow);
// Menulis data
if (!empty($data)) {
foreach ($data as $item) {
@@ -295,22 +316,22 @@ class FormulariumTemplateController extends Controller
$item['active'] == 1 ? 'Active' : 'Inactive', // Status
$item['type'], // Type
];
$row = WriterEntityFactory::createRowFromArray($rowData);
$writer->addRow($row);
}
}
// Menutup penulis
$writer->close();
// Mengembalikan response untuk mengunduh file
$filePath = public_path('files/CorporateMembershipList.xlsx');
return Helper::responseJson([
'file_name' => "Diagnosis ICD List " . date('Y-m-d h:i:s'),
"file_url" => url('files/CorporateMembershipList.xlsx')
]);
}
}