Пример #1
0
        public void Salvar(TituloModelo tituloModelo)
        {
            try
            {
                if (_validar.Salvar(tituloModelo))
                {
                    if (!tituloModelo.Regra(eRegra.PdfGeradoSistema))
                    {
                        tituloModelo.Arquivo.Id = null;
                    }

                    GerenciadorTransacao.ObterIDAtual();
                    using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia())
                    {
                        bancoDeDados.IniciarTransacao();

                        #region Arquivo

                        if (tituloModelo.Arquivo.Id != null && tituloModelo.Arquivo.Id == 0)
                        {
                            ArquivoBus _busArquivo = new ArquivoBus(eExecutorTipo.Interno);
                            tituloModelo.Arquivo = _busArquivo.Copiar(tituloModelo.Arquivo);
                        }

                        if (tituloModelo.Arquivo.Id == 0)
                        {
                            ArquivoDa _arquivoDa = new ArquivoDa();
                            _arquivoDa.Salvar(tituloModelo.Arquivo, User.FuncionarioId, User.Name, User.Login, (int)eExecutorTipo.Interno, User.FuncionarioTid, bancoDeDados);
                        }

                        #endregion

                        tituloModelo.Regras = tituloModelo.Regras.FindAll(x => x.Valor == true);

                        if (tituloModelo.Regra(eRegra.Renovacao))
                        {
                            TituloModeloRegra regra = tituloModelo.Regras.SingleOrDefault(x => x.TipoEnum == eRegra.Renovacao);
                            regra.Respostas.Add(new TituloModeloResposta()
                            {
                                Valor = tituloModelo.Id, TipoEnum = eResposta.Modelo
                            });
                        }

                        _da.Salvar(tituloModelo, bancoDeDados);

                        bancoDeDados.Commit();
                        Validacao.Add(Mensagem.TituloModelo.TituloModeloEditado);
                    }
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }
        }
