Example #1
0
 /**
  * Вывод страницы по сбербанку - "Квитанция сбербанка".
  */
 public function sberAction()
 {
     front::og('tpl')->page = 'index';
     front::og('tpl')->script = '/scripts/bill2.js';
     require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/bank_payments.php';
     $fm_val = '';
     /*
      * Берем данные по предыдущему переводу, если он есть
      */
     $bp = new bank_payments();
     if ($id = __paramInit('int', null, 'id')) {
         // редактируется.
         front::og('tpl')->edit = 1;
         $bp->GetRow($id, " AND user_id = {$this->uid}");
         $fm_val = $bp->sum / EXCH_TR;
         if (!$bp->id) {
             exit;
         }
     } else {
         // если нет, новый счет.
         $bp->bank_code = __paramInit('int', null, 'bc', bank_payments::BC_SB);
         $bp->sum = __paramInit('float', null, 'Sum');
         $bp_reqv = bank_payments::GetLastReqv($bp->bank_code, $this->uid);
         $bp->fio = $bp_reqv['fio'];
         $bp->address = $bp_reqv['address'];
     }
     if (!$bp->bill_num) {
         $bp->bill_num = bank_payments::GenBillNum($bp->bank_code, $this->uid, $this->account->id);
     }
     $bank = bank_payments::GetBank($bp->bank_code);
     if ($bp->accepted_time) {
         exit;
     }
     // подтверженные счета (уже перевели деньги) нельзя изменять.
     if ($_POST['act']) {
         $bp = new bank_payments();
         $bp->fio = substr(__paramInit('string', null, 'fio'), 0, 128);
         $bp->is_gift = false;
         $bp->address = substr(__paramInit('string', null, 'address'), 0, 255);
         $bp->bank_code = __paramInit('int', null, 'bc');
         $bp->sum = __paramInit('float', null, 'sum');
         setlocale(LC_ALL, 'en_US.UTF-8');
         // гребанная бета! (это не мое)
         $bp->fm_sum = $bp->sum / EXCH_TR;
         $id = __paramInit('int', null, 'id');
         /*
          * Проверка ошибок
          */
         if (!$bp->fio) {
             $alert['fio'] = 'Поле заполнено некорректно.';
         }
         if (!$bp->address) {
             $alert['address'] = 'Поле заполнено некорректно.';
         }
         if (!$bp->sum || $bp->sum < 0.01) {
             $alert['sum'] = 'Поле заполнено некорректно.';
         }
         //if($alert) break;
         if (!$alert) {
             if ($id) {
                 $bp->bank_code = null;
                 $bp->Update($id, " AND user_id = {$this->uid} AND accepted_time IS NULL");
             } else {
                 $bp->bill_num = bank_payments::GenBillNum($bp->bank_code, $this->uid, $this->account->id);
                 $bp->user_id = $this->uid;
                 $bp->op_code = 12;
                 $id = $bp->Add($error, true);
             }
             if (!$error) {
                 header('Location: /' . $this->name_page . "/print/{$id}/");
                 exit;
             }
         }
         front::og('tpl')->alert = $alert;
     }
     front::og('tpl')->bp = $bp;
     front::og('tpl')->fm_val = $fm_val;
     front::og('tpl')->display('bill/bill_sber.tpl');
 }
require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/static_compress.php";
if (!defined('IN_SBR')) {
    // в СБР уже все есть.
    session_start();
    $uid = get_uid();
    $id = intval($_GET['id']);
    $print_mode = ${$print_mode};
}
if (!$_SESSION['login']) {
    header("Location: /fbd.php");
    exit;
}
$bp = new bank_payments();
if ($id) {
    $bp->GetRow($id, hasPermissions('bankpayments') && hasPermissions('adm') ? '' : " AND user_id = {$uid}");
}
if (!$bp->id) {
    header("Location: /404.php");
    exit;
}
if ($bp->sbr_id) {
    $sbr = new sbr_emp($bp->user_id);
    if ($sbr->initFromId($bp->sbr_id, false, false, NULL, false)) {
        $contract_num = $sbr->getContractNum();
        $sbr_nds = $sbr->getCommNds($sbr_comm);
    }
}
$bp->sum = round($bp->sum, 2);
$sum_rk = preg_split('/[.,]/', $bp->sum);
$sum_rk[1] = str_pad($sum_rk[1], 2, '0');