Exemple #1
0
 public long?Agregar(ArticuloDto articulo)
 {
     using (var context = new ModeloXCommerceContainer())
     {
         var ArticuloNuevo = new AccesoDatos.Articulo
         {
             Descripcion        = articulo.Descripcion,
             Abreviatura        = articulo.Abreviatura,
             Codigo             = articulo.Codigo,
             CodigoBarra        = articulo.CodigoBarra,
             ActivarLimiteVenta = articulo.ActivarLimiteVenta,
             DescuentaStock     = articulo.DescuentaStock,
             Detalle            = articulo.Detalle,
             EstaDiscontinuado  = articulo.EstaDiscontinuado,
             EstaEliminado      = articulo.EstaEliminado,
             Foto                 = articulo.Foto,
             LimiteVenta          = articulo.LimiteVenta,
             MarcaId              = articulo.MarcaId,
             PermiteStockNegativo = articulo.PermiteStockNegativo,
             RubroId              = articulo.RubroId,
             Stock                = articulo.Stock,
             StockMaximo          = articulo.StockMaximo,
             StockMinimo          = articulo.StockMinimo
         };
         context.Articulos.Add(ArticuloNuevo);
         context.SaveChanges();
         return(articulo.Id);
     }
 }
        public IEnumerable <DetalleCajaDTO> Obtener(long?cajaId, TipoPago?tipo)
        {
            using (var context = new ModeloXCommerceContainer())
            {
                IQueryable <AccesoDatos.DetalleCaja> q = context.DetalleCajas;

                if (cajaId != null)
                {
                    q = q.Where(x => x.CajaId == cajaId);
                }
                if (tipo != null)
                {
                    q = q.Where(x => x.TipoPago == tipo);
                }

                return(q.Select(x => new DetalleCajaDTO
                {
                    Id = x.Id,
                    CajaId = x.CajaId,
                    Monto = x.Monto,
                    TipoPago = x.TipoPago,
                    Caja = x.Caja
                }).ToList());
            }
        }
        public void EliminarProducto(long mesaId, ArticuloDto dto, decimal cantidad)
        {
            using (var context = new ModeloXCommerceContainer())
            {
                var comprobante = context.Comprobantes.OfType <ComprobanteSalon>()
                                  .FirstOrDefault(x => x.MesaId == mesaId && x.EstadoComprobante == EstadoComprobanteSalon.Proceso);
                if (comprobante == null)
                {
                    throw new Exception("No se encontro la entidad");
                }
                var detalle = comprobante.DetalleComprobantes.FirstOrDefault(x => x.Codigo == dto.Codigo && x.PrecioUnitario == dto.Precio);
                if (detalle == null)
                {
                    throw new Exception("No se encontro la entidad");
                }


                detalle.Cantidad -= cantidad;
                detalle.SubTotal  = detalle.Cantidad * detalle.PrecioUnitario;

                if (dto.DescuentaStock)
                {
                    var articulo = context.Articulos.FirstOrDefault(x => x.Id == dto.Id);
                    if (articulo == null)
                    {
                        throw new Exception("No se encontro la entidad");
                    }

                    articulo.Stock += cantidad;
                }

                context.SaveChanges();
            }
        }
 public bool HayCajaAbierta()
 {
     using (var context = new ModeloXCommerceContainer())
     {
         return(context.Cajas.Any(x => x.FechaApertura == x.FechaCierre));
     }
 }
        public string CrearNombreUsuario(string apellido, string nombre)
        {
            int contadorLetras = 1;

            int digito = 1;

            var usuarioNuevo = $"{nombre.Substring(0, contadorLetras)}{apellido.Trim().Replace(" ","")}";

            using (var context = new ModeloXCommerceContainer())
            {
                while (context.Usuarios.Any(x => x.NombreUser == usuarioNuevo))
                {
                    if (contadorLetras <= nombre.Trim().Length)
                    {
                        contadorLetras++;

                        usuarioNuevo = $"{nombre.Trim().Substring(0, contadorLetras)}{apellido.Trim()}";
                    }
                    else
                    {
                        usuarioNuevo = $"{nombre.Trim().Substring(0, contadorLetras++)}{apellido.Trim()}{digito}";

                        digito++;
                    }
                }
            }


            return(usuarioNuevo);
        }
