示例#1
0
        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
            });
        }
示例#2
0
        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));
            }
        }