public function createSupplierInvoiceTransaction(Document $document) { $transaction = new Transaction(); $description = $this->translator->trans("transaction.description.document", array("%document_code%" => $document->getType()->getCode(), "%document_number%" => $document->getId(), "%document_to%" => $document->getSupplier()->getName()), 'Finance'); $transaction->setDescription($description); $transaction->setDate(new \DateTime()); $payableAccount = $this->accountRepository->findOneBy(array('subtype' => Account::SUBTYPE_LIABILITY_PAYABLE)); $journalEntryPayable = new JournalEntry(); $journalEntryPayable->setAccount($payableAccount); $journalEntryPayable->setTransaction($transaction); $journalEntryPayable->setDebit($document->getTotal()); $journalEntryPayable->setDate(new \DateTime()); $transaction->addJournalEntry($journalEntryPayable); $journalEntrySupplierAccount = new JournalEntry(); $journalEntrySupplierAccount->setAccount($document->getSupplier()->getFinanceAccount()); $journalEntrySupplierAccount->setTransaction($transaction); $journalEntrySupplierAccount->setCredit($document->getTotal()); $journalEntrySupplierAccount->setDate(new \DateTime()); $transaction->addJournalEntry($journalEntrySupplierAccount); /* persist */ $this->transactionRepository->save($transaction); return $transaction; }
/** * Displays a form to edit an existing Document entity. * * @Route("/{id}/payments/new", name="finance_document_ci_payments_new", requirements={"id"="\d+"}) * @Method("GET") * @Template() */ public function addPaymentAction(Document $document) { $em = $this->getDoctrine()->getManager(); $assetAccounts = $em->getRepository('FlowerFinancesBundle:Account')->findBy(array('type' => Account::TYPE_ASSET)); $paymentAmount = 0; foreach ($document->getPayments() as $payment) { $paymentAmount += $payment->getAmount(); } $balance = $document->getTotal() - $paymentAmount; return array('assetAccounts' => $assetAccounts, 'balance' => $balance, 'document' => $document); }