Exemplo n.º 1
0
        //Ejecuta el metodo para cobrar, envia las ordenes a las sucursales correspondientes(Suministradora y distribuidora)
        protected void btnPagar_Click(object sender, EventArgs e)
        {
            if (MVProducto.ListaDelCarrito.Count > 0)
            {
                //Controles de la master page
                Label    lblUidDireccion       = Master.FindControl("lblUidDireccion") as Label;
                Label    lblTotalDeOrden       = Master.FindControl("lblTotalDeOrden") as Label;
                GridView GVInFormacionDePedido = Master.FindControl("GVInFormacionDePedido") as GridView;
                Label    lblProductosEnCarrito = Master.FindControl("lblProductosEnCarrito") as Label;
                //Variables
                Guid    UidOrden     = Guid.NewGuid();
                decimal total        = decimal.Parse(lblTotalDeProductos.Text);
                Guid    UidUsuario   = new Guid(Session["IdUsuario"].ToString());
                Guid    UidDireccion = new Guid(lblUidDireccion.Text);


                if (!MVProducto.ListaDelInformacionSucursales.Exists(t => t.UidTarifario == Guid.Empty))
                {
                    //Guarda la orden con la sucursal
                    for (int i = 0; i < MVProducto.ListaDelCarrito.Count; i++)
                    {
                        VMProducto objeto           = MVProducto.ListaDelInformacionSucursales.Find(Suc => Suc.UidSucursal == MVProducto.ListaDelCarrito[i].UidSucursal);
                        var        objetos          = MVProducto.ListaDelCarrito.FindAll(Suc => Suc.UidSucursal == MVProducto.ListaDelCarrito[i].UidSucursal);
                        decimal    totalSucursal    = 0.0m;
                        Guid       UidOrdenSucursal = Guid.NewGuid();
                        foreach (var item in objetos)
                        {
                            totalSucursal = totalSucursal + item.Subtotal;
                            //Guarda la relacion con los productos
                            Guid   Uidnota = new Guid();
                            string mensaje = "";
                            if (item.UidNota == null || item.UidNota == Guid.Empty)
                            {
                                Uidnota = Guid.Empty;
                            }
                            else
                            {
                                Uidnota = item.UidNota;
                            }
                            if (!string.IsNullOrEmpty(item.StrNota) && item.StrNota != null)
                            {
                                mensaje = item.StrNota;
                            }
                            MVOrden.GuardaProducto(UidOrdenSucursal, item.UidSeccionPoducto, item.Cantidad, item.StrCosto, item.UidSucursal, item.UidRegistroProductoEnCarrito, Uidnota, mensaje);
                        }
                        //Envia la orden a la sucursal suministradora
                        //Crea el codigo de entrega
                        Random  Codigo         = new Random();
                        decimal DPropina       = 0.0m;
                        long    CodigoDeEnrega = Codigo.Next(00001, 99999);
                        MVOrden.GuardaOrden(UidOrden, total, UidUsuario, UidDireccion, objeto.UidSucursal, totalSucursal, UidOrdenSucursal, CodigoDeEnrega);
                        // Envia la orden a la sucursal distribuidora
                        //MVTarifario.AgregarTarifarioOrden(UidOrden: UidOrdenSucursal, UidTarifario: objeto.UidTarifario, DPropina: DPropina);
                        //Una vez que se haya guardado ella base de datos se le cambia el estatus a la orden
                        MVOrden.AgregaEstatusALaOrden(new Guid("DE294EFC-C549-4DDD-A0D1-B0E1E2039ECC"), UidOrden: UidOrdenSucursal, StrParametro: "U", UidSucursal: objeto.UidSucursal);
                        MVProducto.ListaDelCarrito.RemoveAll(sucursal => sucursal.UidSucursal == objeto.UidSucursal);
                        i = i - 1;
                    }

                    MVProducto.ListaDelCarrito.Clear();
                    MVProducto.ListaDelInformacionSucursales.Clear();
                    lblCantidadProductos.Text  = string.Empty;
                    lblTotalDeProductos.Text   = string.Empty;
                    lblProductosEnCarrito.Text = string.Empty;
                    DLCarrito.DataSource       = MVProducto.ListaDelCarrito;
                    DLCarrito.DataBind();

                    MVOrden.ObtenerInformacionDeLaUltimaOrden(UidUsuario);
                    GVInFormacionDePedido.DataSource = MVOrden.ListaDeInformacionDeOrden;
                    GVInFormacionDePedido.DataBind();

                    double totalOrden = 0.0d;
                    foreach (VMOrden item in MVOrden.ListaDeInformacionDeOrden)
                    {
                        totalOrden = totalOrden + item.MCostoTarifario + item.MSubtotalSucursal;
                    }
                    lblTotalDeOrden.Text = totalOrden.ToString();
                    ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "none", "<script>$('#ModalInformacionDeOrden').modal('show');</script>", false);

                    //DLDetallesCompra.DataSource = null;
                    //DLDetallesCompra.DataBind();

                    MuestraDetallesDeLaOrdenGeneral();
                }
                else
                {
                    ScriptManager.RegisterStartupScript(this, GetType(), "showalert", "alert('No se ha elegido una empresa distribuidora dentro de la orden');", true);
                }
            }
        }