From 6a25070d4fb067e3c1164d0b90896eb8c5e87454 Mon Sep 17 00:00:00 2001 From: Rustem Date: Tue, 25 Mar 2025 16:43:49 +0500 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D1=80=D0=B0=D0=B1=D0=BE=D1=82?= =?UTF-8?q?=D0=BA=D0=B0=20=D0=B0=D0=BF=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Http/Controllers/MobileApiController.php | 20 ++++--- app/Http/Controllers/Sync1cApiController.php | 60 ++++++++++++++------ modules/brand_models/script.php | 6 ++ 3 files changed, 62 insertions(+), 24 deletions(-) diff --git a/app/Http/Controllers/MobileApiController.php b/app/Http/Controllers/MobileApiController.php index f0833de..6f196cf 100644 --- a/app/Http/Controllers/MobileApiController.php +++ b/app/Http/Controllers/MobileApiController.php @@ -186,8 +186,14 @@ class MobileApiController extends Controller { $started_at = $request->query('started_at'); $ended_at = $request->query('ended_at'); + $class = $request->query('class'); - $marks = UniModel::model('pipi_brand_models')->get(); + $marks = UniModel::model('pipi_brand_models'); + if ($class) { + $class_id = UniModel::model('pipi_auto_class')->firstWhere('name', $class)->id; + $marks = $marks->where('class_id', $class_id); + } + $marks->get(); $availableMarks = []; foreach ($marks as $mark) { @@ -219,12 +225,12 @@ class MobileApiController extends Controller 'mark' => $mark->name, 'year' => $mark->year, 'configuration' => $equipment?->name, - 'people' => $mark?->people, - 'actuator' => $mark?->actuator, - 'fuel_type' => $mark?->fuel_type, - 'hp' => $mark?->hp, - 'engine_capacity' => $mark?->engine_capacity, - 'fuel_tank' => $mark?->fuel_tank, + 'people' => $mark?->people ?? 5, + 'actuator' => $mark?->actuator ?? 'Передний', + 'fuel_type' => $mark?->fuel_type ?? 'АКПП', + 'hp' => $mark?->hp ?? '1.6', + 'engine_capacity' => $mark?->engine_capacity ?? 1591, + 'fuel_tank' => $mark?->fuel_tank ?? 50, 'conditioner' => $mark?->conditioner, 'tariffs' => $tariffs_new ]; diff --git a/app/Http/Controllers/Sync1cApiController.php b/app/Http/Controllers/Sync1cApiController.php index 03935d2..ccdaa63 100644 --- a/app/Http/Controllers/Sync1cApiController.php +++ b/app/Http/Controllers/Sync1cApiController.php @@ -49,6 +49,39 @@ class Sync1cApiController extends Controller $inspectionKit = json_decode($value['КомпректацияДляОсмотра'], true); } } + + $car = UniModel::model('pipi_auto', $segment->connector)->where('guid', $value['id'])->exist(); + if ($value['ПометкаУдаления'] == 'Да') { + $class_id = UniModel::model('pipi_auto_classes', $segment->connector) + ->first(['name' => $value['Класс']])->id; + $type_id = UniModel::model('pipi_auto_types', $segment->connector) + ->first(['name' => $value['Тип']]); + $brand_id = UniModel::model('pipi_auto_brands', $segment->connector) + ->first(['name' => $value['Марка']]); + $color_id = UniModel::model('pipi_auto_colors', $segment->connector) + ->first(['name' => $value['Цвет']]); + $model = UniModel::model('pipi_brand_models', $segment->connector) + ->first([ + 'name' => $value['Модель'], + 'brand_id' => $brand_id->id, + 'year' => $this->formatDate($value['ГодПроизводства'])?->format('Y'), + ]); + } else { + $class_id = UniModel::model('pipi_auto_classes', $segment->connector) + ->firstOrCreate(['name' => $value['Класс']])->id; + $type_id = UniModel::model('pipi_auto_types', $segment->connector) + ->firstOrCreate(['name' => $value['Тип']]); + $brand_id = UniModel::model('pipi_auto_brands', $segment->connector) + ->firstOrCreate(['name' => $value['Марка']]); + $color_id = UniModel::model('pipi_auto_colors', $segment->connector) + ->firstOrCreate(['name' => $value['Цвет']]); + $model = UniModel::model('pipi_brand_models', $segment->connector) + ->firstOrCreate([ + 'name' => $value['Модель'], + 'brand_id' => $brand_id->id, + 'year' => $this->formatDate($value['ГодПроизводства'])?->format('Y'), + ]); + } UniModel::model('pipi_auto', $segment->connector)->updateOrCreate( [ 'guid' => $value['id'], @@ -56,21 +89,11 @@ class Sync1cApiController extends Controller [ 'code' => $value['Код'], 'name' => $value['Наименование'], - 'type_id' => UniModel::model('pipi_auto_types', $segment->connector) - ->firstOrCreate(['name' => $value['Тип']])->id, - 'class_id' => UniModel::model('pipi_auto_classes', $segment->connector) - ->firstOrCreate(['name' => $value['Класс']])->id, - 'brand_id' => UniModel::model('pipi_auto_brands', $segment->connector) - ->firstOrCreate(['name' => $value['Марка']])->id, - 'model_id' => UniModel::model('pipi_brand_models', $segment->connector) - ->firstOrCreate([ - 'name' => $value['Модель'], - 'brand_id' => UniModel::model('pipi_auto_brands', $segment->connector) - ->firstOrCreate(['name' => $value['Марка']])->id, - 'year' => $this->formatDate($value['ГодПроизводства'])?->format('Y'), - ])->id, - 'color_id' => UniModel::model('pipi_auto_colors', $segment->connector) - ->firstOrCreate(['name' => $value['Цвет']])->id, + 'type_id' => $type_id->id, + 'class_id' => $class_id, + 'brand_id' => $brand_id->id, + 'model_id' => $model->id, + 'color_id' => $color_id->id, 'serial_number' => $value['СерийныйНомер'], 'state_number' => $value['ГосНомер'], 'manufacture_year' => $this->formatDate($value['ГодПроизводства'])?->format('Y-m-d'), @@ -88,6 +111,9 @@ class Sync1cApiController extends Controller 'deleted_at' => $value['ПометкаУдаления'] == 'Да' ? now() : null, ] ); + + $model->class_id = $class_id; + $model->save(); } } @@ -238,11 +264,11 @@ class Sync1cApiController extends Controller foreach ($request->all() as $value) { UniModel::model('pipi_auto_calendar', $segment->connector)->updateOrCreate( [ - 'auto_id' => UniModel::model('pipi_auto')->where('name', $value['Имущество'])->first()?->id, + 'auto_id' => UniModel::model('pipi_auto')->where('guid', $value['id'])->first()?->id, 'date' => $this->formatDate($value['Дата']), ], [ - 'auto_id' => UniModel::model('pipi_auto')->where('name', $value['Имущество'])->first()?->id, + 'auto_id' => UniModel::model('pipi_auto')->where('guid', $value['id'])->first()?->id, 'date' => $this->formatDate($value['Дата']), 'status' => AutoStatusEnums::from($value['Статус'])->name ] diff --git a/modules/brand_models/script.php b/modules/brand_models/script.php index 288138d..a4ef8d6 100644 --- a/modules/brand_models/script.php +++ b/modules/brand_models/script.php @@ -55,6 +55,12 @@ return new class extends \A7kz\Platform\Commands\InstallScript { $table->boolean('conditioner')->default(true)->comment('Кондиционер'); }); } + + if (!Schema::connection($segment->connector)->hasColumn('pipi_brand_models', 'class_id')) { + Schema::connection($segment->connector)->table('pipi_brand_models', function ($table) { + $table->unsignedBigInteger('class_id')->nullable()->comment('Класс'); + }); + } } } };