Example #1
0
    protected void Page_Load(object sender, EventArgs e)
    {
        Response.CacheControl = "no-cache";

        if (Session["NumeroPedido"] == null && Session["PedidoCarrito"] == null)
        {
            Session["Mensaje"] = "¡ERROR! Para acceder a los detalles del pedido debe seleccionar un link de detalles.";
            Response.Redirect("~/Error.aspx");
        }

        try
        {
            Pedido pedido = LogicaPedido.BuscarPedido((int)Session["NumeroPedido"]);

            btnEnviarPedido.Visible = true;

            if (pedido.Enviado)
            {
                btnEnviarPedido.Visible = false;
                lblMensaje.ForeColor    = System.Drawing.Color.Green;
                lblMensaje.Text         = "El pedido ya fue enviado al cliente.";
            }
            else
            {
                btnEnviarPedido.Visible = true;
            }

            if (pedido.Numero == 0)
            {
                List <Pedido> pedidosSolicitados = (List <Pedido>)Application["PedidoSolicitados"];

                foreach (Pedido p in pedidosSolicitados)
                {
                    if (p.Numero == (int)Session["NumeroPedido"])
                    {
                        pedido = p;
                    }
                }

                btnEnviarPedido.Visible = false;
            }

            imgFoto.ImageUrl      = pedido.Registrado.Imagen;
            lblNombreUsuario.Text = pedido.Registrado.NombreCompleto;
            lblCodigoPedido.Text  = "|| Pedido número: " + pedido.Numero + " ||     Solicitado el día : " + pedido.Fecha.ToShortDateString() + "  ||";

            List <LineaPedido> pedidos = pedido.LineasPedidos;

            DataTable dtLineaPedido = new DataTable();
            dtLineaPedido.Columns.Add(new DataColumn("Nombre"));
            dtLineaPedido.Columns.Add(new DataColumn("Cantidad"));
            dtLineaPedido.Columns.Add(new DataColumn("Precio"));
            dtLineaPedido.Columns.Add(new DataColumn("PrecioTotal"));

            double PrecioTotal = 0;

            foreach (LineaPedido lp in pedidos)
            {
                DataRow drwLineaPedido = dtLineaPedido.NewRow();
                drwLineaPedido["Nombre"]      = lp.PArticulo.Nombre;
                drwLineaPedido["Cantidad"]    = lp.Cantidad;
                drwLineaPedido["Precio"]      = lp.PArticulo.Precio;
                drwLineaPedido["PrecioTotal"] = lp.Cantidad * lp.PArticulo.Precio;

                PrecioTotal += lp.Cantidad * lp.PArticulo.Precio;

                dtLineaPedido.Rows.Add(drwLineaPedido);
            }

            lblPrecioTotal.Text = "Precio Final = USD " + PrecioTotal;

            gvDetallePedido.DataSource = dtLineaPedido;
            gvDetallePedido.DataBind();

            AparecerDesaparecerBotones(pedido);
        }
        catch (ApplicationException ex)
        {
            lblMensaje.ForeColor = System.Drawing.Color.Red;
            lblMensaje.Text      = "¡Error! " + ex.Message;
        }

        catch
        {
            lblMensaje.ForeColor = System.Drawing.Color.Red;
            lblMensaje.Text      = "¡Error! Al cargar la pagina.";
        }
    }
Example #2
0
    protected void btnAceptar_Click(object sender, EventArgs e)
    {
        if (seleccion)
        {
            try
            {
                Pedido pedido = LogicaPedido.BuscarPedido((int)Session["NumeroPedido"]);

                LogicaPedido.EliminarPedido(pedido);

                lblMensaje.ForeColor = System.Drawing.Color.Green;
                lblMensaje.Text      = "¡Pedido eliminado exitosamente.!";

                DesactivarBotones();
                btnEliminar.Visible = false;
            }
            catch (ApplicationException ex)
            {
                lblMensaje.ForeColor = System.Drawing.Color.Red;
                lblMensaje.Text      = "¡Error! " + ex.Message;
            }

            catch
            {
                lblMensaje.ForeColor = System.Drawing.Color.Red;
                lblMensaje.Text      = "¡Error! Al eliminar el pedido.";
            }
        }
        else
        {
            try
            {
                Pedido pedido = LogicaPedido.BuscarPedido((int)Session["NumeroPedido"]);

                bool   noDuplicar        = false;
                string articuloEliminado = "";

                foreach (LineaPedido lp in pedido.LineasPedidos)
                {
                    if (lp.PArticulo.Eliminado == true)
                    {
                        noDuplicar         = true;
                        articuloEliminado += lp.PArticulo.Nombre;
                    }
                }

                if (noDuplicar)
                {
                    btnDuplicar.Visible = false;
                    btnAceptar.Visible  = false;
                    btnCancelar.Visible = false;
                    throw new ExcepcionPresentacion("No se puede duplicar el pedido porque " + articuloEliminado + " ya no esta/n disponible/s.");
                }
                else
                {
                    pedido.Enviado = false; //duplica pero no lo envia

                    LogicaPedido.AgregarPedido(pedido);

                    lblMensaje.ForeColor = System.Drawing.Color.Green;
                    lblMensaje.Text      = "¡Pedido duplicado exitosamente.!";

                    DesactivarBotones();
                    btnDuplicar.Visible = false;
                }
            }
            catch (ApplicationException ex)
            {
                lblMensaje.ForeColor = System.Drawing.Color.Red;
                lblMensaje.Text      = "¡Error! " + ex.Message;
            }

            catch
            {
                lblMensaje.ForeColor = System.Drawing.Color.Red;
                lblMensaje.Text      = "¡Error! Al duplicar el pedido.";
            }
        }
    }