CRM-15273 Fix
authorJitendra Purohit <jitendra.purohit@webaccessglobal.com>
Thu, 11 Sep 2014 09:11:06 +0000 (14:41 +0530)
committerJitendra Purohit <jitendra.purohit@webaccessglobal.com>
Thu, 11 Sep 2014 09:11:06 +0000 (14:41 +0530)
CRM/Case/Form/Activity/ChangeCaseStartDate.php
CRM/Case/Form/Activity/OpenCase.php

index b9a6172be2a6ccf8c8661a2815b059921ce22512..6b31c36965285003f20f34f976c5bd6690abab5a 100644 (file)
@@ -48,6 +48,9 @@ class CRM_Case_Form_Activity_ChangeCaseStartDate {
     if (!isset($form->_caseId)) {
       CRM_Core_Error::fatal(ts('Case Id not found.'));
     }
+    if (count($form->_caseId) != 1) {
+      CRM_Core_Resources::fatal(ts('Expected one case-type'));
+    }
   }
 
   /**
@@ -67,8 +70,9 @@ class CRM_Case_Form_Activity_ChangeCaseStartDate {
       'Open Case',
       'name'
     );
+    $caseId = CRM_Utils_Array::first($form->_caseId);
     $openCaseParams = array('activity_type_id' => $openCaseActivityType);
-    $openCaseInfo = CRM_Case_BAO_Case::getCaseActivityDates($form->_caseId, $openCaseParams, TRUE);
+    $openCaseInfo = CRM_Case_BAO_Case::getCaseActivityDates($caseId, $openCaseParams, TRUE);
     if (empty($openCaseInfo)) {
       list($defaults['start_date'], $defaults['start_date_time']) = CRM_Utils_Date::setDateDefaults();
     }
@@ -90,8 +94,9 @@ class CRM_Case_Form_Activity_ChangeCaseStartDate {
   static function buildQuickForm(&$form) {
     $form->removeElement('status_id');
     $form->removeElement('priority_id');
+    $caseId = CRM_Utils_Array::first($form->_caseId);
 
-    $currentStartDate = CRM_Core_DAO::getFieldValue('CRM_Case_DAO_Case', $form->_caseId, 'start_date');
+    $currentStartDate = CRM_Core_DAO::getFieldValue('CRM_Case_DAO_Case', $caseId, 'start_date');
     $form->assign('current_start_date', $currentStartDate);
     $form->addDate('start_date', ts('New Start Date'), FALSE, array('formatType' => 'activityDateTime'));
   }
@@ -145,14 +150,15 @@ class CRM_Case_Form_Activity_ChangeCaseStartDate {
     }
 
     $caseType = $form->_caseType;
+    $caseId = CRM_Utils_Array::first($form->_caseId);
 
-    if (!$caseType && $form->_caseId) {
-      $caseType = CRM_Case_BAO_Case::getCaseType($form->_caseId, 'title');
+    if (!$caseType && $caseId) {
+      $caseType = CRM_Case_BAO_Case::getCaseType($caseId, 'title');
     }
 
     if (!$form->_currentlyViewedContactId ||
       !$form->_currentUserId ||
-      !$form->_caseId ||
+      !$caseId ||
       !$caseType
     ) {
       CRM_Core_Error::fatal('Required parameter missing for ChangeCaseType - end post processing');
@@ -167,7 +173,7 @@ class CRM_Case_Form_Activity_ChangeCaseStartDate {
 
     // 1. save activity subject with new start date
     $currentStartDate = CRM_Utils_Date::customFormat(CRM_Core_DAO::getFieldValue('CRM_Case_DAO_Case',
-        $form->_caseId, 'start_date'
+        $caseId, 'start_date'
       ), $config->dateformatFull);
     $newStartDate      = CRM_Utils_Date::customFormat(CRM_Utils_Date::mysqlToIso($params['start_date']), $config->dateformatFull);
     $subject           = 'Change Case Start Date from ' . $currentStartDate . ' to ' . $newStartDate;
@@ -180,7 +186,7 @@ class CRM_Case_Form_Activity_ChangeCaseStartDate {
       'creatorID' => $form->_currentUserId,
       'standardTimeline' => 0,
       'activity_date_time' => $params['start_date'],
-      'caseID' => $form->_caseId,
+      'caseID' => $caseId,
       'caseType' => $caseType,
       'activityTypeName' => 'Change Case Start Date',
       'activitySetName' => 'standard_timeline',
@@ -232,7 +238,7 @@ class CRM_Case_Form_Activity_ChangeCaseStartDate {
         // Create linkage to case
         $caseActivityParams = array(
           'activity_id' => $newActivity->id,
-          'case_id' => $form->_caseId,
+          'case_id' => $caseId,
         );
 
         CRM_Case_BAO_Case::processCaseActivity($caseActivityParams);
index a950220b0c191080ce904cbc96d4be6ec995ebea..eef261d881aae26703acd28ceb35cb50fbd5713a 100644 (file)
@@ -61,8 +61,9 @@ class CRM_Case_Form_Activity_OpenCase {
         'Change Case Start Date',
         'name'
       );
+      $caseId = CRM_Utils_Array::first($form->_caseId);
       $form->assign('changeStartURL', CRM_Utils_System::url('civicrm/case/activity',
-          "action=add&reset=1&cid=$contactID&caseid={$form->_caseId}&atype=$atype"
+          "action=add&reset=1&cid=$contactID&caseid={$caseId}&atype=$atype"
         )
       );
       return;