public function saveTransactionWithParams(BankTransaction $transaction = null, User $user, array $data) { if (!$transaction) { $transaction = new BankTransaction(); $transaction->setUser($user); } if (isset($data['paymentType'])) { $transaction->setPaymentType($data['paymentType']); } if (isset($data['type'])) { if (in_array($data['type'], BankTransaction::$types)) { $transaction->setType($data['type']); } else { return null; } } if (isset($data['invoiceId']) && $data['invoiceId'] > 0) { $invoice = $this->invoiceService->getInvoiceById($data['invoiceId']); if ($invoice) { $transaction->setDocument($invoice); $transaction->setStatus(BankTransaction::STATUS_ASSOCIATED); } } if (isset($data['paymentDate'])) { $date = \DateTime::createFromFormat('d.m.Y', $data['paymentDate']); if ($date) { $transaction->setPaymentDate($date); } else { return null; } } if (isset($data['name'])) { $transaction->setName($data['name']); } if (isset($data['referenceNumber'])) { $transaction->setReferenceNumber($data['referenceNumber']); } if (isset($data['sum'])) { if (is_numeric($data['sum'])) { $transaction->setSum($data['sum']); } else { return null; } } if (isset($data['description'])) { $transaction->setDescription($data['description']); } if (isset($data['payerIban'])) { $transaction->setPayerIban($data['payerIban']); } return $this->saveTransaction($transaction); }
public function associateIncomingTransactionAction() { if ($this->request->isPost() && $this->request->isXmlHttpRequest()) { $transaction = $this->bankService->getTransactionById($this->request->getPost()->transactionId); $invoice = $this->invoiceService->getInvoiceById($this->request->getPost()->invoiceId); if ($transaction && $invoice) { /* @var $transaction \Application\Entity\BankTransaction */ $transaction->setDocument($invoice); $transaction->setStatus(BankTransaction::STATUS_ASSOCIATED); $this->bankService->saveTransaction($transaction); $this->bankService->isDocumentPaid($invoice); return new JsonModel(array('OK')); } } return $this->response; }
public function sendEmailAction() { $invoice = $this->invoiceService->getInvoiceById($this->params('id')); require "vendor/autoload.php"; // inhibit DOMPDF's auto-loader define('DOMPDF_ENABLE_AUTOLOAD', false); //include the DOMPDF config file (required) require 'vendor/dompdf/dompdf/dompdf_config.inc.php'; //if you get errors about missing classes please also add: require_once 'vendor/dompdf/dompdf/include/autoload.inc.php'; if ($this->request->isPost()) { $now = new \DateTime(); $viewRenderer = $this->serviceLocator->get('view_manager')->getRenderer(); $document = $this->invoiceService->getInvoiceById($this->params('id')); $layoutViewModel = $this->layout(); $layoutViewModel->setTemplate('layout/layout'); $viewModel = new ViewModel(array('document' => $invoice, 'rows' => $document->getRows())); $viewModel->setTemplate('application/document/pdf/invoice'); $rendered = $viewRenderer->render($viewModel); if ($rendered) { $output_document_dir = "data/files/Document/"; $fileNameDocument = $invoice->getId() . '_' . $invoice->getPrefix() . $invoice->getDocumentNumber() . '.pdf'; $dompdf = new \DOMPDF(); $dompdf->load_html($rendered); $dompdf->render(); $output = $dompdf->output(); file_put_contents($output_document_dir . $fileNameDocument, $output); $size = filesize($output_document_dir . $fileNameDocument); $type = filetype($output_document_dir . $fileNameDocument); $fileData = array('file' => $output_document_dir . $fileNameDocument, 'fileName' => $fileNameDocument); $translator = $this->serviceLocator->get('MvcTranslator'); try { $this->invoiceService->sendInvoiceEmail($invoice, $this->request->getPost(), $fileData); $this->flashMessenger()->addMessage($translator->translate('Controller.SendInvoice.InvoiceSended')); } catch (\Exception $e) { $this->flashMessenger()->addMessage($translator->translate('Controller.SendInvoice.Exception:') . $e->getMessage()); } } } return $this->redirect()->toRoute('application/default', array('controller' => 'document', 'action' => 'view-invoice', 'id' => $invoice->getId())); }