urfaclient на php

Вопросы по сопутствующим продуктам производства партнеров
Ответить
Pulse
Сообщения: 945
Зарегистрирован: Вт окт 03, 2006 12:58

Сообщение Pulse »

Wishmaster писал(а):Народ, если не затруднит, может кто подскажет, как с помошью урфа РАЗБЛОКИРОВАТЬ абонента..

функция rpcf_block_account($account_id,$block); //0x2037

блокирует, но попытки указать $block = 0 или null не увенчались успехом, абонент по-прежнему остается заблокированным.

в api.xml не нашел функции для разблокировки, соответственно, остается один вариант :

rpcf_get_accountinfo //0x2030 + rpcf_save_account //0x2032

впрочем, в его работоспособности я не уверен, если кто сталкивался, может подскажет, как ПРАВИЛЬНО разблокировать абонента..
оригинальным клиентом rpcf_save_account работает, проверено

Аватара пользователя
ds
Сообщения: 380
Зарегистрирован: Пн сен 18, 2006 14:06

Сообщение ds »

rpcf_get_ipzone и
rpcf_get_ipgroup

Обе функции выдают ip-зону, т.е. делают одно и тоже (005). Фича?

И как ее (зону) удалить из биллинга?

Wishmaster
Сообщения: 309
Зарегистрирован: Сб апр 16, 2005 11:44

Сообщение Wishmaster »

Внесу свою небольшую лепту.

Код: Выделить всё

function rpcf_add_user($user_id=0,$login,$password,$full_name,$is_juridical=0,$jur_address,$act_address,$flat_number,$entrance,$floor,$district,$building,$passport,$house_id,$work_tel,$home_tel,$mob_tel,$web_page,$icq_number,$tax_number,$kpp_number,$email,$bank_id=0,$bank_account,$comments,$personal_manager,$connect_date=0,$is_send_invoice=0,$advance_payment=0,$parameters) { //0x2005
    $ret=array();
    if (!urfa_call(0x2005)) {
        print "Error calling function ". __FUNCTION__ ."\n";
        return FALSE;
    }
    $packet = new Packet();
    $packet->DataSetInt($user_id);
    $packet->DataSetString($login);
    $packet->DataSetString($password);
    $packet->DataSetstring($full_name);
        if ($user_id == 0){
            if ( ! $unused){
                $unused = 0;
            }
            $packet->DataSetInt($unused);
        }
    $packet->DataSetInt($is_juridical);
    $packet->DataSetString($jur_address);
    $packet->DataSetString($act_address);
    $packet->DataSetString($flat_number);
    $packet->DataSetString($entrance);
    $packet->DataSetString($floor);
    $packet->DataSetString($district);
    $packet->DataSetString($building);
    $packet->DataSetString($passport);
    $packet->DataSetInt($house_id);
    $packet->DataSetString($work_tel);
    $packet->DataSetString($home_tel);
    $packet->DataSetString($mob_tel);
    $packet->DataSetString($web_page);
    $packet->DataSetString($icq_number);
    $packet->DataSetString($tax_number);
    $packet->DataSetString($kpp_number);
    $packet->DataSetString($email);
    $packet->DataSetInt($bank_id);
    $packet->DataSetString($bank_account);
    $packet->DataSetString($comments);
    $packet->DataSetString($personal_manager);
    $packet->DataSetInt($connect_date);
    $packet->DataSetInt($is_send_invoice);
    $packet->DataSetInt($advance_payment);
    $packet->DataSetInt(count($parameters));
    foreach ($parameters as $array_item){
        $packet->DataSetInt($array_item['id']);
        $packet->DataSetString($array_item['value']);
    }
    urfa_send_param($packet);
        if($x = urfa_get_data()){
        $z_user_id = $x->DataGetInt();
        $error_msg = $x->DataGetString();
        $ret[user_id]=$z_user_id;
        $ret[error_msg]=$error_msg;
        }
    urfa_get_data();
    return $ret;
}

Здесь есть маленькая загвостка, функция при отработке выдает ошибку:

Код: Выделить всё

Warning: unpack(): Type N: not enough input, need 4, have 0 in /usr/home/master/uu/urfaclient/socket.php on line 128
и по каким-то причинам не сохраняет параметры пользователя, хотя в функцию они передаются нормально и foreach отрабатывается нормально. Буду признателен, если кто-нибудь подскажет, в чем может быть причина.

Код: Выделить всё

function rpcf_add_account($user_id,$is_basic=1,$is_blocked=0,$account_name='auto create account',$balance='0',$credit='0',$discount_period_id=0,$dealer_account_id=0,$dealer_coefficient=0,$default_comission_value=0,$is_dealer=0,$vat_rate=0,$sale_tax_rate=0,$int_status=1) { //0x2031
    $ret=array();
    if (!urfa_call(0x2031)) {
        print "Error calling function ". __FUNCTION__ ."\n";
        return FALSE;
    }
    $packet = new Packet();
    $packet->DataSetInt($user_id);
    $packet->DataSetInt($is_basic);
    $packet->DataSetInt($is_blocked);
    $packet->DataSetString($account_name);
    $packet->DataSetInt($balance);
    $packet->DataSetInt($credit);
    $packet->DataSetInt($discount_period_id);
    $packet->DataSetInt($dealer_account_id);
    $packet->DataSetInt($comission_coefficient);
    $packet->DataSetInt($default_comission_value);
    $packet->DataSetInt($is_dealer);
    $packet->DataSetInt($vat_rate);
    $packet->DataSetInt($sale_tax_rate);
    $packet->DataSetInt($int_status);
    urfa_send_param($packet);
    if ($x = urfa_get_data()){
        $ret[account_id]=$x->DataGetInt();
        if($ret[account_id]==0){
        return -1;
        }
    }
    urfa_get_data();
    return $ret;
}

Здесь тоже есть одна особенность, после создания аккаунта, параметры credit, НДС, НСП во вновь созданном аккаунте почему-то равны "8.289046E-317", хотя везде стоят нули. Если после этого выполнить функцию rpcf_save_account , то все становится нормально. (т.е. 0)

Код: Выделить всё

function rpcf_remove_account($account_id) { //0x2034
    $ret=array();
    if (!urfa_call(0x2034)) {
        print "Error calling function ". __FUNCTION__ ."\n";
        return FALSE;
    }
    $packet = new Packet();
    $packet->DataSetInt($account_id);
    urfa_send_param($packet);
    if ( $x=urfa_get_data()){
        $ret=$x->DataGetInt();
    }
    urfa_get_data();
    return $ret;
}

--------------------

Код: Выделить всё

