/** * @param array $data * @param StorePaymentMethod $pm * @param string $transactionReference * @param boolean $status * @return Order */ public function add($data, $pm, $transactionReference = '', $status = null) { $customer = new StoreCustomer(); $now = new \DateTime(); $smName = StoreShippingMethod::getActiveShippingMethodName(); $shippingTotal = StoreCalculator::getShippingTotal(); $taxes = StoreTax::getConcatenatedTaxStrings(); $totals = StoreCalculator::getTotals(); $total = $totals['total']; $pmName = $pm->getPaymentMethodName(); $order = new Order(); $order->setCustomerID($customer->getUserID()); $order->setOrderDate($now); $order->setPaymentMethodName($pmName); $order->setShippingMethodName($smName); $order->setShippingTotal($shippingTotal); $order->setTaxTotals($taxes['taxTotals']); $order->setTaxIncluded($taxes['taxIncludedTotal']); $order->setTaxLabels($taxes['taxLabels']); $order->setOrderTotal($total); $order->save(); $customer->setLastOrderID($order->getOrderID()); $order->updateStatus($status); $order->addCustomerAddress($customer, $order->isShippable()); $order->addOrderItems(StoreCart::getCart()); $order->createNeededAccounts(); $order->assignFilePermissions(); if (!$pm->getMethodController()->external) { $order->completeOrder($transactionReference); } return $order; }
private static function recordStatusChange(StoreOrder $order, $statusHandle) { $db = Database::get(); $newOrderStatus = StoreOrderStatus::getByHandle($statusHandle); $user = new user(); $statusHistorySql = "INSERT INTO " . self::$table . " SET oID=?, oshStatus=?, uID=?"; $statusHistoryValues = array($order->getOrderID(), $newOrderStatus->getHandle(), $user->uID); $db->Execute($statusHistorySql, $statusHistoryValues); $updateOrderSql = "UPDATE VividStoreOrders SET oStatus = ? WHERE oID = ?"; $updateOrderValues = array($newOrderStatus->getHandle(), $order->getOrderID()); $db->Execute($updateOrderSql, $updateOrderValues); return $newOrderStatus->getHandle(); }
public static function getForOrder(StoreOrder $order) { $db = Database::get(); $em = $db->getEntityManager(); if (!$order->getOrderID()) { return false; } $history = $em->getRepository(get_class())->findBy(array('order' => $order->getOrderID()), array('oshDate' => 'DESC')); return $history; }