//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); } } }