Add Corporate Specialities

This commit is contained in:
2022-08-26 10:31:10 +07:00
parent 6561c98f19
commit be31b6f764
33 changed files with 2078 additions and 320 deletions

View File

@@ -19,8 +19,17 @@ class CorporateFormulariumController extends Controller
public function index(Request $request, $corporate_id)
{
$formulariums = Formularium::query()
->filter($request->all())
->with(['corporateFormulariums' => function ($query) use ($corporate_id) {
->filter($request->all());
if (!empty($request->status) && $request->status == 'inactive') {
$formulariums = $formulariums->whereDoesntHave('corporateFormulariums');
} else if (!empty($request->status) && $request->status == 'all') {
} else {
$formulariums->whereHas('corporateFormulariums', function ($corporateFormularium) use ($corporate_id){
$corporateFormularium->where('corporate_id', $corporate_id);
});
}
$formulariums = $formulariums->with(['corporateFormulariums' => function ($query) use ($corporate_id) {
$query->where('corporate_id', $corporate_id);
}])
->withCount('items')

View File

@@ -3,8 +3,11 @@
namespace Modules\Internal\Http\Controllers\Api;
use App\Helpers\Helper;
use App\Models\Corporate;
use App\Models\CorporateService;
use App\Models\CorporateServiceConfig;
use App\Models\CorporateServiceSpeciality;
use App\Models\Speciality;
use Illuminate\Contracts\Support\Renderable;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller;
@@ -18,7 +21,7 @@ class CorporateServiceController extends Controller
*/
public function index(Request $request, $corporate_id)
{
$services = CorporateService::with('configs', 'service')->where('corporate_id', $corporate_id)->paginate();
$services = CorporateService::with('configs', 'service')->where('corporate_id', $corporate_id)->filter($request->toArray())->paginate();
return Helper::paginateResources(CorporateServiceConfigResource::collection($services));
}
@@ -91,4 +94,69 @@ class CorporateServiceController extends Controller
{
//
}
public function corporateServiceIndex($corporate_id, $service_code)
{
$corporate = Corporate::findOrFail($corporate_id);
$corporateService = CorporateService::query()
->where('corporate_id', $corporate_id)
->where('service_code', $service_code)
->with(['configs', 'service',
'specialities' => function($speciality) {
$speciality->where('status', 'active');
},
'specialities.speciality'])
->first();
// $service = CorporateServiceConfigResource::make($corporateService);
$specialities = Speciality::get();
return response()->json(
[
'corporate' => $corporate,
'service' => CorporateServiceConfigResource::make($corporateService),
'specialities' => $specialities,
]
);
}
public function corporateServiceUpdate(Request $request, $corporate_id, $service_code)
{
// $corporate = Corporate::findOrFail($corporate_id);
$corporateService = CorporateService::query()
->where('corporate_id', $corporate_id)
->where('service_code', $service_code)
// ->with('configs', 'service')
->first();
$corporateService->fill([
'status' => $request->status == 'active' ? 'active' : 'inactive'
]);
$corporateService->save();
return response()->json($corporateService);
}
public function corporateServiceSpecialityUpdate(Request $request, $corporate_id, $service_code)
{
$corporateService = CorporateService::query()
->where('corporate_id', $corporate_id)
->where('service_code', $service_code)
->first();
CorporateServiceSpeciality::updateOrCreate([
'corporate_service_id' => $corporateService->id,
'speciality_id' => $request->speciality_id,
], [
'corporate_service_id' => $corporateService->id,
'speciality_id' => $request->speciality_id,
'status' => $request->status
]);
$selected_specialities = CorporateServiceSpeciality::query()
->where('corporate_service_id', $corporateService->id)
->where('status', 'active')
->with('speciality')
->get()
->pluck('speciality.name', 'speciality.id');
return response()->json($selected_specialities);
}
}