protected void Page_Load(object sender, System.EventArgs e)
 {
     _OrderStatusId = AlwaysConvert.ToInt(Request.QueryString["OrderStatusId"]);
     _OrderStatus   = OrderStatusDataSource.Load(_OrderStatusId);
     AbleCommerce.Code.PageHelper.ConvertEnterToTab(Name);
     AbleCommerce.Code.PageHelper.ConvertEnterToTab(DisplayName);
     Caption.Text = string.Format(Caption.Text, _OrderStatus.Name);
     if (!Page.IsPostBack)
     {
         // LOAD TRIGGERS SELECT BOX
         foreach (int storeEventId in Enum.GetValues(typeof(StoreEvent)))
         {
             if ((storeEventId >= 100) && (storeEventId < 200))
             {
                 StoreEvent storeEvent = (StoreEvent)storeEventId;
                 Triggers.Items.Add(new ListItem(StringHelper.SpaceName(storeEvent.ToString()), storeEventId.ToString()));
             }
         }
         // INITIALIZE FORM
         Name.Text = _OrderStatus.Name;
         Name.Focus();
         DisplayName.Text              = _OrderStatus.DisplayName;
         Report.Checked                = _OrderStatus.IsActive;
         Cancelled.Checked             = !_OrderStatus.IsValid;
         InventoryAction.SelectedIndex = (int)_OrderStatus.InventoryActionId;
         foreach (OrderStatusTrigger trigger in _OrderStatus.Triggers)
         {
             ListItem item = Triggers.Items.FindByValue(trigger.StoreEventId.ToString());
             if (item != null)
             {
                 item.Selected = true;
             }
         }
     }
 }
        protected void Page_Init(object sender, EventArgs e)
        {
            //GET ORDER STATUSES FOR STORE
            IList <OrderStatus> statuses        = OrderStatusDataSource.LoadAll();
            IList <OrderStatus> validStatuses   = new List <OrderStatus>();
            IList <OrderStatus> invalidStatuses = new List <OrderStatus>();
            //BUILD STATUS FILTER
            String statusNamePrefix = "- ";

            foreach (OrderStatus status in statuses)
            {
                if (status.IsValid)
                {
                    validStatuses.Add(status);
                }
                else
                {
                    invalidStatuses.Add(status);
                }
            }
            // ADD VALID STATUSES
            StatusFilter.Items.Add(new ListItem("All Valid", "-2"));
            foreach (OrderStatus status in validStatuses)
            {
                StatusFilter.Items.Add(new ListItem(statusNamePrefix + status.Name, status.Id.ToString()));
            }
            // ADD INVALID STATUSES
            StatusFilter.Items.Add(new ListItem("All Invalid", "-3"));
            foreach (OrderStatus status in invalidStatuses)
            {
                StatusFilter.Items.Add(new ListItem(statusNamePrefix + status.Name, status.Id.ToString()));
            }
            // SET THE DEFAULT AS ALL-VALID
            StatusFilter.SelectedIndex = 1;
        }
        protected OrderFilter GetOrderFilter()
        {
            // CREATE CRITERIA INSTANCE
            OrderFilter criteria = new OrderFilter();

            if (OrderStartDate.SelectedStartDate > DateTime.MinValue)
            {
                criteria.OrderDateStart = OrderStartDate.SelectedStartDate;
            }
            if (OrderEndDate.SelectedEndDate > DateTime.MinValue && OrderEndDate.SelectedEndDate < DateTime.MaxValue)
            {
                criteria.OrderDateEnd = OrderEndDate.SelectedEndDate;
            }
            criteria.OrderNumberRange = OrderNumberFilter.Text;
            criteria.PaymentStatus    = (OrderPaymentStatus)AlwaysConvert.ToByte(PaymentStatusFilter.SelectedValue);
            criteria.ShipmentStatus   = (OrderShipmentStatus)AlwaysConvert.ToByte(ShipmentStatusFilter.SelectedValue);
            // ADD IN ORDER STATUS FILTER
            int statusId = 0;

            if (StatusFilter.SelectedValue == "-2")
            {
                IList <OrderStatus> statuses = OrderStatusDataSource.LoadAll();
                foreach (OrderStatus status in statuses)
                {
                    if (status.IsValid)
                    {
                        criteria.OrderStatus.Add(status.Id);
                    }
                }
            }
            else if (StatusFilter.SelectedValue == "-3")
            {
                IList <OrderStatus> statuses = OrderStatusDataSource.LoadAll();
                foreach (OrderStatus status in statuses)
                {
                    if (!status.IsValid)
                    {
                        criteria.OrderStatus.Add(status.Id);
                    }
                }
            }
            else
            {
                statusId = AlwaysConvert.ToInt(StatusFilter.SelectedValue);
                if (statusId > 0)
                {
                    criteria.OrderStatus.Add(statusId);
                }
            }

            // ADD IN KEYWORD FILTER
            criteria.Keyword      = KeywordSearchText.Text;
            criteria.KeywordField = (KeywordFieldType)Enum.Parse(typeof(KeywordFieldType), KeywordSearchField.SelectedValue, true);

            // RETURN THE CRITERIA OBJECT
            Session["OrderFilter"] = criteria;
            Session["OrderFilterSelectedStatus"] = StatusFilter.SelectedValue;
            return(criteria);
        }
