public void AVenta(ClsVentas ObjVent) { //Doy de alta la venta ClsBDP BD = new ClsBDP(); //Creo un objeto de la clase de base de datos para utilizarla y realizar la comunicación //Obtengo los valores de la venta DateTime Fecha = ObjVent.GetFecha(); int Monto = ObjVent.GetMonto(); using (SqlCommand comand = new SqlCommand("PRAInsertarVenta", BD.Conn))//Selecciono el procedimiento almacenado { try { comand.CommandType = System.Data.CommandType.StoredProcedure; //Defino los parámetros a ingresar del procedimiento almacenado y le envío los datos correspondientes comand.Parameters.Add(new SqlParameter("@Fecha", Fecha)); comand.Parameters.Add(new SqlParameter("@Monto", Monto)); System.Data.DataTable DT = new System.Data.DataTable(); SqlDataAdapter DA = new SqlDataAdapter(comand); BD.Open(); //Abro la conexión DA.Fill(DT); //Doy Fill al dt BD.Close(); //Cierro la conexión MessageBox.Show("¡Venta generada con éxito!"); } catch (Exception ex)//Muestro una salida en pantalla del error en caso de que lo haya { Console.Write("Error al generar venta: " + ex.Message); } } }
public ActionResult ReporteVenta(String fFechaInicial, String fFechaFinal, String Tipo) { if (!ValidaSesion()) { return(RedirectToAction("LoginOut", "Account")); } if (!ValidaFuncionalidad(NumeroDePantalla, (byte)ClsEnumerables.Funcionalidades.REPORTE)) { return(RedirectToAction("Index", "Venta")); } String Ruta = Server.MapPath(ClsConfiguracion.RutaDescarga + "/" + MoSesion.NombreDeUsuario + "/"); if (!ClsAdicional.ClsArchivos.FileExists(Ruta, true)) { ClsAdicional.ClsArchivos.CrearDirectorio(Ruta); } if (string.IsNullOrEmpty(fFechaInicial)) { if (Fechas.Count() != 0) { fFechaInicial = Fechas.Min(x => x).ToString("yyyy-MM-dd"); } else { fFechaInicial = DateTime.Now.ToString("yyyy-MM-dd"); } } DateTime DFechaInicial = Convert.ToDateTime(fFechaInicial).AddHours(00).AddMinutes(00).AddSeconds(00); if (String.IsNullOrEmpty(fFechaFinal)) { fFechaFinal = DateTime.Now.ToString("yyyy-MM-dd"); } DateTime DFechaFinal = Convert.ToDateTime(fFechaFinal).AddHours(23).AddMinutes(59).AddSeconds(59); TempDataDictionary temporalData = new TempDataDictionary { { "FechaInicio", DFechaInicial.ToString("yyyy-MM-dd") }, { "FechaFin", DFechaFinal.ToString("yyyy-MM-dd") }, { "Web", (Tipo == "Web") } }; List <Mod.Entity.VentasTotalesDetalle_Result> VentasTotales = ClsVentas.VentaDetalle(DFechaInicial, DFechaFinal, 0); String FileName = String.Format("VentaTotal-{0}{1}{2}", DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day); PDFBuild <List <Mod.Entity.VentasTotalesDetalle_Result> > pDFBuild = new PDFBuild <List <Mod.Entity.VentasTotalesDetalle_Result> >(ControllerContext, "ReporteVenta", FileName, Ruta, temporalData, VentasTotales); if (Tipo != "Web") { return(pDFBuild.generaPDF()); } foreach (var tempdata in temporalData) { TempData[tempdata.Key] = tempdata.Value; } return(View(VentasTotales)); }
public JsonResult ObtenDetalleDeVentas(short fFolioDeOperacion) { String filtro = "FolioDeOperacion == " + fFolioDeOperacion.ToString(); var DetalleDeVenta = (from q in ClsVentas.getList(filtro) select new { q.FolioDeOperacion, q.NombreDeProducto, q.CantidadDeProducto, q.PrecioUnitario, q.ImporteDeProducto }); return(Json(new { data = DetalleDeVenta }, JsonRequestBehavior.AllowGet)); }
public ClsAdicional.ClsResultado GeneraTicket(short FolioDeVenta) { ClsAdicional.ClsResultado Resultado = new ClsAdicional.ClsResultado(true, String.Empty); try { List <ClsParametros> ParametrosTicket = (from q in ClsParametros.getList() where q.CveTipo == 2 select q).ToList(); var lista = (from q in ClsVentasTotales.getList() join v in ClsVentas.getList() on q.FolioDeOperacion equals v.FolioDeOperacion where q.FolioDeOperacion == FolioDeVenta select new { q, v }).ToList(); List <Object> Producto = new List <Object>(); foreach (var vproducto in lista) { Producto.Add(new { vproducto.v.NombreDeProducto, vproducto.v.PrecioUnitario, vproducto.v.CantidadDeProducto, vproducto.v.ImporteDeProducto }); } Object TicketObj = new { FolioDeVenta = FolioDeVenta, Empresa = (from q in ParametrosTicket where q.NombreDeParametro == "Empresa" select q.ValorDeParametro).FirstOrDefault(), Dir = (from q in ParametrosTicket where q.NombreDeParametro == "Direccion" select q.ValorDeParametro).FirstOrDefault(), Tel = (from q in ParametrosTicket where q.NombreDeParametro == "Telefono" select q.ValorDeParametro).FirstOrDefault(), Atiende = String.Format("{0} {1} {2}", MoSesion.NombreDePersona, MoSesion.ApellidoPaterno, MoSesion.ApellidoMaterno).ToUpper().Trim(), Fecha = String.Format("Fecha: {0} Hora: {1}", DateTime.Now.ToShortDateString(), DateTime.Now.ToShortTimeString()), ImporteTotal = lista.FirstOrDefault().q.ImporteNeto, ImporteEntregado = lista.FirstOrDefault().q.ImporteEntregado, Cambio = lista.FirstOrDefault().q.ImporteCambio, TextoFinal = (from q in ParametrosTicket where q.NombreDeParametro == "TextoFinal" select q.ValorDeParametro).FirstOrDefault(), ListaProducto = Producto }; //ClsTicket Ticket = new ClsTicket(); //Ticket.TextoCentro(String.Format("Empresa {0}", (from q in ParametrosTicket where q.NombreDeParametro == "Empresa" select q.ValorDeParametro).FirstOrDefault())); //ClsTicket.LineasCaracter("*"); //Ticket.TextoCentro(String.Format("Dir: {0}", (from q in ParametrosTicket where q.NombreDeParametro == "Direccion" select q.ValorDeParametro).FirstOrDefault())); //Ticket.TextoCentro(String.Format("Tel: {0}", (from q in ParametrosTicket where q.NombreDeParametro == "Telefono" select q.ValorDeParametro).FirstOrDefault())); //Ticket.TextoIzquierda(String.Empty); //Ticket.TextoCentro("Ticket de Venta"); //Ticket.TextoIzquierda(String.Format("Fecha: {0} Hora: {1}", DateTime.Now.ToShortDateString(), DateTime.Now.ToShortTimeString())); //Ticket.TextoIzquierda("Le Atendio: " + String.Format("{0} {1} {2}", MoSesion.NombreDePersona, MoSesion.ApellidoPaterno, MoSesion.ApellidoMaterno).ToUpper()); //Ticket.TextoIzquierda(String.Empty); //ClsTicket.LineasCaracter("*"); //ClsTicket.EncabezadoVenta(); //ClsTicket.LineasCaracter("*"); //foreach (var vproducto in lista) //{ // Ticket.AgregaArticulo(vproducto.v.NombreDeProducto, vproducto.v.PrecioUnitario, vproducto.v.CantidadDeProducto, vproducto.v.ImporteDeProducto); //} //ClsTicket.LineasCaracter("*"); //Ticket.AgregaTotales("Total:", lista.FirstOrDefault().q.ImporteNeto); //Ticket.TextoIzquierda(String.Empty); //Ticket.AgregaTotales("Efectivo Entregado:", lista.FirstOrDefault().q.ImporteEntregado); //Ticket.AgregaTotales("Efectivo Devuelto:", lista.FirstOrDefault().q.ImporteCambio); //Ticket.TextoIzquierda(String.Empty); //ClsTicket.LineasCaracter("*"); //Ticket.TextoCentro((from q in ParametrosTicket where q.NombreDeParametro == "TextoFinal" select q.ValorDeParametro).FirstOrDefault()); //ClsTicket.LineasCaracter("*"); //Ticket.NombreDeTicket = String.Format("Ticket{0}{1}.txt", lista.FirstOrDefault().q.FolioDeOperacion, DateTime.Now.ToString("yyyyMMdd")); //Ticket.RutaDeTicket = System.Web.HttpContext.Current.Server.MapPath(ClsConfiguracion.Tickets); //Ticket.ImprimirTiket("POS-58", ref Resultado); //if (!Resultado.Resultado) //{ // ClsBitacora.GeneraBitacora(1, 1, "ImprimirTiket", Resultado.Mensaje); //} // Ticket.RegresaTextoTicket(); Resultado.Adicional = TicketObj; } catch (Exception e) { ClsBitacora.GeneraBitacora((new ClsVentasTotales()).NumeroDePantallaKuup, 1, "GeneraTicket", String.Format(Recursos.Textos.Bitacora_TextoDeError, e.GetType().ToString(), e.Message.Trim(), e.GetHashCode().ToString())); } return(Resultado); }
public JsonResult DeleteDeProducto(String RegistroPrevio, String RegistrosPrevios) { List <ClsVentas> Registro = new List <ClsVentas>(); ClsVentas RegistroPrev = ClsAdicional.Deserializar <ClsVentas>(RegistroPrevio); List <ClsVentas> RegistrosPrev = ClsAdicional.Deserializar <List <ClsVentas> >(RegistrosPrevios); List <ClsConfiguraPaquetes> Paquete = new List <ClsConfiguraPaquetes>(); String Filtro = String.Empty; bool EsHijo = false; if (RegistrosPrev.FindAll(x => x.NumeroDeProducto != RegistroPrev.NumeroDeProducto).Count() != 0) { foreach (var item in RegistrosPrev.FindAll(x => x.NumeroDeProducto != RegistroPrev.NumeroDeProducto)) { Filtro = String.Format("NumeroDeProductoPadre == {0} && NumeroDeProductoHijo == {1}", RegistroPrev.NumeroDeProducto, item.NumeroDeProducto); var Encontrado = ClsConfiguraPaquetes.getList(Filtro); if (Encontrado.Count() != 0) { Paquete.AddRange(Encontrado); } else { Filtro = String.Format("NumeroDeProductoPadre == {0} && NumeroDeProductoHijo == {1}", item.NumeroDeProducto, RegistroPrev.NumeroDeProducto); Encontrado = ClsConfiguraPaquetes.getList(Filtro); if (Encontrado.Count() != 0) { EsHijo = true; Paquete.AddRange(Encontrado); } } } } if (Paquete.Count() != 0) { Registro.Add(new ClsVentas() { NumeroDeProducto = RegistroPrev.NumeroDeProducto, CodigoDeBarras = RegistroPrev.CodigoDeBarras, NumeroDeTipoDeProducto = RegistroPrev.NumeroDeTipoDeProducto, NumeroDeMarca = RegistroPrev.NumeroDeMarca, CantidadDeProducto = 0, ImporteDeProducto = 0, PrecioUnitario = 0, NombreDeProducto = RegistroPrev.NombreDeProducto }); short Cantidad = RegistroPrev.CantidadDeProducto; foreach (var pac in Paquete) { var Item = RegistrosPrev.Find(x => x.NumeroDeProducto == pac.NumeroDeProductoHijo); if (EsHijo) { Item = RegistrosPrev.Find(x => x.NumeroDeProducto == pac.NumeroDeProductoPadre); } if (Cantidad > Item.CantidadDeProducto) { Cantidad = (short)(Cantidad - Item.CantidadDeProducto); Registro.Add(new ClsVentas() { NumeroDeProducto = Item.NumeroDeProducto, CodigoDeBarras = Item.CodigoDeBarras, NumeroDeTipoDeProducto = Item.NumeroDeTipoDeProducto, NumeroDeMarca = Item.NumeroDeMarca, CantidadDeProducto = 0, ImporteDeProducto = 0, PrecioUnitario = 0, NombreDeProducto = Item.NombreDeProducto }); } else if (Cantidad < Item.CantidadDeProducto) { Registro.Add(new ClsVentas() { NumeroDeProducto = Item.NumeroDeProducto, CodigoDeBarras = Item.CodigoDeBarras, NumeroDeTipoDeProducto = Item.NumeroDeTipoDeProducto, NumeroDeMarca = Item.NumeroDeMarca, CantidadDeProducto = (short)(Item.CantidadDeProducto - Cantidad), ImporteDeProducto = 0, PrecioUnitario = 0, NombreDeProducto = Item.NombreDeProducto }); Cantidad = 0; } else { Registro.Add(new ClsVentas() { NumeroDeProducto = Item.NumeroDeProducto, CodigoDeBarras = Item.CodigoDeBarras, NumeroDeTipoDeProducto = Item.NumeroDeTipoDeProducto, NumeroDeMarca = Item.NumeroDeMarca, CantidadDeProducto = 0, ImporteDeProducto = 0, PrecioUnitario = 0, NombreDeProducto = Item.NombreDeProducto }); Cantidad = 0; } } } else { Registro.Add(new ClsVentas() { NumeroDeProducto = RegistroPrev.NumeroDeProducto, CodigoDeBarras = RegistroPrev.CodigoDeBarras, NumeroDeTipoDeProducto = RegistroPrev.NumeroDeTipoDeProducto, NumeroDeMarca = RegistroPrev.NumeroDeMarca, CantidadDeProducto = 0, ImporteDeProducto = 0, PrecioUnitario = 0, NombreDeProducto = RegistroPrev.NombreDeProducto }); } List <ClsVentas> RegistroTemp = new List <ClsVentas>(); foreach (var reg in Registro) { if (RegistrosPrev.Exists(x => x.NumeroDeTipoDeProducto == reg.NumeroDeTipoDeProducto && x.NumeroDeMarca == reg.NumeroDeMarca && x.NumeroDeProducto != reg.NumeroDeProducto)) { List <ClsVentas> RegistroImplicados = RegistrosPrev.FindAll(x => x.NumeroDeTipoDeProducto == reg.NumeroDeTipoDeProducto && x.NumeroDeMarca == reg.NumeroDeMarca && x.NumeroDeProducto != reg.NumeroDeProducto); short CantidadMayore = (short)(RegistroImplicados.Sum(x => x.CantidadDeProducto) + reg.CantidadDeProducto); List <ClsConfiguraMayoreos> Mayoreos = ClsConfiguraMayoreos.getList(String.Format("NumeroDeProducto == {0} && CodigoDeBarras == \"{1}\" && CantidadMinima <= {2} && CantidadMaxima >= {2}", reg.NumeroDeProducto, reg.CodigoDeBarras, CantidadMayore)); if (Mayoreos.Count() != 0) { if (Mayoreos.FirstOrDefault().PrecioDeMayoreo != RegistroImplicados.FirstOrDefault().PrecioUnitario) { foreach (var item in RegistrosPrev.FindAll(x => x.NumeroDeTipoDeProducto == reg.NumeroDeTipoDeProducto && x.NumeroDeMarca == reg.NumeroDeMarca && x.NumeroDeProducto != reg.NumeroDeProducto)) { if (!Registro.Exists(x => x.NumeroDeProducto == item.NumeroDeProducto)) { RegistroTemp.Add(new ClsVentas() { NumeroDeProducto = item.NumeroDeProducto, CodigoDeBarras = item.CodigoDeBarras, NumeroDeTipoDeProducto = item.NumeroDeTipoDeProducto, NumeroDeMarca = item.NumeroDeMarca, CantidadDeProducto = item.CantidadDeProducto, ImporteDeProducto = Math.Round(item.CantidadDeProducto * Mayoreos.FirstOrDefault().PrecioDeMayoreo, 2), PrecioUnitario = Mayoreos.FirstOrDefault().PrecioDeMayoreo, NombreDeProducto = item.NombreDeProducto }); } else { var previo = Registro.Find(x => x.NumeroDeProducto == item.NumeroDeProducto); if (previo.CantidadDeProducto != 0) { previo.PrecioUnitario = Mayoreos.FirstOrDefault().PrecioDeMayoreo; previo.ImporteDeProducto = Math.Round(reg.CantidadDeProducto * reg.PrecioUnitario, 2); } } } if (reg.CantidadDeProducto != 0) { reg.PrecioUnitario = Mayoreos.FirstOrDefault().PrecioDeMayoreo; reg.ImporteDeProducto = Math.Round(reg.CantidadDeProducto * reg.PrecioUnitario, 2); } } } else { foreach (var item in RegistrosPrev.FindAll(x => x.NumeroDeTipoDeProducto == reg.NumeroDeTipoDeProducto && x.NumeroDeMarca == reg.NumeroDeMarca && x.NumeroDeProducto != reg.NumeroDeProducto)) { if (!Registro.Exists(x => x.NumeroDeProducto == item.NumeroDeProducto)) { ClsProductos producto = ClsProductos.getList("NumeroDeProducto == " + item.NumeroDeProducto + " && CodigoDeBarras == \"" + item.CodigoDeBarras + "\"").FirstOrDefault(); if (producto.PrecioUnitario != item.PrecioUnitario) { RegistroTemp.Add(new ClsVentas() { NumeroDeProducto = item.NumeroDeProducto, CodigoDeBarras = item.CodigoDeBarras, NumeroDeTipoDeProducto = item.NumeroDeTipoDeProducto, NumeroDeMarca = item.NumeroDeMarca, CantidadDeProducto = item.CantidadDeProducto, ImporteDeProducto = Math.Round(item.CantidadDeProducto * producto.PrecioUnitario, 2), PrecioUnitario = producto.PrecioUnitario, NombreDeProducto = item.NombreDeProducto }); } } else { var previo = Registro.Find(x => x.NumeroDeProducto == item.NumeroDeProducto); if (previo.CantidadDeProducto != 0) { ClsProductos producto = ClsProductos.getList("NumeroDeProducto == " + previo.NumeroDeProducto + " && CodigoDeBarras == \"" + previo.CodigoDeBarras + "\"").FirstOrDefault(); previo.PrecioUnitario = producto.PrecioUnitario; previo.ImporteDeProducto = Math.Round(previo.CantidadDeProducto * previo.PrecioUnitario, 2); } } } if (reg.CantidadDeProducto != 0) { ClsProductos producto = ClsProductos.getList("NumeroDeProducto == " + reg.NumeroDeProducto + " && CodigoDeBarras == \"" + reg.CodigoDeBarras + "\"").FirstOrDefault(); reg.PrecioUnitario = producto.PrecioUnitario; reg.ImporteDeProducto = Math.Round(reg.CantidadDeProducto * reg.PrecioUnitario, 2); } } } } Registro.AddRange(RegistroTemp); return(Json(new { Registro }, JsonRequestBehavior.AllowGet)); }