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); }
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); }
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)); }
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); }
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); }
public PTVComunicadorVW() { Comunicador = new PTVComunicador(); }
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); }
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); }
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); }