Example #4
0
        protected string GetOrderStatus(Object orderStatusId)
        {
            OrderStatus status = OrderStatusDataSource.Load((int)orderStatusId);

            if (status != null)
            {
                return(status.Name);
            }
            return(string.Empty);
        }
Example #5
0
        private void BindOrderStatuses()
        {
            IList <OrderStatus> orderStatuses = OrderStatusDataSource.LoadAll("Name");
            int index = orderStatuses.IndexOf(_OrderStatusId);

            if (index > -1)
            {
                orderStatuses.RemoveAt(index);
            }
            OrderStatusList.DataSource = orderStatuses;
            OrderStatusList.DataBind();
        }
Example #6
0
 protected void Page_Init(object sender, System.EventArgs e)
 {
     _OrderStatusId = AlwaysConvert.ToInt(Request.QueryString["OrderStatusId"]);
     _OrderStatus   = OrderStatusDataSource.Load(_OrderStatusId);
     if (_OrderStatus == null)
     {
         Response.Redirect("Default.aspx");
     }
     Caption.Text         = string.Format(Caption.Text, _OrderStatus.Name);
     InstructionText.Text = string.Format(InstructionText.Text, _OrderStatus.Name);
     BindOrderStatuses();
 }
Example #7
0
        private void BindOrderStatuses()
        {
            // bind change status options
            IList <OrderStatus> statuses = OrderStatusDataSource.LoadAll("OrderBy");
            int currentStatusIndex       = statuses.IndexOf(_order.OrderStatusId);

            if (currentStatusIndex > -1)
            {
                statuses.RemoveAt(currentStatusIndex);
            }
            NewStatus.DataSource = statuses;
            NewStatus.DataBind();
        }
        protected void Page_Init(object sender, EventArgs e)
        {
            //GET ORDER STATUSES FOR STORE
            IList <OrderStatus> statuses        = OrderStatusDataSource.LoadAll();
            IList <OrderStatus> validStatuses   = new List <OrderStatus>();
            IList <OrderStatus> invalidStatuses = new List <OrderStatus>();
            //BUILD STATUS FILTER
            String statusNamePrefix = "- ";

            foreach (OrderStatus status in statuses)
            {
                if (status.IsValid)
                {
                    validStatuses.Add(status);
                }
                else
                {
                    invalidStatuses.Add(status);
                }
            }
            // ADD VALID STATUSES
            StatusFilter.Items.Add(new ListItem("All Valid", "-2"));
            foreach (OrderStatus status in validStatuses)
            {
                StatusFilter.Items.Add(new ListItem(statusNamePrefix + status.Name, status.Id.ToString()));
            }
            // ADD INVALID STATUSES
            StatusFilter.Items.Add(new ListItem("All Invalid", "-3"));
            foreach (OrderStatus status in invalidStatuses)
            {
                StatusFilter.Items.Add(new ListItem(statusNamePrefix + status.Name, status.Id.ToString()));
            }
            // SET THE DEFAULT AS ALL-VALID
            StatusFilter.SelectedIndex = 1;

            //APPEND ORDER STATUS ACTIONS TO BATCH LIST
            string updateText = "Update status to {0}";

            foreach (OrderStatus status in statuses)
            {
                BatchAction.Items.Add(new ListItem(string.Format(updateText, status.Name), "OS_" + status.Id));
            }

            BatchAction.Items.Add(new ListItem("-----------", string.Empty));
            BatchAction.Items.Add(new ListItem("Export", "EXPORT"));
            if (AbleContext.Current.User.IsSystemAdmin)
            {
                BatchAction.Items.Add(new ListItem("Delete", "DELETE"));
            }
            InitDateQuickPick();
        }
Example #9
0
        protected void ChangeStatusOKButton_Click(object sender, EventArgs e)
        {
            // change status
            int         newStatusId = AlwaysConvert.ToInt(NewStatus.SelectedValue);
            OrderStatus newStatus   = OrderStatusDataSource.Load(newStatusId);

            if (_order.OrderStatusId != newStatusId && newStatus != null)
            {
                OrderStatus cancelledStatus = OrderStatusTriggerDataSource.LoadForStoreEvent(StoreEvent.OrderCancelled);
                if (cancelledStatus != null && newStatusId == cancelledStatus.Id)
                {
                    Response.Redirect("CancelOrder.aspx?OrderNumber=" + _order.OrderNumber.ToString());
                }
                else
                {
                    _order.OrderStatus = newStatus;
                    _order.Save(false, false);
                    BindOrderStatuses();
                    OrderStatusUpdatedMessage.Text    = string.Format(OrderStatusUpdatedMessage.Text, newStatus.Name);
                    OrderStatusUpdatedMessage.Visible = true;
                }
            }
        }
