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 ProcessUpdateEntregasClientes(FarmaticService farmatic, FisiotesService fisiotes)
        {
            var valor = fisiotes.Configuraciones.GetByCampo(FIELD_POR_DONDE_VOY_ENTREGAS_CLIENTES);
            var venta = Convert.ToInt32(!string.IsNullOrEmpty(valor)
                ? valor
                : "0");

            var ventasVirtuales = farmatic.Ventas.GetVirtualesLessThanId(venta);

            foreach (var @virtual in ventasVirtuales)
            {
                _cancellationToken.ThrowIfCancellationRequested();

                var lineas = farmatic.Ventas.GetLineasVirtualesByVenta(@virtual.IdVenta);
                foreach (var linea in lineas)
                {
                    if (!fisiotes.Entregas.Exists(linea.IdVenta, linea.IdNLinea))
                    {
                        fisiotes.Entregas.Insert(
                            GenerarEntregaCliente(farmatic, @virtual, linea));

                        fisiotes.Configuraciones.Update(FIELD_POR_DONDE_VOY_ENTREGAS_CLIENTES, @virtual.IdVenta.ToString());
                    }
                }
            }
        }
Ejemplo n.º 3
0
        private void ProcessCategorias(FarmaticService farmatic, FisiotesService fisiotes)
        {
            var familias = farmatic.Familias.GetByDescripcion();

            foreach (var familia in familias)
            {
                Task.Delay(5);

                _cancellationToken.ThrowIfCancellationRequested();

                var padre = farmatic.Familias.GetSuperFamiliaDescripcionByFamilia($"{familia.Descripcion}")
                            ?? PADRE_DEFAULT;

                /*if (!fisiotes.Categorias.Exists(familia.Descripcion.Strip(), padre.Strip()))
                 * {
                 *  var categoria = fisiotes.Categorias.GetByPadreOrDefault(padre.Strip());
                 *  var padreId = categoria?.prestashopPadreId;*/
                fisiotes.Categorias.Insert(new Fisiotes.Models.Categoria
                {
                    categoria         = familia.Descripcion.Strip(),
                    padre             = padre.Strip(),
                    prestashopPadreId = null
                });
                //}
            }
        }
        private 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);
        }
Ejemplo n.º 5
0
        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()
            });
        }
        private string GetFamiliaFromLocalOrDefault(FarmaticService farmatic, short id, string byDefault = "")
        {
            var familiaDb = farmatic.Familias.GetById(id);

            return(!string.IsNullOrEmpty(familiaDb?.Descripcion)
                ? familiaDb.Descripcion
                : byDefault);
        }
Ejemplo n.º 7
0
        private void ProcessFamilia(FarmaticService farmatic, FisiotesService fisiotes)
        {
            var familias = farmatic.Familias.Get();

            foreach (var familia in familias)
            {
                Task.Delay(5);

                _cancellationToken.ThrowIfCancellationRequested();

                //if (!fisiotes.Familias.Exists(familia.Descripcion))
                fisiotes.Familias.Insert(GenerarFamilia(familia.Descripcion.Strip()));
            }
        }
        private void ProcessListas(FarmaticService farmatic, FisiotesService fisiotes)
        {
            var listas = farmatic.ListasArticulos.GetByIdGreaterThan(_codActual);

            foreach (var lista in listas)
            {
                Task.Delay(5);

                _cancellationToken.ThrowIfCancellationRequested();

                //fisiotes.Listas.ResetPorDondeVoy();
                fisiotes.Listas.InsertOrUpdate(new Fisiotes.Models.Lista
                {
                    cod   = lista.IdLista,
                    lista = lista.Descripcion.Strip()
                });

                _codActual = lista.IdLista;

                var articulos = farmatic.ListasArticulos.GetArticulosByLista(lista.IdLista);
                if (articulos.Any())
                {
                    fisiotes.Listas.DeArticulos.Delete(lista.IdLista);

                    for (int i = 0; i < articulos.Count; i += BATCH_SIZE)
                    {
                        Task.Delay(1);

                        var items = articulos
                                    .Skip(i)
                                    .Take(BATCH_SIZE)
                                    .Select(x => new Fisiotes.Models.ListaArticulo
                        {
                            cod_lista    = x.XItem_IdLista,
                            cod_articulo = x.XItem_IdArticu.ToIntegerOrDefault(-1)
                        }).ToList();

                        fisiotes.Listas.DeArticulos.Insert(items);
                    }
                }
            }

            _codActual = -1;
            //fisiotes.Listas.ResetPorDondeVoy();
        }
        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)
            });
        }
