public VentaMensualActualizacionSincronizador(FarmaticService farmatic, FisiotesService fisiotes, ConsejoService consejo, int listaDeArticulo) : base(farmatic, fisiotes) { _consejo = consejo ?? throw new ArgumentNullException(nameof(consejo)); _listaDeArticulo = listaDeArticulo; _hasSexo = farmatic.Clientes.HasSexoField(); }
private void ProcessListaTienda(FarmaciaService farmatic, FisiotesService fisiotes, ConsejoService consejo, int listaDeArticulo) { if (listaDeArticulo <= 0) { return; } var lista = farmatic.ListasArticulos.GetOneOrDefault(listaDeArticulo); if (lista != null) { fisiotes.Listas.InsertOrUpdate(new Fisiotes.Models.Lista { cod = lista.IdLista, lista = lista.Descripcion.Strip() }); fisiotes.Listas.DeArticulos.Delete(lista.IdLista); var articulos = farmatic.ListasArticulos.GetArticulosByLista(lista.IdLista); foreach (var articulo in articulos) { _cancellationToken.ThrowIfCancellationRequested(); fisiotes.Listas.DeArticulos.Insert(new Fisiotes.Models.ListaArticulo { cod_lista = articulo.XItem_IdLista, cod_articulo = Convert.ToInt32(articulo.XItem_IdArticu) }); var awi = farmatic.ListasArticulos.GetArticuloWithIva(listaDeArticulo, articulo.XItem_IdArticu); var medicamentoGenerado = Generator.GenerarMedicamento(farmatic, consejo, awi); var medicamento = fisiotes.Medicamentos.GetOneOrDefaultByCodNacional(awi.IdArticu); SincronizarMedicamento(fisiotes, medicamento, medicamentoGenerado); } farmatic.ListasArticulos.Update(listaDeArticulo); } }
public ListaTiendaSincronizador(FarmaciaService farmatic, FisiotesService fisiotes, ConsejoService consejo, int listaDeArticulo) : base(farmatic, fisiotes, consejo) { _listaDeArticulo = listaDeArticulo; }
public static string GetNombreLaboratorioFromLocalOrDefault(FarmaticService farmaticService, ConsejoService consejoService, string codigo, string byDefault = "") { var nombreLaboratorio = byDefault; if (!string.IsNullOrEmpty(codigo?.Trim()) && !string.IsNullOrWhiteSpace(codigo)) { var laboratorioDb = default(Consejo.Models.Labor); //consejoService.Laboratorios.Get(codigo); if (laboratorioDb == null) { var laboratorioLocal = farmaticService.Laboratorios.GetById(codigo); nombreLaboratorio = laboratorioLocal?.Nombre ?? byDefault; } else { nombreLaboratorio = laboratorioDb.NOMBRE; } } else { nombreLaboratorio = byDefault; } return(nombreLaboratorio); }
public static Fisiotes.Models.Medicamento GenerarMedicamento(FarmaticService farmatic, ConsejoService consejo, ArticuloWithIva articulo) { var familia = farmatic.Familias.GetById(articulo.XFam_IdFamilia)?.Descripcion ?? string.Empty; var superFamilia = !string.IsNullOrEmpty(familia) ? farmatic.Familias.GetSuperFamiliaDescripcionByFamilia(familia) ?? string.Empty : string.Empty; var fechaUltimaCompra = articulo.FechaUltimaEntrada; var fechaUltimaVenta = articulo.FechaUltimaSalida; var precio = articulo.Pvp; var pcoste = articulo.Puc; var pvpsIva = Math.Round(articulo.Pvp * 100 / (articulo.Iva + 100), 2); var stock = articulo.StockActual; var stockMinimo = articulo.StockMinimo; var stockMaximo = articulo.StockMaximo; var descripcion = articulo.Descripcion.Strip(); var baja = articulo.Baja; var activo = !baja; var fechaCaducidad = articulo.FechaCaducidad; var codigoBarra = farmatic.Sinonimos.GetOneOrDefaultByArticulo(articulo.IdArticu)?.Sinonimo ?? COD_BARRAS_DEFAULT; var proveedor = farmatic.Proveedores.GetOneOrDefaultByCodigoNacional(articulo.IdArticu)?.FIS_NOMBRE ?? string.Empty; var nombreLaboratorio = GetNombreLaboratorioFromLocalOrDefault( farmatic, consejo, articulo.Laboratorio, LABORATORIO_DEAFULT); var esperara = default(Consejo.Models.Esperara); // consejoService.Esperas.Get(articulo.IdArticu); var presentacion = esperara?.PRESENTACION ?? string.Empty; var descripcionHtml = string.Empty; var textos = new List <string>(); //consejoService.Esperas.GetTextos(articulo.IdArticu); foreach (var texto in textos) { if (string.IsNullOrEmpty(descripcionHtml)) { descripcionHtml = texto; } descripcionHtml += $@" <br> {texto}"; } descripcionHtml = descripcionHtml.Length < 30000 ? descripcionHtml.Replace(Environment.NewLine, "<br>").Replace("\0", string.Empty).Strip() : string.Empty; return(new Fisiotes.Models.Medicamento { cod_barras = codigoBarra.Strip(), cod_nacional = articulo.IdArticu.Strip(), familia = familia.Strip(), superFamilia = superFamilia.Strip(), nombre = descripcion.Strip(), precio = Convert.ToSingle(precio), nombre_laboratorio = nombreLaboratorio.Strip(), laboratorio = articulo.Laboratorio.Strip(), proveedor = proveedor.Strip(), pvpSinIva = Convert.ToSingle(pvpsIva), iva = Convert.ToInt32(articulo.Iva), stock = stock, puc = Convert.ToSingle(pcoste), stockMinimo = stockMinimo, stockMaximo = stockMaximo, presentacion = presentacion.Strip(), descripcion = descripcion.Strip(), descripcionTienda = descripcionHtml.Strip(), activoPrestashop = activo, fechaCaducidad = fechaCaducidad, fechaUltimaCompra = fechaUltimaCompra, fechaUltimaVenta = fechaUltimaVenta, baja = baja }); }
private Fisiotes.Models.Encargo GenerarEncargo(FarmaticService farmatic, Farmatic.Models.Encargo encargo, ConsejoService consejo) { var nombre = string.Empty; var familia = FAMILIA_DEFAULT; var superFamilia = FAMILIA_DEFAULT; var codLaboratorio = string.Empty; var laboratorio = LABORATORIO_DEFAULT; var proveedor = string.Empty; var pcoste = 0d; var precioMed = 0d; var dni = !string.IsNullOrEmpty(encargo.XCli_IdCliente) ? encargo.XCli_IdCliente.Trim() : "0"; var trabajador = farmatic.Vendedores.GetOneOrDefaultById(Convert.ToInt16(encargo.Vendedor))?.NOMBRE ?? string.Empty; var codNacional = encargo.XArt_IdArticu?.Trim(); if (string.IsNullOrWhiteSpace(codNacional)) { codNacional = "0"; } var articulo = farmatic.Articulos.GetOneOrDefaultById(encargo.XArt_IdArticu); if (articulo != null) { nombre = articulo.Descripcion.Strip(); pcoste = articulo.Puc; precioMed = articulo.Pvp; familia = farmatic.Familias.GetById(articulo.XFam_IdFamilia)?.Descripcion; if (string.IsNullOrEmpty(familia)) { familia = FAMILIA_DEFAULT; } superFamilia = !familia.Equals(FAMILIA_DEFAULT) ? farmatic.Familias.GetSuperFamiliaDescripcionByFamilia(familia) ?? FAMILIA_DEFAULT : familia; proveedor = farmatic.Proveedores.GetOneOrDefaultByCodigoNacional(articulo.IdArticu)?.FIS_NOMBRE.Strip() ?? string.Empty; codLaboratorio = articulo.Laboratorio.Strip() ?? string.Empty; laboratorio = GetNombreLaboratorioFromLocalOrDefault(farmatic, consejo, codLaboratorio, LABORATORIO_DEFAULT).Strip(); } return(new Fisiotes.Models.Encargo { idEncargo = encargo.IdContador, cod_nacional = codNacional, nombre = nombre, familia = familia, superFamilia = superFamilia, cod_laboratorio = codLaboratorio, laboratorio = laboratorio, proveedor = proveedor, pvp = Convert.ToSingle(precioMed), puc = Convert.ToSingle(pcoste), dni = dni, fecha = encargo.IdFecha, trabajador = trabajador, unidades = encargo.Unidades, fechaEntrega = encargo.FechaEntrega, observaciones = encargo.Observaciones.Strip() }); }
public EncargoSincronizador(FarmaticService farmatic, FisiotesService fisiotes, ConsejoService consejo) : base(farmatic, fisiotes) { _consejo = consejo ?? throw new ArgumentNullException(nameof(consejo)); }
private Fisiotes.Models.Falta GenerarFaltante(FarmaticService farmatic, Pedido pedido, LineaPedido linea, Articulo articulo, ConsejoService consejo) { var fechaPedido = pedido.Hora; var fechaActual = DateTime.Now; var pcoste = articulo.Puc; var precioMed = articulo.Pvp; var familia = farmatic.Familias.GetById(articulo.XFam_IdFamilia)?.Descripcion; if (string.IsNullOrWhiteSpace(familia)) { familia = FAMILIA_DEFAULT; } var superFamilia = !familia.Equals(FAMILIA_DEFAULT) ? farmatic.Familias.GetSuperFamiliaDescripcionByFamilia(familia) ?? FAMILIA_DEFAULT : familia; var proveedor = farmatic.Proveedores.GetOneOrDefaultByCodigoNacional(articulo.IdArticu)?.FIS_NOMBRE ?? string.Empty; var codLaboratorio = articulo.Laboratorio ?? string.Empty; var nombreLaboratorio = GetNombreLaboratorioFromLocalOrDefault(farmatic, consejo, codLaboratorio, LABORATORIO_DEFAULT); return(new Fisiotes.Models.Falta { idPedido = linea.IdPedido, idLinea = linea.IdLinea, cod_nacional = articulo.IdArticu.Strip(), descripcion = articulo.Descripcion, familia = familia.Strip(), superFamilia = superFamilia.Strip(), cantidadPedida = linea.Unidades, fechaFalta = fechaActual, cod_laboratorio = codLaboratorio.Strip(), laboratorio = nombreLaboratorio.Strip(), proveedor = proveedor.Strip(), fechaPedido = fechaPedido, pvp = Convert.ToSingle(precioMed), puc = Convert.ToSingle(pcoste) }); }
public ControlStockFechaSalidaSincronizador(FarmaticService farmatic, FisiotesService fisiotes, ConsejoService consejo) : base(farmatic, fisiotes, consejo) { }
public PuntoPendienteSincronizador(FarmaticService farmatic, FisiotesService fisiotes, ConsejoService consejo) : base(farmatic, fisiotes) { _consejo = consejo ?? throw new ArgumentNullException(nameof(consejo)); _hasSexo = farmatic.Clientes.HasSexoField(); }
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); }
private Fisiotes.Models.LineaPedido GenerarLineaDePedido(FarmaticService farmatic, Recepcion recepcion, LineaRecepcion linea, Articulo articulo, ConsejoService consejo) { var puc = linea.ImportePuc; var pvp = linea.ImportePvp; var familia = farmatic.Familias.GetById(articulo.XFam_IdFamilia)?.Descripcion; if (string.IsNullOrWhiteSpace(familia)) { familia = FAMILIA_DEFAULT; } var superFamilia = !familia.Equals(FAMILIA_DEFAULT) ? farmatic.Familias.GetSuperFamiliaDescripcionByFamilia(familia) ?? FAMILIA_DEFAULT : familia; var codLaboratorio = articulo.Laboratorio ?? string.Empty; var nombreLaboratorio = GetNombreLaboratorioFromLocalOrDefault(farmatic, consejo, codLaboratorio, LABORATORIO_DEFAULT); return(new Fisiotes.Models.LineaPedido { idPedido = linea.IdRecepcion, idLinea = linea.IdNLinea, fechaPedido = recepcion.Hora, cod_nacional = Convert.ToInt64(articulo.IdArticu.Strip()), descripcion = articulo.Descripcion.Strip(), familia = familia.Strip(), superFamilia = superFamilia.Strip(), cantidad = linea.Recibidas - linea.UDevolver, pvp = Convert.ToSingle(pvp), puc = Convert.ToSingle(puc), cod_laboratorio = codLaboratorio.Strip(), laboratorio = nombreLaboratorio.Strip() }); }