From de12fb9d0bd5d45c4ec3bcc032f525ace8aeb8df Mon Sep 17 00:00:00 2001
From: Uma <uma.s@vtiger.com>
Date: Wed, 13 Nov 2019 18:38:27 +0530
Subject: [PATCH] Fixes #1204 Sort listview addressed

---
 modules/Calendar/models/ListView.php                       | 4 ++--
 modules/Documents/models/ListView.php                      | 4 ++--
 modules/PriceBooks/models/ListView.php                     | 4 ++--
 modules/Products/models/ListView.php                       | 4 ++--
 modules/Reports/models/ListView.php                        | 4 ++--
 modules/Vtiger/models/ListView.php                         | 7 +++----
 .../modules/Import/modules/Import/models/ListView.php      | 4 ++--
 7 files changed, 15 insertions(+), 16 deletions(-)

diff --git a/modules/Calendar/models/ListView.php b/modules/Calendar/models/ListView.php
index a40705d68..216dda81a 100644
--- a/modules/Calendar/models/ListView.php
+++ b/modules/Calendar/models/ListView.php
@@ -203,8 +203,8 @@ class Calendar_ListView_Model extends Vtiger_ListView_Model {
 			$queryGenerator->addUserSearchConditions(array('search_field' => $searchKey, 'search_text' => $searchValue, 'operator' => $operator));
 		}
         
-        $orderBy = $this->get('orderby');
-		$sortOrder = $this->get('sortorder');
+        $orderBy = $this->getForSql('orderby');
+		$sortOrder = $this->getForSql('sortorder');
         if(empty($sortOrder)) {
             $sortOrder = 'DESC';
         }
diff --git a/modules/Documents/models/ListView.php b/modules/Documents/models/ListView.php
index 0e62f6f52..12f2120f2 100644
--- a/modules/Documents/models/ListView.php
+++ b/modules/Documents/models/ListView.php
@@ -173,8 +173,8 @@ class Documents_ListView_Model extends Vtiger_ListView_Model {
 			$queryGenerator->addUserSearchConditions(array('search_field' => $searchKey, 'search_text' => $searchValue, 'operator' => $operator));
 		}
         
