public function cloneDocument(Document $document) { $auth = $this->getServiceLocator()->get('zfcuser_auth_service'); if ($auth->hasIdentity()) { $user = $auth->getIdentity(); } if ($document instanceof Document\Invoice) { $newDocument = new Document\Invoice(); } $newDocument->setDeadlineDays($document->getDeadlineDays()); $newDocument->setCustomer($document->getCustomer()); $newDocument->setPaymentType($document->getPaymentType()); $newDocument->setCreatedBy($user); $newDocument->setAmountTax($document->getAmountTax()); $newDocument->setTaxAmount($document->getAmountTax()); $newDocument->setAmount($document->getAmount()); $newDocument->setDocumentDate(new \DateTime()); $newDocument->setComment($document->getComment()); $newDocument->setDelayPercent($document->getDelayPercent()); $newDocument->setPrefix($document->getPrefix()); $newDocument->setVat($document->getVat()); $newDocument = $this->saveObject($newDocument); foreach ($document->getRows() as $row) { /* @var $row \Application\Entity\Document\Row */ if ($row) { $newRow = new Document\Row(); $newRow->setVat($row->getVat()); $newRow->setWarehouse($row->getWarehouse()); $newRow->setAmount($row->getAmount()); $newRow->setArticle($row->getArticle()); $newRow->setBarCode($row->getBarCode()); $newRow->setCode($row->getCode()); $newRow->setDescription($row->getDescription()); $newRow->setName($row->getName()); $newRow->setPrice($row->getPrice()); $newRow->setQuantity($row->getQuantity()); $newRow->setUom($row->getUom()); $newRow->setDocument($newDocument); $this->saveObject($newRow); } } return $newDocument; }
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()); } } }