Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?PHP
- $debug = 0;
- if ($debug) error_reporting(E_ALL);
- require_once (dirname(__FILE__).'/config.php');
- require_once (dirname(__FILE__).'/lib/class_db.php');
- require_once (dirname(__FILE__).'/lib/str_func.php');
- require_once (dirname(__FILE__).'/lib/urfa_v8.php');
- if (!$debug) {
- try {
- $urfa_admin = new URFAClient_Admin(UTM_LOGIN, UTM_PWD, UTM_IP, UTM_PORT, UTM_SSL, true);
- }
- catch (Exception $exception) {
- echo "Error in line ", $exception->getLine();
- echo $exception->getMessage();
- exit;
- }
- }
- $db_session = new fbsql_db(FB_HOST, FB_DB, FB_USER, FB_PASS, 'UTF8');
- if (!$db_session->session) {echo "Cannot connect to Firebird. "; exit;}
- // Выберем не обработанные платежи от абонентов, у которых в лицевом присутствует суффикс INTERNET
- $fb_sql = "SELECT C.ACCOUNT_NO, C.DOGOVOR_NO, P.PAY_SUM, P.PAYMENT_ID, P.PAY_DATE, P.EXT_PAY_ID,
- P.NOTICE, P.ADDED_ON
- from PAYMENT P inner join CUSTOMER C on (C.CUSTOMER_ID = P.CUSTOMER_ID)
- where P.NEED_CHECK = 0 and C.ACCOUNT_NO like '% INTERNET'";
- if ($debug) echo "$fb_sql\n";
- $pays_array = $db_session->select_assoc_all($fb_sql);
- for($i = 0;$i<count($pays_array);$i++) {
- if ($debug) print_r($pays_array[$i]);
- $account_id = $pays_array[$i]['DOGOVOR_NO']; // номер договора в Атирре равен лицевому в UTM
- $payment = $pays_array[$i]['PAY_SUM']; // сумма платежа
- $payment_ext_number = $pays_array[$i]['EXT_PAY_ID']; // номер чека
- $payment_date = strtotime($pays_array[$i]['ADDED_ON']); // дата и время оплаты
- $pay_method = 0; // платеж наличными
- $burn_date = 0; // нет даты сгорания платежа
- $UTM_PAY_METHOD = 1; // платеж наличными
- $UTM_PAY_COMMENT=$pays_array[$i]['NOTICE']; // комментарий к платежу
- switch ($pay_method) {
- case 2: // обещанный платеж
- $burn_date = mktime(0,0,0,$mon,$day+3,$year); //дата сгорания +3 дня
- $UTM_PAY_METHOD = 7; // обещанный платеж
- $UTM_PAY_COMMENT='SMS';
- case 0: // платеж наличными 0x3110
- if ($debug)
- echo "rpcf_add_payment_for_account($account_id, $payment, $payment_date, $burn_date, $UTM_PAY_METHOD, 810, \"$UTM_PAY_COMMENT\", '', $payment_ext_number);".PHP_EOL;
- else {
- $pay_result = $urfa_admin->rpcf_add_payment_for_account($account_id, $payment, $payment_date, $burn_date, $UTM_PAY_METHOD, 810, "$UTM_PAY_COMMENT", '', $payment_ext_number);
- if ($pay_result['payment_transaction_id']) {
- if (isset($pay_result['payment_transaction_id'])) {
- $accountinfo = $urfa_admin->rpcf_get_accountinfo($account_id); //0x2030
- // Поставим признак, что платеж уже обработан
- $sql = 'update payment set need_check = 1 where PAYMENT_ID = '.$pays_array[$i]['PAYMENT_ID'];
- if ($debug) echo $sql.PHP_EOL;
- else $db_session->exec_modify_sql($sql);
- }
- }
- else {
- // Отправляем себе письмо о проблеме добавления платежа в UTM
- $pdate=$pays_array[$i]['ADDED_ON'];
- $body="По какой то досадной причине не был добавлен платеж во время синхронизации UTM и Атирра.".PHP_EOL
- ."Номер договора абонента: ".$account_id.PHP_EOL
- ."Дата и время платежа: ".$pdate.PHP_EOL
- ."Сумма: ".$payment;
- mailinform($body);
- }
- }
- break;
- case 1: // кредит
- if ($debug)
- echo "Set credit $payment ".PHP_EOL;
- else {
- $accountinfo = $urfa_admin->rpcf_get_accountinfo($account_id); //0x2030
- $accountinfo['credit']=$payment;
- $urfa_admin->rpcf_save_account($account_id,$accountinfo, 0, 0, 0); //0x2032
- }
- break;
- } // switch ($pay_method)
- } // for
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement