Пример #1
0
        public bool ValidarConversa(PTVComunicador comunicador)
        {
            if (!FuncionarioHabilitadoValido())
            {
                return(false);
            }

            if ((comunicador.Id <= 0) && (_da.ExisteComunicadorPTV(comunicador) > 0))
            {
                Validacao.Add(Mensagem.PTV.JaExisteComunicadorPTV);
            }

            if ((comunicador.ArquivoInterno != null) && (!String.IsNullOrEmpty(comunicador.ArquivoInterno.TemporarioNome) || !String.IsNullOrEmpty(comunicador.ArquivoInterno.Nome)))
            {
                if (!(comunicador.ArquivoInterno.Extensao == ".zip" || comunicador.ArquivoInterno.Extensao == ".rar"))
                {
                    Validacao.Add(Mensagem.Arquivo.ArquivoTipoInvalido("Anexo", new List <string>(new string[] { ".zip", ".rar" })));
                }
            }

            if (comunicador.Conversas.Count != 1)
            {
                Validacao.Add(Mensagem.PTV.JustificativaObrigatoria);
            }

            foreach (PTVConversa conversa in comunicador.Conversas)
            {
                if (String.IsNullOrEmpty(conversa.Texto))
                {
                    Validacao.Add(Mensagem.PTV.JustificativaObrigatoria);
                }
            }

            return(Validacao.EhValido);
        }
Пример #2
0
        public bool ValidarConversa(PTVComunicador comunicador)
        {
            if ((comunicador.ArquivoCredenciado != null) && (!String.IsNullOrEmpty(comunicador.ArquivoCredenciado.TemporarioNome) || !String.IsNullOrEmpty(comunicador.ArquivoCredenciado.Nome)))
            {
                if (!(comunicador.ArquivoCredenciado.Extensao == ".zip" || comunicador.ArquivoCredenciado.Extensao == ".rar"))
                {
                    Validacao.Add(Mensagem.Arquivo.ArquivoTipoInvalido("Anexo", new List <string>(new string[] { ".zip", ".rar" })));
                }
            }

            if (comunicador.Conversas.Count != 1)
            {
                Validacao.Add(Mensagem.PTV.JustificativaObrigatoria);
            }

            if (!comunicador.liberadoCredenciado)
            {
                Validacao.Add(Mensagem.PTV.EsperandoComunicacaoInterno);
            }

            foreach (PTVConversa conversa in comunicador.Conversas)
            {
                if (String.IsNullOrEmpty(conversa.Texto))
                {
                    Validacao.Add(Mensagem.PTV.JustificativaObrigatoria);
                }
            }

            return(Validacao.EhValido);
        }
Пример #3
0
        public ActionResult EnviarComunicadorPTV(PTVComunicador Comunicador)
        {
            _busPTV.SalvarConversa(Comunicador);

            return(Json(new
            {
                @EhValido = Validacao.EhValido,
                @Msg = Validacao.Erros,
                @Url = Url.Action("ComunicadorPTV", "PTV") + "/" + Comunicador.PTVId,
                @Local = Comunicador
            }, JsonRequestBehavior.AllowGet));
        }
Пример #4
0
        private bool EnviarEmailConversa(PTVComunicador comunicador, BancoDeDados bancoDeDados)
        {
            try
            {
                Email          email               = null;
                PTVConversa    conversa            = comunicador.Conversas[0];
                PTVComunicador comunicadorCompleto = _da.ObterComunicadorSemConversas(comunicador.PTVId, bancoDeDados);
                if (!String.IsNullOrEmpty(conversa.Texto))
                {
                    string textoEmail = _configSys.Obter <String>(ConfiguracaoSistema.KeyModeloTextoEmailComunicadorSolicitacaoPTV);

                    if (!String.IsNullOrWhiteSpace(textoEmail))
                    {
                        Dictionary <String, String> emailKeys = new Dictionary <string, string>();

                        emailKeys.Add("[data da conclusão]", conversa.DataConversa.DataHoraTexto);
                        emailKeys.Add("[número do PTV]", comunicadorCompleto.PTVNumero.ToString());
                        emailKeys.Add("[Situação]", _da.BuscarSituacaoPTV(comunicadorCompleto.PTVId, bancoDeDados));

                        foreach (string key in emailKeys.Keys)
                        {
                            textoEmail = textoEmail.Replace(key, emailKeys[key]);
                        }

                        email         = new Email();
                        email.Assunto = _configSys.Obter <String>(ConfiguracaoSistema.KeyOrgaoSigla);
                        email.Texto   = textoEmail;
                        email.Tipo    = eEmailTipo.ComunicadorPTV;
                        email.Codigo  = conversa.Id;
                    }
                }

                if (email != null)
                {
                    List <String> lstEmail = _da.ObterEmailsCredenciado(comunicador.PTVId, bancoDeDados);

                    if (lstEmail != null && lstEmail.Count > 0)
                    {
                        email.Destinatario = String.Join(", ", lstEmail.ToArray());

                        EmailBus emailBus = new EmailBus();
                        emailBus.Enviar(email);
                    }
                }
            }
            catch (Exception ex)
            {
                Validacao.AddErro(ex);
            }

            return(Validacao.EhValido);
        }
