コード例 #1
0
        public void ProcessProductosCrticos()
        {
            //var falta = _fisiotes.Faltas.LastOrDefault();
            var pedidos = (_falta == null)
                ? _farmatic.Pedidos.GetByFechaGreaterOrEqual(new DateTime(DateTime.Now.Year - 2, 1, 1) /*DateTime.Now*/)
                : _farmatic.Pedidos.GetByIdGreaterOrEqual(_falta.idPedido);

            foreach (var pedido in pedidos)
            {
                Task.Delay(5);

                _cancellationToken.ThrowIfCancellationRequested();

                var detallePedido = _farmatic.Pedidos.GetLineasByPedido(pedido.IdPedido)
                                    .Where(linea => !string.IsNullOrEmpty(linea.XArt_IdArticu?.Trim()));

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

                    var articulo = _farmatic.Articulos.GetOneOrDefaultById(linea.XArt_IdArticu);
                    if (articulo != null && articulo.StockActual == STOCK_CRITICO)
                    {
                        //if(!_fisiotes.Faltas.ExistsLineaDePedido(linea.IdPedido, linea.IdLinea))
                        _fisiotes.Faltas.Insert(GenerarFaltante(_farmatic, pedido, linea, articulo, _consejo));
                    }
                }

                if (_falta == null)
                {
                    _falta = new Fisiotes.Models.Falta();
                }

                _falta.idPedido = pedido.IdPedido;
            }
        }
コード例 #2
0
 public override void PreSincronizacion()
 {
     _falta = _fisiotes.Faltas.LastOrDefault();
 }