public function saveRow(Document\Row $row = null, Document $document, Parameters $parameters) { if ($row == null) { $row = new Document\Row(); } if (!$row->getDocument()) { $row->setDocument($document); } if (isset($parameters->description) && $parameters->description != null) { $row->setDescription($parameters->description); } if (isset($parameters->code)) { if ($parameters->code != null) { $row->setCode($parameters->code); } else { $row->setCode(null); } } if (isset($parameters->uomId)) { $uom = $this->getOneObjectByField(Uom::getClass(), 'id', $parameters->uomId); $row->setUom($uom ? $uom : null); } if (isset($parameters->articleId)) { $article = $this->getOneObjectByField(Article::getClass(), 'id', $parameters->articleId); $row->setArticle($article ? $article : null); } if (isset($parameters->warehouse)) { $warehouse = $this->getOneObjectByField(Warehouse::getClass(), 'id', $parameters->warehouse); $row->setWarehouse($warehouse ? $warehouse : null); } if (isset($parameters->vatId)) { $vat = $this->getOneObjectByField(Vat::getClass(), 'id', $parameters->vatId); $row->setVat($vat ? $vat : null); } if (isset($parameters->quantity)) { $row->setQuantity($parameters->quantity); } if (isset($parameters->price) && $parameters->price != null) { $row->setPrice($parameters->price); } if (isset($parameters->quantity) && isset($parameters->price)) { $row->setAmount($parameters->quantity * $parameters->price); } if (isset($parameters->name) && $parameters->name != null) { $row->setName($parameters->name); } if ($document->getRows() && !$document->getRows()->contains($row)) { $document->addRow($row); } $this->entityManager->persist($row); $this->entityManager->flush($row); return $row; }
private function saveInvoiceRows(Document $invoice, array $data) { if (isset($data['names'])) { foreach ($data['names'] as $key => $value) { if ($data['rowIds'][$key] > 0) { $row = $this->getRowById($data['rowIds'][$key]); } else { $row = new Row(); } if (!$row->getDocument()) { $row->setDocument($invoice); } $row->setName($value); if (isset($data['articleIds'][$key])) { $article = $this->articleService->getArticleById($data['articleIds'][$key]); if ($article) { $row->setArticle($article); } } if (isset($data['uomIds'][$key])) { $uom = $this->settingsService->getUomById($data['uomIds'][$key]); if ($uom) { $row->setUom($uom); } } if (isset($data['vatIds'][$key])) { $vat = $this->settingsService->getVatById($data['vatIds'][$key]); if ($vat) { $row->setVat($vat); } } if (isset($data['quantities'][$key])) { $row->setQuantity($data['quantities'][$key]); } if (isset($data['prices'][$key])) { $row->setPrice($data['prices'][$key]); } if (isset($data['totals'][$key])) { $row->setAmount($data['totals'][$key]); } if (isset($data['vatAmounts'][$key])) { $row->setVatAmount($data['vatAmounts'][$key]); } if (isset($data['vatValues'][$key])) { $row->setVatValue($data['vatValues'][$key]); } if (!$data['rowIds'][$key] > 0) { $invoice->addRow($row); } } } return $this->saveInvoice($invoice); }