Example #1
0
 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();
 }
Example #2
0
 public static function save(Vtiger_PDF_Model $pdfModel, $step = 1)
 {
     $db = PearDatabase::getInstance();
     switch ($step) {
         case 2:
         case 3:
         case 4:
         case 5:
         case 6:
         case 7:
         case 8:
             $stepFields = Settings_PDF_Module_Model::getFieldsByStep($step);
             $params = [];
             $fields = [];
             foreach ($stepFields as $field) {
                 if ($field === 'conditions') {
                     $params[] = json_encode($pdfModel->get($field));
                 } else {
                     $params[] = $pdfModel->get($field);
                 }
                 $fields[] = "`{$field}` = ?";
             }
             $params[] = $pdfModel->getId();
             $query = 'UPDATE `a_yf_pdf` SET ' . implode(',', $fields) . ' WHERE `pdfid` = ? LIMIT 1;';
             $result = $db->pquery($query, $params);
             return $pdfModel->get('pdfid');
         case 1:
             $stepFields = Settings_PDF_Module_Model::getFieldsByStep($step);
             if (!$pdfModel->getId()) {
                 $params = [];
                 foreach ($stepFields as $field) {
                     $params[$field] = $pdfModel->get($field);
                 }
                 $db->insert('a_yf_pdf', $params);
                 $pdfModel->set('pdfid', $db->getLastInsertID());
             } else {
                 $params = [];
                 $fields = [];
                 foreach ($stepFields as $field) {
                     $params[] = $pdfModel->get($field);
                     $fields[] = "`{$field}` = ?";
                 }
                 $params[] = $pdfModel->getId();
                 $query = 'UPDATE `a_yf_pdf` SET ' . implode(',', $fields) . ' WHERE `pdfid` = ? LIMIT 1;';
                 $result = $db->pquery($query, $params);
             }
             return $pdfModel->get('pdfid');
         case 'import':
             $allFields = Settings_PDF_Module_Model::$allFields;
             $params = [];
             foreach ($allFields as $field) {
                 if ($field === 'conditions') {
                     $params[$field] = json_encode($pdfModel->get($field));
                 } else {
                     $params[$field] = $pdfModel->get($field);
                 }
             }
             $db->insert('a_yf_pdf', $params);
             $pdfModel->set('pdfid', $db->getLastInsertID());
             return $pdfModel->get('pdfid');
     }
 }