public function saveInvoiceFile(Document $invoice)
 {
     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';
     $docType = $invoice instanceof Document\Invoice ? Document\Invoice::TYPE_INVOICE : Document\Invoice::TYPE_CREDIT_INVOICE;
     try {
         $renderer = $this->locator->get('Zend\\View\\Renderer\\PhpRenderer');
         $renderer->setVars(array('document' => $invoice, 'rows' => $invoice->getRows()));
         $rendered = $renderer->render('application/document/pdf/invoice');
         if ($rendered) {
             $output_document_dir = "data/files/Document/";
             $output_customer_dir = "data/files/Customer/";
             $fileNameDocument = $invoice->getId() . '_' . $invoice->getPrefix() . $invoice->getDocumentNumber() . '.pdf';
             $fileNameCustomer = $invoice->getCustomer()->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);
             file_put_contents($output_customer_dir . $fileNameCustomer, $output);
             $size = filesize($output_document_dir . $fileNameDocument);
             $type = filetype($output_document_dir . $fileNameDocument);
             $this->addDocumentFile($invoice, $output_document_dir, $fileNameDocument, $type, $size, $docType);
             $this->customerService->addCustomerFile($invoice->getCustomer(), $invoice, $output_customer_dir, $fileNameCustomer, $type, $size, $docType);
         }
     } catch (\Exception $e) {
         print_r($e->getMessage());
         die;
     }
 }
 private function getCustomerValues()
 {
     $results = array();
     foreach ($this->customerService->getCustomers($this->user) as $customer) {
         $results[$customer->getId()] = $customer->getName() . '-' . $customer->getRegNo();
     }
     return $results;
 }
 public function ajaxGetCustomerAction()
 {
     if ($this->request->isPost() && $this->request->isXmlHttpRequest()) {
         $customer = $this->customerService->getCustomerById($this->request->getPost()->customerId);
         if ($customer) {
             /* @var $customer \Application\Entity\Customer */
             $result = array('deadlineDays' => $customer->getDeadlineDays(), 'delayPercent' => $customer->getDelayPercent());
             return new JsonModel($result);
         }
     }
     return $this->response;
 }
Exemple #4
0
 public function getCustomersJsonAction()
 {
     $returnData = $this->customerService->getAutoCompleteSource();
     return new JsonModel($returnData);
 }
 public function saveInvoiceWithParams(Document $invoice = null, User $user, array $data, $type)
 {
     if (!$invoice) {
         $company = $this->companyService->getCompanyByUser($user);
         if (!$company) {
             $this->companyService->setDefaultUserCompany($user);
             $company = $this->companyService->getCompanyByUser($user);
         }
         if ($type == Document::TYPE_INVOICE) {
             $invoice = new Invoice();
         } elseif ($type == Document::TYPE_PURCHASE_INVOICE) {
             $invoice = new Document\PurchaseInvoice();
         } elseif ($type == Document::TYPE_CREDIT_INVOICE) {
             $invoice = new Document\CreditInvoice();
         }
         $invoice->setCompany($company);
         $invoice->setUser($user);
         $invoice->setCreatedBy($user);
     }
     if (isset($data['customer']) && $data['customer'] > 0) {
         $customer = $this->customerService->getCustomerById($data['customer']);
         if ($customer) {
             $invoice->setCustomer($customer);
         }
     }
     if (isset($data['supplier']) && $data['supplier'] > 0) {
         $supplier = $this->supplierService->getSupplierById($data['supplier']);
         if ($supplier) {
             $invoice->setSupplier($supplier);
         }
     }
     if (isset($data['vat']) && $data['vat'] > 0) {
         $vat = $this->settingsService->getVatById($data['vat']);
         if ($vat) {
             $invoice->setVat($vat);
         }
     }
     if (isset($data['docDate'])) {
         $docDate = \DateTime::createFromFormat('d.m.Y', $data['docDate']);
         if (!$docDate) {
             $docDate = new \DateTime();
         }
         $deadLine = clone $docDate;
         $deadlineDays = isset($data['deadlineDays']) && $data['deadlineDays'] > 0 ? $data['deadlineDays'] : 0;
         $deadLine = $deadLine->add(new \DateInterval('P' . $deadlineDays . 'D'));
         $invoice->setDocumentDate($docDate);
         $invoice->setPaymentDate($deadLine);
     }
     if (isset($data['deadlineDays'])) {
         $invoice->setDeadlineDays($data['deadlineDays']);
     }
     if (isset($data['supplierDocNumber'])) {
         $invoice->setSupplierDocumentNumber($data['supplierDocNumber']);
     }
     if (isset($data['amount'])) {
         $invoice->setAmount($data['amount']);
     }
     if (isset($data['delayPercent'])) {
         $invoice->setDelayPercent($data['delayPercent']);
     }
     if (isset($data['taxAmount'])) {
         $invoice->setTaxAmount($data['taxAmount']);
     }
     if (isset($data['paymentType'])) {
         $invoice->setPaymentType($data['paymentType']);
     }
     if (isset($data['amountTax'])) {
         $invoice->setAmountTax($data['amountTax']);
     }
     if (isset($data['amountTax'])) {
         $invoice->setAmountTax($data['amountTax']);
     }
     if (isset($data['comment'])) {
         $invoice->setComment($data['comment']);
     }
     return $this->saveInvoiceRows($invoice, $data);
 }