function rpcf_save_account($account_id,$discount_period_id='0',$credit,$is_blocked,$block_start_date,$block_end_date='2000000000',$dealer_account_id,$vat_rate,$sale_tax_rate,$int_status,$block_recalc_abon,$block_recalc_prepaid,$unlimited) { //0x2032
    $ret=array();
    if (!urfa_call(0x2032)) {
        print "Error calling function ". __FUNCTION__ ."\n";
        return FALSE;
    }
    $packet = new Packet();
    $packet->DataSetInt($account_id);
    $packet->DataSetInt($discount_period_id);
    $packet->DataSetInt($credit);
    $packet->DataSetInt($is_blocked);
        if&#40;$is_blocked <> 0&#41; &#123;
            if &#40; ! $block_start_date&#41; &#123;
                $block_start_date=date&#40;"U"&#41;;
            &#125;
            $packet->DataSetInt&#40;$block_start_date&#41;;
            $packet->DataSetInt&#40;$block_end_date&#41;;
        &#125;
    $packet->DataSetInt&#40;$dealer_account_id&#41;;
    $packet->DataSetInt&#40;$vat_rate&#41;;
    $packet->DataSetInt&#40;$sale_tax_rate&#41;;
    $packet->DataSetInt&#40;$int_status&#41;;
    $packet->DataSetInt&#40;$block_recalc_abon&#41;;
    $packet->DataSetInt&#40;$block_recalc_prepaid&#41;;
    $packet->DataSetInt&#40;$unlimited&#41;;
    urfa_send_param&#40;$packet&#41;;
&#125;



2 ds :

Есть ли смысл ввести дополнительный метод DataSetDouble ? Или DataSetInt достаточно? Как вы считаете?

и еще, в вашем дистрибе есть маленький баг, в функции:

Код: Выделить всё

function rpcf_get_userinfo&#40;$user_id&#41; &#123; //0x2006
    $ret=array&#40;&#41;;
    if &#40;!urfa_call&#40;0x2006&#41;&#41; &#123;
        print "Error calling function ". __FUNCTION__ ."\n";
        return FALSE;
    &#125;

...............

        $ret&#91;'parameters_count'&#93;=$x->DataGetInt&#40;&#41;;
        for &#40;$i=0; $i < $ret&#91;'parameters_size'&#93;; $i++ &#41; &#123;
            $parameters&#91;'id'&#93;=$x->DataGetInt&#40;&#41;;
            $parameters&#91;'value'&#93;=$x->DataGetString&#40;&#41;;
            $ret&#91;'parameters'&#93;&#91;&#93;=$parameters;
        &#125;

................
Здесь 'parameters_size' надо заменить на 'parameters_count', иначе не отображаются дополнительные параметры пользователя.

------------

В остальном, очень и очень признателен за создание такой полезной утилиты!
Последний раз редактировалось Wishmaster Сб дек 27, 2008 04:18, всего редактировалось 2 раза.

Wishmaster
Сообщения: 309
Зарегистрирован: Сб апр 16, 2005 11:44

Сообщение Wishmaster »

Pulse писал(а):
Wishmaster писал(а):Народ, если не затруднит, может кто подскажет, как с помошью урфа РАЗБЛОКИРОВАТЬ абонента..

функция rpcf_block_account($account_id,$block); //0x2037

блокирует, но попытки указать $block = 0 или null не увенчались успехом, абонент по-прежнему остается заблокированным.

в api.xml не нашел функции для разблокировки, соответственно, остается один вариант :

rpcf_get_accountinfo //0x2030 + rpcf_save_account //0x2032

впрочем, в его работоспособности я не уверен, если кто сталкивался, может подскажет, как ПРАВИЛЬНО разблокировать абонента..
оригинальным клиентом rpcf_save_account работает, проверено
Да, спасибо вам! Я уже реализовал эти функции и добился нужного результата.

Аватара пользователя
ds
Сообщения: 380
Зарегистрирован: Пн сен 18, 2006 14:06

Сообщение ds »

Есть ли смысл ввести дополнительный метод DataSetDouble ? Или DataSetInt достаточно? Как вы считаете?
Нет, это в принципе разные типы и передаются по разному. DataSetDouble уже сделал, завтра выложу.

За баг спасибо, не заметил сразу.

rpcf_add_user и rpcf_add_account надо поразбираться. Тоже завтра.

Cramac
Сообщения: 454
Зарегистрирован: Сб июл 01, 2006 17:59

Сообщение Cramac »

Спасибо за клиент, очень поможет в добавлении функционала в свою админку без урфаклиента...

Аватара пользователя
ds
Сообщения: 380
Зарегистрирован: Пн сен 18, 2006 14:06

Сообщение ds »

Вот DataSetDouble

Код: Выделить всё

    function DataSetDouble&#40;$param&#41; &#123;
         $this->data&#91;&#93;=strrev&#40;pack&#40;"d",$param&#41;&#41;;
         $this->len += 12;
    &#125;
А это мой вариант rpcf_add_account. В отличие от варанта Wishmaster, добавил совместимость с rpcf_get_accountinfo, по массиву $account.

Код: Выделить всё

function rpcf_add_account&#40;$account,$user_id,$is_basic=1,$account_name='auto create account',$discount_period_id=0&#41; &#123; //0x2031
    if &#40;!urfa_call&#40;0x2031&#41;&#41; &#123;
        print "Error calling function ". __FUNCTION__ ."\n";
        return FALSE;
    &#125;
    if &#40;!isset&#40;$account&#91;'int_status'&#93;&#41;&#41;
        $account&#91;'int_status'&#93;=1;

    $packet = new Packet&#40;&#41;;
    $packet->DataSetInt&#40;$user_id&#41;;
    $packet->DataSetInt&#40;$is_basic&#41;;
    $packet->DataSetInt&#40;$account&#91;'is_blocked'&#93;&#41;;
    $packet->DataSetString&#40;$account_name&#41;;
    $packet->DataSetDouble&#40;$account&#91;'balance'&#93;&#41;;
    $packet->DataSetDouble&#40;$account&#91;'credit'&#93;&#41;;
    $packet->DataSetInt&#40;$discount_period_id&#41;;
    $packet->DataSetInt&#40;$account&#91;'dealer_account_id'&#93;&#41;;
    $packet->DataSetDouble&#40;$account&#91;'comission_coefficient'&#93;&#41;;
    $packet->DataSetDouble&#40;$account&#91;'default_comission_value'&#93;&#41;;
    $packet->DataSetInt&#40;$account&#91;'is_dealer'&#93;&#41;;
    $packet->DataSetDouble&#40;$account&#91;'vat_rate'&#93;&#41;;
    $packet->DataSetDouble&#40;$account&#91;'sale_tax_rate'&#93;&#41;;
    $packet->DataSetInt&#40;$account&#91;'int_status'&#93;&#41;;
    urfa_send_param&#40;$packet&#41;;
    if &#40;$x = urfa_get_data&#40;&#41;&#41; &#123;
        $ret=$x->DataGetInt&#40;&#41;;
        urfa_get_data&#40;&#41;;
    &#125;
    return $ret;
&#125;
Выкладываю только те функции, только котрые тестил.

Kayfolom
Сообщения: 746
Зарегистрирован: Вс фев 12, 2006 17:15

Сообщение Kayfolom »

ds, огромное человеческое спасибо!!!
Буду переводить свой UTMtray ( viewtopic.php?t=5713&highlight= ) с костыльного личного кабинета на вашу разработку.

И прошу опубликовать ваш WMZ для donate, ибо такой проект грех не поддержать :)

