create new column for database and improve the controller
This commit is contained in:
@@ -13,11 +13,8 @@ use App\Models\City;
|
||||
use App\Models\Province;
|
||||
use App\Models\RahdariPoint;
|
||||
use App\Models\RahdariPointHistory;
|
||||
use Hekmatinasser\Verta\Facades\Verta;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
|
||||
class RoadMaintenanceStationController extends Controller
|
||||
@@ -83,15 +80,15 @@ class RoadMaintenanceStationController extends Controller
|
||||
*/
|
||||
public function store(StoreRequest $request): JsonResponse
|
||||
{
|
||||
$provinceName = Province::query()->find($request->province_id)->name_fa;
|
||||
$province = Province::query()->find($request->province_id);
|
||||
|
||||
$cityName = City::query()->find($request->city_id)->name_fa;
|
||||
$city = City::query()->find($request->city_id);
|
||||
|
||||
$station = RahdariPoint::query()->create([
|
||||
'province_id' => $request->province_id,
|
||||
'province_name' => $provinceName,
|
||||
'city_id' => $request->city_id,
|
||||
'city_name' => $cityName,
|
||||
'province_id' => $province->id,
|
||||
'province_name' => $province->name_fa,
|
||||
'city_id' => $city->id,
|
||||
'city_name' => $city->name_fa,
|
||||
'name' => $request->name,
|
||||
'status' => $request->status,
|
||||
'type' => $request->type,
|
||||
@@ -144,45 +141,59 @@ class RoadMaintenanceStationController extends Controller
|
||||
*/
|
||||
public function update(UpdateRequest $request, RahdariPoint $rahdariPoint): JsonResponse
|
||||
{
|
||||
$province = Province::query()->find($request->province_id);
|
||||
|
||||
$city = City::query()->find($request->city_id);
|
||||
|
||||
RahdariPointHistory::query()->create([
|
||||
'user_id' => $request->user()->id,
|
||||
'point_id' => $rahdariPoint->id,
|
||||
'previous_province_id' => $province->id,
|
||||
'previous_province_name' => $province->name_fa,
|
||||
'previous_city_id' => $city->id,
|
||||
'previous_city_name' => $city->name_fa,
|
||||
'previous_name' => $rahdariPoint->name,
|
||||
'previous_status' => $rahdariPoint->status,
|
||||
'previous_type' => $rahdariPoint->type,
|
||||
'previous_team_num' => $rahdariPoint->team_num,
|
||||
'previous_staff_num' => $rahdariPoint->staff_num,
|
||||
'previous_team_num' => $rahdariPoint->team_num,
|
||||
'previous_staff_num' => $rahdariPoint->staff_num,
|
||||
'previous_phone' => $rahdariPoint->phone,
|
||||
'previous_responsible_name' => $rahdariPoint->responsible_name,
|
||||
'previous_responsible_mobile' => $rahdariPoint->responsible_mobile,
|
||||
'previous_successor_name' => $rahdariPoint->successor_name,
|
||||
'previous_successor_mobile' => $rahdariPoint->successor_mobile,
|
||||
'previous_machines_light' => $rahdariPoint->machines_light,
|
||||
'previous_machines_sheavy' => $rahdariPoint->machines_sheavy,
|
||||
'previous_machines_heavy' => $rahdariPoint->machines_heavy,
|
||||
'previous_responsible_name' => $rahdariPoint->responsible_name,
|
||||
'previous_responsible_mobile' => $rahdariPoint->responsible_mobile,
|
||||
'previous_successor_name' => $rahdariPoint->successor_name,
|
||||
'previous_successor_mobile' => $rahdariPoint->successor_mobile,
|
||||
'previous_machines_light' => $rahdariPoint->machines_light,
|
||||
'previous_machines_sheavy' => $rahdariPoint->machines_sheavy,
|
||||
'previous_machines_heavy' => $rahdariPoint->machines_heavy,
|
||||
'previous_lat' => $rahdariPoint->lat,
|
||||
'previous_lng' => $rahdariPoint->lng,
|
||||
'new_files' => json_encode($rahdariPoint->files),
|
||||
]);
|
||||
|
||||
$rahdariPoint->update([
|
||||
'status' => $request->input('status', $rahdariPoint->status),
|
||||
'type' => $request->input('type', $rahdariPoint->type),
|
||||
'province_id' => $province->id,
|
||||
'province_name' => $province->name_fa,
|
||||
'city_id' => $city->id,
|
||||
'city_name' => $city->name_fa,
|
||||
'name' => $request->input('name'),
|
||||
'status' => $request->input('status'),
|
||||
'type' => $request->input('type',),
|
||||
'type_fa' => RoadMaintenanceStationTypes::name($request->type) ?? $rahdariPoint->type_fa,
|
||||
'team_num' => $request->input('team_num', $rahdariPoint->team_num),
|
||||
'staff_num' => $request->input('staff_num', $rahdariPoint->staff_num),
|
||||
'phone' => $request->input('phone', $rahdariPoint->phone),
|
||||
'responsible_name' => $request->input('responsible_name', $rahdariPoint->responsible_name),
|
||||
'responsible_mobile' => $request->input('responsible_mobile', $rahdariPoint->responsible_mobile),
|
||||
'successor_name' => $request->input('successor_name', $rahdariPoint->successor_name),
|
||||
'successor_mobile' => $request->input('successor_mobile', $rahdariPoint->successor_mobile),
|
||||
'machines_light' => $request->input('machines_light', $rahdariPoint->machines_light),
|
||||
'machines_sheavy' => $request->input('machines_sheavy', $rahdariPoint->machines_sheavy),
|
||||
'machines_heavy' => $request->input('machines_heavy', $rahdariPoint->machines_heavy),
|
||||
'lat' => $request->input('lat', $rahdariPoint->lat),
|
||||
'lng' => $request->input('lng', $rahdariPoint->lng),
|
||||
'team_num' => $request->input('team_num'),
|
||||
'staff_num' => $request->input('staff_num'),
|
||||
'phone' => $request->input('phone'),
|
||||
'responsible_name' => $request->input('responsible_name'),
|
||||
'responsible_mobile' => $request->input('responsible_mobile'),
|
||||
'successor_name' => $request->input('successor_name'),
|
||||
'successor_mobile' => $request->input('successor_mobile'),
|
||||
'machines_light' => $request->input('machines_light'),
|
||||
'machines_sheavy' => $request->input('machines_sheavy'),
|
||||
'machines_heavy' => $request->input('machines_heavy'),
|
||||
'lat' => $request->input('lat'),
|
||||
'lng' => $request->input('lng'),
|
||||
'lat_from' => $request->lat_from,
|
||||
'lng_from' => $request->lng_from,
|
||||
'geometry' => $request->geometry,
|
||||
'geometry' => $request->geometry,
|
||||
'lat_to' => $request->lat_to,
|
||||
'lng_to' => $request->lng_to,
|
||||
'color' => $request->color,
|
||||
@@ -200,7 +211,6 @@ class RoadMaintenanceStationController extends Controller
|
||||
foreach ($uploadFields as $index => $field) {
|
||||
if ($request->hasFile($field)) {
|
||||
$existingFile = $rahdariPoint->files->get($index);
|
||||
|
||||
$path = FileFacade::save($request->$field, "road_stations/{$rahdariPoint->id}");
|
||||
|
||||
if ($existingFile) {
|
||||
|
||||
@@ -22,6 +22,9 @@ class UpdateRequest extends FormRequest
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'province_id' => 'required|exists:provinces,id',
|
||||
'city_id' => 'required|exists:cities,id',
|
||||
'name' => 'required|string|max:255',
|
||||
'status' => 'integer|in:0,1',
|
||||
'type' => 'integer|in:1,2,3',
|
||||
'team_num' => 'numeric',
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
<?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('rahdari_point_histories', function (Blueprint $table) {
|
||||
$table->after('user_id', function (Blueprint $table) {
|
||||
$table->unsignedSmallInteger('previous_province_id')->nullable();
|
||||
$table->string('previous_province_name')->nullable();
|
||||
$table->unsignedSmallInteger('previous_city_id')->nullable();
|
||||
$table->string('previous_city_name')->nullable();
|
||||
$table->string('previous_name')->nullable();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::table('rahdari_point_histories', function (Blueprint $table) {
|
||||
$table->dropColumn([
|
||||
'previous_province_id',
|
||||
'previous_province_name',
|
||||
'previous_city_id',
|
||||
'previous_city_name',
|
||||
'previous_name',
|
||||
]);
|
||||
});
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user