From 89155ff0282456b643e5698ab69ee5fb35ea0b88 Mon Sep 17 00:00:00 2001
From: satish <satish.dvnk@vtiger.com>
Date: Tue, 28 Nov 2017 12:46:41 +0530
Subject: [PATCH] Fixes #711 - Moscow time zone is UTC+3 not UTC+4

---
 languages/en_us/Users.php                     |  2 +-
 modules/Migration/schema/701_to_710.php       | 32 +++++++++++++++++++
 .../Arabic_ar_ae/modules/Users.php            |  2 +-
 .../modules/Users.php                         |  2 +-
 .../modules/Users.php                         |  2 +-
 .../translations/Deutsch/modules/Users.php    |  2 +-
 .../translations/Dutch/modules/Users.php      |  2 +-
 .../translations/French/modules/Users.php     |  2 +-
 .../translations/Hungarian/modules/Users.php  |  2 +-
 .../modules/Users.php                         |  2 +-
 .../modules/Users.php                         |  2 +-
 .../modules/Users.php                         |  2 +-
 .../modules/Users.php                         |  2 +-
 .../translations/Russian/modules/Users.php    |  2 +-
 .../translations/Spanish/modules/Users.php    |  2 +-
 .../Sweden_sv_se/modules/Users.php            |  2 +-
 .../modules/Users.php                         |  2 +-
 17 files changed, 48 insertions(+), 16 deletions(-)