Аватара пользователя
ds
Сообщения: 380
Зарегистрирован: Пн сен 18, 2006 14:06

Сообщение ds »

И прошу опубликовать ваш WMZ для donate, ибо такой проект грех не поддержать
Z308890389280 или 4100179178764 Яндекс-деньги

Буду признателен :)

Kayfolom
Сообщения: 746
Зарегистрирован: Вс фев 12, 2006 17:15

Сообщение Kayfolom »

ds писал(а):
И прошу опубликовать ваш WMZ для donate, ибо такой проект грех не поддержать
Z308890389280 или 4100179178764 Яндекс-деньги

Буду признателен :)
Готово. Не много, но на ящик отечественного пива хватить должно ;)

Kayfolom
Сообщения: 746
Зарегистрирован: Вс фев 12, 2006 17:15

Сообщение Kayfolom »

Кто нибудь, опубликуйте api.xml, поиск не помог, в моем дистр. его нет, а методом тыка тяжело осваивать урфу.

Еще вопрос, не работает rpcf_add_to_ipgroup, в дебаге Internal error.
Это ведь функция добавления связки IP&MAC пользователю, или я ошибаюсь.
Также не нашел как узнать кол-во предоплаченного трафика, или эта функция еще не реализована?

Kayfolom
Сообщения: 746
Зарегистрирован: Вс фев 12, 2006 17:15

Сообщение Kayfolom »

Прошу прощения за тупость, /netup/utm5/xml/api.xml есть, видимо мозг после праздников еще не отошел ;)

Аватара пользователя
ds
Сообщения: 380
Зарегистрирован: Пн сен 18, 2006 14:06

Сообщение ds »

Еще вопрос, не работает rpcf_add_to_ipgroup, в дебаге Internal error.
Это ведь функция добавления связки IP&MAC пользователю, или я ошибаюсь.
Не к пользователю, а к ip-группе, т.е. id указывать надо ip-группы. Проверил, работает.

Также не нашел как узнать кол-во предоплаченного трафика, или эта функция еще не реализована?
Это она?

Код: Выделить всё

