コード例 #1
0
ファイル: weather.php プロジェクト: msergeev06/mj-msergeev
 protected static function forecastMergeToTimezoneToDate($city, $toDate)
 {
     $dateHelper = new DateHelper();
     $forecastRes = ForecastTable::getList(array('filter' => array('CITY_ID' => $city['ID'], '>=DATETIME_FROM' => $toDate . ' 00:00:00', '<=DATETIME_FROM' => $toDate . ' 23:59:59')));
     //msDebug($forecastRes);
     $arTemp = $forecastRes;
     $forecastRes = array();
     foreach ($arTemp as $ar_temp) {
         $key = '';
         list($date, $time) = explode(' ', $ar_temp['DATETIME_FROM']);
         $time = explode(':', $time);
         $time[0] = intval($time[0]);
         $key .= $time[0] . '_';
         list($date, $time) = explode(' ', $ar_temp['DATETIME_TO']);
         $time = explode(':', $time);
         $time[0] = intval($time[0]);
         $key .= $time[0];
         $forecastRes[$key] = $ar_temp;
     }
     msDebug($forecastRes);
     for ($i = 0; $i < 24; $i += 6) {
         $i3 = $i + 3;
         $i6 = $i + 6;
         if ($i6 == 24) {
             $i6 = 0;
         }
         if (isset($forecastRes[$i . '_' . $i3]) && isset($forecastRes[$i3 . '_' . $i6])) {
             $forecastFirst = $forecastRes[$i . '_' . $i3];
             $forecastSecond = $forecastRes[$i3 . '_' . $i6];
         } elseif (isset($forecastRes[$i . '_' . $i3]) && !isset($forecastRes[$i3 . '_' . $i6])) {
             $forecastFirst = $forecastSecond = $forecastRes[$i . '_' . $i3];
         } elseif (!isset($forecastRes[$i . '_' . $i3]) && isset($forecastRes[$i3 . '_' . $i6])) {
             $forecastFirst = $forecastSecond = $forecastRes[$i3 . '_' . $i6];
         } else {
             $forecastFirst = $forecastSecond = false;
         }
         if ($forecastFirst) {
             /*				if ($i>=0 && $i<=9)
             				{
             					$hourFrom = '0'.$i;
             				}
             				else
             				{
             					$hourFrom = $i;
             				}
             				if ($i6>=0 && $i6<=9)
             				{
             					$hourTo = '0'.$i6;
             				}
             				else
             				{
             					$hourTo = $i6;
             				}*/
             $arUpdateInsert = array('CITY_ID' => $city['ID']);
             //SYMBOL_VAR
             if (intval($forecastFirst['SYMBOL_VAR']) > intval($forecastSecond['SYMBOL_VAR'])) {
                 $arUpdateInsert['SYMBOL_VAR'] = $forecastFirst['SYMBOL_VAR'];
             } else {
                 $arUpdateInsert['SYMBOL_VAR'] = $forecastSecond['SYMBOL_VAR'];
             }
             //WIND_DIRECTION_DEG //WIND_DIRECTION_CODE //WIND_SPEED_MPS //WIND_SPEED_NAME
             if ($forecastFirst['WIND_SPEED_MPS'] > $forecastSecond['WIND_SPEED_MPS']) {
                 $arUpdateInsert['WIND_DIRECTION_DEG'] = $forecastFirst['WIND_DIRECTION_DEG'];
                 $arUpdateInsert['WIND_DIRECTION_CODE'] = $forecastFirst['WIND_DIRECTION_CODE'];
                 $arUpdateInsert['WIND_SPEED_MPS'] = $forecastFirst['WIND_SPEED_MPS'];
                 $arUpdateInsert['WIND_SPEED_NAME'] = $forecastFirst['WIND_SPEED_NAME'];
             } else {
                 $arUpdateInsert['WIND_DIRECTION_DEG'] = $forecastSecond['WIND_DIRECTION_DEG'];
                 $arUpdateInsert['WIND_DIRECTION_CODE'] = $forecastSecond['WIND_DIRECTION_CODE'];
                 $arUpdateInsert['WIND_SPEED_MPS'] = $forecastSecond['WIND_SPEED_MPS'];
                 $arUpdateInsert['WIND_SPEED_NAME'] = $forecastSecond['WIND_SPEED_NAME'];
             }
             //TEMPERATURE_MIN
             if ($forecastFirst['TEMPERATURE_MIN'] < $forecastSecond['TEMPERATURE_MIN']) {
                 $arUpdateInsert['TEMPERATURE_MIN'] = $forecastFirst['TEMPERATURE_MIN'];
             } else {
                 $arUpdateInsert['TEMPERATURE_MIN'] = $forecastSecond['TEMPERATURE_MIN'];
             }
             //TEMPERATURE_MAX
             if ($forecastFirst['TEMPERATURE_MAX'] > $forecastSecond['TEMPERATURE_MAX']) {
                 $arUpdateInsert['TEMPERATURE_MAX'] = $forecastFirst['TEMPERATURE_MAX'];
             } else {
                 $arUpdateInsert['TEMPERATURE_MAX'] = $forecastSecond['TEMPERATURE_MAX'];
             }
             //PRESSURE_MM_VALUE
             if ($forecastFirst['PRESSURE_MM_VALUE'] > $forecastSecond['PRESSURE_MM_VALUE']) {
                 $arUpdateInsert['PRESSURE_MM_VALUE'] = $forecastFirst['PRESSURE_MM_VALUE'];
             } else {
                 $arUpdateInsert['PRESSURE_MM_VALUE'] = $forecastSecond['PRESSURE_MM_VALUE'];
             }
             //HUMIDITY_VALUE
             if ($forecastFirst['HUMIDITY_VALUE'] > $forecastSecond['HUMIDITY_VALUE']) {
                 $arUpdateInsert['HUMIDITY_VALUE'] = $forecastFirst['HUMIDITY_VALUE'];
             } else {
                 $arUpdateInsert['HUMIDITY_VALUE'] = $forecastSecond['HUMIDITY_VALUE'];
             }
             $arUpdateInsert['DATETIME_FROM'] = $toDate . ' ' . $i . ':00:00';
             if ($i6 == 0) {
                 $nextToDate = $dateHelper->strToTime($toDate);
                 $arUpdateInsert['DATETIME_TO'] = $nextToDate . ' ' . $i6 . ':00:00';
             } else {
                 $arUpdateInsert['DATETIME_TO'] = $toDate . ' ' . $i6 . ':00:00';
             }
             $checkIsset = TimezoneTable::getList(array('select' => array('ID'), 'filter' => array('CITY_ID' => $city['ID'], 'DATETIME_FROM' => $arUpdateInsert['DATETIME_FROM'], 'DATETIME_TO' => $arUpdateInsert['DATETIME_TO'])));
             if ($checkIsset) {
                 //Update
                 unset($arUpdateInsert['DATETIME_FROM']);
                 unset($arUpdateInsert['DATETIME_TO']);
                 $query = new Query('update');
                 $query->setUpdateParams($arUpdateInsert, $checkIsset[0]['ID'], TimezoneTable::getTableName(), TimezoneTable::getMapArray());
                 $query->exec();
             } else {
                 //Insert
                 $query = new Query('insert');
                 $query->setInsertParams($arUpdateInsert, TimezoneTable::getTableName(), TimezoneTable::getMapArray());
                 $query->exec();
             }
             //msDebug($arUpdateInsert);
         }
     }
 }
コード例 #2
0
ファイル: accounts.php プロジェクト: msergeev06/mj-msergeev
 protected static function addAccount($arData)
 {
     msDebug($arData);
     $arAccount = $arData['ACCOUNT'];
     $query = new Entity\Query('insert');
     $query->setInsertParams($arAccount, Tables\AccountsTable::getTableName(), Tables\AccountsTable::getMapArray());
     $res = $query->exec();
     $accountID = $res->getInsertId();
     if ($accountID) {
         if ($arAccount['ACCOUNT_TYPE_ID'] == static::$a_debet_card || $arAccount['ACCOUNT_TYPE_ID'] == static::$a_deposit || $arAccount['ACCOUNT_TYPE_ID'] == static::$a_bank || $arAccount['ACCOUNT_TYPE_ID'] == static::$a_credit_card || $arAccount['ACCOUNT_TYPE_ID'] == static::$a_credit) {
             $arBank = $arData['BANK'];
             $arBank['ACCOUNT_ID'] = $accountID;
             $query = new Entity\Query('insert');
             $query->setInsertParams($arBank, Tables\AccountBankTable::getTableName(), Tables\AccountBankTable::getMapArray());
             $res = $query->exec();
             $bankID = $res->getInsertId();
             if (!$bankID) {
                 static::deleteAccount($accountID, true);
                 return false;
             }
         } elseif ($arAccount['ACCOUNT_TYPE_ID'] == static::$a_emoney) {
             $arEMoney = $arData['EMONEY'];
             $arEMoney['ACCOUNT_ID'] = $accountID;
             $query = new Entity\Query('insert');
             $query->setInsertParams($arEMoney, Tables\AccountEmoneyTable::getTableName(), Tables\AccountEmoneyTable::getMapArray());
             $res = $query->exec();
             $emoneyID = $res->getInsertId();
             if (!$emoneyID) {
                 static::deleteAccount($accountID, true);
                 return false;
             }
         } elseif ($arAccount['ACCOUNT_TYPE_ID'] == static::$a_mne || $arAccount['ACCOUNT_TYPE_ID'] == static::$a_i) {
             $arDebts = $arData['DEBT'];
             $arDebts['ACCOUNT_ID'] = $accountID;
             $query = new Entity\Query('insert');
             $query->setInsertParams($arDebts, Tables\AccountDebtsTable::getTableName(), Tables\AccountDebtsTable::getMapArray());
             $res = $query->exec();
             $debtsID = $res->getInsertId();
             if (!$debtsID) {
                 static::deleteAccount($accountID, true);
                 return false;
             }
         } elseif ($arAccount['ACCOUNT_TYPE_ID'] == static::$a_estate) {
             $arEstate = $arData['ESTATE'];
             $arEstate['ACCOUNT_ID'] = $accountID;
             $query = new Entity\Query('insert');
             $query->setInsertParams($arEstate, Tables\AccountRealEstateTable::getTableName(), Tables\AccountRealEstateTable::getMapArray());
             $res = $query->exec();
             $estateID = $res->getInsertId();
             if (!$estateID) {
                 static::deleteAccount($accountID, true);
                 return false;
             }
         } elseif ($arAccount['ACCOUNT_TYPE_ID'] == static::$a_car) {
             $arCar = $arData['CAR'];
             $arCar['ACCOUNT_ID'] = $accountID;
             $query = new Entity\Query('insert');
             $query->setInsertParams($arCar, Tables\AccountCarTable::getTableName(), Tables\AccountCarTable::getMapArray());
             $res = $query->exec();
             $carID = $res->getInsertId();
             if (!$carID) {
                 static::deleteAccount($accountID, true);
                 return false;
             }
         }
         return true;
     } else {
         return false;
     }
 }