Files
Global-Jain/app/Http/Controllers/Backend/SantController.php
2025-11-05 10:37:10 +05:30

255 lines
7.3 KiB
PHP

<?php
namespace App\Http\Controllers\Backend;
use Exception;
use App\Models\Sant;
use App\Models\Thana;
use App\Models\Dharma;
use App\Models\SantTemp;
use App\Models\Sampraday;
use App\Constant\Constant;
use App\Models\ThanaMember;
use Illuminate\Http\Request;
use Illuminate\Http\JsonResponse;
use Illuminate\Support\Facades\Log;
use App\Http\Controllers\BaseController;
use App\Http\Requests\Sant\StoreSantRequest;
use App\Http\Requests\Sant\UpdateSantRequest;
use App\Repositories\Backend\Sant\SantService;
class SantController extends BaseController
{
/**
* @var SantService
*/
protected $santService;
/**
* SantController constructor.
* @param SantService $santService
*/
public function __construct(SantService $santService)
{
$this->santService = $santService;
}
/**
* This function is returning the Datatable columns response
*
* @param Request $request
* @return array|object
*/
public function getSantListing(Request $request)
{
$response = [];
try {
$response = $this->santService->getForDataTable($request->all());
} catch (Exception $ex) {
Log::error($ex->getMessage());
}
return $response;
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
try {
$dharmas = Dharma::pluck('name','id');
$sampradaies = [];
} catch (Exception $ex) {
Log::error($ex->getMessage());
}
return view('backend.sant.list', compact('dharmas', 'sampradaies'));
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
try {
$guruName = Sant::pluck('name','id');
$dharmaName = Dharma::pluck('name','id');
$sampradayName = [];
} catch (Exception $ex) {
Log::error($ex->getMessage());
}
return view('backend.sant.create', compact('guruName', 'dharmaName', 'sampradayName'));
}
/**
* Store a newly created resource in storage.
*
* @param \App\Http\Requests\StoreSantRequest $request
* @return \Illuminate\Http\Response
*/
public function store(StoreSantRequest $request)
{
try {
$response = $this->santService->create($request);
if ($response) {
return redirect(route('admin.sant.index'))
->with('flash_success', __('message.create_sant_success'));
}
} catch (Exception $ex) {
Log::error($ex->getMessage());
}
return redirect()->back()->with('flash_error', __('message.create_sant_error'));
}
/**
* Display the specified resource.
*
* @param \App\Models\Sant $sant
* @return \Illuminate\Http\Response
*/
public function show(Sant $sant)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param \App\Models\Sant $sant
* @return \Illuminate\Http\Response
*/
public function edit(SantTemp $sant)
{
try {
$thanaMembers = [];
$thana = [];
$santLive = Sant::find($sant->sant_id);
$thanaMemberExist = ThanaMember::where('sant_id', $sant->sant_id)->select('thana_id')->first();
if (!empty($thanaMemberExist)) {
$thanaOfSant = $santLive->ownedThana()->first();
$thana = Thana::find($thanaMemberExist->thana_id);
$thanaMembers = $thana->getThanaMember()->with(['dharm', 'sampraday'])->get();
}
$guruName = SantTemp::pluck('name','sant_id');
$dharmaName = Dharma::pluck('name','id');
$sampradayName = Sampraday::pluck('name','id');
$sant = $sant->load(['sampraday', 'createdBy:id,name', 'updatedBy:id,name']);
} catch (Exception $ex) {
Log::error($ex->getMessage());
}
return view('backend.sant.edit', compact('guruName', 'dharmaName', 'sampradayName', 'sant', 'thana', 'thanaMembers', 'santLive'));
}
/**
* Update the specified resource in storage.
*
* @param \App\Http\Requests\UpdateSantRequest $request
* @param \App\Models\Sant $sant
* @return \Illuminate\Http\Response
*/
public function update(UpdateSantRequest $request, SantTemp $sant)
{
try {
$response = $this->santService->update($sant, $request);
if ($response) {
return redirect(route('admin.sant.index'))
->with('flash_success', __('message.update_sant_success'));
}
} catch (Exception $ex) {
Log::error($ex->getMessage());
}
return redirect()->back()->with('flash_error', __('message.update_sant_error'));
}
/**
* Remove the specified resource from storage.
*
* @param \App\Models\Sant $sant
* @return \Illuminate\Http\Response
*/
public function destroy(Sant $sant)
{
//
}
/**
* This function is for the grid checkbox multiple records actions
*
* @param Request $request
* @return JsonResponse
*/
public function gridRecordsAction(Request $request): JsonResponse
{
try {
$actionType = $request->action_type ?? Constant::NULL;
$checkedRecords = $request->checked_records ?? [];
$updateStatus = $this->santService->gridActions($actionType, $checkedRecords);
if ($updateStatus) {
return response()->json(['success' => Constant::STATUS_TRUE, 'message' => __('message.update_sant_success')]);
}
} catch (Exception $ex) {
Log::error($ex->getMessage());
}
return response()->json(['error' => Constant::STATUS_TRUE, 'message' => __('message.something_went_wrong')]);
}
/**
* Import bulk sant data from excel.
*
* @param \App\Http\Requests\Request $request
* @return \Illuminate\Http\Response
*/
public function import(Request $request)
{
try {
$response = $this->santService->importSant($request);
// if ($response) {
return redirect(route('admin.sant.index'))
->with('flash_success', __('message.sant_import_success'));
// }
} catch (Exception $ex) {
Log::error($ex->getMessage());
}
return redirect()->back()->with('flash_error', __('message.something_went_wrong'));
}
/**
* This function is to remove thana memeber
*
* @param \App\Http\Requests\Request $request
* @return \Illuminate\Http\Response
*/
public function removeThanaMember($santID, $thanaID)
{
try {
$response = $this->santService->removeThanaMember($santID, $thanaID);
if ($response) {
return redirect()->back()->with('flash_success', __('message.remove_thana_success'));
}
} catch (Exception $ex) {
Log::error($ex->getMessage());
return redirect()->back()->with('flash_error', __('message.something_went_wrong'));
}
}
}