From 964e8b6ff83e13da04dbbbf8555e9b8677d61b3c Mon Sep 17 00:00:00 2001
From: Uma <uma.s@vtiger.com>
Date: Wed, 22 Apr 2020 17:33:57 +0530
Subject: [PATCH] Fixes #1263 Code correction on Merge request

---
 .../com_vtiger_workflow/WorkFlowScheduler.php | 23 +++++++++++++++++--
 1 file changed, 21 insertions(+), 2 deletions(-)

diff --git a/modules/com_vtiger_workflow/WorkFlowScheduler.php b/modules/com_vtiger_workflow/WorkFlowScheduler.php
index e24a18c35..1c4e5184d 100755
--- a/modules/com_vtiger_workflow/WorkFlowScheduler.php
+++ b/modules/com_vtiger_workflow/WorkFlowScheduler.php
@@ -215,8 +215,22 @@ class WorkFlowScheduler {
 				if($operation == 'has changed from') continue;
 
 				$value = $condition['value'];
+                
+                $fieldname = $condition['fieldname'];
+				preg_match('/(\w+) : \((\w+)\) (\w+)/', $condition['fieldname'], $matches);
+				if (count($matches) != 0) {
+					list($full, $referenceField, $referenceModule, $fieldname) = $matches;
+				}
+				if($referenceField) {
+					$moduleName = $referenceModule;
+				} else {
+					$moduleName = $queryGenerator->getModule();
+				}
+				$moduleModel = Vtiger_Module_Model::getInstance($moduleName);
+				$fieldModel = $moduleModel->getField($fieldname);
+                
 				if(in_array($operation, $this->_specialDateTimeOperator())) {
-					$value = $this->_parseValueForDate($condition);
+					$value = $this->_parseValueForDate($condition, $fieldModel);
 				}
 				$columnCondition = $condition['joincondition'];
 				$groupId = $condition['groupid'];
@@ -294,7 +308,7 @@ class WorkFlowScheduler {
 	 * @param <Array> $condition
 	 * @return <String>
 	 */
-	function _parseValueForDate($condition) {
+	function _parseValueForDate($condition,$fieldModel = false) {
 		$value = $condition['value'];
 		$operation = $condition['operation'];
 
@@ -303,6 +317,11 @@ class WorkFlowScheduler {
 		$admin = Users::getActiveAdminUser();
 		$adminTimeZone = $admin->time_zone;
 		@date_default_timezone_set($adminTimeZone);
+        $fieldType = array();
+		if($fieldModel){
+			$dataType = $fieldModel->get('typeofdata');
+			$fieldType = explode('~',$dataType);
+		}
 
 		switch($operation) {
 			case 'less than days ago' :		//between current date and (currentdate - givenValue)
-- 
GitLab