コード例 #1
0
    protected void lstBudget_SelectedIndexChanged(object sender, EventArgs e)
    {
        //
        //Toda vez que um usuário selecionar um orçamento, eu envio o valor para uma variável JavaScript,
        //para poder pegar na tela de pagamento dinamicamente, o processo é feito, para no caso de a venda
        //ser concretizada, o orçamento deverá ser apagado (Executando em sessão, pois não achei o método de 
        //fazer com hidden
        //
        //Page.ViewState["bugdetId"] = bugdetId;


        CreateBasket();
        Session["BudgetId"] = Convert.ToInt32(lstBudget.SelectedValue);
        ProductManager productManager = new ProductManager(this);
        SaleManager saleManager = new SaleManager(this);
        Budget budget = saleManager.GetBudget((Int32)Session["BudgetId"], Company.CompanyId);

        if (budget.Discount.HasValue)
        {
            if (budget.DiscountType == (int)DiscountType.Cash)
                txtDiscount.Text = budget.Discount.Value.ToString("##,##0.00");
            else
            {
#warning eliminar variavel temporaria/ criar método, ou executar função novamente
                Decimal? discount = budget.BudgetItems.Sum(bi => bi.Quantity * bi.UnitPrice) * (budget.Discount.Value / 100);
                if (discount.HasValue)
                    txtDiscount.Text = discount.Value.ToString("##,##0.00");
            }


        }
        if (budget.AdditionalCost.HasValue)
            txtDiscount.Text = (Convert.ToDecimal(txtDiscount.Text) - Convert.ToDecimal(budget.AdditionalCost.Value)).ToString("##,##0.00");
        foreach (DataRow row in productManager.GetProductsByBudget((Int32)Session["BudgetId"]).Rows)
        {
            string productName;
            if (!String.IsNullOrEmpty(row["Name"].ToString()))
                productName = row["Name"].ToString();
            else
                productName = row["SpecialProductName"].ToString();
            //string productName = row["Name"].ToString() + row["SpecialProductName"].ToString();

            if (String.IsNullOrEmpty(row["ProductId"].ToString()))
                productName += "&nbsp;&nbsp;&nbsp;&nbsp;<img src='" + ResolveClientUrl("~/App_Shared/themes/glasscyan/Company/Product_warning.gif") + "' alt='Este produto não se encontra cadastrado!' />";

            basket.Rows.Add(
                row["ProductId"],
                row["Quantity"],
                    productName,
                /*SerialNumber*/ "",
                row["ProductCode"],
                row["unitPrice"],
                Convert.ToDouble(row["Quantity"]) * Convert.ToDouble(row["unitPrice"]),
                row["UnitCost"] != DBNull.Value ? Convert.ToDouble(row["UnitCost"]) : 0
                );
        }

        BindGrid();
    }