private Encargo GenerarEncargo(DTO.Encargo encargo) { var cliente = _clientesRepository.GetOneOrDefaultById(encargo.Cliente ?? 0); var vendedor = _vendedoresRepository.GetOneOrDefaultById(encargo.Vendedor ?? 0); var farmacoEncargado = default(Farmaco); var farmaco = _farmacoRepository.GetOneOrDefaultById(encargo.Farmaco ?? 0); if (farmaco != null) { var pcoste = farmaco.PrecioUnicoEntrada.HasValue && farmaco.PrecioUnicoEntrada != 0 ? (decimal)farmaco.PrecioUnicoEntrada.Value * _factorCentecimal : ((decimal?)farmaco.PrecioMedio ?? 0m) * _factorCentecimal; //var proveedor = _proveedorRepository.GetOneOrDefaultByCodigoNacional(farmaco.Id); var proveedor = _proveedorRepository.GetOneOrDefaultById(encargo.Proveedor); var categoria = farmaco.CategoriaId.HasValue ? _categoriaRepository.GetOneOrDefaultById(farmaco.CategoriaId.Value) : null; var subcategoria = farmaco.CategoriaId.HasValue && farmaco.SubcategoriaId.HasValue ? _categoriaRepository.GetSubcategoriaOneOrDefaultByKey( farmaco.CategoriaId.Value, farmaco.SubcategoriaId.Value) : null; var familia = _familiaRepository.GetOneOrDefaultById(farmaco.Familia); var laboratorio = _laboratorioRepository.GetOneOrDefaultByCodigo(farmaco.Laboratorio); farmacoEncargado = new Farmaco { Id = farmaco.Id, Codigo = encargo.Farmaco.ToString(), PrecioCoste = pcoste, Proveedor = proveedor, Categoria = categoria, Subcategoria = subcategoria, Familia = familia, Laboratorio = laboratorio, Denominacion = farmaco.Denominacion, Precio = farmaco.PVP * _factorCentecimal, Stock = farmaco.ExistenciasAux ?? 0 }; } return(new Encargo { Id = encargo.Id, Fecha = encargo.FechaHora ?? DateTime.MinValue, FechaEntrega = encargo.FechaHoraEntrega, Farmaco = farmacoEncargado, Cantidad = encargo.Cantidad, Cliente = cliente, Vendedor = vendedor, Observaciones = encargo.Observaciones }); }
public Venta GetOneOrDefaultById(long id) { try { var year = int.Parse($"{id}".Substring(0, 4)); var ventaId = int.Parse($"{id}".Substring(4)); DTO.Venta ventaAccess; try { using (var db = FarmaciaContext.VentasByYear(year)) { var sql = @"SELECT ID_VENTA as Id, Fecha, NPuesto as Puesto, Cliente, Vendedor, Descuento, Pago, Tipo, Importe FROM ventas WHERE ID_VENTA = @id"; ventaAccess = db.Database.SqlQuery <DTO.Venta>(sql, new OleDbParameter("id", ventaId)) .FirstOrDefault(); } } catch (FarmaciaContextException) { ventaAccess = null; } if (ventaAccess == null) { return(null); } var venta = new Venta { Id = ventaAccess.Id, Tipo = ventaAccess.Tipo.ToString(), FechaHora = ventaAccess.Fecha, Puesto = ventaAccess.Puesto, ClienteId = ventaAccess.Cliente, VendedorId = ventaAccess.Vendedor, TotalDescuento = ventaAccess.Descuento * _factorCentecimal, TotalBruto = ventaAccess.Pago * _factorCentecimal, Importe = ventaAccess.Importe * _factorCentecimal, }; if (ventaAccess.Cliente > 0) { venta.Cliente = _clientesRepository.GetOneOrDefaultById(ventaAccess.Cliente); } var ticket = _ticketRepository.GetOneOrdefaultByVentaId(ventaAccess.Id, year); if (ticket != null) { venta.Ticket = new Ticket { Numero = ticket.Numero, Serie = ticket.Serie }; } venta.VendedorNombre = _vendedoresRepository.GetOneOrDefaultById(ventaAccess.Vendedor)?.Nombre; venta.Detalle = GetDetalleDeVentaByVentaId(year, ventaAccess.Id); return(venta); } catch (Exception ex) when(ex.Message.Contains(FarmaciaContext.MessageUnderlyngProviderFailed)) { return(GetOneOrDefaultById(id)); } }