예제 #1
0
        public int Create(FacturacionCompraDTO facturacionCompra)
        {
            try
            {
                Compra compra = new Compra();
                compra.IdCliente = facturacionCompra.Cliente.IdCliente;
                compra.Fecha     = DateTime.Now;

                foreach (var producto in facturacionCompra.Productos)
                {
                    compra.CompraProductos.Add(new CompraProducto
                    {
                        Cantidad   = producto.Cantidad,
                        IdProducto = producto.IdProducto
                    });
                }
                _compraRepository.Create(compra);
                _compraRepository.Save();

                return(compra.IdCompra);
            }
            catch (Exception e)
            {
                throw e;
            }
        }
예제 #2
0
        public async Task Update(FacturacionCompraDTO facturacionCompra)
        {
            try
            {
                Compra compra = await _compraRepository.FindAsync(facturacionCompra.IdCompra);

                if (compra != null)
                {
                    compra.IdCliente = facturacionCompra.Cliente.IdCliente;
                    List <CompraProducto> compraProductos = new List <CompraProducto>();
                    foreach (var producto in facturacionCompra.Productos)
                    {
                        compraProductos.Add(new CompraProducto
                        {
                            IdCompra   = compra.IdCompra,
                            Cantidad   = producto.Cantidad,
                            IdProducto = producto.IdProducto
                        });
                    }

                    compra.CompraProductos = compraProductos;

                    _compraRepository.Update(compra);
                    _compraRepository.Save();
                }
                else
                {
                    throw new Exception("No existe la compra");
                }
            }
            catch (Exception e)
            {
                throw e;
            }
        }
예제 #3
0
        public async Task <FacturacionCompraDTO> Find(int id)
        {
            try
            {
                FacturacionCompraDTO facturacionCompra = await _compraRepository.FindByCondition(x => x.IdCompra == id)
                                                         .Include(cliente => cliente.IdClienteNavigation).ThenInclude(tipoDoc => tipoDoc.IdTipoDocumentoNavigation)
                                                         .Include(compra => compra.CompraProductos).ThenInclude(producto => producto.IdProductoNavigation)
                                                         .Select(compra => new FacturacionCompraDTO
                {
                    IdCompra          = compra.IdCompra,
                    CantidadProductos = compra.CompraProductos.Sum(p => p.Cantidad),
                    ValorCompra       = compra.CompraProductos.Sum(p => p.IdProductoNavigation.Precio),
                    FechaCompra       = compra.Fecha.ToString("dd MMMM yyyy"),
                    Cliente           = new ClienteDTO()
                    {
                        IdCliente       = compra.IdCliente,
                        Apellido        = compra.IdClienteNavigation.Apellido,
                        Nombre          = compra.IdClienteNavigation.Nombre,
                        Documento       = compra.IdClienteNavigation.Documento,
                        Edad            = DateTime.Now.Year - compra.IdClienteNavigation.FechaNacimiento.Year,
                        IdTipoDocumento = compra.IdClienteNavigation.IdTipoDocumento,
                        TipoDocumento   = compra.IdClienteNavigation.IdTipoDocumentoNavigation.Nombre
                    },
                    Productos = compra.CompraProductos.Select(p => new ProductoDTO
                    {
                        IdProducto  = p.IdProducto,
                        Nombre      = p.IdProductoNavigation.Nombre,
                        Descripcion = p.IdProductoNavigation.Descripcion,
                        EstaActivo  = p.IdProductoNavigation.EstaActivo.Value,
                        Precio      = p.IdProductoNavigation.Precio,
                        Cantidad    = p.Cantidad
                    }).ToList()
                }).FirstOrDefaultAsync();


                return(facturacionCompra);
            }
            catch (Exception e)
            {
                throw e;
            }
        }
예제 #4
0
 public async Task Update(FacturacionCompraDTO facturacionCompra)
 {
     await _compraManager.Update(facturacionCompra);
 }
예제 #5
0
 public int Create(FacturacionCompraDTO facturacionCompra)
 {
     return(_compraManager.Create(facturacionCompra));
 }