Ejemplo n.º 10
0
        private Fisiotes.Models.Pedido GenerarPedido(FarmaticService farmatic, Recepcion recepcion, RecepcionResume resume)
        {
            var proveedor = farmatic.Proveedores.GetOneOrDefault(recepcion.XProv_IdProveedor)?.FIS_NOMBRE
                            ?? string.Empty;

            var trabajador = farmatic.Vendedores.GetOneOrDefaultById(Convert.ToInt16(recepcion.XVend_IdVendedor))?.NOMBRE
                             ?? string.Empty;

            return(new Fisiotes.Models.Pedido
            {
                idPedido = recepcion.IdRecepcion,
                fechaPedido = recepcion.Hora,
                hora = DateTime.Now,
                numLineas = resume.numLineas,
                importePvp = Convert.ToSingle(resume.importePvp),
                importePuc = Convert.ToSingle(resume.importePuc),
                idProveedor = recepcion.XProv_IdProveedor,
                proveedor = proveedor,
                trabajador = trabajador
            });
        }
Ejemplo n.º 11
0
        private void ProcessListaTienda(FarmaticService 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);
            }
        }
        private EntregaCliente GenerarEntregaCliente(FarmaticService farmatic, Venta @virtual, LineaVentaVirtual linea)
        {
            var trabajador = farmatic.Vendedores
                             .GetOneOrDefaultById(Convert.ToInt16(@virtual.XVend_IdVendedor))?.NOMBRE
                             ?? TRABAJADOR_DEFAULT;

            return(new EntregaCliente
            {
                idventa = linea.IdVenta,
                idnlinea = linea.IdNLinea,
                codigo = linea.Codigo.Strip(),
                descripcion = linea.Descripcion,
                cantidad = linea.Cantidad,
                precio = Convert.ToDecimal(linea.ImporteNeto),
                tipo = linea.TipoLinea,
                fecha = Convert.ToInt32(@virtual.FechaHora.ToString("yyyyMMdd")),
                dni = @virtual.XClie_IdCliente.Strip(),
                puesto = @virtual.Maquina,
                trabajador = trabajador,
                pvp = Convert.ToSingle(linea.Pvp),
                fechaEntrega = @virtual.FechaHora
            });
        }
        public void ProcessListasFechas(FarmaticService farmatic, FisiotesService fisiotes, int listaDeArticulo)
        {
            var listas = farmatic.ListasArticulos.GetByFechaExceptList(listaDeArticulo);

            foreach (var lista in listas)
            {
                _cancellationToken.ThrowIfCancellationRequested();

                var listaRemote = fisiotes.Listas.GetOneOrDefault(lista.IdLista);
                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);
                if (articulos.Any())
                {
                    for (int i = 0; i < articulos.Count; i += BATCH_SIZE)
                    {
                        _cancellationToken.ThrowIfCancellationRequested();

                        var items = articulos
                                    .Skip(i)
                                    .Take(BATCH_SIZE)
                                    .Select(x => new Fisiotes.Models.ListaArticulo
                        {
                            cod_lista    = x.XItem_IdLista,
                            cod_articulo = Convert.ToInt32(x.XItem_IdArticu)
                        }).ToList();

                        fisiotes.Listas.DeArticulos.Insert(items);
                    }
                }
            }
        }
        public void ProcessSinonimos(FarmaticService farmaticService, FisiotesService fisiotesService)
        {
            if (!_isEmpty && _horariosDeVaciamiento.Any(x => x.Equals(DateTime.Now.ToString("HHmm"))))
            {
                fisiotesService.Sinonimos.Empty();
                _isEmpty = _fisiotes.Sinonimos.IsEmpty();
            }

            if (_isEmpty)
            {
                var sinonimos = farmaticService.Sinonimos.GetAll();

                for (int i = 0; i < sinonimos.Count; i += _batchSize)
                {
                    Task.Delay(1);

                    _cancellationToken.ThrowIfCancellationRequested();

                    var items = sinonimos
                                .Skip(i)
                                .Take(_batchSize)
                                .Select(x => new Sinonimo
                    {
                        cod_barras   = x.Sinonimo.Strip(),
                        cod_nacional = x.IdArticu.Strip()
                    }).ToList();

                    fisiotesService.Sinonimos.Insert(items);
                    // 1er lote pregunta
                    if (_isEmpty)
                    {
                        _isEmpty = _fisiotes.Sinonimos.IsEmpty();
                    }
                }
            }
        }
        private void ProcessUpdatePuntosPendientes(FarmaticService farmatic, FisiotesService fisiotes)
        {
            var puntos = fisiotes.PuntosPendientes.GetWithoutRedencion();

            foreach (var pto in puntos)
            {
                _cancellationToken.ThrowIfCancellationRequested();

                var venta = farmatic.Ventas.GetOneOrDefaultById(pto.idventa);
                if (venta != null)
                {
                    var lineas = farmatic.Ventas.GetLineasVentaByVenta(venta.IdVenta);
                    foreach (var linea in lineas)
                    {
                        var lineaRedencion =
                            farmatic.Ventas.GetOneOrDefaultLineaRedencionByKey(linea.IdVenta, linea.IdNLinea);

                        var redencion = lineaRedencion?.Redencion ?? 0;

                        var articulo = farmatic.Articulos.GetOneOrDefaultById(linea.Codigo);

                        var proveedor = (articulo != null)
                            ? farmatic.Proveedores.GetOneOrDefaultByCodigoNacional(articulo.IdArticu)?.FIS_NOMBRE ?? string.Empty
                            : string.Empty;

                        fisiotes.PuntosPendientes.Update(venta.TipoVenta, proveedor,
                                                         Convert.ToSingle(linea.DescuentoLinea), Convert.ToSingle(venta.DescuentoOpera),
                                                         Convert.ToSingle(redencion), linea.IdVenta, linea.IdNLinea);
                    }
                }
                else
                {
                    fisiotes.PuntosPendientes.Update(pto.idventa);
                }
            }
        }
 public ProductoBorradoActualizacionSincronizador(FarmaticService farmatic, FisiotesService fisiotes)
     : base(farmatic, fisiotes)
 {
 }