Exemple #6
0
        public void Modificar(EmpresaDto dto)
        {
            using (var context = new ModeloXCommerceContainer())
            {
                var empresaModificar = context.Empresas
                                       .Include(x => x.Direccion)
                                       .FirstOrDefault(x => x.Id == dto.Id);

                if (empresaModificar == null)
                {
                    throw new Exception("No se encontro la Empresa");
                }

                empresaModificar.NombreFantasia = dto.NombreFantasia;
                empresaModificar.RazonSocial    = dto.RazonSocial;
                empresaModificar.Cuit           = dto.Cuit;
                empresaModificar.Telefono       = dto.Telefono;
                empresaModificar.Mail           = dto.Email;
                empresaModificar.Sucursal       = dto.Sucursal;
                empresaModificar.Logo           = dto.Logo;
                empresaModificar.CondicionIvaId = dto.CondicionIvaId;

                empresaModificar.Direccion.Calle       = dto.Calle;
                empresaModificar.Direccion.Numero      = dto.Numero;
                empresaModificar.Direccion.Piso        = dto.Piso;
                empresaModificar.Direccion.Dpto        = dto.Dpto;
                empresaModificar.Direccion.Barrio      = dto.Barrio;
                empresaModificar.Direccion.LocalidadId = dto.LocalidadId;

                context.SaveChanges();
            }
        }
Exemple #7
0
 public ComprobanteMesaDTO Obtener(long mesaId)
 {
     using (var baseDatos = new ModeloXCommerceContainer())
     {
         return(baseDatos.Comprobantes
                .OfType <ComprobanteSalon>()
                .Include(x => x.Mozo)
                .AsNoTracking()
                .Select(x => new ComprobanteMesaDTO
         {
             ClienteId = x.ClienteId,
             ComprobanteId = x.Id,
             Descuento = x.Descuento,
             Fecha = x.Fecha,
             MesaId = x.MesaId,
             MozoId = x.MozoId,
             Legajo = x.MozoId.HasValue ? x.Mozo.Legajo : 0,
             ApellidoMozo = x.MozoId.HasValue ? x.Mozo.Apellido : "No ",
             NombreMozo = x.MozoId.HasValue ? x.Mozo.Nombre : "Asignado...",
             UsuarioId = x.UsuarioId,
             Items = x.DetalleComprobantes.Select(c => new DetalleComprobanteSalonDTO
             {
                 CantidadProducto = c.Cantidad,
                 PrecioUnitario = c.PrecioUnitario,
                 ComprobanteId = c.ComprobanteId,
                 CodigoProducto = c.Codigo,
                 DescripcionProducto = c.Descripcion,
                 DetalleId = c.Id,
                 ProductoId = c.ArticuloId
             }).ToList()
         }).OrderByDescending(x => x.Fecha)
                .FirstOrDefault(x => x.MesaId == mesaId));
     }
 }
Exemple #8
0
 public IEnumerable <ArticuloDto> Obtener(string cadenaBuscar)
 {
     using (var context = new ModeloXCommerceContainer())
     {
         return(context.Articulos
                .Include(x => x.Rubro)
                .Include(x => x.Marca)
                .AsNoTracking().Where(x =>
                                      x.Abreviatura.Contains(cadenaBuscar) || x.Codigo == cadenaBuscar ||
                                      x.CodigoBarra == cadenaBuscar || x.Marca.Descripcion == cadenaBuscar ||
                                      x.Rubro.Descripcion == cadenaBuscar)
                .Select(x => new ArticuloDto
         {
             Descripcion = x.Descripcion,
             Abreviatura = x.Abreviatura,
             Codigo = x.Codigo,
             CodigoBarra = x.CodigoBarra,
             ActivarLimiteVenta = x.ActivarLimiteVenta,
             DescuentaStock = x.DescuentaStock,
             Detalle = x.Detalle,
             EstaDiscontinuado = x.EstaDiscontinuado,
             EstaEliminado = x.EstaEliminado,
             Foto = x.Foto,
             Id = x.Id,
             LimiteVenta = x.LimiteVenta,
             MarcaId = x.MarcaId,
             PermiteStockNegativo = x.PermiteStockNegativo,
             RubroId = x.RubroId,
             Stock = x.Stock,
             StockMaximo = x.StockMaximo,
             StockMinimo = x.StockMinimo
         }).ToList());
     }
 }
