Если судить по БД, то как правило, все бессрочные даты кончаются на 2000000000 в unixtime. (это 18.05.2033 03:33:20). Предлагаю, чтобы не путаться, в дальнейшем, в скрипте php-urfa-client использовать именно эту величину в качестве max_time().
Можно даже внедрить ее в основную часть.
Функции date("U") и time() в php, по всей видимости, являются полными аналогами функции now() в API.
Согласен, тогда в socket.php пишем
Код: Выделить всё
function now() {
return time();
}
function max_time() {
return 2000000000;
}
тогда rpcf_save_account бедет выглядеть так: если block_start_date и block_end_date будут -1, то передадутся значения по умолчанию.
Массив $account общий для rpcf_save_account, rpcf_get_accountinfo, rpcf_add_account
Код: Выделить всё
function rpcf_save_account($account_id,$account, $block_start_date, $block_end_date, $block_recalc_abon, $block_recalc_prepaid, $unlimited ,$discount_period_id) { //0x2032
if (!urfa_call(0x2032)) {
print "Error calling function ". __FUNCTION__ ."\n";
return FALSE;
}
if ($block_start_date == -1)
$block_start_date = now();
if ($block_end_date == -1)
$block_end_date = max_time();
$packet = new Packet();
$packet->DataSetInt($account_id);
$packet->DataSetInt($discount_period_id);
$packet->DataSetDouble($account['credit']);
$packet->DataSetInt($account['is_blocked']);
if ($account['is_blocked']!=0) {
$packet->DataSetInt($block_start_date);
$packet->DataSetInt($block_end_date);
}
$packet->DataSetInt($account['dealer_account_id']);
$packet->DataSetDouble($account['vat_rate']);
$packet->DataSetDouble($account['sale_tax_rate']);
$packet->DataSetInt($account['int_status']);
$packet->DataSetInt($block_recalc_abon);
$packet->DataSetInt($block_recalc_prepaid);
$packet->DataSetInt($unlimited);
urfa_send_param($packet);
urfa_get_data();
}