예제 #1
0
        public void CriarAnalise(AnaliseItem analise)
        {
            try
            {
                List <Roteiro> roteirosChecagem = _busChecagem.ObterRoteirosChecagem(analise.Checagem.Id);
                analise.Roteiros = roteirosChecagem;
                List <Situacao> situacoes = _busLista.SituacoesItemAnalise;
                int             setorId   = _daProtocolo.ObterSetor(analise.Protocolo.Id ?? 0);

                foreach (Roteiro roteiroAtual in roteirosChecagem)
                {
                    foreach (Item itemAtual in roteiroAtual.Itens)
                    {
                        switch ((eChecagemItemSituacao)itemAtual.Situacao)
                        {
                        case eChecagemItemSituacao.Pendente:
                            itemAtual.Situacao = (int)eAnaliseItemSituacao.Pendente;
                            break;

                        case eChecagemItemSituacao.Conferido:
                            itemAtual.Situacao = (int)eAnaliseItemSituacao.Recebido;
                            break;

                        case eChecagemItemSituacao.Dispensado:
                            itemAtual.Situacao = (int)eAnaliseItemSituacao.Dispensado;
                            break;
                        }

                        if (itemAtual.Situacao != (int)eAnaliseItemSituacao.Reprovado &&
                            itemAtual.Situacao != (int)eAnaliseItemSituacao.Dispensado)
                        {
                            itemAtual.Motivo = String.Empty;
                        }

                        itemAtual.SetorId       = setorId;
                        itemAtual.Recebido      = itemAtual.Situacao == (int)eAnaliseItemSituacao.Recebido;
                        itemAtual.SituacaoTexto = situacoes.SingleOrDefault(x => x.Id == itemAtual.Situacao).Texto;
                        analise.Itens.Add(itemAtual);
                    }
                }

                using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia())
                {
                    GerenciadorTransacao.ObterIDAtual();
                    bancoDeDados.IniciarTransacao();
                    _da.Salvar(analise, bancoDeDados);

                    bancoDeDados.Commit();
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }
        }
예제 #2
0
 internal int ObterSetor(int?protocolo)
 {
     return(_da.ObterSetor(protocolo ?? 0));
 }