Agent::all() ]); } public function setAgentId(Request $request, Agent $agent) { $agent->setBitrixId($request->id); return back()->withSuccess('ID агента обновлен'); } public function syncDeals(Agent $agent) { $url = 'https://b24alfa.pro/channels/lk/getDealsOfContact?id=' . $agent->bitrixId(); $data = file_get_contents($url); $deals = json_decode($data, true); foreach ($deals as $deal) { if (count($deal['contacts']) == 0) { continue; } $client = false; //Загрузка контактов if ($deal['contacts'][0]['phone']) { $client = User::createOrFirst( ['phone' => $deal['contacts'][0]['phone']], [ 'name' => $deal['contacts'][0]['name'], 'phone' => $deal['contacts'][0]['phone'] ] ); } ; $dealItem = false; $bitrixId = BitrixId::where('bx_id', $deal['deal']['deal_id']) ->where('bitrixable_type', get_class(new Deal())); //Загрузка сделок if ($bitrixId->count() == 0) { $dealItem = Deal::create([ 'client_id' => $client->id, 'complex_id' => 1, 'agent_id' => $agent->id, 'status' => DealStatus::UNIQUE, ]); $dealItem->setBitrixId($deal['deal']['deal_id']); } else { $bitrixId = $bitrixId->first(); $dealItem = Deal::find($bitrixId->bitrixable_id); } ; $inDeal = $deal['deal']; $contract = Contract::updateOrCreate( ['deal_id' => $dealItem->id], [ 'price' => $inDeal['price'], 'square' => $inDeal['square'], 'floor' => $inDeal['floor'], 'room' => $inDeal['room'], 'plan7_id' => $inDeal['plan7_id'] ] ); } } }