Example #1
0
 public static function createPackageTables($strPackageName)
 {
     $strPackageName = strtolower($strPackageName);
     Loader::IncludePackage($strPackageName);
     $strBigPackageName = strtoupper($strPackageName);
     $strFirstBigPackageName = Tools::setFirstCharToBig($strPackageName);
     $strPackageRoot = Config::getConfig($strBigPackageName . "_ROOT");
     //msDebug($strPackageRoot);
     $strPackageTablesNamespace = "MSergeev\\Packages\\" . $strFirstBigPackageName . "\\Tables\\";
     $dir = $strPackageRoot . "tables/";
     $arTables = array();
     if (is_dir($dir)) {
         if ($dh = opendir($dir)) {
             while (($file = readdir($dh)) !== false) {
                 if ($file != "." && $file != ".." && $file != ".readme") {
                     $arTables[] = str_replace(".php", "", $file);
                 }
             }
             closedir($dh);
         }
     }
     foreach ($arTables as $fileTable) {
         if ($arClass = explode("_", $fileTable)) {
             $className = "";
             foreach ($arClass as $strName) {
                 $className .= Tools::setFirstCharToBig($strName);
             }
         } else {
             $className = Tools::setFirstCharToBig($arClass);
         }
         $className .= "Table";
         //call_user_func(array($strPackageTablesNamespace.$className,"installTable()"));
         $runClass = $strPackageTablesNamespace . $className;
         $runClass::createTable();
         $runClass::insertDefaultRows();
         //forward_static_call(array($strPackageTablesNamespace.$className,"installTable()"));
         //msDebug($strPackageTablesNamespace.$className."::installTable()");
     }
 }
