$reqv_1[$k] = $sbr->user_reqvs[1][$k]; } } $reqv_2 = array(); foreach ($reqvs_fields as $k => $v) { if (!array_key_exists($k, $sbr->user_reqvs[2])) { continue; } if (in_array('all', $v[2]) || in_array(sbr::FT_JURI, $v[2])) { $reqv_2[$k] = $sbr->user_reqvs[2][$k]; } } ?> <?php if (!sbr_meta::$reqv_fields) { sbr_meta::getReqvFields(); } ?> <?php foreach ($reqv_1 as $f_name => $f_value) { ?> <?php if (!isset($reqvs_fields[$f_name])) { continue; } $example = sbr_meta::$reqv_fields[1][$f_name]['example']; $maxlength = $sbr->user_reqvs['rez_type'] == 2 && $f_name == 'bank_rs' ? 25 : sbr_meta::$reqv_fields[1][$f_name]['maxlength']; $disabled = false; /*if($_SESSION['is_verify'] == 't' && in_array($f_name, array('fio', 'birthday', 'idcard_name', 'idcard', 'idcard_from', 'idcard_to', 'idcard_by', 'mob_phone'))) { $disabled = true; }*/
/** * Проверяет указаны ли все реквизиты необходимые для выплаты в данной валюте. * И можно ли использовать данную валюту для выплаты. * * @param int $ex_code код валюты * @return bool true - указаны и можно, иначе false */ function checkPayoutReqvs($ex_code) { if (!$this->checkPayoutSys($ex_code)) { return false; } switch ($ex_code) { case exrates::FM: return true; break; case exrates::WMR: $bool = (bool) $this->sbr->user_reqvs[sbr::FT_PHYS]['el_wmr'] && (bool) $this->sbr->user_reqvs[sbr::FT_PHYS]['el_doc_series'] && (bool) $this->sbr->user_reqvs[sbr::FT_PHYS]['el_doc_number'] && (bool) $this->sbr->user_reqvs[sbr::FT_PHYS]['el_doc_from']; return $bool; break; case exrates::YM: $bool = (bool) $this->sbr->user_reqvs[sbr::FT_PHYS]['el_yd']; return $bool; break; case exrates::BANK: sbr_meta::getReqvFields(); if (!($ft = $this->sbr->user_reqvs['form_type'])) { $ft = sbr::FT_PHYS; } $rt = $this->sbr->user_reqvs['rez_type']; $rq = $this->sbr->user_reqvs[$this->sbr->user_reqvs['form_type']]; foreach (sbr_meta::$reqv_fields[$ft] as $key => $field) { if ($field['grp'] != 'BANK' || !$field['rez_required']) { continue; } if ($field['rez_required'] & $rt && !$rq[$key]) { return false; } } break; default: return false; } return true; }
/** * Печатает форму для заполнения реквизитов для резервирования по безналу. * * @param int $stage_id ид. этапа, в котором нужно вывести форму. * @param int $form_type текущий тип лица юзера (1:юр. лицо, 2:физ. лицо). * @param int $reqv_mode откуда предпочтительнее взять реквиизты (-1:непонятно откуда брать, 1:из Финансов, 2:самые последние). * @param bool $save_finance установить галку "Внести изменения в основные реквизиты"? * * @return string html-текст с формой. */ public function view_invoice_form($stage_id, $form_type, $reqv_mode = 1, $save_finance = false) { $sbr = $this; sbr_meta::getReqvFields(); $sbr->getInvoiceReqv($form_type, $reqv_mode); ob_start(); include $_SERVER['DOCUMENT_ROOT'] . '/norisk2/employer/tpl.stage-reserve-bn-form.php'; return ob_get_clean(); }
/** * Выводит HTML код формы заполнения реквизитов * * @param array $reqvs существующие реквизиты * @param int $form_type 1 - физ. лицо, 2 - юр. лицо. * @param string $grp к какой группе полей относится данное поле (BANK:банковские реквизиты; EL:электронные кошельки) * @param string $tbl_caption заголовок формы * @param string $tbl_header краткое описание формы * @param string $tbl_subheader описание подраздела блока, имеет вид array('pos'=>1, 'title'=>'Описание'), * где pos - Позиция перед которой будет описание, title - само описание * @param array $setting Всевозможнные настройки отображения полей по умолчанию sbr_meta::$setting_finance_tbl * В теме new - действуют: * theme => string -- Тип вывода таблицы (принимает пока два значение new, old) * group => array(a1, a2) -- группировка по позициям где a1 - начальная позиция, a2 - конечная позиция @see table sbr_reqv_fields * abbr_block => string -- Название всего блока который выводится через функцию * caption_expand => boolean -- Если true - то название блока становися ссылкой и сам блок можно свернуть нажав на нее (работает в theme => new) * caption_descr => string -- Расшифровка заголовка * subdescr => array(pos => string) -- Дополнительное описание поля, где pos -- это позиция поля по значению из таблицы (table sbr_reqv_fields.pos), string - само описание * name_descr => array(pos => string) -- Под название поля, где pos -- это позиция поля по значению из таблицы (table sbr_reqv_fields.pos), string - само описание * @todo - group -- очень связано будет с позициями в таблице, при изменении этих позиций нужно редактировать код где есть group -- надо как то от этого избавиться */ function view_finance_tbl($reqvs, $form_type, $grp, $tbl_caption, $tbl_header, $tbl_subheader = array(), $setting = false) { sbr_meta::getReqvFields(); if (!$setting) { $setting = sbr_meta::$setting_finance_tbl; } elseif (is_array($setting)) { $setting = array_merge(sbr_meta::$setting_finance_tbl, $setting); } $tbl = array('rez_type' => -1, 'rez_type_new' => array()); $rtv = 0; foreach (sbr_meta::$reqv_fields[$form_type] as $key => $field) { if ($grp !== -1 && $field['grp'] != $grp) { continue; } if ($setting['group']) { if ($grp !== -1 && ($field['pos'] < $setting['group'][0] || $field['pos'] > $setting['group'][1])) { continue; } } $tbl[$key] = $field; if ((int) $field['rez_type'] != $tbl['rez_type']) { $tbl['rez_type'] = (int) $field['rez_type']; $rtv++; if (!empty($field['rez_type_new'])) { $tbl['rez_type_new'] = $field['rez_type_new'] + $tbl['rez_type_new']; } } } if ($rtv > 1) { $tbl['rez_type'] = 0; $tbl['rez_type_new'] = array(); } $rez_type = $reqvs['rez_type'] ? $reqvs['rez_type'] : sbr::RT_RU; switch ($setting['theme']) { case '': include $_SERVER['DOCUMENT_ROOT'] . '/sbr/tpl.form_element.php'; break; default: case 'old': include $_SERVER['DOCUMENT_ROOT'] . '/norisk2/tpl.finance_tbl.php'; break; case 'new': include $_SERVER['DOCUMENT_ROOT'] . '/sbr/tpl.finance_tbl.php'; break; } }