Esempio n. 1
0
        public ComprobanteSalonDto ObtenerComprobantePorMesaSinFacturar(long mesaId)
        {
            using (var context = new ModeloGastronomiaContainer())
            {
                var comprobante = context.Comprobantes.OfType <Salon>()
                                  .Include("DetallesSalones")
                                  .Include("Mozo")
                                  .FirstOrDefault(x => x.MesaId == mesaId &&
                                                  x.EstadoSalon == EstadoSalon.Pendiente);

                if (comprobante == null)
                {
                    throw new ArgumentNullException("Error Grave");
                }

                var comprobanteDto = new ComprobanteSalonDto
                {
                    Id         = comprobante.Id,
                    Total      = comprobante.Total,
                    MesaId     = comprobante.MesaId,
                    MozoId     = comprobante.MozoId,
                    MozoStr    = string.Concat(string.Concat(comprobante.Mozo.Apellido, " ", comprobante.Mozo.Nombre)),
                    MozoLegajo = comprobante.Mozo.Legajo.ToString(),
                    ClienteId  = comprobante.ClienteId,
                    Cliente    = string.Concat(string.Concat(comprobante.Cliente.Apellido, " ", comprobante.Cliente.Nombre)),
                    Descuento  = comprobante.Descuento,
                    SubTotal   = comprobante.Subtotal,
                    Estado     = comprobante.EstadoSalon
                };

                if (comprobante.DetallesSalones != null &&
                    comprobante.DetallesSalones.Any(a => a.Cantidad > 0))
                {
                    foreach (var detalle in comprobante.DetallesSalones.Where(x => x.Cantidad > 0))
                    {
                        comprobanteDto.ComprobanteSalonDetalleDtos.Add(new ComprobanteSalonDetalleDto
                        {
                            Id                 = detalle.Id,
                            Descripcion        = detalle.Descripcion,
                            SubTotal           = detalle.SubTotal,
                            Codigo             = detalle.Codigo,
                            Cantidad           = detalle.Cantidad,
                            CodigoBarra        = detalle.CodigoBarra,
                            ComprobanteSalonId = detalle.SalonId,
                            Precio             = detalle.Precio,
                            ProductoId         = detalle.ProductoId,
                        });
                    }
                }

                return(comprobanteDto);
            }
        }
        public ComprobanteSalonDto ObtenerComprobantePorMesa(long mesaId)
        {
            using (var context = new ModeloGastronomiaContainer())
            {
                var comprobante = context.Comprobantes.OfType <Salon>()
                                  .Include("DetallesSalones")
                                  .Include("Mozo")
                                  .FirstOrDefault(x => x.MesaId == mesaId &&
                                                  x.EstadoSalon == EstadoSalon.Pendiente &&
                                                  x.EstadoSalon != EstadoSalon.Facturado);
                if (comprobante == null)
                {
                    return(null);
                }
                // if(comprobante == null) throw new ArgumentNullException("Error Grave");

                var comprobanteDto = new ComprobanteSalonDto
                {
                    Id        = comprobante.Id,
                    Total     = comprobante.Total,
                    MesaId    = comprobante.MesaId,
                    MozoId    = comprobante.MozoId,
                    Mozo      = comprobante.MozoId.HasValue ? $"{comprobante.Mozo.Apellido} {comprobante.Mozo.Nombre}" : "No Asignado",
                    ClienteId = comprobante.ClienteId
                };

                if (comprobante.DetallesSalones != null &&
                    comprobante.DetallesSalones.Any())
                {
                    foreach (var detalle in comprobante.DetallesSalones)
                    {
                        comprobanteDto.ComprobanteSalonDetalleDtos.Add(new ComprobanteSalonDetalleDto
                        {
                            Id                 = detalle.Id,
                            Descripcion        = detalle.Descripcion,
                            Codigo             = detalle.Codigo,
                            Cantidad           = detalle.Cantidad,
                            SubTotal           = detalle.SubTotal,
                            CodigoBarra        = detalle.CodigoBarra,
                            ComprobanteSalonId = detalle.SalonId,
                            Precio             = detalle.Precio,
                            ProductoId         = detalle.ProductoId
                        });
                    }
                }

                return(comprobanteDto);
            }
        }