/** * Генерация счет-фактуры. * * @return type */ public function generateFactura($invoice_id, $num, $date = null) { require_once ABS_PATH . '/bill/models/BillInvoicesModel.php'; require_once ABS_PATH . '/classes/sbr.php'; require_once ABS_PATH . '/classes/sbr_meta.php'; $model = BillInvoicesModel::model(); $data = $model->getInvoice($invoice_id); if (!$data) { throw new DocGenBillException(DocGenBillException::BILL_FACTURA_ERROR_MSG); } $this->setFilePath($data['login']); $this->setFileSrcId($data['uid']); $this->setField('sf_num', $num); $this->setField('sf_date', !empty($date) ? $date : date('j.m.Y')); $this->setField('name_user', $data['fields']); $this->setField('address', $data['fields']['address']); $this->setField('inn', $data['fields']['inn']); $this->setField('kpp', $data['fields']['kpp']); $this->setField('price_sf_summa', $data['price']); $this->setField('nonds_sf_summa', $data['price']); $this->setField('pricends_sf_summa', $data['price']); $this->setField('num_invoice', $invoice_id); $original_name = $this->docs[self::BILL_FACTURA_TYPE]['name']; $this->docs[self::BILL_FACTURA_TYPE]['name'] = sprintf($original_name, $this->data['$sf_num']); $file = $this->generateExcel(self::BILL_FACTURA_TYPE); if (!$file) { throw new DocGenBillException(DocGenBillException::BILL_FACTURA_ERROR_MSG); } $is_done = $model->update($invoice_id, array('file_factura_id' => $file->id)); if (!$is_done) { throw new DocGenBillException(DocGenBillException::BILL_FACTURA_ERROR_MSG); } return $file; }