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));
 }
Esempio n. 5
0
        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)));
        }