public void GenerarComprobante(DeliveryDto dto)
        {
            using (var context = new ModeloXCommerceContainer())
            {
                if (dto == null)
                {
                    throw new Exception("Comprobante null");
                }
                long direccion = dto.DireccionId;

                if (dto.DireccionId == 0)
                {
                    direccion = context.Direcciones.FirstOrDefault(x => x.Persona.Id == dto.ClienteId).Id;
                }

                var comprobante = new ComprobanteDelivery
                {
                    CadeteId            = dto.CadeteId,
                    ClienteId           = dto.ClienteId,
                    EstadoPedido        = EstadoPedido.Pendiente,
                    Numero              = NumeroDeComprobante.UltimoNumeroComprobante(),
                    Fecha               = DateTime.Now,
                    SubTotal            = dto.SubTotal,
                    Descuento           = dto.Descuento,
                    Total               = dto.Total,
                    UsuarioId           = Entidad.Entidad.UsuarioId,
                    TipoComprobante     = TipoComprobante.X,
                    DireccionId         = direccion,
                    TipoPedido          = TipoPedido.Telefono,
                    DetalleComprobantes = new List <AccesoDatos.DetalleComprobante>()
                };
                foreach (var x in dto.Items)
                {
                    var detalle = new AccesoDatos.DetalleComprobante()
                    {
                        Cantidad       = x.Cantidad,
                        Codigo         = x.CodigoProducto,
                        Descripcion    = x.Descripcion,
                        PrecioUnitario = x.PrecioUnitario,
                        ArticuloId     = x.ArticuloId,
                        SubTotal       = x.SubTotal,
                        ComprobanteId  = dto.Id
                    };
                    comprobante.DetalleComprobantes.Add(detalle);
                }
                context.Comprobantes.Add(comprobante);
                context.SaveChanges();
            }
        }
        public long GenerarComprobanteDelivery(ComprobanteDTO dto)
        {
            using (var context = new ModeloXCommerceContainer())
            {
                var nuevoComprobante = new ComprobanteDelivery
                {
                    ClienteId           = dto.ClienteId,
                    Descuento           = dto.Descuento,
                    Fecha               = dto.Fecha,
                    Numero              = 0,
                    SubTotal            = dto.SubTotal,
                    Total               = dto.Total,
                    TipoComprobante     = TipoComprobante.A,
                    UsuarioId           = dto.UsuarioId,
                    DetalleComprobantes = new List <DetalleComprobante>()
                };

                context.Comprobantes.Add(nuevoComprobante);

                var list = new List <DetalleComprobante>();
                foreach (var it in dto.Items)
                {
                    var detalle = new DetalleComprobante
                    {
                        ComprobanteId  = nuevoComprobante.Id,
                        SubTotal       = it.SubtotalLinea,
                        Codigo         = it.CodigoProducto,
                        Cantidad       = it.CantidadProducto,
                        PrecioUnitario = it.PrecioUnitario,
                        Descripcion    = it.DescripcionProducto,
                        ArticuloId     = it.ProductoId
                    };
                    list.Add(detalle);
                    context.DetalleComprobantes.Add(detalle);
                }
                nuevoComprobante.DetalleComprobantes = list;
                context.SaveChanges();

                return(nuevoComprobante.Id);
            }
        }