public function getItem() { $app = JFactory::getApplication(); $orderid = $app->input->getString('id', '-1'); $order = new EventgalleryLibraryOrder($orderid); /** * check of the current user is allowed to view this order */ $user = JFactory::getUser(); if ($user->id != $order->getUserId()) { return null; } return $order; }
/** * @param EventgalleryLibraryCart $cart * @return EventgalleryLibraryOrder */ public function createOrder($cart) { $db = JFactory::getDBO(); $data = $cart->_getInternalDataObject(); $uuid = uniqid("", true); $uuid = base_convert($uuid, 16, 10); $query = $db->getQuery(true); $query->insert("#__eventgallery_order"); $query->columns('id'); $query->values($db->quote($uuid)); $db->setQuery($query); $db->execute(); $user = JFactory::getUser(); $data['id'] = $uuid; if (!$user->guest) { $data['userid'] = $user->id; } /** * @var TableOrder $orderTable */ $orderTable = $this->store($data, 'Order'); /** * @var EventgalleryLibraryImagelineitem $lineitem * @var EventgalleryLibraryFactoryImagelineitem $imageLineItemFactory */ $imageLineItemFactory = EventgalleryLibraryFactoryImagelineitem::getInstance(); foreach ($cart->getLineItems() as $lineitem) { $imageLineItemFactory->copyLineItem($orderTable->id, $lineitem); } /** * @var EventgalleryLibraryServicelineitem $lineitem * @var EventgalleryLibraryFactoryServicelineitem $serviceLineItemFactory */ $serviceLineItemFactory = EventgalleryLibraryFactoryServicelineitem::getInstance(); foreach ($cart->getServiceLineItems() as $lineitem) { $serviceLineItemFactory->copyLineItem($orderTable->id, $lineitem); } /** * @var EventgalleryLibraryManagerOrderstatus $orderstatusMgr */ $orderstatusMgr = EventgalleryLibraryManagerOrderstatus::getInstance(); /** * @var EventgalleryLibraryOrder $order */ $order = new EventgalleryLibraryOrder($orderTable->id); $order->setOrderStatus($orderstatusMgr->getDefaultOrderStatus(EventgalleryLibraryOrderstatus::TYPE_ORDER)); $order->setPaymentStatus($orderstatusMgr->getDefaultOrderStatus(EventgalleryLibraryOrderstatus::TYPE_PAYMENT)); $order->setShippingStatus($orderstatusMgr->getDefaultOrderStatus(EventgalleryLibraryOrderstatus::TYPE_SHIPPING)); $order->setDocumentNumber(EventgalleryLibraryDatabaseSequence::generateNewId()); return $order; }