示例#1
0
 public function step1(Vtiger_Request $request)
 {
     $qualifiedModuleName = $request->getModule(false);
     $params = $request->get('param');
     $recordId = $params['record'];
     $step = $params['step'];
     if ($recordId) {
         $moduleInstance = Settings_MappedFields_Module_Model::getInstanceById($recordId);
     } else {
         $moduleInstance = Settings_MappedFields_Module_Model::getCleanInstance();
     }
     $stepFields = Settings_MappedFields_Module_Model::getFieldsByStep($step);
     foreach ($stepFields as $field) {
         $moduleInstance->getRecord()->set($field, $params[$field]);
         if ($field == 'conditions') {
             $moduleInstance->transformAdvanceFilterToWorkFlowFilter();
         }
     }
     if (!$recordId && $moduleInstance->importsAllowed() >= 1) {
         $message = 'LBL_TEMPATE_EXIST';
     } else {
         $moduleInstance->save();
     }
     $response = new Vtiger_Response();
     $response->setResult(['id' => $moduleInstance->getRecordId(), 'message' => vtranslate($message, $qualifiedModuleName)]);
     $response->emit();
 }
示例#2
0
 public function save($saveMapping = false)
 {
     $log = vglobal('log');
     $log->debug('Entering ' . __CLASS__ . '::' . __METHOD__ . '(' . $saveMapping . ') method ...');
     $db = PearDatabase::getInstance();
     $fields = self::$allFields;
     $params = [];
     foreach ($fields as $field) {
         $value = $this->record->get($field);
         if (in_array($field, ['conditions', 'params'])) {
             $params[$field] = Zend_Json::encode($value);
         } elseif (is_array($value)) {
             $params[$field] = implode(',', $value);
         } else {
             $params[$field] = $value;
         }
     }
     if (!$this->getRecordId()) {
         $db->insert($this->baseTable, $params);
         $this->record->set('id', $db->getLastInsertID());
     } else {
         $db->update($this->baseTable, $params, '`' . $this->baseIndex . '` = ?', [$this->getRecordId()]);
     }
     if ($saveMapping) {
         $stepFields = Settings_MappedFields_Module_Model::getFieldsByStep(2);
         $this->deleteMapping($this->getRecordId());
         foreach ($this->getMapping() as $mapp) {
             $params = [];
             $params[$this->mappingIndex] = $this->getRecordId();
             foreach ($stepFields as $name) {
                 $params[$name] = $mapp[$name];
             }
             if ($params['source'] && $params['target']) {
                 $db->insert($this->mappingTable, $params);
             }
         }
     }
     $log->debug('Exiting ' . __CLASS__ . '::' . __METHOD__ . ' method ...');
     return $this->getRecordId();
 }