Slicing service dan benefit

This commit is contained in:
2023-10-20 08:51:41 +07:00
parent 031291b1f0
commit a08aa05d1e
33 changed files with 2992 additions and 1537 deletions

View File

@@ -108,18 +108,15 @@ class CorporateBenefitController extends Controller
{
$corporateBenefit = CorporateBenefit::findOrFail($id);
$request->validate([
'code' => [
'budget' => [
'required',
Rule::unique('corporate_plans')->where('corporate_id', $corporate_id)->ignore($corporateBenefit->id)
],
'name' => 'required'
]);
$corporateBenefit->fill([
'code' => $request->code,
'name' => $request->name,
'active' => $request->active,
'budget' => $request->budget,
])->save();
return $corporateBenefit;

View File

@@ -381,13 +381,15 @@ class CorporateController extends Controller
public function activation(Request $request, $corporate_id)
{
$request->validate([
'active' => 'required'
'active' => 'required',
'reason' => 'required'
]);
// abort(404);
$corporate = Corporate::findOrFail($corporate_id);
$corporate->active = $request->active == '1';
$corporate->reason = $request->reason;
if ($corporate->save()) {
return response()->json([

View File

@@ -34,7 +34,7 @@ class CorporatePlanController extends Controller
// abort(404);
$plan = CorporatePlan::findOrFail($plan_id);
$plan->active = $request->active == '1';
$plan->active = $request->active == 1 ? 0 : 1;
$plan->reason = $request->reason;
if ($plan->save()) {
@@ -110,21 +110,21 @@ class CorporatePlanController extends Controller
public function update(Request $request, $corporate_id, $id)
{
$corporatePlan = CorporatePlan::findOrFail($id);
$request->validate([
'code' => [
'required',
Rule::unique('corporate_plans')->where('corporate_id', $corporate_id)->ignore($corporatePlan->id)
// Rule::unique('corporate_plans')->where('corporate_id', $corporate_id)->ignore($corporatePlan->id)
],
'name' => 'required'
]);
$corporatePlan->fill([
'code' => $request->code,
'name' => $request->name,
'active' => $request->active,
'description' => $request->description
'corporate_plan_id' => $request->plan,
'service_code' => $request->service,
'type' => $request->type,
'limit_rules' => $request->limit
])->save();
return $corporatePlan;
}

View File

@@ -144,7 +144,7 @@ class CorporateServiceController extends Controller
// ->with('configs', 'service')
->first();
$corporateService->fill([
'status' => $request->status == 'active' ? 'active' : 'inactive',
'status' => $request->status == 'active' ? 'inactive' : 'active',
'reason' => $request->reason
]);
$corporateService->save();

View File

@@ -0,0 +1,86 @@
<?php
namespace Modules\Internal\Http\Controllers\Api;
use App\Models\Service;
use Illuminate\Contracts\Support\Renderable;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller;
class ServiceController extends Controller
{
/**
* Display a listing of the resource.
* @return Renderable
*/
public function index(Request $request)
{
$service = Service::orderBy('name', 'ASC')->get();
if (empty($service)) {
return response(['message' => 'Tidak ada data'], 404);
} else {
return response(['message' => 'Data ditemukan', "status" => 200, 'data' => $service]);
}
}
/**
* 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)
{
return view('internal::show');
}
/**
* 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

@@ -31,6 +31,7 @@ use Modules\Internal\Http\Controllers\Api\OptionController;
use Modules\Internal\Http\Controllers\Api\OrganizationController;
use Modules\Internal\Http\Controllers\Api\PlanController;
use Modules\Internal\Http\Controllers\Api\ProvinceController;
use Modules\Internal\Http\Controllers\Api\ServiceController;
use Modules\Internal\Http\Controllers\Api\PrescriptionController;
use Modules\Internal\Http\Controllers\Api\SpecialityController;
use Modules\Internal\Http\Controllers\Api\VillageController;
@@ -201,6 +202,7 @@ Route::prefix('internal')->group(function () {
});
Route::get('province', [ProvinceController::class, 'index']);
Route::get('service', [ServiceController::class, 'index']);
Route::get('city', [CityController::class, 'index']);
Route::get('district', [DistrictController::class, 'index']);
Route::get('village', [VillageController::class, 'index']);

View File

@@ -41,38 +41,97 @@ class CorporateServiceConfigResource extends JsonResource
];
$list_msc = $this->corporateServiceSpecialities->map(function ($speciality) {
return explode(',', $speciality->exclusions->first()->rules->where('name', 'msc')->first()->values ?? '');
})->map(function ($item) {
$exclusions = $speciality->exclusions->first();
if ($exclusions) {
$rules = $exclusions->rules->where('name', 'msc')->first();
if ($rules) {
$values = $rules->values ?? '';
$item = explode(',', $values);
} else {
// Handle case where 'rules' with name 'msc' is not found
$item = [];
}
} else {
// Handle case where 'exclusions' is not found
$item = [];
}
return [
'm' => in_array('m', $item),
's' => in_array('s', $item),
'c' => in_array('c', $item),
];
});
$list_gender = $this->corporateServiceSpecialities->map(function ($speciality) {
// dd($speciality->exclusions->first()->rules);
return explode(',', $speciality->exclusions->first()->rules->where('name', 'gender')->first()->values ?? '');
})->map(function ($item) {
$exclusions = $speciality->exclusions->first();
if ($exclusions) {
$rules = $exclusions->rules->where('name', 'gender')->first();
if ($rules) {
$values = $rules->values ?? '';
$item = explode(',', $values);
} else {
// Handle case where 'rules' with name 'gender' is not found
$item = [];
}
} else {
// Handle case where 'exclusions' is not found
$item = [];
}
return [
'male' => in_array('male', $item),
'female' => in_array('female', $item),
];
});
$min_age = $this->corporateServiceSpecialities->map(function ($speciality) {
return $speciality->exclusions->first()->rules->where('name', 'min_age')->first()->values ?? '';
$exclusions = $speciality->exclusions->first();
if ($exclusions) {
$rules = $exclusions->rules->where('name', 'min_age')->first();
if ($rules) {
return $rules->values ?? '';
}
}
return '';
});
$max_age = $this->corporateServiceSpecialities->map(function ($speciality) {
return $speciality->exclusions->first()->rules->where('name', 'max_age')->first()->values ?? '';
$exclusions = $speciality->exclusions->first();
if ($exclusions) {
$rules = $exclusions->rules->where('name', 'max_age')->first();
if ($rules) {
return $rules->values ?? '';
}
}
return '';
});
$plan = $this->corporateServiceSpecialities->map(function ($speciality) {
return $speciality->exclusions->first()->rules->where('name', 'plan')->first()->values ?? null;
$exclusions = $speciality->exclusions->first();
if ($exclusions) {
$rules = $exclusions->rules->where('name', 'plan')->first();
if ($rules) {
return $rules->values ?? null;
}
}
return null;
});
$data['exclusions'] = $data['exclusions']->map(function ($item, $key) use (
$list_msc,
$list_gender,