public function process(Vtiger_Request $request) { $recordId = $request->get('record'); $modules = $request->get('modules'); $assignId = $request->get('assigned_user_id'); $currentUser = Users_Record_Model::getCurrentUserModel(); $entityValues = array(); $entityValues['transferRelatedRecordsTo'] = $request->get('transferModule'); //■権限なぜか、エラーになるので権限を固定するinouchi //$entityValues['assignedTo'] = vtws_getWebserviceEntityId(vtws_getOwnerType($assignId), $assignId); $entityValues['assignedTo'] = vtws_getWebserviceEntityId(vtws_getOwnerType(1), 1); $entityValues['leadId'] = vtws_getWebserviceEntityId($request->getModule(), $recordId); $recordModel = Vtiger_Record_Model::getInstanceById($recordId, $request->getModule()); $convertLeadFields = $recordModel->getConvertLeadFields(); $availableModules = array('Accounts', 'Contacts', 'Potentials'); foreach ($availableModules as $module) { if (vtlib_isModuleActive($module) && in_array($module, $modules)) { $entityValues['entities'][$module]['create'] = true; $entityValues['entities'][$module]['name'] = $module; foreach ($convertLeadFields[$module] as $fieldModel) { $fieldName = $fieldModel->getName(); $fieldValue = $request->get($fieldName); //Potential Amount Field value converting into DB format if ($fieldModel->getFieldDataType() === 'currency') { $fieldValue = Vtiger_Currency_UIType::convertToDBFormat($fieldValue); } elseif ($fieldModel->getFieldDataType() === 'date') { $fieldValue = DateTimeField::convertToDBFormat($fieldValue); } elseif ($fieldModel->getFieldDataType() === 'reference' && $fieldValue) { $ids = vtws_getIdComponents($fieldValue); if (count($ids) === 1) { $fieldValue = vtws_getWebserviceEntityId(getSalesEntityType($fieldValue), $fieldValue); } } $entityValues['entities'][$module][$fieldName] = $fieldValue; } } } try { $result = vtws_convertlead($entityValues, $currentUser); } catch (Exception $e) { $this->showError($request, $e); exit; } if (!empty($result['Accounts'])) { $accountIdComponents = vtws_getIdComponents($result['Accounts']); $accountId = $accountIdComponents[1]; } if (!empty($result['Contacts'])) { $contactIdComponents = vtws_getIdComponents($result['Contacts']); $contactId = $contactIdComponents[1]; } if (!empty($accountId)) { header("Location: index.php?view=Detail&module=Accounts&record={$accountId}"); } elseif (!empty($contactId)) { header("Location: index.php?view=Detail&module=Contacts&record={$contactId}"); } else { $this->showError($request); exit; } }
$assigned_user_id = $_REQUEST["assigned_group_id"]; $assignedTo = vtws_getWebserviceEntityId('Groups', $assigned_user_id); } $accountName = $_REQUEST['account_name']; $createPotential = $_REQUEST["createpotential"]; $avoidPotential = isset($createPotential) && $createPotential == "on" ? true : false; $potential = array(); $potential['potentialname'] = vtlib_purify($_REQUEST["potential_name"]); $potential['closingdate'] = getValidDBInsertDateValue($_REQUEST["closedate"]); $potential['amount'] = vtlib_purify($_REQUEST['potential_amount']); $potential['sales_stage'] = vtlib_purify($_REQUEST['potential_sales_stage']); $transferRelatedRecordsTo = $_REQUEST['transfer_related_records_to']; if (empty($transferRelatedRecordsTo)) { $transferRelatedRecordsTo = 'Contacts'; } $result = vtws_convertlead($leadId, $assignedTo, $accountName, $avoidPotential, $potential, $transferRelatedRecordsTo, $current_user); $accountIdComponents = vtws_getIdComponents($result['accountId']); $accountId = $accountIdComponents[1]; $contactIdComponents = vtws_getIdComponents($result['contactId']); $contactId = $contactIdComponents[1]; $potentialIdComponents = vtws_getIdComponents($result['potentialId']); $potentialId = $potentialIdComponents[1]; if (!empty($accountId)) { header("Location: index.php?action=DetailView&module=Accounts&record={$accountId}&parenttab={$category}"); } elseif (!empty($contactId)) { header("Location: index.php?action=DetailView&module=Contacts&record={$contactId}&parenttab={$category}"); } else { echo "<link rel='stylesheet' type='text/css' href='themes/{$theme}/style.css'>"; echo "<table border='0' cellpadding='5' cellspacing='0' width='100%' height='450px'><tr><td align='center'>"; echo "<div style='border: 3px solid rgb(153, 153, 153); background-color: rgb(255, 255, 255); width: 55%; position: relative; z-index: 10000000;'>\r\n\r\n\t\t<table border='0' cellpadding='5' cellspacing='0' width='98%'>\r\n\t\t<tbody><tr>\r\n\t\t<td rowspan='2' width='11%'><img src='" . vtiger_imageurl('denied.gif', $theme) . "' ></td>\r\n\t\t<td style='border-bottom: 1px solid rgb(204, 204, 204);' nowrap='nowrap' width='70%'><span class='genHeaderSmall'>{$currentModule} {$app_strings['CANNOT_CONVERT']}</span></td>\r\n\t\t</tr>\r\n\t\t<tr>\r\n\t\t<td class='small' align='right' nowrap='nowrap'>\t\t\t \t\r\n\t\t<a href='javascript:window.history.back();'>{$app_strings['LBL_GO_BACK']}</a><br>\t\t\t\t\t\t\t\t \t\t\t\t\t\t </td>\r\n\t\t</tr>\r\n\t\t</tbody></table> \r\n\t\t</div>"; echo "</td></tr></table>";
public function process(Vtiger_Request $request) { $recordId = $request->get('record'); $modules = $request->get('modules'); $assignId = $request->get('assigned_user_id'); $currentUser = Users_Record_Model::getCurrentUserModel(); $entityValues = array(); $entityValues['transferRelatedRecordsTo'] = $request->get('transferModule'); $entityValues['assignedTo'] = vtws_getWebserviceEntityId(vtws_getOwnerType($assignId), $assignId); $entityValues['leadId'] = vtws_getWebserviceEntityId($request->getModule(), $recordId); $createAlways = Vtiger_Processes_Model::getConfig('marketing', 'conversion', 'create_always'); $recordModel = Vtiger_Record_Model::getInstanceById($recordId, $request->getModule()); $convertLeadFields = $recordModel->getConvertLeadFields(); $availableModules = array('Accounts', 'Contacts', 'Potentials'); foreach ($availableModules as $module) { if (vtlib_isModuleActive($module) && in_array($module, $modules)) { $entityValues['entities'][$module]['create'] = true; $entityValues['entities'][$module]['name'] = $module; foreach ($convertLeadFields[$module] as $fieldModel) { $fieldName = $fieldModel->getName(); $fieldValue = $request->get($fieldName); //Potential Amount Field value converting into DB format if ($fieldModel->getFieldDataType() === 'currency') { $fieldValue = Vtiger_Currency_UIType::convertToDBFormat($fieldValue); } elseif ($fieldModel->getFieldDataType() === 'date') { $fieldValue = DateTimeField::convertToDBFormat($fieldValue); } elseif ($fieldModel->getFieldDataType() === 'reference' && $fieldValue) { $ids = vtws_getIdComponents($fieldValue); if (count($ids) === 1) { $fieldValue = vtws_getWebserviceEntityId(getSalesEntityType($fieldValue), $fieldValue); } } $entityValues['entities'][$module][$fieldName] = $fieldValue; } } } try { $results = true; if ($createAlways === true || $createAlways === 'true') { $leadModel = Vtiger_Module_Model::getCleanInstance($request->getModule()); $results = $leadModel->searchAccountsToConvert($recordModel); $entityValues['entities']['Accounts']['convert_to_id'] = $results; } if (!$results) { $message = vtranslate('LBL_TOO_MANY_ACCOUNTS_TO_CONVERT', $request->getModule(), ''); if ($currentUser->isAdminUser()) { $message = vtranslate('LBL_TOO_MANY_ACCOUNTS_TO_CONVERT', $request->getModule(), '<a href="index.php?module=MarketingProcesses&view=Index&parent=Settings"><span class="glyphicon glyphicon-folder-open"></span></a>'); } $this->showError($request, '', $message); exit; } } catch (Exception $e) { $this->showError($request, $e); exit; } try { $result = vtws_convertlead($entityValues, $currentUser); } catch (Exception $e) { $this->showError($request, $e); exit; } if (!empty($result['Accounts'])) { $accountIdComponents = vtws_getIdComponents($result['Accounts']); $accountId = $accountIdComponents[1]; } if (!empty($result['Contacts'])) { $contactIdComponents = vtws_getIdComponents($result['Contacts']); $contactId = $contactIdComponents[1]; } if (!empty($accountId)) { ModTracker_Record_Model::addConvertToAccountRelation('Accounts', $accountId, $assignId); header("Location: index.php?view=Detail&module=Accounts&record={$accountId}"); } elseif (!empty($contactId)) { header("Location: index.php?view=Detail&module=Contacts&record={$contactId}"); } else { $this->showError($request); exit; } }
$entityValues['entities']['Potentials']['create'] = true; $entityValues['entities']['Potentials']['name'] = 'Potentials'; $entityValues['entities']['Potentials']['potentialname'] = vtlib_purify($_REQUEST['potentialname']); $entityValues['entities']['Potentials']['closingdate'] = vtlib_purify($_REQUEST['closingdate']); $entityValues['entities']['Potentials']['sales_stage'] = vtlib_purify($_REQUEST['sales_stage']); $entityValues['entities']['Potentials']['amount'] = vtlib_purify($_REQUEST['amount']); } if (vtlib_isModuleActive('Contacts') && in_array('Contacts', $entities)) { $entityValues['entities']['Contacts']['create'] = true; $entityValues['entities']['Contacts']['name'] = 'Contacts'; $entityValues['entities']['Contacts']['lastname'] = vtlib_purify($_REQUEST['lastname']); $entityValues['entities']['Contacts']['firstname'] = vtlib_purify($_REQUEST['firstname']); $entityValues['entities']['Contacts']['email'] = vtlib_purify($_REQUEST['email']); } try { $result = vtws_convertlead($entityValues, $current_user); } catch (Exception $e) { echo "<br><div style='margin:auto;text-align:center;font-weight:bold;'>" . $e->message . '</div><br>'; showError($entityValues); die; } $accountIdComponents = vtws_getIdComponents($result['Accounts']); $accountId = $accountIdComponents[1]; $contactIdComponents = vtws_getIdComponents($result['Contacts']); $contactId = $contactIdComponents[1]; $potentialIdComponents = vtws_getIdComponents($result['Potentials']); $potentialId = $potentialIdComponents[1]; } if (!empty($accountId)) { header("Location: index.php?action=DetailView&module=Accounts&record={$accountId}&parenttab={$category}"); } elseif (!empty($contactId)) {