/** * Аналог generateInvoice * использующий DocGenReserves класс для генерации дока. * * @param type $user_info * * @return bool */ public function generateInvoice2($user_info, $generate_now = false) { $user_info['form_type'] = sbr::FT_JURI; $file = new CFile(); $reserve_id = @$this->data['reserve_id']; $data = $this->getCheckByReserveId($reserve_id); if (isset($data['payed_date']) && !empty($data['payed_date'])) { return false; } if (isset($data['check_file_id']) && $data['check_file_id'] > 0) { $file->Delete($data['check_file_id']); } if (!$data) { $data = array(); } $this->data = array_merge($data, $this->data, $user_info); $login = @$_SESSION['login']; if (@$_SESSION['uid'] != $this->data['user_id']) { $emp = new employer(); $ret = $emp->GetName($this->data['user_id'], $error); if (!$ret) { return false; } $login = $ret['login']; } try { $doc = new DocGenReserves(array('id' => $this->options['src_id'], 'employer' => array('login' => $login))); $doc->setField('date_offer', $this->data['date_offer']); unset($this->data['date_offer']); if (!isset($this->data['date'])) { $this->data['date'] = date('Y-m-d H:i:s'); } $doc->setField('datetext_1', $this->data['date']); $doc->setField('num_bs', $this->options['src_id']); $doc->setField('fio_emp', $this->data); if (empty($user_info['phone'])) { $user_info['phone'] = $user_info['mob_phone']; } $doc->setField('phone', $user_info['phone']); $doc->setField('price_price', $this->data['price']); $doc->setField('nonds_commision', $this->data['tax_price']); $doc->setField('nondstotal_price', $this->data); $doc->setField('pricends_commision', $this->data['tax_price']); $doc->setField('price_reserve_price', $this->data['reserve_price']); $doc->setField('pricelong_reserve_price', $this->data['reserve_price']); $doc->setField('price_commision', $this->data['tax_price']); if ($generate_now) { $doc->disableQueue(); } $file = $doc->generateBankInvoice(); } catch (Exception $e) { return false; } $this->data['check_file_id'] = $file->id; if (!$this->addCheck()) { return false; } if ($generate_now) { Events::trigger('generateInvoice2'); } return $file; }