}                                                         //DEBE SER UNA!!!!!!!!!!!!!

        public static Tienda CrearNuevaTienda(TiendaOnlineContext _db, Tienda _model)
        {
            Tienda tienda = new Tienda();

            tienda         = _model;
            tienda.Horario = new List <HorarioTienda>();

            _db.Tienda.Add(tienda);
            _db.SaveChanges();

            return(tienda);
        }
        public static Usuario EditarUsuario(TiendaOnlineContext _db, Usuario _model,
                                            int _tiendaId = 0, UsuarioTienda.RolEnTienda _rolTienda = UsuarioTienda.RolEnTienda.Admin) //opcionales)
        {
            if (_model.NombreUsuario != null)
            {
                _model.NombreUsuario = _model.NombreUsuario.ToUpper();
            }
            if (_model.Nombre != null)
            {
                _model.Nombre = _model.Nombre.ToUpper();
            }
            if (_model.Apellido != null)
            {
                _model.Apellido = _model.Apellido.ToUpper();
            }


            Usuario usuarioAEditar = _db.Usuarios.Find(_model.Id);

            usuarioAEditar.NombreUsuario  = _model.NombreUsuario;
            usuarioAEditar.Nombre         = _model.Nombre;
            usuarioAEditar.Apellido       = _model.Apellido;
            usuarioAEditar.Email          = _model.Email;
            usuarioAEditar.RolUsuario     = _model.RolUsuario;
            usuarioAEditar.NombreCompleto = _model.Nombre + " " + _model.Apellido;

            if (_tiendaId > 0)
            {
                UsuarioTienda existeAsoc = usuarioAEditar.UsuarioTiendas.Where(ut => ut.Tienda.Id == _tiendaId).FirstOrDefault();

                if (existeAsoc != null)
                {
                    existeAsoc.RolTienda = _rolTienda;
                }
                else
                {
                    Tienda        tienda = _db.Tienda.Where(t => t.Id == _tiendaId).FirstOrDefault();
                    UsuarioTienda ut     = new UsuarioTienda();
                    ut.RolTienda = _rolTienda;
                    ut.Tienda    = tienda;
                    ut.TiendaId  = tienda.Id;

                    _model.UsuarioTiendas.Add(ut);
                }
            }


            _db.SaveChanges();

            return(usuarioAEditar);
        }
        public static bool CrearProducto(Producto _producto, Tienda _tienda, TiendaOnlineContext _db)
        {
            Producto prod = _tienda.Productos.Where(p => p.Nombre == _producto.Nombre).FirstOrDefault();

            if (prod != null)
            {
                return(false);
            }

            _tienda.Productos.Add(_producto);
            _db.SaveChanges();

            return(true);
        }
        public static Cotizacion AsociarMecanicoACotizacion(TiendaOnlineContext _db, int idTienda, int idCotizacion, int idUsuarioMecanico)
        {
            Tienda tienda = _db.Tienda.Where(ut => ut.Id == idTienda).FirstOrDefault();

            Cotizacion            cotizacion            = tienda.Cotizaciones.Where(c => c.Id == idCotizacion).FirstOrDefault();
            UsuarioTiendaMecanico usuarioTiendaMecanico = tienda.UsuarioTiendaMecanicos.Where(ust => ust.UsuarioTienda.Usuario.Id == idUsuarioMecanico).FirstOrDefault();

            cotizacion.UsuarioTiendaMecanico = usuarioTiendaMecanico;
            usuarioTiendaMecanico.Cotizaciones.Add(cotizacion);

            _db.SaveChanges();

            return(cotizacion);
        }
