Advertisement
apog

utm_add_payments.php

Dec 23rd, 2014
230
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 4.43 KB | None | 0 0
  1. <?PHP
  2.   $debug = 0;
  3.  
  4.   if ($debug) error_reporting(E_ALL);
  5.  
  6.   require_once (dirname(__FILE__).'/config.php');
  7.   require_once (dirname(__FILE__).'/lib/class_db.php');
  8.   require_once (dirname(__FILE__).'/lib/str_func.php');
  9.   require_once (dirname(__FILE__).'/lib/urfa_v8.php');
  10.  
  11.   if (!$debug) {
  12.     try {
  13.       $urfa_admin = new URFAClient_Admin(UTM_LOGIN, UTM_PWD, UTM_IP, UTM_PORT, UTM_SSL, true);
  14.     }
  15.     catch (Exception $exception) {
  16.       echo "Error in line ", $exception->getLine();
  17.       echo $exception->getMessage();
  18.       exit;
  19.     }
  20.   }
  21.  
  22.   $db_session = new fbsql_db(FB_HOST, FB_DB, FB_USER, FB_PASS, 'UTF8');
  23.   if (!$db_session->session) {echo "Cannot connect to Firebird. "; exit;}
  24.   // Выберем не обработанные платежи от абонентов, у которых в лицевом присутствует суффикс INTERNET
  25.   $fb_sql = "SELECT C.ACCOUNT_NO, C.DOGOVOR_NO, P.PAY_SUM, P.PAYMENT_ID, P.PAY_DATE, P.EXT_PAY_ID,
  26.              P.NOTICE, P.ADDED_ON
  27.              from PAYMENT P inner join CUSTOMER C on (C.CUSTOMER_ID = P.CUSTOMER_ID)
  28.              where P.NEED_CHECK = 0 and C.ACCOUNT_NO like '% INTERNET'";
  29.   if ($debug) echo "$fb_sql\n";
  30.   $pays_array = $db_session->select_assoc_all($fb_sql);
  31.  
  32.   for($i = 0;$i<count($pays_array);$i++) {
  33.     if ($debug) print_r($pays_array[$i]);
  34.     $account_id = $pays_array[$i]['DOGOVOR_NO']; // номер договора в Атирре равен лицевому в UTM
  35.     $payment    = $pays_array[$i]['PAY_SUM']; // сумма платежа
  36.     $payment_ext_number = $pays_array[$i]['EXT_PAY_ID']; // номер чека
  37.     $payment_date   = strtotime($pays_array[$i]['ADDED_ON']); // дата и время оплаты
  38.  
  39.     $pay_method = 0; // платеж наличными
  40.  
  41.     $burn_date      = 0; // нет даты сгорания платежа
  42.     $UTM_PAY_METHOD = 1; // платеж наличными
  43.     $UTM_PAY_COMMENT=$pays_array[$i]['NOTICE']; // комментарий к платежу
  44.     switch ($pay_method) {
  45.       case 2: // обещанный платеж
  46.               $burn_date = mktime(0,0,0,$mon,$day+3,$year); //дата сгорания +3 дня
  47.               $UTM_PAY_METHOD = 7; // обещанный платеж
  48.               $UTM_PAY_COMMENT='SMS';
  49.       case 0: // платеж наличными 0x3110
  50.               if ($debug)
  51.                   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;
  52.               else {
  53.                 $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);
  54.                 if ($pay_result['payment_transaction_id']) {
  55.                   if (isset($pay_result['payment_transaction_id'])) {
  56.                     $accountinfo = $urfa_admin->rpcf_get_accountinfo($account_id);  //0x2030
  57.             // Поставим признак, что платеж уже обработан
  58.             $sql = 'update payment set need_check = 1 where PAYMENT_ID = '.$pays_array[$i]['PAYMENT_ID'];
  59.             if ($debug) echo $sql.PHP_EOL;
  60.             else $db_session->exec_modify_sql($sql);
  61.                   }
  62.                 }
  63.                 else {
  64.                   // Отправляем себе письмо о проблеме добавления платежа в UTM
  65.                   $pdate=$pays_array[$i]['ADDED_ON'];
  66.                   $body="По какой то досадной причине не был добавлен платеж во время синхронизации UTM и Атирра.".PHP_EOL
  67.                   ."Номер договора абонента: ".$account_id.PHP_EOL
  68.                   ."Дата и время платежа:    ".$pdate.PHP_EOL
  69.                   ."Сумма:                   ".$payment;
  70.                   mailinform($body);
  71.                 }
  72.               }
  73.               break;
  74.       case 1: // кредит
  75.             if ($debug)
  76.               echo "Set credit $payment ".PHP_EOL;
  77.             else {
  78.               $accountinfo = $urfa_admin->rpcf_get_accountinfo($account_id);  //0x2030
  79.               $accountinfo['credit']=$payment;
  80.               $urfa_admin->rpcf_save_account($account_id,$accountinfo, 0, 0, 0);  //0x2032
  81.             }
  82.             break;
  83.     } // switch ($pay_method)
  84.   } // for
  85. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement