default: return ERROR | @Trigger_Error(101); } #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- if (!$ISPswScheme['IsActive']) { return new gException('SCHEME_NOT_ACTIVE', 'Выбранный тарифный план заказа ПО ISPsystem не активен'); } #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- # проверяем IP адрес который нам воткнули, если это внешний заказ if (!$ISPswScheme['IsInternal']) { #------------------------------------------------------------------------------- $ISPswInfo = array('IP' => $IP, 'pricelist_id' => $ISPswScheme['pricelist_id'], 'period' => $ISPswScheme['period']); #------------------------------------------------------------------------------- if (!BillManager_Check_ISPsystem_IP($ServerSettings, $ISPswInfo)) { return new gException('ISPsw_IP_ADDRESS_IN_USE', SPrintF('Для указанного IP адреса [%s] уже есть лицензия такого типа. За более подробной информацией, обратитесь в службу поддержки пользователей', $IP)); } #------------------------------------------------------------------------------- } #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- # проверка - есть ли заказ от этого пользователя на этот IP if ($ISPswScheme['IsInternal']) { #------------------------------------------------------------------------------- $Where = array('`StatusID` != "Deleted"', SPrintF('`IP` = "%s"', $IP), SPrintF('`UserID` = %u', $Contract['UserID']), SPrintF('(SELECT `SoftWareGroup` FROM `ISPswSchemes` WHERE `ISPswOrdersOwners`.`SchemeID` = `ISPswSchemes`.`ID`) = %u', $ISPswScheme['SoftWareGroup'])); #------------------------------------------------------------------------------- $Count = DB_Count('ISPswOrdersOwners', array('Where' => $Where)); if (Is_Error($Count)) { return ERROR | @Trigger_Error(500); }
#------------------------------------------------------------------------------- # помечаем старую лицензию как свободную $IsUpdate = DB_Update('ISPswLicenses', array('IsUsed' => 'no', 'IsInternal' => 'yes', 'Flag' => ''), array('ID' => $LicenseID)); #------------------------------------------------------------------------------- if (Is_Error($IsUpdate)) { return ERROR | @Trigger_Error(500); } #------------------------------------------------------------------------------- } #------------------------------------------------------------------------------- } #------------------------------------------------------------------------------- } else { #------------------------------------------------------------------------------- # если лицензия внешняя, проверяем новый IP, и меняем адресок if (!BillManager_Check_ISPsystem_IP($Settings, $ISPswScheme)) { if (!$remoteip) { return new gException('ISPsw_IP_ADDRESS_IN_USE', SPrintF('Для указанного IP адреса [%s] уже есть лицензия такого типа. За более подробной информацией, обратитесь в службу поддержки пользователей', $IP)); } } #------------------------------------------------------------------------------- $ISPswScheme['elid'] = $ISPswLicense['elid']; #------------------------------------------------------------------------------- $IsCreate = BillManager_Change_IP($Settings, $ISPswScheme); #------------------------------------------------------------------------------- } #------------------------------------------------------------------------------- switch (ValueOf($IsCreate)) { case 'error': return ERROR | @Trigger_Error(500); case 'exception':