BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 18 апр 2024, 08:35

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
СообщениеДобавлено: 01 мар 2008, 19:56 
Не в сети

Зарегистрирован: 01 ноя 2007, 01:22
Сообщения: 18
Откуда: Липецк
Карма: 0
Скрипт делает выборку первых сессий в текущем месяце логинов контрактов входящих в группу с ид $firm[0][gid], после в зависимости от значения cid присваивает значение фирмы и группы контракту из fid и gid соответствующей фирмы.
Все не вошедшие контракты принимают значения из $firm[1].
Данные cid задаются в виде либо айпи_от-айпи_до или просто_айпи или мак через запятую. Мак со значением 00:01:23:45:67:89 в биллинге записывается как 00:1:23:45:67:89.
Скрипт можно запускать раз в сутки по крону.

Уважаемые господа биллингисты подскажите если что-то здесь неверно или некорректно.


Код:
<?
/***********************************************************************************/
/* Group sort for Bgbilling
/* ===========================
/*
/*
/* Скрипт делает выборку первых сессий в текущем месяце логинов контрактов входящих
/* в группу с ид $firm[0][gid], после в зависимости от значения cid
/* присваивает значение фирмы и группы контракту из fid и gid
/* соответствующей фирмы.
/* Все не вошедшие контракты принимают значения из $firm[1].
/* Данные cid задаются в виде либо айпи_от-айпи_до или просто_айпи или мак
/* через запятую
/***********************************************************************************/



$host="localhost";
$user="root";
$password="";
$db="bgbilling";
$log_file = "group.log";

$firm[2][name]="diller2";
$firm[2][gid]=64;
$firm[2][fid]=2;
$firm[2][cid]="10.1.1.0-10.1.1.255,10.2.0.0-10.2.255.255,10.3.1.1";

$firm[1][name]="diller1";
$firm[1][gid]=1;
$firm[1][fid]=1;


$firm[0][name]="nodiller";
$firm[0][gid]=16;


mysql_connect("$host", "$user", "$password") or die("пп╣я яп╡япЇп╦ я");
mysql_select_db("$db") or die("пп╣я яп╡япЇп╦ я п╠п╟пЇп╬п╧ пЄп╟пҐпҐяя.");
mysql_unbuffered_query("SET NAMES cp1251");

$a = mysql_query("SELECT from_number,lid,(SELECT cid FROM user_login_1 WHERE id = lid) AS cid,(SELECT title FROM `contract` WHERE id = cid) AS title
                    FROM `log_session_1_".date("Ym")."`
                    WHERE (SELECT cid FROM user_login_1 WHERE id = lid) = ANY (SELECT id FROM `contract` WHERE gr = ".$firm[0][gid].")
                    GROUP BY cid");

$fh = fopen($log_file, "aw");

while($s = mysql_fetch_assoc($a)){

    $valid_fid = valid_cid($s[from_number]);
    if($valid_fid){
        $sqlvchars_insert=mysql_query("UPDATE `contract` set gr=".$firm[$valid_fid][gid].", pfid=".$firm[$valid_fid][fid]." WHERE id=$s[cid]");
        $suc = fwrite($fh, date("Y-m-d H:i")." contract='$s[title]' firm='".$firm[$valid_fid][name]."'\n");
    } else {
        $sqlvchars_insert=mysql_query("UPDATE `contract` set gr=".$firm[1][gid].", pfid=".$firm[1][fid]." WHERE id=$s[cid]");
        $suc = fwrite($fh, date("Y-m-d H:i")." contract='$s[title]' firm='".$firm[1][name]."'\n");
    };
}

fclose($fh);


function valid_cid($from_number) {
 global $firm;

 for($j=2;$j<sizeof($firm);$j++){
    $cid = split(",", $firm[$j][cid]);
    for($i=0;$i<sizeof($cid);$i++){
        $netcid = split('-', $cid[$i]);
        if(!ip2long($netcid[0])){ if($from_number == $netcid[0]) { return $firm[$j][fid]; break;}}
        else if($netcid[1]){
            if((ip2long($from_number) >= ip2long($netcid[0])) and (ip2long($from_number) <= ip2long($netcid[1]))){
                return $firm[$j][fid]; break;
            }
        } else {
            if(ip2long($from_number) == ip2long($netcid[0])){
                return $firm[$j][fid]; break;
            }

        }
    }
 }
}

?>


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
POWERED_BY
Русская поддержка phpBB
[ Time : 0.065s | 20 Queries | GZIP : On ]