Merge pull request #80 from witelgroup/feature/CreateUserManagment

Feature/create user managment
This commit is contained in:
Amir Ghasempoor
2025-10-27 14:59:50 +03:30
committed by GitHub
121 changed files with 722 additions and 693 deletions

View File

@@ -17,7 +17,7 @@ use PhpOffice\PhpSpreadsheet\Worksheet\Drawing;
class CountryCartableReport implements FromView, ShouldAutoSize, WithEvents, WithDrawings class CountryCartableReport implements FromView, ShouldAutoSize, WithEvents, WithDrawings
{ {
public function __construct(private Collection $data){} public function __construct(private array $data){}
public function view(): View public function view(): View
{ {

View File

@@ -17,7 +17,7 @@ use PhpOffice\PhpSpreadsheet\Worksheet\Drawing;
class ProvinceCartableReport implements FromView, ShouldAutoSize, WithEvents, WithDrawings class ProvinceCartableReport implements FromView, ShouldAutoSize, WithEvents, WithDrawings
{ {
public function __construct(private Collection $data){} public function __construct(private array $data){}
public function view(): View public function view(): View
{ {

View File

@@ -10,12 +10,13 @@ use Illuminate\Http\Request;
class LogoutController extends Controller class LogoutController extends Controller
{ {
use AuthenticatesUsers; use AuthenticatesUsers;
/** /**
* Handle the incoming request. * Handle the incoming request.
*/ */
public function __invoke(Request $request): JsonResponse public function __invoke(Request $request): JsonResponse
{ {
if($request->session()->exists('last_login')){ if ($request->session()->exists('last_login')) {
$user = auth()->user(); $user = auth()->user();
$user->last_login = $request->session()->get('last_login'); $user->last_login = $request->session()->get('last_login');
$user->save(); $user->save();
@@ -29,7 +30,7 @@ class LogoutController extends Controller
$request->session()->regenerateToken(); $request->session()->regenerateToken();
return response()->json([ return response()->json([
'message' => 'logged out' 'message' => 'logged out',
]); ]);
} }
} }

View File

@@ -3,7 +3,6 @@
namespace App\Http\Controllers\V3; namespace App\Http\Controllers\V3;
use App\Exports\V3\Damage\DamageCartableReport; use App\Exports\V3\Damage\DamageCartableReport;
use App\Facades\DataTable\DataTableFacade;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use App\Http\Requests\V3\Damage\StoreRequest; use App\Http\Requests\V3\Damage\StoreRequest;
use App\Http\Requests\V3\Damage\UpdateRequest; use App\Http\Requests\V3\Damage\UpdateRequest;
@@ -19,22 +18,24 @@ use Symfony\Component\HttpFoundation\BinaryFileResponse;
class DamageManagementController extends Controller class DamageManagementController extends Controller
{ {
use ApiResponse; use ApiResponse;
/** /**
* Display a listing of the resource. * Display a listing of the resource.
*/ */
public function index(Request $request ,DamageService $damageService): JsonResponse public function index(Request $request, DamageService $damageService): JsonResponse
{ {
$data = $damageService->dataTable($request); $data = $damageService->dataTable($request);
return response()->json($data); return response()->json($data);
} }
public function list(): JsonResponse public function list(): JsonResponse
{ {
$damages = Damage::query()->where('status', '=', 1)->get(); $damages = Damage::query()->where('status', '=', 1)->get();
return $this->successResponse($damages); return $this->successResponse($damages);
} }
/** /**
* Store a newly created resource in storage. * Store a newly created resource in storage.
*/ */
@@ -45,7 +46,7 @@ class DamageManagementController extends Controller
'unit' => $request->unit, 'unit' => $request->unit,
'base_price' => $request->base_price, 'base_price' => $request->base_price,
'status' => 1, 'status' => 1,
'update_time' => now() 'update_time' => now(),
]); ]);
return $this->successResponse(); return $this->successResponse();
@@ -55,7 +56,6 @@ class DamageManagementController extends Controller
* Display the specified resource. * Display the specified resource.
*/ */
public function show(Damage $damage): JsonResponse public function show(Damage $damage): JsonResponse
{ {
return $this->successResponse($damage); return $this->successResponse($damage);
} }
@@ -63,14 +63,13 @@ class DamageManagementController extends Controller
/** /**
* Show the form for editing the specified resource. * Show the form for editing the specified resource.
*/ */
public function update(UpdateRequest $request, Damage $damage): JsonResponse public function update(UpdateRequest $request, Damage $damage): JsonResponse
{ {
$damage->update([ $damage->update([
'title' => $request->title, 'title' => $request->title,
'unit' => $request->unit, 'unit' => $request->unit,
'base_price' => $request->base_price, 'base_price' => $request->base_price,
'update_time' => now() 'update_time' => now(),
]); ]);
return $this->successResponse(); return $this->successResponse();
@@ -92,8 +91,9 @@ class DamageManagementController extends Controller
*/ */
public function excel(Request $request, DamageService $damageService): BinaryFileResponse public function excel(Request $request, DamageService $damageService): BinaryFileResponse
{ {
$name = 'آیتم خسارات وارده بر ابنیه فنی' . verta()->now()->format('Y-m-d H-i') . '.xlsx'; $name = 'آیتم خسارات وارده بر ابنیه فنی'.verta()->now()->format('Y-m-d H-i').'.xlsx';
$data = $damageService->datatable($request); $data = $damageService->datatable($request);
return Excel::download(new DamageCartableReport($data['data']), $name); return Excel::download(new DamageCartableReport($data['data']), $name);
} }
} }

View File

@@ -46,8 +46,9 @@ class AccidentReceiptController extends Controller
public function excelReport(Request $request, AccidentReceiptTableService $accidentReceiptTableService): BinaryFileResponse public function excelReport(Request $request, AccidentReceiptTableService $accidentReceiptTableService): BinaryFileResponse
{ {
auth()->user()->addActivityComplete(1126); auth()->user()->addActivityComplete(1126);
$name = 'گزارش از خسارات وارده به ابنیه فنی و تاسیسات راه ' . verta()->now()->format('Y-m-d H-i') . '.xlsx'; $name = 'گزارش از خسارات وارده به ابنیه فنی و تاسیسات راه '.verta()->now()->format('Y-m-d H-i').'.xlsx';
$data = $accidentReceiptTableService->dataTable($request, true); $data = $accidentReceiptTableService->dataTable($request, true);
return Excel::download(new DataTableReport($data['data']), $name); return Excel::download(new DataTableReport($data['data']), $name);
} }
@@ -64,7 +65,7 @@ class AccidentReceiptController extends Controller
$city = City::query()->where('id', '=', $request->city_id)->first(); $city = City::query()->where('id', '=', $request->city_id)->first();
$accidentData = [ $accidentData = [
'is_foreign' => $request->is_foreign, 'is_foreign' => $request->is_foreign,
'province_id' => $province->id, 'province_id' => $province->id,
'province_fa' => $province->name_fa, 'province_fa' => $province->name_fa,
'city_id' => $city->id, 'city_id' => $city->id,
@@ -103,12 +104,12 @@ class AccidentReceiptController extends Controller
$sum += $item['amount']; $sum += $item['amount'];
} }
$ojrate_nasb = $sum/100*20; $ojrate_nasb = $sum / 100 * 20;
$sum += $ojrate_nasb; $sum += $ojrate_nasb;
$accidentData['ojrate_nasb'] = $ojrate_nasb; $accidentData['ojrate_nasb'] = $ojrate_nasb;
$accidentData['sum'] = $sum; $accidentData['sum'] = $sum;
$accidentData['driver_share_amount'] = ($sum * $request->driver_rate)/100; $accidentData['driver_share_amount'] = ($sum * $request->driver_rate) / 100;
$accident = Accident::query()->create($accidentData); $accident = Accident::query()->create($accidentData);
$accident->damage_picture1 = FileFacade::save($request->file('damage_picture1'), "receipts_files/{$accident->id}"); $accident->damage_picture1 = FileFacade::save($request->file('damage_picture1'), "receipts_files/{$accident->id}");
@@ -137,7 +138,7 @@ class AccidentReceiptController extends Controller
$city = City::query()->where('id', '=', $request->city_id)->first(); $city = City::query()->where('id', '=', $request->city_id)->first();
$accidentData = [ $accidentData = [
'is_foreign' => $request->is_foreign, 'is_foreign' => $request->is_foreign,
'province_id' => $province->id, 'province_id' => $province->id,
'province_fa' => $province->name_fa, 'province_fa' => $province->name_fa,
'city_id' => $city->id, 'city_id' => $city->id,
@@ -166,7 +167,9 @@ class AccidentReceiptController extends Controller
} }
if ($request->has('police_file')) { if ($request->has('police_file')) {
if ($accident->police_file) {FileFacade::delete($accident->police_file, true);} if ($accident->police_file) {
FileFacade::delete($accident->police_file, true);
}
$accidentData['police_file'] = FileFacade::save($request->file('police_file'), "receipts_files/{$accident->id}/"); $accidentData['police_file'] = FileFacade::save($request->file('police_file'), "receipts_files/{$accident->id}/");
} }
@@ -193,12 +196,12 @@ class AccidentReceiptController extends Controller
$sum += $item['amount']; $sum += $item['amount'];
} }
$ojrate_nasb = $sum/100*20; $ojrate_nasb = $sum / 100 * 20;
$sum += $ojrate_nasb; $sum += $ojrate_nasb;
$accidentData['ojrate_nasb'] = $ojrate_nasb; $accidentData['ojrate_nasb'] = $ojrate_nasb;
$accidentData['sum'] = $sum; $accidentData['sum'] = $sum;
$accidentData['driver_share_amount'] = ($sum * $request->driver_rate)/100; $accidentData['driver_share_amount'] = ($sum * $request->driver_rate) / 100;
$accident->update($accidentData); $accident->update($accidentData);
@@ -246,7 +249,7 @@ class AccidentReceiptController extends Controller
return $this->successResponse([ return $this->successResponse([
$account_data, $account_data,
$accident->load('damages') $accident->load('damages'),
]); ]);
} }
@@ -254,7 +257,7 @@ class AccidentReceiptController extends Controller
{ {
DB::transaction(function () use ($request, $accident) { DB::transaction(function () use ($request, $accident) {
$final_amount = $accident->driver_share_amount - ($request->deposit_insurance_amount + $request->deposit_daghi_amount); $final_amount = $accident->driver_share_amount - ($request->deposit_insurance_amount + $request->deposit_daghi_amount);
throw_if($final_amount < 0, new ProhibitedAction('مبالغ داغی و بیمه از مبلغ کل بیشتر می باشد.')); throw_if($final_amount < 0, new ProhibitedAction('مبالغ داغی و بیمه از مبلغ کل بیشتر می باشد.'));
@@ -282,13 +285,13 @@ class AccidentReceiptController extends Controller
public function submitInvoice(Accident $accident, PaymentService $paymentService, SubmitInvoiceRequest $request): JsonResponse public function submitInvoice(Accident $accident, PaymentService $paymentService, SubmitInvoiceRequest $request): JsonResponse
{ {
$lock = Cache::lock("accidentPayment-{$accident->id}", 10); $lock = Cache::lock("accidentPayment-{$accident->id}", 10);
throw_if(!$lock->get(), new ProhibitedAction('امکان درخواست مجدد تا 10 ثانیه دیگر وجود ندارد')); throw_if(! $lock->get(), new ProhibitedAction('امکان درخواست مجدد تا 10 ثانیه دیگر وجود ندارد'));
$final_amount = $accident->final_amount; $final_amount = $accident->final_amount;
$bill_code = $paymentService->invoiceBillApi($accident->driver_national_code, $final_amount); $bill_code = $paymentService->invoiceBillApi($accident->driver_national_code, $final_amount);
DB::transaction(function () use ($bill_code, $final_amount, $accident) { DB::transaction(function () use ($bill_code, $accident) {
$accident->update([ $accident->update([
'bill_code' => $bill_code, 'bill_code' => $bill_code,
@@ -312,9 +315,9 @@ class AccidentReceiptController extends Controller
{ {
DB::transaction(function () use ($accident, $paymentService) { DB::transaction(function () use ($accident, $paymentService) {
$response = json_decode($paymentService->callPaymentStatusBillApi(explode("/", $accident->bill_code)[0])); $response = json_decode($paymentService->callPaymentStatusBillApi(explode('/', $accident->bill_code)[0]));
throw_if(!$response->isPayed, new ProhibitedAction('پرداخت انجام نشده است')); throw_if(! $response->isPayed, new ProhibitedAction('پرداخت انجام نشده است'));
$accident->update([ $accident->update([
'status' => AccidentStates::PARDAKHT_FACTOR->value, 'status' => AccidentStates::PARDAKHT_FACTOR->value,
@@ -327,9 +330,9 @@ class AccidentReceiptController extends Controller
return $this->successResponse($accident); return $this->successResponse($accident);
} }
public function generatePoliceDocument(Request $request, Accident $accident): JsonResponse public function generatePoliceDocument(Accident $accident): JsonResponse
{ {
DB::transaction(function () use ($request, $accident) { DB::transaction(function () use ($accident) {
$accident->update([ $accident->update([
'status' => AccidentStates::SODOR_NAME_POLICE_RAH->value, 'status' => AccidentStates::SODOR_NAME_POLICE_RAH->value,

View File

@@ -22,6 +22,7 @@ class AccidentReceiptReportController extends Controller
public function countryReport(Request $request, AccidentReceiptTableService $accidentReceiptTableService): JsonResponse public function countryReport(Request $request, AccidentReceiptTableService $accidentReceiptTableService): JsonResponse
{ {
$data = $accidentReceiptTableService->countryReport($request); $data = $accidentReceiptTableService->countryReport($request);
return $this->successResponse([ return $this->successResponse([
'activities' => $data['data'], 'activities' => $data['data'],
'provinces' => Province::all(['id', 'name_fa']), 'provinces' => Province::all(['id', 'name_fa']),
@@ -31,6 +32,7 @@ class AccidentReceiptReportController extends Controller
public function provinceReport(Request $request, AccidentReceiptTableService $accidentReceiptTableService): JsonResponse public function provinceReport(Request $request, AccidentReceiptTableService $accidentReceiptTableService): JsonResponse
{ {
$data = $accidentReceiptTableService->provinceReport($request); $data = $accidentReceiptTableService->provinceReport($request);
return $this->successResponse([ return $this->successResponse([
'activities' => $data['data'], 'activities' => $data['data'],
'cities' => City::query()->where('province_id', '=', $request->province_id) 'cities' => City::query()->where('province_id', '=', $request->province_id)
@@ -46,7 +48,8 @@ class AccidentReceiptReportController extends Controller
public function countryExcelReport(Request $request, AccidentReceiptTableService $accidentReceiptTableService): BinaryFileResponse public function countryExcelReport(Request $request, AccidentReceiptTableService $accidentReceiptTableService): BinaryFileResponse
{ {
$data = $accidentReceiptTableService->countryReport($request); $data = $accidentReceiptTableService->countryReport($request);
$name = 'گزارش از خسارات وارده به ابنیه فنی و تاسیسات راه ' . verta()->now()->format('Y-m-d H-i') . '.xlsx'; $name = 'گزارش از خسارات وارده به ابنیه فنی و تاسیسات راه '.verta()->now()->format('Y-m-d H-i').'.xlsx';
return Excel::download(new CountryReport($data), $name); return Excel::download(new CountryReport($data), $name);
} }
@@ -57,7 +60,8 @@ class AccidentReceiptReportController extends Controller
public function provinceExcelReport(Request $request, AccidentReceiptTableService $accidentReceiptTableService): BinaryFileResponse public function provinceExcelReport(Request $request, AccidentReceiptTableService $accidentReceiptTableService): BinaryFileResponse
{ {
$data = $accidentReceiptTableService->provinceReport($request); $data = $accidentReceiptTableService->provinceReport($request);
$name = 'گزارش از خسارات وارده به ابنیه فنی و تاسیسات راه ' . verta()->now()->format('Y-m-d H-i') . '.xlsx'; $name = 'گزارش از خسارات وارده به ابنیه فنی و تاسیسات راه '.verta()->now()->format('Y-m-d H-i').'.xlsx';
return Excel::download(new ProvinceReport([ return Excel::download(new ProvinceReport([
'report' => $data, 'report' => $data,
'cities' => City::query()->where('province_id', '=', $request->province_id) 'cities' => City::query()->where('province_id', '=', $request->province_id)

View File

@@ -17,12 +17,13 @@ use Illuminate\Http\Request;
class AzmayeshController extends Controller class AzmayeshController extends Controller
{ {
use ApiResponse; use ApiResponse;
/** /**
* Display a listing of the resource. * Display a listing of the resource.
*/ */
public function index(Request $request): JsonResponse public function index(Request $request): JsonResponse
{ {
$columns = array( $columns = [
'id', 'id',
'request_date', 'request_date',
'report_date', 'report_date',
@@ -37,8 +38,8 @@ class AzmayeshController extends Controller
'updated_at', 'updated_at',
'created_at', 'created_at',
'user_name', 'user_name',
'contract_subitem_id' 'contract_subitem_id',
); ];
$allowedFilters = $columns; $allowedFilters = $columns;
$allowedSortings = $columns; $allowedSortings = $columns;
@@ -81,7 +82,7 @@ class AzmayeshController extends Controller
'province_name' => $province->name_fa, 'province_name' => $province->name_fa,
'user_id' => $user->id, 'user_id' => $user->id,
'user_name' => $user->name, 'user_name' => $user->name,
'contract_subitem_id' => $request->contract_subitem_id 'contract_subitem_id' => $request->contract_subitem_id,
]); ]);
$user->addActivityComplete(1158); $user->addActivityComplete(1158);
@@ -121,7 +122,7 @@ class AzmayeshController extends Controller
'applicant' => $request->applicant ?? '-', 'applicant' => $request->applicant ?? '-',
'province_id' => $province->id, 'province_id' => $province->id,
'province_name' => $province->name_fa, 'province_name' => $province->name_fa,
'contract_subitem_id' => $request->contract_subitem_id 'contract_subitem_id' => $request->contract_subitem_id,
]); ]);
auth()->user()->addActivityComplete(1159); auth()->user()->addActivityComplete(1159);
@@ -140,8 +141,7 @@ class AzmayeshController extends Controller
auth()->user()->addActivityComplete(1160); auth()->user()->addActivityComplete(1160);
return $this->successResponse(); return $this->successResponse();
} } catch (QueryException $exception) {
catch (QueryException $exception) {
return $this->errorResponse('امکان حذف وجود ندارد'); return $this->errorResponse('امکان حذف وجود ندارد');
} }
} }

View File

@@ -15,14 +15,15 @@ use Illuminate\Http\Request;
class AzmayeshSampleController extends Controller class AzmayeshSampleController extends Controller
{ {
use ApiResponse; use ApiResponse;
/** /**
* Display a listing of the resource. * Display a listing of the resource.
*/ */
public function index(Request $request, string $azmayesh_id): JsonResponse public function index(Request $request, string $azmayesh_id): JsonResponse
{ {
$columns = array( $columns = [
'id', 'updated_at', 'created_at' 'id', 'updated_at', 'created_at',
); ];
$allowedFilters = $columns; $allowedFilters = $columns;
$allowedSortings = $columns; $allowedSortings = $columns;

View File

@@ -20,9 +20,9 @@ class AzmayeshTypeController extends Controller
public function index(Request $request): JsonResponse public function index(Request $request): JsonResponse
{ {
$columns = array( $columns = [
'id', 'name', 'updated_at', 'created_at' 'id', 'name', 'updated_at', 'created_at',
); ];
$allowedFilters = $columns; $allowedFilters = $columns;
$allowedSortings = $columns; $allowedSortings = $columns;
@@ -52,16 +52,14 @@ class AzmayeshTypeController extends Controller
public function store(StoreRequest $request): JsonResponse public function store(StoreRequest $request): JsonResponse
{ {
DB::transaction(function () use ($request) DB::transaction(function () use ($request) {
{
$azmayeshType = AzmayeshType::query()->create([ $azmayeshType = AzmayeshType::query()->create([
'name' => $request->name 'name' => $request->name,
]); ]);
$fieldsID = []; $fieldsID = [];
foreach ($request->fields as $field) foreach ($request->fields as $field) {
{
$azmayeshField = AzmayeshField::query()->firstOrCreate($field, $field); $azmayeshField = AzmayeshField::query()->firstOrCreate($field, $field);
$fieldsID[] = $azmayeshField->id; $fieldsID[] = $azmayeshField->id;
} }
@@ -87,16 +85,14 @@ class AzmayeshTypeController extends Controller
*/ */
public function update(UpdateRequest $request, AzmayeshType $azmayeshType): JsonResponse public function update(UpdateRequest $request, AzmayeshType $azmayeshType): JsonResponse
{ {
DB::transaction(function () use ($request, $azmayeshType) DB::transaction(function () use ($request, $azmayeshType) {
{
$azmayeshType->update([ $azmayeshType->update([
'name' => $request->name 'name' => $request->name,
]); ]);
$fieldsID = []; $fieldsID = [];
foreach ($request->fields as $field) foreach ($request->fields as $field) {
{
$azmayeshField = AzmayeshField::query()->updateOrCreate($field, $field); $azmayeshField = AzmayeshField::query()->updateOrCreate($field, $field);
$fieldsID[] = $azmayeshField->id; $fieldsID[] = $azmayeshField->id;
} }
@@ -120,8 +116,7 @@ class AzmayeshTypeController extends Controller
auth()->user()->addActivityComplete(1164); auth()->user()->addActivityComplete(1164);
return $this->successResponse(); return $this->successResponse();
} } catch (QueryException $exception) {
catch (QueryException $exception) {
return $this->errorResponse('امکان حذف وجود ندارد. ابتدا آزمایش های مرتبط با این نوع را حذف نمایید'); return $this->errorResponse('امکان حذف وجود ندارد. ابتدا آزمایش های مرتبط با این نوع را حذف نمایید');
} }
} }

View File

@@ -2,7 +2,6 @@
namespace App\Http\Controllers\V3\Dashboard\Harim; namespace App\Http\Controllers\V3\Dashboard\Harim;
use App\Facades\DataTable\DataTableFacade;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use App\Http\Traits\ApiResponse; use App\Http\Traits\ApiResponse;
use App\Models\HarimState; use App\Models\HarimState;

View File

@@ -11,10 +11,10 @@ use App\Events\V3\Dashboard\Harim\ConfirmRoadAccessNeedEvent;
use App\Events\V3\Dashboard\Harim\RejectRequestEvent; use App\Events\V3\Dashboard\Harim\RejectRequestEvent;
use App\Facades\DataTable\DataTableFacade; use App\Facades\DataTable\DataTableFacade;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use App\Http\Requests\V3\Dashboard\Harim\GeneralManager\ConfirmRoadAccessEditNeedRequest;
use App\Http\Requests\V3\Dashboard\Harim\GeneralManager\ConfirmRoadAccessNeedRequest;
use App\Http\Requests\V3\Dashboard\Harim\GeneralManager\ConfirmGuaranteeLetterNeedRequest; use App\Http\Requests\V3\Dashboard\Harim\GeneralManager\ConfirmGuaranteeLetterNeedRequest;
use App\Http\Requests\V3\Dashboard\Harim\GeneralManager\ConfirmNoRoadAccessNeedRequest; use App\Http\Requests\V3\Dashboard\Harim\GeneralManager\ConfirmNoRoadAccessNeedRequest;
use App\Http\Requests\V3\Dashboard\Harim\GeneralManager\ConfirmRoadAccessEditNeedRequest;
use App\Http\Requests\V3\Dashboard\Harim\GeneralManager\ConfirmRoadAccessNeedRequest;
use App\Http\Requests\V3\Dashboard\Harim\GeneralManager\ReferFileRequest; use App\Http\Requests\V3\Dashboard\Harim\GeneralManager\ReferFileRequest;
use App\Http\Requests\V3\Dashboard\Harim\GeneralManager\ReferRequest; use App\Http\Requests\V3\Dashboard\Harim\GeneralManager\ReferRequest;
use App\Http\Requests\V3\Dashboard\Harim\GeneralManager\RejectRequest; use App\Http\Requests\V3\Dashboard\Harim\GeneralManager\RejectRequest;
@@ -34,7 +34,7 @@ class GeneralManagerController extends Controller
$query = Harim::query() $query = Harim::query()
->where('province_id', '=', auth()->user()->province_id); ->where('province_id', '=', auth()->user()->province_id);
$data = DataTableFacade::run( $data = DataTableFacade::run(
$query, $query,
$request, $request,
allowedFilters: ['*'], allowedFilters: ['*'],
@@ -46,8 +46,7 @@ class GeneralManagerController extends Controller
public function rejectRequest(RejectRequest $request, Harim $harim): JsonResponse public function rejectRequest(RejectRequest $request, Harim $harim): JsonResponse
{ {
DB::transaction(function () use ($request, $harim) DB::transaction(function () use ($request, $harim) {
{
$action = HarimAction::CONFIRM->value; $action = HarimAction::CONFIRM->value;
$harim->histories()->create([ $harim->histories()->create([
@@ -74,12 +73,11 @@ class GeneralManagerController extends Controller
public function referRequest(ReferRequest $request, Harim $harim): JsonResponse public function referRequest(ReferRequest $request, Harim $harim): JsonResponse
{ {
DB::transaction(function () use ($request, $harim) DB::transaction(function () use ($request, $harim) {
{
$action = HarimAction::REFER->value; $action = HarimAction::REFER->value;
$harim->histories()->create([ $harim->histories()->create([
'expert_id'=> auth()->user()->id, 'expert_id' => auth()->user()->id,
'previous-state_id' => $harim->state_id, 'previous-state_id' => $harim->state_id,
'previous_state_name' => $harim->state_name, 'previous_state_name' => $harim->state_name,
'export_description' => $request->export_description, 'export_description' => $request->export_description,
@@ -100,12 +98,11 @@ class GeneralManagerController extends Controller
public function referFile(ReferFileRequest $request, Harim $harim): JsonResponse public function referFile(ReferFileRequest $request, Harim $harim): JsonResponse
{ {
DB::transaction(function () use ($request, $harim) DB::transaction(function () use ($request, $harim) {
{
$action = HarimAction::REFER->value; $action = HarimAction::REFER->value;
$harim->histories()->create([ $harim->histories()->create([
'expert_id'=> auth()->user()->id, 'expert_id' => auth()->user()->id,
'previous-state_id' => $harim->state_id, 'previous-state_id' => $harim->state_id,
'previous_state_name' => $harim->state_name, 'previous_state_name' => $harim->state_name,
'export_description' => $request->export_description, 'export_description' => $request->export_description,
@@ -126,8 +123,7 @@ class GeneralManagerController extends Controller
public function confirmRoadAccessNeed(ConfirmRoadAccessNeedRequest $request, Harim $harim): JsonResponse public function confirmRoadAccessNeed(ConfirmRoadAccessNeedRequest $request, Harim $harim): JsonResponse
{ {
DB::transaction(function () use ($request, $harim) DB::transaction(function () use ($request, $harim) {
{
$action = HarimAction::CONFIRM->value; $action = HarimAction::CONFIRM->value;
$harim->histories()->create([ $harim->histories()->create([
@@ -154,8 +150,7 @@ class GeneralManagerController extends Controller
public function confirmNoRoadAccessNeed(ConfirmNoRoadAccessNeedRequest $request, Harim $harim): JsonResponse public function confirmNoRoadAccessNeed(ConfirmNoRoadAccessNeedRequest $request, Harim $harim): JsonResponse
{ {
DB::transaction(function () use ($request, $harim) DB::transaction(function () use ($request, $harim) {
{
$action = HarimAction::CONFIRM->value; $action = HarimAction::CONFIRM->value;
$harim->histories()->create([ $harim->histories()->create([
@@ -183,8 +178,7 @@ class GeneralManagerController extends Controller
public function confirmRoadAccessEditNeed(ConfirmRoadAccessEditNeedRequest $request, Harim $harim): JsonResponse public function confirmRoadAccessEditNeed(ConfirmRoadAccessEditNeedRequest $request, Harim $harim): JsonResponse
{ {
DB::transaction(function () use ($request, $harim) DB::transaction(function () use ($request, $harim) {
{
$action = HarimAction::CONFIRM->value; $action = HarimAction::CONFIRM->value;
$harim->histories()->create([ $harim->histories()->create([
@@ -211,8 +205,7 @@ class GeneralManagerController extends Controller
public function confirmGuaranteeLetterNeed(ConfirmGuaranteeLetterNeedRequest $request, Harim $harim): JsonResponse public function confirmGuaranteeLetterNeed(ConfirmGuaranteeLetterNeedRequest $request, Harim $harim): JsonResponse
{ {
DB::transaction(function () use ($request, $harim) DB::transaction(function () use ($request, $harim) {
{
$action = HarimAction::CONFIRM->value; $action = HarimAction::CONFIRM->value;
$harim->histories()->create([ $harim->histories()->create([

View File

@@ -6,12 +6,12 @@ use App\Enums\HarimAction;
use App\Enums\HarimStates; use App\Enums\HarimStates;
use App\Facades\DataTable\DataTableFacade; use App\Facades\DataTable\DataTableFacade;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use App\Http\Requests\V3\Dashboard\Harim\HarimOffice\FileRejectedRequest;
use App\Http\Requests\V3\Dashboard\Harim\HarimOffice\FileAcceptedRequest; use App\Http\Requests\V3\Dashboard\Harim\HarimOffice\FileAcceptedRequest;
use App\Http\Requests\V3\Dashboard\Harim\HarimOffice\FileRejectedRequest;
use App\Http\Requests\V3\Dashboard\Harim\HarimOffice\NeedRoadAccessRequest;
use App\Http\Requests\V3\Dashboard\Harim\HarimOffice\ReferRequest; use App\Http\Requests\V3\Dashboard\Harim\HarimOffice\ReferRequest;
use App\Http\Requests\V3\Dashboard\Harim\HarimOffice\RejectRequest; use App\Http\Requests\V3\Dashboard\Harim\HarimOffice\RejectRequest;
use App\Http\Requests\V3\Dashboard\Harim\HarimOffice\ShowRequest; use App\Http\Requests\V3\Dashboard\Harim\HarimOffice\ShowRequest;
use App\Http\Requests\V3\Dashboard\Harim\HarimOffice\NeedRoadAccessRequest;
use App\Http\Requests\V3\Dashboard\Harim\HarimOffice\WithoutRoadAccessRequest; use App\Http\Requests\V3\Dashboard\Harim\HarimOffice\WithoutRoadAccessRequest;
use App\Http\Traits\ApiResponse; use App\Http\Traits\ApiResponse;
use App\Models\Harim; use App\Models\Harim;
@@ -22,7 +22,7 @@ use Illuminate\Support\Facades\DB;
class HarimOfficeController extends Controller class HarimOfficeController extends Controller
{ {
use ApiResponse ; use ApiResponse;
public function index(Request $request): JsonResponse public function index(Request $request): JsonResponse
{ {
@@ -39,7 +39,6 @@ class HarimOfficeController extends Controller
return response()->json($data); return response()->json($data);
} }
public function rejectRequest(RejectRequest $request, Harim $harim): JsonResponse public function rejectRequest(RejectRequest $request, Harim $harim): JsonResponse
{ {
DB::transaction(function () use ($request, $harim) { DB::transaction(function () use ($request, $harim) {
@@ -67,7 +66,7 @@ class HarimOfficeController extends Controller
public function referRequest(ReferRequest $request, Harim $harim): JsonResponse public function referRequest(ReferRequest $request, Harim $harim): JsonResponse
{ {
DB::transaction(function () use ($request,$harim) { DB::transaction(function () use ($request, $harim) {
$action = HarimAction::REFER->value; $action = HarimAction::REFER->value;
$harim->histories()->create([ $harim->histories()->create([
@@ -75,7 +74,7 @@ class HarimOfficeController extends Controller
'previous_state_id' => $harim->state_id, 'previous_state_id' => $harim->state_id,
'previous_state_name' => $harim->state_name, 'previous_state_name' => $harim->state_name,
'expert_description' => $request->expert_description, 'expert_description' => $request->expert_description,
'action_id' => $action, 'action_id' => $action,
'action_name' => HarimAction::name($action), 'action_name' => HarimAction::name($action),
]); ]);
@@ -92,7 +91,7 @@ class HarimOfficeController extends Controller
public function needRoadAccess(NeedRoadAccessRequest $request, Harim $harim): JsonResponse public function needRoadAccess(NeedRoadAccessRequest $request, Harim $harim): JsonResponse
{ {
DB::transaction(function () use ($request,$harim) { DB::transaction(function () use ($request, $harim) {
$action = HarimAction::YES->value; $action = HarimAction::YES->value;
$harim->histories()->create([ $harim->histories()->create([
'expert_id' => auth()->user()->id, 'expert_id' => auth()->user()->id,
@@ -105,12 +104,12 @@ class HarimOfficeController extends Controller
$state = HarimStates::BARESI_TAVASOT_MOAVEN->value; $state = HarimStates::BARESI_TAVASOT_MOAVEN->value;
$harim ->update([ $harim->update([
'state_id' => $state, 'state_id' => $state,
'state_name' => HarimStates::name($state), 'state_name' => HarimStates::name($state),
'is_possible' => true, 'is_possible' => true,
'need_access_road' => true, 'need_access_road' => true,
'need_payment' => $request->need_payment 'need_payment' => $request->need_payment,
]); ]);
}); });
@@ -119,7 +118,7 @@ class HarimOfficeController extends Controller
public function withoutRoadAccess(WithoutRoadAccessRequest $request, Harim $harim): JsonResponse public function withoutRoadAccess(WithoutRoadAccessRequest $request, Harim $harim): JsonResponse
{ {
DB::transaction(function () use ($request,$harim) { DB::transaction(function () use ($request, $harim) {
$action = HarimAction::YES->value; $action = HarimAction::YES->value;
$harim->histories()->create([ $harim->histories()->create([
'expert_id' => auth()->user()->id, 'expert_id' => auth()->user()->id,
@@ -132,20 +131,21 @@ class HarimOfficeController extends Controller
$state = HarimStates::BARESI_TAVASOT_MOAVEN->value; $state = HarimStates::BARESI_TAVASOT_MOAVEN->value;
$harim ->update([ $harim->update([
'state_id' => $state, 'state_id' => $state,
'state_name' => HarimStates::name($state), 'state_name' => HarimStates::name($state),
'is_possible' => true, 'is_possible' => true,
'need_access_road' => false, 'need_access_road' => false,
'need_payment' => $request->need_payment 'need_payment' => $request->need_payment,
]); ]);
}); });
return $this->successResponse(); return $this->successResponse();
} }
public function fileAccepted(FileAcceptedRequest $request, Harim $harim): JsonResponse public function fileAccepted(FileAcceptedRequest $request, Harim $harim): JsonResponse
{ {
DB::transaction(function () use ($request,$harim) { DB::transaction(function () use ($request, $harim) {
$action = HarimAction::YES->value; $action = HarimAction::YES->value;
$harim->histories()->create([ $harim->histories()->create([
'expert_id' => auth()->user()->id, 'expert_id' => auth()->user()->id,
@@ -158,7 +158,7 @@ class HarimOfficeController extends Controller
$state = HarimStates::BARESI_FILE_APLODE_SHODE_TAVASOTE_MOAVEN->value; $state = HarimStates::BARESI_FILE_APLODE_SHODE_TAVASOTE_MOAVEN->value;
$harim ->update([ $harim->update([
'state_id' => $state, 'state_id' => $state,
'state_name' => HarimStates::name($state), 'state_name' => HarimStates::name($state),
'access_road_allowed' => true, 'access_road_allowed' => true,
@@ -167,9 +167,10 @@ class HarimOfficeController extends Controller
return $this->successResponse(); return $this->successResponse();
} }
public function fileRejected(FileRejectedRequest $request, Harim $harim): JsonResponse public function fileRejected(FileRejectedRequest $request, Harim $harim): JsonResponse
{ {
DB::transaction(function () use ($request,$harim) { DB::transaction(function () use ($request, $harim) {
$action = HarimAction::NO->value; $action = HarimAction::NO->value;
$harim->histories()->create([ $harim->histories()->create([
'expert_id' => auth()->user()->id, 'expert_id' => auth()->user()->id,
@@ -182,7 +183,7 @@ class HarimOfficeController extends Controller
$state = HarimStates::BARESI_FILE_APLODE_SHODE_TAVASOTE_MOAVEN->value; $state = HarimStates::BARESI_FILE_APLODE_SHODE_TAVASOTE_MOAVEN->value;
$harim ->update([ $harim->update([
'state_id' => $state, 'state_id' => $state,
'state_name' => HarimStates::name($state), 'state_name' => HarimStates::name($state),
'access_road_allowed' => false, 'access_road_allowed' => false,
@@ -191,6 +192,7 @@ class HarimOfficeController extends Controller
return $this->successResponse(); return $this->successResponse();
} }
public function show(ShowRequest $request, Harim $harim): JsonResponse public function show(ShowRequest $request, Harim $harim): JsonResponse
{ {
return $this->successResponse($harim->load('histories')); return $this->successResponse($harim->load('histories'));

View File

@@ -21,8 +21,8 @@ class PanjareVahedController extends Controller
public function receiveNewRequest(ReceiveNewRequest $request): JsonResponse public function receiveNewRequest(ReceiveNewRequest $request): JsonResponse
{ {
$wkt = 'POLYGON((' . implode(',', array_map(fn($c) => "{$c[0]} {$c[1]}", $request->primary_area['coordinates'])) . '))'; $wkt = 'POLYGON(('.implode(',', array_map(fn ($c) => "{$c[0]} {$c[1]}", $request->primary_area['coordinates'])).'))';
$result = DB::selectOne("SELECT ST_AsText(ST_PointOnSurface(ST_GeomFromText(?, 4326))) AS point", [$wkt]); $result = DB::selectOne('SELECT ST_AsText(ST_PointOnSurface(ST_GeomFromText(?, 4326))) AS point', [$wkt]);
preg_match('/POINT\(([^ ]+) ([^ ]+)\)/', $result->point, $matches); preg_match('/POINT\(([^ ]+) ([^ ]+)\)/', $result->point, $matches);
try { try {
@@ -32,8 +32,7 @@ class PanjareVahedController extends Controller
ST_GeomFromText('POINT($matches[1] $matches[2])', 4326))" ST_GeomFromText('POINT($matches[1] $matches[2])', 4326))"
) )
->firstOrFail(['id', 'name_fa', 'province_id']); ->firstOrFail(['id', 'name_fa', 'province_id']);
} } catch (ModelNotFoundException $exception) {
catch (ModelNotFoundException $exception){
$city = City::query() $city = City::query()
->orderByRaw("ST_Distance( ->orderByRaw("ST_Distance(
geometry, geometry,
@@ -126,7 +125,6 @@ class PanjareVahedController extends Controller
$harim = Harim::query()->firstWhere('panjare_vahed_id', '=', $request->request_id); $harim = Harim::query()->firstWhere('panjare_vahed_id', '=', $request->request_id);
$harim->update([ $harim->update([
'state_id' => $state, 'state_id' => $state,
'state_name' => HarimStates::name($state), 'state_name' => HarimStates::name($state),

View File

@@ -30,12 +30,14 @@ class ProvinceOfficeController extends Controller
allowedFilters: ['*'], allowedFilters: ['*'],
allowedSortings: ['*'], allowedSortings: ['*'],
); );
return response()->json($data); return response()->json($data);
} }
public function feedback(FeedBackRequest $request, Harim $harim): JsonResponse public function feedback(FeedBackRequest $request, Harim $harim): JsonResponse
{ {
DB::transaction(function () use ($request,$harim) { DB::transaction(function () use ($request, $harim) {
$action = HarimAction::FEEDBACK->value; $action = HarimAction::FEEDBACK->value;
$harim->histories()->create([ $harim->histories()->create([
@@ -49,12 +51,13 @@ class ProvinceOfficeController extends Controller
$state = HarimStates::BARESI_TAVASOT_DAFTAR_HARIM->value; $state = HarimStates::BARESI_TAVASOT_DAFTAR_HARIM->value;
$harim ->update([ $harim->update([
'state_id' => $state, 'state_id' => $state,
'state_name' => HarimStates::name($state), 'state_name' => HarimStates::name($state),
'forbidden_area' => $request->input('forbidden_area'), 'forbidden_area' => $request->input('forbidden_area'),
]); ]);
}); });
return $this->successResponse(); return $this->successResponse();
} }

View File

@@ -20,23 +20,25 @@ use Illuminate\Support\Facades\DB;
class TechnicalDeputyController extends Controller class TechnicalDeputyController extends Controller
{ {
use ApiResponse; use ApiResponse;
public function index(Request $request): JsonResponse public function index(Request $request): JsonResponse
{ {
$query = Harim::query() $query = Harim::query()
->where('province_id', '=', auth()->user()->province_id); ->where('province_id', '=', auth()->user()->province_id);
$data = DataTableFacade::run( $data = DataTableFacade::run(
$query, $query,
$request, $request,
allowedFilters: ['*'], allowedFilters: ['*'],
allowedSortings: ['*'], allowedSortings: ['*'],
); );
return response()->json($data); return response()->json($data);
} }
public function confirmRequest(ConfirmRequest $request, Harim $harim): JsonResponse public function confirmRequest(ConfirmRequest $request, Harim $harim): JsonResponse
{ {
DB::transaction(function () use ($request,$harim) { DB::transaction(function () use ($request, $harim) {
$action = HarimAction::CONFIRM->value; $action = HarimAction::CONFIRM->value;
$harim->histories()->create([ $harim->histories()->create([
@@ -44,13 +46,13 @@ class TechnicalDeputyController extends Controller
'previous_state_id' => $harim->state_id, 'previous_state_id' => $harim->state_id,
'previous_state_name' => $harim->state_name, 'previous_state_name' => $harim->state_name,
'expert_description' => $request->expert_description, 'expert_description' => $request->expert_description,
'action_id' => $action, 'action_id' => $action,
'action_name' => HarimAction::name($action), 'action_name' => HarimAction::name($action),
]); ]);
$state = HarimStates::BARESI_TAVASOT_MODIR_KOL->value; $state = HarimStates::BARESI_TAVASOT_MODIR_KOL->value;
$harim ->update([ $harim->update([
'state_id' => $state, 'state_id' => $state,
'state_name' => HarimStates::name($state), 'state_name' => HarimStates::name($state),
]); ]);
@@ -58,9 +60,10 @@ class TechnicalDeputyController extends Controller
return $this->successResponse(); return $this->successResponse();
} }
public function referRequest(ReferRequest $request, Harim $harim): JsonResponse public function referRequest(ReferRequest $request, Harim $harim): JsonResponse
{ {
DB::transaction(function () use ($request,$harim) { DB::transaction(function () use ($request, $harim) {
$action = HarimAction::REFER->value; $action = HarimAction::REFER->value;
$harim->histories()->create([ $harim->histories()->create([
@@ -68,7 +71,7 @@ class TechnicalDeputyController extends Controller
'previous_state_id' => $harim->state_id, 'previous_state_id' => $harim->state_id,
'previous_state_name' => $harim->state_name, 'previous_state_name' => $harim->state_name,
'expert_description' => $request->expert_description, 'expert_description' => $request->expert_description,
'action_id' => $action, 'action_id' => $action,
'action_name' => HarimAction::name($action), 'action_name' => HarimAction::name($action),
]); ]);
@@ -82,6 +85,7 @@ class TechnicalDeputyController extends Controller
return $this->successResponse(); return $this->successResponse();
} }
public function confirmRoadAccess(ConfirmRoadAccessRequest $request, Harim $harim): JsonResponse public function confirmRoadAccess(ConfirmRoadAccessRequest $request, Harim $harim): JsonResponse
{ {
DB::transaction(function () use ($request, $harim) { DB::transaction(function () use ($request, $harim) {
@@ -129,6 +133,7 @@ class TechnicalDeputyController extends Controller
return $this->successResponse(); return $this->successResponse();
} }
public function show(ShowRequest $request, Harim $harim): JsonResponse public function show(ShowRequest $request, Harim $harim): JsonResponse
{ {
return $this->successResponse($harim->load('histories')); return $this->successResponse($harim->load('histories'));

View File

@@ -18,6 +18,7 @@ use Illuminate\Support\Facades\DB;
class ControlUnitController extends Controller class ControlUnitController extends Controller
{ {
use ApiResponse; use ApiResponse;
public function index(Request $request, ControlUnitService $controlUnitService): JsonResponse public function index(Request $request, ControlUnitService $controlUnitService): JsonResponse
{ {
return response()->json($controlUnitService->datatable($request)); return response()->json($controlUnitService->datatable($request));
@@ -25,7 +26,7 @@ class ControlUnitController extends Controller
public function start(StartRequest $request, Mission $mission): JsonResponse public function start(StartRequest $request, Mission $mission): JsonResponse
{ {
DB::transaction(function () use ($request, $mission) { DB::transaction(function () use ($mission) {
$mission->histories()->create([ $mission->histories()->create([
'user_id' => auth()->user()->id, 'user_id' => auth()->user()->id,
'previous_state_id' => $mission->state_id, 'previous_state_id' => $mission->state_id,
@@ -36,7 +37,7 @@ class ControlUnitController extends Controller
$mission->update([ $mission->update([
'state_id' => $state, 'state_id' => $state,
'state_name' => MissionStates::name($state), 'state_name' => MissionStates::name($state),
'start_time' => now() 'start_time' => now(),
]); ]);
}); });
@@ -45,7 +46,7 @@ class ControlUnitController extends Controller
public function finish(FinishRequest $request, Mission $mission): JsonResponse public function finish(FinishRequest $request, Mission $mission): JsonResponse
{ {
DB::transaction(function () use ($request, $mission) { DB::transaction(function () use ($mission) {
$mission->histories()->create([ $mission->histories()->create([
'user_id' => auth()->user()->id, 'user_id' => auth()->user()->id,
'previous_state_id' => $mission->state_id, 'previous_state_id' => $mission->state_id,
@@ -63,7 +64,7 @@ class ControlUnitController extends Controller
}); });
if ($mission->category_id == 2) { if ($mission->category_id == 2) {
$rpc = new OperatorController(); $rpc = new OperatorController;
$rpc->store($mission); $rpc->store($mission);
} }

View File

@@ -6,7 +6,6 @@ use App\Http\Controllers\Controller;
use App\Http\Traits\ApiResponse; use App\Http\Traits\ApiResponse;
use App\Models\Mission; use App\Models\Mission;
use Illuminate\Http\JsonResponse; use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
class DetailController extends Controller class DetailController extends Controller
{ {
@@ -28,7 +27,7 @@ class DetailController extends Controller
'code' => $rahdar->code, 'code' => $rahdar->code,
'is_driver' => (bool) $rahdar->pivot->is_driver, 'is_driver' => (bool) $rahdar->pivot->is_driver,
]; ];
}); });
return $this->successResponse($rahdaran); return $this->successResponse($rahdaran);
} }

View File

@@ -8,8 +8,8 @@ use App\Enums\MissionTypes;
use App\Enums\MissionZones; use App\Enums\MissionZones;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use App\Http\Controllers\V3\Dashboard\RoadPatrol\OperatorController; use App\Http\Controllers\V3\Dashboard\RoadPatrol\OperatorController;
use App\Http\Requests\V3\Mission\RequestPortal\NoProcessRequest;
use App\Http\Requests\V3\Mission\RequestPortal\ContinueMissionRequest; use App\Http\Requests\V3\Mission\RequestPortal\ContinueMissionRequest;
use App\Http\Requests\V3\Mission\RequestPortal\NoProcessRequest;
use App\Http\Requests\V3\Mission\RequestPortal\StoreRequest; use App\Http\Requests\V3\Mission\RequestPortal\StoreRequest;
use App\Http\Requests\V3\Mission\RequestPortal\UpdateRequest; use App\Http\Requests\V3\Mission\RequestPortal\UpdateRequest;
use App\Http\Traits\ApiResponse; use App\Http\Traits\ApiResponse;
@@ -66,7 +66,7 @@ class RequestPortalController extends Controller
$mission->rahdaran()->sync($request->rahdaran); $mission->rahdaran()->sync($request->rahdaran);
if ($category == 3){ if ($category == 3) {
RoadObserved::query() RoadObserved::query()
->find($request->road_observed_id) ->find($request->road_observed_id)
->missions() ->missions()
@@ -82,11 +82,11 @@ class RequestPortalController extends Controller
return $this->successResponse($mission); return $this->successResponse($mission);
} }
public function continueMission(ContinueMissionRequest $request , Mission $mission): JsonResponse public function continueMission(ContinueMissionRequest $request, Mission $mission): JsonResponse
{ {
DB::transaction(function () use ($request, $mission) { DB::transaction(function () use ($request, $mission) {
$user = auth()->user(); $user = auth()->user();
$mission->update([ $mission->update([
'finish_time' => now(), 'finish_time' => now(),
'state_id' => MissionStates::END_MISSION->value, 'state_id' => MissionStates::END_MISSION->value,
@@ -118,18 +118,18 @@ class RequestPortalController extends Controller
'category_id' => $category, 'category_id' => $category,
'category_name' => MissionCategory::name($category), 'category_name' => MissionCategory::name($category),
'explanation' => $request->explanation, 'explanation' => $request->explanation,
'start_time' => now() 'start_time' => now(),
]); ]);
$newMission->rahdaran()->sync($request->rahdaran); $newMission->rahdaran()->sync($request->rahdaran);
$newMission->machines()->attach($request->machines); $newMission->machines()->attach($request->machines);
$newMission->rahdaran()->attach($request->driver, ['is_driver' => true]); $newMission->rahdaran()->attach($request->driver, ['is_driver' => true]);
if ($category == 3){ if ($category == 3) {
RoadObserved::query() RoadObserved::query()
->find($request->road_observed_id) ->find($request->road_observed_id)
->missions() ->missions()
->attach( $newMission->id); ->attach($newMission->id);
} }
}); });
@@ -159,7 +159,7 @@ class RequestPortalController extends Controller
]); ]);
$mission->rahdaran()->sync($request->rahdaran); $mission->rahdaran()->sync($request->rahdaran);
if ($request->category_id == 3){ if ($request->category_id == 3) {
RoadObserved::query() RoadObserved::query()
->find($request->road_observed_id) ->find($request->road_observed_id)
->missions() ->missions()
@@ -169,14 +169,17 @@ class RequestPortalController extends Controller
return $this->successResponse(); return $this->successResponse();
} }
public function destroy(Mission $mission): JsonResponse public function destroy(Mission $mission): JsonResponse
{ {
DB::transaction(function () use ($mission) { DB::transaction(function () use ($mission) {
$mission->rahdaran()->detach(); $mission->rahdaran()->detach();
$mission->delete(); $mission->delete();
}); });
return $this->successResponse(); return $this->successResponse();
} }
public function noProcess(NoProcessRequest $request): JsonResponse public function noProcess(NoProcessRequest $request): JsonResponse
{ {
DB::transaction(function () use ($request) { DB::transaction(function () use ($request) {
@@ -185,7 +188,7 @@ class RequestPortalController extends Controller
$end = Carbon::parse($request->end_date); $end = Carbon::parse($request->end_date);
$type = $start->diffInMinutes($end) > 480 ? MissionTypes::NO_PROCESS_ROZANE->value : MissionTypes::NO_PROCESS_SAATY->value; $type = $start->diffInMinutes($end) > 480 ? MissionTypes::NO_PROCESS_ROZANE->value : MissionTypes::NO_PROCESS_SAATY->value;
$user = auth()->user(); $user = auth()->user();
$zone= $request->zone; $zone = $request->zone;
$state = MissionStates::END_MISSION->value; $state = MissionStates::END_MISSION->value;
$mission = Mission::query()->create([ $mission = Mission::query()->create([
@@ -218,7 +221,7 @@ class RequestPortalController extends Controller
$mission->rahdaran()->attach($request->driver, ['is_driver' => true]); $mission->rahdaran()->attach($request->driver, ['is_driver' => true]);
if ($mission->category_id == 2) { if ($mission->category_id == 2) {
$rpc = new OperatorController(); $rpc = new OperatorController;
$rpc->store($mission); $rpc->store($mission);
} }
}); });

View File

@@ -27,19 +27,19 @@ class TransportationUnitController extends Controller
{ {
DB::transaction(function () use ($request, $mission) { DB::transaction(function () use ($request, $mission) {
$mission->machines()->attach($request->machines); $mission->machines()->attach($request->machines);
$mission->rahdaran()->attach($request->driver, ['is_driver'=>true]); $mission->rahdaran()->attach($request->driver, ['is_driver' => true]);
$mission->histories()->create([ $mission->histories()->create([
'user_id' => auth()->user()->id, 'user_id' => auth()->user()->id,
'previous_state_id' => $mission->state_id, 'previous_state_id' => $mission->state_id,
'previous_state_name' => $mission->state_name 'previous_state_name' => $mission->state_name,
]); ]);
$state = MissionStates::PENDING_CONFIRMATION->value; $state = MissionStates::PENDING_CONFIRMATION->value;
$mission->update([ $mission->update([
'state_id' => $state, 'state_id' => $state,
'state_name' => MissionStates::name($state), 'state_name' => MissionStates::name($state),
'km' => $request->km 'km' => $request->km,
]); ]);
}); });
@@ -53,7 +53,7 @@ class TransportationUnitController extends Controller
'user_id' => auth()->user()->id, 'user_id' => auth()->user()->id,
'previous_state_id' => $mission->state_id, 'previous_state_id' => $mission->state_id,
'previous_state_name' => $mission->state_name, 'previous_state_name' => $mission->state_name,
'user_description' => $request->description 'user_description' => $request->description,
]); ]);
$state = MissionStates::REJECT_BY_TRANSPORTATION->value; $state = MissionStates::REJECT_BY_TRANSPORTATION->value;
@@ -61,7 +61,7 @@ class TransportationUnitController extends Controller
$mission->update([ $mission->update([
'state_id' => $state, 'state_id' => $state,
'state_name' => MissionStates::name($state), 'state_name' => MissionStates::name($state),
'description' => $request->description 'description' => $request->description,
]); ]);
}); });

View File

@@ -16,6 +16,7 @@ use Illuminate\Validation\ValidationException;
class ObservedItemController extends Controller class ObservedItemController extends Controller
{ {
use ApiResponse; use ApiResponse;
public function show(ObservedItem $observedItem): JsonResponse public function show(ObservedItem $observedItem): JsonResponse
{ {
return $this->successResponse($observedItem); return $this->successResponse($observedItem);
@@ -23,9 +24,9 @@ class ObservedItemController extends Controller
public function filter(Request $request): JsonResponse public function filter(Request $request): JsonResponse
{ {
$columns = array( $columns = [
'id', 'item_id', 'road_patrol_id', 'roadPatrol.start_time', 'roadPatrol.end_time', 'id', 'item_id', 'road_patrol_id', 'roadPatrol.start_time', 'roadPatrol.end_time',
); ];
$allowedFilters = $columns; $allowedFilters = $columns;
$allowedSortings = $columns; $allowedSortings = $columns;
@@ -76,7 +77,7 @@ class ObservedItemController extends Controller
$item_end_coordinates = null; $item_end_coordinates = null;
if ($info_item->needs_end_point) { if ($info_item->needs_end_point) {
if (!isset($item['end_point'])) { if (! isset($item['end_point'])) {
throw ValidationException::withMessages([ throw ValidationException::withMessages([
"observed_items.$index.end_point" => __('validation.required', ['attribute' => 'end_point']), "observed_items.$index.end_point" => __('validation.required', ['attribute' => 'end_point']),
]); ]);

View File

@@ -7,7 +7,6 @@ use App\Http\Controllers\Controller;
use App\Http\Requests\V3\Otp\GetOtpTokenRequest; use App\Http\Requests\V3\Otp\GetOtpTokenRequest;
use App\Http\Traits\ApiResponse; use App\Http\Traits\ApiResponse;
use Illuminate\Http\JsonResponse; use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
class OtpManagementController extends Controller class OtpManagementController extends Controller
{ {

View File

@@ -6,7 +6,6 @@ use App\Http\Controllers\Controller;
use App\Http\Traits\ApiResponse; use App\Http\Traits\ApiResponse;
use App\Models\RoadItemsProject; use App\Models\RoadItemsProject;
use Illuminate\Http\JsonResponse; use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
class DetailController extends Controller class DetailController extends Controller
{ {

View File

@@ -11,12 +11,10 @@ use App\Http\Requests\V3\RoadItem\Operator\UpdateRequest;
use App\Http\Traits\ApiResponse; use App\Http\Traits\ApiResponse;
use App\Models\EdarateShahri; use App\Models\EdarateShahri;
use App\Models\InfoItem; use App\Models\InfoItem;
use App\Models\Mission;
use App\Models\ObservedItem; use App\Models\ObservedItem;
use App\Models\RoadItemsProject; use App\Models\RoadItemsProject;
use App\Services\Cartables\RoadItem\OperatorService; use App\Services\Cartables\RoadItem\OperatorService;
use App\Services\NominatimService; use App\Services\NominatimService;
use Carbon\Carbon;
use Illuminate\Http\JsonResponse; use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
@@ -29,24 +27,28 @@ use Throwable;
class OperatorController extends Controller class OperatorController extends Controller
{ {
use ApiResponse; use ApiResponse;
/** /**
* Display a listing of the resource. * Display a listing of the resource.
*/ */
public function index(Request $request, OperatorService $operatorService): JsonResponse public function index(Request $request, OperatorService $operatorService): JsonResponse
{ {
$data = $operatorService->dataTable($request); $data = $operatorService->dataTable($request);
return response()->json($data); return response()->json($data);
} }
public function excel(Request $request, OperatorService $operatorService): BinaryFileResponse public function excel(Request $request, OperatorService $operatorService): BinaryFileResponse
{ {
$name = 'گزارش از کارتابل عملیات فعالیت روزانه ' . verta()->now()->format('Y-m-d H:i') . '.xlsx'; $name = 'گزارش از کارتابل عملیات فعالیت روزانه '.verta()->now()->format('Y-m-d H:i').'.xlsx';
$data = $operatorService->dataTable($request, true); $data = $operatorService->dataTable($request, true);
return Excel::download(new OperatorCartableReport($data['data']), $name); return Excel::download(new OperatorCartableReport($data['data']), $name);
} }
/** /**
* Store a newly created resource in storage. * Store a newly created resource in storage.
*
* @throws Throwable * @throws Throwable
*/ */
public function store(StoreRequest $request, NominatimService $nominatimService): JsonResponse public function store(StoreRequest $request, NominatimService $nominatimService): JsonResponse
@@ -55,13 +57,13 @@ class OperatorController extends Controller
->where('sub_item', $request->sub_item_id) ->where('sub_item', $request->sub_item_id)
->firstOrFail(); ->firstOrFail();
if ($info_item->needs_end_point && !$request->end_point) { if ($info_item->needs_end_point && ! $request->end_point) {
throw ValidationException::withMessages([ throw ValidationException::withMessages([
'end_point' => __('validation.required', ['attribute' => 'end_point']), 'end_point' => __('validation.required', ['attribute' => 'end_point']),
]); ]);
} }
if ((!$request->before_image || !$request->after_image) && $info_item->needs_image) { if ((! $request->before_image || ! $request->after_image) && $info_item->needs_image) {
throw ValidationException::withMessages([ throw ValidationException::withMessages([
'before_image' => __('validation.required', ['attribute' => 'before_image']), 'before_image' => __('validation.required', ['attribute' => 'before_image']),
'after_image' => __('validation.required', ['attribute' => 'after_image']), 'after_image' => __('validation.required', ['attribute' => 'after_image']),
@@ -72,8 +74,7 @@ class OperatorController extends Controller
$end_coordinates = $info_item->needs_end_point ? explode(',', $request->end_point) : null; $end_coordinates = $info_item->needs_end_point ? explode(',', $request->end_point) : null;
DB::transaction(function () use ($request, $nominatimService, DB::transaction(function () use ($request, $nominatimService,
$start_coordinates, $end_coordinates, $info_item) $start_coordinates, $end_coordinates, $info_item) {
{
$user = auth()->user(); $user = auth()->user();
$road_item = RoadItemsProject::query()->create([ $road_item = RoadItemsProject::query()->create([
'user_id' => $user->id, 'user_id' => $user->id,
@@ -103,7 +104,7 @@ class OperatorController extends Controller
'edarat_name' => $user->edarate_shahri_name, 'edarat_name' => $user->edarate_shahri_name,
'activity_date' => $request->activity_date, 'activity_date' => $request->activity_date,
'activity_time' => $request->activity_time, 'activity_time' => $request->activity_time,
'activity_date_time' => $request->activity_date." ".$request->activity_time, 'activity_date_time' => $request->activity_date.' '.$request->activity_time,
'is_new' => 1, 'is_new' => 1,
'mission_id' => $request->mission_id, 'mission_id' => $request->mission_id,
]); ]);
@@ -111,13 +112,13 @@ class OperatorController extends Controller
if ($request->has('after_image')) { if ($request->has('after_image')) {
$road_item->files()->create([ $road_item->files()->create([
'path' => FileFacade::save($request->file('after_image'), 'path' => FileFacade::save($request->file('after_image'),
"/road_items_projects_new/{$road_item->id}/after") "/road_items_projects_new/{$road_item->id}/after"),
]); ]);
} }
if ($request->has('before_image')) { if ($request->has('before_image')) {
$road_item->files()->create([ $road_item->files()->create([
'path' => FileFacade::save($request->file('before_image'), 'path' => FileFacade::save($request->file('before_image'),
"/road_items_projects_new/{$road_item->id}/before") "/road_items_projects_new/{$road_item->id}/before"),
]); ]);
} }
@@ -152,7 +153,7 @@ class OperatorController extends Controller
$end_coordinates = null; $end_coordinates = null;
if ($info_item->needs_end_point) { if ($info_item->needs_end_point) {
if (!$request->end_point) { if (! $request->end_point) {
throw ValidationException::withMessages([ throw ValidationException::withMessages([
'end_point' => __('validation.required', ['attribute' => 'end_point']), 'end_point' => __('validation.required', ['attribute' => 'end_point']),
]); ]);
@@ -166,14 +167,14 @@ class OperatorController extends Controller
FileFacade::delete($roadItemsProject->files[0]->path, true); FileFacade::delete($roadItemsProject->files[0]->path, true);
$roadItemsProject->files[0]->update([ $roadItemsProject->files[0]->update([
'path' => FileFacade::save($request->file('after_image'), 'path' => FileFacade::save($request->file('after_image'),
"/road_items_projects_new/{$roadItemsProject->id}/after") "/road_items_projects_new/{$roadItemsProject->id}/after"),
]); ]);
} }
if ($request->has('before_image')) { if ($request->has('before_image')) {
FileFacade::delete($roadItemsProject->files[1]->path, true); FileFacade::delete($roadItemsProject->files[1]->path, true);
$roadItemsProject->files[1]->update([ $roadItemsProject->files[1]->update([
'path' => FileFacade::save($request->file('before_image'), 'path' => FileFacade::save($request->file('before_image'),
"/road_items_projects_new/{$roadItemsProject->id}/before") "/road_items_projects_new/{$roadItemsProject->id}/before"),
]); ]);
} }
} }
@@ -193,7 +194,6 @@ class OperatorController extends Controller
$roadItemsProject->cmmsMachines()->sync($request->machines_id); $roadItemsProject->cmmsMachines()->sync($request->machines_id);
$roadItemsProject->missions()->sync($request->mission_id); $roadItemsProject->missions()->sync($request->mission_id);
auth()->user()->addActivityComplete(1155); auth()->user()->addActivityComplete(1155);
}); });

View File

@@ -94,8 +94,9 @@ class ReportController extends Controller
public function countryActivityExcelPerItem(Request $request, ReportService $reportService): BinaryFileResponse public function countryActivityExcelPerItem(Request $request, ReportService $reportService): BinaryFileResponse
{ {
auth()->user()->addActivityComplete(1034); auth()->user()->addActivityComplete(1034);
$name = 'گزارش کشوری از فعالیت روزانه و جاری - جدول 1 ' . verta()->now()->format('Y-m-d H-i') . '.xlsx'; $name = 'گزارش کشوری از فعالیت روزانه و جاری - جدول 1 '.verta()->now()->format('Y-m-d H-i').'.xlsx';
$activities = $reportService->countryActivityPerItem($request); $activities = $reportService->countryActivityPerItem($request);
return Excel::download(new CountryActivityPerItemReport([ return Excel::download(new CountryActivityPerItemReport([
'activities' => $activities, 'activities' => $activities,
'provinces' => Province::all(['id', 'name_fa']), 'provinces' => Province::all(['id', 'name_fa']),
@@ -106,8 +107,9 @@ class ReportController extends Controller
public function provinceActivityExcelPerItem(Request $request, ReportService $reportService): BinaryFileResponse public function provinceActivityExcelPerItem(Request $request, ReportService $reportService): BinaryFileResponse
{ {
auth()->user()->addActivityComplete(1034); auth()->user()->addActivityComplete(1034);
$name = 'گزارش استانی از فعالیت روزانه و جاری - جدول 1 ' . verta()->now()->format('Y-m-d H-i') . '.xlsx'; $name = 'گزارش استانی از فعالیت روزانه و جاری - جدول 1 '.verta()->now()->format('Y-m-d H-i').'.xlsx';
$activities = $reportService->provinceActivityPerItem($request); $activities = $reportService->provinceActivityPerItem($request);
return Excel::download(new ProvinceActivityPerItemReport([ return Excel::download(new ProvinceActivityPerItemReport([
'activities' => $activities, 'activities' => $activities,
'edarateShahri' => EdarateShahri::query()->where('province_id', '=', $request->province_id)->get(['id', 'name_fa']), 'edarateShahri' => EdarateShahri::query()->where('province_id', '=', $request->province_id)->get(['id', 'name_fa']),
@@ -118,7 +120,7 @@ class ReportController extends Controller
public function countryActivityExcelPerSubItem(Request $request, ReportService $reportService): BinaryFileResponse public function countryActivityExcelPerSubItem(Request $request, ReportService $reportService): BinaryFileResponse
{ {
auth()->user()->addActivityComplete(1034); auth()->user()->addActivityComplete(1034);
$name = "گزارش کشوری از فعالیت روزانه و جاری - جدول 2 " . verta()->now()->format('Y-m-d H-i') . '.xlsx'; $name = 'گزارش کشوری از فعالیت روزانه و جاری - جدول 2 '.verta()->now()->format('Y-m-d H-i').'.xlsx';
$activities = $reportService->countryActivityPerSubItem($request); $activities = $reportService->countryActivityPerSubItem($request);
$subItems = InfoItem::query() $subItems = InfoItem::query()
->where('item', $request->item) ->where('item', $request->item)
@@ -127,7 +129,7 @@ class ReportController extends Controller
return Excel::download(new CountryActivityPerSubItemReport([ return Excel::download(new CountryActivityPerSubItemReport([
'activities' => $activities, 'activities' => $activities,
'provinces' => Province::all(['id', 'name_fa']), 'provinces' => Province::all(['id', 'name_fa']),
'subItems' => $subItems 'subItems' => $subItems,
]), $name); ]), $name);
} }
@@ -135,7 +137,7 @@ class ReportController extends Controller
{ {
auth()->user()->addActivityComplete(1034); auth()->user()->addActivityComplete(1034);
$activities = $reportService->provinceActivityPerSubItem($request); $activities = $reportService->provinceActivityPerSubItem($request);
$name = "گزارش استانی از فعالیت روزانه و جاری - جدول 2 " . verta()->now()->format('Y-m-d H-i') . '.xlsx'; $name = 'گزارش استانی از فعالیت روزانه و جاری - جدول 2 '.verta()->now()->format('Y-m-d H-i').'.xlsx';
$subItems = InfoItem::query() $subItems = InfoItem::query()
->where('item', $request->item) ->where('item', $request->item)
->get(['id', 'item', 'item_str', 'sub_item_str', 'sub_item_unit', 'sub_item']); ->get(['id', 'item', 'item_str', 'sub_item_str', 'sub_item_unit', 'sub_item']);
@@ -154,16 +156,16 @@ class ReportController extends Controller
$subId = $request->sub_id; $subId = $request->sub_id;
$item = $request->item; $item = $request->item;
$status = $request->status; $status = $request->status;
$dateFrom = $request->date_from ? $request->date_from . ' 00:00:00' : now()->startOfDay()->toDateTimeString(); $dateFrom = $request->date_from ? $request->date_from.' 00:00:00' : now()->startOfDay()->toDateTimeString();
$dateTo = $request->date_to ? $request->date_to . ' 23:59:59' : now()->addDay()->startOfDay()->toDateTimeString(); $dateTo = $request->date_to ? $request->date_to.' 23:59:59' : now()->addDay()->startOfDay()->toDateTimeString();
$data = RoadItemsProject::query() $data = RoadItemsProject::query()
->where('is_new', '=', 1) ->where('is_new', '=', 1)
->when($provinceId, fn($query, $provinceId) => $query->where('road_items_projects.province_id', '=', $provinceId)) ->when($provinceId, fn ($query, $provinceId) => $query->where('road_items_projects.province_id', '=', $provinceId))
->when($cityId, fn($query, $cityId) => $query->where('road_items_projects.city_id', '=', $cityId)) ->when($cityId, fn ($query, $cityId) => $query->where('road_items_projects.city_id', '=', $cityId))
->when($subId, fn($query, $subId) => $query->where('sub_items', 'like', '%' . $subId . '%')) ->when($subId, fn ($query, $subId) => $query->where('sub_items', 'like', '%'.$subId.'%'))
->when($item, fn($query, $item) => $query->where('item', '=', $item)) ->when($item, fn ($query, $item) => $query->where('item', '=', $item))
->when(!is_null($status), fn($query, $status) => $query->where('status', '=', $status)) ->when(! is_null($status), fn ($query, $status) => $query->where('status', '=', $status))
->leftJoin('users', 'users.id', '=', 'road_items_projects.user_id') ->leftJoin('users', 'users.id', '=', 'road_items_projects.user_id')
->whereBetween('road_items_projects.activity_date', [$dateFrom, $dateTo]) ->whereBetween('road_items_projects.activity_date', [$dateFrom, $dateTo])
->select('road_items_projects.id as i', 'start_lat as l', 'start_lng as g', 'status') ->select('road_items_projects.id as i', 'start_lat as l', 'start_lng as g', 'status')

View File

@@ -7,11 +7,9 @@ use App\Exports\V3\RoadItemsProjects\SupervisorCartableReport;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use App\Http\Requests\V3\RoadItem\Supervisor\ConfirmRequest; use App\Http\Requests\V3\RoadItem\Supervisor\ConfirmRequest;
use App\Http\Requests\V3\RoadItem\Supervisor\RejectRequest; use App\Http\Requests\V3\RoadItem\Supervisor\RejectRequest;
use App\Http\Requests\V3\RoadItem\VerifyBySupervisorRequest;
use App\Http\Traits\ApiResponse; use App\Http\Traits\ApiResponse;
use App\Models\RoadItemsProject; use App\Models\RoadItemsProject;
use App\Services\Cartables\RoadItem\SupervisorService; use App\Services\Cartables\RoadItem\SupervisorService;
use App\Services\Cartables\RoadItemTableService;
use Illuminate\Http\JsonResponse; use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
@@ -47,8 +45,9 @@ class SupervisorController extends Controller
*/ */
public function excel(Request $request, SupervisorService $supervisorService): BinaryFileResponse public function excel(Request $request, SupervisorService $supervisorService): BinaryFileResponse
{ {
$name = 'گزارش از کارتابل ارزیابی فعالیت روزانه ' . verta()->now()->format('Y-m-d H:i') . '.xlsx'; $name = 'گزارش از کارتابل ارزیابی فعالیت روزانه '.verta()->now()->format('Y-m-d H:i').'.xlsx';
$data = $supervisorService->dataTable($request, true); $data = $supervisorService->dataTable($request, true);
return Excel::download(new SupervisorCartableReport($data['data']), $name); return Excel::download(new SupervisorCartableReport($data['data']), $name);
} }
@@ -107,7 +106,7 @@ class SupervisorController extends Controller
'supervisor_id' => null, 'supervisor_id' => null,
'supervisor_description' => null, 'supervisor_description' => null,
'supervising_time' => null, 'supervising_time' => null,
'supervisor_name' => null, 'supervisor_name' => null,
]); ]);
auth()->user()->addActivityComplete(1150); auth()->user()->addActivityComplete(1150);
}); });

View File

@@ -13,9 +13,8 @@ use App\Models\City;
use App\Models\Province; use App\Models\Province;
use App\Models\RahdariPoint; use App\Models\RahdariPoint;
use App\Models\RahdariPointHistory; use App\Models\RahdariPointHistory;
use Illuminate\Http\Request;
use Illuminate\Http\JsonResponse; use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
class RoadMaintenanceStationController extends Controller class RoadMaintenanceStationController extends Controller
{ {
@@ -27,7 +26,7 @@ class RoadMaintenanceStationController extends Controller
$user->addActivityComplete(1019); $user->addActivityComplete(1019);
$query = RahdariPoint::query() $query = RahdariPoint::query()
->when($user->hasPermissionTo('show-tollhouse-province') && !$user->hasPermissionTo('show-tollhouse'), ->when($user->hasPermissionTo('show-tollhouse-province') && ! $user->hasPermissionTo('show-tollhouse'),
fn ($query) => $query->where('province_id', $user->province_id) fn ($query) => $query->where('province_id', $user->province_id)
); );
@@ -56,7 +55,7 @@ class RoadMaintenanceStationController extends Controller
'name' => $request->name, 'name' => $request->name,
'status' => $request->status, 'status' => $request->status,
'type' => $request->type, 'type' => $request->type,
'type_fa' =>RoadMaintenanceStationTypes::name($request->type), 'type_fa' => RoadMaintenanceStationTypes::name($request->type),
'team_num' => $request->team_num, 'team_num' => $request->team_num,
'staff_num' => $request->staff_num, 'staff_num' => $request->staff_num,
'phone' => $request->phone, 'phone' => $request->phone,
@@ -85,7 +84,7 @@ class RoadMaintenanceStationController extends Controller
foreach ($uploadPaths as $field => $path) { foreach ($uploadPaths as $field => $path) {
if ($request->hasFile($field)) { if ($request->hasFile($field)) {
$station->files()->create([ $station->files()->create([
'path' => FileFacade::save($request->$field, $path) 'path' => FileFacade::save($request->$field, $path),
]); ]);
} }
} }
@@ -112,17 +111,17 @@ class RoadMaintenanceStationController extends Controller
RahdariPointHistory::query()->create([ RahdariPointHistory::query()->create([
'user_id' => $request->user()->id, 'user_id' => $request->user()->id,
'point_id' => $rahdariPoint->id, 'point_id' => $rahdariPoint->id,
'previous_province_id' => $province->id, 'previous_province_id' => $province->id,
'previous_province_name' => $province->name_fa, 'previous_province_name' => $province->name_fa,
'previous_city_id' => $city->id, 'previous_city_id' => $city->id,
'previous_city_name' => $city->name_fa, 'previous_city_name' => $city->name_fa,
'previous_name' => $rahdariPoint->name, 'previous_name' => $rahdariPoint->name,
'previous_status' => $rahdariPoint->status, 'previous_status' => $rahdariPoint->status,
'previous_type' => $rahdariPoint->type, 'previous_type' => $rahdariPoint->type,
'previous_team_num' => $rahdariPoint->team_num, 'previous_team_num' => $rahdariPoint->team_num,
'previous_staff_num' => $rahdariPoint->staff_num, 'previous_staff_num' => $rahdariPoint->staff_num,
'previous_phone' => $rahdariPoint->phone, 'previous_phone' => $rahdariPoint->phone,
'previous_responsible_name' => $rahdariPoint->responsible_name, 'previous_responsible_name' => $rahdariPoint->responsible_name,
'previous_responsible_mobile' => $rahdariPoint->responsible_mobile, 'previous_responsible_mobile' => $rahdariPoint->responsible_mobile,
'previous_successor_name' => $rahdariPoint->successor_name, 'previous_successor_name' => $rahdariPoint->successor_name,
@@ -130,21 +129,21 @@ class RoadMaintenanceStationController extends Controller
'previous_machines_light' => $rahdariPoint->machines_light, 'previous_machines_light' => $rahdariPoint->machines_light,
'previous_machines_sheavy' => $rahdariPoint->machines_sheavy, 'previous_machines_sheavy' => $rahdariPoint->machines_sheavy,
'previous_machines_heavy' => $rahdariPoint->machines_heavy, 'previous_machines_heavy' => $rahdariPoint->machines_heavy,
'previous_lat' => $rahdariPoint->lat, 'previous_lat' => $rahdariPoint->lat,
'previous_lng' => $rahdariPoint->lng, 'previous_lng' => $rahdariPoint->lng,
'new_files' => json_encode($rahdariPoint->files), 'new_files' => json_encode($rahdariPoint->files),
'area' => json_encode($rahdariPoint->area), 'area' => json_encode($rahdariPoint->area),
]); ]);
$rahdariPoint->update([ $rahdariPoint->update([
'province_id' => $province->id, 'province_id' => $province->id,
'province_name' => $province->name_fa, 'province_name' => $province->name_fa,
'city_id' => $city->id, 'city_id' => $city->id,
'city_name' => $city->name_fa, 'city_name' => $city->name_fa,
'name' => $request->input('name'), 'name' => $request->input('name'),
'status' => $request->input('status'), 'status' => $request->input('status'),
'type' => $request->input('type',), 'type' => $request->input('type'),
'type_fa' => RoadMaintenanceStationTypes::name($request->type) ?? $rahdariPoint->type_fa, 'type_fa' => RoadMaintenanceStationTypes::name($request->type) ?? $rahdariPoint->type_fa,
'team_num' => $request->input('team_num'), 'team_num' => $request->input('team_num'),
'staff_num' => $request->input('staff_num'), 'staff_num' => $request->input('staff_num'),
'phone' => $request->input('phone'), 'phone' => $request->input('phone'),

View File

@@ -36,8 +36,9 @@ class OperatorController
public function cartableReport(Request $request, OperatorService $operatorService): BinaryFileResponse public function cartableReport(Request $request, OperatorService $operatorService): BinaryFileResponse
{ {
$name = 'گزارش از کارتابل عملیات واکنش سریع ' . verta()->now()->format('Y-m-d H:i') . '.xlsx'; $name = 'گزارش از کارتابل عملیات واکنش سریع '.verta()->now()->format('Y-m-d H:i').'.xlsx';
$data = $operatorService->cartableIndex($request); $data = $operatorService->cartableIndex($request);
return Excel::download(new OperatorCartableReport($data['data']), $name); return Excel::download(new OperatorCartableReport($data['data']), $name);
} }
@@ -54,8 +55,9 @@ class OperatorController
*/ */
public function complaintsReport(Request $request, OperatorService $operatorService): BinaryFileResponse public function complaintsReport(Request $request, OperatorService $operatorService): BinaryFileResponse
{ {
$name = 'گزارش از رسیدگی به شکایات واکنش سریع ' . verta()->now()->format('Y-m-d H:i') . '.xlsx'; $name = 'گزارش از رسیدگی به شکایات واکنش سریع '.verta()->now()->format('Y-m-d H:i').'.xlsx';
$data = $operatorService->complaintsIndex($request); $data = $operatorService->complaintsIndex($request);
return Excel::download(new ComplaintsReport($data['data']), $name); return Excel::download(new ComplaintsReport($data['data']), $name);
} }
@@ -79,7 +81,7 @@ class OperatorController
'previous_rms_start_latlng' => $roadObserved->rms_start_latlng, 'previous_rms_start_latlng' => $roadObserved->rms_start_latlng,
'previous_rms_end_latlng' => $roadObserved->rms_end_latlng, 'previous_rms_end_latlng' => $roadObserved->rms_end_latlng,
'previous_rms_description' => $roadObserved->rms_description, 'previous_rms_description' => $roadObserved->rms_description,
'new_files' => json_encode([]) 'new_files' => json_encode([]),
]; ];
$files_path = []; $files_path = [];
@@ -132,7 +134,7 @@ class OperatorController
'previous_rms_start_latlng' => $roadObserved->rms_start_latlng, 'previous_rms_start_latlng' => $roadObserved->rms_start_latlng,
'previous_rms_end_latlng' => $roadObserved->rms_end_latlng, 'previous_rms_end_latlng' => $roadObserved->rms_end_latlng,
'previous_rms_description' => $roadObserved->rms_description, 'previous_rms_description' => $roadObserved->rms_description,
'new_files' => json_encode([]) 'new_files' => json_encode([]),
]; ];
if ($request->rms_status == 1) { if ($request->rms_status == 1) {
@@ -195,7 +197,7 @@ class OperatorController
'from_edareh' => $roadObserved->edarate_shahri_id, 'from_edareh' => $roadObserved->edarate_shahri_id,
'to_edareh' => $request->edarate_shahri_id, 'to_edareh' => $request->edarate_shahri_id,
'from_province' => $roadObserved->province_id, 'from_province' => $roadObserved->province_id,
'to_province' => $province->id 'to_province' => $province->id,
]); ]);
$roadObserved->update([ $roadObserved->update([
@@ -218,7 +220,7 @@ class OperatorController
->orderBy('created_at', 'desc') ->orderBy('created_at', 'desc')
->get([ ->get([
'created_at', 'description', 'from_edareh', 'to_edareh', 'created_at', 'description', 'from_edareh', 'to_edareh',
'from_province', 'to_province', 'user_id' 'from_province', 'to_province', 'user_id',
]); ]);
foreach ($data as $key => $value) { foreach ($data as $key => $value) {
@@ -227,8 +229,9 @@ class OperatorController
$data[$key]->from_province = Province::query()->find($value->from_province)->name_fa ?? null; $data[$key]->from_province = Province::query()->find($value->from_province)->name_fa ?? null;
$data[$key]->to_province = Province::query()->find($value->to_province)->name_fa ?? null; $data[$key]->to_province = Province::query()->find($value->to_province)->name_fa ?? null;
$user = User::query()->find($value->user_id); $user = User::query()->find($value->user_id);
$data[$key]->user = $user->first_name . ' ' . $user->last_name; $data[$key]->user = $user->first_name.' '.$user->last_name;
} }
return $this->successResponse($data); return $this->successResponse($data);
} }
} }

View File

@@ -8,7 +8,6 @@ use App\Exports\V3\RoadObservation\ProvinceCartableReport;
use App\Facades\DataTable\DataTableFacade; use App\Facades\DataTable\DataTableFacade;
use App\Http\Traits\ApiResponse; use App\Http\Traits\ApiResponse;
use App\Models\EdarateShahri; use App\Models\EdarateShahri;
use App\Models\Province;
use App\Models\RoadObserved; use App\Models\RoadObserved;
use App\Services\Cartables\RoadObservation\ReportService; use App\Services\Cartables\RoadObservation\ReportService;
use App\Services\Cartables\SafetyAndPrivacy\OperatorService; use App\Services\Cartables\SafetyAndPrivacy\OperatorService;
@@ -24,13 +23,15 @@ class ReportController
public function index(Request $request, ReportService $reportService): JsonResponse public function index(Request $request, ReportService $reportService): JsonResponse
{ {
$data = $reportService->index($request); $data = $reportService->index($request);
return response()->json($data['data']); return response()->json($data['data']);
} }
public function excel(Request $request, ReportService $reportService): BinaryFileResponse public function excel(Request $request, ReportService $reportService): BinaryFileResponse
{ {
$name = 'گزارش رسیدگی به شکایات واکنش سریع ' . verta()->now()->format('Y-m-d H:i') . '.xlsx'; $name = 'گزارش رسیدگی به شکایات واکنش سریع '.verta()->now()->format('Y-m-d H:i').'.xlsx';
$data = $reportService->index($request); $data = $reportService->index($request);
return Excel::download(new ReportComplaintsExport($data), $name); return Excel::download(new ReportComplaintsExport($data), $name);
} }
@@ -48,6 +49,7 @@ class ReportController
public function countryActivity(Request $request, ReportService $reportService): JsonResponse public function countryActivity(Request $request, ReportService $reportService): JsonResponse
{ {
$data = $reportService->countryActivity($request); $data = $reportService->countryActivity($request);
return $this->successResponse($data); return $this->successResponse($data);
} }
@@ -59,22 +61,26 @@ class ReportController
return $this->successResponse([ return $this->successResponse([
'activities' => $data, 'activities' => $data,
'edarateShahri' => EdarateShahri::where('province_id', $request->province_id)->get(['id', 'name_fa']), 'edarateShahri' => EdarateShahri::query()->where('province_id', $request->province_id)->get(['id', 'name_fa']),
]); ]);
} }
public function countryActivityExcel(Request $request, OperatorService $operatorService): BinaryFileResponse
public function countryActivityExcel(Request $request, ReportService $reportService): BinaryFileResponse
{ {
$data = $operatorService->countryActivity($request); $data = $reportService->countryActivity($request);
$name = 'گزارش رسیدگی به شکایات واکنش سریع' . verta()->now()->format('Y-m-d H-i') . '.xlsx'; $name = 'گزارش رسیدگی به شکایات واکنش سریع'.verta()->now()->format('Y-m-d H-i').'.xlsx';
return Excel::download(new CountryCartableReport($data), $name); return Excel::download(new CountryCartableReport($data), $name);
} }
public function provinceActivityExcel(Request $request, OperatorService $operatorService): BinaryFileResponse public function provinceActivityExcel(Request $request, ReportService $reportService): BinaryFileResponse
{ {
$data = $operatorService->provinceActivity( $data = $reportService->provinceActivity(
province_id: $request->input('province_id') province_id: $request->input('province_id')
); );
$name = 'گزارش رسیدگی به شکایات واکنش سریع' . verta()->now()->format('Y-m-d H-i') . '.xlsx';
return Excel::download(new ProvinceCartableReport($data, $request), $name); $name = 'گزارش رسیدگی به شکایات واکنش سریع'.verta()->now()->format('Y-m-d H-i').'.xlsx';
return Excel::download(new ProvinceCartableReport($data), $name);
} }
} }

View File

@@ -10,7 +10,6 @@ use App\Http\Traits\ApiResponse;
use App\Models\RoadObservationHistory; use App\Models\RoadObservationHistory;
use App\Models\RoadObserved; use App\Models\RoadObserved;
use App\Services\Cartables\RoadObservation\SupervisorService; use App\Services\Cartables\RoadObservation\SupervisorService;
use App\Services\Cartables\RoadObservationTableService;
use Illuminate\Http\JsonResponse; use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
@@ -48,7 +47,7 @@ class SupervisorController
public function report(Request $request, SupervisorService $supervisorService): BinaryFileResponse public function report(Request $request, SupervisorService $supervisorService): BinaryFileResponse
{ {
$name = 'گزارش از کارتابل ارزیابی واکنش سریع '. verta()->now()->format('Y-m-d H:i') . '.xlsx'; $name = 'گزارش از کارتابل ارزیابی واکنش سریع '.verta()->now()->format('Y-m-d H:i').'.xlsx';
$data = $supervisorService->index($request); $data = $supervisorService->index($request);
return Excel::download(new SupervisorCartableReport($data['data']), $name); return Excel::download(new SupervisorCartableReport($data['data']), $name);
@@ -89,4 +88,4 @@ class SupervisorController
return $this->successResponse(); return $this->successResponse();
} }
} }

View File

@@ -9,12 +9,11 @@ use App\Models\RoadPatrol;
use Illuminate\Http\JsonResponse; use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request; use Illuminate\Http\Request;
class DetailController extends Controller class DetailController extends Controller
{ {
use ApiResponse; use ApiResponse;
public function map(Request $request): JsonResponse public function map(Request $request): JsonResponse
{ {
$province = $request->province_id; $province = $request->province_id;
$edare_shahri = $request->edare_shahri_id; $edare_shahri = $request->edare_shahri_id;
@@ -25,12 +24,12 @@ class DetailController extends Controller
$date_from = $request->from_date.' 00:00:00'; $date_from = $request->from_date.' 00:00:00';
$date_to = $request->date_to.' 23:59:59'; $date_to = $request->date_to.' 23:59:59';
} else { } else {
$date_from = Date('Y-m-d'); $date_from = date('Y-m-d');
$date_to = new \DateTime('tomorrow'); $date_to = new \DateTime('tomorrow');
$date_to = $date_to->format('Y-m-d'); $date_to = $date_to->format('Y-m-d');
} }
$projects = RoadObserved::query()->select(['id', 'lng', 'lat','status']) $projects = RoadObserved::query()->select(['id', 'lng', 'lat', 'status'])
->whereBetween('created_at', [$date_from, $date_to]) ->whereBetween('created_at', [$date_from, $date_to])
->when($province, function ($query) use ($province) { ->when($province, function ($query) use ($province) {
return $query->where('province_id', '=', $province); return $query->where('province_id', '=', $province);
@@ -49,6 +48,7 @@ class DetailController extends Controller
return $query->where('status', '=', $status); return $query->where('status', '=', $status);
}) })
->get(); ->get();
return $this->successResponse($projects); return $this->successResponse($projects);
} }

View File

@@ -2,9 +2,7 @@
namespace App\Http\Controllers\V3\Dashboard\RoadPatrol; namespace App\Http\Controllers\V3\Dashboard\RoadPatrol;
use App\Exports\V3\RoadPatrols\OperatorCartableReport; use App\Exports\V3\RoadPatrols\OperatorCartableReport;
use App\Facades\Sms\Sms;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use App\Http\Requests\V3\RoadPatrol\DeleteRequest; use App\Http\Requests\V3\RoadPatrol\DeleteRequest;
use App\Http\Traits\ApiResponse; use App\Http\Traits\ApiResponse;
@@ -18,7 +16,6 @@ use Illuminate\Support\Facades\Storage;
use Maatwebsite\Excel\Facades\Excel; use Maatwebsite\Excel\Facades\Excel;
use Symfony\Component\HttpFoundation\BinaryFileResponse; use Symfony\Component\HttpFoundation\BinaryFileResponse;
class OperatorController extends Controller class OperatorController extends Controller
{ {
use ApiResponse; use ApiResponse;
@@ -26,12 +23,15 @@ class OperatorController extends Controller
public function index(Request $request, OperatorService $operatorService): JsonResponse public function index(Request $request, OperatorService $operatorService): JsonResponse
{ {
$data = $operatorService->dataTable($request); $data = $operatorService->dataTable($request);
return response()->json($data); return response()->json($data);
} }
public function excel(Request $request, OperatorService $operatorService): BinaryFileResponse public function excel(Request $request, OperatorService $operatorService): BinaryFileResponse
{ {
$name = 'گزارش از کارتابل عملیات گشت راهداری ' . verta()->now()->format('Y-m-d H:i') . '.xlsx'; $name = 'گزارش از کارتابل عملیات گشت راهداری '.verta()->now()->format('Y-m-d H:i').'.xlsx';
$data = $operatorService->dataTable($request, true); $data = $operatorService->dataTable($request, true);
return Excel::download(new OperatorCartableReport($data['data']), $name); return Excel::download(new OperatorCartableReport($data['data']), $name);
} }
@@ -42,15 +42,15 @@ class OperatorController extends Controller
$road_patrol = RoadPatrol::query()->create([ $road_patrol = RoadPatrol::query()->create([
'operator_id' => $user->id, 'operator_id' => $user->id,
'status' => 0, 'status' => 0,
'status_fa' => 'در حال بررسی', 'status_fa' => 'در حال بررسی',
'province_id' => $mission->province_id, 'province_id' => $mission->province_id,
'province_fa' => $mission->province_name, 'province_fa' => $mission->province_name,
'edare_id' => $mission->edare_shahri_id, 'edare_id' => $mission->edare_shahri_id,
'edare_name' => $mission->edare_shahri_name, 'edare_name' => $mission->edare_shahri_name,
'start_time' => $mission->start_time, 'start_time' => $mission->start_time,
'end_time' => $mission->finish_time, 'end_time' => $mission->finish_time,
'mission_id' => $mission->id, 'mission_id' => $mission->id,
]); ]);
auth()->user()->addActivityComplete(1147); auth()->user()->addActivityComplete(1147);
@@ -74,8 +74,8 @@ class OperatorController extends Controller
$road_item = $observed_item->roadItemProject; $road_item = $observed_item->roadItemProject;
if ($road_item->files()->exists()) { if ($road_item->files()->exists()) {
Storage::delete('public/' . $road_item->files[0]->path); Storage::delete('public/'.$road_item->files[0]->path);
Storage::delete('public/' . $road_item->files[1]->path); Storage::delete('public/'.$road_item->files[1]->path);
$road_item->files()->delete(); $road_item->files()->delete();
} }

View File

@@ -18,16 +18,17 @@ use Symfony\Component\HttpFoundation\BinaryFileResponse;
class ReportController extends Controller class ReportController extends Controller
{ {
use ApiResponse; use ApiResponse;
public function activitiesOnMap(Request $request): JsonResponse public function activitiesOnMap(Request $request): JsonResponse
{ {
$date_from = $request->from_date ? $request->from_date .' 00:00:00' : now()->startOfDay()->toDateTimeString(); $date_from = $request->from_date ? $request->from_date.' 00:00:00' : now()->startOfDay()->toDateTimeString();
$date_to = $request->date_to ? $request->date_to.' 23:59:59' : now()->addDay()->startOfDay()->toDateTimeString(); $date_to = $request->date_to ? $request->date_to.' 23:59:59' : now()->addDay()->startOfDay()->toDateTimeString();
$provinceId = $request->province_id; $provinceId = $request->province_id;
$edareId = $request->edare_id; $edareId = $request->edare_id;
$data = RoadPatrol::query() $data = RoadPatrol::query()
->when($provinceId, fn($query, $provinceId) => $query->where('province_id', '=', $provinceId)) ->when($provinceId, fn ($query, $provinceId) => $query->where('province_id', '=', $provinceId))
->when($edareId, fn($query, $edareId) => $query->where('edare_id', '=', $edareId)) ->when($edareId, fn ($query, $edareId) => $query->where('edare_id', '=', $edareId))
->whereBetween('created_at', [$date_from, $date_to]) ->whereBetween('created_at', [$date_from, $date_to])
->select('id', 'start_lat', 'start_lon') ->select('id', 'start_lat', 'start_lon')
->get(); ->get();
@@ -51,11 +52,11 @@ class ReportController extends Controller
'officer_name' => $roadPatrol->officer_name, 'officer_name' => $roadPatrol->officer_name,
'officer_plaque' => $roadPatrol->officer_plaque, 'officer_plaque' => $roadPatrol->officer_plaque,
'officer_phone_number' => $roadPatrol->officer_phone_number, 'officer_phone_number' => $roadPatrol->officer_phone_number,
'created_at' => $roadPatrol->created_at 'created_at' => $roadPatrol->created_at,
]; ];
$observed_items = array(); $observed_items = [];
if($roadPatrol->observedItems) { if ($roadPatrol->observedItems) {
foreach ($roadPatrol->observedItems as $index => $observed_item) { foreach ($roadPatrol->observedItems as $index => $observed_item) {
$observed_items[] = [ $observed_items[] = [
'item' => $observed_item->item_name, 'item' => $observed_item->item_name,
@@ -68,8 +69,10 @@ class ReportController extends Controller
} }
$data['observed_items'] = $observed_items; $data['observed_items'] = $observed_items;
return $this->successResponse($data); return $this->successResponse($data);
} }
public function countryPatrolActivity(Request $request, ReportService $reportService): JsonResponse public function countryPatrolActivity(Request $request, ReportService $reportService): JsonResponse
{ {
$activities = $reportService->countryActivity($request); $activities = $reportService->countryActivity($request);
@@ -78,13 +81,13 @@ class ReportController extends Controller
return $this->successResponse([ return $this->successResponse([
'activities' => $activities['data'], 'activities' => $activities['data'],
'provinces' => $provinces 'provinces' => $provinces,
]); ]);
} }
public function provincePatrolActivity(Request $request, ReportService $reportService): JsonResponse public function provincePatrolActivity(Request $request, ReportService $reportService): JsonResponse
{ {
$request->validate(["province_id" => "required",]); $request->validate(['province_id' => 'required']);
$activities = $reportService->provinceActivity($request); $activities = $reportService->provinceActivity($request);
@@ -101,7 +104,7 @@ class ReportController extends Controller
$activities = $reportService->countryActivity($request); $activities = $reportService->countryActivity($request);
$provinces = Province::all(['id', 'name_fa']); $provinces = Province::all(['id', 'name_fa']);
$name = 'گزارش از گشت راهداری و ترابری ' . verta()->now()->format('Y-m-d H-i') . '.xlsx'; $name = 'گزارش از گشت راهداری و ترابری '.verta()->now()->format('Y-m-d H-i').'.xlsx';
return Excel::download(new CountryActivity([ return Excel::download(new CountryActivity([
'activities' => $activities, 'activities' => $activities,
@@ -114,7 +117,7 @@ class ReportController extends Controller
$activities = $reportService->provinceActivity($request); $activities = $reportService->provinceActivity($request);
$edarateShahri = EdarateShahri::query()->where('province_id', '=', $request->province_id)->get(['id', 'name_fa']); $edarateShahri = EdarateShahri::query()->where('province_id', '=', $request->province_id)->get(['id', 'name_fa']);
$name = 'گزارش از گشت راهداری و ترابری ' . verta()->now()->format('Y-m-d H-i') . '.xlsx'; $name = 'گزارش از گشت راهداری و ترابری '.verta()->now()->format('Y-m-d H-i').'.xlsx';
return Excel::download(new ProvinceActivity([ return Excel::download(new ProvinceActivity([
'activities' => $activities, 'activities' => $activities,

View File

@@ -40,8 +40,9 @@ class SupervisorController extends Controller
*/ */
public function excel(Request $request, SupervisorService $supervisorService): BinaryFileResponse public function excel(Request $request, SupervisorService $supervisorService): BinaryFileResponse
{ {
$name = 'گزارش از کارتابل ارزیابی گشت راهداری ' . verta()->now()->format('Y-m-d H:i') . '.xlsx'; $name = 'گزارش از کارتابل ارزیابی گشت راهداری '.verta()->now()->format('Y-m-d H:i').'.xlsx';
$data = $supervisorService->dataTable($request, true); $data = $supervisorService->dataTable($request, true);
return Excel::download(new SupervisorCartableReport($data['data']), $name); return Excel::download(new SupervisorCartableReport($data['data']), $name);
} }
} }

View File

@@ -8,13 +8,11 @@ use App\Http\Requests\V3\Dashboard\RoleManageMent\StoreRequest;
use App\Http\Requests\V3\Dashboard\RoleManageMent\UpdateRequest; use App\Http\Requests\V3\Dashboard\RoleManageMent\UpdateRequest;
use App\Http\Traits\ApiResponse; use App\Http\Traits\ApiResponse;
use App\Models\Role; use App\Models\Role;
use App\Services\Cartables\Role\RoleService;
use Illuminate\Http\JsonResponse; use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
use Throwable; use Throwable;
class RoleManagementController extends Controller class RoleManagementController extends Controller
{ {
use ApiResponse; use ApiResponse;
@@ -27,7 +25,8 @@ class RoleManagementController extends Controller
allowedFilters: ['*'], allowedFilters: ['*'],
allowedSortings: ['*'], allowedSortings: ['*'],
allowedSelects: ['id', 'name', 'name_fa', 'description'] allowedSelects: ['id', 'name', 'name_fa', 'description']
); );
return response()->json($data); return response()->json($data);
} }
@@ -38,8 +37,7 @@ class RoleManagementController extends Controller
{ {
auth()->user()->addActivityComplete(1043); auth()->user()->addActivityComplete(1043);
$role = DB::transaction(function () use ($request) $role = DB::transaction(function () use ($request) {
{
$role = Role::create([ $role = Role::create([
'name' => $request->name, 'name' => $request->name,
'name_fa' => $request->name_fa, 'name_fa' => $request->name_fa,
@@ -60,8 +58,7 @@ class RoleManagementController extends Controller
{ {
auth()->user()->addActivityComplete(1044); auth()->user()->addActivityComplete(1044);
DB::transaction(function () use ($request, $role) DB::transaction(function () use ($request, $role) {
{
$role->update([ $role->update([
'name' => $request->name, 'name' => $request->name,
'name_fa' => $request->name_fa, 'name_fa' => $request->name_fa,
@@ -72,7 +69,7 @@ class RoleManagementController extends Controller
$role->syncPermissions($request->permissions); $role->syncPermissions($request->permissions);
}); });
return $this->successResponse($role); return $this->successResponse();
} }
public function show(Role $role): JsonResponse public function show(Role $role): JsonResponse
@@ -80,7 +77,7 @@ class RoleManagementController extends Controller
return $this->successResponse($role); return $this->successResponse($role);
} }
public function delete(Role $role): JsonResponse public function destroy(Role $role): JsonResponse
{ {
auth()->user()->addActivityComplete(1045); auth()->user()->addActivityComplete(1045);

View File

@@ -44,8 +44,9 @@ class OperatorController extends Controller
*/ */
public function excelReport(Request $request, OperatorService $operatorService): BinaryFileResponse public function excelReport(Request $request, OperatorService $operatorService): BinaryFileResponse
{ {
$name = 'گزارش از نگهداری حریم راه ' . verta()->now()->format('Y-m-d H-i') . '.xlsx'; $name = 'گزارش از نگهداری حریم راه '.verta()->now()->format('Y-m-d H-i').'.xlsx';
$data = $operatorService->datatable($request); $data = $operatorService->datatable($request);
return Excel::download(new OperatorCartableReport($data['data']), $name); return Excel::download(new OperatorCartableReport($data['data']), $name);
} }
@@ -59,8 +60,7 @@ class OperatorController extends Controller
->where('item', 17) ->where('item', 17)
->firstOrFail(); ->firstOrFail();
DB::transaction(function () use ($request, $coordinates, $item, $nominatimService, $user) DB::transaction(function () use ($request, $coordinates, $item, $nominatimService, $user) {
{
$step = SafetyAndPrivacySteps::SHENASAEI->value; $step = SafetyAndPrivacySteps::SHENASAEI->value;
$safety_and_privacy = SafetyAndPrivacy::query()->create([ $safety_and_privacy = SafetyAndPrivacy::query()->create([
'lat' => $coordinates[0], 'lat' => $coordinates[0],
@@ -73,7 +73,7 @@ class OperatorController extends Controller
'info_fa' => $item->sub_item_str, 'info_fa' => $item->sub_item_str,
'city_id' => $user->city_id, 'city_id' => $user->city_id,
'city_fa' => $user->city_fa, 'city_fa' => $user->city_fa,
'activity_date_time' => $request->activity_date." ".$request->activity_time, 'activity_date_time' => $request->activity_date.' '.$request->activity_time,
'edare_shahri_id' => $user->edarate_shahri_id, 'edare_shahri_id' => $user->edarate_shahri_id,
'edare_shahri_name' => $user->edarate_shahri_name, 'edare_shahri_name' => $user->edarate_shahri_name,
'way_id' => $nominatimService->get_way_id_from_nominatim($coordinates[0], $coordinates[1]), 'way_id' => $nominatimService->get_way_id_from_nominatim($coordinates[0], $coordinates[1]),
@@ -145,13 +145,13 @@ class OperatorController extends Controller
'step_fa' => SafetyAndPrivacySteps::name($step), 'step_fa' => SafetyAndPrivacySteps::name($step),
'status' => $status_id, 'status' => $status_id,
'status_fa' => SafetyAndPrivacyStatus::name($status_id), 'status_fa' => SafetyAndPrivacyStatus::name($status_id),
'action_picture' => FileFacade::save($request->action_picture, "safety_and_privacy/{$safetyAndPrivacy->id}/action_picture"), 'action_picture' => FileFacade::save($request->action_picture, "safety_and_privacy/{$safetyAndPrivacy->id}/action_picture"),
'finish_picture' => FileFacade::save($request->finish_picture, "safety_and_privacy/{$safetyAndPrivacy->id}/finish_picture"), 'finish_picture' => FileFacade::save($request->finish_picture, "safety_and_privacy/{$safetyAndPrivacy->id}/finish_picture"),
'evidence_picture' => FileFacade::save($request->evidence_picture, "safety_and_privacy/{$safetyAndPrivacy->id}/evidence_picture"), 'evidence_picture' => FileFacade::save($request->evidence_picture, "safety_and_privacy/{$safetyAndPrivacy->id}/evidence_picture"),
'action_picture_document_upload_date' => now(), 'action_picture_document_upload_date' => now(),
'action_date' => $request->action_date, 'action_date' => $request->action_date,
'is_finished' => true, 'is_finished' => true,
'final_description' => 'پیام سیستمی : این عملیات پس از طی تمامی گام ها خاتمه یافت' 'final_description' => 'پیام سیستمی : این عملیات پس از طی تمامی گام ها خاتمه یافت',
]); ]);
$user->addActivityComplete(1136); $user->addActivityComplete(1136);
@@ -183,8 +183,7 @@ class OperatorController extends Controller
{ {
FileFacade::deleteDirectory("safety_and_privacy/{$safetyAndPrivacy->id}"); FileFacade::deleteDirectory("safety_and_privacy/{$safetyAndPrivacy->id}");
DB::transaction(function () use ($safetyAndPrivacy) DB::transaction(function () use ($safetyAndPrivacy) {
{
auth()->user()->addActivityComplete(1155); auth()->user()->addActivityComplete(1155);
$safetyAndPrivacy->delete(); $safetyAndPrivacy->delete();
}); });

View File

@@ -41,10 +41,12 @@ class AccessRoadActivityController extends Controller
'edarateShahri' => EdarateShahri::where('province_id', $request->province_id)->get(['id', 'name_fa']), 'edarateShahri' => EdarateShahri::where('province_id', $request->province_id)->get(['id', 'name_fa']),
]); ]);
} }
public function countryExcelActivity(Request $request, OperatorService $operatorService): BinaryFileResponse public function countryExcelActivity(Request $request, OperatorService $operatorService): BinaryFileResponse
{ {
$data = $operatorService->countryActivity(90, $request); $data = $operatorService->countryActivity(90, $request);
$name = 'گزارش نگهداری حریم راه برای راه دسترسی غیر مجاز ' . verta()->now()->format('Y-m-d H-i') . '.xlsx'; $name = 'گزارش نگهداری حریم راه برای راه دسترسی غیر مجاز '.verta()->now()->format('Y-m-d H-i').'.xlsx';
return Excel::download(new ExcelReport($data), $name); return Excel::download(new ExcelReport($data), $name);
} }
@@ -54,8 +56,8 @@ class AccessRoadActivityController extends Controller
$request, $request,
90, 90,
); );
$name = 'گزارش نگهداری حریم راه برای راه دسترسی غیر مجاز ' . verta()->now()->format('Y-m-d H-i') . '.xlsx'; $name = 'گزارش نگهداری حریم راه برای راه دسترسی غیر مجاز '.verta()->now()->format('Y-m-d H-i').'.xlsx';
return Excel::download(new AccessRoadReport($data, $request), $name); return Excel::download(new AccessRoadReport($data, $request), $name);
} }
} }

View File

@@ -18,6 +18,7 @@ use Symfony\Component\HttpFoundation\BinaryFileResponse;
class ConstructionActivityController extends Controller class ConstructionActivityController extends Controller
{ {
use ApiResponse; use ApiResponse;
public function countryActivity(Request $request, OperatorService $operatorService): JsonResponse public function countryActivity(Request $request, OperatorService $operatorService): JsonResponse
{ {
$data = $operatorService->countryActivity(89, $request); $data = $operatorService->countryActivity(89, $request);
@@ -27,7 +28,8 @@ class ConstructionActivityController extends Controller
'provinces' => Province::all(['id', 'name_fa']), 'provinces' => Province::all(['id', 'name_fa']),
]); ]);
} }
public function provinceActivity(Request $request, OperatorService $operatorService,): JsonResponse
public function provinceActivity(Request $request, OperatorService $operatorService): JsonResponse
{ {
$data = $operatorService->provinceActivity( $data = $operatorService->provinceActivity(
$request, $request,
@@ -47,7 +49,7 @@ class ConstructionActivityController extends Controller
public function countryExcelActivity(Request $request, OperatorService $operatorService): BinaryFileResponse public function countryExcelActivity(Request $request, OperatorService $operatorService): BinaryFileResponse
{ {
$data = $operatorService->countryActivity(89, $request); $data = $operatorService->countryActivity(89, $request);
$name = ' گزارش نگهداری حریم راه برای ساخت و ساز غیر مجاز' . verta()->now()->format('Y-m-d H-i') . '.xlsx'; $name = ' گزارش نگهداری حریم راه برای ساخت و ساز غیر مجاز'.verta()->now()->format('Y-m-d H-i').'.xlsx';
return Excel::download(new ExcelReport($data), $name); return Excel::download(new ExcelReport($data), $name);
} }
@@ -62,7 +64,7 @@ class ConstructionActivityController extends Controller
$request, $request,
89, 89,
); );
$name = ' گزارش نگهداری حریم راه برای ساخت و ساز غیر مجاز' . verta()->now()->format('Y-m-d H-i') . '.xlsx'; $name = ' گزارش نگهداری حریم راه برای ساخت و ساز غیر مجاز'.verta()->now()->format('Y-m-d H-i').'.xlsx';
return Excel::download(new ConstructionReport($data, $request), $name); return Excel::download(new ConstructionReport($data, $request), $name);
} }

View File

@@ -27,6 +27,7 @@ class UtilityPassingActivityController extends Controller
'provinces' => Province::all(['id', 'name_fa']), 'provinces' => Province::all(['id', 'name_fa']),
]); ]);
} }
public function provinceActivity(Request $request, OperatorService $operatorService): JsonResponse public function provinceActivity(Request $request, OperatorService $operatorService): JsonResponse
{ {
$data = $operatorService->provinceActivity( $data = $operatorService->provinceActivity(
@@ -39,11 +40,13 @@ class UtilityPassingActivityController extends Controller
'edarateShahri' => EdarateShahri::where('province_id', $request->province_id)->get(['id', 'name_fa']), 'edarateShahri' => EdarateShahri::where('province_id', $request->province_id)->get(['id', 'name_fa']),
]); ]);
} }
public function countryExcelActivity(Request $request, OperatorService $operatorService): BinaryFileResponse public function countryExcelActivity(Request $request, OperatorService $operatorService): BinaryFileResponse
{ {
$data = $operatorService->countryActivity(91, $request); $data = $operatorService->countryActivity(91, $request);
$name = 'گزارش نگهداری حریم راه برای عبور تاسیسات زیربنایی غیر مجاز ' . verta()->now()->format('Y-m-d H-i') . '.xlsx'; $name = 'گزارش نگهداری حریم راه برای عبور تاسیسات زیربنایی غیر مجاز '.verta()->now()->format('Y-m-d H-i').'.xlsx';
return Excel::download(new ExcelReport($data), $name); return Excel::download(new ExcelReport($data), $name);
} }
@@ -53,7 +56,7 @@ class UtilityPassingActivityController extends Controller
$request, $request,
91, 91,
); );
$name = 'گزارش نگهداری حریم راه برای عبور تاسیسات زیربنایی غیر مجاز ' . verta()->now()->format('Y-m-d H-i') . '.xlsx'; $name = 'گزارش نگهداری حریم راه برای عبور تاسیسات زیربنایی غیر مجاز '.verta()->now()->format('Y-m-d H-i').'.xlsx';
return Excel::download(new UtilityPassingReport($data, $request), $name); return Excel::download(new UtilityPassingReport($data, $request), $name);
} }

View File

@@ -9,7 +9,6 @@ use App\Http\Requests\V3\SafetyAndPrivacy\RejectRequest;
use App\Http\Traits\ApiResponse; use App\Http\Traits\ApiResponse;
use App\Models\SafetyAndPrivacy; use App\Models\SafetyAndPrivacy;
use App\Services\Cartables\SafetyAndPrivacy\SupervisorService; use App\Services\Cartables\SafetyAndPrivacy\SupervisorService;
use App\Services\Cartables\SafetyAndPrivacyTableService;
use Illuminate\Http\JsonResponse; use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Maatwebsite\Excel\Facades\Excel; use Maatwebsite\Excel\Facades\Excel;
@@ -33,8 +32,9 @@ class SupervisorController extends Controller
*/ */
public function excelReport(Request $request, SupervisorService $supervisorService): BinaryFileResponse public function excelReport(Request $request, SupervisorService $supervisorService): BinaryFileResponse
{ {
$name = 'گزارش از نگهداری حریم راه ' . verta()->now()->format('Y-m-d H-i') . '.xlsx'; $name = 'گزارش از نگهداری حریم راه '.verta()->now()->format('Y-m-d H-i').'.xlsx';
$data = $supervisorService->dataTable($request); $data = $supervisorService->dataTable($request);
return Excel::download(new SupervisorCartableReport($data['data']), $name); return Excel::download(new SupervisorCartableReport($data['data']), $name);
} }

View File

@@ -2,21 +2,8 @@
namespace App\Http\Controllers\V3\Dashboard\SafetyAndPrivacy; namespace App\Http\Controllers\V3\Dashboard\SafetyAndPrivacy;
use App\Enums\SafetyAndPrivacyStatus;
use App\Exports\V3\SafetyAndPrivacy\CountryActivityReport;
use App\Exports\V3\SafetyAndPrivacy\ProvinceActivityReport;
use App\Exports\V3\SafetyAndPrivacy\SupervisorCartableReport;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use App\Http\Requests\V3\SafetyAndPrivacy\RejectRequest;
use App\Http\Traits\ApiResponse; use App\Http\Traits\ApiResponse;
use App\Models\EdarateShahri;
use App\Models\Province;
use App\Models\SafetyAndPrivacy;
use App\Services\Cartables\SafetyAndPrivacyTableService;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Maatwebsite\Excel\Facades\Excel;
use Symfony\Component\HttpFoundation\BinaryFileResponse;
class SupervisorReportController extends Controller class SupervisorReportController extends Controller
{ {

View File

@@ -3,14 +3,14 @@
namespace App\Http\Controllers\V3\Dashboard; namespace App\Http\Controllers\V3\Dashboard;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use App\Http\Requests\V3\Dashboard\UserManagement\PermissionUpdateRequest; use App\Http\Requests\V3\Dashboard\UserManagement\GivePermissionRequest;
use App\Http\Requests\V3\Dashboard\UserManagement\GiveRoleRequest;
use App\Http\Requests\V3\Dashboard\UserManagement\StoreRequest; use App\Http\Requests\V3\Dashboard\UserManagement\StoreRequest;
use App\Http\Requests\V3\Dashboard\UserManagement\UpdateRequest; use App\Http\Requests\V3\Dashboard\UserManagement\UpdateRequest;
use App\Http\Traits\ApiResponse; use App\Http\Traits\ApiResponse;
use App\Models\City; use App\Models\City;
use App\Models\EdarateOstani; use App\Models\EdarateOstani;
use App\Models\EdarateShahri; use App\Models\EdarateShahri;
use App\Models\Permission;
use App\Models\Province; use App\Models\Province;
use App\Models\Role; use App\Models\Role;
use App\Models\User; use App\Models\User;
@@ -20,20 +20,12 @@ use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Storage;
class UserManagementController extends Controller class UserManagementController extends Controller
{ {
use ApiResponse; use ApiResponse;
// public function index()
// { public function index(Request $request)
// if (Auth::user()->can('full-user-managment') || Auth::user()->can('limited-user-management')) {
// return view('version2.dashboard_pages.user_management.list');
// }
//
// abort(403);
// }
public function indexUser(Request $request)
{ {
auth()->user()->addActivityComplete(1038); auth()->user()->addActivityComplete(1038);
@@ -80,43 +72,47 @@ class UserManagementController extends Controller
->get(); ->get();
} else { } else {
return response()->json([ return response()->json([
'message' => 'Forbidden' 'message' => 'Forbidden',
], 403); ], 403);
} }
return $this->successResponse($users); return $this->successResponse($users);
} }
public function store(StoreRequest $request): jsonResponse public function store(StoreRequest $request): jsonResponse
{ {
auth()->user()->addActivityComplete(1039); $user = auth()->user();
$user->addActivityComplete(1039);
User::query()->create([ User::query()->create([
'username' => $request->username, 'username' => $request->username,
'national_code' => $request->national_code, 'national_code' => $request->national_code,
'password' => Hash::make($request->password), 'password' => Hash::make($request->password),
'province_id' => $request->province_id, 'province_id' => $request->province_id ?: null,
'city_id' => $request->city_id ?: null,
'edarate_ostani_id' => $request->edarate_ostani_id, 'edarate_ostani_id' => $request->edarate_ostani_id,
'city_id' => $request->city_id,
'edarate_shahri_id' => $request->edarate_shahri_id, 'edarate_shahri_id' => $request->edarate_shahri_id,
'first_name' => $request->first_name,
'last_name' => $request->last_name,
'position' => $request->position,
'mobile' => $request->mobile,
'degree' => $request->degree,
'major' => $request->major,
]); ]);
$user = new User();
$user->username = $request->username;
$user->province_id = $request->province_id == 0 ? null : $request->province_id;
$user->province_fa = ($request->province_id == 0) ? 'ستاد' : Province::find($request->province_id)->name_fa; $user->province_fa = ($request->province_id == 0) ? 'ستاد' : Province::find($request->province_id)->name_fa;
$user->city_id = $request->city_id == 0 ? null : $request->city_id; $user->city_fa = ($request->city_id == 0) ? null : City::find($request->city_id)->name_fa;
$user->city_fa = ($request->city_id == 0) ? null : City::find($request->city_id)->name_fa ;
if ($request->edarate_ostani_id != 'null') { if ($request->edarate_ostani_id != 'null') {
$temp = EdarateOstani::find($request->edarate_ostani_id)->name_fa; $temp = EdarateOstani::find($request->edarate_ostani_id)->name_fa;
$user->edarate_ostani_id = $request->edarate_ostani_id; $user->edarate_ostani_id = $request->edarate_ostani_id;
$user->edarate_ostani_name = $temp; $user->edarate_ostani_name = $temp;
if ($request->province_id == 0) { if ($request->province_id == 0) {
$user->name = $temp .' '. $user->province_fa; $user->name = $temp.' '.$user->province_fa;
} else { } else {
$user->name = $temp .' استان '. $user->province_fa; $user->name = $temp.' استان '.$user->province_fa;
} }
} else { } else {
$temp = EdarateShahri::find($request->edarate_shahri_id)->name_fa; $temp = EdarateShahri::find($request->edarate_shahri_id)->name_fa;
@@ -124,16 +120,14 @@ class UserManagementController extends Controller
$user->edarate_shahri_name = $temp; $user->edarate_shahri_name = $temp;
if ($request->province_id == 0) { if ($request->province_id == 0) {
$user->name = $temp .' '. $user->province_fa; $user->name = $temp.' '.$user->province_fa;
} else { } else {
$user->name = $temp .' استان '. $user->province_fa; $user->name = $temp.' استان '.$user->province_fa;
} }
} }
$user->password = Hash::make($request->password); $user->password = Hash::make($request->password);
$user->national_code = $request->national_code; $user->national_code = $request->national_code;
$user->save();
return $this->successResponse($user); return $this->successResponse($user);
} }
@@ -141,91 +135,109 @@ class UserManagementController extends Controller
public function show(User $user) public function show(User $user)
{ {
$user = User::where('id', $user->id)->with(['roles', 'permissions'])->get(); $user = User::where('id', $user->id)->with(['roles', 'permissions'])->get();
return response()->json([
'status' => '200', return $this->successResponse($user);
'message' => 'success',
'data' => $user
], 200);
} }
public function update(UpdateRequest $request, User $user): JsonResponse public function update(UpdateRequest $request, User $user): JsonResponse
{ {
auth()->user()->addActivityComplete(1040);
$user->update([ $user->update([
'username' => $request->username, 'username' => $request->username,
'national_code' => $request->national_code, 'national_code' => $request->national_code,
'password' => Hash::make($request->password), 'password' => Hash::make($request->password),
'province_id' => $request->province_id, 'province_id' => $request->province_id ?: null,
'city_id' => $request->city_id ?: null,
'edarate_ostani_id' => $request->edarate_ostani_id, 'edarate_ostani_id' => $request->edarate_ostani_id,
'city_id' => $request->city_id,
'edarate_shahri_id' => $request->edarate_shahri_id, 'edarate_shahri_id' => $request->edarate_shahri_id,
'first_name' => $request->first_name,
'last_name' => $request->last_name,
'position' => $request->position,
'mobile' => $request->mobile,
'degree' => $request->degree,
'major' => $request->major,
]); ]);
$user->province_id = $request->province_id == 0 ? null : $request->province_id;
$user->province_fa = ($request->province_id == 0) ? 'ستاد' : Province::find($request->province_id)->name_fa; $user->province_fa = ($request->province_id == 0) ? 'ستاد' : Province::find($request->province_id)->name_fa;
$user->city_id = $request->city_id == 0 ? null : $request->city_id; $user->city_fa = ($request->city_id == 0) ? null : City::find($request->city_id)->name_fa;
$user->city_fa = ($request->city_id == 0) ? null : City::find($request->city_id)->name_fa ;
if ($request->edarate_ostani_id != "null") { if ($request->edarate_ostani_id != 'null') {
$temp = EdarateOstani::find($request->edarate_ostani_id)->name_fa; $temp = EdarateOstani::find($request->edarate_ostani_id)->name_fa;
$user->edarate_ostani_id = $request->edarate_ostani_id; $user->edarate_ostani_id = $request->edarate_ostani_id;
$user->edarate_ostani_name = $temp; $user->edarate_ostani_name = $temp;
$user->edarate_shahri_id = null;
$user->edarate_shahri_name = null;
if ($request->province_id == 0) { if ($request->province_id == 0) {
$user->name = $temp .' '. $user->province_fa; $user->name = $temp.' '.$user->province_fa;
} else { } else {
$user->name = $temp .' استان '. $user->province_fa; $user->name = $temp.' استان '.$user->province_fa;
} }
} else { } else {
$temp = EdarateShahri::find($request->edarate_shahri_id)->name_fa; $temp = EdarateShahri::find($request->edarate_shahri_id)->name_fa;
$user->edarate_shahri_id = $request->edarate_shahri_id; $user->edarate_shahri_id = $request->edarate_shahri_id;
$user->edarate_shahri_name = $temp; $user->edarate_shahri_name = $temp;
$user->edarate_ostani_id = null;
$user->edarate_ostani_name = null;
if ($request->province_id == 0) { if ($request->province_id == 0) {
$user->name = $temp .' '. $user->province_fa; $user->name = $temp.' '.$user->province_fa;
} else { } else {
$user->name = $temp .' استان '. $user->province_fa; $user->name = $temp.' استان '.$user->province_fa;
} }
} }
$user->first_name = $request->first_name; if (! is_null($request->password)) {
$user->last_name = $request->last_name;
$user->position = $request->position;
$user->mobile = $request->mobile;
$user->degree = $request->degree;
$user->major = $request->major;
$user->national_code = $request->national_code;
if (!is_null($request->password)) {
$request->validate([
'password' => ['string']
]);
$user->password = Hash::make($request->password); $user->password = Hash::make($request->password);
} }
if (! $request->permissions == null) { if (! is_null($request->permissions)) {
$user->syncPermissions(explode(",", $request->permissions)); $user->syncPermissions(explode(',', $request->permissions));
} }
$roles = $request->only('roles'); if ($request->filled('roles')) {
if (! $roles == null) { $user->syncRoles($request->roles);
$user->syncRoles($roles);
} }
$user->save(); $user->save();
if (auth()->user()) { return $this->successResponse($user);
auth()->user()->addActivityComplete(1040, $user); }
}
return response()->json([ public function destroy(User $user)
'message' => 'success', {
'data' => $user $user->delete();
]);
return $this->successResponse();
}
public function givePermissionsTo(GivePermissionRequest $request, User $user): JsonResponse
{
$user->givePermissionTo($request->permissions);
return $this->successResponse($user->load('permissions'));
}
public function givePermissionsToRole(GivePermissionRequest $request, Role $role): JsonResponse
{
$permissionId = $request->permissions;
$role->syncPermissions($permissionId);
return $this->successResponse($role->load('permissions'));
}
public function giveRolesToUser(GiveRoleRequest $request, User $user): JsonResponse
{
$roles = $request->roles;
$user->assignRole($roles);
return $this->successResponse($user->load('roles'));
}
public function getUserPermissions(): JsonResponse
{
$userPermissions = Auth::user()->getUserPermissions();
return $this->successResponse($userPermissions);
} }
public function activityReport() public function activityReport()
@@ -246,17 +258,17 @@ class UserManagementController extends Controller
{ {
$request->validate([ $request->validate([
'user_ids' => 'required|regex:/^(\d+)(,\d+)*$/', 'user_ids' => 'required|regex:/^(\d+)(,\d+)*$/',
'confirm' => 'required|in:0,1' 'confirm' => 'required|in:0,1',
]); ]);
$user_ids = explode(",", $request->user_ids); $user_ids = explode(',', $request->user_ids);
User::whereIn('id', $user_ids)->update([ User::whereIn('id', $user_ids)->update([
'confirmed' => $request->confirm 'confirmed' => $request->confirm,
]);
return response()->json([
'status' => 'succeed',
]); ]);
return $this->successResponse();
} }
public function changePassword(User $user, Request $request) public function changePassword(User $user, Request $request)
@@ -266,75 +278,14 @@ class UserManagementController extends Controller
]); ]);
$user->password = Hash::make($request->password); $user->password = Hash::make($request->password);
$user->save(); $user->save();
return response()->json(['message' => "password changed successfully!!!!"], 200);
}
public function givePermissionsTo(Request $request) return $this->successResponse();
{
$request->validate([
'user_ids' => 'required|regex:/^(\d+)(,\d+)*$/',
'permission_ids' => 'required',
]);
$user_ids = explode(",", $request->user_ids);
$permission_ids = $request->permission_ids;
User::whereIn('id', $user_ids)->get()->each(function ($user) use ($permission_ids) {
$user->syncPermissions($permission_ids);
});
return response()->json([
'status' => 'succeed',
'message' => 'permissions assigned to users succussfully.'
]);
}
public function destroy(Request $request)
{
$request->validate([
'user_ids' => 'required|regex:/^(\d+)(,\d+)*$/',
]);
$user_ids = explode(',', $request->user_ids);
foreach ($user_ids as $id) {
$user = User::find($id);
if ($user->avatar) {
if (Storage::disk('public')->exists(str_replace('storage/', '', $user->avatar))) {
Storage::disk('public')->delete(str_replace('storage/', '', $user->avatar));
}
}
if ($user->photo) {
if (Storage::disk('public')->exists(str_replace('storage/', '', $user->photo))) {
Storage::disk('public')->delete(str_replace('storage/', '', $user->photo));
}
}
$user->delete();
}
return response()->json([
'status' => 200,
'message' => 'The users deleted succussfully.'
]);
}
public function getUserPermissions()
{
$userPermissions = Auth::user()->getUserPermissions();
return response()->json([
'message' => 'success',
'data' => $userPermissions
]);
} }
public function getUserSummaryReport(Request $request, User $user) public function getUserSummaryReport(Request $request, User $user)
{ {
$request->fromDate = $request->fromDate ? $request->fromDate . " 00:00:00" : Carbon::now()->subDays(30)->format('Y-m-d 00:00:00'); $request->fromDate = $request->fromDate ? $request->fromDate.' 00:00:00' : Carbon::now()->subDays(30)->format('Y-m-d 00:00:00');
$request->toDate = $request->toDate ? $request->toDate . " 23:59:59" : Carbon::now()->format('Y-m-d 23:59:59'); $request->toDate = $request->toDate ? $request->toDate.' 23:59:59' : Carbon::now()->format('Y-m-d 23:59:59');
$data = []; $data = [];
$ids_list = ''; $ids_list = '';
@@ -351,7 +302,7 @@ class UserManagementController extends Controller
HOUR (created_at) AS hh, HOUR (created_at) AS hh,
user_id user_id
FROM user_activity_logs FROM user_activity_logs
WHERE created_at between '{$request->fromDate}' and '{$request->toDate}' and user_id IN(".$user->id.") WHERE created_at between '{$request->fromDate}' and '{$request->toDate}' and user_id IN(".$user->id.')
) user_activity_distinct ) user_activity_distinct
GROUP BY yy, GROUP BY yy,
mm, mm,
@@ -359,7 +310,7 @@ class UserManagementController extends Controller
hh, hh,
user_id user_id
) user_activity_by_hour_and_ ) user_activity_by_hour_and_
GROUP BY user_id) AS calculated_table;"; GROUP BY user_id) AS calculated_table;';
$temp_sql_for_activity_list = " $temp_sql_for_activity_list = "
SELECT *, SELECT *,
@@ -369,29 +320,28 @@ class UserManagementController extends Controller
description, description,
log_unique_code log_unique_code
FROM user_activity_logs FROM user_activity_logs
WHERE created_at between '{$request->fromDate}' and '{$request->toDate}' and user_id IN(".$user->id.") WHERE created_at between '{$request->fromDate}' and '{$request->toDate}' and user_id IN(".$user->id.')
) user_activity_distinct ) user_activity_distinct
GROUP BY GROUP BY
log_unique_code log_unique_code
ORDER BY cnt desc"; ORDER BY cnt desc';
$number_of_active_days = " $number_of_active_days = "
SELECT COUNT(*) AS cnt SELECT COUNT(*) AS cnt
FROM ( FROM (
SELECT mm,dd SELECT mm,dd
FROM user_activity_logs FROM user_activity_logs
WHERE created_at between '{$request->fromDate}' and '{$request->toDate}' and user_id IN(".$user->id.") WHERE created_at between '{$request->fromDate}' and '{$request->toDate}' and user_id IN(".$user->id.')
GROUP BY GROUP BY
mm,dd mm,dd
) active_days ) active_days
ORDER BY cnt desc"; ORDER BY cnt desc';
$number_of_activities = " $number_of_activities = "
SELECT COUNT(*) AS cnt SELECT COUNT(*) AS cnt
FROM user_activity_logs FROM user_activity_logs
WHERE created_at between '{$request->fromDate}' and '{$request->toDate}' and user_id IN(".$user->id.") WHERE created_at between '{$request->fromDate}' and '{$request->toDate}' and user_id IN(".$user->id.')
ORDER BY cnt desc"; ORDER BY cnt desc';
$number_of_active_days = (DB::select($number_of_active_days)[0]->cnt ? DB::select($number_of_active_days)[0]->cnt : -1); $number_of_active_days = (DB::select($number_of_active_days)[0]->cnt ? DB::select($number_of_active_days)[0]->cnt : -1);
$activity_time = DB::select($temp_sql_for_activity_time)[0]->activity; $activity_time = DB::select($temp_sql_for_activity_time)[0]->activity;
@@ -400,20 +350,21 @@ class UserManagementController extends Controller
'number_of_active_days' => $number_of_active_days, 'number_of_active_days' => $number_of_active_days,
'activity_time' => $user->id ? $activity_time : null, 'activity_time' => $user->id ? $activity_time : null,
'average_activity_time' => round(($user->id ? $activity_time : 0) / $number_of_active_days, 2) , 'average_activity_time' => round(($user->id ? $activity_time : 0) / $number_of_active_days, 2),
'number_of_activities' => $number_of_activities , 'number_of_activities' => $number_of_activities,
'average_activity_number' => round(($user->id ? $number_of_activities : 0) / $number_of_active_days, 2) , 'average_activity_number' => round(($user->id ? $number_of_activities : 0) / $number_of_active_days, 2),
'activity_list' => $user->id ? DB::select($temp_sql_for_activity_list) : null, 'activity_list' => $user->id ? DB::select($temp_sql_for_activity_list) : null,
'last_login' => $user->last_login, 'last_login' => $user->last_login,
]; ];
return $data; return $data;
} }
public function printGroup(User $user, Request $request) public function printGroup(User $user, Request $request)
{ {
$request->fromDate = $request->fromDate ? $request->fromDate . " 00:00:00" : Carbon::now()->format('Y-m-d 00:00:00') ; $request->fromDate = $request->fromDate ? $request->fromDate.' 00:00:00' : Carbon::now()->format('Y-m-d 00:00:00');
$request->toDate = $request->toDate ? $request->toDate . " 23:59:59" : Carbon::now()->format('Y-m-d 23:59:59'); $request->toDate = $request->toDate ? $request->toDate.' 23:59:59' : Carbon::now()->format('Y-m-d 23:59:59');
$data = []; $data = [];
@@ -421,21 +372,20 @@ class UserManagementController extends Controller
// $users = $role->users()->select("*")->get()->toArray(); // $users = $role->users()->select("*")->get()->toArray();
// foreach ($user as $index => $item) { // foreach ($user as $index => $item) {
$user_activity_quantity_temp[$user->id] = [ $user_activity_quantity_temp[$user->id] = [
"majmoe" => 0, 'majmoe' => 0,
"name" => $user->first_name ? $user->first_name." ".$user->last_name." (".$user->username.")" : $user->name." (".$user->username.")", 'name' => $user->first_name ? $user->first_name.' '.$user->last_name.' ('.$user->username.')' : $user->name.' ('.$user->username.')',
]; ];
$user_activity_time_temp[$user->id] = [ $user_activity_time_temp[$user->id] = [
"majmoe" => 0, 'majmoe' => 0,
"name" => $user->first_name ? $user->first_name." ".$user->last_name." (".$user->username.")" : $user->name."(".$user->username.")", 'name' => $user->first_name ? $user->first_name.' '.$user->last_name.' ('.$user->username.')' : $user->name.'('.$user->username.')',
]; ];
$user_activity_top_5_temp[$user->id] = [ $user_activity_top_5_temp[$user->id] = [
"activity_list" => [], 'activity_list' => [],
"name" => $user->first_name ? $user->first_name." ".$user->last_name." (".$user->username.")" : $user->name."(".$user->username.")", 'name' => $user->first_name ? $user->first_name.' '.$user->last_name.' ('.$user->username.')' : $user->name.'('.$user->username.')',
]; ];
// if (!$index) { // if (!$index) {
$ids_list = $user->id; $ids_list = $user->id;
// } else { // } else {
@@ -450,7 +400,7 @@ class UserManagementController extends Controller
COUNT(*) AS quantity COUNT(*) AS quantity
FROM user_activity_logs FROM user_activity_logs
WHERE created_at between '{$request->fromDate}' and '{$request->toDate}' and user_id IN(".$ids_list.") WHERE created_at between '{$request->fromDate}' and '{$request->toDate}' and user_id IN(".$ids_list.')
GROUP BY yy, GROUP BY yy,
mm, mm,
@@ -458,18 +408,18 @@ class UserManagementController extends Controller
hh, hh,
user_id user_id
) user_activity_by_hour_and_ ) user_activity_by_hour_and_
GROUP BY user_id) AS calculated_table;"; GROUP BY user_id) AS calculated_table;';
$quantitative_activity_chart_sql = " $quantitative_activity_chart_sql = "
SELECT created_at, SELECT created_at,
COUNT(*) AS quantity COUNT(*) AS quantity
FROM user_activity_logs FROM user_activity_logs
WHERE created_at between '{$request->fromDate}' and '{$request->toDate}' and user_id IN(".$ids_list.") WHERE created_at between '{$request->fromDate}' and '{$request->toDate}' and user_id IN(".$ids_list.')
GROUP BY GROUP BY
yy, yy,
mm, mm,
dd ;"; dd ;';
$hourly_activity_chart_sql = " $hourly_activity_chart_sql = "
SELECT SELECT
@@ -481,7 +431,7 @@ class UserManagementController extends Controller
hh, hh,
COUNT(*) AS quantity COUNT(*) AS quantity
FROM user_activity_logs FROM user_activity_logs
WHERE created_at between '{$request->fromDate}' and '{$request->toDate}' and user_id IN(".$ids_list.") WHERE created_at between '{$request->fromDate}' and '{$request->toDate}' and user_id IN(".$ids_list.')
GROUP BY yy, GROUP BY yy,
mm, mm,
dd, dd,
@@ -491,14 +441,13 @@ class UserManagementController extends Controller
GROUP BY GROUP BY
yy, yy,
mm, mm,
dd;"; dd;';
$total_activity_quantity_sql = " $total_activity_quantity_sql = "
SELECT COUNT(*) AS total_activity_quantity SELECT COUNT(*) AS total_activity_quantity
FROM user_activity_logs FROM user_activity_logs
WHERE created_at between '{$request->fromDate}' and '{$request->toDate}' and user_id IN(".$ids_list.") WHERE created_at between '{$request->fromDate}' and '{$request->toDate}' and user_id IN(".$ids_list.')
"; ';
$top_10_activity_list_sql = " $top_10_activity_list_sql = "
SELECT *, SELECT *,
@@ -508,13 +457,12 @@ class UserManagementController extends Controller
description, description,
log_unique_code log_unique_code
FROM user_activity_logs FROM user_activity_logs
WHERE created_at between '{$request->fromDate}' and '{$request->toDate}' and user_id IN(".$ids_list.") WHERE created_at between '{$request->fromDate}' and '{$request->toDate}' and user_id IN(".$ids_list.')
) user_activity_distinct ) user_activity_distinct
GROUP BY GROUP BY
log_unique_code log_unique_code
ORDER BY quantity desc ORDER BY quantity desc
LIMIT 10"; LIMIT 10';
$user_activity_quantity_sql = " $user_activity_quantity_sql = "
SELECT *, SELECT *,
@@ -527,10 +475,10 @@ class UserManagementController extends Controller
user_name, user_name,
username username
FROM user_activity_logs FROM user_activity_logs
WHERE created_at between '{$request->fromDate}' and '{$request->toDate}' and user_id IN(".$ids_list.") WHERE created_at between '{$request->fromDate}' and '{$request->toDate}' and user_id IN(".$ids_list.')
) user_activity_distinct ) user_activity_distinct
GROUP BY user_id GROUP BY user_id
ORDER BY quantity desc"; ORDER BY quantity desc';
$active_user_count_sql = " $active_user_count_sql = "
SELECT COUNT(*) AS active_user_count SELECT COUNT(*) AS active_user_count
@@ -538,9 +486,9 @@ class UserManagementController extends Controller
SELECT SELECT
user_id user_id
FROM user_activity_logs FROM user_activity_logs
WHERE created_at between '{$request->fromDate}' and '{$request->toDate}' and user_id IN(".$ids_list.") WHERE created_at between '{$request->fromDate}' and '{$request->toDate}' and user_id IN(".$ids_list.')
GROUP BY user_id GROUP BY user_id
) grpuped_by_user_id"; ) grpuped_by_user_id';
$user_activity_time_sql = " $user_activity_time_sql = "
select select
@@ -555,7 +503,7 @@ class UserManagementController extends Controller
user_id, user_id,
COUNT(*) AS quantity COUNT(*) AS quantity
FROM user_activity_logs FROM user_activity_logs
WHERE created_at between '{$request->fromDate}' and '{$request->toDate}' and user_id IN(".$ids_list.") WHERE created_at between '{$request->fromDate}' and '{$request->toDate}' and user_id IN(".$ids_list.')
GROUP BY yy, GROUP BY yy,
mm, mm,
dd, dd,
@@ -563,19 +511,19 @@ class UserManagementController extends Controller
user_id user_id
) user_activity_by_hour_and_ ) user_activity_by_hour_and_
GROUP BY user_id GROUP BY user_id
ORDER BY majmoe desc;"; ORDER BY majmoe desc;';
foreach (DB::select($user_activity_quantity_sql) as $key => $value) { foreach (DB::select($user_activity_quantity_sql) as $key => $value) {
$user_activity_quantity_temp[$value->user_id] = [ $user_activity_quantity_temp[$value->user_id] = [
"majmoe" => $value->quantity ?? 0, 'majmoe' => $value->quantity ?? 0,
"name" => $value->user_first_name ? $value->user_first_name." ".$value->user_last_name." (".$value->username.")" : $value->user_name." (".$value->username.")", 'name' => $value->user_first_name ? $value->user_first_name.' '.$value->user_last_name.' ('.$value->username.')' : $value->user_name.' ('.$value->username.')',
]; ];
} }
foreach (DB::select($user_activity_time_sql) as $key => $value) { foreach (DB::select($user_activity_time_sql) as $key => $value) {
$user_activity_time_temp[$value->user_id] = [ $user_activity_time_temp[$value->user_id] = [
"majmoe" => $value->majmoe ?? 0, 'majmoe' => $value->majmoe ?? 0,
"name" => $value->user_first_name ? $value->user_first_name." ".$value->user_last_name." (".$value->username.")" : $value->user_name." (".$value->username.")", 'name' => $value->user_first_name ? $value->user_first_name.' '.$value->user_last_name.' ('.$value->username.')' : $value->user_name.' ('.$value->username.')',
]; ];
} }
@@ -597,9 +545,9 @@ class UserManagementController extends Controller
$sum += (int) $item->quantity; $sum += (int) $item->quantity;
} }
$user_activity_top_5_temp[$key] = [ $user_activity_top_5_temp[$key] = [
"sum" => $sum, 'sum' => $sum,
"name" => $value['name'], 'name' => $value['name'],
"activity_list" => $activity_list, 'activity_list' => $activity_list,
]; ];
} }
arsort($user_activity_top_5_temp); arsort($user_activity_top_5_temp);
@@ -615,19 +563,21 @@ class UserManagementController extends Controller
'total_activity_time' => $ids_list ? DB::select($total_activity_time_sql)[0]->activity : null, 'total_activity_time' => $ids_list ? DB::select($total_activity_time_sql)[0]->activity : null,
'top_10_activity_list' => $ids_list ? DB::select($top_10_activity_list_sql) : null, 'top_10_activity_list' => $ids_list ? DB::select($top_10_activity_list_sql) : null,
'user_activity_quantity' => $ids_list ? $user_activity_quantity_temp : null, 'user_activity_quantity' => $ids_list ? $user_activity_quantity_temp : null,
'group_name' => $user->first_name." ".$user->last_name, 'group_name' => $user->first_name.' '.$user->last_name,
'average' => round(($ids_list ? DB::select($total_activity_time_sql)[0]->activity : 0) / 1, 2) , 'average' => round(($ids_list ? DB::select($total_activity_time_sql)[0]->activity : 0) / 1, 2),
'user_activity_top_5_temp' => $user_activity_top_5_temp, 'user_activity_top_5_temp' => $user_activity_top_5_temp,
'total_user_count' => 1, 'total_user_count' => 1,
'active_user_count' => $ids_list ? DB::select($active_user_count_sql)[0]->active_user_count : null, 'active_user_count' => $ids_list ? DB::select($active_user_count_sql)[0]->active_user_count : null,
'group_id' => $user->id 'group_id' => $user->id,
]; ];
return View('word.user-activity-individual', compact('data')); return View('word.user-activity-individual', compact('data'));
} }
public function userPermission($id) public function userPermission($id)
{ {
$user = User::find($id); $user = User::find($id);
return response()->json([ return response()->json([
'message' => 'success', 'message' => 'success',
'data' => $user->permissions, 'data' => $user->permissions,
@@ -639,57 +589,30 @@ class UserManagementController extends Controller
if (auth()->user()) { if (auth()->user()) {
auth()->user()->addActivityComplete(1042); auth()->user()->addActivityComplete(1042);
} }
$permissions = explode(",", $request->permissions); $permissions = explode(',', $request->permissions);
if (! $permissions == null) { if (! $permissions == null) {
$user->syncPermissions($permissions); $user->syncPermissions($permissions);
} }
return response()->json([ return response()->json([
'message' => 'status', 'message' => 'status',
'data' => User::where('id', $user->id)->with(['permissions'])->get() 'data' => User::where('id', $user->id)->with(['permissions'])->get(),
]);
}
public function showAllRoles(Request $request)
{
$roles = Role::where('for_report', 0)->get();
return response()->json([
'message' => 'success',
'data' => $roles
]);
}
public function deleteRole(Request $request, $id)
{
if (auth()->user()) {
auth()->user()->addActivityComplete(1045);
}
$role = Role::find($id)->delete();
return response()->json([
'message' => 'success',
'data' => 1
]); ]);
} }
public function changeUserEnabeld(User $user) public function changeUserEnabeld(User $user)
{ {
if (Auth::user()->checkUserHasPermission('full-user-management')) { if (Auth::user()->checkUserHasPermission('full-user-management')) {
$user->enabled = !$user->enabled; $user->enabled = ! $user->enabled;
$user->save();
return response()->json([ return $this->successResponse($user);
'message' => 'success'
], 200);
} elseif (Auth::user()->checkUserHasPermission('limited-user-management') && Auth::user()->province_id == $user->province_id) { } elseif (Auth::user()->checkUserHasPermission('limited-user-management') && Auth::user()->province_id == $user->province_id) {
$user->enabled = !$user->enabled; $user->enabled = ! $user->enabled;
$user->save();
return response()->json([ return $this->successResponse();
'message' => 'success'
], 200);
} else { } else {
return response()->json([ return response()->json([
'message' => 'Forbidden' 'message' => 'Forbidden',
], 403); ], 403);
} }
} }

View File

@@ -19,12 +19,13 @@ class FMSVehicleManagementController extends Controller
public function getActivity(Request $request, GetVehicleActivityService $getVehicleActivityService): JsonResponse public function getActivity(Request $request, GetVehicleActivityService $getVehicleActivityService): JsonResponse
{ {
$getVehicleActivityService->setInputParameters([ $getVehicleActivityService->setInputParameters([
"machineCode" => $request->machineCode, 'machineCode' => $request->machineCode,
"startDT" => $request->startDT, 'startDT' => $request->startDT,
"endDT" => $request->endDT, 'endDT' => $request->endDT,
]); ]);
$data = $getVehicleActivityService->run(); $data = $getVehicleActivityService->run();
return $this->successResponse($data); return $this->successResponse($data);
} }
} }

View File

@@ -2,14 +2,13 @@
namespace App\Http\Controllers\V3\Harim; namespace App\Http\Controllers\V3\Harim;
use App\Facades\DataTable\DataTableFacade;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\Harim\Divarkeshi;
use App\Http\Requests\V3\Harim\Divarkeshi\StoreRequest; use App\Http\Requests\V3\Harim\Divarkeshi\StoreRequest;
use App\Http\Traits\ApiResponse; use App\Http\Traits\ApiResponse;
use App\Models\Harim\Divarkeshi;
use Illuminate\Http\JsonResponse; use Illuminate\Http\JsonResponse;
use App\Facades\DataTable\DataTableFacade; use Illuminate\Http\Request;
class DivarkeshiController extends Controller class DivarkeshiController extends Controller
{ {
@@ -17,7 +16,7 @@ class DivarkeshiController extends Controller
public function index(Request $request): JsonResponse public function index(Request $request): JsonResponse
{ {
$columns = array( $columns = [
'dabirkhaneh_number', 'dabirkhaneh_number',
'nameh_date', 'nameh_date',
'nameh_date_fa', 'nameh_date_fa',
@@ -72,7 +71,7 @@ class DivarkeshiController extends Controller
'shomare_daftarkhaneh', 'shomare_daftarkhaneh',
'description', 'description',
'ronevesht', 'ronevesht',
); ];
$allowedFilters = $columns; $allowedFilters = $columns;
$allowedSortings = $columns; $allowedSortings = $columns;
@@ -160,5 +159,4 @@ class DivarkeshiController extends Controller
{ {
return $this->successResponse($divarkeshi); return $this->successResponse($divarkeshi);
} }
} }

View File

@@ -8,8 +8,8 @@ use App\Http\Requests\V3\LogList\StoreRequest;
use App\Http\Requests\V3\LogList\UpdateRequest; use App\Http\Requests\V3\LogList\UpdateRequest;
use App\Http\Traits\ApiResponse; use App\Http\Traits\ApiResponse;
use App\Models\LogList; use App\Models\LogList;
use Illuminate\Http\Request;
use Illuminate\Http\JsonResponse; use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
class LogListManagementController extends Controller class LogListManagementController extends Controller
{ {
@@ -52,12 +52,14 @@ class LogListManagementController extends Controller
'log_unique_code' => $request->log_unique_code, 'log_unique_code' => $request->log_unique_code,
'action_type' => $request->action_type, 'action_type' => $request->action_type,
]); ]);
return $this->successResponse(); return $this->successResponse();
} }
public function destroy(LogList $logList): JsonResponse public function destroy(LogList $logList): JsonResponse
{ {
$logList->delete(); $logList->delete();
return $this->successResponse(); return $this->successResponse();
} }
} }

View File

@@ -11,7 +11,6 @@ use App\Models\Mission;
use App\Models\RoadItemsProject; use App\Models\RoadItemsProject;
use App\Models\RoadObserved; use App\Models\RoadObserved;
use App\Models\SafetyAndPrivacy; use App\Models\SafetyAndPrivacy;
use App\Models\User;
use Illuminate\Http\JsonResponse; use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Throwable; use Throwable;
@@ -22,6 +21,7 @@ class NotificationController extends Controller
/** /**
* Handle the incoming request. * Handle the incoming request.
*
* @throws Throwable * @throws Throwable
*/ */
public function __invoke(Request $request): JsonResponse public function __invoke(Request $request): JsonResponse
@@ -41,7 +41,7 @@ class NotificationController extends Controller
{ {
$user = auth()->user(); $user = auth()->user();
$road_items = [ $road_items = [
'total' => 0 'total' => 0,
]; ];
if ($user->hasPermissionTo('create-road-item')) { if ($user->hasPermissionTo('create-road-item')) {
@@ -60,9 +60,8 @@ class NotificationController extends Controller
->count(); ->count();
$road_items['total'] += $road_items['supervise_cnt']; $road_items['total'] += $road_items['supervise_cnt'];
} } elseif ($user->hasPermissionTo('supervise-road-item-province')) {
elseif ($user->hasPermissionTo('supervise-road-item-province')) { throw_if(is_null($user->province_id) || ! $user->province_id, new ProhibitedAction('استانی برای شما در سامانه ثبت نشده است!'));
throw_if(is_null($user->province_id) || !$user->province_id, new ProhibitedAction('استانی برای شما در سامانه ثبت نشده است!'));
$road_items['supervise_cnt'] = RoadItemsProject::query() $road_items['supervise_cnt'] = RoadItemsProject::query()
->where('is_new', '=', 1) ->where('is_new', '=', 1)
@@ -71,20 +70,20 @@ class NotificationController extends Controller
->count(); ->count();
$road_items['total'] += $road_items['supervise_cnt']; $road_items['total'] += $road_items['supervise_cnt'];
} } elseif ($user->hasPermissionTo('supervise-road-item-by-edareostani')) {
elseif ($user->hasPermissionTo('supervise-road-item-by-edareostani')) { throw_if(is_null($user->edarate_ostani_id) || ! $user->edarate_ostani_id, new ProhibitedAction('اداره ای برای شما در سامانه ثبت نشده است!'));
throw_if(is_null($user->edarate_ostani_id) || !$user->edarate_ostani_id, new ProhibitedAction('اداره ای برای شما در سامانه ثبت نشده است!'));
$confirmableItems = EdarateOstani::query()->where('id', '=', $user->edarate_ostani_id)->value('items_for_confirm'); $confirmableItems = EdarateOstani::query()->where('id', '=', $user->edarate_ostani_id)->value('items_for_confirm');
$road_items['supervise_cnt'] = RoadItemsProject::query() $road_items['supervise_cnt'] = RoadItemsProject::query()
->where('is_new', '=', 1) ->where('is_new', '=', 1)
->where('province_id', '=', $user->province_id) ->where('province_id', '=', $user->province_id)
->whereIn('item', explode(",", $confirmableItems)) ->whereIn('item', explode(',', $confirmableItems))
->where('status', '=', 0) ->where('status', '=', 0)
->count(); ->count();
$road_items['total'] += $road_items['supervise_cnt']; $road_items['total'] += $road_items['supervise_cnt'];
} }
return $road_items; return $road_items;
} }
@@ -94,15 +93,14 @@ class NotificationController extends Controller
private function safetyAndPrivacyNotifications(): JsonResponse|array private function safetyAndPrivacyNotifications(): JsonResponse|array
{ {
$user = auth()->user(); $user = auth()->user();
$safety_and_privacy = array(); $safety_and_privacy = [];
if ($user->hasPermissionTo('show-safety-and-privacy-operator-cartable')) { if ($user->hasPermissionTo('show-safety-and-privacy-operator-cartable')) {
$safety_and_privacy['supervise_cnt'] = SafetyAndPrivacy::query() $safety_and_privacy['supervise_cnt'] = SafetyAndPrivacy::query()
->where('is_finished', '=', 1) ->where('is_finished', '=', 1)
->where('status', '=', 0) ->where('status', '=', 0)
->count(); ->count();
} } elseif ($user->hasPermissionTo('show-safety-and-privacy-operator-cartable-province')) {
elseif ($user->hasPermissionTo('show-safety-and-privacy-operator-cartable-province')) {
throw_if(is_null($user->province_id), new ProhibitedAction('استانی برای شما در سامانه ثبت نشده است!')); throw_if(is_null($user->province_id), new ProhibitedAction('استانی برای شما در سامانه ثبت نشده است!'));
$safety_and_privacy['supervise_cnt'] = SafetyAndPrivacy::query() $safety_and_privacy['supervise_cnt'] = SafetyAndPrivacy::query()
@@ -110,8 +108,7 @@ class NotificationController extends Controller
->where('is_finished', '=', 1) ->where('is_finished', '=', 1)
->where('status', '=', 0) ->where('status', '=', 0)
->count(); ->count();
} } elseif ($user->hasPermissionTo('show-safety-and-privacy-operator-cartable-edarate-shahri')) {
elseif ($user->hasPermissionTo('show-safety-and-privacy-operator-cartable-edarate-shahri')) {
throw_if(is_null($user->edarate_shahri_id), new ProhibitedAction('اداره ای برای شما در سامانه ثبت نشده است!')); throw_if(is_null($user->edarate_shahri_id), new ProhibitedAction('اداره ای برای شما در سامانه ثبت نشده است!'));
$activity = SafetyAndPrivacy::query() $activity = SafetyAndPrivacy::query()
@@ -142,45 +139,43 @@ class NotificationController extends Controller
'total' => 0, 'total' => 0,
'operation_cnt' => 0, 'operation_cnt' => 0,
'complaint_cnt' => 0, 'complaint_cnt' => 0,
'supervise_cnt' => 0 'supervise_cnt' => 0,
]; ];
if ($user->hasPermissionTo('show-fast-react')) { if ($user->hasPermissionTo('show-fast-react')) {
$road_observations['supervise_cnt'] = RoadObserved::query()->where([ $road_observations['supervise_cnt'] = RoadObserved::query()->where([
['rms_status', '<>', 0], ['rms_status', '<>', 0],
['status', '=', 0] ['status', '=', 0],
])->count(); ])->count();
$road_observations['complaint_cnt'] = RoadObserved::query()->where('rms_status', '=', 0) $road_observations['complaint_cnt'] = RoadObserved::query()->where('rms_status', '=', 0)
->whereNotNull('edarate_shahri_id') ->whereNotNull('edarate_shahri_id')
->count(); ->count();
} } elseif ($user->hasPermissionTo('show-fast-react-province')) {
elseif ($user->hasPermissionTo('show-fast-react-province')) {
throw_if(is_null($user->province_id), new ProhibitedAction('استانی برای شما در سامانه ثبت نشده است!')); throw_if(is_null($user->province_id), new ProhibitedAction('استانی برای شما در سامانه ثبت نشده است!'));
$road_observations['supervise_cnt'] = RoadObserved::query()->where([ $road_observations['supervise_cnt'] = RoadObserved::query()->where([
['rms_status', '<>', 0], ['rms_status', '<>', 0],
['status', '=', 0], ['status', '=', 0],
['province_id', '=', $user->province_id] ['province_id', '=', $user->province_id],
])->count(); ])->count();
$road_observations['complaint_cnt'] = RoadObserved::query()->where([ $road_observations['complaint_cnt'] = RoadObserved::query()->where([
['rms_status', '=', 0], ['rms_status', '=', 0],
['province_id', '=', $user->province_id] ['province_id', '=', $user->province_id],
])->count(); ])->count();
} } elseif ($user->hasPermissionTo('show-fast-react-edarate-shahri')) {
elseif ($user->hasPermissionTo('show-fast-react-edarate-shahri')) {
throw_if(is_null($user->edarate_shahri_id), new ProhibitedAction('اداره ای برای شما در سامانه ثبت نشده است!')); throw_if(is_null($user->edarate_shahri_id), new ProhibitedAction('اداره ای برای شما در سامانه ثبت نشده است!'));
$road_observations['operation_cnt'] = RoadObserved::query()->where([ $road_observations['operation_cnt'] = RoadObserved::query()->where([
['rms_status', '<>', 0], ['rms_status', '<>', 0],
['status', '=', 2], ['status', '=', 2],
['edarate_shahri_id', '=', $user->edarate_shahri_id] ['edarate_shahri_id', '=', $user->edarate_shahri_id],
])->count(); ])->count();
$road_observations['complaint_cnt'] = RoadObserved::query()->where([ $road_observations['complaint_cnt'] = RoadObserved::query()->where([
['rms_status', '=', 0], ['rms_status', '=', 0],
['edarate_shahri_id', '=', $user->edarate_shahri_id] ['edarate_shahri_id', '=', $user->edarate_shahri_id],
])->count(); ])->count();
} }
@@ -196,7 +191,7 @@ class NotificationController extends Controller
'request_portal' => Mission::query() 'request_portal' => Mission::query()
->where([ ->where([
['state_id', '=', MissionStates::REJECT_BY_TRANSPORTATION->value], ['state_id', '=', MissionStates::REJECT_BY_TRANSPORTATION->value],
['user_id', '=', $user->id] ['user_id', '=', $user->id],
])->count(), ])->count(),
'transportation' => 0, 'transportation' => 0,
'control' => 0, 'control' => 0,
@@ -205,13 +200,13 @@ class NotificationController extends Controller
if ($user->hasPermissionTo('manage-transportation-unit')) { if ($user->hasPermissionTo('manage-transportation-unit')) {
$missions['transportation'] = Mission::query()->where([ $missions['transportation'] = Mission::query()->where([
['state_id', '=', MissionStates::REQUEST_CREATED->value], ['state_id', '=', MissionStates::REQUEST_CREATED->value],
['edare_shahri_id', '=', $user->edarate_shahri_id] ['edare_shahri_id', '=', $user->edarate_shahri_id],
])->count(); ])->count();
} }
if ($user->hasPermissionTo('manage-control-unit')) { if ($user->hasPermissionTo('manage-control-unit')) {
$missions['control'] = Mission::query()->where([ $missions['control'] = Mission::query()->where([
['state_id', '=', MissionStates::PENDING_CONFIRMATION->value], ['state_id', '=', MissionStates::PENDING_CONFIRMATION->value],
['edare_shahri_id', '=', $user->edarate_shahri_id] ['edare_shahri_id', '=', $user->edarate_shahri_id],
])->count(); ])->count();
} }

View File

@@ -14,6 +14,7 @@ use Illuminate\Http\Request;
class PermissionManagementController extends Controller class PermissionManagementController extends Controller
{ {
use ApiResponse; use ApiResponse;
/** /**
* Display a listing of the resource. * Display a listing of the resource.
*/ */
@@ -78,6 +79,7 @@ class PermissionManagementController extends Controller
public function destroy(Permission $permission): JsonResponse public function destroy(Permission $permission): JsonResponse
{ {
$permission->delete(); $permission->delete();
return $this->successResponse(); return $this->successResponse();
} }
} }

View File

@@ -2,21 +2,20 @@
namespace App\Http\Controllers\V3; namespace App\Http\Controllers\V3;
use App\Facades\File\FileFacade;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use App\Http\Requests\V3\Profile\ChangePasswordRequest; use App\Http\Requests\V3\Profile\ChangePasswordRequest;
use App\Http\Requests\V3\Profile\EditRequest; use App\Http\Requests\V3\Profile\EditRequest;
use App\Http\Traits\ApiResponse; use App\Http\Traits\ApiResponse;
use Illuminate\Http\JsonResponse; use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Storage;
class ProfileController extends Controller class ProfileController extends Controller
{ {
use ApiResponse; use ApiResponse;
public function info(): JsonResponse public function info(): JsonResponse
{ {
$user = Auth::user(); $user = Auth::user();
@@ -32,7 +31,7 @@ class ProfileController extends Controller
'degree' => $user->degree, 'degree' => $user->degree,
'mobile' => $user->mobile, 'mobile' => $user->mobile,
'province_id' => $user->province_id, 'province_id' => $user->province_id,
'avatar' => $user->avatarUrl() 'avatar' => $user->avatarUrl(),
]); ]);
} }
@@ -40,16 +39,15 @@ class ProfileController extends Controller
{ {
$user = Auth::user(); $user = Auth::user();
if ($request->has('avatar')) if ($request->has('avatar')) {
{
if ($user->avatar) { if ($user->avatar) {
File::delete($user->avatar); File::delete($user->avatar);
} }
$destinationPath = 'avatar/' . $user->username; $destinationPath = 'avatar/'.$user->username;
$filename = time() .".". $request->file('avatar')->getClientOriginalExtension(); $filename = time().'.'.$request->file('avatar')->getClientOriginalExtension();
$request->file('avatar')->storeAs($destinationPath, $filename, 'public'); $request->file('avatar')->storeAs($destinationPath, $filename, 'public');
$avatar = 'storage/'.$destinationPath ."/". $filename; $avatar = 'storage/'.$destinationPath.'/'.$filename;
} }
$user->update([ $user->update([
@@ -58,7 +56,7 @@ class ProfileController extends Controller
'major' => $request->major, 'major' => $request->major,
'degree' => $request->degree, 'degree' => $request->degree,
'mobile' => $request->mobile, 'mobile' => $request->mobile,
'avatar' => $avatar ?? $user->avatar 'avatar' => $avatar ?? $user->avatar,
]); ]);
return $this->successResponse(); return $this->successResponse();
@@ -68,13 +66,12 @@ class ProfileController extends Controller
{ {
$user = Auth::user(); $user = Auth::user();
if (! Hash::check($request->current_password, $user->password)) if (! Hash::check($request->current_password, $user->password)) {
{
return $this->errorResponse(__('messages.incorrect_current_password')); return $this->errorResponse(__('messages.incorrect_current_password'));
} }
$user->update([ $user->update([
'password' => Hash::make($request->new_password) 'password' => Hash::make($request->new_password),
]); ]);
return $this->successResponse(); return $this->successResponse();
@@ -84,6 +81,7 @@ class ProfileController extends Controller
public function addActivity(Request $request): JsonResponse public function addActivity(Request $request): JsonResponse
{ {
auth()->user()->addActivityComplete($request->activityCode); auth()->user()->addActivityComplete($request->activityCode);
return $this->successResponse(); return $this->successResponse();
} }
} }

View File

@@ -67,9 +67,9 @@ class RahdaranController extends Controller
$edareh = EdarateShahri::query()->find($request->input('edareh_shahri_id')); $edareh = EdarateShahri::query()->find($request->input('edareh_shahri_id'));
$rahdaran->update([ $rahdaran->update([
'name' =>$request->name, 'name' => $request->name,
'code' =>$request->code, 'code' => $request->code,
'mobile' =>$request->mobile, 'mobile' => $request->mobile,
'province_id' => $province->id, 'province_id' => $province->id,
'province_name' => $province->name_fa, 'province_name' => $province->name_fa,
'edareh_shahri_id' => $request->edareh_shahri_id, 'edareh_shahri_id' => $request->edareh_shahri_id,
@@ -84,9 +84,9 @@ class RahdaranController extends Controller
{ {
try { try {
$rahdaran->delete(); $rahdaran->delete();
return $this->successResponse(); return $this->successResponse();
} } catch (QueryException $exception) {
catch (QueryException $exception) {
return $this->errorResponse('امکان حذف وجود ندارد'); return $this->errorResponse('امکان حذف وجود ندارد');
} }
} }

View File

@@ -11,6 +11,7 @@ use Illuminate\Http\JsonResponse;
class RoadItemController extends Controller class RoadItemController extends Controller
{ {
use ApiResponse; use ApiResponse;
public function index(IndexRequest $request): JsonResponse public function index(IndexRequest $request): JsonResponse
{ {
$fromDate = $request->from_date; $fromDate = $request->from_date;

View File

@@ -7,7 +7,6 @@ use App\Http\Requests\V3\WebServices\RoadMaintenanceStation\IndexRequest;
use App\Http\Traits\ApiResponse; use App\Http\Traits\ApiResponse;
use App\Models\RahdariPoint; use App\Models\RahdariPoint;
use Illuminate\Http\JsonResponse; use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
class RoadMaintenanceStationController extends Controller class RoadMaintenanceStationController extends Controller
{ {
@@ -22,11 +21,11 @@ class RoadMaintenanceStationController extends Controller
$data = RahdariPoint::query() $data = RahdariPoint::query()
->when($status, fn ($query, $status) => $query->where('status', $status)) ->when($status, fn ($query, $status) => $query->where('status', $status))
->when($type, fn ($query, $type) => $query->where('type', $type)) ->when($type, fn ($query, $type) => $query->where('type', $type))
->when($province, fn($query, $province) => $query->where('province_id', $province)) ->when($province, fn ($query, $province) => $query->where('province_id', $province))
->get([ ->get([
'id', 'province_name', 'city_name', 'name', 'status', 'type_fa', 'phone', 'id', 'province_name', 'city_name', 'name', 'status', 'type_fa', 'phone',
'code', 'lat', 'lng', 'code', 'lat', 'lng',
]); ]);
return $this->successResponse($data); return $this->successResponse($data);
} }

View File

@@ -2,11 +2,9 @@
namespace App\Http\Requests\V3\AccidentReceipt; namespace App\Http\Requests\V3\AccidentReceipt;
use App\Enums\AccidentStates;
use Illuminate\Contracts\Validation\ValidationRule; use Illuminate\Contracts\Validation\ValidationRule;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
use Illuminate\Validation\Rule;
class ChangeStatusRequest extends FormRequest class ChangeStatusRequest extends FormRequest
{ {
@@ -15,7 +13,7 @@ class ChangeStatusRequest extends FormRequest
*/ */
public function authorize(): bool public function authorize(): bool
{ {
return Auth::user()->hasPermissionTo('change-accident-status'); return Auth::user()->hasPermissionTo('change-accident-status');
} }
/** /**

View File

@@ -3,7 +3,7 @@
namespace App\Http\Requests\V3\AccidentReceipt; namespace App\Http\Requests\V3\AccidentReceipt;
use App\Enums\AccidentStates; use App\Enums\AccidentStates;
use App\Models\Accident; use Illuminate\Contracts\Validation\ValidationRule;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
class ConfirmPaymentInfoRequest extends FormRequest class ConfirmPaymentInfoRequest extends FormRequest
@@ -14,14 +14,16 @@ class ConfirmPaymentInfoRequest extends FormRequest
public function authorize(): bool public function authorize(): bool
{ {
return in_array($this->accident->status, return in_array($this->accident->status,
[AccidentStates::SODOR_NAME_BIME_VA_DAGHI->value, AccidentStates::SABT_FISH->value] [
); AccidentStates::SODOR_NAME_BIME_VA_DAGHI->value,
AccidentStates::SABT_FISH->value
]);
} }
/** /**
* Get the validation rules that apply to the request. * Get the validation rules that apply to the request.
* *
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string> * @return array<string, ValidationRule|array|string>
*/ */
public function rules(): array public function rules(): array
{ {

View File

@@ -2,8 +2,7 @@
namespace App\Http\Requests\V3\AccidentReceipt; namespace App\Http\Requests\V3\AccidentReceipt;
use App\Enums\AccidentStates; use Illuminate\Contracts\Validation\ValidationRule;
use App\Models\DailyAccidentSettings;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
class StoreRequest extends FormRequest class StoreRequest extends FormRequest
@@ -19,7 +18,7 @@ class StoreRequest extends FormRequest
/** /**
* Get the validation rules that apply to the request. * Get the validation rules that apply to the request.
* *
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string> * @return array<string, ValidationRule|array|string>
*/ */
public function rules(): array public function rules(): array
{ {

View File

@@ -3,6 +3,7 @@
namespace App\Http\Requests\V3\AccidentReceipt; namespace App\Http\Requests\V3\AccidentReceipt;
use App\Enums\AccidentStates; use App\Enums\AccidentStates;
use Illuminate\Contracts\Validation\ValidationRule;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
class SubmitInvoiceRequest extends FormRequest class SubmitInvoiceRequest extends FormRequest
@@ -18,7 +19,7 @@ class SubmitInvoiceRequest extends FormRequest
/** /**
* Get the validation rules that apply to the request. * Get the validation rules that apply to the request.
* *
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string> * @return array<string, ValidationRule|array|string>
*/ */
public function rules(): array public function rules(): array
{ {

View File

@@ -3,6 +3,7 @@
namespace App\Http\Requests\V3\AccidentReceipt; namespace App\Http\Requests\V3\AccidentReceipt;
use App\Enums\AccidentStates; use App\Enums\AccidentStates;
use Illuminate\Contracts\Validation\ValidationRule;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
class UpdateRequest extends FormRequest class UpdateRequest extends FormRequest
@@ -18,7 +19,7 @@ class UpdateRequest extends FormRequest
/** /**
* Get the validation rules that apply to the request. * Get the validation rules that apply to the request.
* *
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string> * @return array<string, ValidationRule|array|string>
*/ */
public function rules(): array public function rules(): array
{ {

View File

@@ -2,6 +2,7 @@
namespace App\Http\Requests\V3\Azmayesh; namespace App\Http\Requests\V3\Azmayesh;
use Illuminate\Contracts\Validation\ValidationRule;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
class StoreRequest extends FormRequest class StoreRequest extends FormRequest
@@ -17,7 +18,7 @@ class StoreRequest extends FormRequest
/** /**
* Get the validation rules that apply to the request. * Get the validation rules that apply to the request.
* *
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string> * @return array<string, ValidationRule|array|string>
*/ */
public function rules(): array public function rules(): array
{ {

View File

@@ -2,6 +2,7 @@
namespace App\Http\Requests\V3\Azmayesh; namespace App\Http\Requests\V3\Azmayesh;
use Illuminate\Contracts\Validation\ValidationRule;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
class UpdateRequest extends FormRequest class UpdateRequest extends FormRequest
@@ -17,7 +18,7 @@ class UpdateRequest extends FormRequest
/** /**
* Get the validation rules that apply to the request. * Get the validation rules that apply to the request.
* *
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string> * @return array<string, ValidationRule|array|string>
*/ */
public function rules(): array public function rules(): array
{ {

View File

@@ -2,6 +2,7 @@
namespace App\Http\Requests\V3\AzmayeshSample; namespace App\Http\Requests\V3\AzmayeshSample;
use Illuminate\Contracts\Validation\ValidationRule;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
class StoreRequest extends FormRequest class StoreRequest extends FormRequest
@@ -17,7 +18,7 @@ class StoreRequest extends FormRequest
/** /**
* Get the validation rules that apply to the request. * Get the validation rules that apply to the request.
* *
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string> * @return array<string, ValidationRule|array|string>
*/ */
public function rules(): array public function rules(): array
{ {

View File

@@ -2,6 +2,7 @@
namespace App\Http\Requests\V3\AzmayeshSample; namespace App\Http\Requests\V3\AzmayeshSample;
use Illuminate\Contracts\Validation\ValidationRule;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
class UpdateRequest extends FormRequest class UpdateRequest extends FormRequest
@@ -17,7 +18,7 @@ class UpdateRequest extends FormRequest
/** /**
* Get the validation rules that apply to the request. * Get the validation rules that apply to the request.
* *
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string> * @return array<string, ValidationRule|array|string>
*/ */
public function rules(): array public function rules(): array
{ {

View File

@@ -2,6 +2,7 @@
namespace App\Http\Requests\V3\AzmayeshType; namespace App\Http\Requests\V3\AzmayeshType;
use Illuminate\Contracts\Validation\ValidationRule;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
class StoreRequest extends FormRequest class StoreRequest extends FormRequest
@@ -17,7 +18,7 @@ class StoreRequest extends FormRequest
/** /**
* Get the validation rules that apply to the request. * Get the validation rules that apply to the request.
* *
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string> * @return array<string, ValidationRule|array|string>
*/ */
public function rules(): array public function rules(): array
{ {

View File

@@ -2,6 +2,7 @@
namespace App\Http\Requests\V3\AzmayeshType; namespace App\Http\Requests\V3\AzmayeshType;
use Illuminate\Contracts\Validation\ValidationRule;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
class UpdateRequest extends FormRequest class UpdateRequest extends FormRequest
@@ -17,7 +18,7 @@ class UpdateRequest extends FormRequest
/** /**
* Get the validation rules that apply to the request. * Get the validation rules that apply to the request.
* *
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string> * @return array<string, ValidationRule|array|string>
*/ */
public function rules(): array public function rules(): array
{ {

View File

@@ -2,6 +2,7 @@
namespace App\Http\Requests\V3\Damage; namespace App\Http\Requests\V3\Damage;
use Illuminate\Contracts\Validation\ValidationRule;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
class StoreRequest extends FormRequest class StoreRequest extends FormRequest
@@ -17,14 +18,14 @@ class StoreRequest extends FormRequest
/** /**
* Get the validation rules that apply to the request. * Get the validation rules that apply to the request.
* *
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string> * @return array<string, ValidationRule|array|string>
*/ */
public function rules(): array public function rules(): array
{ {
return [ return [
'title' =>'required|string|max:255|unique:damages,title', 'title' => 'required|string|max:255|unique:damages,title',
'unit' =>'required|string|max:255', 'unit' => 'required|string|max:255',
'base_price' =>'required|integer', 'base_price' => 'required|integer',
]; ];
} }
} }

View File

@@ -23,9 +23,9 @@ class UpdateRequest extends FormRequest
public function rules(): array public function rules(): array
{ {
return [ return [
'title' =>['required', 'string', 'max:255',Rule::unique('damages','title')->ignore($this->damage->id)], 'title' => ['required', 'string', 'max:255', Rule::unique('damages', 'title')->ignore($this->damage->id)],
'unit' =>'required|string', 'unit' => 'required|string',
'base_price' =>'required|integer', 'base_price' => 'required|integer',
]; ];
} }
} }

View File

@@ -3,6 +3,7 @@
namespace App\Http\Requests\V3\Dashboard\Harim\Deputy; namespace App\Http\Requests\V3\Dashboard\Harim\Deputy;
use App\Enums\HarimStates; use App\Enums\HarimStates;
use Illuminate\Contracts\Validation\ValidationRule;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
class ConfirmRequest extends FormRequest class ConfirmRequest extends FormRequest
@@ -19,7 +20,7 @@ class ConfirmRequest extends FormRequest
/** /**
* Get the validation rules that apply to the request. * Get the validation rules that apply to the request.
* *
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string> * @return array<string, ValidationRule|array|string>
*/ */
public function rules(): array public function rules(): array
{ {

View File

@@ -3,6 +3,7 @@
namespace App\Http\Requests\V3\Dashboard\Harim\Deputy; namespace App\Http\Requests\V3\Dashboard\Harim\Deputy;
use App\Enums\HarimStates; use App\Enums\HarimStates;
use Illuminate\Contracts\Validation\ValidationRule;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
class ReferRequest extends FormRequest class ReferRequest extends FormRequest
@@ -19,7 +20,7 @@ class ReferRequest extends FormRequest
/** /**
* Get the validation rules that apply to the request. * Get the validation rules that apply to the request.
* *
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string> * @return array<string, ValidationRule|array|string>
*/ */
public function rules(): array public function rules(): array
{ {

View File

@@ -3,6 +3,7 @@
namespace App\Http\Requests\V3\Dashboard\Harim\Deputy; namespace App\Http\Requests\V3\Dashboard\Harim\Deputy;
use App\Enums\HarimStates; use App\Enums\HarimStates;
use Illuminate\Contracts\Validation\ValidationRule;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
class ReferRoadAccessRequest extends FormRequest class ReferRoadAccessRequest extends FormRequest
@@ -19,7 +20,7 @@ class ReferRoadAccessRequest extends FormRequest
/** /**
* Get the validation rules that apply to the request. * Get the validation rules that apply to the request.
* *
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string> * @return array<string, ValidationRule|array|string>
*/ */
public function rules(): array public function rules(): array
{ {

View File

@@ -2,7 +2,7 @@
namespace App\Http\Requests\V3\Dashboard\Harim\Deputy; namespace App\Http\Requests\V3\Dashboard\Harim\Deputy;
use App\Enums\HarimStates; use Illuminate\Contracts\Validation\ValidationRule;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
class ShowRequest extends FormRequest class ShowRequest extends FormRequest
@@ -18,7 +18,7 @@ class ShowRequest extends FormRequest
/** /**
* Get the validation rules that apply to the request. * Get the validation rules that apply to the request.
* *
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string> * @return array<string, ValidationRule|array|string>
*/ */
public function rules(): array public function rules(): array
{ {

View File

@@ -3,6 +3,7 @@
namespace App\Http\Requests\V3\Dashboard\Harim\GeneralManager; namespace App\Http\Requests\V3\Dashboard\Harim\GeneralManager;
use App\Enums\HarimStates; use App\Enums\HarimStates;
use Illuminate\Contracts\Validation\ValidationRule;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
class ConfirmGuaranteeLetterNeedRequest extends FormRequest class ConfirmGuaranteeLetterNeedRequest extends FormRequest
@@ -19,7 +20,7 @@ class ConfirmGuaranteeLetterNeedRequest extends FormRequest
/** /**
* Get the validation rules that apply to the request. * Get the validation rules that apply to the request.
* *
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string> * @return array<string, ValidationRule|array|string>
*/ */
public function rules(): array public function rules(): array
{ {

View File

@@ -3,6 +3,7 @@
namespace App\Http\Requests\V3\Dashboard\Harim\GeneralManager; namespace App\Http\Requests\V3\Dashboard\Harim\GeneralManager;
use App\Enums\HarimStates; use App\Enums\HarimStates;
use Illuminate\Contracts\Validation\ValidationRule;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
class ConfirmNoRoadAccessNeedRequest extends FormRequest class ConfirmNoRoadAccessNeedRequest extends FormRequest
@@ -19,7 +20,7 @@ class ConfirmNoRoadAccessNeedRequest extends FormRequest
/** /**
* Get the validation rules that apply to the request. * Get the validation rules that apply to the request.
* *
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string> * @return array<string, ValidationRule|array|string>
*/ */
public function rules(): array public function rules(): array
{ {

View File

@@ -3,6 +3,7 @@
namespace App\Http\Requests\V3\Dashboard\Harim\GeneralManager; namespace App\Http\Requests\V3\Dashboard\Harim\GeneralManager;
use App\Enums\HarimStates; use App\Enums\HarimStates;
use Illuminate\Contracts\Validation\ValidationRule;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
class ConfirmRoadAccessEditNeedRequest extends FormRequest class ConfirmRoadAccessEditNeedRequest extends FormRequest
@@ -19,7 +20,7 @@ class ConfirmRoadAccessEditNeedRequest extends FormRequest
/** /**
* Get the validation rules that apply to the request. * Get the validation rules that apply to the request.
* *
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string> * @return array<string, ValidationRule|array|string>
*/ */
public function rules(): array public function rules(): array
{ {

View File

@@ -3,6 +3,7 @@
namespace App\Http\Requests\V3\Dashboard\Harim\GeneralManager; namespace App\Http\Requests\V3\Dashboard\Harim\GeneralManager;
use App\Enums\HarimStates; use App\Enums\HarimStates;
use Illuminate\Contracts\Validation\ValidationRule;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
class ConfirmRoadAccessNeedRequest extends FormRequest class ConfirmRoadAccessNeedRequest extends FormRequest
@@ -19,7 +20,7 @@ class ConfirmRoadAccessNeedRequest extends FormRequest
/** /**
* Get the validation rules that apply to the request. * Get the validation rules that apply to the request.
* *
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string> * @return array<string, ValidationRule|array|string>
*/ */
public function rules(): array public function rules(): array
{ {

View File

@@ -2,7 +2,7 @@
namespace App\Http\Requests\V3\Dashboard\Harim\GeneralManager; namespace App\Http\Requests\V3\Dashboard\Harim\GeneralManager;
use App\Enums\HarimStates; use Illuminate\Contracts\Validation\ValidationRule;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
class ShowRequest extends FormRequest class ShowRequest extends FormRequest
@@ -18,7 +18,7 @@ class ShowRequest extends FormRequest
/** /**
* Get the validation rules that apply to the request. * Get the validation rules that apply to the request.
* *
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string> * @return array<string, ValidationRule|array|string>
*/ */
public function rules(): array public function rules(): array
{ {

View File

@@ -3,6 +3,7 @@
namespace App\Http\Requests\V3\Dashboard\Harim\HarimOffice; namespace App\Http\Requests\V3\Dashboard\Harim\HarimOffice;
use App\Enums\HarimStates; use App\Enums\HarimStates;
use Illuminate\Contracts\Validation\ValidationRule;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
class FileAcceptedRequest extends FormRequest class FileAcceptedRequest extends FormRequest
@@ -19,7 +20,7 @@ class FileAcceptedRequest extends FormRequest
/** /**
* Get the validation rules that apply to the request. * Get the validation rules that apply to the request.
* *
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string> * @return array<string, ValidationRule|array|string>
*/ */
public function rules(): array public function rules(): array
{ {

View File

@@ -3,6 +3,7 @@
namespace App\Http\Requests\V3\Dashboard\Harim\HarimOffice; namespace App\Http\Requests\V3\Dashboard\Harim\HarimOffice;
use App\Enums\HarimStates; use App\Enums\HarimStates;
use Illuminate\Contracts\Validation\ValidationRule;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
class FileRejectedRequest extends FormRequest class FileRejectedRequest extends FormRequest
@@ -19,7 +20,7 @@ class FileRejectedRequest extends FormRequest
/** /**
* Get the validation rules that apply to the request. * Get the validation rules that apply to the request.
* *
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string> * @return array<string, ValidationRule|array|string>
*/ */
public function rules(): array public function rules(): array
{ {

View File

@@ -3,6 +3,7 @@
namespace App\Http\Requests\V3\Dashboard\Harim\HarimOffice; namespace App\Http\Requests\V3\Dashboard\Harim\HarimOffice;
use App\Enums\HarimStates; use App\Enums\HarimStates;
use Illuminate\Contracts\Validation\ValidationRule;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
class NeedRoadAccessRequest extends FormRequest class NeedRoadAccessRequest extends FormRequest
@@ -19,7 +20,7 @@ class NeedRoadAccessRequest extends FormRequest
/** /**
* Get the validation rules that apply to the request. * Get the validation rules that apply to the request.
* *
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string> * @return array<string, ValidationRule|array|string>
*/ */
public function rules(): array public function rules(): array
{ {

View File

@@ -3,6 +3,7 @@
namespace App\Http\Requests\V3\Dashboard\Harim\HarimOffice; namespace App\Http\Requests\V3\Dashboard\Harim\HarimOffice;
use App\Enums\HarimStates; use App\Enums\HarimStates;
use Illuminate\Contracts\Validation\ValidationRule;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
class RejectRequest extends FormRequest class RejectRequest extends FormRequest
@@ -16,11 +17,10 @@ class RejectRequest extends FormRequest
$this->harim->state_id == HarimStates::BARESI_TAVASOT_DAFTAR_HARIM->value; $this->harim->state_id == HarimStates::BARESI_TAVASOT_DAFTAR_HARIM->value;
} }
/** /**
* Get the validation rules that apply to the request. * Get the validation rules that apply to the request.
* *
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string> * @return array<string, ValidationRule|array|string>
*/ */
public function rules(): array public function rules(): array
{ {

View File

@@ -2,7 +2,6 @@
namespace App\Http\Requests\V3\Dashboard\Harim\HarimOffice; namespace App\Http\Requests\V3\Dashboard\Harim\HarimOffice;
use App\Enums\HarimStates;
use Illuminate\Contracts\Validation\ValidationRule; use Illuminate\Contracts\Validation\ValidationRule;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
@@ -16,7 +15,6 @@ class ShowRequest extends FormRequest
return $this->harim->province_id == auth()->user()->province_id; return $this->harim->province_id == auth()->user()->province_id;
} }
/** /**
* Get the validation rules that apply to the request. * Get the validation rules that apply to the request.
* *

View File

@@ -3,6 +3,7 @@
namespace App\Http\Requests\V3\Dashboard\Harim\HarimOffice; namespace App\Http\Requests\V3\Dashboard\Harim\HarimOffice;
use App\Enums\HarimStates; use App\Enums\HarimStates;
use Illuminate\Contracts\Validation\ValidationRule;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
class WithoutRoadAccessRequest extends FormRequest class WithoutRoadAccessRequest extends FormRequest
@@ -19,7 +20,7 @@ class WithoutRoadAccessRequest extends FormRequest
/** /**
* Get the validation rules that apply to the request. * Get the validation rules that apply to the request.
* *
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string> * @return array<string, ValidationRule|array|string>
*/ */
public function rules(): array public function rules(): array
{ {

View File

@@ -3,6 +3,7 @@
namespace App\Http\Requests\V3\Dashboard\Harim\ProvinceOffice; namespace App\Http\Requests\V3\Dashboard\Harim\ProvinceOffice;
use App\Enums\HarimStates; use App\Enums\HarimStates;
use Illuminate\Contracts\Validation\ValidationRule;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
class FeedBackRequest extends FormRequest class FeedBackRequest extends FormRequest
@@ -19,7 +20,7 @@ class FeedBackRequest extends FormRequest
/** /**
* Get the validation rules that apply to the request. * Get the validation rules that apply to the request.
* *
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string> * @return array<string, ValidationRule|array|string>
*/ */
public function rules(): array public function rules(): array
{ {

View File

@@ -2,7 +2,7 @@
namespace App\Http\Requests\V3\Dashboard\Harim\ProvinceOffice; namespace App\Http\Requests\V3\Dashboard\Harim\ProvinceOffice;
use App\Enums\HarimStates; use Illuminate\Contracts\Validation\ValidationRule;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
class ShowRequest extends FormRequest class ShowRequest extends FormRequest
@@ -15,11 +15,10 @@ class ShowRequest extends FormRequest
return $this->harim->edareh_shahri_id == auth()->user()->edarate_shahri_id; return $this->harim->edareh_shahri_id == auth()->user()->edarate_shahri_id;
} }
/** /**
* Get the validation rules that apply to the request. * Get the validation rules that apply to the request.
* *
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string> * @return array<string, ValidationRule|array|string>
*/ */
public function rules(): array public function rules(): array
{ {

View File

@@ -25,9 +25,9 @@ class StoreRequest extends FormRequest
return [ return [
'name' => 'required|string|unique:roles,name', 'name' => 'required|string|unique:roles,name',
'name_fa' => 'required|string', 'name_fa' => 'required|string',
'description' =>'string', 'description' => 'string',
'permissions' => 'array', 'permissions' => 'array',
'permissions.*' => 'integer|exists:permissions,id' 'permissions.*' => 'integer|exists:permissions,id',
]; ];
} }
} }

View File

@@ -24,11 +24,11 @@ class UpdateRequest extends FormRequest
public function rules(): array public function rules(): array
{ {
return [ return [
'name' => ['required', 'string', 'max:255',Rule::unique('roles','name')->ignore($this->role->id)], 'name' => ['required', 'string', 'max:255', Rule::unique('roles', 'name')->ignore($this->role->id)],
'name_fa' => 'required|string', 'name_fa' => 'required|string',
'description' =>'string', 'description' => 'string',
'permissions' => 'array', 'permissions' => 'array',
'permissions.*' => 'integer|exists:permissions,id' 'permissions.*' => 'integer|exists:permissions,id',
]; ];
} }
} }

View File

@@ -0,0 +1,30 @@
<?php
namespace App\Http\Requests\V3\Dashboard\UserManagement;
use Illuminate\Contracts\Validation\ValidationRule;
use Illuminate\Foundation\Http\FormRequest;
class GivePermissionRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*/
public function authorize(): bool
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array<string, ValidationRule|array|string>
*/
public function rules(): array
{
return [
'permissions' => 'array',
'permissions.*' => 'integer|exists:permissions,id',
];
}
}

View File

@@ -0,0 +1,30 @@
<?php
namespace App\Http\Requests\V3\Dashboard\UserManagement;
use Illuminate\Contracts\Validation\ValidationRule;
use Illuminate\Foundation\Http\FormRequest;
class GiveRoleRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*/
public function authorize(): bool
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array<string, ValidationRule|array|string>
*/
public function rules(): array
{
return [
'roles' => 'array',
'roles.*' => 'integer|exists:permissions,id',
];
}
}

View File

@@ -2,6 +2,7 @@
namespace App\Http\Requests\V3\Dashboard\UserManagement; namespace App\Http\Requests\V3\Dashboard\UserManagement;
use Illuminate\Contracts\Validation\ValidationRule;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
class StoreRequest extends FormRequest class StoreRequest extends FormRequest
@@ -17,7 +18,7 @@ class StoreRequest extends FormRequest
/** /**
* Get the validation rules that apply to the request. * Get the validation rules that apply to the request.
* *
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string> * @return array<string, ValidationRule|array|string>
*/ */
public function rules(): array public function rules(): array
{ {

View File

@@ -2,6 +2,7 @@
namespace App\Http\Requests\V3\Dashboard\UserManagement; namespace App\Http\Requests\V3\Dashboard\UserManagement;
use Illuminate\Contracts\Validation\ValidationRule;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Validation\Rule; use Illuminate\Validation\Rule;
@@ -18,7 +19,7 @@ class UpdateRequest extends FormRequest
/** /**
* Get the validation rules that apply to the request. * Get the validation rules that apply to the request.
* *
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string> * @return array<string, ValidationRule|array|string>
*/ */
public function rules(): array public function rules(): array
{ {
@@ -27,8 +28,8 @@ class UpdateRequest extends FormRequest
'edarate_ostani_id' => 'exists:edarate_ostanis,id', 'edarate_ostani_id' => 'exists:edarate_ostanis,id',
'city_id' => 'exists:cities,id', 'city_id' => 'exists:cities,id',
'edarate_shahri_id' => 'exists:edarate_shahris,id', 'edarate_shahri_id' => 'exists:edarate_shahris,id',
'username' => ['required',Rule::unique('users','username')->ignore($this->user->id)], 'username' => ['required', Rule::unique('users', 'username')->ignore($this->user->id)],
'national_code' =>['required',Rule::unique('users','national_code')->ignore($this->user->id)], 'national_code' => ['required', Rule::unique('users', 'national_code')->ignore($this->user->id)],
'password' => 'required|min:8', 'password' => 'required|min:8',
]; ];
} }

View File

@@ -2,8 +2,8 @@
namespace App\Http\Requests\V3\Harim\Divarkeshi; namespace App\Http\Requests\V3\Harim\Divarkeshi;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Contracts\Validation\ValidationRule; use Illuminate\Contracts\Validation\ValidationRule;
use Illuminate\Foundation\Http\FormRequest;
class StoreRequest extends FormRequest class StoreRequest extends FormRequest
{ {
@@ -18,7 +18,7 @@ class StoreRequest extends FormRequest
/** /**
* Get the validation rules that apply to the request. * Get the validation rules that apply to the request.
* *
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string> * @return array<string, ValidationRule|array|string>
*/ */
public function rules(): array public function rules(): array
{ {
@@ -34,10 +34,10 @@ class StoreRequest extends FormRequest
'motaghazi_firstname' => 'required', 'motaghazi_firstname' => 'required',
'motaghazi_lastname' => 'required', 'motaghazi_lastname' => 'required',
/// conditional rule // / conditional rule
'national_id' => 'numeric', 'national_id' => 'numeric',
'shenase_melli' => 'numeric', 'shenase_melli' => 'numeric',
/// // /
'tel_number' => 'numeric', 'tel_number' => 'numeric',
'mobile_number' => 'numeric', 'mobile_number' => 'numeric',

View File

@@ -2,6 +2,7 @@
namespace App\Http\Requests\V3\LogList; namespace App\Http\Requests\V3\LogList;
use Illuminate\Contracts\Validation\ValidationRule;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
class StoreRequest extends FormRequest class StoreRequest extends FormRequest
@@ -17,14 +18,14 @@ class StoreRequest extends FormRequest
/** /**
* Get the validation rules that apply to the request. * Get the validation rules that apply to the request.
* *
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string> * @return array<string, ValidationRule|array|string>
*/ */
public function rules(): array public function rules(): array
{ {
return [ return [
'description' =>'required|string', 'description' => 'required|string',
'log_unique_code' =>'required|numeric|unique:log_lists,log_unique_code', 'log_unique_code' => 'required|numeric|unique:log_lists,log_unique_code',
'action_type' =>'required|string', 'action_type' => 'required|string',
]; ];
} }
} }

View File

@@ -2,6 +2,7 @@
namespace App\Http\Requests\V3\LogList; namespace App\Http\Requests\V3\LogList;
use Illuminate\Contracts\Validation\ValidationRule;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Validation\Rule; use Illuminate\Validation\Rule;
@@ -18,7 +19,7 @@ class UpdateRequest extends FormRequest
/** /**
* Get the validation rules that apply to the request. * Get the validation rules that apply to the request.
* *
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string> * @return array<string, ValidationRule|array|string>
*/ */
public function rules(): array public function rules(): array
{ {

View File

@@ -33,13 +33,13 @@ class StartRequest extends FormRequest
{ {
return [ return [
function (Validator $validator) { function (Validator $validator) {
if ($this->mission->code != $this->code){ if ($this->mission->code != $this->code) {
$validator->errors()->add( $validator->errors()->add(
'code', 'code',
'کد وارد شده صحیح نمی باشد' 'کد وارد شده صحیح نمی باشد'
); );
} }
} },
]; ];
} }
} }

View File

@@ -39,27 +39,28 @@ class ContinueMissionRequest extends FormRequest
'area' => 'required|array', 'area' => 'required|array',
'area.type' => 'required|string', 'area.type' => 'required|string',
'area.coordinates' => 'required|array', 'area.coordinates' => 'required|array',
'explanation' => 'required|string', 'explanation' => 'required|string',
'category_id' => 'required|in:1,2,3', 'category_id' => 'required|in:1,2,3',
'road_observed_id' => 'required_if:category_id,3|exists:road_observeds,id', 'road_observed_id' => 'required_if:category_id,3|exists:road_observeds,id',
]; ];
} }
public function after(): array public function after(): array
{ {
return [ return [
function (Validator $validator) { function (Validator $validator) {
if ($this->type == 1){ if ($this->type == 1) {
$start = Carbon::parse($this->start_date); $start = Carbon::parse($this->start_date);
$end = Carbon::parse($this->end_date); $end = Carbon::parse($this->end_date);
if ($start->diffInMinutes($end) > 480){ if ($start->diffInMinutes($end) > 480) {
$validator->errors()->add( $validator->errors()->add(
'end_date', 'end_date',
'مدت زمان مأموریت ساعتی نباید بیشتر از ۸ ساعت باشد.' 'مدت زمان مأموریت ساعتی نباید بیشتر از ۸ ساعت باشد.'
); );
} }
} }
} },
]; ];
} }
} }

View File

@@ -36,7 +36,7 @@ class NoProcessRequest extends FormRequest
'area.type' => 'required|string', 'area.type' => 'required|string',
'area.coordinates' => 'required|array', 'area.coordinates' => 'required|array',
'category_id' => 'required|in:1,2,3', 'category_id' => 'required|in:1,2,3',
'explanation' => 'required|string', 'explanation' => 'required|string',
]; ];
} }

View File

@@ -37,7 +37,7 @@ class StoreRequest extends FormRequest
'area' => 'required|array', 'area' => 'required|array',
'area.type' => 'required|string', 'area.type' => 'required|string',
'area.coordinates' => 'required|array', 'area.coordinates' => 'required|array',
'explanation' => 'required|string', 'explanation' => 'required|string',
'category_id' => 'required|in:1,2,3', 'category_id' => 'required|in:1,2,3',
'road_observed_id' => 'required_if:category_id,3|exists:road_observeds,id', 'road_observed_id' => 'required_if:category_id,3|exists:road_observeds,id',
]; ];
@@ -47,18 +47,18 @@ class StoreRequest extends FormRequest
{ {
return [ return [
function (Validator $validator) { function (Validator $validator) {
if ($this->type == 1){ if ($this->type == 1) {
$start = Carbon::parse($this->start_date); $start = Carbon::parse($this->start_date);
$end = Carbon::parse($this->end_date); $end = Carbon::parse($this->end_date);
if ($start->diffInMinutes($end) > 480){ if ($start->diffInMinutes($end) > 480) {
$validator->errors()->add( $validator->errors()->add(
'end_date', 'end_date',
'مدت زمان مأموریت ساعتی نباید بیشتر از ۸ ساعت باشد.' 'مدت زمان مأموریت ساعتی نباید بیشتر از ۸ ساعت باشد.'
); );
} }
} }
} },
]; ];
} }
} }

View File

@@ -38,7 +38,7 @@ class UpdateRequest extends FormRequest
'area' => 'required|array', 'area' => 'required|array',
'area.type' => 'required|string', 'area.type' => 'required|string',
'area.coordinates' => 'required|array', 'area.coordinates' => 'required|array',
'explanation' => 'required|string', 'explanation' => 'required|string',
'category_id' => 'required|in:1,2,3', 'category_id' => 'required|in:1,2,3',
'road_observed_id' => 'required_if:category_id,3|exists:road_observeds,id', 'road_observed_id' => 'required_if:category_id,3|exists:road_observeds,id',
]; ];
@@ -48,18 +48,18 @@ class UpdateRequest extends FormRequest
{ {
return [ return [
function (Validator $validator) { function (Validator $validator) {
if ($this->type === 1){ if ($this->type === 1) {
$start = Carbon::parse($this->start_date); $start = Carbon::parse($this->start_date);
$end = Carbon::parse($this->end_date); $end = Carbon::parse($this->end_date);
if ($start->diffInMinutes($end) > 480){ if ($start->diffInMinutes($end) > 480) {
$validator->errors()->add( $validator->errors()->add(
'end_date', 'end_date',
'مدت زمان مأموریت ساعتی نباید بیشتر از ۸ ساعت باشد.' 'مدت زمان مأموریت ساعتی نباید بیشتر از ۸ ساعت باشد.'
); );
} }
} }
} },
]; ];
} }
} }

View File

@@ -3,6 +3,7 @@
namespace App\Http\Requests\V3\Mission\TransportaionUnit; namespace App\Http\Requests\V3\Mission\TransportaionUnit;
use App\Enums\MissionStates; use App\Enums\MissionStates;
use Illuminate\Contracts\Validation\ValidationRule;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
class AllocateRequest extends FormRequest class AllocateRequest extends FormRequest
@@ -18,7 +19,7 @@ class AllocateRequest extends FormRequest
/** /**
* Get the validation rules that apply to the request. * Get the validation rules that apply to the request.
* *
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string> * @return array<string, ValidationRule|array|string>
*/ */
public function rules(): array public function rules(): array
{ {

View File

@@ -3,6 +3,7 @@
namespace App\Http\Requests\V3\Mission\TransportaionUnit; namespace App\Http\Requests\V3\Mission\TransportaionUnit;
use App\Enums\MissionStates; use App\Enums\MissionStates;
use Illuminate\Contracts\Validation\ValidationRule;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
class DeallocateRequest extends FormRequest class DeallocateRequest extends FormRequest
@@ -18,7 +19,7 @@ class DeallocateRequest extends FormRequest
/** /**
* Get the validation rules that apply to the request. * Get the validation rules that apply to the request.
* *
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string> * @return array<string, ValidationRule|array|string>
*/ */
public function rules(): array public function rules(): array
{ {

View File

@@ -2,6 +2,7 @@
namespace App\Http\Requests\V3\ObservedItem; namespace App\Http\Requests\V3\ObservedItem;
use Illuminate\Contracts\Validation\ValidationRule;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
class StoreRequest extends FormRequest class StoreRequest extends FormRequest
@@ -17,7 +18,7 @@ class StoreRequest extends FormRequest
/** /**
* Get the validation rules that apply to the request. * Get the validation rules that apply to the request.
* *
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string> * @return array<string, ValidationRule|array|string>
*/ */
public function rules(): array public function rules(): array
{ {

View File

@@ -2,6 +2,7 @@
namespace App\Http\Requests\V3\Otp; namespace App\Http\Requests\V3\Otp;
use Illuminate\Contracts\Validation\ValidationRule;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
class GetOtpTokenRequest extends FormRequest class GetOtpTokenRequest extends FormRequest
@@ -17,7 +18,7 @@ class GetOtpTokenRequest extends FormRequest
/** /**
* Get the validation rules that apply to the request. * Get the validation rules that apply to the request.
* *
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string> * @return array<string, ValidationRule|array|string>
*/ */
public function rules(): array public function rules(): array
{ {
@@ -29,7 +30,7 @@ class GetOtpTokenRequest extends FormRequest
public function messages(): array public function messages(): array
{ {
return [ return [
'starts_with' => ':attribute باید با :values شروع شود.' 'starts_with' => ':attribute باید با :values شروع شود.',
]; ];
} }
} }

View File

@@ -2,6 +2,7 @@
namespace App\Http\Requests\V3\Permission; namespace App\Http\Requests\V3\Permission;
use Illuminate\Contracts\Validation\ValidationRule;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
class StoreRequest extends FormRequest class StoreRequest extends FormRequest
@@ -17,7 +18,7 @@ class StoreRequest extends FormRequest
/** /**
* Get the validation rules that apply to the request. * Get the validation rules that apply to the request.
* *
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string> * @return array<string, ValidationRule|array|string>
*/ */
public function rules(): array public function rules(): array
{ {

View File

@@ -2,6 +2,7 @@
namespace App\Http\Requests\V3\Permission; namespace App\Http\Requests\V3\Permission;
use Illuminate\Contracts\Validation\ValidationRule;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
class UpdateRequest extends FormRequest class UpdateRequest extends FormRequest
@@ -17,7 +18,7 @@ class UpdateRequest extends FormRequest
/** /**
* Get the validation rules that apply to the request. * Get the validation rules that apply to the request.
* *
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string> * @return array<string, ValidationRule|array|string>
*/ */
public function rules(): array public function rules(): array
{ {

Some files were not shown because too many files have changed in this diff Show More