Example #1
0
 /**
  * Аналог 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;
 }