[ Index ]

PHP Cross Reference of vtigercrm-6.1.0

title

Body

[close]

/modules/Invoice/actions/ -> MassSave.php (source)

   1  <?php
   2  /*+***********************************************************************************
   3   * The contents of this file are subject to the vtiger CRM Public License Version 1.0
   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 Invoice_MassSave_Action extends Inventory_MassSave_Action {
  12  
  13  	public function process(Vtiger_Request $request) {
  14          $moduleName = $request->getModule();
  15          $recordModels = $this->getRecordModelsFromRequest($request);
  16  
  17          foreach($recordModels as $recordId => $recordModel) {
  18              if(Users_Privileges_Model::isPermitted($moduleName, 'Save', $recordId)) {
  19                  //Inventory line items getting wiped out
  20                  $_REQUEST['action'] = 'MassEditSave';
  21                  $recordModel->save();
  22              }
  23          }
  24  
  25          $response = new Vtiger_Response();
  26          $response->setResult(true);
  27          $response->emit();
  28      }
  29  
  30      /**
  31       * Function to get the record model based on the request parameters
  32       * @param Vtiger_Request $request
  33       * @return Vtiger_Record_Model or Module specific Record Model instance
  34       */
  35  	public function getRecordModelsFromRequest(Vtiger_Request $request) {
  36          $moduleName = $request->getModule();
  37          $moduleModel = Vtiger_Module_Model::getInstance($moduleName);
  38  
  39          $recordIds = $this->getRecordsListFromRequest($request);
  40          $recordModels = array();
  41  
  42          $fieldModelList = $moduleModel->getFields();
  43          foreach($recordIds as $recordId) {
  44              $recordModel = Vtiger_Record_Model::getInstanceById($recordId, $moduleModel);
  45              $recordModel->set('id', $recordId);
  46              $recordModel->set('mode', 'edit');
  47  
  48              foreach ($fieldModelList as $fieldName => $fieldModel) {
  49                  $fieldValue = $request->get($fieldName, null);
  50                  $fieldDataType = $fieldModel->getFieldDataType();
  51  
  52                  if($fieldDataType == 'time') {
  53                      $fieldValue = Vtiger_Time_UIType::getTimeValueWithSeconds($fieldValue);
  54                  } else if($fieldDataType === 'date') {
  55                      $fieldValue = $fieldModel->getUITypeModel()->getDBInsertValue($fieldValue);
  56                  }
  57  
  58                  if(isset($fieldValue) && $fieldValue != null && !is_array($fieldValue)) {
  59                      $fieldValue = trim($fieldValue);
  60                      $recordModel->set($fieldName, $fieldValue);
  61                  }
  62              }
  63              $recordModels[$recordId] = $recordModel;
  64          }
  65          return $recordModels;
  66      }
  67  }


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