Example #2
0
 protected static function getCalendar($month, $year)
 {
     //В коде может использоваться другой пакет
     if (CoreLib\Loader::issetPackage('dates')) {
         //Если пакет установлен, подключаем его
         CoreLib\Loader::IncludePackage('dates');
     }
     //$month = 2; $year = 2017; //Для теста
     $arCalendar = array();
     $dateHelper = new CoreLib\DateHelper();
     $arCalendar["INFO"]["MONTH"] = $month;
     $arCalendar["INFO"]["YEAR"] = $year;
     //Получаем timestamp на первое число заданного месяца и года
     $arCalendar["INFO"]["START_DATE"] = "1." . $month . "." . $year;
     $arCalendar["INFO"]["START_TIMESTAMP"] = $dateHelper->getDateTimestamp($arCalendar["INFO"]["START_DATE"]);
     //Получаем количество дней в месяце
     $arCalendar["INFO"]["NUMBER_OF_DAYS"] = intval(date("t", $arCalendar["INFO"]["START_TIMESTAMP"]));
     //Получаем timestamp на последнее число заданного месяца и года
     $arCalendar["INFO"]["LAST_DATE"] = $arCalendar["INFO"]["NUMBER_OF_DAYS"] . "." . $month . "." . $year;
     $arCalendar["INFO"]["LAST_TIMESTAMP"] = $dateHelper->getDateTimestamp($arCalendar["INFO"]["LAST_DATE"]);
     //Получаем день недели для 1го числа месяца
     $arCalendar["INFO"]["START_DAY_OF_WEEK"] = intval(date("w", $arCalendar["INFO"]["START_TIMESTAMP"]));
     if ($arCalendar["INFO"]["START_DAY_OF_WEEK"] == 0) {
         $arCalendar["INFO"]["START_DAY_OF_WEEK"] = 7;
     }
     //Получаем день недели для последнего числа месяца
     $arCalendar["INFO"]["LAST_DAY_OF_WEEK"] = intval(date("w", $arCalendar["INFO"]["LAST_TIMESTAMP"]));
     if ($arCalendar["INFO"]["LAST_DAY_OF_WEEK"] == 0) {
         $arCalendar["INFO"]["LAST_DAY_OF_WEEK"] = 7;
     }
     //Если 1е число не понедельник - нужно получить несколько дней предыдущего месяца
     if ($arCalendar["INFO"]["START_DAY_OF_WEEK"] != 1) {
         $arCalendar["INFO"]["DAY_PREV_MONTH"] = $arCalendar["INFO"]["START_DAY_OF_WEEK"] - 1;
         $arCalendar["INFO"]["FIRST_DAY_PREV_MONTH"] = $dateHelper->strToTime($arCalendar["INFO"]["START_DATE"], "-" . $arCalendar["INFO"]["DAY_PREV_MONTH"] . " day");
         list($arCalendar["INFO"]["PREV_MONTH_DAY"], $arCalendar["INFO"]["PREV_MONTH_MONTH"], $arCalendar["INFO"]["PREV_MONTH_YEAR"]) = explode(".", $arCalendar["INFO"]["FIRST_DAY_PREV_MONTH"]);
         for ($i = 0; $i < $arCalendar["INFO"]["DAY_PREV_MONTH"]; $i++) {
             if ($i == 0) {
                 $dayOfWeek = date("w", $dateHelper->getDateTimestamp(intval($arCalendar["INFO"]["PREV_MONTH_DAY"]) . "." . intval($arCalendar["INFO"]["PREV_MONTH_MONTH"]) . "." . intval($arCalendar["INFO"]["PREV_MONTH_YEAR"])));
                 if ($dayOfWeek == 0) {
                     $dayOfWeek = 7;
                 }
                 //Использование пакета "Даты"
                 if (CoreLib\Loader::issetPackage('dates')) {
                     $isDayOff = \MSergeev\Packages\Dates\Lib\WorkCalendar::isDayOff(intval($arCalendar["INFO"]["PREV_MONTH_DAY"]) . "." . intval($arCalendar["INFO"]["PREV_MONTH_MONTH"]) . "." . intval($arCalendar["INFO"]["PREV_MONTH_YEAR"]));
                     if ($isDayOff) {
                         $dayOfWeek = 6;
                     } else {
                         $dayOfWeek = 1;
                     }
                 }
                 $arCalendar["PREV_MONTH"][intval($arCalendar["INFO"]["PREV_MONTH_DAY"]) . "." . intval($arCalendar["INFO"]["PREV_MONTH_MONTH"]) . "." . intval($arCalendar["INFO"]["PREV_MONTH_YEAR"])] = array("TEXT" => intval($arCalendar["INFO"]["PREV_MONTH_DAY"]) . " " . self::getMonthName(intval($arCalendar["INFO"]["PREV_MONTH_MONTH"])), "DAY_OF_WEEK" => $dayOfWeek);
             } else {
                 $dayOfWeek = date("w", $dateHelper->getDateTimestamp(intval($arCalendar["INFO"]["PREV_MONTH_DAY"]) + $i . "." . intval($arCalendar["INFO"]["PREV_MONTH_MONTH"]) . "." . intval($arCalendar["INFO"]["PREV_MONTH_YEAR"])));
                 if ($dayOfWeek == 0) {
                     $dayOfWeek = 7;
                 }
                 //Использование пакета "Даты"
                 if (CoreLib\Loader::issetPackage('dates')) {
                     $isDayOff = \MSergeev\Packages\Dates\Lib\WorkCalendar::isDayOff(intval($arCalendar["INFO"]["PREV_MONTH_DAY"]) + $i . "." . intval($arCalendar["INFO"]["PREV_MONTH_MONTH"]) . "." . intval($arCalendar["INFO"]["PREV_MONTH_YEAR"]));
                     if ($isDayOff) {
                         $dayOfWeek = 6;
                     } else {
                         $dayOfWeek = 1;
                     }
                 }
                 $arCalendar["PREV_MONTH"][intval($arCalendar["INFO"]["PREV_MONTH_DAY"]) + $i . "." . intval($arCalendar["INFO"]["PREV_MONTH_MONTH"]) . "." . intval($arCalendar["INFO"]["PREV_MONTH_YEAR"])] = array("TEXT" => intval($arCalendar["INFO"]["PREV_MONTH_DAY"]) + $i, "DAY_OF_WEEK" => $dayOfWeek);
             }
         }
     }
     //Вносим информацию по заданному месяцу
     for ($i = 0; $i < $arCalendar["INFO"]["NUMBER_OF_DAYS"]; $i++) {
         if ($i == 0) {
             $dayOfWeek = date("w", $dateHelper->getDateTimestamp($i + 1 . "." . $month . "." . $year));
             if ($dayOfWeek == 0) {
                 $dayOfWeek = 7;
             }
             //Использование пакета "Даты"
             if (CoreLib\Loader::issetPackage('dates')) {
                 $isDayOff = \MSergeev\Packages\Dates\Lib\WorkCalendar::isDayOff($i + 1 . "." . $month . "." . $year);
                 if ($isDayOff) {
                     $dayOfWeek = 6;
                 } else {
                     $dayOfWeek = 1;
                 }
             }
             $arCalendar["NOW_MONTH"][$i + 1 . "." . $month . "." . $year] = array("TEXT" => $i + 1 . " " . self::getMonthName($month), "DAY_OF_WEEK" => $dayOfWeek);
         } else {
             $dayOfWeek = date("w", $dateHelper->getDateTimestamp($i + 1 . "." . $month . "." . $year));
             if ($dayOfWeek == 0) {
                 $dayOfWeek = 7;
             }
             //Использование пакета "Даты"
             if (CoreLib\Loader::issetPackage('dates')) {
                 $isDayOff = \MSergeev\Packages\Dates\Lib\WorkCalendar::isDayOff($i + 1 . "." . $month . "." . $year);
                 if ($isDayOff) {
                     $dayOfWeek = 6;
                 } else {
                     $dayOfWeek = 1;
                 }
             }
             $arCalendar["NOW_MONTH"][$i + 1 . "." . $month . "." . $year] = array("TEXT" => $i + 1, "DAY_OF_WEEK" => $dayOfWeek);
         }
     }
     //Если последний день заданного месяца не воскресение - нужно добавить несколько дней следующего месяца
     if ($arCalendar["INFO"]["LAST_DAY_OF_WEEK"] != 7) {
         $arCalendar["INFO"]["FIRST_DAY_NEXT_MONTH"] = $dateHelper->strToTime($arCalendar["INFO"]["LAST_DATE"], "+1 day");
         list($arCalendar["INFO"]["NEXT_MONTH_DAY"], $arCalendar["INFO"]["NEXT_MONTH_MONTH"], $arCalendar["INFO"]["NEXT_MONTH_YEAR"]) = explode(".", $arCalendar["INFO"]["FIRST_DAY_NEXT_MONTH"]);
         $arCalendar["INFO"]["DAY_NEXT_MONTH"] = 7 - $arCalendar["INFO"]["LAST_DAY_OF_WEEK"];
         for ($i = 0; $i < $arCalendar["INFO"]["DAY_NEXT_MONTH"]; $i++) {
             if ($i == 0) {
                 $dayOfWeek = date("w", $dateHelper->getDateTimestamp($i + 1 . "." . intval($arCalendar["INFO"]["NEXT_MONTH_MONTH"]) . "." . intval($arCalendar["INFO"]["NEXT_MONTH_YEAR"])));
                 if ($dayOfWeek == 0) {
                     $dayOfWeek = 7;
                 }
                 //Использование пакета "Даты"
                 if (CoreLib\Loader::issetPackage('dates')) {
                     $isDayOff = \MSergeev\Packages\Dates\Lib\WorkCalendar::isDayOff($i + 1 . "." . intval($arCalendar["INFO"]["NEXT_MONTH_MONTH"]) . "." . intval($arCalendar["INFO"]["NEXT_MONTH_YEAR"]));
                     if ($isDayOff) {
                         $dayOfWeek = 6;
                     } else {
                         $dayOfWeek = 1;
                     }
                 }
                 $arCalendar["NEXT_MONTH"][$i + 1 . "." . intval($arCalendar["INFO"]["NEXT_MONTH_MONTH"]) . "." . intval($arCalendar["INFO"]["NEXT_MONTH_YEAR"])] = array("TEXT" => $i + 1 . " " . self::getMonthName(intval($arCalendar["INFO"]["NEXT_MONTH_MONTH"])), "DAY_OF_WEEK" => $dayOfWeek);
             } else {
                 $dayOfWeek = date("w", $dateHelper->getDateTimestamp($i + 1 . "." . intval($arCalendar["INFO"]["NEXT_MONTH_MONTH"]) . "." . intval($arCalendar["INFO"]["NEXT_MONTH_YEAR"])));
                 if ($dayOfWeek == 0) {
                     $dayOfWeek = 7;
                 }
                 //Использование пакета "Даты"
                 if (CoreLib\Loader::issetPackage('dates')) {
                     $isDayOff = \MSergeev\Packages\Dates\Lib\WorkCalendar::isDayOff($i + 1 . "." . intval($arCalendar["INFO"]["NEXT_MONTH_MONTH"]) . "." . intval($arCalendar["INFO"]["NEXT_MONTH_YEAR"]));
                     if ($isDayOff) {
                         $dayOfWeek = 6;
                     } else {
                         $dayOfWeek = 1;
                     }
                 }
                 $arCalendar["NEXT_MONTH"][$i + 1 . "." . intval($arCalendar["INFO"]["NEXT_MONTH_MONTH"]) . "." . intval($arCalendar["INFO"]["NEXT_MONTH_YEAR"])] = array("TEXT" => $i + 1, "DAY_OF_WEEK" => $dayOfWeek);
             }
         }
     }
     return $arCalendar;
 }
