示例#1
0
 public function addDocumentFile(Document $document, $dir, $name, $type, $size, $documentType)
 {
     $documentFile = $this->getOneObjectByArray(DocumentFile::getClass(), array('fileOriginalName' => $name, 'document' => $document));
     if ($documentFile == null) {
         $documentFile = new DocumentFile();
     }
     $documentFile->setFile($dir . $name);
     $documentFile->setFileMimeType($type);
     $documentFile->setFileOriginalName($name);
     $documentFile->setFileSize($size);
     $documentFile->setHash($this->generateFileUniqueHash());
     $documentFile->setDocumentDate($document->getDocumentDate());
     $documentFile->setDocumentType($documentType);
     $this->saveObject($documentFile);
     $document->setFile($documentFile);
     $this->saveObject($document);
     return $documentFile;
 }
示例#2
0
 public function setFormValues(Document $document = null)
 {
     if ($document) {
         $this->get('deadlineDays')->setValue($document->getDeadlineDays());
         $this->get('delayPercent')->setValue($document->getDelayPercent());
         if ($document instanceof Document\PurchaseInvoice) {
             $this->get('supplierDocNumber')->setValue($document->getSupplierDocumentNumber());
         }
         $this->get('amount')->setValue($document->getAmount());
         $this->get('taxAmount')->setValue($document->getTaxAmount());
         $this->get('amountTax')->setValue($document->getAmountTax());
         $this->get('comment')->setValue($document->getComment());
         $this->get('paymentType')->setValue($document->getPaymentType());
         if ($document->getDocumentDate()) {
             $this->get('docDate')->setValue($document->getDocumentDate()->format('d.m.Y'));
         }
         if ($document->getCustomer()) {
             $this->get('customer')->setValue($document->getCustomer()->getId());
         }
         if ($document->getSupplier()) {
             $this->get('supplier')->setValue($document->getSupplier()->getId());
         }
         if ($document->getVat()) {
             $this->get('vat')->setValue($document->getVat()->getId());
         }
     }
 }
示例#3
0
 public function isDocumentPaid(Document $document)
 {
     $amount = $document->getAmountTax();
     $paidAmount = 0;
     $payments = $this->entityManager->getRepository(BankTransaction::getClass())->findBy(array('document' => $document));
     foreach ($payments as $payment) {
         $paidAmount += $payment->getSum();
     }
     if ($document instanceof Document\PurchaseInvoice) {
         $paidAmount = abs($paidAmount);
     }
     if ($paidAmount >= $amount) {
         $document->setPaymentStatus(Document::PAYMENT_STATUS_PAID);
     } else {
         $document->setPaymentStatus(Document::PAYMENT_STATUS_UNPAID);
     }
     $this->invoiceService->saveInvoice($document);
     return $paidAmount >= $amount;
 }
示例#4
0
 public function confirmDocument(Document $invoice, User $user)
 {
     if ($invoice instanceof Invoice) {
         $numberPrefix = null;
         $numberNumber = null;
         $number = $this->settingsService->getNumberByUser($user);
         if ($number) {
             $numberNumber = $number->getStartNumber();
             $numberPrefix = $number->getPrefix();
         }
         $sysNr = $this->entityManager->getRepository(Invoice::getClass())->getNextDocumentNumber();
         $finalNumber = $numberNumber > $sysNr ? $numberNumber : $sysNr;
         $invoice->setDocumentNumber($finalNumber);
         $invoice->setPrefix($numberPrefix);
         $invoice->setFullNumber($numberPrefix . $finalNumber);
     }
     $invoice->setConfirmed(true);
     $invoice->setStatus(Invoice::STATUS_CONFIRMED);
     return $this->saveInvoice($invoice);
 }