public void LoadTest() { var db = new ErpContext(); var dia = new DiaContable() { Fecha = DateTime.Now, Abierto = true }; db.Set <DiaContable>().Add(dia); var user = new Usuario() { UserName = "******" }; db.SaveChanges(); var venta = new Venta() { Fecha = DateTime.Now, DiaContable = dia, Elaboraciones = new List <DetalleDeVenta>() { new DetalleDeVenta() { ElaboracionId = 50, Cantidad = 2 } } }; }
public FichaDeCosto(int menuId) { InitializeComponent(); var db = new ErpContext(); var _productoService = new ProductoService(db); var menu = db.Set <Elaboracion>().Find(menuId); //compras nombreMenu.Text = menu.Nombre; var productosData = menu.Productos.Select(p => new { Producto = p.Producto.Nombre, p.Cantidad, UnidadDeMedida = p.UnidadDeMedida.Siglas, Costo = p.Cantidad * _productoService.GetPrecioUnitarioDeProducto(p.ProductoId, p.UnidadDeMedidaId) }); ProductosReport.DataSource = productosData; this.produtoCell.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] { new DevExpress.XtraReports.UI.XRBinding("Text", null, "Producto"), }); this.cantidadCell.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] { new DevExpress.XtraReports.UI.XRBinding("Text", null, "Cantidad") }); this.uMCell.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] { new DevExpress.XtraReports.UI.XRBinding("Text", null, "UnidadDeMedida") }); this.costoCell.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] { new DevExpress.XtraReports.UI.XRBinding("Text", null, "Costo") }); costoTotalCell.Text = String.Format("{0:C}", productosData.Sum(c => c.Costo)); //ventas AgregosReport.DataSource = menu.Agregados; this.agregoCell.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] { new DevExpress.XtraReports.UI.XRBinding("Text", null, "Producto.Nombre") }); this.agregoCantidadCell.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] { new DevExpress.XtraReports.UI.XRBinding("Text", null, "Cantidad") }); this.agregoUmCell.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] { new DevExpress.XtraReports.UI.XRBinding("Text", null, "UnidadDeMedida.Siglas") }); }
public ActionResult Firmar(string nombreUsuario, string contraseña) { var usuario = UserManager.Find(nombreUsuario, contraseña); if (usuario == null) { TempData["error"] = "Nombre de usuario o contraseña incorrecta"; return(RedirectToAction("Index")); } var vendedor = _db.Set <Vendedor>().SingleOrDefault(v => v.UsuarioId == usuario.Id); if (vendedor == null || usuario.Roles.Any(r => r.Role.Name == RolesMontin.Administrador)) { TempData["error"] = "Este usuario no registra la asistencia"; return(RedirectToAction("Index")); } var diaContable = _periodoContableService.GetDiaContableActual(); var asistencia = _db.Asistencias.SingleOrDefault(a => a.DiaContableId == diaContable.Id && a.VendedorId == vendedor.Id); if (asistencia == null) { asistencia = new Asistencia() { VendedorId = vendedor.Id, DiaContableId = diaContable.Id }; _db.Set <Asistencia>().Add(asistencia); } if (asistencia.Entrada == null) { asistencia.Entrada = DateTime.Now; } else if (asistencia.Salida == null) { asistencia.Salida = DateTime.Now; } _db.SaveChanges(); TempData["exito"] = "Asistencia registrada correctamente"; return(RedirectToAction("Index")); }
public Inventario(string lugar, DateTime?fecha) { InitializeComponent(); var db = new ErpContext(); fecha_reporte.Text = "Fecha del reporte: " + DateTime.Now.ToShortDateString(); if (fecha == null) { titulo_reporte.Text += " de " + lugar + " actualmente"; if (lugar == "Almacen") { DataSource = db.ExistenciasEnAlmacenes.Where(e => e.Producto.Producto.Activo).Select(e => new { Producto = e.Producto.Producto.Nombre, Um = e.Producto.UnidadDeMedida.Siglas, Cantidad = e.ExistenciaEnAlmacen, Valor = e.Producto.PrecioUnitario * e.ExistenciaEnAlmacen }).OrderBy(p => p.Producto).ToList(); } else { var cc = db.CentrosDeCostos.SingleOrDefault(c => c.Nombre == lugar); DataSource = db.ExistenciasEnCentroDeCostos.Where(e => e.Producto.Producto.Activo && e.CentroDeCostoId == cc.Id && e.Producto.Producto.EsInventariable).Select(e => new { Producto = e.Producto.Producto.Nombre, Um = e.Producto.UnidadDeMedida.Siglas, Cantidad = e.Cantidad, Valor = Math.Round(e.Producto.PrecioUnitario * e.Cantidad, 2) }).OrderBy(p => p.Producto).ToList(); } } else { titulo_reporte.Text += " de " + lugar + " al cierre del dia " + fecha.Value.ToShortDateString(); fecha = fecha.Value.AddDays(1); if (lugar == "Almacen") { var entradasAlmacen = db.Set <EntradaAlmacen>().Where(d => d.DiaContable.Fecha >= fecha).GroupBy(d => d.Producto).Select(d => new { Producto = d.Key, Cantidad = d.Sum(e => e.Cantidad) }); var salidasAlmacen = db.Set <DetalleSalidaAlmacen>().Where(d => d.Vale.DiaContable.Fecha >= fecha).GroupBy(d => d.Producto).Select(d => new { Producto = d.Key.Producto, Cantidad = d.Sum(e => e.Cantidad) }); var mermasAlmacen = db.Set <SalidaPorMerma>().Where(d => d.DiaContable.Fecha >= fecha).ToList().GroupBy(d => d.ExistenciaAlmacen).Select(d => new { Producto = d.Key.Producto, Cantidad = d.Sum(e => e.Cantidad * (d.Key.Producto.UnidadDeMedida.FactorDeConversion / e.UnidadDeMedida.FactorDeConversion)) }).ToList(); DataSource = db.ExistenciasEnAlmacenes.Where(e => e.Producto.Producto.Activo).ToList().Select(e => new { Producto = e.Producto.Producto.Nombre, Um = e.Producto.UnidadDeMedida.Siglas, Cantidad = e.ExistenciaEnAlmacen - (entradasAlmacen.Any(p => p.Producto.Id == e.ProductoId)?entradasAlmacen.SingleOrDefault(p => p.Producto.Id == e.ProductoId).Cantidad:0) + (salidasAlmacen.Any(p => p.Producto.Id == e.ProductoId) ? salidasAlmacen.SingleOrDefault(p => p.Producto.Id == e.ProductoId).Cantidad : 0) + (mermasAlmacen.Any(p => p.Producto.Id == e.ProductoId) ? mermasAlmacen.SingleOrDefault(p => p.Producto.Id == e.ProductoId).Cantidad : 0), Valor = e.Producto.PrecioUnitario * e.ExistenciaEnAlmacen }).OrderBy(p => p.Producto).ToList(); } else { var cc = db.CentrosDeCostos.SingleOrDefault(c => c.Nombre == lugar); var movimientos = db.MovimientosDeProductos.Where(m => m.DiaContable.Fecha >= fecha && m.CentroDeCostoId == cc.Id).Include(m => m.Tipo).ToList().GroupBy(m => m.Producto).Select(m => new { Producto = m.Key, Cantidad = m.Sum(d => d.Cantidad * d.Tipo.Factor) }).ToList(); DataSource = db.ExistenciasEnCentroDeCostos.Where(e => e.Producto.Producto.Activo && e.CentroDeCostoId == cc.Id && e.Producto.Producto.EsInventariable).ToList().Select(e => new { Producto = e.Producto.Producto.Nombre, Um = e.Producto.UnidadDeMedida.Siglas, Cantidad = e.Cantidad - (movimientos.Any(m => m.Producto.Id == e.Producto.Id)? movimientos.SingleOrDefault(m => m.Producto.Id == e.Producto.Id).Cantidad:0), Valor = Math.Round(e.Producto.PrecioUnitario * e.Cantidad, 2) }).OrderBy(p => p.Producto).ToList(); } } this.productoCell.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] { new DevExpress.XtraReports.UI.XRBinding("Text", null, "Producto") }); this.umCell.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] { new DevExpress.XtraReports.UI.XRBinding("Text", null, "Um") }); this.cantidadCell.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] { new DevExpress.XtraReports.UI.XRBinding("Text", null, "Cantidad") }); this.valorCell.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] { new DevExpress.XtraReports.UI.XRBinding("Text", null, "Valor", "{0:C}") }); }