lk.zachem.info/app/Modules/Admin/Http/Livewire/Payments.php

95 lines
2.5 KiB
PHP

<?php
namespace Modules\Admin\Http\Livewire;
use Livewire\Component;
use App\Models\Company\Company;
use App\Models\Complex;
use App\Models\Agent\Agent;
class Payments extends Component
{
public $newValue;
public $companyId;
public function mount()
{
}
public function setCompany(Company $company)
{
$this->companyId = $company->id;
}
public function back()
{
$this->companyId = null;
}
public function setPaymentValueForCompany(Company $company, Complex $complex)
{
$company->setPayment($complex, $this->newValue);
$this->newValue = null;
}
public function unsetPaymentForCompany(Company $company, Complex $complex)
{
$company->unsetPayment($complex);
}
public function setPaymentValueForAgent(Agent $agent, Complex $complex)
{
$agent->setPayment($complex, $this->newValue);
$this->newValue = null;
}
public function setPaymentAsParentForAgent(Agent $agent, Complex $complex)
{
$agent->setAsParentPayment($complex);
$this->newValue = null;
}
public function unsetPaymentForAgent(Agent $agent, Complex $complex)
{
$agent->unsetPayment($complex);
}
public function setPaymentForAllAgentOfCompany(Company $company, Complex $complex)
{
$compPayment = $company->getPaymentable($complex);
$compPayment = $compPayment->value;
if ($compPayment == null || $compPayment == -1)
{
return false;
}
$agents = Agent::where('company_id', $company->id)->get();
foreach ($agents as $agent)
{
$agent->setPayment($complex, $compPayment);
}
}
public function render()
{
if ($this->companyId)
{
return view('admin::payments.agents', [
'company' => Company::find($this->companyId),
'complexes' => Complex::orderBy('name')->get(),
'agents' => Agent::where('company_id', $this->companyId)->
with([
'user' => function ($query)
{
$query->orderBy('name', 'desc');
}
])->get()
]);
}
else
{
return view('admin::payments.companies', [
'companies' => Company::orderBy('name')->get(),
'complexes' => Complex::orderBy('name')->get(),
]);
}
}
}