Exemple #9
0
        public ProductoKioskoDto ObtenerPorCodigoKiosko(string codigo)
        {
            using (var context = new ModeloXCommerceContainer())
            {
                try
                {
                    var producto = context.Articulos
                                   .Include(x => x.Precios)
                                   .Include("Precio.ListaPrecio")
                                   .Include("Precio.Articulo")
                                   .AsNoTracking()
                                   .Select(x => new ProductoKioskoDto
                    {
                        Id          = x.Id,
                        Codigo      = x.Codigo,
                        CodigoBarra = x.CodigoBarra,
                        Descripcion = x.Descripcion,
                        Precio      = context.Precios.Where(h => h.ListaPrecio.Descripcion == "Lista Kiosko")
                                      .FirstOrDefault(l => l.Articulo.Codigo == codigo).PrecioPublico,
                        DescuentaStock = x.DescuentaStock
                    }).FirstOrDefault(x => x.Codigo == codigo || x.CodigoBarra == codigo);

                    return(producto);
                }
                catch (Exception)
                {
                    return(null);
                }
            }
        }
Exemple #10
0
 public IEnumerable <ArticuloDto> ReporteReponerStock()
 {
     using (var context = new ModeloXCommerceContainer())
     {
         return(context.Articulos.Where(x => x.Stock <= x.StockMinimo)
                .Select(x => new ArticuloDto
         {
             Descripcion = x.Descripcion,
             Abreviatura = x.Abreviatura,
             Codigo = x.Codigo,
             CodigoBarra = x.CodigoBarra,
             ActivarLimiteVenta = x.ActivarLimiteVenta,
             DescuentaStock = x.DescuentaStock,
             Detalle = x.Detalle,
             EstaDiscontinuado = x.EstaDiscontinuado,
             EstaEliminado = x.EstaEliminado,
             Foto = x.Foto,
             Id = x.Id,
             LimiteVenta = x.LimiteVenta,
             MarcaId = x.MarcaId,
             PermiteStockNegativo = x.PermiteStockNegativo,
             RubroId = x.RubroId,
             Stock = x.Stock,
             StockMaximo = x.StockMaximo,
             StockMinimo = x.StockMinimo
         }).ToList());
     }
 }
Exemple #11
0
        public void Modificar(ArticuloDto articulo)
        {
            using (var context = new ModeloXCommerceContainer())
            {
                var articuloModificar = context.Articulos
                                        .Include(x => x.Rubro)
                                        .Include(x => x.Marca)
                                        .FirstOrDefault(x => x.Id == articulo.Id);

                if (articuloModificar == null)
                {
                    throw new Exception("No se encontro el articulo");
                }

                articuloModificar.Descripcion        = articulo.Descripcion;
                articuloModificar.Abreviatura        = articulo.Abreviatura;
                articuloModificar.Codigo             = articulo.Codigo;
                articuloModificar.CodigoBarra        = articulo.CodigoBarra;
                articuloModificar.ActivarLimiteVenta = articulo.ActivarLimiteVenta;
                articuloModificar.DescuentaStock     = articulo.DescuentaStock;
                articuloModificar.Detalle            = articulo.Detalle;
                articuloModificar.EstaDiscontinuado  = articulo.EstaDiscontinuado;
                articuloModificar.EstaEliminado      = articulo.EstaEliminado;
                articuloModificar.Foto                 = articulo.Foto;
                articuloModificar.Id                   = articulo.Id;
                articuloModificar.LimiteVenta          = articulo.LimiteVenta;
                articuloModificar.MarcaId              = articulo.MarcaId;
                articuloModificar.PermiteStockNegativo = articulo.PermiteStockNegativo;
                articuloModificar.RubroId              = articulo.RubroId;
                articuloModificar.Stock                = articulo.Stock;
                articuloModificar.StockMaximo          = articulo.StockMaximo;
                articuloModificar.StockMinimo          = articulo.StockMinimo;
                context.SaveChanges();
            }
        }
