public function process(Vtiger_Request $request) { $recordId = $request->get('record'); $step = $request->get('step'); $moduleName = $request->get('module_name'); if ($recordId) { $pdfModel = Vtiger_PDF_Model::getInstanceById($recordId, $moduleName); } else { $pdfModel = Settings_PDF_Record_Model::getCleanInstance($moduleName); } $stepFields = Settings_PDF_Module_Model::getFieldsByStep($step); foreach ($stepFields as $field) { $value = $request->get($field); if (is_array($value)) { $value = implode(',', $value); } if ($field === 'module_name' && $pdfModel->get('module_name') != $value) { // change of main module, overwrite existing conditions $pdfModel->deleteConditions(); } $pdfModel->set($field, $value); } $pdfModel->set('conditions', $request->get('conditions')); Settings_PDF_Record_Model::transformAdvanceFilterToWorkFlowFilter($pdfModel); Settings_PDF_Record_Model::save($pdfModel, $step); $response = new Vtiger_Response(); $response->setResult(['id' => $pdfModel->get('pdfid')]); $response->emit(); }