Пример #5
0
        public bool ValidarConversa(PTVComunicador comunicador)
        {
            if ((comunicador.ArquivoCredenciado != null) && (!String.IsNullOrEmpty(comunicador.ArquivoCredenciado.TemporarioNome) || !String.IsNullOrEmpty(comunicador.ArquivoCredenciado.Nome)))
            {
                if (comunicador.ArquivoCredenciado.Extensao != ".zip" &&
                    comunicador.ArquivoCredenciado.Extensao != ".rar" &&
                    comunicador.ArquivoCredenciado.Extensao != ".jpg" &&
                    comunicador.ArquivoCredenciado.Extensao != ".jpeg" &&
                    comunicador.ArquivoCredenciado.Extensao != ".pdf")
                {
                    Validacao.Add(Mensagem.Arquivo.ArquivoTipoInvalido("Anexo", new List <string>(new string[] { ".zip", ".rar", ".pdf", ".jpg", ".jpeg" })));
                }
            }

            if (comunicador.Conversas.Count != 1)
            {
                Validacao.Add(Mensagem.PTV.JustificativaObrigatoria);
            }

            if (!comunicador.liberadoCredenciado)
            {
                Validacao.Add(Mensagem.PTV.EsperandoComunicacaoInterno);
            }

            foreach (PTVConversa conversa in comunicador.Conversas)
            {
                if (comunicador.IsDesbloqueio)
                {
                    if (String.IsNullOrEmpty(conversa.Texto))
                    {
                        Validacao.Add(Mensagem.PTV.JustificativaObrigatoria);
                    }
                }
                else
                {
                    if (String.IsNullOrWhiteSpace(conversa.Texto) && String.IsNullOrWhiteSpace(conversa.ArquivoNome))
                    {
                        Validacao.Add(Mensagem.PTV.UmDosCamposPreenchido);
                    }
                }
            }

            return(Validacao.EhValido);
        }
Пример #6
0
 public PTVComunicadorVW()
 {
     Comunicador = new PTVComunicador();
 }
