예제 #1
0
        public ComprobanteDeliveryDto ObtenerComprobantePorId(long id)
        {
            using (var context = new ModeloGastronomiaContainer())
            {
                var comprobante = context.Comprobantes.OfType <DAL.Delivery>()
                                  .Include("DetallesDeliveries")
                                  .Include("Cadete")
                                  .FirstOrDefault(x => x.Id == id);

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

                var comprobanteDto = new ComprobanteDeliveryDto()
                {
                    // se debera validar que haya un cadete si o si

                    Id               = comprobante.Id,
                    Total            = comprobante.Total,
                    ClienteId        = comprobante.ClienteId,
                    ClienteStr       = string.Concat(comprobante.Cliente.Apellido, " ", comprobante.Cliente.Nombre),
                    CadeteId         = comprobante.CadeteId,
                    Deliverie        = string.Concat(comprobante.Cadete.Apellido, " ", comprobante.Cadete.Nombre),
                    DelievirieLegajo = comprobante.Cadete.Legajo.ToString(),
                    Descuento        = comprobante.Descuento,
                    Subtotal         = comprobante.SubTotal,
                    EstadoDelivery   = comprobante.EstadoDelivery,
                    Observacion      = comprobante.Observacion
                };

                if (comprobante.DetallesDeliveries != null &&
                    comprobante.DetallesDeliveries.Any())
                {
                    foreach (var detalle in comprobante.DetallesDeliveries)
                    {
                        comprobanteDto.ComprobanteDeliveryDetalletos.Add(new ComprobanteDeliveryDetalleDto
                        {
                            Id                    = detalle.Id,
                            Descripcion           = detalle.Descripcion,
                            SubTotal              = detalle.SubTotal,
                            Codigo                = detalle.Codigo,
                            Cantidad              = detalle.Cantidad,
                            CodigoBarra           = detalle.CodigoBarra,
                            ComprobanteDeliveryId = detalle.DeliveryId,
                            Precio                = detalle.Precio,
                            ProductoId            = detalle.ProductoId
                        });
                    }
                }

                return(comprobanteDto);
            }
        }
        public ComprobanteDeliveryDto ObtenerComprobantePorCliente(long clienteId)
        {
            using (var context = new ModeloGastronomiaContainer())
            {
                var comprobante = context.Comprobantes.OfType <Delivery>()
                                  .Include("DetallesDeliveries")
                                  .Include("Cliente")
                                  .FirstOrDefault(x => x.ClienteId == clienteId &&
                                                  x.EstadoDelivery == EstadoDelivery.EnProceso &&
                                                  x.EstadoDelivery != EstadoDelivery.Cobrado);

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

                var comprobanteDto = new ComprobanteDeliveryDto
                {
                    Id        = comprobante.Id,
                    Total     = comprobante.Total,
                    ClienteId = comprobante.ClienteId,
                    CadeteId  = comprobante.EmpleadoId,
                    Cadete    = comprobante.EmpleadoId != null ? $"{comprobante.Empleado.Apellido} {comprobante.Empleado.Nombre}" : "No Asignado"
                };

                if (comprobante.DetallesDeliveries != null &&
                    comprobante.DetallesDeliveries.Any())
                {
                    foreach (var detalle in comprobante.DetallesDeliveries)
                    {
                        comprobanteDto.ComprobanteDeliveryDetalleDtos.Add(new ComprobanteDeliveryDetalleDto
                        {
                            Id                    = detalle.Id,
                            Descripcion           = detalle.Descripcion,
                            Codigo                = detalle.Codigo,
                            Cantidad              = detalle.Cantidad,
                            SubTotal              = detalle.SubTotal,
                            CodigoBarra           = detalle.CodigoBarra,
                            ComprobanteDeliveryId = detalle.DeliveryId,
                            Precio                = detalle.Precio,
                            ProductoId            = detalle.ProductoId
                        });
                    }
                }

                return(comprobanteDto);
            }
        }
        public ComprobanteDeliveryDto ObtenerComprobantePorId(long comprobanteId)
        {
            using (var context = new ModeloGastronomiaContainer())
            {
                var comprobante = context.Comprobantes.OfType <Delivery>()
                                  .Include("DetallesDeliveries")
                                  .Include("Empleado")
                                  .FirstOrDefault(x => x.Id == comprobanteId &&
                                                  x.EstadoDelivery == EstadoDelivery.Cobrado &&
                                                  x.EstadoDelivery != EstadoDelivery.EnProceso &&
                                                  x.TipoComprobante == TipoComprobante.Impaga);


                var comprobanteDto = new ComprobanteDeliveryDto
                {
                    Id        = comprobante.Id,
                    Total     = comprobante.Total,
                    CadeteId  = comprobante.EmpleadoId,
                    Cadete    = "No Asignado",
                    ClienteId = comprobante.ClienteId,
                    Direccion = comprobante.DireccionEnvio
                };

                if (comprobante.DetallesDeliveries != null &&
                    comprobante.DetallesDeliveries.Any())
                {
                    foreach (var detalle in comprobante.DetallesDeliveries)
                    {
                        comprobanteDto.ComprobanteDeliveryDetalleDtos.Add(new ComprobanteDeliveryDetalleDto
                        {
                            Id                    = detalle.Id,
                            Descripcion           = detalle.Descripcion,
                            Codigo                = detalle.Codigo,
                            Cantidad              = detalle.Cantidad,
                            SubTotal              = detalle.SubTotal,
                            CodigoBarra           = detalle.CodigoBarra,
                            Precio                = detalle.Precio,
                            ProductoId            = detalle.ProductoId,
                            ComprobanteDeliveryId = detalle.DeliveryId
                        });
                    }
                }

                return(comprobanteDto);
            }
        }
        public void Crear(long clienteId, ComprobanteDeliveryDto dto)
        {
            using (var context = new ModeloGastronomiaContainer())
            {
                var nuevoComprobane = new Delivery
                {
                    Fecha           = DateTime.Now,
                    EstadoDelivery  = EstadoDelivery.EnProceso,
                    TipoComprobante = TipoComprobante.Impaga,
                    ClienteId       = clienteId,
                    Recargo         = 0m,
                    DireccionEnvio  = dto.Direccion,
                    Total           = dto.Total,
                    Observacion     = " ",
                    EmpleadoId      = dto.CadeteId
                };

                context.Comprobantes.Add(nuevoComprobane);
                context.SaveChanges();
            }
        }