Ejemplo n.º 17
0
 public EncargoActualizacionSincronizador(FarmaticService farmatic, FisiotesService fisiotes)
     : base(farmatic, fisiotes)
 {
 }
Ejemplo n.º 18
0
        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
            });
        }
Ejemplo n.º 19
0
        public static ClienteDto GenerarCliente(FarmaticService farmaticService, Cliente cliente, bool hasSexo)
        {
            var localDestinatarios = farmaticService.Destinatarios.GetByCliente(cliente.IDCLIENTE);
            var movil = string.Empty;
            var email = string.Empty;

            if (localDestinatarios.Any())
            {
                movil = localDestinatarios.First().TlfMovil?.Trim() ?? movil;
                email = localDestinatarios.First().Email?.Trim() ?? email;
            }

            var fechaNacimiento = default(long);
            var sexo            = string.Empty;

            var localAuxiliar = farmaticService.Clientes.GetAuxiliarById <ClienteAuxWithSexo>(cliente.IDCLIENTE);

            if (hasSexo)
            {
                if (localAuxiliar != null)
                {
                    fechaNacimiento = Convert.ToInt64(localAuxiliar.FechaNac?.ToString("yyyyMMdd"));
                    sexo            = localAuxiliar.Sexo == "V" ? "Hombre"
                        : localAuxiliar.Sexo == "M" ? "Mujer"
                        : string.Empty;
                }
            }
            else
            {
                if (localAuxiliar != null)
                {
                    fechaNacimiento = Convert.ToInt64(localAuxiliar.FechaNac?.ToString("yyyyMMdd"));
                }
            }

            // Si sexo aún no tiene valor, le establecemos uno.
            if (sexo == string.Empty && cliente.FIS_NOMBRE != null)
            {
                sexo = cliente.FIS_NOMBRE;
            }

            var baja = string.IsNullOrEmpty(cliente.FIS_NIF) ||
                       cliente.FIS_NIF.Trim().Equals("No") ||
                       cliente.FIS_NIF.Trim().Equals("N") ? 0 : 1;

            var lopd = string.IsNullOrEmpty(cliente.TIPOTARIFA) ||
                       cliente.TIPOTARIFA.Trim().Equals("No") ||
                       cliente.XCLIE_IDCLIENTEFACT.Trim().Equals("Si") ? 0 : 1;

            DateTime?fechaAlta = null;
            DateTime fechaAux;

            if (localAuxiliar != null)
            {
                if (DateTime.TryParse(localAuxiliar.FechaAlta.ToString(), out fechaAux))
                {
                    fechaAlta = new DateTime(fechaAux.Year, fechaAux.Month, fechaAux.Day, fechaAux.Hour, fechaAux.Minute, fechaAux.Second);
                }
            }

            if (string.IsNullOrEmpty(fechaAlta.ToString()))
            {
                if (DateTime.TryParse(cliente.FIS_PROVINCIA, out fechaAux))
                {
                    fechaAlta = new DateTime(fechaAux.Year, fechaAux.Month, fechaAux.Day);
                }
            }

            var tarjeta = cliente.FIS_FAX ?? string.Empty;

            var telefono = cliente.PER_TELEFONO?.Trim() ??
                           cliente.FIS_TELEFONO?.Trim() ??
                           string.Empty;

            var direccion = string.Empty;

            if (!string.IsNullOrEmpty(cliente.PER_DIRECCION) && !string.IsNullOrWhiteSpace(cliente.PER_DIRECCION))
            {
                direccion = cliente.PER_DIRECCION.Trim();
                if (!string.IsNullOrEmpty(cliente.PER_CODPOSTAL) && !string.IsNullOrWhiteSpace(cliente.PER_CODPOSTAL))
                {
                    direccion += $" - {cliente.PER_CODPOSTAL.Trim()}";
                }
                if (!string.IsNullOrEmpty(cliente.PER_POBLACION) && !string.IsNullOrWhiteSpace(cliente.PER_POBLACION))
                {
                    direccion += $" - {cliente.PER_POBLACION.Trim()}";
                }
                if (!string.IsNullOrEmpty(cliente.PER_PROVINCIA) && !string.IsNullOrWhiteSpace(cliente.PER_PROVINCIA))
                {
                    direccion += $" ({cliente.PER_PROVINCIA.Trim()})";
                }
            }

            var nombre = string.Empty;

            if (!string.IsNullOrEmpty(cliente.PER_NOMBRE) && !string.IsNullOrWhiteSpace(cliente.PER_NOMBRE))
            {
                nombre = cliente.PER_NOMBRE.Trim().Strip();
            }

            var trabajador = farmaticService.Vendedores.GetOneOrDefaultById(cliente.XVEND_IDVENDEDOR)?.NOMBRE ?? string.Empty;

            var puntos = farmaticService.Clientes.GetTotalPuntosById(cliente.IDCLIENTE);

            return(new ClienteDto
            {
                FechaNacimiento = fechaNacimiento,
                FechaAlta = fechaAlta,
                Email = email,
                Movil = movil,
                Direccion = direccion,
                Nombre = nombre,
                Sexo = sexo,
                Telefono = telefono,
                Tarjeta = tarjeta,
                Trabajador = trabajador,
                Puntos = puntos,
                Baja = baja,
                Lopd = lopd
            });
        }
