예제 #1
0
 public function createAdvertTransactionFront($advert, $unitPrice, $quantity, $discount, $subtotal, $totalPrice)
 {
     /** @var TransactionRepository $transactionRepository */
     $transactionRepository = $this->manager->getRepository('EcommerceBundle:Transaction');
     // create a new transaction
     $transactionKey = $transactionRepository->getNextNumber();
     $transaction = new Transaction();
     $transaction->setAdvert($advert);
     $transaction->setTransactionKey($transactionKey);
     $transaction->setStatus(Transaction::STATUS_CREATED);
     $transaction->setActor($this->securityContext->getToken()->getUser());
     $transaction->setVat(21);
     $transaction->setTotalPrice($totalPrice);
     // create a new productpurchase
     $productPurchase = new ProductPurchase();
     $productPurchase->setAdvert($advert);
     $productPurchase->setBasePrice($unitPrice);
     $productPurchase->setQuantity($quantity);
     $productPurchase->setDiscount($discount);
     $productPurchase->setTotalPrice($subtotal);
     $productPurchase->setTransaction($transaction);
     $productPurchase->setReturned(false);
     $productPurchase->setDeliveryExpenses(0);
     $this->manager->persist($productPurchase);
     $transaction->addItem($productPurchase);
     $this->manager->persist($transaction);
     $this->manager->flush();
     $this->createInvoice(null, $transaction);
     return $transaction;
 }