Пример #1
0
function RuCenter_Check_Task($Settings, $TicketID)
{
    /****************************************************************************/
    $__args_types = array('array', 'string');
    #-----------------------------------------------------------------------------
    $__args__ = Func_Get_Args();
    eval(FUNCTION_INIT);
    /****************************************************************************/
    $HTTP = array('Address' => $Settings['Address'], 'Port' => $Settings['Port'], 'Host' => $Settings['Address'], 'Protocol' => $Settings['Protocol'], 'Charset' => 'KOI8-R', 'IsLogging' => $Settings['Params']['IsLogging']);
    #-----------------------------------------------------------------------------
    $Query = array();
    #-----------------------------------------------------------------------------
    $RequestID = UniqID('ID');
    #-----------------------------------------------------------------------------
    $Query[] = 'lang: ru';
    $Query[] = SPrintF('login: %s', $Settings['Login']);
    $Query[] = SPrintF('password: %s', $Settings['Password']);
    $Query[] = 'request: order';
    $Query[] = 'operation: get';
    $Query[] = SPrintF('request-id: %s', $RequestID);
    #-----------------------------------------------------------------------------
    $Query[] = '';
    #-----------------------------------------------------------------------------
    $Query[] = '[order]';
    $Query[] = SPrintF('order_id: %s', $TicketID);
    #-----------------------------------------------------------------------------
    $Result = HTTP_Send('/dns/dealer', $HTTP, array(), array('SimpleRequest' => Implode("\n", $Query)));
    if (Is_Error($Result)) {
        return ERROR | @Trigger_Error('[RuCenter_Check_Task]: не удалось выполнить запрос к серверу');
    }
    #-----------------------------------------------------------------------------
    if (Preg_Match('/HTTP\\/1.0\\s502/i', $Result['Heads'])) {
        return false;
    }
    #-----------------------------------------------------------------------------
    $Result = Trim($Result['Body']);
    #-----------------------------------------------------------------------------
    if (Preg_Match('/State:\\s([0-9]+)\\s/', $Result, $CodeID)) {
        #---------------------------------------------------------------------------
        $CodeID = Next($CodeID);
        #---------------------------------------------------------------------------
        switch ($CodeID) {
            case '200':
                #-----------------------------------------------------------------------
                if (Preg_Match_All('/state:(waiting|failed|running|completed|deleted)/', $Result, $Matches)) {
                    #---------------------------------------------------------------------
                    $Matches = Next($Matches);
                    #---------------------------------------------------------------------
                    switch (End($Matches)) {
                        case 'waiting':
                            return FALSE;
                        case 'running':
                            return FALSE;
                        case 'completed':
                            return array('DomainID' => 0);
                        case 'failed':
                            return new gException('OPERATION_FAILED', 'Произошла ошибка');
                        case 'deleted':
                            return new gException('ORDER_DELETED', 'Заказ отозван клиентом (партнером)');
                        default:
                            return new gException('WRONG_ERROR', 'Неизвестный статус заказа');
                    }
                }
                break;
            case '500':
                return FALSE;
            default:
                return new gException('WRONG_ERROR', SPrintF('Неизвестный статус ошибки (%s)', $Result));
        }
    }
    #-----------------------------------------------------------------------------
    return new gException('WRONG_ANSWER', $Result);
}
Пример #2
0
                 case 'array':
                     #---------------------------------------------------------
                     if ($ServiceField['TypeID'] != 'Select') {
                         continue;
                     }
                     #---------------------------------------------------------
                     $Options = Explode("\n", $ServiceField['Options']);
                     #---------------------------------------------------------
                     if (Count($Options)) {
                         #-------------------------------------------------------
                         foreach ($Options as $Option) {
                             #-----------------------------------------------------
                             $Option = Explode("=", $Option);
                             #-----------------------------------------------------
                             if (Current($Option) == $Value) {
                                 $Cost += (double) End($Option);
                             }
                         }
                     }
                     break;
                 default:
                     return ERROR | @Trigger_Error(101);
             }
         }
         break;
     default:
         return ERROR | @Trigger_Error(101);
 }
 #-------------------------------------------------------------------
 $CostPay = $Cost * $AmountPay;
 #-------------------------------------------------------------------
