public function revertleadassigntoidAction() { $page = $this->getRequest()->getQuery('page', 1); $currentItem = $this->getRequest()->getQuery('currentItem', 0); $dbSql = $this->getServiceLocator()->get('dbSql'); $dbAdapter = $this->getServiceLocator()->get('dbAdapter'); $select = $dbSql->select(array('l' => \Crm\Model\LeadMapper::TABLE_NAME)); $select->where(['assignedToId IS NOT NULL']); $select->order(['id ASC']); $paginatorAdapter = new \Zend\Paginator\Adapter\DbSelect($select, $dbAdapter); $paginator = new \Zend\Paginator\Paginator($paginatorAdapter); $paginator->setItemCountPerPage(100); $paginator->setCurrentPageNumber($page); $leadUserMapper = $this->getServiceLocator()->get('\\Crm\\Model\\Lead\\UserMapper'); $leadMapper = $this->getServiceLocator()->get('\\Crm\\Model\\LeadMapper'); $currentDateTime = DateBase::getCurrentDateTime(); foreach ($paginator as $row) { $row = (array) $row; $leadUser = new \Crm\Model\Lead\User(); $leadUser->setLeadId($row['id']); $leadUser->setType(\Crm\Model\Lead\User::TYPE_SALE); $leadUser->setUserId($row['assignedToId']); $leadUser->setCreatedById($this->user()->getIdentity()); $leadUser->setCreatedDateTime($currentDateTime); if (!$leadUserMapper->isExisted($leadUser)) { $leadUserMapper->save($leadUser); $currentItem++; $lead = new \Crm\Model\Lead(); $lead->exchangeArray($row); $lead->setStatus(\Crm\Model\Lead::STATUS_ASSIGNTED); $leadMapper->save($lead); } } if ($paginator->getCurrentPageNumber() >= $paginator->getTotalItemCount() / $paginator->getItemCountPerPage()) { $this->getViewModel()->setVariable('defaultRedirectUri', '/system/tool/revertleadassigntoid'); $this->getViewModel()->setVariable('page', $currentItem); $this->getViewModel()->setVariable('totalPages', $paginator->getTotalItemCount()); return $this->getViewModel(); } $this->getViewModel()->setVariable('redirectUri', '/system/tool/revertleadassigntoid?page=' . ($page + 1) . '¤tItem=' . $currentItem); $this->getViewModel()->setVariable('defaultRedirectUri', '/system/tool/revertleadassigntoid'); $this->getViewModel()->setVariable('page', $currentItem); $this->getViewModel()->setVariable('totalPages', $paginator->getTotalItemCount()); return $this->getViewModel(); }
/** * @author KienNN * @param \Accounting\Model\Transaction $item * @param unknown $options */ public function searchCrmContract($item, $options) { $select = $this->getDbSql()->select(['t' => self::TABLE_NAME]); $select->join(['c' => \Crm\Model\ContractMapper::TABLE_NAME], 't.itemId=c.id', []); $select->where(['t.itemType' => \Accounting\Model\Transaction::ITEM_TYPE_CRM_CONTRACT]); if ($item->getCompanyId()) { $select->where(['t.companyId' => $item->getCompanyId()]); } if ($item->getOption('companyIds')) { $select->where(['t.companyId' => $item->getOption('companyIds')]); } if ($item->getOption('userIds')) { $select->join(['lu' => \Crm\Model\Lead\UserMapper::TABLE_NAME], new Expression('lu.accountId=c.accountId OR lu.leadId=c.leadId'), []); $select->where(['lu.userId' => $item->getOption('userIds')]); } if ($item->getId()) { $select->where(['t.id' => $item->getId()]); } if ($item->getStatus()) { $select->where(['t.status' => $item->getStatus()]); } if ($item->getType()) { $select->where(['t.type' => $item->getType()]); } if ($item->getCreatedById()) { $select->where(['t.createdById' => $item->getCreatedById()]); } if ($item->getOption('departmentId')) { $select->where(['c.departmentId' => $item->getOption('departmentId')]); } if ($item->getOption('contractId')) { $select->where(['t.itemId' => $item->getOption('contractId')]); } if ($item->getOption('productId')) { $select->join(['cp' => \Crm\Model\Contract\ProductMapper::TABLE_NAME], 'cp.contractId=t.itemId', []); $select->where(['cp.productId' => $item->getOption('productId')]); } if ($item->getOption('accountingType')) { $select->join(['i' => \Accounting\Model\Transaction\ItemMapper::TABLE_NAME], 'i.transactionId=t.id', []); $condition = new Expression('i.creditAccountId=ac.id OR i.debitAccountId=ac.id'); $select->join(['ac' => \Accounting\Model\AccountMapper::TABLE_NAME], $condition, []); $select->where(['ac.type' => $item->getOption('accountingType')]); } if ($item->getOption('accountId')) { $select->where(['c.accountId' => $item->getOption('accountId')]); } if ($item->getOption('leadId')) { $select->where(['c.leadId' => $item->getOption('leadId')]); } if ($item->getOption('fromApplyDate')) { $select->where(['t.applyDate >= ?' => $item->getOption('fromApplyDate')]); $select->where(['t.accountingById IS NOT NULL']); } if ($item->getOption('toApplyDate')) { $select->where(['t.applyDate <= ?' => $item->getOption('toApplyDate')]); $select->where(['t.accountingById IS NOT NULL']); } if ($item->getOption('fromCreatedDate')) { $select->where(['t.createdDate >= ?' => $item->getOption('fromCreatedDate')]); } if ($item->getOption('toCreatedDate')) { $select->where(['t.createdDate <= ?' => $item->getOption('toCreatedDate')]); } if ($item->getCreatedById()) { $select->where(['t.createdById' => $item->getCreatedById()]); } if ($item->getAccountingById()) { $select->where(['t.accountingById' => $item->getAccountingById()]); } if ($item->getOption('commisstionToEmployeeId')) { $select->join(['com' => \Crm\Model\Contract\CommissionMapper::TABLE_NAME], 't.itemId=com.contractId', []); $select->where(['com.employeeId' => $item->getOption('commisstionToEmployeeId')]); } $select->group(['t.id']); $select->order([new Expression('IFNULL(t.applyDate, t.createdDate) DESC'), 't.id DESC']); $paginator = $this->preparePaginator($select, $options, new \Accounting\Model\Transaction()); $contractIds = []; $userIds = []; $transactionIds = []; foreach ($paginator as $transaction) { if ($transaction->getItemId()) { $contractIds[$transaction->getItemId()] = $transaction->getItemId(); } if ($transaction->getCreatedById()) { $userIds[$transaction->getCreatedById()] = $transaction->getCreatedById(); } if ($transaction->getApprovedById()) { $userIds[$transaction->getApprovedById()] = $transaction->getApprovedById(); } if ($transaction->getAccountingById()) { $userIds[$transaction->getAccountingById()] = $transaction->getAccountingById(); } if ($transaction->getPaymentById()) { $userIds[$transaction->getPaymentById()] = $transaction->getPaymentById(); } $transactionIds[$transaction->getId()] = $transaction->getId(); } $crmAccounts = []; $crmLeads = []; $contractValues = []; $contractPaids = []; if (count($contractIds)) { if ($item->getOption('loadCustomer')) { $select = $this->getDbSql()->select(['a' => \Crm\Model\AccountMapper::TABLE_NAME]); $select->join(['c' => \Crm\Model\ContractMapper::TABLE_NAME], 'c.accountId=a.id', ['contractId' => 'id']); $select->where(['c.id' => $contractIds]); $rows = $this->getDbAdapter()->query($this->getDbSql()->buildSqlString($select), Adapter::QUERY_MODE_EXECUTE); if ($rows->count()) { foreach ($rows->toArray() as $row) { $account = new \Crm\Model\Account(); $account->exchangeArray($row); $crmAccounts[$row['contractId']] = $account; } } $select = $this->getDbSql()->select(['l' => \Crm\Model\LeadMapper::TABLE_NAME]); $select->join(['c' => \Crm\Model\ContractMapper::TABLE_NAME], 'c.leadId=l.id', ['contractId' => 'id']); $select->where(['c.id' => $contractIds]); $rows = $this->getDbAdapter()->query($this->getDbSql()->buildSqlString($select), Adapter::QUERY_MODE_EXECUTE); if ($rows->count()) { foreach ($rows->toArray() as $row) { $lead = new \Crm\Model\Lead(); $lead->exchangeArray($row); $crmLeads[$row['contractId']] = $lead; } } } if ($item->getOption('loadContractValue')) { $select = $this->getDbSql()->select(['p' => \Crm\Model\Contract\ProductMapper::TABLE_NAME]); $select->where(['contractId' => $contractIds]); $rows = $this->getDbAdapter()->query($this->getDbSql()->buildSqlString($select), Adapter::QUERY_MODE_EXECUTE); if ($rows->count()) { foreach ($rows->toArray() as $row) { $product = new \Crm\Model\Contract\Product($row); $value = $product->calculateValue(); if (isset($contractValues[$product->getContractId()])) { $contractValues[$product->getContractId()] += $value; } else { $contractValues[$product->getContractId()] = $value; } } } } if ($item->getOption('loadContractPaid')) { $select = $this->getDbSql()->select(['t' => self::TABLE_NAME]); $select->where(['itemType' => \Accounting\Model\Transaction::ITEM_TYPE_CRM_CONTRACT]); $select->where(['itemId' => $contractIds]); $select->where(['status' => [\Accounting\Model\Transaction::STATUS_ACCOUNTING, \Accounting\Model\Transaction::STATUS_PAYMENT]]); $rows = $this->getDbAdapter()->query($this->getDbSql()->buildSqlString($select), Adapter::QUERY_MODE_EXECUTE); if ($rows->count()) { foreach ($rows->toArray() as $row) { if (isset($contractPaids[$row['itemId']])) { $contractPaids[$row['itemId']] += $row['amount']; } else { $contractPaids[$row['itemId']] = $row['amount']; } } } } } $accountingAccounts = []; if ($item->getOption('loadAccountingAccount') && count($transactionIds)) { $select = $this->getDbSql()->select(['a' => \Accounting\Model\AccountMapper::TABLE_NAME]); $select->join(['i' => \Accounting\Model\Transaction\ItemMapper::TABLE_NAME], new Expression('i.creditAccountId=a.id OR i.debitAccountId=a.id'), ['transactionId' => 'transactionId']); $select->where(['i.transactionId' => $transactionIds]); $select->group(['i.transactionId']); $rows = $this->getDbAdapter()->query($this->getDbSql()->buildSqlString($select), Adapter::QUERY_MODE_EXECUTE); if ($rows->count()) { foreach ($rows->toArray() as $row) { $accountingAccount = new \Accounting\Model\Account(); $accountingAccount->exchangeArray($row); $accountingAccounts[$row['transactionId']] = $accountingAccount; } } } $users = []; if ($item->getOption('loadUsers') && count($userIds)) { $select = $this->getDbSql()->select(['u' => \User\Model\UserMapper::TABLE_NAME]); $select->where(['id' => $userIds]); $rows = $this->getDbAdapter()->query($this->getDbSql()->buildSqlString($select), Adapter::QUERY_MODE_EXECUTE); if ($rows->count()) { foreach ($rows->toArray() as $row) { $user = new \User\Model\User(); $user->exchangeArray($row); $users[$user->getId()] = $user; } } } if ($paginator->getCurrentModels()) { foreach ($paginator->getCurrentModels() as $transaction) { if ($transaction->getItemId() && isset($crmAccounts[$transaction->getItemId()])) { $transaction->addOption('crmAccount', $crmAccounts[$transaction->getItemId()]); } if ($transaction->getItemId() && isset($crmLeads[$transaction->getItemId()])) { $transaction->addOption('crmLead', $crmLeads[$transaction->getItemId()]); } if (isset($accountingAccounts[$transaction->getId()])) { $transaction->addOption('accountingAccount', $accountingAccounts[$transaction->getId()]); } if ($transaction->getCreatedById() && isset($users[$transaction->getCreatedById()])) { $transaction->addOption('createdBy', $users[$transaction->getCreatedById()]); } if ($transaction->getAccountingById() && isset($users[$transaction->getAccountingById()])) { $transaction->addOption('accountingBy', $users[$transaction->getAccountingById()]); } if ($transaction->getPaymentById() && isset($users[$transaction->getPaymentById()])) { $transaction->addOption('paymentBy', $users[$transaction->getCreatedById()]); } if (isset($contractValues[$transaction->getItemId()])) { $transaction->addOption('contractValue', $contractValues[$transaction->getItemId()]); } if (isset($contractPaids[$transaction->getItemId()])) { $transaction->addOption('contractPaid', $contractPaids[$transaction->getItemId()]); } } } return $paginator; }
public function fixaddlead20150630Action() { $fromDateTime = '2015-06-26 00:00:00'; $toDateTime = '2015-06-29 00:00:00'; //@TODO fix cung nguoi dc yeu cau laf Thanh Lan $relatedUserId = 21; if ($this->getRequest()->isPost()) { $formValidate = new \System\Form\Api\LeadValidate($this->getServiceLocator()); $dataToPopulate = $this->getRequest()->getPost(); //@TODO: fix cứng cho nhanh đã $dataToPopulate['companyId'] = 1; $formValidate->setData($dataToPopulate); if ($formValidate->isValid()) { $formData = $formValidate->getData(); $isNew = true; $accountId = null; $campaignId = null; $createdDateTime = $this->getRequest()->getPost('createdDateTime'); //Tạo mới thông tin nếu chưa có $lead = new \Crm\Model\Lead(); $lead->exchangeArray($formData); $lead->setSource(\Crm\Model\Lead::SOURCE_WEB); if ($lead->getSourceReference()) { $lead->setSourceReference(substr($lead->getSourceReference(), 0, 220)); } $lead->setCreatedById(1); $lead->setCreatedDate(DateBase::getCurrentDate()); $lead->setCreatedDateTime(DateBase::getCurrentDateTime()); $lead->setDescription('Khách hàng tự đăng kí dùng thử trên nhanh.vn'); $leadMapper = $this->getServiceLocator()->get('\\Crm\\Model\\LeadMapper'); if (!$leadMapper->isExisted($lead)) { $referSource = []; $content = []; $isVaild = false; if (isset($formData['utm_source']) && $formData['utm_source']) { $referSource[] = $formData['utm_source']; $content[] = '<b>utm_source: </b>' . $formData['utm_source']; $isVaild = true; } else { $referSource[] = ''; $content[] = '<b>utm_source: </b>'; } if (isset($formData['utm_medium']) && $formData['utm_medium']) { $referSource[] = $formData['utm_medium']; $content[] = '<b>utm_medium: </b>' . $formData['utm_medium']; $isVaild = true; } else { $referSource[] = ''; $content[] = '<b>utm_medium: </b>'; } if (isset($formData['utm_campaign']) && $formData['utm_campaign']) { $referSource[] = $formData['utm_campaign']; $content[] = '<b>utm_campaign: </b>' . $formData['utm_campaign']; $isVaild = true; } else { $referSource[] = ''; $content[] = '<b>utm_campaign: </b>'; } if (isset($formData['utm_term']) && $formData['utm_term']) { $content[] = '<b>utm_term: </b>' . $formData['utm_term']; } else { $content[] = '<b>utm_term: </b>'; } if (isset($formData['utm_content']) && $formData['utm_content']) { $content[] = '<b>utm_content: </b>' . $formData['utm_content']; } else { $content[] = '<b>utm_content: </b>'; } if ($isVaild) { $campaign = new \Crm\Model\Campaign(); $campaign->setCode(implode('_', $referSource)); $campaign->setCompanyId($lead->getCompanyId()); $campaignMapper = $this->getServiceLocator()->get('\\Crm\\Model\\CampaignMapper'); if ($campaignMapper->isExistedCode($campaign) === false) { $campaign->setStartDate(DateBase::getCurrentDate()); $today = new \DateTime(); $today->add(new \DateInterval('P12M')); $campaign->setEndDate($today->format(DateBase::COMMON_DATE_FORMAT)); $campaign->setName($campaign->getCode()); $campaign->setContent(implode('<br/>', $content)); $campaign->setCreatedById(1); $campaign->setCreatedDateTime(DateBase::getCurrentDateTime()); $campaignMapper->save($campaign); } $campaignId = $campaign->getId(); $lead->setSource(\Crm\Model\Lead::SOURCE_MARKETING_CAMPAIGN); $lead->setDescription(implode('<br/>', $content)); $lead->setCampaignId($campaignId); } $leadMapper->save($lead); } else { if ($lead->getOption('tableExisted') == 'lead') { $dbAdapter = $this->getServiceLocator()->get('dbAdapter'); /* @var $dbSql \Zend\Db\Sql\Sql */ $dbSql = $this->getServiceLocator()->get('dbSql'); // check nếu đã tồn tại yêu cầu dùng thử trong khoảng thời gian cần check thì sẽ kiểm tra lại // nếu có hành động bàn giao cho người khác Lan nhưng ko có bất kì hành động j sau đó thì xóa đi $select = $dbSql->select(['a' => \Crm\Model\ActivityMapper::TABLE_NAME]); $select->where(['leadId' => $lead->getId()]); $select->where(['companyId' => $lead->getCompanyId()]); $select->where(['type' => [\Crm\Model\Activity::TYPE_CUSTOMER_REQUEST, \Crm\Model\Activity::TYPE_REGISTER_FOR_TRIAL]]); $select->where(['createdDateTime >= ?' => $fromDateTime]); $select->where(['createdDateTime >= ?' => $createdDateTime]); //$select->where(['createdDateTime <= ?' => $toDateTime]); $query = $dbSql->buildSqlString($select); $rows = $dbAdapter->query($query, $dbAdapter::QUERY_MODE_EXECUTE); if ($rows->count()) { return $this->getJsonModel()->setVariables(['code' => 1, 'messages' => 'sended']); } //check thông tin có dc ai nhận sau thời điểm bắn về ko $select = $dbSql->select(['a' => \Crm\Model\ActivityMapper::TABLE_NAME]); $select->where(['leadId' => $lead->getId()]); $select->where(['companyId' => $lead->getCompanyId()]); $select->where(['type' => [\Crm\Model\Activity::TYPE_ASSIGN_LEAD, \Crm\Model\Activity::TYPE_SELF_ASSIGN_LEAD]]); $select->where(['createdById != ?' => $relatedUserId]); $select->where(['createdDateTime >= ?' => $fromDateTime]); $select->where(['createdDateTime >= ?' => $createdDateTime]); //$select->where(['createdDateTime <= ?' => $toDateTime]); $select->order(['createdDateTime ASC']); $select->limit(1); $query = $dbSql->buildSqlString($select); $rows = $dbAdapter->query($query, $dbAdapter::QUERY_MODE_EXECUTE); if ($rows->count()) { // nếu có, check tiếp có hành động nào sau đấy ko $row = (array) $rows->current(); $select = $dbSql->select(['a' => \Crm\Model\ActivityMapper::TABLE_NAME]); $select->where(['leadId' => $lead->getId()]); $select->where(['companyId' => $lead->getCompanyId()]); $select->where(new NotIn('type', ['\\Crm\\Model\\Activity::TYPE_ASSIGN_LEAD, \\Crm\\Model\\Activity::TYPE_SELF_ASSIGN_LEAD'])); $select->where(['createdDateTime > ?' => $row['createdDateTime']]); $select->limit(1); $query = $dbSql->buildSqlString($select); $row2 = $dbAdapter->query($query, $dbAdapter::QUERY_MODE_EXECUTE); if (!$row2->count()) { // nếu chỉ nhận về mà ko có bất kì hành động j, // Xóa các lead user dc tạo trong khoảng thời gian từ lúc bắn về đến hết thời điểm check $delete = $dbSql->delete(\Crm\Model\Lead\UserMapper::TABLE_NAME); $delete->where(['leadId' => $lead->getId()]); $delete->where(['companyId' => $lead->getCompanyId()]); $delete->where(['userId != ?' => $relatedUserId]); $delete->where(['createdDateTime > ?' => $createdDateTime]); $delete->where(['createdDateTime <= ?' => $toDateTime]); $query = $dbSql->buildSqlString($delete); $dbAdapter->query($query, $dbAdapter::QUERY_MODE_EXECUTE); // xóa các activities nhận chăm sóc $delete = $dbSql->delete(\Crm\Model\ActivityMapper::TABLE_NAME); $delete->where(['leadId' => $lead->getId()]); $delete->where(['companyId' => $lead->getCompanyId()]); $delete->where(['createdById != ?' => $relatedUserId]); $delete->where(['type' => [\Crm\Model\Activity::TYPE_ASSIGN_LEAD, \Crm\Model\Activity::TYPE_SELF_ASSIGN_LEAD]]); $delete->where(['createdDateTime > ?' => $createdDateTime]); $delete->where(['createdDateTime <= ?' => $toDateTime]); $query = $dbSql->buildSqlString($delete); $dbAdapter->query($query, $dbAdapter::QUERY_MODE_EXECUTE); } } } $isNew = false; if ($lead->getOption('tableExisted') == 'account') { $accountId = $lead->getOption('accountId'); } } //Update nguồn cho leadCompany $leadCompany = new \Crm\Model\Lead\Company(); $leadCompany->setCompanyId($lead->getCompanyId()); $leadCompany->setLeadId($lead->getId()); $leadCompany->setAccountId($accountId); if ($campaignId) { $leadCompany->setSource(\Crm\Model\Lead::SOURCE_MARKETING_CAMPAIGN); $leadCompany->setSourceCampaignId($campaignId); $leadCompany->setSourceReference($lead->getSourceReference()); } elseif ($isNew) { $leadCompany->setSource(\Crm\Model\Lead::SOURCE_WEB); if ($lead->getSourceReference()) { $leadCompany->setSourceReference($lead->getSourceReference()); } else { $leadCompany->setSourceReference('nhanh.vn'); } } $leadCompany->setStatus(\Crm\Model\Lead\Company::STATUS_FREE); $leadCompanyMapper = $this->getServiceLocator()->get('\\Crm\\Model\\Lead\\CompanyMapper'); //Nếu leadCompany đã tồn tại (thông tin đã được sử dụng với cty đang check) thì chỉ update lastActivityDateTime $leadCompanyMapper->isExisted($leadCompany); $leadCompany->setLastActivityDateTime(DateBase::getCurrentDateTime()); $leadCompanyMapper->save($leadCompany); //Log hành động yêu cầu dùng thử của khách hàng $activity = new \Crm\Model\Activity(); $activity->setLeadId($lead->getId()); $activity->setAccountId($accountId); $activity->setCompanyId($lead->getCompanyId()); $activity->setType(\Crm\Model\Activity::TYPE_REGISTER_FOR_TRIAL); $activity->setStatus(\Crm\Model\Activity::STATUS_SUCCESS); //$activity->setTitle('Đăng kí dùng thử '.$formData['service']) ; $activity->setTitle($formData['title'] ?: 'Đăng kí dùng thử ' . $formData['service']); $activity->setContent($formData['note'] ?: null); $activity->setCreatedById(1); $activity->setCreatedDate(DateBase::toFormat($createdDateTime, DateBase::COMMON_DATE_FORMAT)); $activity->setCreatedDateTime($createdDateTime); $activityMapper = $this->getServiceLocator()->get('\\Crm\\Model\\ActivityMapper'); $activityMapper->save($activity); $activityMapper->updateLeadId($activity); //Check lại 1 lần nữa trạng thái của leadCompany là thả nổi hay đã có KD $leadCompanyMapper->updateStatus($leadCompany); //Nếu là thả nổi (tức là vừa dc tạo hoặc đang thả nổi) thì tạo 1 yêu cầu gọi cho chăm sóc mặc định và gắn cho cham sóc mặc định if ($leadCompany->getStatus() == \Crm\Model\Lead\Company::STATUS_FREE) { $activity = new \Crm\Model\Activity(); $activity->setLeadId($lead->getId()); $activity->setAccountId($accountId); $activity->setCompanyId($lead->getCompanyId()); $activity->setType(\Crm\Model\Activity::TYPE_REQUEST_PHONECALL); $activity->setStatus(\Crm\Model\Activity::STATUS_SUCCESS); $activity->setTitle('Gọi xác nhận yêu cầu dùng thử'); $activity->setCreatedById(1); $activity->setCreatedDate(DateBase::toFormat($createdDateTime, DateBase::COMMON_DATE_FORMAT)); $activity->setCreatedDateTime($createdDateTime); $activity->setRelatedUserId($relatedUserId); $activityMapper->save($activity); $leadUser = new \Crm\Model\Lead\User(); $leadUser->setLeadId($lead->getId()); $leadUser->setAccountId($accountId); $leadUser->setCompanyId($lead->getCompanyId()); $leadUser->setType(\Crm\Model\Lead\User::TYPE_SALE); $leadUser->setUserId($relatedUserId); $leadUser->setCreatedById(1); $leadUser->setCreatedDateTime(DateBase::getCurrentDateTime()); $leadUserMapper = $this->getServiceLocator()->get('\\Crm\\Model\\Lead\\UserMapper'); if (!$leadUserMapper->isExisted($leadUser)) { $leadUserMapper->save($leadUser); } $leadCompanyMapper->updateColumns(['status' => \Crm\Model\Lead\Company::STATUS_BELONG], $leadCompany); } return $this->getJsonModel()->setVariable('code', 1); } return $this->getJsonModel()->setVariables(['code' => 0, 'messages' => [$formValidate->getMessages()]]); } return $this->getJsonModel()->setVariables(['code' => 0, 'messages' => ['']]); }