//Validacoes de Cadastro/Edição public bool Salvar(Titulo titulo) { JuntarApensarBus _juntarApensarBus = new JuntarApensarBus(); Titulo(titulo); if (titulo.Id <= 0 && titulo.Protocolo.Id > 0) { ProtocoloSetorModelo(titulo, titulo.Setor.Id); } if (titulo.Id > 0 && titulo.Situacao.Id != 1) { if (String.IsNullOrEmpty(titulo.Situacao.Texto) && titulo.Situacao.Id > 0) { titulo.Situacao = _configTitulo.Obter <List <Situacao> >(ConfiguracaoTitulo.KeySituacoes).Single(x => x.Id == titulo.Situacao.Id); } Validacao.Add(Mensagem.Titulo.SituacaoEditar(titulo.Situacao.Texto)); } //Esta validação deve ser feita para cadastrar/Editar pois na edição do titulo deve existir a //possibilidade de alterar o protocolo para o processo pai //Esta validação não pode ser feita no botao editar do listar #region Validacao de Juntado/Apensado if (titulo.Protocolo != null && titulo.Protocolo.Id > 0) { string numero = _protocoloValidar.ObterNumeroProcessoPai(titulo.Protocolo.Id.Value); if (!String.IsNullOrEmpty(numero)) { Validacao.Add(titulo.Protocolo.IsProcesso ? Mensagem.Titulo.ProcessoJuntado(numero) : Mensagem.Titulo.DocumentoApensado(numero)); } } #endregion #region [ Cadastro Ambiental Rural ] if (LstCadastroAmbientalRuralTituloCodigo.Any(x => x == titulo.Modelo.Codigo)) { var busCARSolicitacao = new CARSolicitacaoBus(); if (!busCARSolicitacao.VerificarSeEmpreendimentoPossuiSolicitacaoValidaEEnviada(titulo.EmpreendimentoId.GetValueOrDefault())) { Validacao.Add(Mensagem.TituloAlterarSituacao.TituloNaoPossuiSolicitacaoDeInscricao); } } #endregion return(Validacao.EhValido); }
public bool Excluir(ProjetoDigital projeto) { if (projeto == null) { Validacao.Add(Mensagem.ProjetoDigital.ProjetoDigitalNaoEncontrado); } if (projeto.Situacao != (int)eProjetoDigitalSituacao.EmElaboracao) { Validacao.Add(Mensagem.ProjetoDigital.ExcluirSituacaoInvalida); } CARSolicitacaoBus carSolicitacaoBus = new CARSolicitacaoBus(); CARSolicitacao carSolicitacao = carSolicitacaoBus.ObterPorRequerimento(projeto.RequerimentoId); if (carSolicitacao.Id > 0) { Validacao.Add(Mensagem.ProjetoDigital.ExcluirPossuiCARSolicitacao(carSolicitacao.SituacaoTexto)); } return(Validacao.EhValido); }
public bool AlterarSituacao(Titulo titulo, int acao, bool gerouPdf = true) { Titulo tituloAux = _da.ObterSimplificado(titulo.Id); if (tituloAux == null) { return(false); } #region ValidarPermissao List <ePermissao> acaoPermissao = new List <ePermissao>(); switch (titulo.Situacao.Id) { #region Cadastrado case 1: acaoPermissao.Add(ePermissao.TituloCriar); acaoPermissao.Add(ePermissao.TituloCancelarEmissao); break; #endregion #region Emitido para assinatura case 2: acaoPermissao.Add(ePermissao.TituloEmitir); break; #endregion #region Concluído case 3: acaoPermissao.Add(ePermissao.TituloEmitir); acaoPermissao.Add(ePermissao.TituloAssinar); break; #endregion #region Assinado case 4: acaoPermissao.Add(ePermissao.TituloAssinar); break; #endregion #region Cancelado case 5: acaoPermissao.Add(ePermissao.TituloEncerrar); acaoPermissao.Add(ePermissao.DocumentoEncerrarOficioPendencia); break; #endregion #region Suspenso case 11: acaoPermissao.Add(ePermissao.TituloEncerrar); acaoPermissao.Add(ePermissao.DocumentoEncerrarOficioPendencia); break; #endregion #region Prorrogado case 6: acaoPermissao.Add(ePermissao.TituloProrrogar); break; #endregion } if (!_permissaoValdiar.ValidarAny(acaoPermissao.ToArray())) { return(false); } #endregion //Validar Titulo if ((eAlterarSituacaoAcao)acao == eAlterarSituacaoAcao.EmitirParaAssinatura) { _validarTitulo.Titulo(titulo); if (EspecificiadadeBusFactory.Possui(titulo.Modelo.Codigo.Value)) { IEspecificidadeBus busEsp = EspecificiadadeBusFactory.Criar(titulo.Modelo.Codigo.Value); titulo.Especificidade = busEsp.Obter(titulo.Id) as Especificidade; titulo.Especificidade = titulo.ToEspecificidade(); busEsp.Validar.Emitir(titulo.Especificidade); } } else if ( (eAlterarSituacaoAcao)acao == eAlterarSituacaoAcao.Assinar || (eAlterarSituacaoAcao)acao == eAlterarSituacaoAcao.Entregar || (eAlterarSituacaoAcao)acao == eAlterarSituacaoAcao.Prorrogar || (eAlterarSituacaoAcao)acao == eAlterarSituacaoAcao.Concluir) { if (titulo.Atividades != null) { foreach (var item in titulo.Atividades) { if (!item.Ativada) { Validacao.Add(Mensagem.AtividadeEspecificidade.AtividadeDesativada(item.NomeAtividade)); } } } } if (!Validacao.EhValido) { return(false); } switch (titulo.Situacao.Id) { #region Cadastrado case 1: if (tituloAux.Situacao.Id != 2) { Validacao.Add(Mensagem.TituloAlterarSituacao.SituacaoInvalida("Cadastrado", "Emitido para assinatura")); } break; #endregion #region Emitido para assinatura case 2: if (!gerouPdf) { Validacao.Add(Mensagem.TituloAlterarSituacao.GerarPdfObrigatorio); } if (tituloAux.Situacao.Id != 1) { Validacao.Add(Mensagem.TituloAlterarSituacao.SituacaoInvalida("Emitido para assinatura", "Cadastrado")); } if (ValidarDatas(titulo.DataEmissao, "DataEmissao", "emissão")) { if (!titulo.Modelo.Regra(eRegra.NumeracaoAutomatica)) { if (titulo.Numero.Ano != titulo.DataEmissao.Data.Value.Year) { Validacao.Add(Mensagem.TituloAlterarSituacao.NumeroAnoEmissaoAno); } } } if (titulo.Modelo.Regra(eRegra.Prazo) && titulo.Prazo.GetValueOrDefault() <= 0) { Validacao.Add(Mensagem.TituloAlterarSituacao.PrazoObrigatorio); } if (titulo.Modelo.Regra(eRegra.Prazo) && (titulo.Prazo.GetValueOrDefault() + DateTime.Now.Year) > DateTime.MaxValue.Year) { Validacao.Add(Mensagem.TituloAlterarSituacao.PrazoInvalido); } break; #endregion #region Concluído case 3: if (tituloAux.Situacao.Id == 1 && !gerouPdf) { Validacao.Add(Mensagem.TituloAlterarSituacao.GerarPdfObrigatorio); } if (tituloAux.Situacao.Id != 1 && tituloAux.Situacao.Id != 2 && tituloAux.Situacao.Id != 4 && tituloAux.Situacao.Id != 11) { Validacao.Add(Mensagem.TituloAlterarSituacao.SituacaoInvalida("Concluído", "Cadastrado, Suspenso, Emitido para assinatura ou Assinado")); } if (tituloAux.Situacao.Id == 1 || tituloAux.Situacao.Id == 11) { if (ValidarDatas(titulo.DataEmissao, "DataEmissao", "emissão")) { if (Validacao.EhValido && !titulo.Modelo.Regra(eRegra.NumeracaoAutomatica)) { if (titulo.Numero.Ano != titulo.DataEmissao.Data.Value.Year) { Validacao.Add(Mensagem.TituloAlterarSituacao.NumeroAnoEmissaoAno); } } } } if (titulo.Modelo.Regra(eRegra.Prazo) && titulo.Prazo.GetValueOrDefault() <= 0) { Validacao.Add(Mensagem.TituloAlterarSituacao.PrazoObrigatorio); } if (titulo.Modelo.Regra(eRegra.Prazo) && (titulo.Prazo.GetValueOrDefault() + DateTime.Now.Year) > DateTime.MaxValue.Year) { Validacao.Add(Mensagem.TituloAlterarSituacao.PrazoInvalido); } if (titulo.Modelo.Codigo == (int)eTituloModeloCodigo.AutorizacaoExploracaoFlorestal) { var associados = _da.ObterAssociados(titulo.Id); if (associados.Exists(x => x.DataVencimento.Data < titulo.DataEmissao.Data.Value.AddDays(titulo.Prazo.Value))) { Validacao.Add(Mensagem.TituloAlterarSituacao.PrazoSuperiorAoLaudo); } } #region [ Cadastro Ambiental Rural ] if (LstCadastroAmbientalRuralTituloCodigo.Any(x => x == titulo.Modelo.Codigo)) { var busCARSolicitacao = new CARSolicitacaoBus(); if (!busCARSolicitacao.VerificarSeEmpreendimentoPossuiSolicitacaoValidaEEnviada(titulo.EmpreendimentoId.GetValueOrDefault())) { Validacao.Add(Mensagem.TituloAlterarSituacao.TituloNaoPossuiSolicitacaoDeInscricao); } } #endregion break; #endregion #region Assinado case 4: if (tituloAux.Situacao.Id != 2) { Validacao.Add(Mensagem.TituloAlterarSituacao.SituacaoInvalida("Assinado", "Emitido para assinatura")); } if (ValidarDatas(titulo.DataAssinatura, "DataAssinatura", "assinatura")) { if (titulo.DataAssinatura.Data < tituloAux.DataEmissao.Data) { Validacao.Add(Mensagem.TituloAlterarSituacao.DataDeveSerSuperior("DataAssinatura", "assinatura", "emissão")); } } break; #endregion #region Encerrado case 5: if (tituloAux.Situacao.Id != 3 && tituloAux.Situacao.Id != 6) { Validacao.Add(Mensagem.TituloAlterarSituacao.SituacaoInvalida("Encerrado", "Concluído ou Prorrogado")); } if (ValidarDatas(titulo.DataEncerramento, "DataEncerramento", "encerramento")) { if (titulo.Modelo.Regra(eRegra.Prazo)) { switch (Convert.ToInt32(titulo.Modelo.Resposta(eRegra.Prazo, eResposta.InicioPrazo).Valor)) { case 1: if (titulo.DataEncerramento.Data < tituloAux.DataEmissao.Data) { Validacao.Add(Mensagem.TituloAlterarSituacao.DataDeveSerSuperior("DataEncerramento", "encerramento", "emissão")); } break; case 2: if (titulo.DataEncerramento.Data < tituloAux.DataAssinatura.Data) { Validacao.Add(Mensagem.TituloAlterarSituacao.DataDeveSerSuperior("DataEncerramento", "encerramento", "assinatura")); } break; case 3: if (titulo.DataEncerramento.Data < tituloAux.DataEntrega.Data) { Validacao.Add(Mensagem.TituloAlterarSituacao.DataDeveSerSuperior("DataEncerramento", "encerramento", "entrega")); } break; } } } if (titulo.MotivoEncerramentoId.GetValueOrDefault() <= 0) { Validacao.Add(Mensagem.TituloAlterarSituacao.MotivoEncerramentoObrigatorio); } if (titulo.Modelo.Codigo == (int)eTituloModeloCodigo.LaudoVistoriaFlorestal) { if (_da.ExistsTituloAssociadoNaoEncerrado(titulo.Id)) { Validacao.Add(Mensagem.TituloAlterarSituacao.TituloPossuiAssociadoNaoEncerrado("encerrado")); } } break; #endregion #region Suspenso case 11: if (tituloAux.Situacao.Id != 3 && tituloAux.Situacao.Id != 6) { Validacao.Add(Mensagem.TituloAlterarSituacao.SituacaoInvalida("Suspenso", "Concluído ou Prorrogado")); } if (ValidarDatas(titulo.DataEncerramento, "DataEncerramento", "suspensão")) { if (titulo.Modelo.Regra(eRegra.Prazo)) { switch (Convert.ToInt32(titulo.Modelo.Resposta(eRegra.Prazo, eResposta.InicioPrazo).Valor)) { case 1: if (titulo.DataEncerramento.Data < tituloAux.DataEmissao.Data) { Validacao.Add(Mensagem.TituloAlterarSituacao.DataDeveSerSuperior("DataEncerramento", "suspensão", "emissão")); } break; case 2: if (titulo.DataEncerramento.Data < tituloAux.DataAssinatura.Data) { Validacao.Add(Mensagem.TituloAlterarSituacao.DataDeveSerSuperior("DataEncerramento", "suspensão", "assinatura")); } break; case 3: if (titulo.DataEncerramento.Data < tituloAux.DataEntrega.Data) { Validacao.Add(Mensagem.TituloAlterarSituacao.DataDeveSerSuperior("DataEncerramento", "suspensão", "entrega")); } break; } } } if (titulo.Modelo.Codigo == (int)eTituloModeloCodigo.LaudoVistoriaFlorestal) { if (_da.ExistsTituloAssociadoNaoEncerrado(titulo.Id)) { Validacao.Add(Mensagem.TituloAlterarSituacao.TituloPossuiAssociadoNaoEncerrado("suspenso")); } } break; #endregion #region Prorrogado case 6: if (tituloAux.Situacao.Id != 3 && tituloAux.Situacao.Id != 6) { Validacao.Add(Mensagem.TituloAlterarSituacao.SituacaoInvalida("Prorrogado", "Concluído ou Prorrogado")); } if (titulo.DiasProrrogados.GetValueOrDefault() <= 0) { Validacao.Add(Mensagem.TituloAlterarSituacao.DiasProrrogadosObrigatorio); } break; #endregion } AtivarCondicionantes(titulo); return(Validacao.EhValido); }
public bool Salvar(Documento documento) { try { documento.Emposse.Id = User.FuncionarioId; if (documento.Arquivo == null) { documento.Arquivo = new Arquivo(); } bool isEdicao = (documento.Id > 0); if (_validar.Salvar(documento)) { #region Arquivos/Diretorio if (documento.Arquivo.Id != null && documento.Arquivo.Id == 0) { ArquivoBus _busArquivo = new ArquivoBus(eExecutorTipo.Interno); documento.Arquivo = _busArquivo.Copiar(documento.Arquivo); } #endregion #region Setar Valores ListaBus listaBus = new ListaBus(); ProtocoloTipo configuracao = listaBus.TiposDocumento.FirstOrDefault(x => x.Id == documento.Tipo.Id); documento.ProtocoloAssociado = (configuracao.PossuiProcesso || configuracao.ProcessoObrigatorio) ? documento.ProtocoloAssociado : new Protocolo(); documento.ChecagemPendencia = (configuracao.PossuiChecagemPendencia || configuracao.ChecagemPendenciaObrigatorio) ? documento.ChecagemPendencia : new ChecagemPendencia(); documento.ChecagemRoteiro = (configuracao.PossuiChecagemRoteiro || configuracao.ChecagemRoteiroObrigatorio) ? documento.ChecagemRoteiro : new ChecagemRoteiro(); documento.Requerimento = (configuracao.PossuiRequerimento || configuracao.RequerimentoObrigatorio) ? documento.Requerimento : new Requerimento(); #endregion GerenciadorTransacao.ObterIDAtual(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia()) { bancoDeDados.IniciarTransacao(); #region Arquivos/Banco if (documento.Arquivo.Id == 0) { ArquivoDa _arquivoDa = new ArquivoDa(); _arquivoDa.Salvar(documento.Arquivo, User.FuncionarioId, User.Name, User.Login, (int)eExecutorTipo.Interno, User.FuncionarioTid, bancoDeDados); } #endregion ChecagemPendenciaBus _checagemPendenciaBus = new ChecagemPendenciaBus(); using (BancoDeDados bancoDeDadosCredenciado = BancoDeDados.ObterInstancia(UsuarioCredenciado)) { bancoDeDadosCredenciado.IniciarTransacao(); #region Alterar Situacao Requerimento if (documento.Id.HasValue) { Documento docOriginal = _da.ObterSimplificado(documento.Id.Value) as Documento; docOriginal.Requerimento = _busRequerimento.ObterSimplificado(docOriginal.Requerimento.Id); if (docOriginal.Requerimento.Id != documento.Requerimento.Id) { AlterarRequerimentoSituacao(docOriginal, banco: bancoDeDados); if (docOriginal.Requerimento.IsRequerimentoDigital) { CARSolicitacaoBus carSolicitacaoCredenciadoBus = new CARSolicitacaoBus(); carSolicitacaoCredenciadoBus.DesassociarProtocolo(new CARSolicitacao() { Requerimento = docOriginal.Requerimento }, bancoDeDadosCredenciado); if (!_busProjetoDigital.AlterarSituacao(docOriginal.Requerimento.Id, eProjetoDigitalSituacao.AguardandoProtocolo, bancoDeDadosCredenciado)) { bancoDeDados.Rollback(); return(false); } } } } #endregion Documento documentoOriginal = new Documento(); if (documento.Id != null && documento.Id.GetValueOrDefault() > 0) { documentoOriginal = ObterSimplificado(documento.Id.Value); } #region Titulo if (documento.ChecagemPendencia.Id > 0 && documento.Id.GetValueOrDefault() == 0) { documento.ChecagemPendencia = _checagemPendenciaBus.Obter(documento.ChecagemPendencia.Id); TituloBus tituloBus = new TituloBus(); Titulo titulo = tituloBus.Obter(documento.ChecagemPendencia.TituloId); if (titulo.Situacao.Id != 5) //5 - Encerrado { titulo.DataEncerramento.Data = DateTime.Now; titulo.MotivoEncerramentoId = 7; //Encerrado TituloSituacaoBus tituloSituacaoBus = new TituloSituacaoBus(); tituloSituacaoBus.AlterarSituacao(titulo, (int)eAlterarSituacaoAcao.Encerrar, bancoDeDados); if (Validacao.EhValido) { Validacao.Erros.Clear(); } } #region Itens da Analise AnaliseItensBus busAnalise = new AnaliseItensBus(new AnaliseItensValidar()); AnaliseItem analiseItem = busAnalise.ObterAnaliseTitulo(documento.ChecagemPendencia.TituloId); analiseItem = busAnalise.Obter(analiseItem.Id, bancoDeDados); //int setorId = _busProc.ObterSetor(analiseItem.Protocolo.Id); foreach (Item item in analiseItem.Itens) { if (documento.ChecagemPendencia.Itens.Exists(x => x.Id == item.Id)) { item.Analista = User.Name; item.Situacao = (int)eAnaliseItemSituacao.Recebido; item.Motivo = String.Empty; item.Recebido = true; item.Editado = true; //item.SetorId = setorId; item.DataAnalise = DateTime.Now.ToString(); } } AnaliseItensDa _daAnalise = new AnaliseItensDa(); _daAnalise.Salvar(analiseItem, bancoDeDados); #endregion } #endregion #region Atividade List <Atividade> lstAtividadesAtual = null; if ((documento.Id ?? 0) > 0) { lstAtividadesAtual = _da.ObterAtividades(documento.Id.GetValueOrDefault(), bancoDeDados).Atividades; } if (documento.Atividades != null && documento.Atividades.Count > 0) { documento.Atividades.ForEach(x => { x.Protocolo.Id = documento.Id.GetValueOrDefault(); x.Protocolo.IsProcesso = false; }); AtividadeBus atividadeBus = new AtividadeBus(); atividadeBus.AlterarSituacaoProcDoc(documento.Atividades, lstAtividadesAtual, bancoDeDados); atividadeBus.TituloAnteriores(documento.Atividades, lstAtividadesAtual, bancoDeDados); } #endregion _da.Salvar(documento, bancoDeDados); #region Checagens // cadastrando, seta situação da checagem de itens de roteiro/pendencia como protocolada if (documentoOriginal.Id.GetValueOrDefault() <= 0) { _busCheckList.AlterarSituacao(documento.ChecagemRoteiro.Id, 2, bancoDeDados); //protocolada documento.ChecagemPendencia.SituacaoId = 2; //protocolada _checagemPendenciaBus.AlterarSituacao(documento.ChecagemPendencia, bancoDeDados); } else // editando documento { // se checagem de itens de roteiro foi alterada, setar o status da antiga como finalizada e setar o status da nova como protocolada if (documento.ChecagemRoteiro.Id != documentoOriginal.ChecagemRoteiro.Id) { _busCheckList.AlterarSituacao(documentoOriginal.ChecagemRoteiro.Id, 1, bancoDeDados); //finalizada _busCheckList.AlterarSituacao(documento.ChecagemRoteiro.Id, 2, bancoDeDados); //protocolada } } #endregion documento.Requerimento = _busRequerimento.ObterSimplificado(documento.Requerimento.Id); if (documento.Requerimento.IsRequerimentoDigital) { CARSolicitacaoBus carSolicitacaoCredenciadoBus = new CARSolicitacaoBus(); carSolicitacaoCredenciadoBus.AssociarProtocolo(new CARSolicitacao() { Requerimento = documento.Requerimento }, bancoDeDadosCredenciado); if (documentoOriginal.Requerimento.Id != documento.Requerimento.Id) { if (!_busProjetoDigital.AlterarSituacao(documento.Requerimento.Id, eProjetoDigitalSituacao.AguardandoAnalise, bancoDeDadosCredenciado)) { bancoDeDados.Rollback(); return(false); } } } AlterarRequerimentoSituacao(documento, 3, bancoDeDados); // Protocolado #region Fiscalizacao if (isEdicao && documento.Fiscalizacao.Id != documentoOriginal.Fiscalizacao.Id && documentoOriginal.Fiscalizacao.Id > 0) { documentoOriginal.Fiscalizacao.SituacaoNovaTipo = (int)eFiscalizacaoSituacao.CadastroConcluido; documentoOriginal.Fiscalizacao.SituacaoNovaData.Data = DateTime.Now; documentoOriginal.Fiscalizacao.SituacaoAtualTipo = documento.Fiscalizacao.SituacaoId; _busFiscalizacao.AlterarSituacaoProcDoc(documentoOriginal.Fiscalizacao, bancoDeDados); } if (documento.Fiscalizacao.Id != documentoOriginal.Fiscalizacao.Id) { documento.Fiscalizacao.SituacaoNovaTipo = (int)eFiscalizacaoSituacao.Protocolado; documento.Fiscalizacao.SituacaoNovaData.Data = DateTime.Now; documento.Fiscalizacao.SituacaoAtualTipo = documento.Fiscalizacao.SituacaoId; _busFiscalizacao.AlterarSituacaoProcDoc(documento.Fiscalizacao, bancoDeDados); } #endregion //sempre no final esse if if (!Validacao.EhValido) { bancoDeDadosCredenciado.Rollback(); bancoDeDados.Rollback(); return(false); } bancoDeDadosCredenciado.Commit(); } bancoDeDados.Commit(); } Mensagem msgSucesso = Mensagem.Documento.Salvar(documento.Numero); if (isEdicao) { msgSucesso = Mensagem.Documento.Editar; } Validacao.Add(msgSucesso); } } catch (Exception exc) { Validacao.AddErro(exc); } return(Validacao.EhValido); }
public bool Salvar(Empreendimento empreendimento) { try { if (_validar.Salvar(empreendimento)) { Mensagem erros = VerificarLocalizacaoEmpreendimento(empreendimento.Coordenada.EastingUtmTexto, empreendimento.Coordenada.NorthingUtmTexto, empreendimento.Enderecos[0].EstadoId, empreendimento.Enderecos[0].MunicipioId); if (erros.Texto != null) { Validacao.Add(erros); return(Validacao.EhValido); } empreendimento.CredenciadoId = User.FuncionarioId; if (empreendimento.InternoId.GetValueOrDefault() > 0) { empreendimento.InternoTid = new EmpreendimentoInternoBus().ObterSimplificado(empreendimento.InternoId.Value).Tid; } if (empreendimento.Coordenada.Tipo.Id > 0) { empreendimento.Coordenada.Datum.Sigla = ListaCredenciadoBus.Datuns.SingleOrDefault(x => Equals(x.Id, empreendimento.Coordenada.Datum.Id)).Sigla; } #region Utilizar o mesmo endereço de localização if (empreendimento.Enderecos.Count == 1) { Endereco enderecoLocalizacao = empreendimento.Enderecos.First(); Endereco endereco = new Endereco(); endereco.Correspondencia = 1; endereco.Cep = enderecoLocalizacao.Cep; endereco.Logradouro = enderecoLocalizacao.Logradouro; endereco.Bairro = enderecoLocalizacao.Bairro; endereco.EstadoId = enderecoLocalizacao.EstadoId; endereco.MunicipioId = enderecoLocalizacao.MunicipioId; endereco.Numero = enderecoLocalizacao.Numero; endereco.DistritoLocalizacao = enderecoLocalizacao.DistritoLocalizacao; endereco.Complemento = enderecoLocalizacao.Complemento; empreendimento.Enderecos.Add(endereco); } #endregion GerenciadorTransacao.ObterIDAtual(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(UsuarioCredenciado)) { bancoDeDados.IniciarTransacao(); PessoaCredenciadoBus pessoaCredenciadoBus = new PessoaCredenciadoBus(); Pessoa aux; List <Mensagem> mensagens = new List <Mensagem>(); foreach (Responsavel responsavel in empreendimento.Responsaveis) { if (responsavel.Id <= 0) { aux = pessoaCredenciadoBus.ObterPessoa(interno: responsavel.InternoId); Pessoa pessoaCredenciado = pessoaCredenciadoBus.Obter(aux.CPFCNPJ, bancoDeDados, simplificado: true, credenciadoId: User.FuncionarioId); aux.Id = pessoaCredenciado.Id; pessoaCredenciadoBus.Salvar(aux, bancoDeDados); responsavel.Id = aux.Id; if (!Validacao.EhValido) { mensagens.Add(Mensagem.Pessoa.DadosRepresentanteIncompleto(aux.NomeRazaoSocial)); } } } if (!Validacao.EhValido) { mensagens.ForEach(msg => { msg.Texto = msg.Texto.Replace("representante", "responsável"); }); Validacao.Erros = mensagens; bancoDeDados.Rollback(); return(false); } _da.Salvar(empreendimento, bancoDeDados); #region Solicitação de CAR CARSolicitacaoBus carSolicitacaoBus = new CARSolicitacaoBus(); CARSolicitacao carSolicitacao = new CARSolicitacao(); carSolicitacao.Empreendimento.Id = empreendimento.Id; //carSolicitacaoBus.AlterarSituacao(carSolicitacao, new CARSolicitacao() { SituacaoId = (int)eCARSolicitacaoSituacao.Invalido }, bancoDeDados); #endregion bancoDeDados.Commit(); } } } catch (Exception exc) { Validacao.AddErro(exc); } return(Validacao.EhValido); }
public bool Salvar(Processo processo) { try { processo.Emposse.Id = User.FuncionarioId; processo.Requerimento = _busRequerimento.ObterSimplificado(processo.Requerimento.Id); if (processo.Arquivo == null) { processo.Arquivo = new Arquivo(); } bool isEdicao = (processo.Id > 0); if (processo.Fiscalizacao.Id > 0) { processo.Requerimento = new Requerimento(); processo.Atividades = new List <Atividade>(); processo.ChecagemRoteiro = new ChecagemRoteiro(); } if (_validar.Salvar(processo)) { #region Arquivos/Diretorio if (processo.Arquivo.Id != null && processo.Arquivo.Id == 0) { ArquivoBus _busArquivo = new ArquivoBus(eExecutorTipo.Interno); processo.Arquivo = _busArquivo.Copiar(processo.Arquivo); } #endregion GerenciadorTransacao.ObterIDAtual(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia()) { bancoDeDados.IniciarTransacao(); #region Arquivos/Banco if (processo.Arquivo.Id == 0) { ArquivoDa _arquivoDa = new ArquivoDa(); _arquivoDa.Salvar(processo.Arquivo, User.FuncionarioId, User.Name, User.Login, (int)eExecutorTipo.Interno, User.FuncionarioTid, bancoDeDados); } #endregion #region Atividade List <Atividade> lstAtividadesAtual = null; if (processo.Id.GetValueOrDefault() > 0) { lstAtividadesAtual = _da.ObterAtividadesSolicitadas(processo.Id.Value, bancoDeDados); } if (processo.Atividades != null && processo.Atividades.Count > 0) { processo.Atividades.ForEach(x => { x.Protocolo.Id = processo.Id.GetValueOrDefault(); x.Protocolo.IsProcesso = true; }); AtividadeBus atividadeBus = new AtividadeBus(); atividadeBus.AlterarSituacaoProcDoc(processo.Atividades, lstAtividadesAtual, bancoDeDados); atividadeBus.TituloAnteriores(processo.Atividades, lstAtividadesAtual, bancoDeDados); } #endregion Processo processoOriginal = new Processo(); if (processo.Id != null && processo.Id.HasValue && processo.Id.Value > 0) { processoOriginal = ObterSimplificado(processo.Id.Value); } //Salvar _da.Salvar(processo, bancoDeDados); using (BancoDeDados bancoDeDadosCredenciado = BancoDeDados.ObterInstancia(UsuarioCredenciado)) { bancoDeDadosCredenciado.IniciarTransacao(); // editando processo if (processoOriginal.Id > 0) { // se checagem de itens de roteiro foi alterada, setar o status da antiga como finalizada e setar o status da nova como protocolada if (processo.ChecagemRoteiro.Id != processoOriginal.ChecagemRoteiro.Id) { _busCheckList.AlterarSituacao(processoOriginal.ChecagemRoteiro.Id, 1, bancoDeDados); } if (processoOriginal.Requerimento.Id != processo.Requerimento.Id) { processoOriginal.Requerimento = _busRequerimento.ObterSimplificado(processoOriginal.Requerimento.Id); if (processoOriginal.Requerimento.IsRequerimentoDigital) { CARSolicitacaoBus carSolicitacaoCredenciadoBus = new CARSolicitacaoBus(); carSolicitacaoCredenciadoBus.DesassociarProtocolo(new CARSolicitacao() { Requerimento = processoOriginal.Requerimento }, bancoDeDadosCredenciado); if (!_busProjetoDigital.AlterarSituacao(processoOriginal.Requerimento.Id, eProjetoDigitalSituacao.AguardandoProtocolo, bancoDeDadosCredenciado)) { bancoDeDados.Rollback(); return(false); } } AlterarRequerimentoSituacao(processoOriginal, banco: bancoDeDados); } if (processo.Fiscalizacao.Id != processoOriginal.Fiscalizacao.Id && processoOriginal.Fiscalizacao.Id > 0) { processoOriginal.Fiscalizacao.SituacaoNovaTipo = (int)eFiscalizacaoSituacao.CadastroConcluido; processoOriginal.Fiscalizacao.SituacaoNovaData.Data = DateTime.Now; processoOriginal.Fiscalizacao.SituacaoAtualTipo = processo.Fiscalizacao.SituacaoId; _busFiscalizacao.AlterarSituacaoProcDoc(processoOriginal.Fiscalizacao, bancoDeDados); } } if (processo.ChecagemRoteiro.Id > 0) { _busCheckList.AlterarSituacao(processo.ChecagemRoteiro.Id, 2, bancoDeDados); //Checagem Protocolada AlterarRequerimentoSituacao(processo, 3, bancoDeDados); // Requerimento Protocolado } if (processo.Requerimento.IsRequerimentoDigital) { CARSolicitacaoBus carSolicitacaoCredenciadoBus = new CARSolicitacaoBus(); carSolicitacaoCredenciadoBus.AssociarProtocolo(new CARSolicitacao() { Requerimento = processo.Requerimento }, bancoDeDadosCredenciado); if (processoOriginal.Requerimento.Id != processo.Requerimento.Id) { if (!_busProjetoDigital.AlterarSituacao(processo.Requerimento.Id, eProjetoDigitalSituacao.AguardandoAnalise, bancoDeDadosCredenciado)) { bancoDeDados.Rollback(); return(false); } } } #region Fiscalizacao if (processo.Fiscalizacao.Id != processoOriginal.Fiscalizacao.Id) { processo.Fiscalizacao.SituacaoNovaTipo = (int)eFiscalizacaoSituacao.Protocolado; processo.Fiscalizacao.SituacaoNovaData.Data = DateTime.Now; processo.Fiscalizacao.SituacaoAtualTipo = processo.Fiscalizacao.SituacaoId; _busFiscalizacao.AlterarSituacaoProcDoc(processo.Fiscalizacao, bancoDeDados); } #endregion Fiscalizacao //sempre no final esse if if (!Validacao.EhValido) { bancoDeDadosCredenciado.Rollback(); bancoDeDados.Rollback(); return(false); } bancoDeDadosCredenciado.Commit(); } bancoDeDados.Commit(); } Mensagem msgSucesso = Mensagem.Processo.Salvar(processo.Numero); if (isEdicao) { msgSucesso = Mensagem.Processo.Editar; } Validacao.Add(msgSucesso); } } catch (Exception exc) { Validacao.AddErro(exc); } return(Validacao.EhValido); }
public bool Excluir(int id) { try { if (_validar.Excluir(id)) { GerenciadorTransacao.ObterIDAtual(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia()) { Processo proc = _da.ObterAtividades(id) as Processo; #region Atividades AtividadeBus atividadeBus = new AtividadeBus(); atividadeBus.TituloAnteriores(new List <Atividade>(), proc.Atividades, bancoDeDados); #endregion _da.Excluir(id, bancoDeDados); AlterarRequerimentoSituacao(proc, banco: bancoDeDados); if (proc.ChecagemRoteiro.Id > 0) { _busCheckList.AlterarSituacao(proc.ChecagemRoteiro.Id, 1, bancoDeDados); } if (proc.Fiscalizacao.Id > 0) { proc.Fiscalizacao.SituacaoNovaTipo = (int)eFiscalizacaoSituacao.CadastroConcluido; proc.Fiscalizacao.SituacaoNovaData.Data = DateTime.Now; _busFiscalizacao.AlterarSituacaoProcDoc(proc.Fiscalizacao, bancoDeDados); } using (BancoDeDados bancoDeDadosCredenciado = BancoDeDados.ObterInstancia(UsuarioCredenciado)) { bancoDeDadosCredenciado.IniciarTransacao(); CARSolicitacaoBus carSolicitacaoCredenciadoBus = new CARSolicitacaoBus(); carSolicitacaoCredenciadoBus.DesassociarProtocolo(new CARSolicitacao() { Requerimento = proc.Requerimento }, bancoDeDadosCredenciado); _busProjetoDigital.AlterarSituacao(proc.Requerimento.Id, eProjetoDigitalSituacao.AguardandoProtocolo, bancoDeDadosCredenciado); if (!Validacao.EhValido) { bancoDeDadosCredenciado.Rollback(); bancoDeDados.Rollback(); return(false); } bancoDeDadosCredenciado.Commit(); } Validacao.Add(Mensagem.Processo.Excluir); bancoDeDados.Commit(); } } } catch (Exception exc) { Validacao.AddErro(exc); } return(Validacao.EhValido); }