[ Index ]

PHP Cross Reference of vtigercrm-6.1.0

title

Body

[close]

/modules/Calendar/actions/ -> DragDropAjax.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 Calendar_DragDropAjax_Action extends Calendar_SaveAjax_Action {
  12      
  13      function __construct() {
  14          $this->exposeMethod('updateDeltaOnResize');
  15          $this->exposeMethod('updateDeltaOnDrop');
  16      }
  17      
  18      public function process(Vtiger_Request $request) {  
  19          $mode = $request->getMode();
  20          if(!empty($mode) && $this->isMethodExposed($mode)) {
  21              $this->invokeExposedMethod($mode, $request);
  22              return;
  23          }
  24  
  25      }
  26      
  27      public function updateDeltaOnResize(Vtiger_Request $request){
  28          $moduleName = $request->getModule();
  29          $activityType = $request->get('activitytype');
  30          $recordId = $request->get('id');
  31          $dayDelta = $request->get('dayDelta');
  32          $minuteDelta = $request->get('minuteDelta');
  33          $actionname = 'EditView';
  34          
  35          $response = new Vtiger_Response();
  36          if(isPermitted($moduleName, $actionname, $recordId) === 'no'){
  37              $result = array('ispermitted'=>false,'error'=>false);
  38              $response->setResult($result);
  39              $response->emit();
  40          }
  41          else{
  42              $result = array('ispermitted'=>true,'error'=>false);
  43              $record = Vtiger_Record_Model::getInstanceById($recordId, $moduleName);
  44              $record->set('mode','edit');
  45              
  46              $oldDateTime[] = $record->get('due_date');
  47              $oldDateTime[] = $record->get('time_end');
  48              $oldDateTime = implode(' ',$oldDateTime);
  49              $resultDateTime = $this->changeDateTime($oldDateTime,$dayDelta,$minuteDelta);
  50              $parts = explode(' ',$resultDateTime);
  51              $record->set('due_date',$parts[0]);
  52              if(activitytype != 'Task')
  53                  $record->set('time_end',$parts[1]);
  54  
  55              $startDateTime[] = $record->get('date_start');
  56              $startDateTime[] = $record->get('time_start');
  57              $startDateTime = implode(' ',$startDateTime);
  58              $startDateTime = new DateTime($startDateTime);
  59              
  60              $endDateTime[] = $record->get('due_date');
  61              $endDateTime[] = $record->get('time_end');
  62              $endDateTime = implode(' ',$endDateTime);
  63              $endDateTime = new DateTime($endDateTime);
  64              //Checking if startDateTime is less than or equal to endDateTime
  65              if($startDateTime <= $endDateTime)
  66                  $record->save();
  67              else
  68                  $result['error'] = true;
  69  
  70              $response->setResult($result);
  71              $response->emit();
  72          }
  73      }
  74      
  75      public function updateDeltaOnDrop(Vtiger_Request $request){
  76          $moduleName = $request->getModule();
  77          $activityType = $request->get('activitytype');
  78          $recordId = $request->get('id');
  79          $dayDelta = $request->get('dayDelta');
  80          $minuteDelta = $request->get('minuteDelta');
  81          $actionname = 'EditView';
  82          
  83          $response = new Vtiger_Response();
  84          if(isPermitted($moduleName, $actionname, $recordId) === 'no'){
  85              $result = array('ispermitted'=>false);          
  86              $response->setResult($result);
  87              $response->emit();
  88          }
  89          else{
  90              $result = array('ispermitted'=>true);
  91              $record = Vtiger_Record_Model::getInstanceById($recordId, $moduleName);
  92              $record->set('mode','edit');
  93  
  94              $oldStartDateTime[] = $record->get('date_start');
  95              $oldStartDateTime[] = $record->get('time_start');
  96              $oldStartDateTime = implode(' ',$oldStartDateTime);
  97              $resultDateTime = $this->changeDateTime($oldStartDateTime,$dayDelta,$minuteDelta);
  98              $parts = explode(' ',$resultDateTime);
  99              $record->set('date_start',$parts[0]);
 100              $record->set('time_start',$parts[1]);
 101  
 102              $oldEndDateTime[] = $record->get('due_date');
 103              $oldEndDateTime[] = $record->get('time_end');
 104              $oldEndDateTime = implode(' ',$oldEndDateTime);
 105              $resultDateTime = $this->changeDateTime($oldEndDateTime,$dayDelta,$minuteDelta);
 106              $parts = explode(' ',$resultDateTime);
 107              $record->set('due_date',$parts[0]);
 108              if(activitytype != 'Task')
 109                  $record->set('time_end',$parts[1]);  
 110              $record->save();
 111              
 112              $response->setResult($result);
 113              $response->emit();
 114          }
 115      }
 116      /* *
 117       * Function adds days and minutes to datetime string
 118       */
 119      public function changeDateTime($datetime,$daysToAdd,$minutesToAdd){
 120          $datetime = strtotime($datetime);
 121          $futureDate = $datetime+(60*$minutesToAdd)+(24*60*60*$daysToAdd);
 122          $formatDate = date("Y-m-d H:i:s", $futureDate);
 123          return $formatDate;
 124      }
 125      
 126  }
 127  ?>


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