示例#1
0
 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);
 }
示例#2
0
 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()));
 }