95 lines
2.9 KiB
PHP
95 lines
2.9 KiB
PHP
<?php
|
|
|
|
namespace Modules\Admin\Http\Controllers;
|
|
|
|
use Modules\Docs\Models\Document;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\Storage;
|
|
use App\Models\Agent\Agent;
|
|
use App\Models\Deal\Contract;
|
|
use App\Models\Deal\Deal;
|
|
use App\Models\Deal\DealStatus;
|
|
use Modules\Bitrix\Models\BitrixId;
|
|
use App\Models\User;
|
|
//use App\Models\User\UserRole;
|
|
//use App\Models\User\Role;
|
|
|
|
class AdminBitrixController extends Controller
|
|
{
|
|
public function index()
|
|
{
|
|
return view('admin::bitrix.index', [
|
|
|
|
]);
|
|
}
|
|
public function agents()
|
|
{
|
|
return view('admin::bitrix.agents', [
|
|
'agents' => 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']
|
|
]
|
|
);
|
|
}
|
|
}
|
|
} |