public IActionResult PorTurno() { var dependiente = _context.Set <Dependiente>().SingleOrDefault(u => u.Usuario.UserName == User.Identity.Name); if (!_context.Set <Turno>().Any(t => t.DependienteId == dependiente.Id && t.Activo)) { return(RedirectToAction("Nuevo", "Turnos")); } var turno = _context.Set <Turno>() .Include(t => t.Bar) .SingleOrDefault(t => t.DependienteId == dependiente.Id && t.Activo); ControlExistencia control; if (_context.Set <ControlExistencia>().Any(c => c.TurnoId == turno.Id && c.Activo)) { control = _context.Set <ControlExistencia>() .SingleOrDefault(c => c.TurnoId == turno.Id && c.Activo); } else { control = new ControlExistencia { Turno = turno, Fecha = DateTime.Now, Activo = true, }; _context.Add(control); _context.SaveChanges(); } //agregar solo productos del bar del turno return(RedirectToAction(nameof(Edit), new { Id = control.Id })); }
public IActionResult Create([Bind("Id,TurnoId")] ControlExistencia controlExistencia) { if (ModelState.IsValid) { controlExistencia.Fecha = DateTime.Now; controlExistencia.Activo = true; _context.Add(controlExistencia); _context.SaveChanges(); TempData["exito"] = "La acción se ha realizado correctamente"; return(RedirectToAction(nameof(Index))); } ViewData["TurnoId"] = new SelectList(_context.Turnos.Include(t => t.Dependiente).Include(t => t.Bar), "Id", "Descripcion", controlExistencia.TurnoId); TempData["error"] = "Error en ralizar esta acción"; return(View(controlExistencia)); }
public void AddExistencias() { for (int i = 1; i <= 4; i++) { //turno de un Bar var turno = new Turno { Id = i, Activo = false, BarId = 1, DependienteId = 1, FechaInicio = DateTime.Now.AddHours(-(8 - i)), FechaFin = DateTime.Now.AddHours(-(4 - i)) }; _db.Add(turno); var turno2 = new Turno { Id = i * 10, Activo = false, BarId = 2, DependienteId = 2, FechaInicio = DateTime.Now.AddHours(-(8 - i)), FechaFin = DateTime.Now.AddHours(-(4 - i)) }; _db.Add(turno2); var controlExistencia = new ControlExistencia { Id = i, Activo = false, Aprobado = true, TurnoId = i }; _db.Add(controlExistencia); var controlExistenciaVenta = new ControlExistenciaVenta { Id = i, Activo = false, Aprobado = true, TurnoId = i }; _db.Add(controlExistenciaVenta); var controlExistencia2 = new ControlExistencia { Id = i * 10, Activo = false, Aprobado = true, TurnoId = i * 10 }; _db.Add(controlExistencia2); var controlExistenciaVenta2 = new ControlExistenciaVenta { Id = i * 10, Activo = false, Aprobado = true, TurnoId = i * 10 }; _db.Add(controlExistenciaVenta2); for (int j = 1; j <= 4; j++) { _db.Add(new DetalleControlExistencia { Id = i * 10 + j, ControlId = i, ProductoId = j, Costo = 0.5m, Cantidad = 10 - i }); _db.Add(new DetalleControlExistenciaVenta { Id = i * 10 + j, ControlId = i, ProductoId = j, Costo = 0.5m, Cantidad = 10 - i }); _db.Add(new DetalleControlExistencia { Id = i * 100 + j, ControlId = i * 10, ProductoId = j, Costo = 0.5m, Cantidad = 10 - i }); _db.Add(new DetalleControlExistenciaVenta { Id = i * 100 + j, ControlId = i * 10, ProductoId = j, Costo = 0.5m, Cantidad = 10 - i }); } } _db.SaveChanges(); }
public IActionResult Nuevo([Bind("DependienteId,BarId")] Turno turno) { if (turno.BarId > 0 && turno.DependienteId > 0) { turno.Activo = true; turno.FechaInicio = DateTime.Now; _context.Add(turno); var control = new ControlExistencia { Turno = turno, Fecha = DateTime.Now, Activo = true, }; var existenciasAnteriores = _existenciaService.ExistenciaAnterior(turno.BarId, 0, DateTime.Now); control.Detalles = existenciasAnteriores.Select(e => new DetalleControlExistencia { ProductoId = e.ProductoId, Cantidad = e.Cantidad, Costo = _context.Set <Producto>().Find(e.ProductoId).Costo }).ToList(); _context.Add(control); var controlVenta = new ControlExistenciaVenta { Turno = turno, Fecha = DateTime.Now, Activo = true, }; var existenciasVentaAnteriores = _existenciaService.ExistenciaVentaAnterior(turno.BarId, 0, DateTime.Now); controlVenta.Detalles = existenciasVentaAnteriores.Select(e => new DetalleControlExistenciaVenta { ProductoId = e.ProductoId, Cantidad = e.Cantidad, Costo = _context.Set <Producto>().Find(e.ProductoId).Costo, Precio = _context.Set <Producto>().Find(e.ProductoId).Precio }).ToList(); _context.Add(controlVenta); _context.SaveChanges(); TempData["exito"] = "La acción se ha realizado correctamente"; return(RedirectToAction("Index", "Home")); } ViewData["BarId"] = new SelectList(_context.Bares, "Id", "Nombre", turno.BarId); TempData["error"] = "Error en realizar esta acción"; return(View(turno)); }
public IActionResult GenerarTurnosAleatorio([Bind("Dependientes, CantidadDeTurnos, Bares, FechaInicio, FechaFin, ConsumoMinimo, ConsumoMaximo, VentasMinimo, VentasMaximo")] Pruebas pruebas) { int numeroEntradas = pruebas.CantidadDeTurnos; List <Bar> ListaBares = new List <Bar>(); foreach (var item in pruebas.Bares) { ListaBares.Add(_context.Bares.SingleOrDefault(c => c.Id == item)); } List <Dependiente> ListaDependientes = new List <Dependiente>(); foreach (var item in pruebas.Dependientes) { ListaDependientes.Add(_context.Dependientes.SingleOrDefault(c => c.Id == item)); } var ListaProductos = _context.Productos.ToList(); Random random = new Random(); for (int x = 1; x <= numeroEntradas; x++) { DateTime FechaInicio = new DateTime( random.Next(pruebas.FechaInicio.Year, pruebas.FechaFin.Year), random.Next(pruebas.FechaInicio.Month, pruebas.FechaFin.Month), random.Next(pruebas.FechaInicio.Day, pruebas.FechaFin.Day), random.Next(6, 10), random.Next(59), random.Next(59)); DateTime FechaFin = new DateTime( FechaInicio.Year, FechaInicio.Month, FechaInicio.Day, random.Next(19, 23), random.Next(59), random.Next(59)); Turno t = new Turno() { BarId = ListaBares[random.Next(ListaBares.Count)].Id, DependienteId = ListaDependientes[random.Next(ListaDependientes.Count)].Id, FechaInicio = FechaInicio, FechaFin = FechaFin, Activo = false }; _context.Turnos.Add(t); ControlExistencia c = new ControlExistencia() { TurnoId = t.Id }; ControlExistenciaVenta cV = new ControlExistenciaVenta() { TurnoId = t.Id }; _context.ControlesDeExistencias.Add(c); _context.ControlesDeExistenciasVenta.Add(cV); foreach (var item in ListaProductos) { DetalleControlExistencia dc = new DetalleControlExistencia() { ControlId = c.Id, ProductoId = item.Id, Consumo = pruebas.ConsumoMinimo + (pruebas.ConsumoMaximo - pruebas.ConsumoMinimo) * random.NextDouble() }; _context.DetallesControlesDeExistencias.Add(dc); DetalleControlExistenciaVenta dcV = new DetalleControlExistenciaVenta() { ControlId = cV.Id, ProductoId = item.Id, Consumo = pruebas.ConsumoMinimo + (pruebas.ConsumoMaximo - pruebas.ConsumoMinimo) * random.NextDouble() }; _context.DetallesControlesDeExistenciasVenta.Add(dcV); } } TempData["exito"] = "La acción se ha realizado correctamente"; _context.SaveChanges(); return(Redirect(nameof(GenerarTurnosAleatorio))); }