[ Index ]

PHP Cross Reference of vtigercrm-6.1.0

title

Body

[close]

/modules/SalesOrder/actions/ -> SaveAjax.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  class SalesOrder_SaveAjax_Action extends Inventory_SaveAjax_Action {
  11      
  12      /**
  13       * Function to get the record model based on the request parameters
  14       * @param Vtiger_Request $request
  15       * @return Vtiger_Record_Model or Module specific Record Model instance
  16       */
  17  	public function getRecordModelFromRequest(Vtiger_Request $request) {
  18          $moduleName = $request->getModule();
  19          $recordId = $request->get('record');
  20          
  21          if($request->get('field') == 'enable_recurring'){
  22              $enableRecurrence = true;
  23          }
  24          if(!empty($recordId)) {
  25              $recordModel = Vtiger_Record_Model::getInstanceById($recordId, $moduleName);
  26              $recordModel->set('id', $recordId);
  27              $recordModel->set('mode', 'edit');
  28  
  29              $fieldModelList = $recordModel->getModule()->getFields();
  30              foreach ($fieldModelList as $fieldName => $fieldModel) {
  31                  //For not converting createdtime and modified time to user format
  32                  $uiType = $fieldModel->get('uitype');
  33                  if ($uiType == 70) {
  34                      $fieldValue = $recordModel->get($fieldName);
  35                  } else {
  36                      $fieldValue = $fieldModel->getUITypeModel()->getUserRequestValue($recordModel->get($fieldName));
  37                  }
  38                  
  39  
  40                  if ($fieldName === $request->get('field')) {
  41                      $fieldValue = $request->get('value');
  42                  }
  43                  
  44                  /**
  45                   * If field is enable recurrence then we need to pass related fields of
  46                   * recurrence to save,because untill enable recurrence is checked,the 
  47                   * related field values wont get saved
  48                   */
  49                  if($enableRecurrence){
  50                      $requestFieldValue = $request->get($fieldName);
  51                      if($requestFieldValue != ''){
  52                          $fieldValue = $request->get($fieldName);
  53                      }
  54                  }
  55                  
  56                  $fieldDataType = $fieldModel->getFieldDataType();
  57                  if ($fieldDataType == 'time') {
  58                      $fieldValue = Vtiger_Time_UIType::getTimeValueWithSeconds($fieldValue);
  59                  }
  60                  if ($fieldValue !== null) {
  61                      if (!is_array($fieldValue)) {
  62                          $fieldValue = trim($fieldValue);
  63                      }
  64                      $recordModel->set($fieldName, $fieldValue);
  65                  }
  66                  $recordModel->set($fieldName, $fieldValue);
  67              }
  68          } else {
  69              $moduleModel = Vtiger_Module_Model::getInstance($moduleName);
  70  
  71              $recordModel = Vtiger_Record_Model::getCleanInstance($moduleName);
  72              $recordModel->set('mode', '');
  73  
  74              $fieldModelList = $moduleModel->getFields();
  75              foreach ($fieldModelList as $fieldName => $fieldModel) {
  76                  if ($request->has($fieldName)) {
  77                      $fieldValue = $request->get($fieldName, null);
  78                  } else {
  79                      $fieldValue = $fieldModel->getDefaultFieldValue();
  80                  }
  81                  $fieldDataType = $fieldModel->getFieldDataType();
  82                  if ($fieldDataType == 'time') {
  83                      $fieldValue = Vtiger_Time_UIType::getTimeValueWithSeconds($fieldValue);
  84                  }
  85                  if ($fieldValue !== null) {
  86                      if (!is_array($fieldValue)) {
  87                          $fieldValue = trim($fieldValue);
  88                      }
  89                      $recordModel->set($fieldName, $fieldValue);
  90                  }
  91              } 
  92          }
  93          return $recordModel;
  94      }
  95  }


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