示例#1
0
        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);
        }
示例#2
0
        public void Processar(Processo processo, ConfiguracaoDeFases configuracaoDeFases)
        {
            var fases = this.fasesDeProcesso.Obter();

            foreach (var fase in fases)
            {
                fase.Processar(processo, configuracaoDeFases);
            }

            this.SalvarProcesso(processo);
        }
示例#3
0
        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);
        }