public async Task <ActionResult> DevolverPorCodigo(string codigo) { try { ProductoViewModel productoViewModel = new ProductoViewModel(); var item = await productoServices.DevolverPorCodigo(codigo); productoViewModel.CodigoProducto = item.Codigo; productoViewModel.NombreProducto = item.Nombre; productoViewModel.Descripcion = item.Descripcion; productoViewModel.CodigoCategoria = item.Categoria.Codigo; decimal precio = 0; if (item.Lista_Precio != null) { precio = item.Lista_Precio.Precio; } productoViewModel.Precio = precio; CategoriaViewModel categoria = new CategoriaViewModel(); if (item.Categoria != null) { categoria.CodigoCategoria = item.Categoria.Codigo; categoria.NombreCategoria = item.Categoria.Nombre; categoria.Descripcion = item.Categoria.Descripcion; } productoViewModel.Categoria = categoria; return(Ok(productoViewModel)); } catch (Exception ex) { return(BadRequest(ex.Message)); } }
public async Task <ActionResult> Insertar(FacturaViewModel model) { try { E_Factura factura = new E_Factura(); var cliente = await clienteServices.DevolverPorCodigo(model.CodCliente); factura.IdCliente = cliente.Id; factura.SubTotal = model.SubTotal; factura.Descuento = model.TotalDescuento; factura.Iva = model.TotalIva; if (model.Detalle != null) { factura.Detalle = new List <E_Detalle>(); foreach (var item in model.Detalle) { E_Detalle detalle = new E_Detalle(); var producto = await productoServices.DevolverPorCodigo(item.CodigoProducto); detalle.IdProducto = producto.Id; detalle.Cantidad = item.Cantidad; detalle.Descuento = item.PorcentajeDescuento; detalle.Iva = item.PorcentajeIva; factura.Detalle.Add(detalle); } } E_Factura fac = await facturaServices.Insertar(factura); FacturaViewModel facturaViewModel = new FacturaViewModel(); facturaViewModel.NumeroFactura = fac.Codigo; facturaViewModel.CodCliente = fac.Cliente.Codigo; var resultcli = await clienteServices.DevolverPorCodigo(fac.Cliente.Codigo); ClienteViewModel clienteViewModel = new ClienteViewModel(); clienteViewModel.Codigo = resultcli.Codigo; clienteViewModel.Identificacion = resultcli.Identificacion; clienteViewModel.Tipo_Documento = resultcli.Tipo_Identificacion.Abreviatura; clienteViewModel.NombreCompleto = resultcli.NombreCompleto; clienteViewModel.Direccion = resultcli.Direccion; clienteViewModel.Telefono = resultcli.Telefono; clienteViewModel.FechaNac = resultcli.FechaNac.ToString("dd/MM/yyyy"); clienteViewModel.Correo = resultcli.Correo; facturaViewModel.Cliente = clienteViewModel; facturaViewModel.Fecha = fac.Fecha.ToString("dd/MM/yyyy"); facturaViewModel.SubTotal = fac.SubTotal; facturaViewModel.TotalDescuento = fac.Descuento; facturaViewModel.TotalIva = fac.Iva; facturaViewModel.TotalGeneral = fac.Total; List <DetalleViewModel> listaDetalle = new List <DetalleViewModel>(); foreach (var item in fac.Detalle) { DetalleViewModel detalle = new DetalleViewModel(); detalle.NumeroFactura = fac.Codigo; detalle.CodigoProducto = item.Producto.Codigo; ProductoViewModel Producto = new ProductoViewModel(); Producto.CodigoProducto = item.Producto.Codigo; Producto.NombreProducto = item.Producto.Nombre; Producto.Descripcion = item.Producto.Descripcion; Producto.Precio = item.Lista_Precio.Precio; detalle.Producto = Producto; detalle.Cantidad = item.Cantidad; detalle.Precio = item.Lista_Precio.Precio; detalle.PorcentajeDescuento = item.Descuento; detalle.PorcentajeIva = item.Iva; listaDetalle.Add(detalle); } facturaViewModel.Detalle = listaDetalle; return(Ok(facturaViewModel)); } catch (System.Exception ex) { return(BadRequest(ex.Message)); } }