コード例 #1
0
ファイル: pskb.php プロジェクト: uadev/fl-ru-damp
 public function checkPsys($psys, $form_type = null, $set_vars = false)
 {
     $_disabled = $_hidden = null;
     $form_type = $form_type ? $form_type : $this->__reqvs['form_type'];
     if (!$form_type) {
         return self::PSYS_ERR_BOTH;
     }
     $reqvs = $this->__reqvs[$form_type];
     if (!$reqvs['mob_phone']) {
         $_disabled = $psys;
     }
     if ($form_type == sbr::FT_PHYS && !$reqvs['fio']) {
         $_disabled = $psys;
     }
     switch ($psys) {
         case onlinedengi::BANK_YL:
             if ($form_type == sbr::FT_JURI) {
                 if ((!$reqvs['full_name'] || !$reqvs['bank_rs'] || !$reqvs['bank_bik'] || !$reqvs['inn'] || !$reqvs['address_jry']) && $this->_rez_type == sbr::RT_RU) {
                     $_disabled = $psys;
                 }
                 // Для нерезидентов должна быть другая проверка реквизитов
                 if ($this->_rez_type == sbr::RT_UABYKZ) {
                     $_req = pskb::getRequiredFieldsForType(pskb::$reqvs_fields_rez, onlinedengi::BANK_YL, sbr::FT_JURI);
                     if ($_req) {
                         foreach ($reqvs as $name_field => $value) {
                             if ($_req[$name_field] && $value == '') {
                                 $_disabled = $psys;
                                 break;
                                 // OR
                             }
                         }
                     }
                 }
             } else {
                 if ($this->_is_emp) {
                     $_hidden = $psys;
                 }
                 if ((!$reqvs['fio'] || !$reqvs['bank_rs'] || !$reqvs['bank_bik']) && $this->_rez_type == sbr::RT_RU) {
                     $_disabled = $psys;
                 }
                 // Для нерезидентов должна быть другая проверка реквизитов
                 if ($this->_rez_type == sbr::RT_UABYKZ) {
                     $_req = pskb::getRequiredFieldsForType(pskb::$reqvs_fields_rez, onlinedengi::BANK_YL, sbr::FT_PHYS);
                     if ($_req) {
                         foreach ($reqvs as $name_field => $value) {
                             if ($_req[$name_field] && $value == '') {
                                 $_disabled = $psys;
                                 break;
                                 // OR
                             }
                         }
                     }
                 }
             }
             break;
         case onlinedengi::CARD:
             if ($form_type == sbr::FT_JURI) {
                 $_hidden = $psys;
             }
             break;
         case onlinedengi::WMR:
             if (!$reqvs['el_wmr']) {
                 $_disabled = $psys;
             }
             if ($form_type == sbr::FT_JURI) {
                 $_hidden = $psys;
             }
             break;
         case onlinedengi::YD:
             if (!$reqvs['el_yd']) {
                 $_disabled = $psys;
             }
             if ($form_type == sbr::FT_JURI || $this->_sum > pskb::MAX_YD_SUM && !$this->_is_emp) {
                 $_hidden = $psys;
             }
             break;
         case pskb::WW:
             if ($form_type == sbr::FT_JURI) {
                 $_hidden = $psys;
             }
             break;
         default:
             return false;
     }
     if ($this->_sum && $form_type == sbr::FT_PHYS && $this->_sum <= pskb::WW_ONLY_SUM && $psys != pskb::WW && !$this->_is_emp) {
         $_disabled = $psys;
         $_hidden = $psys;
     }
     // Доп проверка (Пример срабатывания: может быть 3 этапа по 10к то есть любая выплата по этапу идет на Веб-кошелек)
     // Сама проверка _only_ww - осуществляется снаружи класса через $sbr->stages
     if ($this->_only_ww && $psys != pskb::WW && !$this->_is_emp && $form_type == sbr::FT_PHYS) {
         $_disabled = $psys;
         $_hidden = $psys;
     }
     $_disabled = $_disabled ? self::PSYS_ERR_DISABLED : 0;
     $_hidden = $_hidden ? self::PSYS_ERR_HIDDEN : 0;
     $res = intval($_disabled) + intval($_hidden);
     $rez_type = intval($this->__reqvs['rez_type']) == sbr::RT_RU || intval($this->__reqvs['rez_type']) == 0 ? 0 : 1;
     if ($set_vars && !$res) {
         $this->tag = 0;
         $this->alien = $rez_type;
         $this->num = $reqvs['mob_phone'];
         $this->email = $this->_user->email;
         // E-mail в системе
         $this->name = $reqvs['fio'];
         $this->ps = $psys;
         if ($psys == onlinedengi::BANK_YL) {
             $this->ps = $reqvs['bank_bik'];
             $this->acc = $reqvs['bank_rs'];
             $this->inn = $reqvs['inn'];
             if ($rez_type == 1) {
                 $this->inn = $reqvs['rnn'];
                 $this->ps = $reqvs['bank_rf_bik'];
                 $this->nameBank = $reqvs['bank_name'];
                 $this->cityBank = $reqvs['bank_city'];
                 $this->cntrBank = $reqvs['bank_country'];
                 $this->swift = $reqvs['bank_swift'];
                 $this->corAccbank = $reqvs['bank_ks'];
             }
         }
         if ($form_type == sbr::FT_JURI) {
             $this->tag = 1;
             $this->name = $reqvs['full_name'];
         }
         if ($psys == onlinedengi::WMR) {
             $this->acc = $reqvs['el_wmr'];
         }
         if ($psys == onlinedengi::YD) {
             $this->acc = $reqvs['el_yd'];
         }
         if ($psys == pskb::WW) {
             $this->acc = $reqvs['mob_phone'];
         }
         if ($psys == onlinedengi::CARD) {
             $this->ps = pskb::CARD;
         }
         if ($psys == onlinedengi::WMR) {
             $this->ps = pskb::WMR;
         }
     }
     return $res;
 }