Esempio n. 1
0
 public function createCreditInvoiceFromInvoice(Document\Invoice $invoice)
 {
     $creditInvoice = new Document\CreditInvoice();
     $creditInvoice->setInvoice($invoice);
     $creditInvoice->setCompany($invoice->getCompany());
     $auth = $this->getServiceLocator()->get('zfcuser_auth_service');
     if ($auth->hasIdentity()) {
         $user = $auth->getIdentity();
     }
     $creditInvoice->setCreatedBy($user);
     $creditInvoice->setPrefix($invoice->getPrefix());
     $creditInvoice->setCustomer($invoice->getCustomer());
     $creditInvoice->setReferenceNumber($invoice->getReferenceNumber());
     $creditInvoice->setCompany($invoice->getCompany());
     $creditInvoice->setPaymentType($invoice->getPaymentType());
     $creditInvoice->setVat($invoice->getVat());
     $creditInvoice->setPrefix($invoice->getPrefix());
     $creditInvoice->setDeadlineDays($invoice->getDeadlineDays());
     $creditInvoice->setDelayPercent($invoice->getDelayPercent());
     $creditInvoice->setDocumentDate(new \DateTime());
     $creditInvoice->setOpencart($invoice->getOpencart());
     foreach ($invoice->getRows() as $row) {
         /* @var $row \Application\Entity\Document\Row */
         $creditRow = new Document\Row();
         $creditRow->setUom($row->getUom());
         $creditRow->setArticle($row->getArticle());
         $creditRow->setDocument($creditInvoice);
         $creditRow->setVat($row->getVat());
         $creditRow->setName($row->getName());
         $creditRow->setWarehouse($row->getWarehouse());
         $creditRow->setCode($row->getCode());
         $creditRow->setBarCode($row->getBarCode());
         $creditRow->setDescription($row->getDescription());
         $creditRow->setPrice($row->getPrice());
         $creditRow->setAmount($row->getAmount());
         $creditRow->setQuantity($row->getCreditedQuantity() - $row->getQuantity());
         $creditRow->setCreditingRowId($row->getId());
         $creditInvoice->addRow($creditRow);
     }
     return $this->saveObject($creditInvoice);
 }