Exemple #12
0
 public ArticuloDto ObtenerProductoPorCodigo(string codigo, long listaId)
 {
     using (var context = new ModeloXCommerceContainer())
     {
         return(context.Articulos
                .Include(x => x.Precios)
                .Include("Precios.ListaPrecio")
                .AsNoTracking()
                .Select(x => new ArticuloDto
         {
             Id = x.Id,
             Descripcion = x.Descripcion,
             Codigo = x.Codigo,
             DescuentaStock = x.DescuentaStock,
             CodigoBarra = x.CodigoBarra,
             Stock = x.Stock,
             PrecioCosto = context.Precios.FirstOrDefault(l => l.ListaPrecio.Id == listaId && l.ArticuloId == x.Id &&
                                                          l.FechaActualizacion ==
                                                          context.Precios.Where(l2 => l2.ListaPrecio.Id == listaId && l2.ArticuloId == x.Id).
                                                          Max(max => max.FechaActualizacion)).PrecioCosto,
             Precio = context.Precios.FirstOrDefault(l => l.ListaPrecio.Id == listaId && l.ArticuloId == x.Id &&
                                                     l.FechaActualizacion ==
                                                     context.Precios.Where(l2 => l2.ListaPrecio.Id == listaId && l2.ArticuloId == x.Id).
                                                     Max(max => max.FechaActualizacion)).PrecioPublico,
             EstaEliminado = x.EstaEliminado
         }).FirstOrDefault(x => x.Codigo == codigo || x.CodigoBarra == codigo));
     }
 }
Exemple #13
0
 public ArticuloDto ObtenerPorCodigo(long?mesaId, string codigo)
 {
     using (var context = new ModeloXCommerceContainer())
     {
         return(context.Articulos
                .Include(x => x.Precios)
                .Include("Precios.ListaPrecio")
                .Include("Precios.ListaPrecio.Salon")
                .Include("Precios.ListaPrecio.Salon.Mesas")
                .AsNoTracking()
                .Select(x => new ArticuloDto
         {
             Id = x.Id,
             Descripcion = x.Descripcion,
             Codigo = x.Codigo,
             DescuentaStock = x.DescuentaStock,
             CodigoBarra = x.CodigoBarra,
             EstaDiscontinuado = x.EstaDiscontinuado,
             Stock = x.Stock,
             PermiteStockNegativo = x.PermiteStockNegativo,
             EstaEliminado = x.EstaEliminado,
             Precio = context.Precios.FirstOrDefault(l =>
                                                     l.ListaPrecio.Salon.Any(s => s.Mesas.Any(y => y.Id == mesaId)) &&
                                                     l.ArticuloId == x.Id &&
                                                     l.FechaActualizacion == context.Precios
                                                     .Where(l2 => l2.ListaPrecio.Salon.Any(
                                                                s2 => s2.Mesas.Any(m2 => m2.Id == mesaId)) &&
                                                            l2.ArticuloId == x.Id).Max(max => max.FechaActualizacion))
                      .PrecioPublico
         }).FirstOrDefault(x => x.Codigo == codigo || x.CodigoBarra == codigo));
     }
 }
Exemple #14
0
 public ArticuloDto ObtenerPorId(long?entidadId)
 {
     using (var context = new ModeloXCommerceContainer())
     {
         return(context.Articulos
                .Include(x => x.Rubro)
                .Include(x => x.Marca)
                .AsNoTracking()
                .Select(x => new ArticuloDto
         {
             Descripcion = x.Descripcion,
             Abreviatura = x.Abreviatura,
             Codigo = x.Codigo,
             CodigoBarra = x.CodigoBarra,
             ActivarLimiteVenta = x.ActivarLimiteVenta,
             DescuentaStock = x.DescuentaStock,
             Detalle = x.Detalle,
             EstaDiscontinuado = x.EstaDiscontinuado,
             EstaEliminado = x.EstaEliminado,
             Foto = x.Foto,
             Id = x.Id,
             LimiteVenta = x.LimiteVenta,
             MarcaId = x.MarcaId,
             PermiteStockNegativo = x.PermiteStockNegativo,
             RubroId = x.RubroId,
             Stock = x.Stock,
             StockMaximo = x.StockMaximo,
             StockMinimo = x.StockMinimo
         }).FirstOrDefault(x => x.Id == entidadId));
     }
 }