Example #3
0
 /**
  * getDateByForm
  * Получает дату из заполненной формы даты
  *
  * @param null|array $arParams
  *
  * @return array
  */
 public static function getDateByForm($arParams = null)
 {
     /*
     		$arParams["eyear"]
     		$arParams['emonth']
     		$arParams['eday']
     		$arParams['eaddday']
     		$arParams['emin']
     		$arParams['ehour']
     		$arParams['eplusminus']
     		$arParams["enoday"]
     		$arParams["emonday"]
     		$arParams["etuesday"]
     		$arParams["ewednesday"]
     		$arParams["ethursday"]
     		$arParams["efriday"]
     		$arParams["esaturday"]
     		$arParams["esunday"]
     		$arParams["eworkday"]
     		$arParams["eweekend"]
     */
     if (!is_array($arParams)) {
         return false;
     }
     $arReturn = array();
     if ($arParams["eyear"] > 0) {
         $arReturn['year'] = $arParams['eyear'];
         $arReturn['Y'] = $arParams['eyear'];
     } else {
         $arReturn['year'] = date('Y');
         $arReturn['Y'] = date('Y');
     }
     if ($arParams['emonth'] > 0) {
         $arReturn['month'] = $arParams['emonth'];
         $arReturn['n'] = $arParams['emonth'];
     } else {
         $arReturn['month'] = date("n");
         $arReturn['n'] = date("n");
     }
     if ($arParams['eday'] > 0) {
         $arReturn['day'] = $arParams['eday'];
         $arReturn['j'] = $arParams['eday'];
     } else {
         if ($arParams['eaddday'] > 0) {
             $arReturn['day'] = 1;
             $arReturn['j'] = 1;
         } else {
             $arReturn['day'] = date('j');
             $arReturn['j'] = date('j');
         }
     }
     if ($arParams['emin'] > -1) {
         $arReturn['minute'] = $arParams['emin'];
         $arReturn['i'] = $arParams['emin'];
         if ($arParams['ehour'] > -1) {
             $arReturn['hour'] = $arParams['ehour'];
             $arReturn['G'] = $arParams['ehour'];
         } else {
             $arReturn['hour'] = 0;
             $arReturn['G'] = 0;
         }
     } else {
         if ($arParams['ehour'] > -1) {
             $arReturn['hour'] = $arParams['ehour'];
             $arReturn['G'] = $arParams['ehour'];
             $arReturn['minute'] = 0;
             $arReturn['i'] = 0;
         } else {
             $arReturn['hour'] = date('G');
             $arReturn['G'] = date('G');
             $arReturn['minute'] = date('i');
             $arReturn['i'] = date('i');
         }
     }
     $arReturn["log"] = $arReturn;
     if ($arParams['eaddday'] > 0) {
         if ($arParams['eplusminus'] > 0) {
             self::setDayDifference($arReturn, intval($arParams['eaddday']));
         } else {
             self::setDayDifference($arReturn, intval($arParams['eaddday']), '-');
         }
     }
     self::addDateInfo($arReturn);
     if (!$arParams["enoday"]) {
         if ($arParams["emonday"]) {
             $dayofweek = 1;
         } elseif ($arParams["etuesday"]) {
             $dayofweek = 2;
         } elseif ($arParams["ewednesday"]) {
             $dayofweek = 3;
         } elseif ($arParams["ethursday"]) {
             $dayofweek = 4;
         } elseif ($arParams["efriday"]) {
             $dayofweek = 5;
         } elseif ($arParams["esaturday"]) {
             $dayofweek = 6;
         } elseif ($arParams["esunday"]) {
             $dayofweek = 7;
         } else {
             $dayofweek = 0;
         }
         if ($dayofweek > 0) {
             $dayDifference = $dayofweek - $arReturn['dayofweek'];
             if ($dayDifference > 0) {
                 self::setDayDifference($arReturn, $dayDifference);
             } elseif ($dayDifference < 0) {
                 self::setDayDifference($arReturn, 7 + $dayDifference);
             }
         } else {
             if ($arParams["eworkday"]) {
                 $dayofweek = 8;
             } elseif ($arParams["eweekend"]) {
                 $dayofweek = 9;
             } else {
                 $dayofweek = 0;
             }
             if (Loader::IncludePackage("dates")) {
                 $bLoadDates = true;
             } else {
                 $bLoadDates = false;
             }
             if ($dayofweek == 8) {
                 if (!$bLoadDates) {
                     if ($arReturn['dayofweek'] >= 1 && $arReturn['dayofweek'] <= 5) {
                         $dayDifference = 0;
                     } elseif ($arReturn['dayofweek'] == 6) {
                         $dayDifference = 2;
                     } elseif ($arReturn['dayofweek'] == 7) {
                         $dayDifference = 1;
                     }
                     if ($dayDifference > 0) {
                         self::setDayDifference($arReturn, $dayDifference);
                     }
                 } else {
                     $arDates = \MSergeev\Packages\Dates\Lib\WorkCalendar::getNearestDates($arReturn);
                     $arReturn['dates'] = $arDates;
                     for ($i = 0; $i < count($arDates); $i++) {
                         $date = $arReturn['day'] . '.' . $arReturn['month'] . '.' . $arReturn['year'];
                         if ($arDates[$date] == "X") {
                             $mktime = mktime(0, 0, 0, $arReturn['month'], $arReturn['day'], $arReturn['year']);
                             $dayofw = date('w', $mktime);
                             if ($dayofw == 0) {
                                 $dayofw = 7;
                             }
                             if ($dayofw >= 1 && $dayofw <= 5) {
                                 $bWorkDay = true;
                             } else {
                                 $bWorkDay = false;
                             }
                             if ($bWorkDay) {
                                 break;
                             }
                         } elseif ($arDates[$date] == "N") {
                             break;
                         }
                         self::setDayDifference($arReturn, 1);
                     }
                 }
             } elseif ($dayofweek == 9) {
                 if (!$bLoadDates) {
                     if ($arReturn['dayofweek'] >= 1 && $arReturn['dayofweek'] <= 5) {
                         $dayDifference = 6 - $arReturn['dayofweek'];
                     } else {
                         $dayDifference = 0;
                     }
                     if ($dayDifference > 0) {
                         self::setDayDifference($arReturn, $dayDifference);
                     }
                 } else {
                     $arDates = \MSergeev\Packages\Dates\Lib\WorkCalendar::getNearestDates($arReturn);
                     for ($i = 0; $i < count($arDates); $i++) {
                         $date = $arReturn['day'] . '.' . $arReturn['month'] . '.' . $arReturn['year'];
                         if ($arDates[$date] == "X") {
                             $mktime = mktime(0, 0, 0, $arReturn['month'], $arReturn['day'], $arReturn['year']);
                             $dayofw = date('w', $mktime);
                             if ($dayofw == 0) {
                                 $dayofw = 7;
                             }
                             if ($dayofw >= 1 && $dayofw <= 5) {
                                 $bWorkDay = true;
                             } else {
                                 $bWorkDay = false;
                             }
                             if (!$bWorkDay) {
                                 break;
                             }
                         } elseif ($arDates[$date] == "Y") {
                             break;
                         }
                         self::setDayDifference($arReturn, 1);
                     }
                 }
             }
         }
     }
     return $arReturn;
 }
