public Farmaco GenerarFarmaco(DTO.Farmaco farmaco) { var familia = _familiaRepository.GetOneOrDefaultById(farmaco.Familia); 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 codigoBarra = _barraRepository.GetOneByFarmacoId(farmaco.Id); var proveedor = _proveedorRepository.GetOneOrDefaultByCodigoNacional(farmaco.Id); var laboratorio = _laboratorioRepository.GetOneOrDefaultByCodigo(farmaco.Laboratorio); var pcoste = farmaco.PrecioUnicoEntrada.HasValue && farmaco.PrecioUnicoEntrada != 0 ? (decimal)farmaco.PrecioUnicoEntrada.Value * _factorCentecimal : ((decimal?)farmaco.PrecioMedio ?? 0m) * _factorCentecimal; var iva = default(decimal); switch (farmaco.IVA) { case 1: iva = 4; break; case 2: iva = 10; break; case 3: iva = 21; break; default: iva = 0; break; } return(new Farmaco { Id = farmaco.Id, Codigo = farmaco.Id.ToString(), Denominacion = farmaco.Denominacion, Familia = familia, Categoria = categoria, Subcategoria = subcategoria, CodigoBarras = codigoBarra, Proveedor = proveedor, FechaUltimaCompra = farmaco.FechaUltimaEntrada.HasValue && farmaco.FechaUltimaEntrada.Value > 0 ? (DateTime?)$"{farmaco.FechaUltimaEntrada.Value}".ToDateTimeOrDefault("yyyyMMdd") : null, FechaUltimaVenta = farmaco.FechaUltimaSalida.HasValue && farmaco.FechaUltimaSalida.Value > 0 ? (DateTime?)$"{farmaco.FechaUltimaSalida.Value}".ToDateTimeOrDefault("yyyyMMdd") : null, Ubicacion = farmaco.Ubicacion ?? string.Empty, Web = farmaco.BolsaPlastico, Precio = farmaco.PVP * _factorCentecimal, PrecioCoste = pcoste, Iva = iva, Stock = farmaco.ExistenciasAux ?? 0, StockMinimo = farmaco.Stock ?? 0, Laboratorio = laboratorio, Baja = farmaco.FechaBaja > 0, FechaCaducidad = farmaco.FechaCaducidad.HasValue && farmaco.FechaCaducidad.Value > 0 ? (DateTime?)$"{farmaco.FechaCaducidad.Value}".ToDateTimeOrDefault("yyyyMM") : null }); }
public Farmaco GenerarFarmaco(DTO.Farmaco farmaco) { var proveedor = _proveedorRepository.GetOneOrDefaultByCodigoNacional(farmaco.Codigo); var categoria = _categoriaRepository.GetOneOrDefaultById(farmaco.Codigo); Familia familia = null; Familia superFamilia = null; if (string.IsNullOrWhiteSpace(farmaco.SubFamilia)) { familia = new Familia { Nombre = string.Empty }; superFamilia = _familiaRepository.GetOneOrDefaultById(farmaco.Familia) ?? new Familia { Nombre = string.Empty }; } else { familia = _familiaRepository.GetSubFamiliaOneOrDefault(farmaco.Familia, farmaco.SubFamilia) ?? new Familia { Nombre = string.Empty }; superFamilia = _familiaRepository.GetOneOrDefaultById(farmaco.Familia) ?? new Familia { Nombre = string.Empty }; } var laboratorio = !farmaco.Laboratorio.HasValue ? new Laboratorio { Codigo = string.Empty, Nombre = "<Sin Laboratorio>" } : _laboratorioRepository.GetOneOrDefaultByCodigo(farmaco.Laboratorio.Value, farmaco.Clase, farmaco.ClaseBot) ?? new Laboratorio { Codigo = string.Empty, Nombre = "<Sin Laboratorio>" }; var impuesto = !string.IsNullOrWhiteSpace(farmaco.CodigoImpuesto) ? farmaco.CodigoImpuesto : "0"; var iva = _tarifaRepository.GetTarifaOrDefaultByCodigoImpuesto(impuesto) ?? 0m; return(new Farmaco { Id = farmaco.Id, Codigo = farmaco.Codigo, Denominacion = farmaco.Denominacion, Familia = familia, SuperFamilia = superFamilia, Categoria = categoria, CodigoBarras = farmaco.CodigoBarras, Proveedor = proveedor, FechaUltimaCompra = farmaco.FechaUltimaCompra, FechaUltimaVenta = farmaco.FechaUltimaVenta, FechaCaducidad = farmaco.FechaCaducidad, Ubicacion = farmaco.Ubicacion ?? string.Empty, Precio = farmaco.Precio, PrecioCoste = farmaco.PrecioCoste, Iva = iva, Stock = farmaco.Stock, StockMinimo = farmaco.StockMinimo, StockMaximo = farmaco.StockMaximo, Laboratorio = laboratorio, Baja = farmaco.FechaBaja.HasValue }); }