Compare commits
5 Commits
feature/Ma
...
feature/va
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0befa33b0f | ||
| 3708e2ebfb | |||
|
|
3fb1474b80 | ||
|
|
bab99f7f89 | ||
| 2aa9ae1455 |
@@ -2,7 +2,6 @@
|
|||||||
|
|
||||||
namespace App\Http\Controllers\V3\Dashboard\Mission;
|
namespace App\Http\Controllers\V3\Dashboard\Mission;
|
||||||
|
|
||||||
use App\Enums\FMSResultCode;
|
|
||||||
use App\Enums\MissionCategory;
|
use App\Enums\MissionCategory;
|
||||||
use App\Enums\MissionStates;
|
use App\Enums\MissionStates;
|
||||||
use App\Enums\MissionTypes;
|
use App\Enums\MissionTypes;
|
||||||
@@ -10,7 +9,6 @@ use App\Enums\MissionViolationStatus;
|
|||||||
use App\Enums\MissionZones;
|
use App\Enums\MissionZones;
|
||||||
use App\Facades\DataTable\DataTableFacade;
|
use App\Facades\DataTable\DataTableFacade;
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use App\Http\Controllers\V3\Dashboard\RoadPatrol\OperatorController;
|
|
||||||
use App\Http\Requests\V3\Mission\RequestPortal\ChangeStateRequest;
|
use App\Http\Requests\V3\Mission\RequestPortal\ChangeStateRequest;
|
||||||
use App\Http\Requests\V3\Mission\RequestPortal\ClarifyUnauthorizedExitRequest;
|
use App\Http\Requests\V3\Mission\RequestPortal\ClarifyUnauthorizedExitRequest;
|
||||||
use App\Http\Requests\V3\Mission\RequestPortal\ContinueMissionRequest;
|
use App\Http\Requests\V3\Mission\RequestPortal\ContinueMissionRequest;
|
||||||
@@ -23,7 +21,6 @@ use App\Models\Mission;
|
|||||||
use App\Models\MissionViolation;
|
use App\Models\MissionViolation;
|
||||||
use App\Models\Rahdaran;
|
use App\Models\Rahdaran;
|
||||||
use App\Models\RahdariPoint;
|
use App\Models\RahdariPoint;
|
||||||
use App\Models\RoadObserved;
|
|
||||||
use App\Services\Cartables\Mission\RequestPortalService;
|
use App\Services\Cartables\Mission\RequestPortalService;
|
||||||
use App\Services\FMS\GetErrorRateService;
|
use App\Services\FMS\GetErrorRateService;
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
@@ -65,6 +62,8 @@ class RequestPortalController extends Controller
|
|||||||
$user = auth()->user();
|
$user = auth()->user();
|
||||||
|
|
||||||
$mission = Mission::query()->create([
|
$mission = Mission::query()->create([
|
||||||
|
'item_id' => $request->item_id,
|
||||||
|
'sub_item_id' => $request->sub_item_id,
|
||||||
'user_id' => $user->id,
|
'user_id' => $user->id,
|
||||||
'username' => $user->username,
|
'username' => $user->username,
|
||||||
'province_id' => $user->province_id,
|
'province_id' => $user->province_id,
|
||||||
@@ -83,7 +82,6 @@ class RequestPortalController extends Controller
|
|||||||
'start_date' => $request->start_date,
|
'start_date' => $request->start_date,
|
||||||
'end_date' => $request->end_date,
|
'end_date' => $request->end_date,
|
||||||
'request_date' => now(),
|
'request_date' => now(),
|
||||||
'description' => $request->description,
|
|
||||||
'end_point' => $request->end_point,
|
'end_point' => $request->end_point,
|
||||||
'encoded_route' => $request->encoded_route,
|
'encoded_route' => $request->encoded_route,
|
||||||
'category_id' => $request->category_id,
|
'category_id' => $request->category_id,
|
||||||
@@ -137,6 +135,8 @@ class RequestPortalController extends Controller
|
|||||||
$machine = CMMSMachine::query()->find($request->machine_id, ['id', 'machine_code', 'car_type']);
|
$machine = CMMSMachine::query()->find($request->machine_id, ['id', 'machine_code', 'car_type']);
|
||||||
|
|
||||||
$newMission = Mission::query()->create([
|
$newMission = Mission::query()->create([
|
||||||
|
'item_id' => $request->item_id,
|
||||||
|
'sub_item_id' => $request->sub_item_id,
|
||||||
'user_id' => $user->id,
|
'user_id' => $user->id,
|
||||||
'username' => $user->username,
|
'username' => $user->username,
|
||||||
'province_id' => $user->province_id,
|
'province_id' => $user->province_id,
|
||||||
@@ -154,7 +154,6 @@ class RequestPortalController extends Controller
|
|||||||
'start_date' => now(),
|
'start_date' => now(),
|
||||||
'end_date' => $request->end_date,
|
'end_date' => $request->end_date,
|
||||||
'request_date' => now(),
|
'request_date' => now(),
|
||||||
'description' => $request->description,
|
|
||||||
'end_point' => $request->end_point,
|
'end_point' => $request->end_point,
|
||||||
'encoded_route' => $request->encoded_route,
|
'encoded_route' => $request->encoded_route,
|
||||||
'category_id' => $request->category_id,
|
'category_id' => $request->category_id,
|
||||||
@@ -185,6 +184,8 @@ class RequestPortalController extends Controller
|
|||||||
DB::transaction(function () use ($mission, $request) {
|
DB::transaction(function () use ($mission, $request) {
|
||||||
$state = MissionStates::REQUEST_CREATED->value;
|
$state = MissionStates::REQUEST_CREATED->value;
|
||||||
$mission->update([
|
$mission->update([
|
||||||
|
'item_id' => $request->item_id,
|
||||||
|
'sub_item_id' => $request->sub_item_id,
|
||||||
'state_id' => $state,
|
'state_id' => $state,
|
||||||
'state_name' => MissionStates::name($state),
|
'state_name' => MissionStates::name($state),
|
||||||
'requested_machines' => json_encode($request->requested_machines),
|
'requested_machines' => json_encode($request->requested_machines),
|
||||||
@@ -194,7 +195,6 @@ class RequestPortalController extends Controller
|
|||||||
'zone_fa' => MissionZones::name($request->zone),
|
'zone_fa' => MissionZones::name($request->zone),
|
||||||
'start_date' => $request->start_date,
|
'start_date' => $request->start_date,
|
||||||
'end_date' => $request->end_date,
|
'end_date' => $request->end_date,
|
||||||
'description' => $request->description,
|
|
||||||
'end_point' => $request->end_point,
|
'end_point' => $request->end_point,
|
||||||
'encoded_route' => $request->encoded_route,
|
'encoded_route' => $request->encoded_route,
|
||||||
'category_id' => $request->category_id,
|
'category_id' => $request->category_id,
|
||||||
@@ -247,6 +247,8 @@ class RequestPortalController extends Controller
|
|||||||
$machine = CMMSMachine::query()->where('machine_code', '=', $violation->machine_code)->first(['id', 'machine_code', 'car_type']);
|
$machine = CMMSMachine::query()->where('machine_code', '=', $violation->machine_code)->first(['id', 'machine_code', 'car_type']);
|
||||||
|
|
||||||
$mission = Mission::query()->create([
|
$mission = Mission::query()->create([
|
||||||
|
'item_id' => $request->item_id,
|
||||||
|
'sub_item_id' => $request->sub_item_id,
|
||||||
'user_id' => $user->id,
|
'user_id' => $user->id,
|
||||||
'username' => $user->username,
|
'username' => $user->username,
|
||||||
'province_id' => $user->province_id,
|
'province_id' => $user->province_id,
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ class FinishRequest extends FormRequest
|
|||||||
'زمان پایان ماموریت باید بعد از زمان شروع ماموریت باشد.'
|
'زمان پایان ماموریت باید بعد از زمان شروع ماموریت باشد.'
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
if ($this->end_km < $mission->km) {
|
if ($this->end_km <= $mission->km) {
|
||||||
$validator->errors()->add(
|
$validator->errors()->add(
|
||||||
'end_km',
|
'end_km',
|
||||||
'کیلومتر پایان باید بزرگتر از کیلومتر شروع باشد.'
|
'کیلومتر پایان باید بزرگتر از کیلومتر شروع باشد.'
|
||||||
|
|||||||
@@ -25,6 +25,8 @@ class ClarifyUnauthorizedExitRequest extends FormRequest
|
|||||||
public function rules(): array
|
public function rules(): array
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
|
'item_id' => 'required|exists:info_items,item',
|
||||||
|
'sub_item_id' => 'required|exists:info_items,id',
|
||||||
'rahdaran' => 'array',
|
'rahdaran' => 'array',
|
||||||
'rahdaran.*' => 'exists:rahdaran,id',
|
'rahdaran.*' => 'exists:rahdaran,id',
|
||||||
'driver' => 'required|integer|exists:rahdaran,id',
|
'driver' => 'required|integer|exists:rahdaran,id',
|
||||||
|
|||||||
@@ -26,6 +26,8 @@ class ContinueMissionRequest extends FormRequest
|
|||||||
public function rules(): array
|
public function rules(): array
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
|
'item_id' => 'required|exists:info_items,item',
|
||||||
|
'sub_item_id' => 'required|exists:info_items,id',
|
||||||
'rahdaran' => 'array',
|
'rahdaran' => 'array',
|
||||||
'rahdaran.*' => 'exists:rahdaran,id',
|
'rahdaran.*' => 'exists:rahdaran,id',
|
||||||
'machine_id' => 'required|integer|exists:cmms_machines,id',
|
'machine_id' => 'required|integer|exists:cmms_machines,id',
|
||||||
@@ -33,7 +35,6 @@ class ContinueMissionRequest extends FormRequest
|
|||||||
'type' => 'required|in:1,2',
|
'type' => 'required|in:1,2',
|
||||||
'zone' => 'required|in:1,2,3',
|
'zone' => 'required|in:1,2,3',
|
||||||
'end_date' => 'required|date',
|
'end_date' => 'required|date',
|
||||||
'description' => 'string',
|
|
||||||
'end_point' => 'required|string',
|
'end_point' => 'required|string',
|
||||||
'encoded_route' => 'required|string',
|
'encoded_route' => 'required|string',
|
||||||
'explanation' => 'required|string',
|
'explanation' => 'required|string',
|
||||||
@@ -57,7 +58,7 @@ class ContinueMissionRequest extends FormRequest
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($this->end_km < $this->mission->km) {
|
if ($this->end_km <= $this->mission->km) {
|
||||||
$validator->errors()->add(
|
$validator->errors()->add(
|
||||||
'end_km',
|
'end_km',
|
||||||
'کیلومتر پایان باید بزرگتر از کیلومتر شروع باشد.'
|
'کیلومتر پایان باید بزرگتر از کیلومتر شروع باشد.'
|
||||||
|
|||||||
@@ -25,6 +25,8 @@ class StoreRequest extends FormRequest
|
|||||||
public function rules(): array
|
public function rules(): array
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
|
'item_id' => 'required|exists:info_items,item',
|
||||||
|
'sub_item_id' => 'required|exists:info_items,id',
|
||||||
'rahdaran' => 'array',
|
'rahdaran' => 'array',
|
||||||
'rahdaran.*' => 'exists:rahdaran,id',
|
'rahdaran.*' => 'exists:rahdaran,id',
|
||||||
'requested_machines' => 'required|array',
|
'requested_machines' => 'required|array',
|
||||||
@@ -32,7 +34,6 @@ class StoreRequest extends FormRequest
|
|||||||
'zone' => 'required|in:1,2,3',
|
'zone' => 'required|in:1,2,3',
|
||||||
'start_date' => 'required|date',
|
'start_date' => 'required|date',
|
||||||
'end_date' => 'required|date',
|
'end_date' => 'required|date',
|
||||||
'description' => 'string',
|
|
||||||
'end_point' => 'required|string',
|
'end_point' => 'required|string',
|
||||||
'encoded_route' => 'required|string',
|
'encoded_route' => 'required|string',
|
||||||
'explanation' => 'required|string',
|
'explanation' => 'required|string',
|
||||||
|
|||||||
@@ -26,6 +26,8 @@ class UpdateRequest extends FormRequest
|
|||||||
public function rules(): array
|
public function rules(): array
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
|
'item_id' => 'required|exists:info_items,item',
|
||||||
|
'sub_item_id' => 'required|exists:info_items,id',
|
||||||
'rahdaran' => 'array',
|
'rahdaran' => 'array',
|
||||||
'rahdaran.*' => 'exists:rahdaran,id',
|
'rahdaran.*' => 'exists:rahdaran,id',
|
||||||
'requested_machines' => 'required|array',
|
'requested_machines' => 'required|array',
|
||||||
@@ -33,7 +35,6 @@ class UpdateRequest extends FormRequest
|
|||||||
'zone' => 'required|in:1,2,3',
|
'zone' => 'required|in:1,2,3',
|
||||||
'start_date' => 'required|date',
|
'start_date' => 'required|date',
|
||||||
'end_date' => 'required|date',
|
'end_date' => 'required|date',
|
||||||
'description' => 'string',
|
|
||||||
'end_point' => 'required|string',
|
'end_point' => 'required|string',
|
||||||
'encoded_route' => 'required|string',
|
'encoded_route' => 'required|string',
|
||||||
'explanation' => 'required|string',
|
'explanation' => 'required|string',
|
||||||
|
|||||||
@@ -13,8 +13,8 @@ class DeallocateRequest extends FormRequest
|
|||||||
*/
|
*/
|
||||||
public function authorize(): bool
|
public function authorize(): bool
|
||||||
{
|
{
|
||||||
return $this->mission->station_id == auth()->user()->station_id &&
|
return ($this->mission->station_id == auth()->user()->station_id &&
|
||||||
in_array($this->mission->state_id, [MissionStates::REQUEST_CREATED->value, MissionStates::PENDING_CONFIRMATION->value])
|
in_array($this->mission->state_id, [MissionStates::REQUEST_CREATED->value, MissionStates::PENDING_CONFIRMATION->value]))
|
||||||
|| auth()->user()->username === 'witel';
|
|| auth()->user()->username === 'witel';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ class UpdateRequest extends FormRequest
|
|||||||
'زمان پایان ماموریت باید بعد از زمان شروع ماموریت باشد.'
|
'زمان پایان ماموریت باید بعد از زمان شروع ماموریت باشد.'
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
if ($this->end_km < $this->violation->km) {
|
if ($this->end_km <= $this->violation->km) {
|
||||||
$validator->errors()->add(
|
$validator->errors()->add(
|
||||||
'end_km',
|
'end_km',
|
||||||
'کیلومتر پایان باید بزرگتر از کیلومتر شروع باشد.'
|
'کیلومتر پایان باید بزرگتر از کیلومتر شروع باشد.'
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ class Mission extends Model
|
|||||||
{
|
{
|
||||||
use HasFactory;
|
use HasFactory;
|
||||||
|
|
||||||
protected $guarded = [];
|
protected $guarded = ['id'];
|
||||||
protected $hidden = ['pivot'];
|
protected $hidden = ['pivot'];
|
||||||
protected $casts = [
|
protected $casts = [
|
||||||
'start_time' => 'datetime',
|
'start_time' => 'datetime',
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ use Illuminate\Database\Eloquent\Relations\HasOne;
|
|||||||
class MissionViolation extends Model
|
class MissionViolation extends Model
|
||||||
{
|
{
|
||||||
use HasFactory;
|
use HasFactory;
|
||||||
protected $guarded =[];
|
protected $guarded =['id'];
|
||||||
|
|
||||||
public function mission(): BelongsTo
|
public function mission(): BelongsTo
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ class ReportMachineService
|
|||||||
FROM missions m
|
FROM missions m
|
||||||
JOIN cmms_machines cm ON cm.id = m.machine_id
|
JOIN cmms_machines cm ON cm.id = m.machine_id
|
||||||
WHERE m.state_id = 4 AND m.start_time >= :from AND m.finish_time <= :to
|
WHERE m.state_id = 4 AND m.start_time >= :from AND m.finish_time <= :to
|
||||||
GROUP BY machine_id;";
|
GROUP BY machine_id ORDER BY missions DESC;";
|
||||||
|
|
||||||
return DB::select($sql, [
|
return DB::select($sql, [
|
||||||
'from' => $from,
|
'from' => $from,
|
||||||
@@ -42,7 +42,7 @@ class ReportMachineService
|
|||||||
FROM missions m
|
FROM missions m
|
||||||
JOIN cmms_machines cm ON cm.id = m.machine_id
|
JOIN cmms_machines cm ON cm.id = m.machine_id
|
||||||
WHERE m.state_id = 4 AND start_time >= :from AND finish_time <= :to AND m.province_id = :province_id
|
WHERE m.state_id = 4 AND start_time >= :from AND finish_time <= :to AND m.province_id = :province_id
|
||||||
GROUP BY machine_id;";
|
GROUP BY machine_id ORDER BY missions DESC;";
|
||||||
|
|
||||||
return DB::select($sql, [
|
return DB::select($sql, [
|
||||||
'from' => $from,
|
'from' => $from,
|
||||||
@@ -63,7 +63,7 @@ class ReportMachineService
|
|||||||
FROM missions m
|
FROM missions m
|
||||||
JOIN cmms_machines cm ON cm.id = m.machine_id
|
JOIN cmms_machines cm ON cm.id = m.machine_id
|
||||||
WHERE m.state_id = 4 AND m.start_time >= :from AND m.finish_time <= :to
|
WHERE m.state_id = 4 AND m.start_time >= :from AND m.finish_time <= :to
|
||||||
GROUP BY cm.car_type;";
|
GROUP BY cm.car_type ORDER BY missions DESC;";
|
||||||
|
|
||||||
return DB::select($sql, [
|
return DB::select($sql, [
|
||||||
'from' => $from,
|
'from' => $from,
|
||||||
@@ -84,7 +84,7 @@ class ReportMachineService
|
|||||||
FROM missions m
|
FROM missions m
|
||||||
JOIN cmms_machines cm ON cm.id = m.machine_id
|
JOIN cmms_machines cm ON cm.id = m.machine_id
|
||||||
WHERE m.state_id = 4 AND m.start_time >= :from AND m.finish_time <= :to AND m.province_id = :province_id
|
WHERE m.state_id = 4 AND m.start_time >= :from AND m.finish_time <= :to AND m.province_id = :province_id
|
||||||
GROUP BY cm.car_type;";
|
GROUP BY cm.car_type ORDER BY missions DESC;";
|
||||||
|
|
||||||
return DB::select($sql, [
|
return DB::select($sql, [
|
||||||
'from' => $from,
|
'from' => $from,
|
||||||
@@ -105,7 +105,7 @@ class ReportMachineService
|
|||||||
SUM(m.end_km - m.km) AS func
|
SUM(m.end_km - m.km) AS func
|
||||||
FROM missions m
|
FROM missions m
|
||||||
WHERE m.state_id = 4 AND m.start_time >= :from AND m.finish_time <= :to
|
WHERE m.state_id = 4 AND m.start_time >= :from AND m.finish_time <= :to
|
||||||
GROUP BY m.driver_id;";
|
GROUP BY m.driver_id ORDER BY missions DESC;";
|
||||||
|
|
||||||
return DB::select($sql, [
|
return DB::select($sql, [
|
||||||
'from' => $from,
|
'from' => $from,
|
||||||
@@ -126,7 +126,7 @@ class ReportMachineService
|
|||||||
SUM(m.end_km - m.km) AS func
|
SUM(m.end_km - m.km) AS func
|
||||||
FROM missions m
|
FROM missions m
|
||||||
WHERE m.state_id = 4 AND m.start_time >= :from AND m.finish_time <= :to AND province_id = :province_id
|
WHERE m.state_id = 4 AND m.start_time >= :from AND m.finish_time <= :to AND province_id = :province_id
|
||||||
GROUP BY m.driver_id;";
|
GROUP BY m.driver_id ORDER BY missions DESC;";
|
||||||
|
|
||||||
return DB::select($sql, [
|
return DB::select($sql, [
|
||||||
'from' => $from,
|
'from' => $from,
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ class RequestPortalService
|
|||||||
'description', 'requested_machines', 'type', 'type_fa', 'start_date', 'state_id',
|
'description', 'requested_machines', 'type', 'type_fa', 'start_date', 'state_id',
|
||||||
'end_date', 'request_date', 'end_point', 'encoded_route', 'zone', 'zone_fa', 'start_time', 'finish_time',
|
'end_date', 'request_date', 'end_point', 'encoded_route', 'zone', 'zone_fa', 'start_time', 'finish_time',
|
||||||
'code', 'category_id', 'category_name', 'explanation', 'city_id', 'city_name', 'province_id', 'station_name',
|
'code', 'category_id', 'category_name', 'explanation', 'city_id', 'city_name', 'province_id', 'station_name',
|
||||||
'driver_id', 'driver_name'
|
'driver_id', 'driver_name', 'machine_id', 'item_id', 'sub_item_id'
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,29 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
return new class extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*/
|
||||||
|
public function up(): void
|
||||||
|
{
|
||||||
|
Schema::table('missions', function (Blueprint $table) {
|
||||||
|
$table->unsignedInteger('item_id')->nullable();
|
||||||
|
$table->unsignedInteger('sub_item_id')->nullable();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*/
|
||||||
|
public function down(): void
|
||||||
|
{
|
||||||
|
Schema::table('missions', function (Blueprint $table) {
|
||||||
|
$table->dropColumn('item_id', 'sub_item_id');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
Reference in New Issue
Block a user