public Result ExpireOrder(OETLib.BusinessObjects.Model.UserOrdersList orderlist) { Result webRes = new Result(false); try { //Order, OrderDetail,Inventory objects OETLib.BusinessObjects.Model.Order expiredOrder = new OETLib.BusinessObjects.Model.Order(); OETLib.BusinessObjects.Model.OrderDetail expiredOrderDetail = new OETLib.BusinessObjects.Model.OrderDetail(); OETLib.BusinessObjects.Model.Inventory expiredInventory = new OETLib.BusinessObjects.Model.Inventory(); OETLib.BusinessObjects.Model.Inventory InventoryProduct = new OETLib.BusinessObjects.Model.Inventory(); foreach (OETLib.BusinessObjects.Model.UserOrders item in orderlist) { DateTime now = DateTime.Now; DateTime orderDate = Convert.ToDateTime(item.OrderDate); if ((now - orderDate).TotalMinutes >= (60) && !((now - orderDate).TotalMinutes < 60))//(1/2) { expiredOrder = OETLib.BusinessObjects.Model.OrderList.GetOrderList().LastOrDefault(d => d.OrderID == item.OrderID); expiredOrderDetail = OETLib.BusinessObjects.Model.OrderDetailList.GetOrderDetailList().LastOrDefault(d => d.OrderID == item.OrderID); // Chnage the OrderStatus of the order expiredOrder.ProcessStatusID = 3; expiredOrder.TrySave(typeof(OETLib.BusinessObjects.Model.OrderList)); //Delete order from OrderDetail OETLib.BusinessObjects.Model.OrderDetailList orderDetailList = OETLib.BusinessObjects.Model.OrderDetailList.GetOrderDetailList(); orderDetailList.Remove(expiredOrderDetail); orderDetailList.Save(); //Create new Inventory record that reflects the canceled/expired order InventoryProduct = OETLib.BusinessObjects.Model.InventoryList.GetInventoryList().LastOrDefault(d => d.ProductID == item.ProductID); expiredInventory.ProductID = item.ProductID; expiredInventory.InventoryQuantity = item.ProductQuantity; expiredInventory.CurrentInventoryQuantity = InventoryProduct.CurrentInventoryQuantity + item.ProductQuantity; expiredInventory.InventoryItemCost = InventoryProduct.InventoryItemCost; expiredInventory.InventoryTypeID = 4; expiredInventory.TrySave(typeof(OETLib.BusinessObjects.Model.InventoryList)); item.ProcessStatusID = 2; OETLib.BusinessObjects.Model.UserOrdersList userorderlist = OETLib.BusinessObjects.Model.UserOrdersList.GetUserOrdersList(1); webRes.Data = userorderlist; webRes.Success = true; } } } catch (Exception e) { webRes.ErrorText = e.Message;// "There was an error adding your order"; } return(webRes); }
public Result CancelOrder(OETLib.BusinessObjects.Model.myCart order) { Result webRes = new Result(false); try { // Delete Order from OrderDetail table OETLib.BusinessObjects.Model.OrderDetailList orderdetailList = OETLib.BusinessObjects.Model.OrderDetailList.GetOrderDetailList(); var OrderDetailToDelete = OETLib.BusinessObjects.Model.OrderDetailList.GetOrderDetailList().LastOrDefault(d => d.OrderID == order.OrderID); orderdetailList.Remove(OrderDetailToDelete); orderdetailList.Save(); // Delete canceled order from Order table OETLib.BusinessObjects.Model.OrderList orderlist = OETLib.BusinessObjects.Model.OrderList.GetOrderList(); var OrderToDelete = OETLib.BusinessObjects.Model.OrderList.GetOrderList().LastOrDefault(d => d.OrderID == order.OrderID); //orderlist.Remove(OrderToDelete); OrderToDelete.ProcessStatusID = 3; OrderToDelete.TrySave(typeof(OETLib.BusinessObjects.Model.OrderList)); //orderlist.Save(); // Update the inventory stock levels. Stock needs to be added back to the inventory amounts // Get the latest inventory item to update in inventory var inventoryToUpdate = OETLib.BusinessObjects.Model.InventoryList.GetInventoryList().LastOrDefault(d => d.ProductID == order.ProductID); // new inventory record is created with the updated values var inventoryToCancel = new OETLib.BusinessObjects.Model.Inventory(); inventoryToCancel.ProductID = order.ProductID; inventoryToCancel.InventoryQuantity = order.ProductQuantity; inventoryToCancel.CurrentInventoryQuantity = inventoryToUpdate.CurrentInventoryQuantity + order.ProductQuantity; inventoryToCancel.InventoryItemCost = inventoryToUpdate.InventoryItemCost; inventoryToCancel.InventoryTypeID = 4; inventoryToCancel.OrderID = order.OrderID; inventoryToCancel.TrySave(typeof(OETLib.BusinessObjects.Model.InventoryList)); var userid = Singular.Settings.CurrentUserID; OETLib.BusinessObjects.Model.myCartList mycartlist = OETLib.BusinessObjects.Model.myCartList.GetmyCartList(userid); webRes.Data = mycartlist; webRes.Success = true; } catch { webRes.ErrorText = "There was a problem cancelling order"; } return(webRes); }