Ejemplo n.º 20
0
        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()
            });
        }
Ejemplo n.º 21
0
 public EncargoSincronizador(FarmaticService farmatic, FisiotesService fisiotes, ConsejoService consejo)
     : base(farmatic, fisiotes)
 {
     _consejo = consejo ?? throw new ArgumentNullException(nameof(consejo));
 }
 public EntregaClienteActualizacionSincronizador(FarmaticService farmatic, FisiotesService fisiotes) :
     base(farmatic, fisiotes)
 {
 }
        private string GetProveedorFromLocalOrDefault(FarmaticService farmaticService, string codigoNacional, string byDefault = "")
        {
            var proveedorDb = farmaticService.Proveedores.GetOneOrDefaultByCodigoNacional(codigoNacional);

            return(proveedorDb?.FIS_NOMBRE ?? byDefault);
        }
 public ClienteSincronizador(FarmaticService farmatic, FisiotesService fisiotes)
     : base(farmatic, fisiotes)
 {
     _horariosDeVaciamiento = new[] { "1400", "2100" };
     _hasSexo = farmatic.Clientes.HasSexoField();
 }
 public ControlStockFechaSalidaSincronizador(FarmaticService farmatic, FisiotesService fisiotes, ConsejoService consejo)
     : base(farmatic, fisiotes, consejo)
 {
 }
 public SinonimoSincronizador(FarmaticService farmatic, FisiotesService fisiotes)
     : base(farmatic, fisiotes)
 {
     _horariosDeVaciamiento = new[] { "1230", "1730", "1930" };
     _batchSize             = 1000;
 }
 public PuntoPendienteSincronizador(FarmaticService farmatic, FisiotesService fisiotes, ConsejoService consejo)
     : base(farmatic, fisiotes)
 {
     _consejo = consejo ?? throw new ArgumentNullException(nameof(consejo));
     _hasSexo = farmatic.Clientes.HasSexoField();
 }
Ejemplo n.º 28
0
 public ProveedorHistorialSincronizador(FarmaticService farmatic, FisiotesService fisiotes)
     : base(farmatic, fisiotes)
 {
     _batchSize = 1000;
 }
Ejemplo n.º 29
0
 public TaskSincronizador(FarmaticService farmatic, FisiotesService fisiotes)
     : base(fisiotes)
 {
     _farmatic = farmatic ?? throw new ArgumentNullException(nameof(farmatic));
 }
Ejemplo n.º 30
0
 public ListaTiendaSincronizador(FarmaticService farmatic, FisiotesService fisiotes, ConsejoService consejo, int listaDeArticulo)
     : base(farmatic, fisiotes, consejo)
 {
     _listaDeArticulo = listaDeArticulo;
 }