Exemple #15
0
        public long Insertar(EmpresaDto dto)
        {
            using (var context = new ModeloXCommerceContainer())
            {
                var nuevoEmpresa = new AccesoDatos.Empresa
                {
                    CondicionIvaId = dto.CondicionIvaId,
                    NombreFantasia = dto.NombreFantasia,
                    RazonSocial    = dto.RazonSocial,
                    Cuit           = dto.Cuit,
                    Telefono       = dto.Telefono,
                    Mail           = dto.Email,
                    Sucursal       = dto.Sucursal,
                    Logo           = dto.Logo,
                    Direccion      = new Direccion
                    {
                        Calle       = dto.Calle,
                        Numero      = dto.Numero,
                        Piso        = dto.Piso,
                        Dpto        = dto.Dpto,
                        Casa        = dto.Casa,
                        Lote        = dto.Lote,
                        Barrio      = dto.Barrio,
                        Mza         = dto.Mza,
                        LocalidadId = dto.LocalidadId
                    }
                };

                context.Empresas.Add(nuevoEmpresa);

                context.SaveChanges();

                return(nuevoEmpresa.Id);
            }
        }
        private string CrearNombreUsuaurio(string apellido, string nombre)
        {
            int contadorLetras = 1;
            int digito         = 1;
            var usuarioNuevo   = $"{nombre.Trim().Substring(0, contadorLetras)}{apellido.Trim()}";

            if (usuarioNuevo.ToLower() == "admin")
            {
                usuarioNuevo = "admin1";
            }

            using (var baseDatos = new ModeloXCommerceContainer())
            {
                while (baseDatos.Usuarios.Any(x => x.Nombre == usuarioNuevo))
                {
                    if (contadorLetras <= nombre.Trim().Length)
                    {
                        contadorLetras++;
                        usuarioNuevo = $"{nombre.Trim().Substring(0, contadorLetras)}{apellido.Trim()}";
                    }
                    else
                    {
                        usuarioNuevo = $"{nombre.Trim().Substring(0, contadorLetras)}{apellido.Trim()}{digito}";
                        digito++;
                    }
                }
            }
            return(usuarioNuevo);
        }
Exemple #17
0
 public EmpresaDto ObtenerPorId(long entidadId)
 {
     using (var context = new ModeloXCommerceContainer())
     {
         return(context.Empresas
                .AsNoTracking()
                .Include(x => x.Direccion)
                .Include(x => x.Direccion.Localidad)
                .Select(x => new EmpresaDto()
         {
             Id = x.Id,
             NombreFantasia = x.NombreFantasia,
             RazonSocial = x.RazonSocial,
             Cuit = x.Cuit,
             Telefono = x.Telefono,
             Email = x.Mail,
             Sucursal = x.Sucursal,
             Logo = x.Logo,
             Calle = x.Direccion.Calle,
             Numero = (int)x.Direccion.Numero,
             Piso = x.Direccion.Piso,
             Dpto = x.Direccion.Dpto,
             Barrio = x.Direccion.Barrio,
             LocalidadId = x.Direccion.LocalidadId,
             ProvinciaId = x.Direccion.Localidad.ProvinciaId
         }
                        ).FirstOrDefault(x => x.Id == entidadId));
     }
 }
 public string ObtenerListaPrecio(long _mesaId)
 {
     using (var context = new ModeloXCommerceContainer())
     {
         return(context.Mesas.FirstOrDefault(x => x.Id == _mesaId).Salon.ListaPrecio.Descripcion);
     }
 }
