/** * Create invoice for order Id * * @param Order $order * * @return Invoice $invoice|false * */ public function createInvoiceForOrder(Order $order) { if ($order) { if (!$order->getInvoice()) { $invoice = new Invoice(); $this->dm->persist($invoice); $this->dm->flush(); // Update order data $order->setInvoice($invoice); $this->dm->persist($order); $this->dm->flush(); return $invoice; } } return false; }
/** * Create empty order * * @param FrontendUser $user * @param string $locale * @param string $currencyCode * @param mixed $orderInfo * * @return Order $order */ public function createEmptyOrder($user, $currencyCode, $orderInfo) { $em = $this->getDocumentManager(); $order = new Order(); $order->setTotalAmount(0); $order->setLocale($orderInfo['locale']); $order->setFrontenduser($user); $order->setCurrency($currencyCode); $order->setStatus('new'); $order->setPaymentMethod($orderInfo['payment_method']); $order->setCountry($orderInfo['billing_country']); $order->setRegion($orderInfo['billing_region']); $order->setCity($orderInfo['billing_city']); $order->setPhone($orderInfo['billing_phone']); $order->setDescription($orderInfo['billing_comment']); $em->persist($order); $em->flush(); return $order; }