Example #10
0
        protected void BatchButton_Click(object sender, EventArgs e)
        {
            List <string> messages = new List <string>();
            List <int>    orderIds = GetSelectedOrderIds();

            if (orderIds.Count > 0)
            {
                if (BatchAction.SelectedValue.StartsWith("OS_"))
                {
                    //UPDATE ORDER STATUS REQUESTED
                    int orderStatusId = AlwaysConvert.ToInt(BatchAction.SelectedValue.Substring(3));
                    //VALIDATE STATUS
                    OrderStatus status = OrderStatusDataSource.Load(orderStatusId);
                    if (status != null)
                    {
                        IDatabaseSessionManager database = AbleContext.Current.Database;
                        database.BeginTransaction();
                        foreach (int orderId in orderIds)
                        {
                            Order order = OrderDataSource.Load(orderId);
                            if (order != null)
                            {
                                order.UpdateOrderStatus(status);
                            }
                        }
                        database.CommitTransaction();
                    }
                }
                else
                {
                    switch (BatchAction.SelectedValue)
                    {
                    case "INVOICE":
                        AbleContext.Current.Session.SelectedOrderIds = orderIds;
                        Response.Redirect("Print/Invoices.aspx");
                        break;

                    case "PACKSLIP":
                        AbleContext.Current.Session.SelectedOrderIds = orderIds;
                        Response.Redirect("Print/PackSlips.aspx");
                        break;

                    case "PULLSHEET":
                        AbleContext.Current.Session.SelectedOrderIds = orderIds;
                        Response.Redirect("Print/PullSheet.aspx");
                        break;

                    case "CANCEL":
                        AbleContext.Current.Session.SelectedOrderIds = orderIds;
                        Response.Redirect("Batch/Cancel.aspx");
                        break;

                    case "SHIPOPT":
                        AbleContext.Current.Session.SelectedOrderIds = orderIds;
                        Response.Redirect("Batch/Ship.aspx");
                        break;

                    case "SHIP":
                        AbleContext.Current.Database.BeginTransaction();
                        int shipCount = 0;
                        foreach (int orderId in orderIds)
                        {
                            Order order = OrderDataSource.Load(orderId);
                            if (order != null && order.Shipments != null)
                            {
                                bool shipped       = false;
                                int  shipmentCount = order.Shipments.Count;
                                for (int i = 0; i < shipmentCount; i++)
                                {
                                    OrderShipment shipment = order.Shipments[i];
                                    if (shipment != null && !shipment.IsShipped)
                                    {
                                        shipment.Ship();
                                        shipped = true;
                                    }
                                }
                                if (shipped)
                                {
                                    messages.Add("Order #" + order.OrderNumber + " shipped.");
                                    shipCount++;
                                }
                                else
                                {
                                    messages.Add("Order #" + order.OrderNumber + " did not have any unshipped items.");
                                }
                            }
                        }
                        AbleContext.Current.Database.CommitTransaction();
                        messages.Add(shipCount + " orders shipped.");
                        break;

                    case "PAY":
                        AbleContext.Current.Database.BeginTransaction();
                        int payCount = 0;
                        foreach (int orderId in orderIds)
                        {
                            Order order = OrderDataSource.Load(orderId);
                            if (order != null)
                            {
                                bool paid         = false;
                                int  paymentCount = order.Payments.Count;
                                for (int i = 0; i < paymentCount; i++)
                                {
                                    Payment payment = order.Payments[i];
                                    if (payment.PaymentStatus == PaymentStatus.Authorized)
                                    {
                                        payment.Capture(payment.Amount, true);
                                        paid = true;
                                    }
                                    else if (payment.PaymentStatus == PaymentStatus.Unprocessed)
                                    {
                                        payment.Authorize();
                                        paid = true;
                                    }
                                }
                                if (paid)
                                {
                                    payCount++;
                                    messages.Add("Order " + order.OrderNumber.ToString() + " processed.");
                                }
                                else
                                {
                                    messages.Add("Order " + order.OrderNumber.ToString() + " does not have any payments to be processed.");
                                }
                            }
                        }
                        AbleContext.Current.Database.CommitTransaction();
                        messages.Add(payCount + " orders processed.");
                        break;

                    case "DELETE":
                        if (AbleContext.Current.User.IsSystemAdmin)
                        {
                            IDatabaseSessionManager database = AbleContext.Current.Database;
                            database.BeginTransaction();
                            foreach (int orderId in orderIds)
                            {
                                OrderDataSource.Delete(orderId);
                            }
                            database.CommitTransaction();
                            OrderGrid.DataBind();
                        }
                        break;

                    case "EXPORT":
                        AbleContext.Current.Session.SelectedOrderIds = orderIds;
                        Response.Redirect("../DataExchange/OrdersExport.aspx?type=selected");
                        break;
                    }
                }
            }
            if (messages.Count > 0)
            {
                BatchMessage.Visible = true;
                BatchMessage.Text    = string.Join("<br />", messages.ToArray());
            }
            BatchAction.SelectedIndex = -1;
            OrderGrid.DataBind();
        }