public void Processar(T item, ConfiguracaoDeFases configuracaoDeFases, bool force = false) { Throw.SeForNulo(this.StatusDaFase, "this.StatusDaFase deve ser setado no construtor da Fase"); Throw.SeForNulo(this.StatusSeFaseEstiverInativa, "this.StatusSeFaseEstiverInativa deve ser setado no construtor da Fase"); Throw.SeForNulo(this.FaseEstaAtiva, "this.FaseEstaAtiva deve ser setado no construtor da Fase"); if (item.Status != this.StatusDaFase && force == false) { return; } Log.Application.DebugFormat("Processando {0} com status {1}", item, this.StatusDaFase); if (this.FaseEstaAtiva(configuracaoDeFases) == false && force == false) { Log.Application.DebugFormat("Fase {0} está inativa", this.StatusDaFase); item.Status = this.StatusSeFaseEstiverInativa; } else { this.ProcessarFase(item); this.ExecutouFase = true; } Log.Application.DebugFormat("{0} processado. Novo status {1}", item, item.Status); }
public void Processar(Processo processo, ConfiguracaoDeFases configuracaoDeFases) { var fases = this.fasesDeProcesso.Obter(); foreach (var fase in fases) { fase.Processar(processo, configuracaoDeFases); } this.SalvarProcesso(processo); }
public void Processar(Lote lote, ConfiguracaoDeFases configuracaoDeFases) { ////this.Fase<FaseLoteAguardandoCaptura>().Processar(lote, configuracaoDeFases); this.Fase <FaseLoteCapturaFinalizada>().Processar(lote, configuracaoDeFases); this.Fase <FaseLoteTransmissaoFinalizada>().Processar(lote, configuracaoDeFases); this.Fase <FaseLoteSetaTriagemPreOcr>().Processar(lote, configuracaoDeFases); this.Fase <FaseLoteIdentificacaoManual>().Processar(lote, configuracaoDeFases); //// Fase de OCR pode ser setada como gargalo alterando a tag GARGALO_OCR this.Fase <FaseLoteSetaReconhecimento>().Processar(lote, configuracaoDeFases); //// Se tem Doc geral, a fase abaixo avalia pra onde deve ir this.Fase <FaseLoteAguardandoReconhecimento>().Processar(lote, configuracaoDeFases); //// fases de classifier e de reconhecimento não estão ativadas. pulando do status 15 para 5S ////this.Fase<FaseLoteSetaClassifier>().Processar(lote, configuracaoDeFases); ////this.Fase<FaseLoteAguardandoClassifier>().Processar(lote, configuracaoDeFases); this.Fase <FaseLoteClassifierConcluido>().Processar(lote, configuracaoDeFases); //// do lote status 5S para 61 quem faz é o serviço de Batimento this.Fase <FaseLoteSetaIdentificacao>().Processar(lote, configuracaoDeFases); this.Fase <FaseLoteAguardandoIdentificacao>().Processar(lote, configuracaoDeFases); this.Fase <FaseLoteIdentificado>().Processar(lote, configuracaoDeFases); //// fase que verifica necessidade de parar na QC M2sys this.Fase <FaseLoteSetaQualidadeM2Sys>().Processar(lote, configuracaoDeFases); this.Fase <FaseLoteGeracaoTermosConcluido>().Processar(lote, configuracaoDeFases); this.Fase <FaseLoteAguardandoAssinatura>().Processar(lote, configuracaoDeFases); this.Fase <FaseLoteAssinaturaFinalizada>().Processar(lote, configuracaoDeFases); this.Fase <FaseLoteExportadoParaCloud>().Processar(lote, configuracaoDeFases); //// fase que verifica necessidade de parar na QC CEF e joga o dossie num dia lotecef this.Fase <FaseLoteSetaQualidadeCef>().Processar(lote, configuracaoDeFases); ////this.Fase<FaseLoteAguardandoQualidadeCef>().Processar(lote, configuracaoDeFases); this.Fase <FaseLoteQualidadeCefFinalizado>().Processar(lote, configuracaoDeFases); this.Fase <FaseLoteAguardandoPreparacaoDeAjuste>().Processar(lote, configuracaoDeFases); this.Fase <FaseLotePreparacaoAjustes>().Processar(lote, configuracaoDeFases); this.Fase <FaseLoteAguardandoRealizacaoDeAjuste>().Processar(lote, configuracaoDeFases); this.Fase <FaseLoteAjusteRealizado>().Processar(lote, configuracaoDeFases); //// gera faturamento this.Fase <FaseLoteAguardandoFaturamento>().Processar(lote, configuracaoDeFases); this.Fase <FaseLoteBatimentoFinalizado>().Processar(lote, configuracaoDeFases); this.SalvarLote(lote); }