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; } }
public override void PreSincronizacion() { _falta = _fisiotes.Faltas.LastOrDefault(); }