Example #4
0
 public static function getAccountsList()
 {
     $arAccounts = array();
     $arRes = static::getAccountsArray();
     //msDebug($arRes);
     if ($arRes) {
         foreach ($arRes as $ar_res) {
             $ar_res['BALANCE'] = static::getAccountBalance($ar_res['ID']);
             if ($ar_res['STATUS'] == 0) {
                 //Скрытый
                 $accountCode = 'HIDDEN';
             } elseif ($ar_res['ACCOUNT_TYPE_ID'] >= static::$a_cash && $ar_res['ACCOUNT_TYPE_ID'] <= static::$a_bank) {
                 //Деньги
                 $accountCode = 'MONEY';
             } elseif ($ar_res['ACCOUNT_TYPE_ID'] == static::$a_mne) {
                 //Мне должны
                 $accountCode = 'ME';
             } elseif ($ar_res['ACCOUNT_TYPE_ID'] >= static::$a_i && $ar_res['ACCOUNT_TYPE_ID'] <= static::$a_credit) {
                 //Я должел
                 $accountCode = 'I_AM';
             } elseif ($ar_res['ACCOUNT_TYPE_ID'] >= static::$a_broker && $ar_res['ACCOUNT_TYPE_ID'] <= static::$a_pamm) {
                 //Инвестиции
                 $accountCode = 'INVEST';
             } elseif ($ar_res['ACCOUNT_TYPE_ID'] >= static::$a_estate && $ar_res['ACCOUNT_TYPE_ID'] <= static::$a_air) {
                 //Имущество
                 $accountCode = 'ESTATE';
             } elseif ($ar_res['ACCOUNT_TYPE_ID'] == static::$a_bonus) {
                 //Карты лояльности
                 $accountCode = 'BONUS';
             } else {
                 //Если что-то пошло не так, делаем счет скрытым
                 $accountCode = 'HIDDEN';
             }
             $arData = $ar_res;
             $arData['BALANCE_SHOW'] = static::numberFormat($ar_res['BALANCE'] > 0 ? floor($ar_res['BALANCE']) : ceil($ar_res['BALANCE']), 0);
             //Далее идет запрос дополнительных параметров баланса для вывода, в зависимости от типа счета
             if ($ar_res['ACCOUNT_TYPE_ID'] == static::$a_cash) {
                 //Наличные
                 $arData['ADDITIONAL'] = static::getAdditionalInfoCash($ar_res);
             } elseif ($ar_res['ACCOUNT_TYPE_ID'] == static::$a_debet_card) {
                 //Дебетовая карта
                 $arData['ADDITIONAL'] = static::getAdditionalInfoDebetCard($ar_res);
             } elseif ($ar_res['ACCOUNT_TYPE_ID'] == static::$a_deposit) {
                 //Дебетовая карта
                 $arData['ADDITIONAL'] = static::getAdditionalInfoDeposit($ar_res);
             } elseif ($ar_res['ACCOUNT_TYPE_ID'] == static::$a_emoney) {
                 //Электронный кошелек
                 $arData['ADDITIONAL'] = static::getAdditionalInfoEMoney($ar_res);
             } elseif ($ar_res['ACCOUNT_TYPE_ID'] == static::$a_bank) {
                 //Банковский счет
                 $arData['ADDITIONAL'] = static::getAdditionalInfoBank($ar_res);
             } elseif ($ar_res['ACCOUNT_TYPE_ID'] == static::$a_mne) {
                 //Мне должны
                 $arData['ADDITIONAL'] = static::getAdditionalInfoMe($ar_res);
             } elseif ($ar_res['ACCOUNT_TYPE_ID'] == static::$a_i) {
                 //Я должен
                 $arData['ADDITIONAL'] = static::getAdditionalInfoIam($ar_res);
             } elseif ($ar_res['ACCOUNT_TYPE_ID'] == static::$a_credit_card) {
                 //Кредитная карта
                 $arData['ADDITIONAL'] = static::getAdditionalInfoCreditCard($ar_res);
             } elseif ($ar_res['ACCOUNT_TYPE_ID'] == static::$a_credit) {
                 //Кредит
                 $arData['ADDITIONAL'] = static::getAdditionalInfoCredit($ar_res);
             } elseif ($ar_res['ACCOUNT_TYPE_ID'] >= static::$a_broker && $ar_res['ACCOUNT_TYPE_ID'] <= static::$a_pamm) {
                 //Брокерский счет
                 //Металлический счет (ОМС)
                 //Акции
                 //Облигации
                 //Другие ценные бумаги
                 //ПИФ
                 //ОБФУ
                 //Фонд
                 //Накопительное страхование жизни
                 //Накопительный план
                 //Негосударственный пенсионный фонд
                 //Пенсионный счет
                 //ПАММ-счет
                 $arData['ADDITIONAL'] = static::getAdditionalInfoInvest($ar_res);
             } elseif ($ar_res['ACCOUNT_TYPE_ID'] == static::$a_estate) {
                 //Недвижимость
                 $arData['ADDITIONAL'] = static::getAdditionalInfoRealEstate($ar_res);
             } elseif ($ar_res['ACCOUNT_TYPE_ID'] == static::$a_car) {
                 //Автомобиль
                 $arData['ADDITIONAL'] = static::getAdditionalInfoCar($ar_res);
             } elseif ($ar_res['ACCOUNT_TYPE_ID'] >= static::$a_water && $ar_res['ACCOUNT_TYPE_ID'] <= static::$a_air) {
                 //Водный транспорт
                 //Произведение искусства
                 //Бизнес
                 //Прочее имущество
                 //Мототехника
                 //Воздушный транспорт
                 $arData['ADDITIONAL'] = static::getAdditionalInfoEstate($ar_res);
             } elseif ($ar_res['ACCOUNT_TYPE_ID'] == static::$a_bonus) {
                 //Бонусная карта
                 $arData['ADDITIONAL'] = static::getAdditionalInfoBonus($ar_res);
             }
             $arAccounts[$accountCode]['DATA'][$ar_res['ID']] = $arData;
             if (!isset($arAccounts[$accountCode]['SUM'])) {
                 $arAccounts[$accountCode]['SUM'] = 0;
             }
             $arAccounts[$accountCode]['SUM'] += $ar_res['BALANCE'];
             if ($ar_res['STATUS'] == 2) {
                 $arAccounts['LIKE']['DATA'][$ar_res['ID']] = $arData;
                 if (!isset($arAccounts['LIKE']['SUM'])) {
                     $arAccounts['LIKE']['SUM'] = 0;
                 }
                 $arAccounts['LIKE']['SUM'] += $ar_res['BALANCE'];
             }
             if (!isset($arAccounts['CAPITAL']['CURRENCY'][$ar_res['CURRENCY']]['SUM'])) {
                 $arAccounts['CAPITAL']['CURRENCY'][$ar_res['CURRENCY']]['SUM'] = 0;
             }
             $arAccounts['CAPITAL']['CURRENCY'][$ar_res['CURRENCY']]['SUM'] += $ar_res['BALANCE'];
         }
     }
     $defaultCurrency = Currency::getDefaultCurrency();
     foreach ($arAccounts['CAPITAL']['CURRENCY'] as $currency => &$arValue) {
         $arValue['SUM_SHOW'] = static::numberFormat($arValue['SUM'] > 0 ? floor($arValue['SUM']) : ceil($arValue['SUM']), 0);
         if (CoreLib\Loader::IncludePackage("currency")) {
             $arValue['RATE'] = Curr::getCurrencyRate($defaultCurrency, $currency);
         }
         $arValue['SIGN'] = Currency::getCurrencySign($currency);
         $arValue[$defaultCurrency] = $arValue['SUM'] * $arValue['RATE'];
         $arValue[$defaultCurrency . '_SHOW'] = static::numberFormat($arValue[$defaultCurrency] > 0 ? floor($arValue[$defaultCurrency]) : ceil($arValue[$defaultCurrency]), 0);
         if (!isset($arAccounts['CAPITAL']['SUM'])) {
             $arAccounts['CAPITAL']['SUM'] = 0;
         }
         $arAccounts['CAPITAL']['SUM'] += $arValue[$defaultCurrency];
     }
     $arAccounts['CAPITAL']['SUM_SHOW'] = static::numberFormat($arAccounts['CAPITAL']['SUM'] > 0 ? floor($arAccounts['CAPITAL']['SUM']) : ceil($arAccounts['CAPITAL']['SUM']), 0);
     //msDebug($arAccounts);
     $section = 'LIKE';
     if (isset($arAccounts[$section]['SUM'])) {
         $arAccounts[$section]['SUM_SHOW'] = static::numberFormat($arAccounts[$section]['SUM'] > 0 ? floor($arAccounts[$section]['SUM']) : ceil($arAccounts[$section]['SUM']), 0);
     }
     $section = 'HIDDEN';
     if (isset($arAccounts[$section]['SUM'])) {
         $arAccounts[$section]['SUM_SHOW'] = static::numberFormat($arAccounts[$section]['SUM'] > 0 ? floor($arAccounts[$section]['SUM']) : ceil($arAccounts[$section]['SUM']), 0);
     }
     $section = 'MONEY';
     if (isset($arAccounts[$section]['SUM'])) {
         $arAccounts[$section]['SUM_SHOW'] = static::numberFormat($arAccounts[$section]['SUM'] > 0 ? floor($arAccounts[$section]['SUM']) : ceil($arAccounts[$section]['SUM']), 0);
     }
     $section = 'ME';
     if (isset($arAccounts[$section]['SUM'])) {
         $arAccounts[$section]['SUM_SHOW'] = static::numberFormat($arAccounts[$section]['SUM'] > 0 ? floor($arAccounts[$section]['SUM']) : ceil($arAccounts[$section]['SUM']), 0);
     }
     $section = 'I_AM';
     if (isset($arAccounts[$section]['SUM'])) {
         $arAccounts[$section]['SUM_SHOW'] = static::numberFormat($arAccounts[$section]['SUM'] > 0 ? floor($arAccounts[$section]['SUM']) : ceil($arAccounts[$section]['SUM']), 0);
     }
     $section = 'INVEST';
     if (isset($arAccounts[$section]['SUM'])) {
         $arAccounts[$section]['SUM_SHOW'] = static::numberFormat($arAccounts[$section]['SUM'] > 0 ? floor($arAccounts[$section]['SUM']) : ceil($arAccounts[$section]['SUM']), 0);
     }
     $section = 'ESTATE';
     if (isset($arAccounts[$section]['SUM'])) {
         $arAccounts[$section]['SUM_SHOW'] = static::numberFormat($arAccounts[$section]['SUM'] > 0 ? floor($arAccounts[$section]['SUM']) : ceil($arAccounts[$section]['SUM']), 0);
     }
     $section = 'BONUS';
     if (isset($arAccounts[$section]['SUM'])) {
         $arAccounts[$section]['SUM_SHOW'] = static::numberFormat($arAccounts[$section]['SUM'] > 0 ? floor($arAccounts[$section]['SUM']) : ceil($arAccounts[$section]['SUM']), 0);
     }
     if (empty($arAccounts)) {
         return false;
     } else {
         return $arAccounts;
     }
 }