[ Index ]

PHP Cross Reference of vtigercrm-6.1.0

title

Body

[close]

/modules/Vtiger/actions/ -> ProcessDuplicates.php (source)

   1  <?php
   2  /*+**********************************************************************************
   3   * The contents of this file are subject to the vtiger CRM Public License Version 1.1
   4   * ("License"); You may not use this file except in compliance with the License
   5   * The Original Code is:  vtiger CRM Open Source
   6   * The Initial Developer of the Original Code is vtiger.
   7   * Portions created by vtiger are Copyright (C) vtiger.
   8   * All Rights Reserved.
   9   ************************************************************************************/
  10  
  11  class Vtiger_ProcessDuplicates_Action extends Vtiger_Action_Controller {
  12  	function checkPermission(Vtiger_Request $request) {
  13          $module = $request->getModule();
  14          $records = $request->get('records');
  15          if($records) {
  16              foreach($records as $record) {
  17                  $recordPermission = Users_Privileges_Model::isPermitted($module, 'EditView', $record);
  18                  if(!$recordPermission) {
  19                      throw new AppException(vtranslate('LBL_PERMISSION_DENIED'));
  20                  }
  21              }
  22          }
  23      }
  24  
  25  	function process (Vtiger_Request $request) {
  26          $moduleName = $request->getModule();
  27          $moduleModel = Vtiger_Module_Model::getInstance($moduleName);
  28          $records = $request->get('records');
  29          $primaryRecord = $request->get('primaryRecord');
  30          $primaryRecordModel = Vtiger_Record_Model::getInstanceById($primaryRecord, $moduleName);
  31  
  32          $fields = $moduleModel->getFields();
  33          foreach($fields as $field) {
  34              $fieldValue = $request->get($field->getName());
  35              if($field->isEditable()) {
  36                  $primaryRecordModel->set($field->getName(), $fieldValue);
  37              }
  38          }
  39          $primaryRecordModel->set('mode', 'edit');
  40          $primaryRecordModel->save();
  41  
  42          $deleteRecords = array_diff($records, array($primaryRecord));
  43          foreach($deleteRecords as $deleteRecord) {
  44              $recordPermission = Users_Privileges_Model::isPermitted($moduleName, 'Delete', $deleteRecord);
  45              if($recordPermission) {
  46                  $primaryRecordModel->transferRelationInfoOfRecords(array($deleteRecord));
  47                  $record = Vtiger_Record_Model::getInstanceById($deleteRecord);
  48                  $record->delete();
  49              }
  50          }
  51  
  52          $response = new Vtiger_Response();
  53          $response->setResult(true);
  54          $response->emit();
  55      }
  56          
  57          public function validateRequest(Vtiger_Request $request) { 
  58              $request->validateWriteAccess(); 
  59          } 
  60  }


Generated: Fri Nov 28 20:08:37 2014 Cross-referenced by PHPXref 0.7.1