Example #1
0
        private void ProcessPedidos()
        {
            //var lastPedido = _fisiotes.Pedidos.LastOrDefault();
            var recepciones = (_lastPedido == null)
                ? _farmatic.Recepciones.GetByYear(_anioInicio)
                : _farmatic.Recepciones.GetByIdAndYear(_anioInicio, _lastPedido.idPedido);

            foreach (var recepcion in recepciones)
            {
                Task.Delay(5);

                _cancellationToken.ThrowIfCancellationRequested();

                var resume = _farmatic.Recepciones.GetResumeById(recepcion.IdRecepcion);
                if (resume.numLineas > 0)
                {
                    //if (!_fisiotes.Pedidos.Exists(recepcion.IdRecepcion))
                    //{
                    _fisiotes.Pedidos.Insert(GenerarPedido(_farmatic, recepcion, resume));
                    if (_lastPedido == null)
                    {
                        _lastPedido = new Fisiotes.Models.Pedido();
                    }

                    _lastPedido.idPedido = recepcion.IdRecepcion;
                    //}

                    var lineas = _farmatic.Recepciones.GetLineasById(recepcion.IdRecepcion)
                                 .Where(l => !string.IsNullOrEmpty(l.XArt_IdArticu));

                    foreach (var linea in lineas)
                    {
                        Task.Delay(1);

                        var articulo = _farmatic.Articulos.GetOneOrDefaultById(linea.XArt_IdArticu);
                        if (articulo != null /*&& !_fisiotes.Pedidos.ExistsLinea(linea.IdRecepcion, linea.IdNLinea)*/)
                        {
                            _fisiotes.Pedidos.InsertLinea(GenerarLineaDePedido(_farmatic, recepcion, linea, articulo, _consejo));
                        }
                    }
                }
            }
        }
Example #2
0
 public override void PreSincronizacion()
 {
     _lastPedido = _fisiotes.Pedidos.LastOrDefault();
 }