diff --git a/app/Modules/Admin/Http/Controllers/AdminPlan7Controller.php b/app/Modules/Admin/Http/Controllers/AdminPlan7Controller.php new file mode 100644 index 0000000..3c81596 --- /dev/null +++ b/app/Modules/Admin/Http/Controllers/AdminPlan7Controller.php @@ -0,0 +1,35 @@ + Complex::orderBy('city_id')->get() + ]); + } + + public function save(Request $request) { + foreach ($request->plan7 as $complexId=>$plan7ApiData) { + if ($plan7ApiData['token'] && $plan7ApiData['zk']) { + ComplexPlan7::updateOrCreate([ + 'complex_id' => $complexId, + ], [ + 'complex_id' => $complexId, + 'token' => $plan7ApiData['token'], + 'zk' => $plan7ApiData['zk'] + ]); + } else { + ComplexPlan7::where('complex_id', $complexId)->delete(); + } + } + return to_route('admin.plan7'); + } +} \ No newline at end of file diff --git a/app/Modules/Admin/Routes/web.php b/app/Modules/Admin/Routes/web.php index 7e3a346..763e86c 100644 --- a/app/Modules/Admin/Routes/web.php +++ b/app/Modules/Admin/Routes/web.php @@ -71,6 +71,7 @@ Route::post('/admin/bitrix/agents/{agent}/set', [Modules\Admin\Http\Controllers\AdminBitrixController::class, 'setAgentId'])->name('admin.bitrix.agent.set'); Route::get('/admin/bitrix/agents/{agent}/deals/sync', [Modules\Admin\Http\Controllers\AdminBitrixController::class, 'syncDeals'])->name('admin.bitrix.agent.deals.sync'); - - + Route::get('/admin/plan7', [Modules\Admin\Http\Controllers\AdminPlan7Controller::class, 'index'])->name('admin.plan7'); + Route::post('/admin/plan7/save', [Modules\Admin\Http\Controllers\AdminPlan7Controller::class, 'save'])->name('admin.plan7.save'); + }); \ No newline at end of file diff --git a/app/Modules/Admin/Views/bitrix/webhooks.blade.php b/app/Modules/Admin/Views/bitrix/webhooks.blade.php index a283a8b..19ed422 100644 --- a/app/Modules/Admin/Views/bitrix/webhooks.blade.php +++ b/app/Modules/Admin/Views/bitrix/webhooks.blade.php @@ -6,9 +6,9 @@ Создайтие обработчики событий на стороне вашего Битрикс24 для указанных событий.
+ @csrf @foreach ($webhooksEnumCases as $webhookEnum)
- @csrf
{{ $webhookEnum->name }} {{ __('admin.' . $webhookEnum->name) . ' webhook label' }} diff --git a/app/Modules/Admin/Views/menu/index.blade.php b/app/Modules/Admin/Views/menu/index.blade.php index 8b1bb5f..c366b17 100644 --- a/app/Modules/Admin/Views/menu/index.blade.php +++ b/app/Modules/Admin/Views/menu/index.blade.php @@ -42,6 +42,8 @@ class="nav-link d-flex align-items-center gap-2 fs-5 border rounded-4" href="#"> +
diff --git a/app/Modules/Admin/Views/plan7/index.blade.php b/app/Modules/Admin/Views/plan7/index.blade.php new file mode 100644 index 0000000..18ee505 --- /dev/null +++ b/app/Modules/Admin/Views/plan7/index.blade.php @@ -0,0 +1,33 @@ +@php($title = 'Интеграция Plan7') +@extends('layouts.admin') +@section('content') + + + @csrf + @foreach($complexes as $complex) +
+
+ {{ $complex->name }} +
+
+ {{ $complex->city->name }} +
+
+ +
+
+ +
+
+ @endforeach + + + +@endsection \ No newline at end of file diff --git a/app/Modules/ClientCreateForm/Views/livewire/form.blade.php b/app/Modules/ClientCreateForm/Views/livewire/form.blade.php index 76ce1f4..a2094d2 100644 --- a/app/Modules/ClientCreateForm/Views/livewire/form.blade.php +++ b/app/Modules/ClientCreateForm/Views/livewire/form.blade.php @@ -163,11 +163,13 @@ class="bi bi-plus-circle" viewBox="0 0 16 16"> @enderror
- @if($complexId) + @if($complexId && ComplexHasPlan7ApiData($complexId))
- + @livewire('plan7Selector', [ + 'complexId' => $complexId + ])
@endif diff --git a/app/Modules/Main/Models/Complex.php b/app/Modules/Main/Models/Complex.php index c322e9c..01d2b29 100644 --- a/app/Modules/Main/Models/Complex.php +++ b/app/Modules/Main/Models/Complex.php @@ -7,10 +7,12 @@ use Illuminate\Database\Eloquent\SoftDeletes; use Modules\Main\Models\City; +use Modules\Plan7\Traits\Plan7; class Complex extends Model { use HasFactory; use SoftDeletes; + use Plan7; protected $fillable = [ 'name', 'city_id' diff --git a/app/Modules/Plan7/Database/Migrations/2026_04_03_000001_create_complex_plan7_table.php b/app/Modules/Plan7/Database/Migrations/2026_04_03_000001_create_complex_plan7_table.php new file mode 100644 index 0000000..00d20a5 --- /dev/null +++ b/app/Modules/Plan7/Database/Migrations/2026_04_03_000001_create_complex_plan7_table.php @@ -0,0 +1,31 @@ +id(); + $table->foreignId('complex_id')->references('id')->on('complexes')->onDelete('cascade'); + $table->string('token'); + $table->integer('zk'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('complex_plan7'); + } +}; diff --git a/app/Modules/Plan7/Helpers/helper.php b/app/Modules/Plan7/Helpers/helper.php new file mode 100644 index 0000000..55daa60 --- /dev/null +++ b/app/Modules/Plan7/Helpers/helper.php @@ -0,0 +1,15 @@ +getPlan7ApiData()) { + return true; + } + return false; + } +} \ No newline at end of file diff --git a/app/Modules/Plan7/Http/Livewire/Plan7SelectorLivewire.php b/app/Modules/Plan7/Http/Livewire/Plan7SelectorLivewire.php index 7f72a86..96ef0fd 100644 --- a/app/Modules/Plan7/Http/Livewire/Plan7SelectorLivewire.php +++ b/app/Modules/Plan7/Http/Livewire/Plan7SelectorLivewire.php @@ -3,10 +3,12 @@ namespace Modules\Plan7\Http\Livewire; use Livewire\Component; +use Modules\Main\Models\Complex; class Plan7SelectorLivewire extends Component { public $mode = 'new'; + public $complexId; public $containerId; public $filter = []; @@ -16,13 +18,17 @@ class Plan7SelectorLivewire extends Component public $summary; public $room = false; public $objects = []; - private $apiSummary = 'https://plan7.ru/catalog/exp/json/summary/?token=0754c5e6a3824322&zk=614'; - private $apiAll = 'https://plan7.ru/catalog/exp/json/?token=0754c5e6a3824322&zk=614'; + private $apiSummary; + private $apiAll; public function mount($containerId = 'plan7__selector') { $this->containerId = $containerId; - $this->getSummary(); - $this->getData(); + if ($plan7ApiData = Complex::find($this->complexId)->getPlan7ApiData()) { + $this->apiSummary = 'https://plan7.ru/catalog/exp/json/summary/?token=' . $plan7ApiData->token . '&zk=' . $plan7ApiData->zk; + $this->apiAll = 'https://plan7.ru/catalog/exp/json/?token=' . $plan7ApiData->token . '&zk=' . $plan7ApiData->zk; + $this->getSummary(); + $this->getData(); + } } private function getSummary() { @@ -74,8 +80,6 @@ public function resetFilter() { public function start() { $this->mode = 'select'; $this->filter = []; - //$this->room = false; - $this->getData(); } public function done() { $this->mode = 'selected'; @@ -115,29 +119,7 @@ public function render() ]; } } - /*if (!$this->bs && !$this->room) { - foreach ($this->allObjects['values']['bs'] as $key => $house) { - $objs[] = [ - 'mode' => 'bs', - 'id' => $house['id'], - 'name' => $house['name'], - ]; - } - } elseif ($this->bs && !$this->room) { - foreach ($this->allObjects['data'] as $key => $room) { - if ($room['access'] != 0) { - $room['mode'] = 'room'; - $objs[] = $room; - } - } - } elseif ($this->bs && $this->room) { - foreach ($this->allObjects['data'] as $key => $room) { - if ($room['id'] == $this->room['id']) { - $room['mode'] = 'room'; - $objs[] = $room; - } - } - }*/ + return view('plan7::livewire.selector', [ 'objs' => $objs ]); diff --git a/app/Modules/Plan7/Models/ComplexPlan7.php b/app/Modules/Plan7/Models/ComplexPlan7.php new file mode 100644 index 0000000..3a674e6 --- /dev/null +++ b/app/Modules/Plan7/Models/ComplexPlan7.php @@ -0,0 +1,14 @@ +registerConfig(); $this->registerComponent(); $this->registerLivewire(); + $this->registerHelpers(); } protected function registerViews() @@ -68,4 +69,12 @@ protected function registerComponent() { //Blade::component('document', \Modules\Plan7\Http\Components\DocumentComponent::class); } + + protected function registerHelpers() + { + $files = glob(__DIR__ . '/../Helpers/' . "*.php"); + foreach ($files as $key => $file) { + require_once $file; + } + } } \ No newline at end of file diff --git a/app/Modules/Plan7/Traits/Plan7.php b/app/Modules/Plan7/Traits/Plan7.php new file mode 100644 index 0000000..dcb0c16 --- /dev/null +++ b/app/Modules/Plan7/Traits/Plan7.php @@ -0,0 +1,22 @@ +id)->first() ) { + return $plan7; + } + return null; + } +} + + diff --git a/public/pull.php b/public/pull.php index 582a13b..9c1cba4 100644 --- a/public/pull.php +++ b/public/pull.php @@ -25,7 +25,7 @@ if($json['total_commits'] > 0) { //$result = shell_exec("cd /var/www/lk && git reset --hard HEAD && git pull && npm run build"); - $result = shell_exec("cd /var/www/lk && git reset --hard HEAD && git pull && npm run build && php artisan optimize:clear"); + $result = shell_exec("cd /var/www/lk && git reset --hard HEAD && git pull && php artisan migrate && npm run build && php artisan optimize:clear"); echo "

$result

" ; }