protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            itemsToOrder = PurchaseManager.getPurchaseOrderItems();

            OrderItems.DataSource = itemsToOrder;
            OrderItems.DataBind();
        }
    }
示例#2
0
        private void ShowOrder(OrganizationServiceContext serviceContext, Entity order)
        {
            var orderProducts = serviceContext.CreateQuery("salesorderdetail")
                                .Where(e => e.GetAttributeValue <EntityReference>("salesorderid") == order.ToEntityReference())
                                .Where(e => e.GetAttributeValue <decimal>("quantity") > 0)
                                .ToArray();

            var productIds = orderProducts
                             .Select(e => e.GetAttributeValue <EntityReference>("productid"))
                             .Where(product => product != null)
                             .Select(product => product.Id);

            var products = serviceContext.CreateQuery("product")
                           .WhereIn(e => e.GetAttributeValue <Guid>("productid"), productIds)
                           .ToDictionary(e => e.Id, e => e);

            var items = orderProducts
                        .Select(e => GetLineItemFromOrderProduct(e, products))
                        .Where(e => e != null)
                        .OrderBy(e => e.Number)
                        .ThenBy(e => e.Name);

            OrderItems.DataSource = items;
            OrderItems.DataBind();

            OrderNumber.Text = order.GetAttributeValue <string>("ordernumber");

            var tax = order.GetAttributeValue <Money>("totaltax") ?? new Money(0);

            OrderTotalTax.Visible    = tax.Value > 0;
            OrderTotalTaxAmount.Text = tax.Value.ToString("C2");

            var shipping = order.GetAttributeValue <Money>("freightamount") ?? new Money(0);

            OrderTotalShipping.Visible    = shipping.Value > 0;
            OrderTotalShippingAmount.Text = shipping.Value.ToString("C2");

            var discount = order.GetAttributeValue <Money>("totaldiscountamount") ?? new Money(0);

            OrderTotalDiscount.Visible    = discount.Value > 0;
            OrderTotalDiscountAmount.Text = discount.Value.ToString("C2");

            var total = order.GetAttributeValue <Money>("totalamount") ?? new Money(0);

            OrderTotal.Visible    = total.Value > 0;
            OrderTotalAmount.Text = total.Value.ToString("C2");

            GeneralErrorMessage.Visible = false;
            Order.Visible   = true;
            Invoice.Visible = false;
        }
 protected void Page_Load(object sender, EventArgs e)
 {
     //If a login session is set and the page has not been posted back, set all relevant attributes and fill the three lists with all stock information.
     if (Session["Message"] != null)
     {
         if (!IsPostBack)
         {
             Image.Visible = false;
             Image.Attributes.Add("style", "height:125px;width:auto");
             codes.Clear();
             descriptions.Clear();
             prices.Clear();
             basket.Clear();
             codes.Add("");
             descriptions.Add("");
             prices.Add(decimal.Parse("0"));
             SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
             SqlCommand    cmd  = new SqlCommand();
             cmd.Connection  = conn;
             cmd.CommandText = "SELECT * FROM Stock";
             conn.Open();
             SqlDataReader reader = cmd.ExecuteReader();
             while (reader.Read())
             {
                 codes.Add(reader["Code"].ToString());
                 descriptions.Add(reader["Description"].ToString());
                 prices.Add(decimal.Parse(reader["PricePerUnit"].ToString()));
             }
             Stock.DataSource = codes;
             Stock.DataBind();
             if (table.Columns.Count == 0)
             {
                 table.Columns.Add(new DataColumn("Image", typeof(String)));
                 table.Columns.Add(new DataColumn("Stock Code", typeof(String)));
                 table.Columns.Add(new DataColumn("Quantity", typeof(String)));
                 table.Columns.Add(new DataColumn("Total Price", typeof(String)));
                 OrderItems.DataSource = table;
                 OrderItems.DataBind();
             }
             ItemToRemove.Items.Add("");
         }
     }
     else
     {
         Response.Redirect("Login.aspx");
     }
 }
 protected void Remove_Click(object sender, EventArgs e)
 {
     //If there's nothing in the user's basket, or they have not selected an item to remove, generate an error message. Otherwise, update the relevant locations with how many of the selected item have been removed.
     if (basket.Count == 0)
     {
         Error.Text = "You have nothing in your basket.";
     }
     else if (ItemToRemove.SelectedIndex == 0)
     {
         Error.Text = "Please select an item to remove.";
     }
     else
     {
         if (NumberToRemove.SelectedItem.ToString() == "All")
         {
             basket.RemoveAt(ItemToRemove.SelectedIndex - 1);
             table.Rows[0].Delete();
             ItemToRemove.Items.Remove(ItemToRemove.SelectedItem);
         }
         else
         {
             basket[ItemToRemove.SelectedIndex - 1].quantity -= Int32.Parse(NumberToRemove.SelectedItem.ToString());
             basket[ItemToRemove.SelectedIndex - 1].total     = Math.Round(basket[ItemToRemove.SelectedIndex - 1].quantity * prices[basket[ItemToRemove.SelectedIndex - 1].number], 2);
             table.Rows[ItemToRemove.SelectedIndex - 1][2]    = basket[ItemToRemove.SelectedIndex - 1].quantity;
             table.Rows[ItemToRemove.SelectedIndex - 1][3]    = basket[ItemToRemove.SelectedIndex - 1].total;
             NumberToRemove.Items.Clear();
             if (basket[ItemToRemove.SelectedIndex - 1].quantity > 1)
             {
                 for (int i = 1; i < basket[ItemToRemove.SelectedIndex - 1].quantity; i++)
                 {
                     NumberToRemove.Items.Add(i.ToString());
                 }
             }
             NumberToRemove.Items.Add("All");
         }
         OrderItems.DataSource = table;
         OrderItems.DataBind();
     }
 }
 protected void AddToBasket_Click(object sender, EventArgs e)
 {
     //If no stock item or quantity is selected, generate an error message. If something is entered for both, check if the selected stock code matches anything already in the user's basket. If it does, add the quantity entered by the user to what's already there and update the cost accordingly. If not, add a new item.
     if (Stock.SelectedIndex == 0)
     {
         Error.Text = "You must first select an item.";
     }
     else if (Quantity.Text == "")
     {
         Error.Text = "You must first select a quantity.";
     }
     else
     {
         bool found     = false;
         var  itemToAdd = new Item();
         if (basket.Count > 0)
         {
             for (int i = 0; i < basket.Count; i++)
             {
                 if (basket[i].code == Stock.SelectedItem.ToString())
                 {
                     found = true;
                     basket[i].quantity += Int32.Parse(Quantity.Text);
                     basket[i].total     = Math.Round(basket[i].quantity * prices[basket[i].number], 2);
                     table.Rows[i][2]    = basket[i].quantity;
                     table.Rows[i][3]    = basket[i].total;
                     break;
                 }
             }
             if (found == false)
             {
                 itemToAdd.number   = Stock.SelectedIndex;
                 itemToAdd.code     = Stock.SelectedItem.ToString();
                 itemToAdd.quantity = Int32.Parse(Quantity.Text);
                 itemToAdd.total    = Math.Round(Int32.Parse(Quantity.Text) * prices[Stock.SelectedIndex], 2);
                 basket.Add(itemToAdd);
                 ItemToRemove.Items.Add(itemToAdd.code);
                 DataRow newRow = table.NewRow();
                 newRow["Image"]       = ResolveUrl("/Images/" + itemToAdd.code.ToString() + ".jpg");
                 newRow["Stock Code"]  = itemToAdd.code.ToString();
                 newRow["Quantity"]    = itemToAdd.quantity.ToString();
                 newRow["Total Price"] = itemToAdd.total.ToString();
                 table.Rows.Add(newRow);
             }
         }
         else
         {
             itemToAdd.number   = Stock.SelectedIndex;
             itemToAdd.code     = Stock.SelectedItem.ToString();
             itemToAdd.quantity = Int32.Parse(Quantity.Text);
             itemToAdd.total    = Math.Round(Int32.Parse(Quantity.Text) * prices[Stock.SelectedIndex], 2);
             basket.Add(itemToAdd);
             ItemToRemove.Items.Add(itemToAdd.code);
             DataRow newRow = table.NewRow();
             newRow["Image"]       = ResolveUrl("/Images/" + itemToAdd.code.ToString() + ".jpg");
             newRow["Stock Code"]  = itemToAdd.code.ToString();
             newRow["Quantity"]    = itemToAdd.quantity.ToString();
             newRow["Total Price"] = itemToAdd.total.ToString();
             table.Rows.Add(newRow);
         }
         OrderItems.DataSource = table;
         OrderItems.DataBind();
         Quantity.Text = "";
     }
 }