From 33e61ac20d2de841a792c91fa3e02489b8c33b89 Mon Sep 17 00:00:00 2001 From: Thekindbull Date: Tue, 19 Aug 2025 09:12:40 +0800 Subject: [PATCH] =?UTF-8?q?=D0=BE=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=20=D0=BC=D0=B5=D1=85=D0=B0=D0=BD=D0=B8=D0=B7=D0=BC=20?= =?UTF-8?q?=D0=BF=D0=BE=D0=B4=D1=81=D1=87=D0=B5=D1=82=D0=B0=20=D0=B2=D0=BE?= =?UTF-8?q?=D0=B7=D0=BD=D0=B0=D0=B3=D1=80=D0=B0=D0=B6=D0=B4=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/AdminBitrixController.php | 2 +- .../Views/livewire/table/index.blade.php | 7 ++++- app/Modules/Payment/Models/AgentPayment.php | 17 +++++++++++ app/Modules/Payment/Models/Payment.php | 30 ++++++++++++++++++- app/Modules/Payment/Traits/Paymentable.php | 1 + 5 files changed, 54 insertions(+), 3 deletions(-) create mode 100644 app/Modules/Payment/Models/AgentPayment.php diff --git a/app/Modules/Admin/Http/Controllers/AdminBitrixController.php b/app/Modules/Admin/Http/Controllers/AdminBitrixController.php index e47cd4b..077893b 100644 --- a/app/Modules/Admin/Http/Controllers/AdminBitrixController.php +++ b/app/Modules/Admin/Http/Controllers/AdminBitrixController.php @@ -70,7 +70,7 @@ public function syncDeals(Agent $agent) { $dealItem = Deal::create([ 'client_id' => $client->id, - 'complex_id' => 1, + 'complex_id' => $inDeal->complex_id, 'agent_id' => $agent->id, 'status' => DealStatus::UNIQUE, ]); diff --git a/app/Modules/Contracts/Views/livewire/table/index.blade.php b/app/Modules/Contracts/Views/livewire/table/index.blade.php index 1f7360b..ecc0905 100644 --- a/app/Modules/Contracts/Views/livewire/table/index.blade.php +++ b/app/Modules/Contracts/Views/livewire/table/index.blade.php @@ -41,7 +41,12 @@ reward = $contract->reward ? $contract->reward : 0; + $agent = $contract->deal->agent; + $agentPaymentable = $agent->getPaymentable($contract->deal->complex); + $rewardPercent = $agentPaymentable->getPaymentablePercent(); + $price = $contract->price; + $contract->reward = ($price * $rewardPercent) / 100; + //$contract->reward = $contract->reward ? $contract->reward : 0; $reward = Number::forHumans($contract->reward, precision: 2); $reward = str_replace('million', 'млн', $reward); $reward = str_replace('thousand', 'тыс', $reward); diff --git a/app/Modules/Payment/Models/AgentPayment.php b/app/Modules/Payment/Models/AgentPayment.php new file mode 100644 index 0000000..b5f81e0 --- /dev/null +++ b/app/Modules/Payment/Models/AgentPayment.php @@ -0,0 +1,17 @@ +value == -1) + { + if ($this->paymentable_type == 'Company') + { + return false; + } + + if ($this->paymentable_type == 'Agent') + { + $agent = Agent::find($this->paymentable_id); + $company = $agent->company; + $parentPaymentable = $company->getPaymentable(Complex::find($this->complex_id)); + return $parentPaymentable->getPaymentablePercent(); + } + } + //не установлено + if ($this->value == null) + { + return false; + } + + return $this->value; + } } diff --git a/app/Modules/Payment/Traits/Paymentable.php b/app/Modules/Payment/Traits/Paymentable.php index 9f5b0d4..9fd5f35 100644 --- a/app/Modules/Payment/Traits/Paymentable.php +++ b/app/Modules/Payment/Traits/Paymentable.php @@ -46,6 +46,7 @@ public function getPaymentable(Complex $complex) return false; } + public function setPayment(Complex $complex, $value) { $paymentable = $this->getPaymentable($complex);