示例#1
0
        public int popularTabelaTramitacaoUnidade()
        {
            List <string> listaProcessos = getProcessosComAndamentoTramitar();
            int           registros      = 0;

            using (TransactionScope scopo = new TransactionScope())
            {
                try
                {
                    inserirProcessosSemAndamentoTramitar();
                    foreach (string id in listaProcessos)
                    {
                        List <structTUEAndamento> listaAndamentosProcesso = getAndamentosTramitarProcesso(id);
                        registros += listaAndamentosProcesso.Count;
                        TramitacaoUnidadeExercicio objTUE;
                        foreach (structTUEAndamento obj in listaAndamentosProcesso)
                        {
                            objTUE = new TramitacaoUnidadeExercicio();
                            objTUE.UnidadeExercicio   = UnidadeExercicio.Find(Convert.ToInt32(obj.unidade));
                            objTUE.Processo           = Processo.Find(Convert.ToInt32(obj.processo));
                            objTUE.DataEntradaUnidade = Convert.ToDateTime(obj.datatramitacao);
                            objTUE.Save();
                        }
                    }

                    scopo.VoteCommit();
                }
                catch
                {
                    scopo.VoteRollBack();
                }
            }

            return(registros);
        }
示例#2
0
        public bool inserirProcessosSemAndamentoTramitar()
        {
            string select = @"
			SELECT pan.fk_cod_processo_pro, pan.dat_cadastro_pan,
			(
			SELECT uef.fk_cod_unidade_exercicio_uex
			FROM adm_licitar.tb_unidade_exercicio_funcao_pessoa_efp efp
			INNER JOIN adm_licitar.tb_unidade_exercicio_funcao_uef uef ON uef.pk_cod_unidade_exercicio_funcao_uef = efp.fk_cod_unidade_exercicio_funcao_uef
			WHERE efp.fk_cod_pessoa_pes = pan.fk_cod_pessoa_cadastrante_pes
			AND (dat_fim_efp = '-infinity' OR dat_fim_efp is null)
			ORDER BY dat_inicio_efp DESC
			LIMIT 1
			)  as unidade_cadastrante
			FROM adm_licitar.tb_processo_andamento_pan pan
			WHERE pan.fk_cod_processo_pro not in
			(
			SELECT DISTINCT pan.fk_cod_processo_pro
			FROM adm_licitar.tb_processo_andamento_pan pan
			INNER JOIN adm_licitar.tb_fluxo_andamento_fan fan ON fan.pk_cod_fluxo_andamento_fan = pan.fk_cod_fluxo_andamento_fan
			INNER JOIN adm_licitar.tb_atividade_ati ati ON ati.pk_cod_atividade_ati = fan.fk_cod_atividade_ati
			WHERE ati.txt_descricao_ati = 'TRAMITAR'
			ORDER BY pan.fk_cod_processo_pro
			)
			AND pan.pk_cod_processo_andamento_pan = 
			(
			SELECT pan2.pk_cod_processo_andamento_pan
			FROM adm_licitar.tb_processo_andamento_pan pan2
			WHERE pan2.fk_cod_processo_pro = pan.fk_cod_processo_pro
			ORDER BY pan2.dat_cadastro_pan DESC, pan2.pk_cod_processo_andamento_pan DESC
			LIMIT 1
			)
			AND (pan.dat_cadastro_pan is not null  AND pan.dat_cadastro_pan <> '-infinity')
			"            ;

            DataTable dt = Consultar(select);
            TramitacaoUnidadeExercicio objTUE;

            foreach (DataRow row in dt.Rows)
            {
                int    unidade  = Convert.ToInt32(row["unidade_cadastrante"].ToString());
                int    processo = Convert.ToInt32(row["fk_cod_processo_pro"].ToString());
                string data     = row["dat_cadastro_pan"].ToString();

                objTUE = new TramitacaoUnidadeExercicio();
                objTUE.DataEntradaUnidade = Convert.ToDateTime(data);
                objTUE.UnidadeExercicio   = UnidadeExercicio.Find(unidade);
                objTUE.Processo           = Processo.Find(processo);
                objTUE.Save();
            }

            return(true);
        }