Exemple #5
0
        public static Calendario ObtenerAgendasTienda(TiendaOnlineContext _db, int idTienda)
        {
            Tienda     tienda     = _db.Tienda.Where(t => t.Id == idTienda).FirstOrDefault();
            Calendario calendario = tienda.Calendarios.First();

            List <UsuarioTiendaMecanico> usuarioTiendaMecanico = tienda.UsuarioTiendaMecanicos.Where(m => m.Agendas.Count > 0).ToList();

            foreach (var usm in usuarioTiendaMecanico)
            {
                calendario.Agendas.Add(usm.Agendas.First());
            }

            return(calendario);
        }
        public static bool AumentarStock(int id, int cantidad, Tienda _tienda, TiendaOnlineContext _db)
        {
            Producto prod = _tienda.Productos.Where(p => p.Id == id).FirstOrDefault();

            if (prod == null)
            {
                return(false);
            }

            prod.Stock += cantidad;

            _db.SaveChanges();

            return(true);
        }
        public static Usuario CrearNuevoUsuario(TiendaOnlineContext _db, Usuario _model,
                                                int _tiendaId = 0, UsuarioTienda.RolEnTienda _rolTienda = UsuarioTienda.RolEnTienda.Admin) //opcionales
        {
            if (_model.NombreUsuario != null)
            {
                _model.NombreUsuario = _model.NombreUsuario.ToUpper();
            }
            if (_model.Nombre != null)
            {
                _model.Nombre = _model.Nombre.ToUpper();
            }
            if (_model.Apellido != null)
            {
                _model.Apellido = _model.Apellido.ToUpper();
            }

            Usuario existe = _db.Usuarios.Where(u => u.NombreUsuario == _model.NombreUsuario).FirstOrDefault();

            if (existe != null)
            {
                return(null);
            }


            string pass = PasswordHash.CreateHash(_model.Password);

            _model.Password       = pass;
            _model.NombreCompleto = _model.Nombre + " " + _model.Apellido;

            if (_tiendaId > 0)
            {
                _model.UsuarioTiendas = new List <UsuarioTienda>();

                Tienda        tienda = _db.Tienda.Where(t => t.Id == _tiendaId).FirstOrDefault();
                UsuarioTienda ut     = new UsuarioTienda();
                ut.RolTienda = _rolTienda;
                ut.Tienda    = tienda;
                ut.TiendaId  = tienda.Id;

                _model.UsuarioTiendas.Add(ut);
            }

            _db.Usuarios.Add(_model);
            _db.SaveChanges();


            return(_model);
        }
        public static void CrearHorarioPorDia(TiendaOnlineContext _db, int tiendaId, int usuarioTiendaMecanicoId, DiaHorarioTrabajador diaHorarioTrabajador,
                                              string hEntrada, string hDescansoInicio, string hDescansoTermino, string hSalida, bool hDescanso)
        {
            Tienda        tienda        = _db.Tienda.Where(t => t.Id == tiendaId).FirstOrDefault();
            UsuarioTienda usuarioTienda = tienda.UsuariosTienda.Where(ut => ut.Id == usuarioTiendaMecanicoId).FirstOrDefault();

            HorarioTrabajador horarioTrabajadorDia = new HorarioTrabajador();

            horarioTrabajadorDia.Dia                 = diaHorarioTrabajador;
            horarioTrabajadorDia.HoraEntrada         = DateTime.ParseExact(hEntrada, "hh:mmtt", CultureInfo.InvariantCulture);
            horarioTrabajadorDia.HoraDescansoInicio  = DateTime.ParseExact(hDescansoInicio, "hh:mmtt", CultureInfo.InvariantCulture);
            horarioTrabajadorDia.HoraDescansoTermino = DateTime.ParseExact(hDescansoTermino, "hh:mmtt", CultureInfo.InvariantCulture);
            horarioTrabajadorDia.HoraSalida          = DateTime.ParseExact(hSalida, "hh:mmtt", CultureInfo.InvariantCulture);
            horarioTrabajadorDia.HorarioDescanso     = hDescanso;

            usuarioTienda.UsuariosTiendaMecanicos.First().Horario.Add(horarioTrabajadorDia);
            _db.SaveChanges();
        }