function rpcf_get_prepaid_units&#40;$slink_id&#41; &#123; //0x5500
    $ret=array&#40;&#41;;
    if &#40;!urfa_call&#40;0x5500&#41;&#41; &#123;
        print "Error calling function ". __FUNCTION__ ."\n";
        return FALSE;
    &#125;
    $packet = new Packet&#40;&#41;;
    $packet->DataSetInt&#40;$slink_id&#41;;
    urfa_send_param&#40;$packet&#41;;

    $x = urfa_get_data&#40;&#41;;
    $ret&#91;'bytes_in_mbyte'&#93; = $x->DataGetInt&#40;&#41;;
    $x = urfa_get_data&#40;&#41;;
    $ret&#91;'pinfo_size'&#93; = $x->DataGetInt&#40;&#41;;
    for&#40;$i=0;$i<$ret&#91;'pinfo_size'&#93;;$i++&#41; &#123;
       $x = urfa_get_data&#40;&#41;;
       $pinfo&#91;'id'&#93; = $x->DataGetInt&#40;&#41;;
       $pinfo&#91;'old'&#93; = $x->DataGetLong&#40;&#41;;
       $pinfo&#91;'cur'&#93; = $x->DataGetLong&#40;&#41;;
       $ret&#91;&#93;=$pinfo;
    &#125;
    urfa_get_data&#40;&#41;;

    return $ret;
&#125;
За перевод спасибо :)

Аватара пользователя
ds
Сообщения: 380
Зарегистрирован: Пн сен 18, 2006 14:06

Сообщение ds »

Можете подсказать что означает max_time() например в rpcf_save_account :
<integer name="block_end_date" default="max_time()"/>


Добавил rpcf_add_user. $user и $param массив можно использовать из ф-ции rpcf_get_userinfo

Код: Выделить всё

function rpcf_add_user&#40;$user,$parameters&#41; &#123; //0x2005
    $ret=array&#40;&#41;;
    if &#40;!urfa_call&#40;0x2005&#41;&#41; &#123;
        print "Error calling function ". __FUNCTION__ ."\n";
        return FALSE;
    &#125;
    $packet = new Packet&#40;&#41;;
    $packet->DataSetInt&#40;$user&#91;'user_id'&#93;&#41;;
    $packet->DataSetString&#40;$user&#91;'login'&#93;&#41;;
    $packet->DataSetString&#40;$user&#91;'password'&#93;&#41;;
    $packet->DataSetstring&#40;$user&#91;'full_name'&#93;&#41;;
    if &#40;$user&#91;'user_id'&#93; == 0&#41;&#123;
            $unused = 0;
            $packet->DataSetInt&#40;$unused&#41;;
    &#125;
    $packet->DataSetInt&#40;$user&#91;'is_juridical'&#93;&#41;;
    $packet->DataSetString&#40;$user&#91;'jur_address'&#93;&#41;;
    $packet->DataSetString&#40;$user&#91;'act_address'&#93;&#41;;
    $packet->DataSetString&#40;$user&#91;'flat_number'&#93;&#41;;
    $packet->DataSetString&#40;$user&#91;'entrance'&#93;&#41;;
    $packet->DataSetString&#40;$user&#91;'floor'&#93;&#41;;
    $packet->DataSetString&#40;$user&#91;'district'&#93;&#41;;
    $packet->DataSetString&#40;$user&#91;'building'&#93;&#41;;
    $packet->DataSetString&#40;$user&#91;'passport'&#93;&#41;;
    $packet->DataSetInt&#40;$user&#91;'house_id'&#93;&#41;;
    $packet->DataSetString&#40;$user&#91;'work_tel'&#93;&#41;;
    $packet->DataSetString&#40;$user&#91;'home_tel'&#93;&#41;;
    $packet->DataSetString&#40;$user&#91;'mob_tel'&#93;&#41;;
    $packet->DataSetString&#40;$user&#91;'web_page'&#93;&#41;;
    $packet->DataSetString&#40;$user&#91;'icq_number'&#93;&#41;;
    $packet->DataSetString&#40;$user&#91;'tax_number'&#93;&#41;;
    $packet->DataSetString&#40;$user&#91;'kpp_number'&#93;&#41;;
    $packet->DataSetString&#40;$user&#91;'email'&#93;&#41;;
    $packet->DataSetInt&#40;$user&#91;'bank_id'&#93;&#41;;
    $packet->DataSetString&#40;$user&#91;'bank_account'&#93;&#41;;
    $packet->DataSetString&#40;$user&#91;'comments'&#93;&#41;;
    $packet->DataSetString&#40;$user&#91;'personal_manager'&#93;&#41;;
    $packet->DataSetInt&#40;$user&#91;'connect_date'&#93;&#41;;
    $packet->DataSetInt&#40;$user&#91;'is_send_invoice'&#93;&#41;;
    $packet->DataSetInt&#40;$user&#91;'advance_payment'&#93;&#41;;
    $packet->DataSetInt&#40;count&#40;$parameters&#41;&#41;;
    foreach &#40;$parameters as $array_item&#41;&#123;
        $packet->DataSetInt&#40;$array_item&#91;'id'&#93;&#41;;
        $packet->DataSetString&#40;$array_item&#91;'value'&#93;&#41;;
    &#125;
    urfa_send_param&#40;$packet&#41;;
    $ret&#91;'user_id'&#93;=0;
        if&#40;$x = urfa_get_data&#40;&#41;&#41;&#123;
          $z_user_id = $x->DataGetInt&#40;&#41;;
          $error_msg = $x->DataGetString&#40;&#41;;
          $ret&#91;'user_id'&#93;=$z_user_id;
          $ret&#91;'error_msg'&#93;=$error_msg;
          urfa_get_data&#40;&#41;;
        &#125;
    return $ret;