Пример #3
0
 $PatchesIDs = IO_Scan($Folder);
 if (Is_Error($PatchesIDs)) {
     return ERROR | @Trigger_Error(500);
 }
 #-------------------------------------------------------------------------------
 if (!Count($PatchesIDs)) {
     continue;
 }
 #-------------------------------------------------------------------------------
 Sort($PatchesIDs);
 #-------------------------------------------------------------------------------
 $File = SPrintF('%s/hosts/%s/.LastPatchFiles', SYSTEM_PATH, $HostID);
 #-------------------------------------------------------------------------------
 if (!File_Exists($File)) {
     #-------------------------------------------------------------------------------
     $LastPatchFiles = IntVal(End($PatchesIDs));
     #-------------------------------------------------------------------------------
     $IsWrite = IO_Write($File, (string) $LastPatchFiles, TRUE);
     if (Is_Error($IsWrite)) {
         return ERROR | @Trigger_Error(500);
     }
     #-------------------------------------------------------------------------------
 } else {
     #-------------------------------------------------------------------------------
     $LastPatchFiles = IO_Read($File);
     if (Is_Error($LastPatchFiles)) {
         return ERROR | @Trigger_Error(500);
     }
     #-------------------------------------------------------------------------------
     $LastPatchFiles = IntVal($LastPatchFiles);
     #-------------------------------------------------------------------------------
Пример #4
0
 $VPSOrders = DB_Select(array('Orders', 'VPSOrders'), array('OrderID', 'COUNT(*) as `Count`', 'GET_QUARTER_FROM_TIMESTAMP(`OrderDate`) as `Quarter`', 'OrderDate', 'YEAR(FROM_UNIXTIME(`OrderDate`)) as Year'), array('Where' => '`VPSOrders`.`OrderID` = `Orders`.`ID` AND ' . $Where, 'GroupBy' => array('Quarter', 'Year'), 'SortOn' => 'OrderDate'));
 #-----------------------------------------------------------------------------
 switch (ValueOf($VPSOrders)) {
     case 'error':
         return ERROR | @Trigger_Error(500);
     case 'exception':
         # No more...
         break;
     case 'array':
         #--------------------------------------------------------------------------
         $Table = array(array(new Tag('TD', array('class' => 'Head'), 'Квартал'), new Tag('TD', array('class' => 'Head'), 'Кол-во')));
         #-------------------------------------------------------------------------
         $Order = Current($VPSOrders);
         $sQuarter = $Order['Quarter'] + $Order['Year'] * 4;
         #-------------------------------------------------------------------------
         $Order = End($VPSOrders);
         $eQuarter = $Order['Quarter'] + $Order['Year'] * 4;
         #-------------------------------------------------------------------------
         $Quarters = array();
         #-------------------------------------------------------------------------
         foreach ($VPSOrders as $Order) {
             $Quarters[$Order['Quarter'] + $Order['Year'] * 4] = $Order;
         }
         #-------------------------------------------------------------------------
         $Labels = $Line = array();
         #-------------------------------------------------------------------------
         $CurrentYear = 0;
         #-------------------------------------------------------------------------
         for ($Quarter = $sQuarter; $Quarter <= $eQuarter; $Quarter++) {
             #-----------------------------------------------------------------------
             $Order = isset($Quarters[$Quarter]) ? $Quarters[$Quarter] : array('Quarter' => $Quarter - (int) ($Quarter / 4) * 4, 'Year' => (int) ($Quarter / 4), 'Count' => 0, 'OrderID' => '-');
Пример #5
0
 $ExtraIPOrders = DB_Select(array('Orders', 'ExtraIPOrders'), array('OrderID', 'COUNT(*) as `Count`', 'GET_QUARTER_FROM_TIMESTAMP(`OrderDate`) as `Quarter`', 'OrderDate', 'YEAR(FROM_UNIXTIME(`OrderDate`)) as Year'), array('Where' => '`ExtraIPOrders`.`OrderID` = `Orders`.`ID` AND ' . $Where, 'GroupBy' => array('Quarter', 'Year'), 'SortOn' => 'OrderDate'));
 #-----------------------------------------------------------------------------
 switch (ValueOf($ExtraIPOrders)) {
     case 'error':
         return ERROR | @Trigger_Error(500);
     case 'exception':
         # No more...
         break;
     case 'array':
         #--------------------------------------------------------------------------
         $Table = array(array(new Tag('TD', array('class' => 'Head'), 'Квартал'), new Tag('TD', array('class' => 'Head'), 'Кол-во')));
         #-------------------------------------------------------------------------
         $Order = Current($ExtraIPOrders);
         $sQuarter = $Order['Quarter'] + $Order['Year'] * 4;
         #-------------------------------------------------------------------------
         $Order = End($ExtraIPOrders);
         $eQuarter = $Order['Quarter'] + $Order['Year'] * 4;
         #-------------------------------------------------------------------------
         $Quarters = array();
         #-------------------------------------------------------------------------
         foreach ($ExtraIPOrders as $Order) {
             $Quarters[$Order['Quarter'] + $Order['Year'] * 4] = $Order;
         }
         #-------------------------------------------------------------------------
         $Labels = $Line = array();
         #-------------------------------------------------------------------------
         $CurrentYear = 0;
         #-------------------------------------------------------------------------
         for ($Quarter = $sQuarter; $Quarter <= $eQuarter; $Quarter++) {
             #-----------------------------------------------------------------------
             $Order = isset($Quarters[$Quarter]) ? $Quarters[$Quarter] : array('Quarter' => $Quarter - (int) ($Quarter / 4) * 4, 'Year' => (int) ($Quarter / 4), 'Count' => 0, 'OrderID' => '-');
Пример #6
0
function MasterName_Contract_Register($Settings, $PepsonID, $Person, $DomainZone)
{
    /****************************************************************************/
    $__args_types = array('array', 'string', 'array', 'string');
    #-----------------------------------------------------------------------------
    $__args__ = Func_Get_Args();
    eval(FUNCTION_INIT);
    /****************************************************************************/
    $HTTP = array('Address' => $Settings['Address'], 'Port' => $Settings['Port'], 'Host' => $Settings['Address'], 'Protocol' => $Settings['Protocol'], 'Charset' => 'CP1251', 'IsLogging' => $Settings['Params']['IsLogging']);
    #-----------------------------------------------------------------------------
    $Query = array();
    #-----------------------------------------------------------------------------
    $Query[] = '[request]';
    $Query[] = SPrintF('login: %s', $Settings['Login']);
    $Query[] = SPrintF('password: %s', $Settings['Password']);
    $Query[] = 'action: create_client';
    #-----------------------------------------------------------------------------
    $RequestID = UniqID('ID');
    #-----------------------------------------------------------------------------
    $Query[] = SPrintF('request-id: %s', $RequestID);
    #-----------------------------------------------------------------------------
    $Query[] = '';
    #-----------------------------------------------------------------------------
    switch ($PepsonID) {
        case 'Natural':
            #-------------------------------------------------------------------------
            $Query[] = '[client]';
            #-------------------------------------------------------------------------
            $Query[] = 'client-type: ФИЗЛИЦО';
            $Query[] = $Person['PasportCountry'] != 'RU' ? 'non-resident:' : 'resident:';
            #-------------------------------------------------------------------------
            $Query[] = SPrintF('person-r: %s %s %s', $Person['Sourname'], $Person['Name'], $Person['Lastname']);
            $Query[] = SPrintF('person: %s %s %s', Translit($Person['Name']), Mb_SubStr(Translit($Person['Lastname']), 0, 1), Translit($Person['Sourname']));
            $Query[] = SPrintF('email: %s', $Person['Email']);
            #-------------------------------------------------------------------------
            $Phone = $Person['Phone'];
            #-------------------------------------------------------------------------
            $Query[] = SPrintF('phone: %s', $Phone);
            #-------------------------------------------------------------------------
            $Fax = $Person['Fax'];
            #-------------------------------------------------------------------------
            $Query[] = SPrintF('fax: %s', $Fax ? $Fax : $Phone);
            #-------------------------------------------------------------------------
            $BornDate = Explode('.', $Person['BornDate']);
            #-------------------------------------------------------------------------
            $Query[] = SPrintF('birth-date: %s-%s-%s', End($BornDate), Prev($BornDate), Prev($BornDate));
            #-------------------------------------------------------------------------
            $PasportLine = Preg_Split('/^([0-9]{2})/', $Person['PasportLine'], -1, PREG_SPLIT_DELIM_CAPTURE);
            #-------------------------------------------------------------------------
            $Query[] = SPrintF('passport-series: %s %s', Next($PasportLine), Next($PasportLine));
            $Query[] = SPrintF('passport-number: %s', $Person['PasportNum']);
            #-------------------------------------------------------------------------
            $PasportDate = Explode('.', $Person['PasportDate']);
            #-------------------------------------------------------------------------
            $Query[] = SPrintF('passport-date: %s-%s-%s', End($PasportDate), Prev($PasportDate), Prev($PasportDate));
            $Query[] = SPrintF('passport-org: %s', $Person['PasportWhom']);
            #-------------------------------------------------------------------------
            $Query[] = SPrintF('post-country: %s', $Person['pCountry']);
            $Query[] = SPrintF('post-region: %s', $Person['pState']);
            $Query[] = SPrintF('post-zip-code: %s', $Person['pIndex']);
            $Query[] = SPrintF('post-city: %s', $Person['pCity']);
            $Query[] = SPrintF('post-street: %s %s, %s', $Person['pType'], $Person['pAddress'], $Person['pRecipient']);
            #-------------------------------------------------------------------------
            $Query[] = SPrintF('reg-country: %s', $Person['pCountry']);
            $Query[] = SPrintF('reg-region: %s', $Person['pState']);
            $Query[] = SPrintF('reg-city: %s', $Person['pCity']);
            $Query[] = SPrintF('reg-street: %s %s', $Person['pType'], $Person['pAddress']);
            break;
        case 'Juridical':
            #-------------------------------------------------------------------------
            $Query[] = '[client]';
            #-------------------------------------------------------------------------
            $Query[] = 'client-type: ЮРЛИЦО';
            $Query[] = 'resident:';
            #-------------------------------------------------------------------------
            $Query[] = SPrintF('ownership: %s', $Person['CompanyFormFull']);
            $Query[] = SPrintF('org-r: %s', $Person['CompanyName']);
            #-------------------------------------------------------------------------
            $Query[] = SPrintF('org: %s %s', Translit($Person['CompanyName']), Translit($Person['CompanyFormFull']));
            $Query[] = SPrintF('email: %s', $Person['Email']);
            #-------------------------------------------------------------------------
            $Phone = $Person['Phone'];
            #-------------------------------------------------------------------------
            $Query[] = SPrintF('phone: %s', $Phone);
            #-------------------------------------------------------------------------
            $Fax = $Person['Fax'];
            #-------------------------------------------------------------------------
            $Query[] = SPrintF('fax: %s', $Fax ? $Fax : $Phone);
            $Query[] = SPrintF('contact: %s %s %s', $Person['dSourname'], $Person['dName'], $Person['dLastname']);
            $Query[] = SPrintF('inn: %s', $Person['Inn']);
            $Query[] = SPrintF('kpp: %s', $Person['Kpp']);
            #-------------------------------------------------------------------------
            $Query[] = SPrintF('post-country: %s', $Person['pCountry']);
            $Query[] = SPrintF('post-zip-code: %s', $Person['pIndex']);
            $Query[] = SPrintF('post-region: %s', $Person['pState']);
            $Query[] = SPrintF('post-city: %s', $Person['pCity']);
            $Query[] = SPrintF('post-street: %s %s, %s "%s"', $Person['pType'], $Person['pAddress'], $Person['CompanyFormFull'], $Person['CompanyName']);
            #-------------------------------------------------------------------------
            $Query[] = SPrintF('jur-country: %s', $Person['jCountry']);
            $Query[] = SPrintF('jur-zip-code: %s', $Person['jIndex']);
            $Query[] = SPrintF('jur-region: %s', $Person['jState']);
            $Query[] = SPrintF('jur-city: %s', $Person['jCity']);
            $Query[] = SPrintF('jur-street: %s %s', $Person['jType'], $Person['jAddress']);
            #-------------------------------------------------------------------------
            $Query[] = SPrintF('real-country: %s', $Person['jCountry']);
            $Query[] = SPrintF('real-zip-code: %s', $Person['jIndex']);
            $Query[] = SPrintF('real-region: %s', $Person['jState']);
            $Query[] = SPrintF('real-city: %s', $Person['jCity']);
            $Query[] = SPrintF('real-street: %s %s', $Person['pType'], $Person['jAddress']);
            break;
        default:
            return new gException('WRONG_PROFILE_ID', 'Неверный идентификатор профиля');
    }
    #-----------------------------------------------------------------------------
    $Query = array('request' => Implode("\n", $Query));
    #-----------------------------------------------------------------------------
    $Result = HTTP_Send('/partner_gateway', $HTTP, array(), $Query);
    if (Is_Error($Result)) {
        return ERROR | @Trigger_Error('[MasterName_Contract_Register]:не удалось выполнить запрос к серверу');
    }
    #-----------------------------------------------------------------------------
    $Result = Trim($Result['Body']);
    #-----------------------------------------------------------------------------
    if (Preg_Match('/status:\\s([0-9]+)\\s/', $Result, $CodeID)) {
        #---------------------------------------------------------------------------
        $CodeID = Next($CodeID);
        #---------------------------------------------------------------------------
        switch ($CodeID) {
            case '200':
                # No more...
            # No more...
            case '201':
                # No more...
            # No more...
            case '202':
                return array('TicketID' => $RequestID);
            case '203':
                return new gException('REQUEST_FAILED', 'Обработка запроса завершилась с ошибкой');
            case '400':
                return new gException('BAD_REQUEST', 'Неверный формат запроса');
            case '401':
                return new gException('AUTH_ERROR', 'Ошибка авторизации');
            case '402':
                return new gException('DATA_ERROR', 'Ошибка в данных запроса');
            case '403':
                return new gException('FORBIDDEN', 'Доступ к запрашиваемому объекту запрещен');
            case '404':
                return new gException('NOT_FOUND', 'Запрашиваемый объект не найден');
            case '405':
                return new gException('INVALID_REQUEST', 'Невозможно выполнить запрос');
            case '500':
                return new gException('SERVER_ERROR', 'Внутренняя ошибка сервера');
            default:
                return new gException('WRONG_ERROR', 'Неизвестный статус ошибки');
        }
    }
    #-----------------------------------------------------------------------------
    return new gException('WRONG_ANSWER', $Result);
}
Пример #7
0
 $ISPswOrders = DB_Select(array('Orders', 'ISPswOrders'), array('OrderID', 'COUNT(*) as `Count`', 'GET_QUARTER_FROM_TIMESTAMP(`OrderDate`) as `Quarter`', 'OrderDate', 'YEAR(FROM_UNIXTIME(`OrderDate`)) as Year'), array('Where' => '`ISPswOrders`.`OrderID` = `Orders`.`ID` AND ' . $Where, 'GroupBy' => array('Quarter', 'Year'), 'SortOn' => 'OrderDate'));
 #-----------------------------------------------------------------------------
 switch (ValueOf($ISPswOrders)) {
     case 'error':
         return ERROR | @Trigger_Error(500);
     case 'exception':
         # No more...
         break;
     case 'array':
         #--------------------------------------------------------------------------
         $Table = array(array(new Tag('TD', array('class' => 'Head'), 'Квартал'), new Tag('TD', array('class' => 'Head'), 'Кол-во')));
         #-------------------------------------------------------------------------
         $Order = Current($ISPswOrders);
         $sQuarter = $Order['Quarter'] + $Order['Year'] * 4;
         #-------------------------------------------------------------------------
         $Order = End($ISPswOrders);
         $eQuarter = $Order['Quarter'] + $Order['Year'] * 4;
         #-------------------------------------------------------------------------
         $Quarters = array();
         #-------------------------------------------------------------------------
         foreach ($ISPswOrders as $Order) {
             $Quarters[$Order['Quarter'] + $Order['Year'] * 4] = $Order;
         }
         #-------------------------------------------------------------------------
         $Labels = $Line = array();
         #-------------------------------------------------------------------------
         $CurrentYear = 0;
         #-------------------------------------------------------------------------
         for ($Quarter = $sQuarter; $Quarter <= $eQuarter; $Quarter++) {
             #-----------------------------------------------------------------------
             $Order = isset($Quarters[$Quarter]) ? $Quarters[$Quarter] : array('Quarter' => $Quarter - (int) ($Quarter / 4) * 4, 'Year' => (int) ($Quarter / 4), 'Count' => 0, 'OrderID' => '-');
Пример #8
0
 $HostingOrders = DB_Select(array('Orders', 'HostingOrders'), array('OrderID', 'COUNT(*) as `Count`', 'GET_QUARTER_FROM_TIMESTAMP(`OrderDate`) as `Quarter`', 'OrderDate', 'YEAR(FROM_UNIXTIME(`OrderDate`)) as Year'), array('Where' => '`HostingOrders`.`OrderID` = `Orders`.`ID` AND ' . $Where, 'GroupBy' => array('Quarter', 'Year'), 'SortOn' => 'OrderDate'));
 #-----------------------------------------------------------------------------
 switch (ValueOf($HostingOrders)) {
     case 'error':
         return ERROR | @Trigger_Error(500);
     case 'exception':
         # No more...
         break;
     case 'array':
         #--------------------------------------------------------------------------
         $Table = array(array(new Tag('TD', array('class' => 'Head'), 'Квартал'), new Tag('TD', array('class' => 'Head'), 'Кол-во')));
         #-------------------------------------------------------------------------
         $Order = Current($HostingOrders);
         $sQuarter = $Order['Quarter'] + $Order['Year'] * 4;
         #-------------------------------------------------------------------------
         $Order = End($HostingOrders);
         $eQuarter = $Order['Quarter'] + $Order['Year'] * 4;
         #-------------------------------------------------------------------------
         $Quarters = array();
         #-------------------------------------------------------------------------
         foreach ($HostingOrders as $Order) {
             $Quarters[$Order['Quarter'] + $Order['Year'] * 4] = $Order;
         }
         #-------------------------------------------------------------------------
         $Labels = $Line = array();
         #-------------------------------------------------------------------------
         $CurrentYear = 0;
         #-------------------------------------------------------------------------
         for ($Quarter = $sQuarter; $Quarter <= $eQuarter; $Quarter++) {
             #-----------------------------------------------------------------------
             $Order = isset($Quarters[$Quarter]) ? $Quarters[$Quarter] : array('Quarter' => $Quarter - (int) ($Quarter / 4) * 4, 'Year' => (int) ($Quarter / 4), 'Count' => 0, 'OrderID' => '-');