Exemple #9
0
        public static void CrearHorarioPorDia(TiendaOnlineContext _db, int tiendaId, DiaHorarioTienda diaHorarioTienda,
                                              string hApertura, string hDescansoInicio, string hDescansoTermino, string hCierre, bool hDescanso)
        {
            Tienda tienda = _db.Tienda.Where(t => t.Id == tiendaId).FirstOrDefault();


            HorarioTienda horarioTiendaDia = new HorarioTienda();

            horarioTiendaDia.Dia                 = diaHorarioTienda;
            horarioTiendaDia.HoraApertura        = DateTime.ParseExact(hApertura, "hh:mmtt", CultureInfo.InvariantCulture);
            horarioTiendaDia.HoraDescansoInicio  = DateTime.ParseExact(hDescansoInicio, "hh:mmtt", CultureInfo.InvariantCulture);
            horarioTiendaDia.HoraDescansoTermino = DateTime.ParseExact(hDescansoTermino, "hh:mmtt", CultureInfo.InvariantCulture);
            horarioTiendaDia.HoraCierre          = DateTime.ParseExact(hCierre, "hh:mmtt", CultureInfo.InvariantCulture);
            horarioTiendaDia.Estado              = EstadoTienda.Abierto;
            horarioTiendaDia.HorarioDescanso     = hDescanso;

            horarioTiendaDia.Tienda = tienda;
            tienda.Horario.Add(horarioTiendaDia);
            _db.SaveChanges();
        }
        public static bool EditarServicio(Servicio _servicio, Tienda _tienda, TiendaOnlineContext _db)
        {
            Servicio serv = _tienda.Servicios.Where(p => p.Id == _servicio.Id).FirstOrDefault();

            if (serv == null)
            {
                return(false);
            }

            Categoria categoria = _db.Categorias.Find(_servicio.CategoriaId);

            serv.Nombre        = _servicio.Nombre;
            serv.Precio        = _servicio.Precio;
            serv.Categoria     = categoria;
            serv.SoloCotizable = _servicio.SoloCotizable;
            serv.Descripcion   = _servicio.Descripcion;

            _db.SaveChanges();

            return(true);
        }
        public static void EliminarTienda(TiendaOnlineContext _db, int _id)
        {
            Tienda tienda = _db.Tienda.Where(t => t.Id == _id).FirstOrDefault();

            List <UsuarioTienda> usuariosTienda            = tienda.UsuariosTienda.ToList();
            List <Usuario>       usuariosParaRemoverTienda = new List <Usuario>();

            foreach (var usTienda in usuariosTienda)
            {
                usuariosParaRemoverTienda.Add(usTienda.Usuario);
            }

            foreach (var u in usuariosParaRemoverTienda)
            {
                u.UsuarioTiendas = null;
            }

            _db.SaveChanges();

            _db.Tienda.Remove(tienda);

            _db.SaveChanges();
        }
        public static Tienda EditarTienda(TiendaOnlineContext _db, Tienda _model)
        {
            Tienda tienda = _db.Tienda.Where(t => t.Id == _model.Id).FirstOrDefault();

            tienda.Correo    = _model.Correo;
            tienda.Telefono  = _model.Telefono;
            tienda.Local     = _model.Local;
            tienda.Direccion = _model.Direccion;

            try
            {
                tienda.Latitud  = _model.Latitud;
                tienda.Longitud = _model.Longitud;
            }
            catch (Exception e)
            {
                string message = "";
            }


            _db.SaveChanges();

            return(tienda);
        }
        public static bool CrearSolicitud(TiendaOnlineContext _db, List <Servicio> _servicios, Usuario _usuario, int idTienda, Vehiculo _vehiculo, string _comentario)
        {
            Tienda tienda = _db.Tienda.Where(u => u.Id == idTienda).FirstOrDefault();

            SolicitudCotizacion solicitudCotizacion = new SolicitudCotizacion();

            solicitudCotizacion.ServiciosSolicitadosCotizacion = new List <ServicioSolicitadoCotizacion>();

            //AGREGAR SERVICIOS A SOLICITUD
            foreach (Servicio servicio in _servicios)
            {
                ServicioSolicitadoCotizacion servicioSolicitado = new ServicioSolicitadoCotizacion();
                servicioSolicitado.Servicio   = servicio;
                servicioSolicitado.Valor      = servicio.Precio;
                servicioSolicitado.ValorTotal = servicio.Precio;

                solicitudCotizacion.ServiciosSolicitadosCotizacion.Add(servicioSolicitado);
            }

            //FECHA, TIENDA Y USUARIO Y COMENTARIO
            solicitudCotizacion.Fecha             = DateTime.Now;
            solicitudCotizacion.Tienda            = tienda;
            solicitudCotizacion.TiendaId          = tienda.Id;
            solicitudCotizacion.Usuario           = _usuario;
            solicitudCotizacion.UsuarioId         = _usuario.Id;
            solicitudCotizacion.ComentarioCliente = _comentario;

            //ASOCIAR VEHÍCULO CON SOLICITUD
            solicitudCotizacion.Vehiculos = new List <Vehiculo>();
            solicitudCotizacion.Vehiculos.Add(_vehiculo);

            tienda.SolicitudCotizaciones.Add(solicitudCotizacion);
            _db.SaveChanges();

            return(true);
        }
        public static Tienda CambiarEstadoTienda(TiendaOnlineContext _db, bool _publicarTiendaValue, Tienda _tienda)
        {
            if (_publicarTiendaValue == true)
            {
                if (_tienda.EstadoTienda == Tienda.Estado.Oculta)
                {
                    _tienda.EstadoTienda = Tienda.Estado.Publicada;
                }
            }
            else
            {
                if (_tienda.EstadoTienda == Tienda.Estado.Publicada)
                {
                    _tienda.EstadoTienda = Tienda.Estado.Oculta;
                }
            }

            _db.SaveChanges();

            return(_tienda);
        }
        }                                                                                //DEBE SER UNA

        public static UsuarioTienda CrearUsuarioTienda(TiendaOnlineContext _db, int idUsuario, Tienda tienda)
        {
            //Asignar Rol Administrador a Usuario
            Usuario usuario = _db.Usuarios.Find(idUsuario);

            Usuario.EditarUsuario(_db, usuario, tienda.Id, UsuarioTienda.RolEnTienda.Admin);
            UsuarioTienda usTienda = _db.UsuariosTienda.Where(ut => ut.Usuario.Id == idUsuario).FirstOrDefault();

            return(usTienda);
        }
        }                                             //DEBE SER UNA!!!!!!!!!!

        public static Cotizacion CrearCotizacion(TiendaOnlineContext _db, Cotizacion _cotizacion, int _usuarioTiendaId, int _tiendaId, List <ServicioTemporal> servicios)
        {
            Usuario usuario       = _db.Usuarios.Where(u => u.Id == _cotizacion.UsuarioId).FirstOrDefault();
            Usuario usuarioTienda = _db.Usuarios.Where(u => u.Id == _usuarioTiendaId).FirstOrDefault();
            Tienda  tienda        = _db.Tienda.Where(u => u.Id == _tiendaId).FirstOrDefault();

            _cotizacion.ServiciosCotizados = new List <ServicioCotizado>();

            float subTotalNeto = 0;
            float descuento    = 0;
            float iva          = 0;
            float valorTotal   = 0;

            //------ ASOCIAR SERVICIOS
            SolicitudCotizacion solicitudCotizacion = _db.SolicitudCotizacion.Where(s => s.Id == _cotizacion.SolicitudCotizacionId).FirstOrDefault();

            _cotizacion.SolicitudCotizacion = solicitudCotizacion;

            foreach (ServicioTemporal servicioTemporal in servicios)
            {
                ServicioCotizado servicioCotizado = new ServicioCotizado();

                //Compueba si es un Servicio creado en la Cotización
                //Si es falso, se asocia a un Servicio en la Base de Datos
                if (!servicioTemporal.EsManual)
                {
                    Servicio servicioEncontrado = tienda.Servicios.Where(ssc => ssc.Id == servicioTemporal.Id).FirstOrDefault();
                    if (servicioEncontrado != null)
                    {
                        servicioCotizado.Servicio = servicioEncontrado;

                        if (servicioEncontrado.Categoria != null)
                        {
                            servicioCotizado.Categoria = servicioEncontrado.Categoria;
                        }
                    }
                }

                if (servicioCotizado.Categoria == null)
                {
                    Categoria categoria = _db.Categorias.Where(c => c.Id == servicioTemporal.CategoriaId).FirstOrDefault();
                    servicioCotizado.Categoria = categoria;
                }

                servicioCotizado.Nombre     = servicioTemporal.Nombre;
                servicioCotizado.Valor      = servicioTemporal.Valor;
                servicioCotizado.Cantidad   = servicioTemporal.Cantidad;
                servicioCotizado.ValorTotal = servicioTemporal.Valor * servicioTemporal.Cantidad;
                servicioCotizado.EsManual   = servicioTemporal.EsManual;

                //SUBTOTAL NETO
                subTotalNeto += servicioCotizado.ValorTotal;

                _cotizacion.ServiciosCotizados.Add(servicioCotizado);
            }

            valorTotal = subTotalNeto + (subTotalNeto * 19 / 100);
            iva        = valorTotal - subTotalNeto;

            _cotizacion.SubTotalNeto = subTotalNeto;
            _cotizacion.Descuento    = descuento;
            _cotizacion.TotalNeto    = subTotalNeto - descuento;
            _cotizacion.IVA          = iva;
            _cotizacion.TotalAPagar  = valorTotal;

            //ASOCIAR VEHÍCULO
            _cotizacion.Vehiculos = new List <Vehiculo>();
            Vehiculo vehiculo = new Vehiculo();

            vehiculo.Marca  = solicitudCotizacion.Vehiculos.First().Marca;
            vehiculo.Modelo = solicitudCotizacion.Vehiculos.First().Modelo;
            vehiculo.Year   = solicitudCotizacion.Vehiculos.First().Year;
            _cotizacion.Vehiculos.Add(vehiculo);

            //ASOCIAR LOGO
            LogoRemitente logoRemitente = tienda.LogosRemitente.Where(l => l.Id == _cotizacion.LogoId).FirstOrDefault();

            _cotizacion.LogoRemitente = logoRemitente;

            _cotizacion.Usuario           = usuario;
            _cotizacion.Tienda            = tienda;
            _cotizacion.Fecha             = DateTime.Now;
            _cotizacion.UsuarioQueAtendio = usuarioTienda.UsuarioTiendas.First();

            if (usuario.Cotizaciones == null)
            {
                usuario.Cotizaciones = new List <Cotizacion>();
            }

            _db.Cotizacions.Add(_cotizacion);

            try
            {
                _db.SaveChanges();
            }
            catch (Exception ex)
            {
                string e = ex.Message;
            }

            return(_cotizacion);
        }