-        $orderBy = $this->get('orderby');
-		$sortOrder = $this->get('sortorder');
+        $orderBy = $this->getForSql('orderby');
+		$sortOrder = $this->getForSql('sortorder');
 
         if(!empty($orderBy)){
 			$queryGenerator = $this->get('query_generator');
diff --git a/modules/PriceBooks/models/ListView.php b/modules/PriceBooks/models/ListView.php
index f34855d36..c73bd68e7 100644
--- a/modules/PriceBooks/models/ListView.php
+++ b/modules/PriceBooks/models/ListView.php
@@ -73,8 +73,8 @@ class PriceBooks_ListView_Model extends Vtiger_ListView_Model {
 			$queryGenerator->addUserSearchConditions(array('search_field' => $searchKey, 'search_text' => $searchValue, 'operator' => $operator));
 		}
 
-        $orderBy = $this->get('orderby');
-		$sortOrder = $this->get('sortorder');
+        $orderBy = $this->getForSql('orderby');
+		$sortOrder = $this->getForSql('sortorder');
 
         if(!empty($orderBy)){
 			$queryGenerator = $this->get('query_generator');
diff --git a/modules/Products/models/ListView.php b/modules/Products/models/ListView.php
index 7aa64ad15..00a0e74b8 100644
--- a/modules/Products/models/ListView.php
+++ b/modules/Products/models/ListView.php
@@ -43,8 +43,8 @@ class Products_ListView_Model extends Vtiger_ListView_Model {
 			$queryGenerator->addUserSearchConditions(array('search_field' => $searchKey, 'search_text' => $searchValue, 'operator' => $operator));
 		}
         
-        $orderBy = $this->get('orderby');
-		$sortOrder = $this->get('sortorder');
+        $orderBy = $this->getForSql('orderby');
+		$sortOrder = $this->getForSql('sortorder');
 		
         if(!empty($orderBy)){
 			$queryGenerator = $this->get('query_generator');
diff --git a/modules/Reports/models/ListView.php b/modules/Reports/models/ListView.php
index 9e3e5a7c0..90fafd3fe 100644
--- a/modules/Reports/models/ListView.php
+++ b/modules/Reports/models/ListView.php
@@ -95,7 +95,7 @@ class Reports_ListView_Model extends Vtiger_ListView_Model {
 		$reportFolderModel = Reports_Folder_Model::getInstance();
 		$reportFolderModel->set('folderid', $this->get('folderid'));
 
-		$orderBy = $this->get('orderby');
+		$orderBy = $this->getForSql('orderby');
 		if (!empty($orderBy) && $orderBy === 'smownerid') {
 			$fieldModel = Vtiger_Field_Model::getInstance('assigned_user_id', $moduleModel);
 			if ($fieldModel->getFieldDataType() == 'owner') {
@@ -104,7 +104,7 @@ class Reports_ListView_Model extends Vtiger_ListView_Model {
 		}
 		if(!empty($orderBy)) {
 			$reportFolderModel->set('orderby', $orderBy);
-			$reportFolderModel->set('sortby', $this->get('sortorder'));
+			$reportFolderModel->set('sortby', $this->getForSql('sortorder'));
 		}
 
 		$reportFolderModel->set('search_params', $this->get('search_params'));
diff --git a/modules/Vtiger/models/ListView.php b/modules/Vtiger/models/ListView.php
index f218a9e94..420319a7a 100644
--- a/modules/Vtiger/models/ListView.php
+++ b/modules/Vtiger/models/ListView.php
@@ -206,8 +206,8 @@ class Vtiger_ListView_Model extends Vtiger_Base_Model {
 			$queryGenerator->addUserSearchConditions(array('search_field' => $searchKey, 'search_text' => $searchValue, 'operator' => $operator));
 		}
 
-		$orderBy = $this->get('orderby');
-		$sortOrder = $this->get('sortorder');
+		$orderBy = $this->getForSql('orderby');
+		$sortOrder = $this->getForSql('sortorder');
 
 		if(!empty($orderBy)){
 			$queryGenerator = $this->get('query_generator');
@@ -238,8 +238,7 @@ class Vtiger_ListView_Model extends Vtiger_Base_Model {
 			if($orderBy == 'roleid' && $moduleName == 'Users'){
 				$listQuery .= ' ORDER BY vtiger_role.rolename '.' '. $sortOrder; 
 			} else {
-				$listQuery .= ' ORDER BY ? '.$sortOrder;
-				array_push($paramArray, $queryGenerator->getOrderByColumn($orderBy));
+				$listQuery .= ' ORDER BY '.$queryGenerator->getOrderByColumn($orderBy).' '.$sortOrder;
 			}
 
 			if ($orderBy == 'first_name' && $moduleName == 'Users') {
diff --git a/pkg/vtiger/modules/Import/modules/Import/models/ListView.php b/pkg/vtiger/modules/Import/modules/Import/models/ListView.php
index 9e6714f03..ab2d5c8d0 100644
--- a/pkg/vtiger/modules/Import/modules/Import/models/ListView.php
+++ b/pkg/vtiger/modules/Import/modules/Import/models/ListView.php
@@ -62,8 +62,8 @@ class Import_ListView_Model extends Vtiger_ListView_Model {
 			$queryGenerator->addUserSearchConditions(array('search_field' => $searchKey, 'search_text' => $searchValue, 'operator' => 'c'));
 		}
 
-		$orderBy = $this->get('orderby');
-		$sortOrder = $this->get('sortorder');
+		$orderBy = $this->getForSql('orderby');
+		$sortOrder = $this->getForSql('sortorder');
 		if(!empty($orderBy)) {
 			$queryGenerator = $this->get('query_generator');
 			$fieldModels = $queryGenerator->getModuleFields();
-- 
GitLab