Exemple #19
0
 public IEnumerable <EmpresaDto> Obtener(string cadenaBuscar)
 {
     using (var context = new ModeloXCommerceContainer())
     {
         return(context.Empresas
                .AsNoTracking()
                .Include(x => x.Direccion)
                .Include(x => x.Direccion.Localidad)
                .Where(x => x.NombreFantasia.Contains(cadenaBuscar) ||
                       x.RazonSocial.Contains(cadenaBuscar) ||
                       x.Cuit == cadenaBuscar ||
                       x.Mail == cadenaBuscar)
                .Select(x => new EmpresaDto()
         {
             Id = x.Id,
             NombreFantasia = x.NombreFantasia,
             RazonSocial = x.RazonSocial,
             Cuit = x.Cuit,
             Telefono = x.Telefono,
             Email = x.Mail,
             Sucursal = x.Sucursal,
             Logo = x.Logo,
             Calle = x.Direccion.Calle,
             Numero = (int)x.Direccion.Numero,
             Piso = x.Direccion.Piso,
             Dpto = x.Direccion.Dpto,
             Barrio = x.Direccion.Barrio,
             LocalidadId = x.Direccion.LocalidadId,
             ProvinciaId = x.Direccion.Localidad.ProvinciaId
         }).ToList());
     }
 }
 public bool HayMesasAbiertas()
 {
     using (var context = new ModeloXCommerceContainer())
     {
         return(context.Mesas.Any(x => x.EstadoMesa == EstadoMesa.Abierta));
     }
 }
Exemple #21
0
        public void FacturarComprobanteSalon(long mesaId, ComprobanteMesaDTO comprobanteMesa)
        {
            using (var baseDatos = new ModeloXCommerceContainer())
            {
                var articuloServicio = new ArticuloServicio();

                var comprobante = baseDatos.Comprobantes
                                  .OfType <ComprobanteSalon>()
                                  .FirstOrDefault(x => x.MesaId == mesaId && x.EstadoComprobanteSalon == EstadoComprobanteSalon.EnProceso);

                var mesa = baseDatos.Mesas.FirstOrDefault(x => x.Id == mesaId);

                mesa.EstadoMesa = EstadoMesa.Cerrada;
                if (mesa == null)
                {
                    throw new Exception("Ocurrió un error al conseguir la Mesa");
                }

                comprobante.SubTotal  = comprobanteMesa.SubTotal;
                comprobante.Total     = comprobanteMesa.Total;
                comprobante.Descuento = comprobanteMesa.Descuento;
                comprobante.EstadoComprobanteSalon = EstadoComprobanteSalon.Facturada;


                var items = comprobanteMesa.Items;
                foreach (var item in items)
                {
                    var productoId = articuloServicio.ObtenerPorCodigo(item.CodigoProducto).Id;
                    articuloServicio.DescontarStock(productoId, item.CantidadProducto);
                }

                baseDatos.SaveChanges();
            }
        }
Exemple #22
0
 public bool VerificarSiUsuarioExiste(string cadena)
 {
     using (var context = new ModeloXCommerceContainer())
     {
         return(context.Usuarios.Any(x => x.Nombre.Contains(cadena)));
     }
 }
 public long ObtenerCajaAbierta()
 {
     using (var context = new ModeloXCommerceContainer())
     {
         return(context.Cajas.Where(x => x.FechaApertura == x.FechaCierre).FirstOrDefault().Id);
     }
 }
