обновлена главная страница агента

This commit is contained in:
developer 2026-04-30 12:03:47 +08:00
parent a663a7932b
commit c01e47aff2
4 changed files with 53 additions and 46 deletions

View File

@ -28,44 +28,45 @@ public function bitrixable(): MorphTo
return $this->morphTo(); return $this->morphTo();
} }
protected function getSender(BitrixId $bitrixId)
{
$object = false;
$sender = false;
switch ($bitrixId->bitrixable_type) {
case Deal::class:
$deal = Deal::findOrFail($bitrixId->bitrixable_id);
$sender = new SendDeal($deal);
$object = $deal;
break;
case Agent::class:
$agent = Agent::findOrFail($bitrixId->bitrixable_id);
$sender = new SendAgent($agent);
break;
case DealClients::class:
$dealClient = DealClients::findOrFail($bitrixId->bitrixable_id);
$client = $dealClient->client;
$sender = new SendClient($client);
$bitrixId->bitrixable_type = Client::class;
$bitrixId->bitrixable_id = $client->id;
$object = $client;
break;
case Company::class:
$company = Company::findOrFail($bitrixId->bitrixable_id);
$sender = new SendCompany($company);
$object = $company;
break;
}
return $sender;
}
protected static function booted() protected static function booted()
{ {
static::creating(function (BitrixId $bitrixId) static::creating(function (BitrixId $bitrixId) {
{ if ($bitrixId->bx_id) {
if ($bitrixId->bx_id)
{
return; return;
} }
$object = false; $sender = $this->getSender($bitrixId);
$sender = new BitrixSender(); if ($sender) {
switch ( $bitrixId->bitrixable_type )
{
case Deal::class:
$deal = Deal::findOrFail($bitrixId->bitrixable_id);
$sender = new SendDeal($deal);
$object = $deal;
break;
case Agent::class:
$agent = Agent::findOrFail($bitrixId->bitrixable_id);
$sender = new SendAgent($agent);
break;
case DealClients::class:
$dealClient = DealClients::findOrFail($bitrixId->bitrixable_id);
$client = $dealClient->client;
$sender = new SendClient($client);
$bitrixId->bitrixable_type = Client::class;
$bitrixId->bitrixable_id = $client->id;
$object = $client;
break;
case Company::class:
$company = Company::findOrFail($bitrixId->bitrixable_id);
$sender = new SendCompany($company);
$object = $company;
break;
}
if ($sender)
{
//$bitrixId->token = Hash::make(json_encode([$object]));
$bitrixId->token = hash('sha256', $bitrixId->bx_id . $bitrixId->bitrixable_id . $bitrixId->bitrixable_type); $bitrixId->token = hash('sha256', $bitrixId->bx_id . $bitrixId->bitrixable_id . $bitrixId->bitrixable_type);
$sender->setCallbackUrl( $sender->setCallbackUrl(
route('api.bx.action', [ route('api.bx.action', [
@ -73,8 +74,7 @@ protected static function booted()
]) ])
); );
$result = $sender->send(); $result = $sender->send();
if ($result) if ($result) {
{
$id = $sender->resultData['id']; $id = $sender->resultData['id'];
$bitrixId->bx_id = $id; $bitrixId->bx_id = $id;
return; return;
@ -83,14 +83,14 @@ protected static function booted()
throw new \Exception('Error of bitrix identifier getter for ' . $bitrixId->bitrixable_type . ' with id ' . $bitrixId->bitrixable_id); throw new \Exception('Error of bitrix identifier getter for ' . $bitrixId->bitrixable_type . ' with id ' . $bitrixId->bitrixable_id);
}); });
static::created(function (BitrixId $bitrixId) //Агентов и клиентов отправляю после создания,
{ //т.к. на стороне битрикса нужна связка сущностей
if (!$bitrixId->bx_id) //по созданной сделке
{ static::created(function (BitrixId $bitrixId) {
if (!$bitrixId->bx_id) {
return; return;
} }
switch ( $bitrixId->bitrixable_type ) switch ($bitrixId->bitrixable_type) {
{
case Deal::class: case Deal::class:
$deal = Deal::findOrFail($bitrixId->bitrixable_id); $deal = Deal::findOrFail($bitrixId->bitrixable_id);
$agentAppender = new SendDealAgent($deal); $agentAppender = new SendDealAgent($deal);
@ -98,8 +98,7 @@ protected static function booted()
break; break;
case Client::class: case Client::class:
$client = Client::findOrFail($bitrixId->bitrixable_id); $client = Client::findOrFail($bitrixId->bitrixable_id);
if ($dealClient = DealClients::where('client_id', $client->id)->orderByDesc('id')->first()) if ($dealClient = DealClients::where('client_id', $client->id)->orderByDesc('id')->first()) {
{
$clientAppender = new SendDealClient(Deal::find($dealClient->deal_id), $client); $clientAppender = new SendDealClient(Deal::find($dealClient->deal_id), $client);
$result = $clientAppender->send(); $result = $clientAppender->send();
} }

View File

@ -66,7 +66,6 @@ public function send()
$postdata = http_build_query( $postdata = http_build_query(
$this->data $this->data
); );
//dd($this->data);
$opts = array( $opts = array(
'ssl' => array( 'ssl' => array(
'verify_peer' => true, 'verify_peer' => true,

View File

@ -78,6 +78,15 @@ public static function firstOrCreate($attributes = [], $values = [])
} }
return true; return true;
} }
/*protected function save() {
if ($bitrixId = $this->bitrixy())
{
$bitrixId = $bitrixId->bx_id;
}
parent::save();
}*/
} }

View File

@ -47,7 +47,7 @@ class="btn list-group-item list-group-item-action p-3 bg-white rounded border bo
</div> </div>
</div> </div>
<div class="form-wrap col-12 col-lg-6"> <div class="form-wrap col-12 col-lg-6">
<div class="form-wrap__inner p-2 px-sm-4 py-sm-3 bg-primary border rounded-3 mx-auto" style="z-index:2000"> <div class="form-wrap__inner p-2 px-sm-4 py-sm-3 bg-primary border rounded-3 mx-auto" style="">
<div class="h4 pb-2 mb-2 fw-bold d-flex flex-column"> <div class="h4 pb-2 mb-2 fw-bold d-flex flex-column">
<small>Добавить клиента</small> <small>Добавить клиента</small>
</div> </div>