function process(Vtiger_Request $request) { $moduleName = $request->getModule(); $records = $request->get('records'); $template = $request->get('template'); $targetModuleName = $request->get('target'); $method = $request->get('method'); $success = []; if (!empty($template)) { $templateRecord = Vtiger_MappedFields_Model::getInstanceById($template); foreach ($records as $recordId) { if ($templateRecord->checkFiltersForRecord(intval($recordId))) { if ($method == 0) { $recordModel = Vtiger_Record_Model::getCleanInstance($targetModuleName); $parentRecordModel = Vtiger_Record_Model::getInstanceById($recordId); $recordModel->setRecordFieldValues($parentRecordModel); if ($this->checkMandatoryFields($recordModel)) { continue; } // TODO Add saving fields that exist in advanced module $recordModel->save(); if (isRecordExists($recordModel->getId())) { $success[] = $recordId; } } else { $success[] = $recordId; } } } } $output = ['all' => count($records), 'ok' => $success, 'fail' => array_diff($records, $success)]; $response = new Vtiger_Response(); $response->setResult($output); $response->emit(); }
public static function getInstanceById($recordId, $moduleName = 'Vtiger') { $log = vglobal('log'); $log->debug('Entering ' . __CLASS__ . '::' . __METHOD__ . '(' . $recordId . ',' . $moduleName . ') method ...'); $instance = new self(); $instance->record = Vtiger_MappedFields_Model::getInstanceById($recordId, $moduleName); $log->debug('Exiting ' . __CLASS__ . '::' . __METHOD__ . ' method ...'); return $instance; }