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; }