Комплектация
parent
ef075b39b8
commit
a59837ceb2
|
|
@ -27,6 +27,7 @@ class PipiCarInstallCommands extends InstallCommand
|
||||||
'auto_brands', // Бренд авто
|
'auto_brands', // Бренд авто
|
||||||
'auto_colors', // Цвета авто
|
'auto_colors', // Цвета авто
|
||||||
'auto_types', // Типы авто
|
'auto_types', // Типы авто
|
||||||
|
'auto_equipment', // Комплектация авто
|
||||||
'brand_models', // Модель авто
|
'brand_models', // Модель авто
|
||||||
'auto_classes', // Класс авто
|
'auto_classes', // Класс авто
|
||||||
'auto_tariffs', // Тарифы авто
|
'auto_tariffs', // Тарифы авто
|
||||||
|
|
|
||||||
|
|
@ -40,54 +40,53 @@ return new class extends \A7kz\Platform\Commands\InstallScript {
|
||||||
if ($count === 0) {
|
if ($count === 0) {
|
||||||
foreach ($segments as $segment) {
|
foreach ($segments as $segment) {
|
||||||
foreach ($data as $value) {
|
foreach ($data as $value) {
|
||||||
$car = UniModel::model('pipi_auto', $segment->connector);
|
if ($value['ПометкаУдаления'] == 'Нет') {
|
||||||
$car->code = $value['Код'];
|
$car = UniModel::model('pipi_auto', $segment->connector);
|
||||||
$car->name = $value['Наименование'];
|
$car->code = $value['Код'];
|
||||||
$car->type_id = UniModel::model('pipi_auto_types', $segment->connector)
|
$car->name = $value['Наименование'];
|
||||||
->firstOrCreate([
|
$car->type_id = UniModel::model('pipi_auto_types', $segment->connector)
|
||||||
'name' => $value['Тип']
|
->firstOrCreate([
|
||||||
])->id;
|
'name' => $value['Тип']
|
||||||
$car->class_id = UniModel::model('pipi_auto_classes', $segment->connector)
|
])->id;
|
||||||
->firstOrCreate([
|
$car->class_id = UniModel::model('pipi_auto_classes', $segment->connector)
|
||||||
'name' => $value['Класс']
|
->firstOrCreate([
|
||||||
])->id;
|
'name' => $value['Класс']
|
||||||
$autoBrand = UniModel::model('pipi_auto_brands', $segment->connector)
|
])->id;
|
||||||
->firstOrCreate([
|
$autoBrand = UniModel::model('pipi_auto_brands', $segment->connector)
|
||||||
'name' => $value['Марка']
|
->firstOrCreate([
|
||||||
]);
|
'name' => $value['Марка']
|
||||||
$car->brand_id = $autoBrand->id;
|
]);
|
||||||
$car->model_id = UniModel::model('pipi_brand_models', $segment->connector)
|
$car->brand_id = $autoBrand->id;
|
||||||
->firstOrCreate([
|
$car->model_id = UniModel::model('pipi_brand_models', $segment->connector)
|
||||||
'name' => $value['Модель'],
|
->firstOrCreate([
|
||||||
'brand_id' => $autoBrand->id,
|
'name' => $value['Модель'],
|
||||||
'year' => $this->formatDate($value['ГодПроизводства'])?->format('Y'),
|
'brand_id' => $autoBrand->id,
|
||||||
])->id;
|
'year' => $this->formatDate($value['ГодПроизводства'])?->format('Y'),
|
||||||
$car->color_id = UniModel::model('pipi_auto_colors', $segment->connector)
|
])->id;
|
||||||
->firstOrCreate([
|
$car->color_id = UniModel::model('pipi_auto_colors', $segment->connector)
|
||||||
'name' => $value['Цвет']
|
->firstOrCreate([
|
||||||
])->id;
|
'name' => $value['Цвет']
|
||||||
$car->serial_number = $value['СерийныйНомер'];
|
])->id;
|
||||||
$car->state_number = $value['ГосНомер'];
|
$car->serial_number = $value['СерийныйНомер'];
|
||||||
$car->manufacture_year = $this->formatDate($value['ГодПроизводства'])?->format('Y-m-d');
|
$car->state_number = $value['ГосНомер'];
|
||||||
$car->passport_number = $value['НомерТехПаспорта'];
|
$car->manufacture_year = $this->formatDate($value['ГодПроизводства'])?->format('Y-m-d');
|
||||||
$car->passport_date = $this->formatDate($value['ДатаТехпаспорта'])?->format('Y-m-d');
|
$car->passport_number = $value['НомерТехПаспорта'];
|
||||||
$car->estimated_cost = $value['ОценочнаяСтоимость'];
|
$car->passport_date = $this->formatDate($value['ДатаТехпаспорта'])?->format('Y-m-d');
|
||||||
$owner = UniModel::model('pipi_owners', $segment->connector)
|
$car->estimated_cost = $value['ОценочнаяСтоимость'];
|
||||||
->firstOrCreate([
|
$owner = UniModel::model('pipi_owners', $segment->connector)
|
||||||
'name' =>$value['ВладелецИмущества']
|
->firstOrCreate([
|
||||||
]);
|
'name' =>$value['ВладелецИмущества']
|
||||||
$car->owner_id = $owner->id;
|
]);
|
||||||
$car->is_trust_management = (bool) $value['ВДоверенномУправлении'];
|
$car->owner_id = $owner->id;
|
||||||
$car->owner_percentage = $value['ПроцентВладельца'];
|
$car->is_trust_management = (bool) $value['ВДоверенномУправлении'];
|
||||||
$car->owner_contract = $owner->contract_file_path;
|
$car->owner_percentage = $value['ПроцентВладельца'];
|
||||||
$car->is_inactive = (bool) $value['НеИспользовать'];
|
$car->owner_contract = $owner->contract_file_path;
|
||||||
$car->is_predefined = (bool) $value['Предопределенный'];
|
$car->is_inactive = (bool) $value['НеИспользовать'];
|
||||||
$car->predefined_data_name = $value['ИмяПредопределенныхДанных'];
|
$car->is_predefined = (bool) $value['Предопределенный'];
|
||||||
$car->inspection_kit = json_validate($value['КомпректацияДляОсмотра']) ? $value['КомпректацияДляОсмотра'] : null;
|
$car->predefined_data_name = $value['ИмяПредопределенныхДанных'];
|
||||||
if ($value['ПометкаУдаления'] == 'Да') {
|
$car->inspection_kit = json_validate($value['КомпректацияДляОсмотра']) ? $value['КомпректацияДляОсмотра'] : null;
|
||||||
$car->deleted_at = now();
|
$car->save();
|
||||||
}
|
}
|
||||||
$car->save();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
{
|
||||||
|
"admin": [
|
||||||
|
"default",
|
||||||
|
"add",
|
||||||
|
"show",
|
||||||
|
"edit",
|
||||||
|
"delete"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,101 @@
|
||||||
|
{
|
||||||
|
"module": "pipicar",
|
||||||
|
"name": "pipicar.auto_equipment",
|
||||||
|
"type": "crud",
|
||||||
|
"title": "Комплектация Автомобилей",
|
||||||
|
"data": {
|
||||||
|
"table": "pipi_auto_equipment",
|
||||||
|
"pk": "id",
|
||||||
|
"limit": 25,
|
||||||
|
"segment": true,
|
||||||
|
"timestamp": false,
|
||||||
|
"fields": {
|
||||||
|
"id": {
|
||||||
|
"type": "pk"
|
||||||
|
},
|
||||||
|
"name": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ui": {
|
||||||
|
"grid": {
|
||||||
|
"title": "Комплектация Автомобилей",
|
||||||
|
"template": "app.base.crud.grid",
|
||||||
|
"cols": [
|
||||||
|
{
|
||||||
|
"name": "name",
|
||||||
|
"caption": "Название комплектации"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"action": {
|
||||||
|
"head": [
|
||||||
|
"add"
|
||||||
|
],
|
||||||
|
"row": [
|
||||||
|
"edit",
|
||||||
|
"delete"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"filter": {
|
||||||
|
"template": "app.base.crud.filter",
|
||||||
|
"rows": [
|
||||||
|
{
|
||||||
|
"cols": [
|
||||||
|
{
|
||||||
|
"size": 6,
|
||||||
|
"input": {
|
||||||
|
"name": "name",
|
||||||
|
"label": "Название комплектации"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"forms": {
|
||||||
|
"add": {
|
||||||
|
"title": "Добавление комплектации",
|
||||||
|
"template": "app.base.crud.form",
|
||||||
|
"form": {
|
||||||
|
"submits": "struct:crud.form.edit.submits",
|
||||||
|
"rows": [
|
||||||
|
{
|
||||||
|
"cols": [
|
||||||
|
{
|
||||||
|
"size": 12,
|
||||||
|
"input": {
|
||||||
|
"name": "name",
|
||||||
|
"label": "Название комплектации"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"edit": {
|
||||||
|
"title": "Редактирование комплектации",
|
||||||
|
"template": "app.base.crud.form",
|
||||||
|
"form": {
|
||||||
|
"rows": [
|
||||||
|
{
|
||||||
|
"cols": [
|
||||||
|
{
|
||||||
|
"size": 12,
|
||||||
|
"input": {
|
||||||
|
"name": "name",
|
||||||
|
"label": "Название комплектации"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"submits": "struct:crud.form.edit.submits"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"actions": "struct:crud.actions"
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,23 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
use A7kz\Platform\Modules\Platform\Segment\Facades\Segment;
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
|
||||||
|
return new class extends Migration
|
||||||
|
{
|
||||||
|
public function up(): void
|
||||||
|
{
|
||||||
|
$segments = Segment::listActive();
|
||||||
|
foreach ($segments as $segment) {
|
||||||
|
Schema::connection($segment->connector)->create('pipi_auto_equipment', static function (Blueprint $table) {
|
||||||
|
$table->id();
|
||||||
|
$table->string('name')->nullable()->comment('Наименование');
|
||||||
|
$table->timestamps();
|
||||||
|
$table->softDeletes();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
@ -0,0 +1,54 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
use A7kz\Platform\Models\UniModel;
|
||||||
|
use A7kz\Platform\Modules\Platform\Core\Facades\Core;
|
||||||
|
use A7kz\Platform\Modules\Platform\Segment\Facades\Segment;
|
||||||
|
use Carbon\Carbon;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
use Illuminate\Support\Facades\Storage;
|
||||||
|
use \A7kz\Platform\Commands\InstallScript;
|
||||||
|
|
||||||
|
return new class extends \A7kz\Platform\Commands\InstallScript {
|
||||||
|
|
||||||
|
public function install($module_name, $module_version)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public function update($module_name, $module_version): void
|
||||||
|
{
|
||||||
|
$this->upgrade();
|
||||||
|
$this->seed();
|
||||||
|
}
|
||||||
|
|
||||||
|
private function upgrade(): void
|
||||||
|
{
|
||||||
|
$segments = Segment::listActive();
|
||||||
|
foreach ($segments as $segment) {
|
||||||
|
if (!Schema::connection($segment->connector)->hasTable('pipi_auto_equipment')) {
|
||||||
|
Schema::connection($segment->connector)->create('pipi_auto_equipment', static function (Blueprint $table) {
|
||||||
|
$table->id();
|
||||||
|
$table->string('name')->nullable()->comment('Наименование');
|
||||||
|
$table->timestamps();
|
||||||
|
$table->softDeletes();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private function seed()
|
||||||
|
{
|
||||||
|
$count = UniModel::model('pipi_auto_equipment')->count();
|
||||||
|
if ($count === 0) {
|
||||||
|
$seed = Storage::disk('pipicar_crm')->get('auto_equipment/seeds/seed.json');
|
||||||
|
|
||||||
|
$data = json_decode($seed, true);
|
||||||
|
foreach ($data as $item) {
|
||||||
|
UniModel::model('pipi_auto_equipment')->create([
|
||||||
|
'name' => $item['name'],
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"name": "Полная"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Комфорт"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -16,6 +16,7 @@ return new class extends Migration
|
||||||
$table->id();
|
$table->id();
|
||||||
$table->string('name')->nullable()->comment('Наименование');
|
$table->string('name')->nullable()->comment('Наименование');
|
||||||
$table->integer('year')->nullable()->comment('Год выпуска');
|
$table->integer('year')->nullable()->comment('Год выпуска');
|
||||||
|
$table->unsignedBigInteger('equipment_id')->nullable('Комплектация');
|
||||||
$table->timestamps();
|
$table->timestamps();
|
||||||
$table->softDeletes();
|
$table->softDeletes();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -30,6 +30,7 @@ return new class extends \A7kz\Platform\Commands\InstallScript {
|
||||||
$table->id();
|
$table->id();
|
||||||
$table->string('name')->nullable()->comment('Наименование');
|
$table->string('name')->nullable()->comment('Наименование');
|
||||||
$table->integer('year')->nullable()->comment('Год выпуска');
|
$table->integer('year')->nullable()->comment('Год выпуска');
|
||||||
|
$table->unsignedBigInteger('equipment_id')->nullable('Комплектация');
|
||||||
$table->timestamps();
|
$table->timestamps();
|
||||||
$table->softDeletes();
|
$table->softDeletes();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -68,21 +68,20 @@ return new class extends \A7kz\Platform\Commands\InstallScript {
|
||||||
if ($count === 0) {
|
if ($count === 0) {
|
||||||
foreach ($segments as $segment) {
|
foreach ($segments as $segment) {
|
||||||
foreach ($data as $value) {
|
foreach ($data as $value) {
|
||||||
$model = UniModel::model('pipi_owner_contracts', $segment->connector);
|
if ($value['ПометкаУдаления'] == 'Нет') {
|
||||||
$model->is_group = (bool) $value['ЭтоГруппа'];
|
$model = UniModel::model('pipi_owner_contracts', $segment->connector);
|
||||||
$model->code = $value['Код'];
|
$model->is_group = (bool) $value['ЭтоГруппа'];
|
||||||
$model->name = $value['Наименование'];
|
$model->code = $value['Код'];
|
||||||
$model->comments = $value['Комментарий'];
|
$model->name = $value['Наименование'];
|
||||||
$model->organization = $value['Организация'];
|
$model->comments = $value['Комментарий'];
|
||||||
$model->contract_number = $value['НомерДоговора'];
|
$model->organization = $value['Организация'];
|
||||||
$model->contract_date = $this->formatDate($value['ДатаДоговора'])?->format('Y-m-d');
|
$model->contract_number = $value['НомерДоговора'];
|
||||||
$model->started_at = $this->formatDate($value['ДатаНачалаДействияДоговора'])?->format('Y-m-d');
|
$model->contract_date = $this->formatDate($value['ДатаДоговора'])?->format('Y-m-d');
|
||||||
$model->ended_at = $this->formatDate($value['ДатаОкончанияДействияДоговора'])?->format('Y-m-d');
|
$model->started_at = $this->formatDate($value['ДатаНачалаДействияДоговора'])?->format('Y-m-d');
|
||||||
$model->payment_type = $value['УсловияОплаты'];
|
$model->ended_at = $this->formatDate($value['ДатаОкончанияДействияДоговора'])?->format('Y-m-d');
|
||||||
if ($value['ПометкаУдаления'] = 'Да') {
|
$model->payment_type = $value['УсловияОплаты'];
|
||||||
$model->deleted_at = now();
|
$model->save();
|
||||||
}
|
}
|
||||||
$model->save();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -73,34 +73,33 @@ return new class extends \A7kz\Platform\Commands\InstallScript {
|
||||||
$segments = Segment::listActive();
|
$segments = Segment::listActive();
|
||||||
foreach ($segments as $segment) {
|
foreach ($segments as $segment) {
|
||||||
foreach ($data as $value) {
|
foreach ($data as $value) {
|
||||||
$model = UniModel::model('pipi_owners', $segment->connector);
|
if ($value['ПометкаУдаления'] == 'Нет') {
|
||||||
$model->is_group = (bool) $value['ЭтоГруппа'];
|
$model = UniModel::model('pipi_owners', $segment->connector);
|
||||||
$model->code = $value['Код'];
|
$model->is_group = (bool) $value['ЭтоГруппа'];
|
||||||
$model->name = $value['Наименование'];
|
$model->code = $value['Код'];
|
||||||
$model->comments = $value['Комментарий'];
|
$model->name = $value['Наименование'];
|
||||||
$model->iin = $value['ИдентификационныйКодЛичности'];
|
$model->comments = $value['Комментарий'];
|
||||||
$model->kbe = $value['КБЕ'];
|
$model->iin = $value['ИдентификационныйКодЛичности'];
|
||||||
$model->okpo_code = $value['КодПоОКПО'];
|
$model->kbe = $value['КБЕ'];
|
||||||
$model->main_contact = $value['ОсновноеКонтактноеЛицо'];
|
$model->okpo_code = $value['КодПоОКПО'];
|
||||||
$model->bank_account = $value['ОсновнойБанковскийСчет'];
|
$model->main_contact = $value['ОсновноеКонтактноеЛицо'];
|
||||||
$model->address = $value['Адрес'];
|
$model->bank_account = $value['ОсновнойБанковскийСчет'];
|
||||||
$model->phone = $value['Телефон'];
|
$model->address = $value['Адрес'];
|
||||||
$model->mail = $value['Почта'];
|
$model->phone = $value['Телефон'];
|
||||||
$model->id_number = $value['УдНомер'];
|
$model->mail = $value['Почта'];
|
||||||
if ($value['УдДата']) {
|
$model->id_number = $value['УдНомер'];
|
||||||
$model->id_date = $this->formatDate($value['УдДата'])->format('Y-m-d');
|
if ($value['УдДата']) {
|
||||||
|
$model->id_date = $this->formatDate($value['УдДата'])->format('Y-m-d');
|
||||||
|
}
|
||||||
|
$model->issued = $value['УдВыдан'];
|
||||||
|
if ($value['ОсновнойДоговор']) {
|
||||||
|
$model->contract_id = UniModel::model('pipi_owner_contracts', $segment->connector)
|
||||||
|
->firstOrCreate([
|
||||||
|
'name' => $value['ОсновнойДоговор']
|
||||||
|
])->id;
|
||||||
|
}
|
||||||
|
$model->save();
|
||||||
}
|
}
|
||||||
$model->issued = $value['УдВыдан'];
|
|
||||||
if ($value['ОсновнойДоговор']) {
|
|
||||||
$model->contract_id = UniModel::model('pipi_owner_contracts', $segment->connector)
|
|
||||||
->firstOrCreate([
|
|
||||||
'name' => $value['ОсновнойДоговор']
|
|
||||||
])->id;
|
|
||||||
}
|
|
||||||
if ($value['ПометкаУдаления'] == 'Да') {
|
|
||||||
$model->deleted_at = now();
|
|
||||||
}
|
|
||||||
$model->save();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue