private bool HayDiferencias(int dni, string vendedor, PuntosPendientes remoto, LineaVenta local) { return (local.Cantidad != remoto.cantidad || dni != remoto.dni.ToIntegerOrDefault() || Math.Round(local.ImporteNeto, 2) != (double)Math.Round(remoto.precio, 2) || Math.Round(local.DescuentoLinea.GetValueOrDefault(), 2) != Math.Round(remoto.dtoLinea.GetValueOrDefault(), 2) || Math.Round(local.DescuentoOpera.GetValueOrDefault(), 2) != Math.Round(remoto.dtoVenta.GetValueOrDefault(), 2) || vendedor.Trim().ToUpper() != remoto.trabajador.Trim().ToUpper() || local.TipoAportacion.Trim().ToUpper() != remoto.receta.Trim().ToUpper()); }
public void Insert(PuntosPendientes pp) { var set = new { idventa = pp.idventa, idnlinea = pp.idnlinea, cod_barras = pp.cod_barras, cod_nacional = pp.cod_nacional, descripcion = pp.descripcion, familia = pp.familia, cantidad = pp.cantidad, precio = pp.precio, tipoPago = pp.tipoPago, fecha = pp.fecha, dni = pp.dni, cargado = pp.cargado, puesto = pp.puesto, trabajador = pp.trabajador, cod_laboratorio = pp.cod_laboratorio, laboratorio = pp.laboratorio, proveedor = pp.proveedor, receta = pp.receta, fechaVenta = pp.fechaVenta.ToIsoString(), superFamilia = pp.superFamilia, pvp = pp.pvp, puc = pp.puc, dtoLinea = pp.dtoLinea, dtoVenta = pp.dtoVenta, redencion = pp.redencion, recetaPendiente = pp.recetaPendiente }; var where = new { idventa = pp.idventa, idnlinea = pp.idnlinea }; _restClient .Resource(_config.Puntos.Insert) .SendPost(new { puntos = new[] { new { set, where } } }); }
public void Insert(PuntosPendientes pp) { var set = new { idventa = pp.VentaId, idnlinea = pp.LineaNumero, cod_barras = pp.CodigoBarra, cod_nacional = pp.CodigoNacional, descripcion = pp.Descripcion.Strip(), familia = pp.Familia, cantidad = pp.Cantidad, precio = pp.Precio, tipoPago = pp.TipoPago, fecha = pp.Fecha, dni = pp.DNI, cargado = pp.Cargado, puesto = pp.Puesto, trabajador = pp.Trabajador, cod_laboratorio = pp.LaboratorioCodigo, laboratorio = pp.Laboratorio, proveedor = pp.Proveedor, receta = pp.Receta, fechaVenta = pp.FechaVenta.ToIsoString(), superFamilia = pp.SuperFamilia, pvp = pp.PVP, puc = pp.PUC, dtoLinea = pp.LineaDescuento, dtoVenta = pp.VentaDescuento, redencion = pp.redencion, recetaPendiente = pp.recetaPendiente }; var where = new { idventa = pp.VentaId, idnlinea = pp.LineaNumero }; _restClient .Resource(_config.Puntos.Insert) .SendPost(new { puntos = new[] { new { set, where } } }); }
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); }
private PuntosPendientes GenerarPuntoPendiente(string puntosDeSisfarma, string cargarPuntos, int dni, string tarjetaDelCliente, double descuentoVenta, Venta venta, LineaVenta linea, string vendedor, FarmaticService farmatic, ConsejoService consejo) { var redencion = (farmatic.Ventas.GetOneOrDefaultLineaRedencionByKey(venta.IdVenta, linea.IdNLinea)? .Redencion) ?? 0; var articulo = farmatic.Articulos.GetOneOrDefaultById(linea.Codigo); var pp = new PuntosPendientes(); pp.idventa = venta.IdVenta; pp.idnlinea = linea.IdNLinea; pp.puntos = 0; pp.puesto = venta.Maquina; pp.tipoPago = linea.TipoLinea; pp.fechaVenta = venta.FechaHora; if (string.IsNullOrEmpty(venta.XClie_IdCliente.Strip()?.Trim()) || string.IsNullOrWhiteSpace(venta.XClie_IdCliente.Strip())) { pp.dni = "0"; } else { pp.dni = venta.XClie_IdCliente.Strip(); } pp.trabajador = vendedor; pp.fecha = Convert.ToInt32(venta.FechaHora.ToString("yyyyMMdd")); pp.recetaPendiente = linea.RecetaPendiente; pp.receta = linea.TipoAportacion; pp.redencion = Convert.ToSingle(redencion); pp.cod_nacional = linea.Codigo; pp.cod_barras = GetCodidoBarrasFromLocalOrDefault(farmatic, linea.Codigo); pp.descripcion = linea.Descripcion.Strip(); pp.pvp = Convert.ToSingle(linea.PVP); pp.dtoVenta = Convert.ToSingle(descuentoVenta); pp.dtoLinea = Convert.ToSingle(linea.DescuentoLinea ?? 0d); pp.precio = Convert.ToDecimal(linea.ImporteNeto); pp.cantidad = linea.Cantidad; pp.cargado = cargarPuntos.ToLower().Equals("si") ? "no" : "si"; if (articulo == null) { pp.laboratorio = "<Sin Laboratorio>"; pp.cod_laboratorio = string.Empty; pp.familia = FAMILIA_DEFAULT; pp.superFamilia = FAMILIA_DEFAULT; pp.proveedor = string.Empty; pp.puc = 0; } else { pp.cod_laboratorio = articulo.Laboratorio.Strip() ?? string.Empty; pp.laboratorio = GetNombreLaboratorioFromLocalOrDefault(farmatic, consejo, pp.cod_laboratorio, "<Sin Laboratorio>"); pp.puc = Convert.ToSingle(articulo.Puc); pp.familia = GetFamiliaFromLocalOrDefault(farmatic, articulo.XFam_IdFamilia, "<Sin Clasificar>"); pp.superFamilia = !pp.familia.Equals("<Sin Clasificar>") ? GetSuperFamiliaFromLocalOrDefault(farmatic, pp.familia, "<Sin Clasificar>").Strip() : pp.familia.Strip(); pp.familia = pp.familia.Strip(); pp.proveedor = GetProveedorFromLocalOrDefault(farmatic, articulo.IdArticu).Strip(); } //var sonpuntosdesisfarma = puntosdesisfarma.tolower().equals("si"); //var fechadeventa = venta.fechahora.date; //var cargado = cargarpuntos.tolower().equals("si"); //if (dni != 0 && // sonpuntosdesisfarma && !cargado && // !string.isnullorwhitespace(_fechadepuntos) && // _fechadepuntos.tolower() != "no" && // fechadeventa >= _fechadepuntos.todatetimeordefault("yyyymmdd")) //{ // var tipofamilia = pp.familia != familia_default ? pp.familia : pp.superfamilia; // var importe = linea.importeneto; // var articulodescripcion = articulo?.descripcion ?? string.empty; // var articulocantidad = linea.cantidad; // pp.puntos = (float)calcularpuntos(tarjetadelcliente, tipofamilia, importe, articulodescripcion, articulocantidad); //} //else if (dni != 0 && _fechadepuntos.tolower() != "no") // pp.cargado = "no"; return(pp); }
public void Insert(PuntosPendientes pp) { throw new NotImplementedException(); }
private IEnumerable <PuntosPendientes> GenerarPuntosPendientes(Venta venta) { //Logging.WriteToFileThreadSafe(DateTime.Now.ToString("o") + " " + $"Generando puntos pendientes {venta.Id}", FILE_LOG); //if (!venta.HasCliente() && venta.Tipo != "1") // return new PuntosPendientes[0]; if (!venta.HasDetalle()) { return(new PuntosPendientes[0]); } //Logging.WriteToFileThreadSafe(DateTime.Now.ToString("o") + " " + $"Generando puntos pendientes despues de if {venta.Id}", FILE_LOG); var puntosPendientes = new List <PuntosPendientes>(); foreach (var item in venta.Detalle) { var repository = _farmacia.Farmacos as FarmacoRespository; 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, articulo = GenerarMedicamentoP(item.Farmaco) }; //Logging.WriteToFileThreadSafe(DateTime.Now.ToString("o") + " " + $"Añadiendo puntos pendientes {venta.Id}", FILE_LOG); puntosPendientes.Add(puntoPendiente); } //Logging.WriteToFileThreadSafe(DateTime.Now.ToString("o") + " " + $"Puntos pendientes generado {venta.Id} | total = {puntosPendientes.Count}", FILE_LOG); return(puntosPendientes); }