Пример #7
0
        public bool SalvarConversa(PTVComunicador comunicador, BancoDeDados bancoInterno = null, BancoDeDados bancoCredenciado = null)
        {
            try
            {
                #region Configuração

                Blocos.Arquivo.Arquivo arq;

                if (comunicador.ArquivoInterno == null)
                {
                    comunicador.ArquivoInterno = new Blocos.Arquivo.Arquivo();
                }

                comunicador.liberadoCredenciado = true;
                arq = comunicador.ArquivoInterno;

                PTVConversa conversa;
                conversa = comunicador.Conversas[0];

                conversa.DataConversa.Data = DateTime.Now;
                conversa.FuncionarioId     = Executor.Current.Id;
                conversa.NomeComunicador   = Executor.Current.Nome;
                conversa.TipoComunicador   = (int)eExecutorTipo.Interno;

                #endregion Configuração

                if (_validar.ValidarConversa(comunicador))
                {
                    #region Arquivos/Diretorio

                    ArquivoBus _busArquivo = new ArquivoBus(eExecutorTipo.Interno);

                    if (arq != null && !String.IsNullOrWhiteSpace(arq.TemporarioNome))
                    {
                        if (arq.Id == 0)
                        {
                            arq = _busArquivo.Copiar(arq);
                        }
                    }

                    #endregion

                    GerenciadorTransacao.ObterIDAtual();

                    using (BancoDeDados bancoDeDadosCredenciado = BancoDeDados.ObterInstancia(bancoCredenciado, SchemaUsuarioCredenciado))
                    {
                        bancoDeDadosCredenciado.IniciarTransacao();

                        using (BancoDeDados bancoDeDadosInterno = BancoDeDados.ObterInstancia(bancoInterno))
                        {
                            bancoDeDadosInterno.IniciarTransacao();

                            try
                            {
                                #region Arquivo

                                if (arq != null && !String.IsNullOrWhiteSpace(arq.TemporarioNome))
                                {
                                    ArquivoDa arquivoDa = new ArquivoDa();
                                    if (arq.Id == 0)
                                    {
                                        arquivoDa.Salvar(arq, Executor.Current.Id, Executor.Current.Nome, Executor.Current.Login, (int)eExecutorTipo.Interno, Executor.Current.Tid, bancoDeDadosInterno);
                                        conversa.ArquivoId           = arq.Id.GetValueOrDefault();
                                        conversa.ArquivoNome         = arq.Nome;
                                        comunicador.ArquivoInternoId = arq.Id.GetValueOrDefault();
                                    }
                                }

                                #endregion

                                if (comunicador.Id <= 0)
                                {
                                    _da.CriarComunicador(comunicador, bancoDeDadosCredenciado);
                                }
                                else
                                {
                                    _da.EnviarConversa(comunicador, bancoDeDadosCredenciado);
                                }

                                bancoDeDadosCredenciado.Commit();
                                bancoDeDadosInterno.Commit();
                                EnviarEmailConversa(comunicador, bancoDeDadosCredenciado);
                            }
                            catch
                            {
                                bancoDeDadosCredenciado.Rollback();
                                bancoDeDadosInterno.Rollback();
                                throw;
                            }

                            Validacao.Add(Mensagem.PTV.SalvarConversa);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Validacao.AddErro(ex);
            }

            return(Validacao.EhValido);
        }
Пример #8
0
        public bool Analisar(PTV eptv)
        {
            try
            {
                Tecnomapas.EtramiteX.Credenciado.Model.ModuloPTV.Business.PTVBus ptvCredenciadoBus = new Tecnomapas.EtramiteX.Credenciado.Model.ModuloPTV.Business.PTVBus();
                PTV eptvBanco = ptvCredenciadoBus.Obter(eptv.Id);

                if (!_validar.Analisar(eptv, eptvBanco))
                {
                    return(false);
                }

                GerenciadorTransacao.ObterIDAtual();

                using (BancoDeDados bancoDeDadosInterno = BancoDeDados.ObterInstancia(SchemaUsuarioInterno))
                {
                    bancoDeDadosInterno.IniciarTransacao();

                    using (BancoDeDados bancoDeDadosCredenciado = BancoDeDados.ObterInstancia(SchemaUsuarioCredenciado))
                    {
                        bancoDeDadosCredenciado.IniciarTransacao();

                        _da.AnalizarEPTV(eptv, bancoDeDadosCredenciado);

                        if (eptv.Situacao == (int)eSolicitarPTVSituacao.Aprovado)
                        {
                            eptvBanco.ValidoAte              = eptv.ValidoAte;
                            eptvBanco.ResponsavelTecnicoId   = eptv.ResponsavelTecnicoId;
                            eptvBanco.ResponsavelTecnicoNome = eptv.ResponsavelTecnicoNome;
                            eptvBanco.LocalEmissaoId         = eptv.LocalEmissaoId;
                            eptvBanco.TemAssinatura          = _da.ExisteAssinaturaDigital(eptv.ResponsavelTecnicoId);

                            if (!_validar.Importar(eptvBanco))
                            {
                                return(Validacao.EhValido);
                            }

                            if (eptvBanco.Anexos.Any())
                            {
                                var arquivoBusCred = new ArquivoBus(eExecutorTipo.Credenciado);
                                var arquivoBusInst = new ArquivoBus(eExecutorTipo.Interno);
                                foreach (var anexo in  eptvBanco.Anexos)
                                {
                                    anexo.Arquivo = arquivoBusInst.Salvar(arquivoBusCred.Obter(anexo.Arquivo.Id.Value));
                                }
                            }

                            try
                            {
                                _da.Importar(eptvBanco, bancoDeDadosInterno);
                            }
                            catch (Exception exc)
                            {
                                if (exc.Message.Contains("UK_TAB_PTV_EPTV"))
                                {
                                    Validacao.Add(new Mensagem {
                                        Texto = "O EPTV já foi importado para o institucional.", Tipo = eTipoMensagem.Advertencia
                                    });
                                    return(Validacao.EhValido);
                                }

                                throw exc;
                            }
                        }

                        string textoEmail = string.Empty;
                        switch (eptv.Situacao)
                        {
                        case 3:
                            eptvBanco.SituacaoTexto = "Aprovado";
                            textoEmail = _configSys.Obter <String>(ConfiguracaoSistema.KeyModeloTextoEmailAprovarSolicitacaoPTV);
                            break;

                        case 4:
                            eptvBanco.SituacaoTexto = "Rejeitado";
                            textoEmail = _configSys.Obter <String>(ConfiguracaoSistema.KeyModeloTextoEmailRejeitarSolicitacaoPTV) + eptv.SituacaoMotivo;
                            break;

                        case 5:
                            eptvBanco.SituacaoTexto = "Fiscalização Agendada";
                            textoEmail = _configSys.Obter <String>(ConfiguracaoSistema.KeyModeloTextoEmailAgendarFiscalizacaoSolicitacaoPTV);
                            break;
                        }

                        #region [ Enviar E-mail ]

                        if (eptv.Situacao == (int)eSolicitarPTVSituacao.Bloqueado)
                        {
                            PTVComunicador comunicador = new PTVComunicador();
                            comunicador.Id                  = _da.ObterIDComunicador(eptv.Id);
                            comunicador.PTVId               = eptv.Id;
                            comunicador.PTVNumero           = eptv.Numero;
                            comunicador.liberadoCredenciado = true;

                            var conversa = new PTVConversa();
                            conversa.Texto = eptv.SituacaoMotivo;
                            comunicador.Conversas.Add(conversa);

                            SalvarConversa(comunicador, bancoDeDadosInterno, bancoDeDadosCredenciado);
                        }
                        else
                        {
                            var emailKeys = new Dictionary <string, string>
                            {
                                { "[data situacao]", DateTime.Today.ToShortDateString() },
                                { "[hora situacao]", DateTime.Now.ToShortTimeString() },
                                { "[numero]", eptvBanco.Numero.ToString() },
                                { "[local vistoria]", eptvBanco.LocalVistoriaTexto },
                                { "[hora vistoria]", eptv.DataHoraVistoriaTexto }
                            };

                            foreach (var item in emailKeys)
                            {
                                textoEmail = textoEmail.Replace(item.Key, item.Value);
                            }

                            var email = new Email();
                            email.Assunto = _configSys.Obter <String>(ConfiguracaoSistema.KeyOrgaoSigla);
                            email.Texto   = textoEmail;
                            email.Tipo    = eEmailTipo.AnaliseEPTV;
                            email.Codigo  = eptv.Id;

                            List <String> lstEmail = _da.ObterEmailsCredenciado(eptv.Id, bancoDeDadosCredenciado);

                            if (lstEmail != null && lstEmail.Count > 0)
                            {
                                email.Destinatario = String.Join(", ", lstEmail.ToArray());

                                EmailBus emailBus = new EmailBus();
                                emailBus.Enviar(email, bancoDeDadosInterno);
                            }
                        }

                        #endregion

                        bancoDeDadosInterno.Commit();
                        bancoDeDadosCredenciado.Commit();
                    }
                }
            }
            catch (Exception ex)
            {
                Validacao.AddErro(ex);
            }

            return(Validacao.EhValido);
        }
Пример #9
0
        public bool SalvarConversa(PTVComunicador comunicador)
        {
            try
            {
                #region Configuração

                Blocos.Arquivo.Arquivo arq;

                //if (comunicador.ArquivoCredenciado == null)
                //{
                //    comunicador.ArquivoCredenciado = new Blocos.Arquivo.Arquivo();
                //}

                arq = comunicador.ArquivoCredenciado;



                PTVConversa conversa;
                conversa = comunicador.Conversas[0];

                conversa.DataConversa.Data = DateTime.Now;
                conversa.CredenciadoId     = Executor.Current.Id;
                conversa.NomeComunicador   = Executor.Current.Nome;
                conversa.TipoComunicador   = (int)eExecutorTipo.Credenciado;

                #endregion Configuração

                if (_validar.ValidarConversa(comunicador))
                {
                    comunicador.liberadoCredenciado = false;

                    #region Arquivos/Diretorio

                    ArquivoBus _busArquivo = new ArquivoBus(eExecutorTipo.Credenciado);

                    if (arq != null && !String.IsNullOrWhiteSpace(arq.TemporarioNome))
                    {
                        if (arq.Id == 0)
                        {
                            arq = _busArquivo.Copiar(arq);
                        }
                    }

                    #endregion

                    GerenciadorTransacao.ObterIDAtual();

                    using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(UsuarioCredenciado))
                    {
                        bancoDeDados.IniciarTransacao();

                        #region Arquivo
                        if (arq != null && !String.IsNullOrWhiteSpace(arq.TemporarioNome))
                        {
                            ArquivoDa arquivoDa = new ArquivoDa();
                            if (arq.Id == 0)
                            {
                                arquivoDa.Salvar(arq, Executor.Current.Id, Executor.Current.Nome, Executor.Current.Login, (int)eExecutorTipo.Credenciado, Executor.Current.Tid, bancoDeDados);
                                conversa.ArquivoId               = arq.Id.GetValueOrDefault();
                                conversa.ArquivoNome             = arq.Nome;
                                comunicador.ArquivoCredenciadoId = arq.Id.GetValueOrDefault();
                            }
                        }

                        #endregion

                        _da.EnviarConversa(comunicador, bancoDeDados);

                        bancoDeDados.Commit();
                        Validacao.Add(Mensagem.PTV.SalvarConversa);
                    }
                }
            }
            catch (Exception ex)
            {
                Validacao.AddErro(ex);
            }

            return(Validacao.EhValido);
        }