예제 #1
0
 public function createSale($agreement, $amount, $feeAmount, $netAmount, $details)
 {
     $transaction = new Transaction();
     $transaction->setTransactionKey(uniqid());
     $transaction->setStatus(Transaction::STATUS_PAID);
     $transaction->setTotalPrice($netAmount);
     $transaction->setTax(abs($feeAmount));
     $transaction->setPaymentMethod($agreement->getPaymentMethod());
     $transaction->setPaymentDetails($details);
     $transaction->setActor($agreement->getContract()->getActor());
     $agreement->addTransaction($transaction);
     $productPurchase = new ProductPurchase();
     $productPurchase->setPlan($agreement->getPlan());
     //this relation exist in productPurchase-transaction-agreement-plan
     $productPurchase->setQuantity(1);
     $productPurchase->setBasePrice($amount);
     $productPurchase->setTotalPrice($amount);
     $productPurchase->setTransaction($transaction);
     $productPurchase->setCreated(new \DateTime('now'));
     $productPurchase->setReturned(false);
     $this->manager->persist($productPurchase);
     $transaction->addItem($productPurchase);
     $this->manager->persist($transaction);
     $this->manager->flush();
     $this->createInvoice(null, $transaction);
 }