Exemple #24
0
        public void Crear(long EntidadId, string apellido, string nombre)
        {
            var cantidadLetra = 1;
            var contador      = 0;
            var nombreUsuario = CrearNombre(apellido, nombre, cantidadLetra);

            using (var context = new ModeloXCommerceContainer())
            {
                while (context.Usuarios.Any(x => x.Nombre == nombreUsuario))
                {
                    if (cantidadLetra < nombre.Length)
                    {
                        cantidadLetra++;
                        nombreUsuario = CrearNombre(apellido, nombre, cantidadLetra);
                    }
                    else
                    {
                        nombreUsuario = CrearNombreConNumeros(apellido, nombre, contador);
                        contador++;
                    }
                }

                var usuario = new AccesoDatos.Usuario
                {
                    Nombre        = nombreUsuario,
                    Password      = Encriptar.Encriptador("1234"),
                    PersonaId     = EntidadId,
                    EstaBloqueado = false
                };
                context.Usuarios.Add(usuario);
                context.SaveChanges();
            }
        }
 public IEnumerable <UsuarioDto> Obtener(string cadenaBuscar)
 {
     using (var context = new ModeloXCommerceContainer())
     {
         return(context.Personas.OfType <Empleado>()
                .AsNoTracking()
                .Where(x => !x.EstaEliminado &&
                       (x.Apellido.Contains(cadenaBuscar) || x.Nombre.Contains(cadenaBuscar)))
                .Select(x => new UsuarioDto
         {
             PersonaId = x.Id,
             ApellidoPersona = x.Apellido,
             NombrePersona = x.Nombre,
             NombreUsuario = x.Usuarios.Any()
                         ? x.Usuarios.FirstOrDefault().NombreUser
                         : "******",
             Id = x.Usuarios.Any()
                         ? x.Usuarios.FirstOrDefault().Id
                         : 0,
             EstaBloqueado = x.Usuarios.Any()
                         ? x.Usuarios.FirstOrDefault().EstaBloqueado
                         : false
         }
                        ).Where(x => x.NombrePersona != "Final").ToList());
     }
 }
        public long Agregar(OperacionDto dto)
        {
            using (var context = new ModeloXCommerceContainer())
            {
                var nuevaOp = new AccesoDatos.Operacion();

                if (dto.TipoOperacion == TipoOperacion.Venta)
                {
                    nuevaOp.Comprobante       = context.Comprobantes.OfType <ComprobanteSalon>().FirstOrDefault(x => x.Id == dto.ComprobanteId);
                    nuevaOp.CuentaCorrienteId = dto.CuentaCorrienteId;
                    nuevaOp.Fecha             = dto.Fecha;
                    nuevaOp.Monto             = dto.Monto;
                    nuevaOp.TipoOperacion     = TipoOperacion.Venta;
                    nuevaOp.SubSaldo          = context.Operaciones.Any(x => x.CuentaCorrienteId == dto.CuentaCorrienteId)
                        ?
                                                context.Operaciones.FirstOrDefault(x => x.Fecha == context.Operaciones.Max(y => y.Fecha)).SubSaldo + dto.Monto
                        :
                                                dto.Monto;
                }
                else
                {
                    nuevaOp.Fecha             = dto.Fecha;
                    nuevaOp.Monto             = dto.Monto;
                    nuevaOp.TipoOperacion     = TipoOperacion.Cobranza;
                    nuevaOp.CuentaCorrienteId = dto.CuentaCorrienteId;
                    nuevaOp.SubSaldo          = context.Operaciones.FirstOrDefault(x => x.Fecha == context.Operaciones.Max(y => y.Fecha)).SubSaldo - dto.Monto;
                }

                context.Operaciones.Add(nuevaOp);


                context.SaveChanges();
                return(nuevaOp.Id);
            }
        }
 public ComprobanteMesaDto ObtenerComprobanteMesa(long mesaId)
 {
     using (var context = new ModeloXCommerceContainer())
     {
         return(context.Comprobantes.OfType <ComprobanteSalon>().AsNoTracking().Where(x =>
                                                                                      x.MesaId == mesaId && x.EstadoComprobante == EstadoComprobanteSalon.Proceso).Select(x =>
                                                                                                                                                                          new ComprobanteMesaDto
         {
             Id = x.Id,
             ClienteId = x.ClienteId,
             UsuarioId = x.UsuarioId,
             MesaId = x.MesaId,
             MozoId = x.MozoId,
             NumeroComprobante = x.Numero,
             ComprobanteId = x.Id,
             Comensal = x.Comensal,
             Legajo = x.MozoId.HasValue ? x.Mozo.Legajo : 0,
             ApellidoMozo = x.MozoId.HasValue ? x.Mozo.Apellido : "NO",
             NombreMozo = x.MozoId.HasValue ? x.Mozo.Nombre : "ASIGNADO",
             ApellidoCliente = x.Cliente.Apellido,
             NombreCliente = x.Cliente.Nombre,
             DniCliente = x.Cliente.Dni,
             Descuento = x.Descuento,
             Items = x.DetalleComprobantes.Select(d => new DetalleComprobanteDto
             {
                 ArticuloId = d.ArticuloId,
                 Descripcion = d.Descripcion,
                 Cantidad = d.Cantidad,
                 PrecioUnitario = d.PrecioUnitario,
                 CodigoProducto = d.Codigo
             }).ToList()
         }).FirstOrDefault());
     }
 }
 public IEnumerable <PrecioDTO> Obtener(string cadenaBuscar)
 {
     using (var context = new ModeloXCommerceContainer())
     {
         return(context.Precios
                .Include(x => x.Articulo)
                .AsNoTracking()
                .Where(x => x.Articulo.Descripcion.Contains(cadenaBuscar) ||
                       x.ListaPrecio.Descripcion.Contains(cadenaBuscar) ||
                       x.Articulo.Codigo.Contains(cadenaBuscar) ||
                       x.Articulo.CodigoBarra.Contains(cadenaBuscar))
                .Select(x => new PrecioDTO
         {
             Id = x.Id,
             ActivarHoraVenta = x.ActivarHoraVenta,
             ArticuloId = x.ArticuloId,
             DescripcionArticulo = x.Articulo.Descripcion,
             HoraVenta = x.HoraVenta,
             ListaPrecioId = x.ListaPrecioId,
             PrecioCosto = x.PrecioCosto,
             PrecioPublico = x.PrecioPublico,
             FechaActualizacion = x.FechaActualizacion,
             NombreListaPrecio = x.ListaPrecio.Descripcion
         }).ToList());
     }
 }
        public void CancelarReserva(long mesaId)
        {
            using (var context = new ModeloXCommerceContainer())
            {
                var mesa = context.Mesas.FirstOrDefault(x => x.Id == mesaId);
                if (mesa == null)
                {
                    throw new Exception("no se encontro la entidad");
                }
                mesa.EstadoMesa = EstadoMesa.Cerrada;

                if (context.Comprobantes.OfType <ComprobanteSalon>().Any(x =>
                                                                         x.MesaId == mesaId && x.EstadoComprobante ==
                                                                         EstadoComprobanteSalon.Proceso))
                {
                    var compro = context.Comprobantes.OfType <ComprobanteSalon>().FirstOrDefault(x =>
                                                                                                 x.MesaId == mesaId && x.EstadoComprobante ==
                                                                                                 EstadoComprobanteSalon.Proceso);
                    compro.EstadoComprobante = EstadoComprobanteSalon.Finalizado;
                    compro.Comensal          = 0;
                    compro.Descuento         = 0;
                    compro.Total             = 0;
                }
                var reser =
                    context.Reservas.FirstOrDefault(x => x.MesaId == mesaId && x.EstadoReserva == EstadoReserva.Confirmada);
                reser.EstaEliminado = true;
                reser.EstadoReserva = EstadoReserva.Cancelada;
                context.SaveChanges();
            }
        }
Exemple #30
0
 public EmpresaDto Obtener()
 {
     using (var context = new ModeloXCommerceContainer())
     {
         return(context.
                Empresas.
                Include(x => x.Direccion).
                Include(x => x.Direccion.Localidad).
                AsNoTracking().Select(x => new EmpresaDto
         {
             Id = x.Id,
             Numero = x.Direccion.Numero,
             CondicionIvaId = x.CondicionIvaId,
             CondicionIvaIdDescripcion = x.CondicionIva.Descripcion,
             Telefono = x.Telefono,
             RazonSocial = x.RazonSocial,
             Mail = x.Mail,
             Sucursal = x.Sucursal,
             Cuit = x.Cuit,
             Logo = x.Logo,
             NombreFantasia = x.NombreFantasia,
             Barrio = x.Direccion.Barrio,
             Calle = x.Direccion.Calle,
             Casa = x.Direccion.Casa,
             Dpto = x.Direccion.Dpto,
             LocalidadId = x.Direccion.LocalidadId,
             Lote = x.Direccion.Lote,
             Mza = x.Direccion.Mza,
             Piso = x.Direccion.Piso,
             ProvinciaId = x.Direccion.Localidad.ProvinciaId
         }).FirstOrDefault());
     }
 }