&#125;
И соответственно немного изменил rpcf_get_userinfo, для удобства разделил массивы user, accounts и parameters

Код: Выделить всё

function rpcf_get_userinfo&#40;$user_id&#41; &#123; //0x2006
    $ret=array&#40;&#41;;
    if &#40;!urfa_call&#40;0x2006&#41;&#41; &#123;
       print "Error calling function ". __FUNCTION__ ."\n";
       return FALSE;
    &#125;
    $packet = new Packet&#40;&#41;;
    $packet->DataSetInt&#40;$user_id&#41;;
    urfa_send_param&#40;$packet&#41;;
    $x = urfa_get_data&#40;&#41;;
    $user = $x->DataGetInt&#40;&#41;;
    if &#40;$user!=0&#41; &#123;
      $ret&#91;'user'&#93;&#91;'user_id'&#93;= $user;
      $accounts_count = $x->DataGetInt&#40;&#41;;
      $ret&#91;'accounts_count'&#93;= $accounts_count;
      for&#40;$i=0;$i<$accounts_count;$i++&#41; &#123;
        $accounts&#91;'id'&#93;=$x->DataGetInt&#40;&#41;;
        $accounts&#91;'name'&#93;=$x->DataGetString&#40;&#41;;
        $ret&#91;'accounts'&#93;&#91;&#93;=$accounts;
      &#125;
      $ret&#91;'user'&#93;&#91;'login'&#93;=$x->DataGetString&#40;&#41;;
      $ret&#91;'user'&#93;&#91;'password'&#93;=$x->DataGetString&#40;&#41;;
      $ret&#91;'basic_account'&#93;=$x->DataGetInt&#40;&#41;;
      $ret&#91;'user'&#93;&#91;'full_name'&#93;=$x->DataGetString&#40;&#41;;
      $ret&#91;'user'&#93;&#91;'create_date'&#93;=$x->DataGetInt&#40;&#41;;
      $ret&#91;'user'&#93;&#91;'last_change_date'&#93;=$x->DataGetInt&#40;&#41;;
      $ret&#91;'user'&#93;&#91;'who_create'&#93;=$x->DataGetInt&#40;&#41;;
      $ret&#91;'user'&#93;&#91;'who_change'&#93;=$x->DataGetInt&#40;&#41;;
      $ret&#91;'user'&#93;&#91;'is_juridical'&#93;=$x->DataGetInt&#40;&#41;;
      $ret&#91;'user'&#93;&#91;'jur_address'&#93;=$x->DataGetString&#40;&#41;;
      $ret&#91;'user'&#93;&#91;'act_address'&#93;=$x->DataGetString&#40;&#41;;
      $ret&#91;'user'&#93;&#91;'work_tel'&#93;=$x->DataGetString&#40;&#41;;
      $ret&#91;'user'&#93;&#91;'home_tel'&#93;=$x->DataGetString&#40;&#41;;
      $ret&#91;'user'&#93;&#91;'mob_tel'&#93;=$x->DataGetString&#40;&#41;;
      $ret&#91;'user'&#93;&#91;'web_page'&#93;=$x->DataGetString&#40;&#41;;
      $ret&#91;'user'&#93;&#91;'icq_number'&#93;=$x->DataGetString&#40;&#41;;
      $ret&#91;'user'&#93;&#91;'tax_number'&#93;=$x->DataGetString&#40;&#41;;
      $ret&#91;'user'&#93;&#91;'kpp_number'&#93;=$x->DataGetString&#40;&#41;;
      $ret&#91;'user'&#93;&#91;'bank_id'&#93;=$x->DataGetInt&#40;&#41;;
      $ret&#91;'user'&#93;&#91;'bank_account'&#93;=$x->DataGetString&#40;&#41;;
      $ret&#91;'user'&#93;&#91;'comments'&#93;=$x->DataGetString&#40;&#41;;
      $ret&#91;'user'&#93;&#91;'personal_manager'&#93;=$x->DataGetString&#40;&#41;;
      $ret&#91;'user'&#93;&#91;'connect_date'&#93;=$x->DataGetInt&#40;&#41;;
      $ret&#91;'user'&#93;&#91;'email'&#93;=$x->DataGetString&#40;&#41;;
      $ret&#91;'user'&#93;&#91;'is_send_invoice'&#93;=$x->DataGetInt&#40;&#41;;
      $ret&#91;'user'&#93;&#91;'advance_payment'&#93;=$x->DataGetInt&#40;&#41;;
      $ret&#91;'user'&#93;&#91;'house_id'&#93;=$x->DataGetInt&#40;&#41;;
      $ret&#91;'user'&#93;&#91;'flat_number'&#93;=$x->DataGetString&#40;&#41;;
      $ret&#91;'user'&#93;&#91;'entrance'&#93;=$x->DataGetString&#40;&#41;;
      $ret&#91;'user'&#93;&#91;'floor'&#93;=$x->DataGetString&#40;&#41;;
      $ret&#91;'user'&#93;&#91;'district'&#93;=$x->DataGetString&#40;&#41;;
      $ret&#91;'user'&#93;&#91;'building'&#93;=$x->DataGetString&#40;&#41;;
      $ret&#91;'user'&#93;&#91;'passport'&#93;=$x->DataGetString&#40;&#41;;
      $ret&#91;'parameters_count'&#93;=$x->DataGetInt&#40;&#41;;
      for &#40;$i=0; $i < $ret&#91;'parameters_count'&#93;; $i++ &#41; &#123;
        $parameters&#91;'id'&#93;=$x->DataGetInt&#40;&#41;;
        $parameters&#91;'value'&#93;=$x->DataGetString&#40;&#41;;
        $ret&#91;'parameters'&#93;&#91;&#93;=$parameters;
     &#125;
   &#125;
    urfa_get_data&#40;&#41;;
    return $ret;
&#125;
Последний раз редактировалось ds Сб янв 10, 2009 20:38, всего редактировалось 1 раз.

Аватара пользователя
Magnum72
Сообщения: 1947
Зарегистрирован: Чт сен 22, 2005 06:54
Контактная информация:

Сообщение Magnum72 »

ds писал(а):Можете подсказать что означает max_time() например в rpcf_save_account :
<integer name="block_end_date" default="max_time()"/>
Означает максимально возможное с точки зрения биллинга время 2037 год вообщем :)
Конкретно в этом случае означает:
выставить дату завершения блокировки (если не указано явно) в дофига

есть аналогичная переменная в апи now() = текущее время.

Ответить