private PuntosPendientes GenerarPuntoPendienteVentaSinDetalle(FAR.Venta venta, string empresa) { return(new PuntosPendientes { VentaId = $"{venta.Operacion}{empresa}".ToLongOrDefault(), LineaNumero = 0, CodigoBarra = string.Empty, CodigoNacional = string.Empty, Descripcion = "PAGO", Familia = string.Empty, SuperFamilia = string.Empty, SuperFamiliaAux = string.Empty, FamiliaAux = string.Empty, CambioClasificacion = _clasificacion == TIPO_CLASIFICACION_CATEGORIA ? 1 : 0, Cantidad = 0, Precio = 0, Pago = 0, TipoPago = venta.TipoOperacion, Fecha = venta.FechaHora.Date.ToDateInteger(), DNI = venta.Cliente?.Id.ToString() ?? "0", Cargado = _cargarPuntos.ToLower().Equals("si") ? "no" : "si", Puesto = $"{venta.Puesto}", Trabajador = !string.IsNullOrWhiteSpace(venta.VendedorCodigo) ? venta.VendedorCodigo.Trim() : string.Empty, LaboratorioCodigo = string.Empty, Laboratorio = string.Empty, Proveedor = string.Empty, Receta = string.Empty, FechaVenta = venta.FechaHora, PVP = 0, PUC = 0, Categoria = string.Empty, Subcategoria = string.Empty, VentaDescuento = venta.TotalDescuento, LineaDescuento = 0, TicketNumero = 0, Serie = string.Empty, Sistema = SISTEMA_NIXFARMA, Ubicacion = string.Empty }); }
private IEnumerable <PuntosPendientes> GenerarPuntosPendientes(FAR.Venta venta) { if (!venta.HasCliente() && venta.Tipo != "1") { return(new PuntosPendientes[0]); } if (!venta.HasDetalle()) { return(new PuntosPendientes[0]); } var puntosPendientes = new List <PuntosPendientes>(); foreach (var item in venta.Detalle) { var familia = item.Farmaco.Familia?.Nombre ?? FAMILIA_DEFAULT; var puntoPendiente = new PuntosPendientes { VentaId = $"{venta.FechaHora.Year}{venta.Id}".ToLongOrDefault(), LineaNumero = item.Linea, CodigoBarra = item.Farmaco.CodigoBarras ?? "847000" + item.Farmaco.Codigo.PadLeft(6, '0'), CodigoNacional = item.Farmaco.Codigo, Descripcion = item.Farmaco.Denominacion, Familia = _clasificacion == TIPO_CLASIFICACION_CATEGORIA ? item.Farmaco.Subcategoria?.Nombre ?? FAMILIA_DEFAULT : familia, SuperFamilia = _clasificacion == TIPO_CLASIFICACION_CATEGORIA ? item.Farmaco.Categoria?.Nombre ?? FAMILIA_DEFAULT : string.Empty, SuperFamiliaAux = string.Empty, FamiliaAux = _clasificacion == TIPO_CLASIFICACION_CATEGORIA ? familia : string.Empty, CambioClasificacion = _clasificacion == TIPO_CLASIFICACION_CATEGORIA ? 1 : 0, Cantidad = item.Cantidad, Precio = item.Importe, Pago = item.Equals(venta.Detalle.First()) ? venta.TotalBruto : 0, TipoPago = venta.Tipo, Fecha = venta.FechaHora.Date.ToDateInteger(), DNI = venta.Cliente?.Id.ToString() ?? "0", Cargado = _cargarPuntos.ToLower().Equals("si") ? "no" : "si", Puesto = $"{venta.Puesto}", Trabajador = venta.VendedorNombre, LaboratorioCodigo = item.Farmaco.Laboratorio?.Codigo ?? string.Empty, Laboratorio = item.Farmaco.Laboratorio?.Nombre ?? LABORATORIO_DEFAULT, Proveedor = item.Farmaco.Proveedor?.Nombre ?? string.Empty, Receta = item.Receta, FechaVenta = venta.FechaHora, PVP = item.PVP, PUC = item.Farmaco?.PrecioCoste ?? 0, Categoria = item.Farmaco.Categoria?.Nombre ?? string.Empty, Subcategoria = item.Farmaco.Subcategoria?.Nombre ?? string.Empty, VentaDescuento = item.Equals(venta.Detalle.First()) ? venta.TotalDescuento : 0, LineaDescuento = item.Descuento, TicketNumero = venta.Ticket?.Numero, Serie = venta.Ticket?.Serie ?? string.Empty, Sistema = SISTEMA_UNYCOP }; puntosPendientes.Add(puntoPendiente); } return(puntosPendientes); }
private IEnumerable <PuntosPendientes> GenerarPuntosPendientes(FAR.Venta venta, string empresa) { if (!venta.HasDetalle()) { return venta.TipoOperacion == "P" ? new PuntosPendientes[] { GenerarPuntoPendienteVentaSinDetalle(venta, empresa) } } : new PuntosPendientes[0]; var puntosPendientes = new List <PuntosPendientes>(); foreach (var item in venta.Detalle.Where(d => d.HasFarmaco())) { var familia = !string.IsNullOrWhiteSpace(item.Farmaco.Familia?.Nombre) ? item.Farmaco.Familia.Nombre : FAMILIA_DEFAULT; var superFamilia = !string.IsNullOrWhiteSpace(item.Farmaco.SuperFamilia?.Nombre) ? item.Farmaco.SuperFamilia.Nombre : FAMILIA_DEFAULT; var categoria = item.Farmaco.Categoria?.Nombre; if (_verCategorias == "si" && !string.IsNullOrWhiteSpace(categoria) && categoria.ToLower() != "sin categoria" && categoria.ToLower() != "sin categoría") { if (string.IsNullOrEmpty(superFamilia) || superFamilia == FAMILIA_DEFAULT) { superFamilia = categoria; } else { superFamilia = $"{superFamilia} ~~~~~~~~ {categoria}"; } } var puntoPendiente = new PuntosPendientes { VentaId = $"{venta.Operacion}{empresa}".ToLongOrDefault(), LineaNumero = item.Linea, CodigoBarra = item.Farmaco.CodigoBarras ?? "847000" + item.Farmaco.Codigo.PadLeft(6, '0'), CodigoNacional = item.Farmaco.Codigo, Descripcion = item.Farmaco.Denominacion, Familia = familia, SuperFamilia = superFamilia, SuperFamiliaAux = string.Empty, FamiliaAux = string.Empty, CambioClasificacion = _clasificacion == TIPO_CLASIFICACION_CATEGORIA ? 1 : 0, Cantidad = item.Cantidad, Precio = item.Precio, Pago = item.Equals(venta.Detalle.First()) ? venta.TotalBruto : 0, TipoPago = venta.TipoOperacion, Fecha = venta.FechaHora.Date.ToDateInteger(), DNI = venta.Cliente?.Id.ToString() ?? "0", Cargado = _cargarPuntos.ToLower().Equals("si") ? "no" : "si", Puesto = $"{venta.Puesto}", Trabajador = !string.IsNullOrWhiteSpace(venta.VendedorCodigo) ? venta.VendedorCodigo.Trim() : string.Empty, LaboratorioCodigo = item.Farmaco.Laboratorio?.Codigo ?? string.Empty, Laboratorio = item.Farmaco.Laboratorio?.Nombre ?? LABORATORIO_DEFAULT, Proveedor = item.Farmaco.Proveedor?.Nombre ?? string.Empty, Receta = item.Receta, FechaVenta = venta.FechaHora, PVP = item.PVP, PUC = item.Farmaco?.PrecioCoste ?? 0, Categoria = item.Farmaco.Categoria?.Nombre ?? string.Empty, Subcategoria = item.Farmaco.Subcategoria?.Nombre ?? string.Empty, VentaDescuento = item.Equals(venta.Detalle.First()) ? venta.TotalDescuento : 0, LineaDescuento = item.Descuento, TicketNumero = venta.Ticket?.Numero, Serie = venta.Ticket?.Serie ?? string.Empty, Sistema = SISTEMA_NIXFARMA, Ubicacion = item.Farmaco?.Ubicacion }; puntosPendientes.Add(puntoPendiente); } return(puntosPendientes); }