Пример #2
0
        private CampoVM CarregarCampo(eRegra regra, eResposta resposta)
        {
            CampoVM campo = new CampoVM();

            TituloModeloRegra tituloRegra = Modelo.Regras.SingleOrDefault(x => x.TipoEnum == regra);

            if (tituloRegra == null)
            {
                return(campo);
            }

            campo.Valor = (tituloRegra.Respostas.SingleOrDefault(x => x.TipoEnum == resposta) ?? new TituloModeloResposta()).Valor;
            campo.Id    = (tituloRegra.Respostas.SingleOrDefault(x => x.TipoEnum == resposta) ?? new TituloModeloResposta()).Id;

            return(campo);
        }
        internal TituloModelo Obter(int id, BancoDeDados banco = null)
        {
            TituloModelo modelo = new TituloModelo();

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                #region Título Modelo

                Comando comando = bancoDeDados.CriarComando(@"select m.id,
					m.tid, m.codigo, m.tipo, m.subtipo, m.data_criacao, m.nome,
					m.sigla, m.tipo_protocolo, m.arquivo, ta.nome nome_arquivo, m.situacao,  m.documento,
                    l.texto documento_texto from {0}tab_titulo_modelo m, {0}tab_arquivo ta, {0}lov_titulo_modelo_tipo_doc l
					where m.arquivo = ta.id(+) and m.documento = l.id(+) and m.id = :id"                    , EsquemaBanco);

                comando.AdicionarParametroEntrada("id", id, DbType.Int32);

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    if (reader.Read())
                    {
                        modelo.Id               = id;
                        modelo.Tid              = reader["tid"].ToString();
                        modelo.SubTipo          = reader["subtipo"].ToString();
                        modelo.DataCriacao.Data = Convert.ToDateTime(reader["data_criacao"]);
                        modelo.Nome             = reader["nome"].ToString();
                        modelo.Sigla            = reader["sigla"].ToString();

                        if (reader["situacao"] != null && !Convert.IsDBNull(reader["situacao"]))
                        {
                            modelo.SituacaoId = Convert.ToInt32(reader["situacao"]);
                        }

                        if (reader["codigo"] != null && !Convert.IsDBNull(reader["codigo"]))
                        {
                            modelo.Codigo = Convert.ToInt32(reader["codigo"]);
                        }

                        if (reader["tipo"] != null && !Convert.IsDBNull(reader["tipo"]))
                        {
                            modelo.Tipo = Convert.ToInt32(reader["tipo"]);
                        }

                        if (reader["tipo_protocolo"] != null && !Convert.IsDBNull(reader["tipo_protocolo"]))
                        {
                            modelo.TipoProtocolo = Convert.ToInt32(reader["tipo_protocolo"]);
                        }

                        if (reader["arquivo"] != null && !Convert.IsDBNull(reader["arquivo"]))
                        {
                            modelo.Arquivo.Id   = Convert.ToInt32(reader["arquivo"]);
                            modelo.Arquivo.Nome = reader["nome_arquivo"].ToString();
                        }

                        modelo.TipoDocumento      = reader.GetValue <int>("documento");
                        modelo.TipoDocumentoTexto = reader.GetValue <string>("documento_texto");
                    }
                    reader.Close();
                }

                #endregion

                #region Regras

                comando = bancoDeDados.CriarComando(@"select r.id, r.modelo, r.regra, r.tid from {0}tab_titulo_modelo_regras r where r.modelo = :modelo", EsquemaBanco);
                comando.AdicionarParametroEntrada("modelo", id, DbType.Int32);

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    TituloModeloRegra item;
                    while (reader.Read())
                    {
                        item       = new TituloModeloRegra();
                        item.Id    = Convert.ToInt32(reader["id"]);
                        item.Tid   = reader["tid"].ToString();
                        item.Valor = true;
                        if (reader["regra"] != null && !Convert.IsDBNull(reader["regra"]))
                        {
                            item.Tipo = Convert.ToInt32(reader["regra"]);
                        }

                        #region Respostas

                        comando = bancoDeDados.CriarComando(@"select mr.id, mr.modelo, mr.regra, mr.resposta, mr.valor, mr.tid 
						from {0}tab_titulo_modelo_respostas mr where mr.modelo = :modelo and mr.regra = :regra"                        , EsquemaBanco);
                        comando.AdicionarParametroEntrada("modelo", id, DbType.Int32);
                        comando.AdicionarParametroEntrada("regra", item.Id, DbType.Int32);

                        using (IDataReader readerAux = bancoDeDados.ExecutarReader(comando))
                        {
                            TituloModeloResposta itemAux;
                            while (readerAux.Read())
                            {
                                itemAux     = new TituloModeloResposta();
                                itemAux.Id  = Convert.ToInt32(readerAux["id"]);
                                itemAux.Tid = readerAux["tid"].ToString();
                                if (readerAux["resposta"] != null && !Convert.IsDBNull(readerAux["resposta"]))
                                {
                                    itemAux.Tipo = Convert.ToInt32(readerAux["resposta"]);
                                }
                                itemAux.Valor = readerAux["valor"];

                                item.Respostas.Add(itemAux);
                            }

                            readerAux.Close();
                        }

                        #endregion

                        modelo.Regras.Add(item);
                    }
                    reader.Close();
                }

                #endregion

                #region Setores

                comando = bancoDeDados.CriarComando(@"select mr.id, mr.modelo, mr.setor, mr.hierarquia, ts.nome, mr.tid from tab_titulo_modelo_setores mr, tab_setor ts where mr.setor = ts.id and mr.modelo = :modelo", EsquemaBanco);
                comando.AdicionarParametroEntrada("modelo", id, DbType.Int32);

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    Setor item;
                    while (reader.Read())
                    {
                        item                     = new Setor();
                        item.IdRelacao           = Convert.ToInt32(reader["id"]);
                        item.Id                  = Convert.ToInt32(reader["setor"]);
                        item.Nome                = reader["nome"].ToString();
                        item.HierarquiaCabecalho = reader["hierarquia"].ToString();
                        modelo.Setores.Add(item);
                    }
                    reader.Close();
                }

                #endregion

                #region Assinantes

                comando = bancoDeDados.CriarComando(@"select mr.id, mr.modelo, mr.setor, s.nome setor_nome, mr.tipo_assinante, la.texto tipo_assinante_texto, mr.tid 
				from {0}tab_titulo_modelo_assinantes mr, {0}tab_setor s, {0}lov_titulo_modelo_assinante la
				where mr.tipo_assinante = la.id and mr.setor = s.id and mr.modelo = :modelo"                , EsquemaBanco);

                comando.AdicionarParametroEntrada("modelo", id, DbType.Int32);

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    Assinante item;
                    while (reader.Read())
                    {
                        item    = new Assinante();
                        item.Id = Convert.ToInt32(reader["id"]);

                        if (reader["setor"] != null && !Convert.IsDBNull(reader["setor"]))
                        {
                            item.SetorId    = Convert.ToInt32(reader["setor"]);
                            item.SetorTexto = reader["setor_nome"].ToString();
                        }

                        if (reader["tipo_assinante"] != null && !Convert.IsDBNull(reader["tipo_assinante"]))
                        {
                            item.TipoId    = Convert.ToInt32(reader["tipo_assinante"]);
                            item.TipoTexto = reader["tipo_assinante_texto"].ToString();
                        }

                        modelo.Assinantes.Add(item);
                    }

                    reader.Close();
                }

                #endregion
            }

            return(modelo);
        }