From 2eb955467d1b714ab91897191398db1aa4aea5b9 Mon Sep 17 00:00:00 2001 From: Dell Date: Wed, 31 Aug 2022 10:48:51 +0700 Subject: [PATCH] Update Corporate Activation --- .../Controllers/Api/CorporateController.php | 23 +++++++++++-- Modules/Internal/Routes/api.php | 1 + .../src/pages/Corporates/Formularium/List.tsx | 4 ++- .../dashboard/src/pages/Corporates/Index.tsx | 33 +++++++++++++++++-- 4 files changed, 55 insertions(+), 6 deletions(-) diff --git a/Modules/Internal/Http/Controllers/Api/CorporateController.php b/Modules/Internal/Http/Controllers/Api/CorporateController.php index 394d5d2b..42e09651 100644 --- a/Modules/Internal/Http/Controllers/Api/CorporateController.php +++ b/Modules/Internal/Http/Controllers/Api/CorporateController.php @@ -27,7 +27,8 @@ class CorporateController extends Controller { $corporates = Corporate::query() ->when($request->search, function ($query, $search) { - return $query->where('name', 'LIKE', '%'.$search.'%'); + return $query->where('name', 'LIKE', '%'.$search.'%') + ->orWhere('code', 'LIKE', '%'.$search.'%'); }) ->with('currentPolicy') ->withCount([ @@ -35,7 +36,7 @@ class CorporateController extends Controller 'corporatePlans', 'corporateBenefits' ]) - ->paginate(2); + ->paginate(10); return $corporates; } @@ -183,6 +184,24 @@ class CorporateController extends Controller // } + public function activation(Request $request, $corporate_id) { + $request->validate([ + 'active' => 'required' + ]); + + // abort(404); + + $corporate = Corporate::findOrFail($corporate_id); + $corporate->active = $request->active == '1'; + + if ($corporate->save()) { + return response()->json([ + 'corporate' => $corporate, + 'message' => 'Status Updated Successfully' + ]); + } + } + public function importPlanBenefit(Request $request, $corporate_id) { $request->validate([ diff --git a/Modules/Internal/Routes/api.php b/Modules/Internal/Routes/api.php index d18f067c..6d3c1b46 100644 --- a/Modules/Internal/Routes/api.php +++ b/Modules/Internal/Routes/api.php @@ -43,6 +43,7 @@ Route::prefix('internal')->group(function () { }); Route::resource('corporates', CorporateController::class); + 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}/corporate-plans', [CorporatePlanController::class, 'index']); diff --git a/frontend/dashboard/src/pages/Corporates/Formularium/List.tsx b/frontend/dashboard/src/pages/Corporates/Formularium/List.tsx index 4785cf97..9f171f66 100644 --- a/frontend/dashboard/src/pages/Corporates/Formularium/List.tsx +++ b/frontend/dashboard/src/pages/Corporates/Formularium/List.tsx @@ -116,6 +116,7 @@ export default function PlanList() { } const handleInactiveAction = (formularium : any) => { + enqueueSnackbar('Fuck yuo'), { variant: 'error' }); axios .put('/corporates/'+corporate_id+'/formulariums/'+formularium.id+'/activate') .then(() => { @@ -135,7 +136,8 @@ export default function PlanList() { }) }) .catch((error) => { - enqueueSnackbar(error.message ?? 'Failed Processing Request', { variant: 'error' }); + console.log(error) + enqueueSnackbar(error.data?.message ?? (error.message ?? 'Failed Processing Request'), { variant: 'error' }); }) } diff --git a/frontend/dashboard/src/pages/Corporates/Index.tsx b/frontend/dashboard/src/pages/Corporates/Index.tsx index c9be9bae..4f13c419 100644 --- a/frontend/dashboard/src/pages/Corporates/Index.tsx +++ b/frontend/dashboard/src/pages/Corporates/Index.tsx @@ -18,6 +18,7 @@ import { LaravelPaginatedData } from '../../@types/paginated-data'; import HeaderBreadcrumbs from '../../components/HeaderBreadcrumbs'; import BasePagination from '../../components/BasePagination'; import { fCurrency } from '../../utils/formatNumber'; +import { enqueueSnackbar } from 'notistack'; export default function Corporates() { const { themeStretch } = useSettings(); @@ -223,7 +224,7 @@ export default function Corporates() { {/* */} - + ); } @@ -234,6 +235,29 @@ export default function Corporates() { const { row } = props; const [open, setOpen] = React.useState(false); + const handleActivate = (model: any, status: string) => { + axios.put(`/corporates/${row.id}/activation`, { + // service_code: service.service_code, + active: status == 'active' + }) + .then((res) => { + setDataTableData({ + ...dataTableData, + data: dataTableData.data.map((model) => { + let updatedModel = model + if (row.id == model.id) { + updatedModel.active = res.data.corporate.active + } + return updatedModel + }) + }) + }) + .catch((error) => { + // console.log('asdasd', error.response.data.message) + enqueueSnackbar(error.response.data.message ?? error.message ?? 'Failed Processing Request', { variant: 'error' }); + }) + } + return ( *': { borderBottom: 'unset' } }}> @@ -248,7 +272,10 @@ export default function Corporates() { {row.code} {row.name} - + + {( row.active == 1 && )} + {( row.active != 1 && )} + @@ -368,7 +395,7 @@ export default function Corporates() { - # + Code Name Status