public List <Venta> GetAllByIdGreaterOrEqual(long id, DateTime fecha) { try { try { using (var db = FarmaciaContext.VentasByYear(fecha.Year)) { var year = fecha.Year; var fechaInicial = fecha.Date.ToString("MM-dd-yyyy HH:mm:ss"); var sql = $@"SELECT ID_VENTA as Id, Fecha, NPuesto as Puesto, Cliente, Vendedor, Descuento, Pago, Tipo, Importe FROM ventas WHERE id_venta >= @id AND year(fecha) = @year AND fecha >= #{fechaInicial}# ORDER BY id_venta ASC"; return(db.Database.SqlQuery <DTO.Venta>(sql, new OleDbParameter("id", (int)id), new OleDbParameter("year", year)) .Select(GenerarVentaEncabezado) .ToList()); } } catch (FarmaciaContextException) { return(new List <Venta>()); } } catch (Exception ex) when(ex.Message.Contains(FarmaciaContext.MessageUnderlyngProviderFailed)) { return(GetAllByIdGreaterOrEqual(id, fecha)); } }
public List <Venta> GetAllByIdGreaterOrEqual(int year, long value) { try { // Access no handlea long var valueInteger = (int)value; try { using (var db = FarmaciaContext.VentasByYear(year)) { var sql = @"SELECT TOP 999 ID_VENTA as Id, Fecha, NPuesto as Puesto, Cliente, Vendedor, Descuento, Pago, Tipo, Importe FROM ventas WHERE year(fecha) >= @year AND ID_VENTA >= @value ORDER BY ID_VENTA ASC"; return(db.Database.SqlQuery <DTO.Venta>(sql, new OleDbParameter("year", year), new OleDbParameter("value", valueInteger)) .Select(GenerarVentaEncabezado) .ToList()); } } catch (FarmaciaContextException) { return(new List <Venta>()); } } catch (Exception ex) when(ex.Message.Contains(FarmaciaContext.MessageUnderlyngProviderFailed)) { return(GetAllByIdGreaterOrEqual(year, value)); } }
public Ticket GetOneOrdefaultByVentaId(long venta, int year) { try { var ventaInteger = (int)venta; using (var db = FarmaciaContext.VentasByYear(year)) { var sql = @"SELECT Id_Ticket as Numero, Serie FROM Tickets_D WHERE Id_Venta = @venta"; return(db.Database.SqlQuery <Ticket>(sql, new OleDbParameter("venta", ventaInteger)) .FirstOrDefault()); } } catch (Exception ex) when(ex.Message.Contains(FarmaciaContext.MessageUnderlyngProviderFailed)) { return(GetOneOrdefaultByVentaId(venta, year)); } }
public Ticket GetOneOrDefaultTicketByVentaId(long id) { try { var year = int.Parse($"{id}".Substring(0, 4)); var ventaId = int.Parse($"{id}".Substring(4)); using (var db = FarmaciaContext.VentasByYear(year)) { var sql = @"SELECT Id_Ticket as Numero, Serie FROM Tickets_D WHERE Id_Venta = @venta"; var rs = db.Database.SqlQuery <DTO.Ticket>(sql, new OleDbParameter("venta", ventaId)) .FirstOrDefault(); return(rs != null ? new Ticket { Numero = rs.Numero, Serie = rs.Serie } : null); } } catch (Exception ex) when(ex.Message.Contains(FarmaciaContext.MessageUnderlyngProviderFailed)) { return(GetOneOrDefaultTicketByVentaId(id)); } }
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)); } }
public List <VentaDetalle> GetDetalleDeVentaByVentaId(int year, long venta) { try { var ventaInteger = (int)venta; try { using (var db = FarmaciaContext.VentasByYear(year)) { var sql = @"SELECT ID_Farmaco as Farmaco, Organismo, Cantidad, PVP, DescLin as Descuento, Importe FROM lineas_venta WHERE ID_venta= @venta"; var lineas = db.Database.SqlQuery <DTO.LineaVenta>(sql, new OleDbParameter("venta", ventaInteger)) .ToList(); //if (!lineas.Any()) // Logging.WriteToFileThreadSafe(DateTime.Now.ToString("o") + $"Detalle venta {year} {venta} NO tiene detalle.", FILE_LOG); //else //{ // Logging.WriteToFileThreadSafe(DateTime.Now.ToString("o") + $"Detalle venta {year} {venta} SI tiene detalle. | Total = {lineas.Count}", FILE_LOG); //} var linea = 0; var detalle = new List <VentaDetalle>(); foreach (var item in lineas) { var ventaDetalle = new VentaDetalle { Linea = ++linea, Importe = item.Importe * _factorCentecimal, PVP = item.PVP * _factorCentecimal, Descuento = item.Descuento * _factorCentecimal, Receta = item.Organismo, Cantidad = item.Cantidad }; var farmaco = _farmacoRepository.GetOneOrDefaultById(item.Farmaco); if (farmaco != null) { var pcoste = farmaco.PrecioUnicoEntrada.HasValue && farmaco.PrecioUnicoEntrada != 0 ? (decimal)farmaco.PrecioUnicoEntrada.Value * _factorCentecimal : ((decimal?)farmaco.PrecioMedio ?? 0m) * _factorCentecimal; var codigoBarra = _barraRepository.GetOneByFarmacoId(farmaco.Id); var proveedor = _proveedorRepository.GetOneOrDefaultByCodigoNacional(farmaco.Id); 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) ?? new Laboratorio { Codigo = farmaco.Laboratorio }; 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; } ventaDetalle.Farmaco = new Farmaco { Id = farmaco.Id, Codigo = item.Farmaco.ToString(), PrecioCoste = pcoste, CodigoBarras = codigoBarra, Proveedor = proveedor, Categoria = categoria, Subcategoria = subcategoria, Familia = familia, Laboratorio = laboratorio, Denominacion = farmaco.Denominacion, 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, Iva = iva, Stock = farmaco.ExistenciasAux ?? 0, StockMinimo = farmaco.Stock ?? 0, Baja = farmaco.FechaBaja > 0, FechaCaducidad = farmaco.FechaCaducidad.HasValue && farmaco.FechaCaducidad.Value > 0 ? (DateTime?)$"{farmaco.FechaCaducidad.Value}".ToDateTimeOrDefault("yyyyMM") : null }; } else { ventaDetalle.Farmaco = new Farmaco { Id = item.Farmaco, Codigo = item.Farmaco.ToString() } }; detalle.Add(ventaDetalle); } //Logging.WriteToFileThreadSafe(DateTime.Now.ToString("o") + $"Detalle generado venta {year} {venta} | total = {detalle.Count}", FILE_LOG); return(detalle); } } catch (FarmaciaContextException) { return(new List <VentaDetalle>()); } } catch (Exception ex) when(ex.Message.Contains(FarmaciaContext.MessageUnderlyngProviderFailed)) { return(GetDetalleDeVentaByVentaId(year, venta)); } }