diff --git a/languages/en_us/Users.php b/languages/en_us/Users.php
index c55af466b..5e58d9b9e 100644
--- a/languages/en_us/Users.php
+++ b/languages/en_us/Users.php
@@ -137,9 +137,9 @@ $languageStrings = array(
 	'Asia/Kuwait'  =>  '(UTC+03:00) Kuwait, Riyadh',
 	'Asia/Baghdad'  =>  '(UTC+03:00) Baghdad',
 	'Africa/Nairobi'  =>  '(UTC+03:00) Nairobi',
+	'Europe/Moscow'  =>  '(UTC+03:00) Moscow, Volgograd',
 	'Asia/Tehran'  =>  '(UTC+03:30) Tehran',
 	'Asia/Tbilisi'  =>  '(UTC+04:00) Tbilisi',
-	'Europe/Moscow'  =>  '(UTC+04:00) Moscow, Volgograd',
 	'Asia/Muscat'  =>  '(UTC+04:00) Abu Dhabi, Muscat',
 	'Asia/Baku'  =>  '(UTC+04:00) Baku',
 	'Asia/Yerevan'  =>  '(UTC+04:00) Yerevan',
diff --git a/modules/Migration/schema/701_to_710.php b/modules/Migration/schema/701_to_710.php
index cb2cbaf98..fb2d6ffff 100644
--- a/modules/Migration/schema/701_to_710.php
+++ b/modules/Migration/schema/701_to_710.php
@@ -106,6 +106,38 @@ if (defined('VTIGER_UPGRADE')) {
 	$em->registerHandler('vtiger.entity.aftersave', 'modules/Vtiger/handlers/FollowRecordHandler.php', 'FollowRecordHandler');
 	//END::Follow & unfollow features
 
+	//START::Reordering Timezones
+	$fieldName = 'time_zone';
+	$userModuleModel = Vtiger_Module_Model::getInstance('Users');
+	$fieldModel = Vtiger_Field_Model::getInstance($fieldName, $userModuleModel);
+	if ($fieldModel) {
+		$picklistValues = $fieldModel->getPicklistValues();
+
+		$utcTimezones = preg_grep('/\(UTC\)/', $picklistValues);
+		asort($utcTimezones);
+
+		$utcPlusTimezones = preg_grep('/\(UTC\+/', $picklistValues);
+		asort($utcPlusTimezones);
+
+		$utcMinusTimezones = preg_grep('/\(UTC\-/', $picklistValues);
+		arsort($utcMinusTimezones);
+
+		$timeZones = array_merge($utcMinusTimezones, $utcTimezones, $utcPlusTimezones);
+		$originalPicklistValues = array_flip(Vtiger_Util_Helper::getPickListValues($fieldName));
+
+		$orderedPicklists = array();
+		$i = 0;
+		foreach ($timeZones as $timeZone => $value) {
+			$orderedPicklists[$originalPicklistValues[$timeZone]] = $i++;
+		}
+		ksort($orderedPicklists);
+
+		$moduleModel = new Settings_Picklist_Module_Model();
+		$moduleModel->updateSequence($fieldName, $orderedPicklists);
+		echo '<br>Succecssfully reordered timezones<br>';
+	}
+	//END::Reordering Timezones
+
 	//Update existing package modules
 	Install_Utils_Model::installModules();
 }
\ No newline at end of file
diff --git a/pkg/vtiger/translations/Arabic_ar_ae/modules/Users.php b/pkg/vtiger/translations/Arabic_ar_ae/modules/Users.php
index aee43fa54..3c47d7341 100644
--- a/pkg/vtiger/translations/Arabic_ar_ae/modules/Users.php
+++ b/pkg/vtiger/translations/Arabic_ar_ae/modules/Users.php
@@ -141,7 +141,7 @@ $languageStrings = array(
     'Africa/Nairobi'  =>  '(UTC+03:00) Nairobi',
     'Asia/Tehran'  =>  '(UTC+03:30) Tehran',
     'Asia/Tbilisi'  =>  '(UTC+04:00) Tbilisi',
-    'Europe/Moscow'  =>  '(UTC+04:00) Moscow, Volgograd',
+    'Europe/Moscow'  =>  '(UTC+03:00) Moscow, Volgograd',
     'Asia/Muscat'  =>  '(UTC+04:00) Abu Dhabi, Muscat',
     'Asia/Baku'  =>  '(UTC+04:00) Baku',
     'Asia/Yerevan'  =>  '(UTC+04:00) Yerevan',
diff --git a/pkg/vtiger/translations/BrazilianLanguagePack_bz_bz/modules/Users.php b/pkg/vtiger/translations/BrazilianLanguagePack_bz_bz/modules/Users.php
index 571938b29..217343f5a 100644
--- a/pkg/vtiger/translations/BrazilianLanguagePack_bz_bz/modules/Users.php
+++ b/pkg/vtiger/translations/BrazilianLanguagePack_bz_bz/modules/Users.php
@@ -130,7 +130,7 @@ $languageStrings = array(
 	'Africa/Nairobi'               => '(UTC+03:00) Nairobi'         , 
 	'Asia/Tehran'                  => '(UTC+03:30) Tehran'          , 
 	'Asia/Tbilisi'                 => '(UTC+04:00) Tbilisi'         , 
-	'Europe/Moscow'                => '(UTC+04:00) Moscou, Volgograd', 
+	'Europe/Moscow'                => '(UTC+03:00) Moscou, Volgograd', 
 	'Asia/Muscat'                  => '(UTC+04:00) Abu Dhabi, Muscat', 
 	'Asia/Baku'                    => '(UTC+04:00) Baku'            , 
 	'Asia/Yerevan'                 => '(UTC+04:00) Yerevan'         , 
diff --git a/pkg/vtiger/translations/BritishLanguagePack_br_br/modules/Users.php b/pkg/vtiger/translations/BritishLanguagePack_br_br/modules/Users.php
index 879a08dc1..f1ff5e849 100644
--- a/pkg/vtiger/translations/BritishLanguagePack_br_br/modules/Users.php
+++ b/pkg/vtiger/translations/BritishLanguagePack_br_br/modules/Users.php
@@ -129,7 +129,7 @@ $languageStrings = array(
 	'Africa/Nairobi'               => '(UTC+03:00) Nairobi'         , 
 	'Asia/Tehran'                  => '(UTC+03:30) Tehran'          , 
 	'Asia/Tbilisi'                 => '(UTC+04:00) Tbilisi'         , 
-	'Europe/Moscow'                => '(UTC+04:00) Moscow, Volgograd', 
+	'Europe/Moscow'                => '(UTC+03:00) Moscow, Volgograd', 
 	'Asia/Muscat'                  => '(UTC+04:00) Abu Dhabi, Muscat', 
 	'Asia/Baku'                    => '(UTC+04:00) Baku'            , 
 	'Asia/Yerevan'                 => '(UTC+04:00) Yerevan'         , 
diff --git a/pkg/vtiger/translations/Deutsch/modules/Users.php b/pkg/vtiger/translations/Deutsch/modules/Users.php
index a6ca4b106..f919c9b1d 100644
--- a/pkg/vtiger/translations/Deutsch/modules/Users.php
+++ b/pkg/vtiger/translations/Deutsch/modules/Users.php
@@ -130,7 +130,7 @@ $languageStrings = array(
 	'Africa/Nairobi'               => '(UTC+03:00) Nairobi'         , 
 	'Asia/Tehran'                  => '(UTC+03:30) Teheran'         , 
 	'Asia/Tbilisi'                 => '(UTC+04:00) Tbilisi'         , 
-	'Europe/Moscow'                => '(UTC+04:00) Moskau, Wolgograd', 
+	'Europe/Moscow'                => '(UTC+03:00) Moskau, Wolgograd', 
 	'Asia/Muscat'                  => '(UTC+04:00) Abu Dhabi, Muskat', 
 	'Asia/Baku'                    => '(UTC+04:00) Baku'            , 
 	'Asia/Yerevan'                 => '(UTC+04:00) Yerevan'         , 
diff --git a/pkg/vtiger/translations/Dutch/modules/Users.php b/pkg/vtiger/translations/Dutch/modules/Users.php
index 40a724866..b37b4683f 100644
--- a/pkg/vtiger/translations/Dutch/modules/Users.php
+++ b/pkg/vtiger/translations/Dutch/modules/Users.php
@@ -130,7 +130,7 @@ $languageStrings = array(
 	'Africa/Nairobi'               => '(UTC+03:00) Nairobi'         , 
 	'Asia/Tehran'                  => '(UTC+03:30) Tehran'          , 
 	'Asia/Tbilisi'                 => '(UTC+04:00) Tbilisi'         , 
-	'Europe/Moscow'                => '(UTC+04:00) Moscow, Volgograd', 
+	'Europe/Moscow'                => '(UTC+03:00) Moscow, Volgograd', 
 	'Asia/Muscat'                  => '(UTC+04:00) Abu Dhabi, Muscat', 
 	'Asia/Baku'                    => '(UTC+04:00) Baku'            , 
 	'Asia/Yerevan'                 => '(UTC+04:00) Yerevan'         , 
diff --git a/pkg/vtiger/translations/French/modules/Users.php b/pkg/vtiger/translations/French/modules/Users.php
index c869e5087..0cf4fa76e 100644
--- a/pkg/vtiger/translations/French/modules/Users.php
+++ b/pkg/vtiger/translations/French/modules/Users.php
@@ -130,7 +130,7 @@ $languageStrings = array(
 	'Africa/Nairobi'               => '(UTC+03:00) Nairobi'         , 
 	'Asia/Tehran'                  => '(UTC+03:30) Tehran'          , 
 	'Asia/Tbilisi'                 => '(UTC+04:00) Tbilisi'         , 
-	'Europe/Moscow'                => '(UTC+04:00) Moscow, Volgograd', 
+	'Europe/Moscow'                => '(UTC+03:00) Moscow, Volgograd', 
 	'Asia/Muscat'                  => '(UTC+04:00) Abu Dhabi, Muscat', 
 	'Asia/Baku'                    => '(UTC+04:00) Baku'            , 
 	'Asia/Yerevan'                 => '(UTC+04:00) Yerevan'         , 
diff --git a/pkg/vtiger/translations/Hungarian/modules/Users.php b/pkg/vtiger/translations/Hungarian/modules/Users.php
index 3b9901b2e..bbc5da952 100644
--- a/pkg/vtiger/translations/Hungarian/modules/Users.php
+++ b/pkg/vtiger/translations/Hungarian/modules/Users.php
@@ -130,7 +130,7 @@ $languageStrings = array(
 	'Africa/Nairobi'               => '(UTC+03:00) Nairobi'         , 
 	'Asia/Tehran'                  => '(UTC+03:30) Tehran'          , 
 	'Asia/Tbilisi'                 => '(UTC+04:00) Tbilisi'         , 
-	'Europe/Moscow'                => '(UTC+04:00) Moscow, Volgograd', 
+	'Europe/Moscow'                => '(UTC+03:00) Moscow, Volgograd', 
 	'Asia/Muscat'                  => '(UTC+04:00) Abu Dhabi, Muscat', 
 	'Asia/Baku'                    => '(UTC+04:00) Baku'            , 
 	'Asia/Yerevan'                 => '(UTC+04:00) Yerevan'         , 
diff --git a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Users.php b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Users.php
index 92ab60600..e3e048ca7 100644
--- a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Users.php
+++ b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/Users.php
@@ -130,7 +130,7 @@ $languageStrings = array(
 	'Africa/Nairobi'               => '(UTC+03:00) Nairobi'         , 
 	'Asia/Tehran'                  => '(UTC+03:30) Tehran'          , 
 	'Asia/Tbilisi'                 => '(UTC+04:00) Tbilisi'         , 
-	'Europe/Moscow'                => '(UTC+04:00) Moscow, Volgograd', 
+	'Europe/Moscow'                => '(UTC+03:00) Moscow, Volgograd', 
 	'Asia/Muscat'                  => '(UTC+04:00) Abu Dhabi, Muscat', 
 	'Asia/Baku'                    => '(UTC+04:00) Baku'            , 
 	'Asia/Yerevan'                 => '(UTC+04:00) Yerevan'         , 
diff --git a/pkg/vtiger/translations/MexicanSpanishLanguagePack_es_mx/modules/Users.php b/pkg/vtiger/translations/MexicanSpanishLanguagePack_es_mx/modules/Users.php
index d5eeb1884..09c9bfefa 100644
--- a/pkg/vtiger/translations/MexicanSpanishLanguagePack_es_mx/modules/Users.php
+++ b/pkg/vtiger/translations/MexicanSpanishLanguagePack_es_mx/modules/Users.php
@@ -130,7 +130,7 @@ $languageStrings = array(
 	'Africa/Nairobi'               => '(UTC+03:00) Nairobi'         , 
 	'Asia/Tehran'                  => '(UTC+03:30) Tehran'          , 
 	'Asia/Tbilisi'                 => '(UTC+04:00) Tbilisi'         , 
-	'Europe/Moscow'                => '(UTC+04:00) Moscow, Volgograd', 
+	'Europe/Moscow'                => '(UTC+03:00) Moscow, Volgograd', 
 	'Asia/Muscat'                  => '(UTC+04:00) Abu Dhabi, Muscat', 
 	'Asia/Baku'                    => '(UTC+04:00) Baku'            , 
 	'Asia/Yerevan'                 => '(UTC+04:00) Yerevan'         , 
diff --git a/pkg/vtiger/translations/PolishLanguagePack_pl_pl/modules/Users.php b/pkg/vtiger/translations/PolishLanguagePack_pl_pl/modules/Users.php
index 960b4f4a9..efc9eb520 100644
--- a/pkg/vtiger/translations/PolishLanguagePack_pl_pl/modules/Users.php
+++ b/pkg/vtiger/translations/PolishLanguagePack_pl_pl/modules/Users.php
@@ -137,7 +137,7 @@ $languageStrings = array(
     'Africa/Nairobi'  =>  '(UTC+03:00) Nairobi',
     'Asia/Tehran'  =>  '(UTC+03:30) Tehran',
     'Asia/Tbilisi'  =>  '(UTC+04:00) Tbilisi',
-    'Europe/Moscow'  =>  '(UTC+04:00) Moscow, Volgograd',
+    'Europe/Moscow'  =>  '(UTC+03:00) Moscow, Volgograd',
     'Asia/Muscat'  =>  '(UTC+04:00) Abu Dhabi, Muscat',
     'Asia/Baku'  =>  '(UTC+04:00) Baku',
     'Asia/Yerevan'  =>  '(UTC+04:00) Yerevan',
diff --git a/pkg/vtiger/translations/RomanianLanguagePack_rm_rm/modules/Users.php b/pkg/vtiger/translations/RomanianLanguagePack_rm_rm/modules/Users.php
index 33ea95395..19afc3689 100644
--- a/pkg/vtiger/translations/RomanianLanguagePack_rm_rm/modules/Users.php
+++ b/pkg/vtiger/translations/RomanianLanguagePack_rm_rm/modules/Users.php
@@ -130,7 +130,7 @@ $languageStrings = array(
 	'Africa/Nairobi'               => '(UTC+03:00) Nairobi'         , 
 	'Asia/Tehran'                  => '(UTC+03:30) Tehran'          , 
 	'Asia/Tbilisi'                 => '(UTC+04:00) Tbilisi'         , 
-	'Europe/Moscow'                => '(UTC+04:00) Moscow, Volgograd', 
+	'Europe/Moscow'                => '(UTC+03:00) Moscow, Volgograd', 
 	'Asia/Muscat'                  => '(UTC+04:00) Abu Dhabi, Muscat', 
 	'Asia/Baku'                    => '(UTC+04:00) Baku'            , 
 	'Asia/Yerevan'                 => '(UTC+04:00) Yerevan'         , 
diff --git a/pkg/vtiger/translations/Russian/modules/Users.php b/pkg/vtiger/translations/Russian/modules/Users.php
index ad44620ce..2447bd355 100644
--- a/pkg/vtiger/translations/Russian/modules/Users.php
+++ b/pkg/vtiger/translations/Russian/modules/Users.php
@@ -130,7 +130,7 @@ $languageStrings = array(
 	'Africa/Nairobi'               => '(UTC+03:00) Nairobi'         , 
 	'Asia/Tehran'                  => '(UTC+03:30) Tehran'          , 
 	'Asia/Tbilisi'                 => '(UTC+04:00) Tbilisi'         , 
-	'Europe/Moscow'                => '(UTC+04:00) Москва, Волгоград', 
+	'Europe/Moscow'                => '(UTC+03:00) Москва, Волгоград', 
 	'Asia/Muscat'                  => '(UTC+04:00) Abu Dhabi, Muscat', 
 	'Asia/Baku'                    => '(UTC+04:00) Baku'            , 
 	'Asia/Yerevan'                 => '(UTC+04:00) Yerevan'         , 
diff --git a/pkg/vtiger/translations/Spanish/modules/Users.php b/pkg/vtiger/translations/Spanish/modules/Users.php
index e36c44cad..ed5ada7a9 100644
--- a/pkg/vtiger/translations/Spanish/modules/Users.php
+++ b/pkg/vtiger/translations/Spanish/modules/Users.php
@@ -150,7 +150,7 @@ $languageStrings = array(
 	'Africa/Nairobi'               => '(UTC+03:00) Nairobi',
 	'Asia/Tehran'                  => '(UTC+03:30) Tehran',
 	'Asia/Tbilisi'                 => '(UTC+04:00) Tbilisi',
-	'Europe/Moscow'                => '(UTC+04:00) Moscow, Volgograd',
+	'Europe/Moscow'                => '(UTC+03:00) Moscow, Volgograd',
 	'Asia/Muscat'                  => '(UTC+04:00) Abu Dhabi, Muscat',
 	'Asia/Baku'                    => '(UTC+04:00) Baku',
 	'Asia/Yerevan'                 => '(UTC+04:00) Yerevan',
diff --git a/pkg/vtiger/translations/Sweden_sv_se/modules/Users.php b/pkg/vtiger/translations/Sweden_sv_se/modules/Users.php
index 4988b998a..de9cbc676 100755
--- a/pkg/vtiger/translations/Sweden_sv_se/modules/Users.php
+++ b/pkg/vtiger/translations/Sweden_sv_se/modules/Users.php
@@ -141,7 +141,7 @@ $languageStrings = array(
     'Africa/Nairobi'  =>  '(UTC+03:00) Nairobi',
     'Asia/Tehran'  =>  '(UTC+03:30) Tehran',
     'Asia/Tbilisi'  =>  '(UTC+04:00) Tbilisi',
-    'Europe/Moscow'  =>  '(UTC+04:00) Moscow, Volgograd',
+    'Europe/Moscow'  =>  '(UTC+03:00) Moscow, Volgograd',
     'Asia/Muscat'  =>  '(UTC+04:00) Abu Dhabi, Muscat',
     'Asia/Baku'  =>  '(UTC+04:00) Baku',
     'Asia/Yerevan'  =>  '(UTC+04:00) Yerevan',
diff --git a/pkg/vtiger/translations/TurkishLanguagePack_tr_tr/modules/Users.php b/pkg/vtiger/translations/TurkishLanguagePack_tr_tr/modules/Users.php
index d893f13c5..6895424aa 100644
--- a/pkg/vtiger/translations/TurkishLanguagePack_tr_tr/modules/Users.php
+++ b/pkg/vtiger/translations/TurkishLanguagePack_tr_tr/modules/Users.php
@@ -130,7 +130,7 @@ $languageStrings = array(
 	'Africa/Nairobi'               => '(UTC+03:00) Nairobi'         , 
 	'Asia/Tehran'                  => '(UTC+03:30) Tehran'          , 
 	'Asia/Tbilisi'                 => '(UTC+04:00) Tbilisi'         , 
-	'Europe/Moscow'                => '(UTC+04:00) Moscow, Volgograd', 
+	'Europe/Moscow'                => '(UTC+03:00) Moscow, Volgograd', 
 	'Asia/Muscat'                  => '(UTC+04:00) Abu Dhabi, Muscat', 
 	'Asia/Baku'                    => '(UTC+04:00) Baku'            , 
 	'Asia/Yerevan'                 => '(UTC+04:00) Yerevan'         , 
-- 
GitLab