Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?PHP
- # Скрипт генерирующий файлы автообзвона для Asterisk
- # Обзвон производить вечером после рабочего дня
- # Если завтра выходной или праздник, то автообзвон не производится
- require_once (dirname(__FILE__).'/config.php');
- require_once (dirname(__FILE__).'/lib/class_db.php');
- $fb_session = new fbsql_db(FB_HOST, FB_DB, FB_USER, FB_PASS, 'UTF8');
- $day_of_month = date('j'); // текущее число месяца
- $day_of_week = date('w'); // текущий день недели: 0 - воскресенье, 6 - суббота
- $full_date = date('Y-m-d'); // текущая дата
- $tomorrow = date('Y-m-d', mktime(0, 0, 0, date('m'), date('d')+1, date('Y'))); // завтрашняя дата
- $log_file = "gen_autodialout_files.log";
- // Если сегодня пятница или суббота, то не обзваниваем (ведь завтра не рабочий день)
- if ($day_of_week < 5) {
- // Если завтрашний день имеется в файле holiday.txt, то тоже не обзваниваем
- $holiday = file('holiday.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); // получаем содержимое файла в массив
- if (!in_array($tomorrow, $holiday)) {
- // Определяем максимальную сумму долга исходя из текущего дня месяца
- if ($day_of_month < 9) {
- $max_debt_sum = 340; // максимальная сумма долга с 1 по 8 число включительно
- }
- else {
- $max_debt_sum = 200; // максимальная сумма долга для дней с 9-го и до конца месяца
- }
- // Сделаем запрос в БД
- $sql = "select b.cc_value, a.debt_sum, a.account_no, a.cust_code, a.surname, a.initials
- from customer_contacts b inner join customer a on (a.customer_id = b.customer_id)
- where a.cust_state = 1 and
- (b.cc_notice not like '!%' or b.cc_notice is null) and
- (a.prepay = 0 or a.prepay is null) and
- b.cc_type = 0 and
- a.debt_sum > '$max_debt_sum'";
- $fbres = $fb_session->select_assoc_all($sql);
- // Очищаем директорию от старых call-файлов
- foreach (glob("/mnt/nfs/outgoing_temp/*") as $filename) {
- unlink($filename);
- }
- // Формируем строку лога
- $log_str = date("Y-m-d H:i:s").
- " - Всего телефонов для обзвона: ".count($fbres)."\n";
- file_put_contents($log_file, $log_str, FILE_APPEND | LOCK_EX);
- // Обходим массив
- foreach($fbres as $row) {
- $phone = $row['CC_VALUE'];
- // Если формат номера телефона верный, то работаем с ним
- // Наши городские телефоны пятизначные и всегда начинаются с 2-ки или 9-ки
- if (strlen($phone) == 5 and (substr($phone,0,1) == 2 or substr($phone,0,1) == 9)) {
- $arr = array(
- "Channel: Zap/g0/w".$phone."\n",
- "MaxRetries: 10\n",
- "RetryTime: 20\n",
- "WaitTime: 40\n",
- "Context: autodialout\n",
- "Extension: zadolg\n",
- "Priority: 1\n",
- "Archive: Yes\n");
- // Путь и имя формируемого файла
- $file = tempnam("/mnt/nfs/outgoing_temp", $phone."_");
- // Записываем массив в call-файл
- file_put_contents($file, $arr, LOCK_EX);
- // Формируем строку лога
- $log_str = date("Y-m-d H:i:s").
- " - Л/С: ".$row['ACCOUNT_NO'].
- ", Абонент: ".$row['SURNAME']." ".$row['INITIALS'].", ".$row['CUST_CODE'].
- ", Долг: ".round($row['DEBT_SUM'], 0).
- " руб., Тел: ".$phone."\n";
- file_put_contents($log_file, $log_str, FILE_APPEND | LOCK_EX);
- } // проверка формата номер телефона
- } // конец обхода массива
- } // проверка праздничных дней
- // else { echo "Завтра праздник".PHP_EOL; }
- } // проверка дня недели
- // else { echo "Завтра не рабочий день".PHP_EOL; }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement