/// <summary> /// adiciona dados a um historico de solicitação de orçamento /// </summary> private void SalvarSolicitacaoOrcamentoHistorico() { SolicitacaoOrcamentoHistorico soh = new SolicitacaoOrcamentoHistorico(Session) { SolicitacaoOrcamento = this, ResponsavelHistorico = Responsavel, AtualizadoPor = Colaborador.GetColaboradorCurrent(Session), Situacoes = Situacao, Comentario = TxUltimoComentario, DataHora = DateUtil.ConsultarDataHoraAtual() }; soh.Save(); }
/// <summary> /// Envio de email /// </summary> /// <returns>True se o email foi enviado e False se não foi</returns> private bool EnviarEmails() { try { // Dados não obrigatórios para inserção no email string tipoSolic; string reposit; string desc; string obs; if (TipoSolicitacao != null) { tipoSolic = TipoSolicitacao.TxDescricao; } else { tipoSolic = "<i>Não informado</i>"; } if (!string.IsNullOrEmpty(TxRepositorio)) { reposit = TxRepositorio; } else { reposit = "<i>Não informado</i>"; } if (!string.IsNullOrEmpty(TxDescricao)) { desc = TxDescricao; } else { desc = "<i>Não informada</i>"; } if (!string.IsNullOrEmpty(TxObservacao)) { obs = TxObservacao; } else { obs = "<i>Não informada</i>"; } MailMessage mail = new MailMessage() { From = new MailAddress(Solicitante.Email, "WexProject") }; mail.To.Add(new MailAddress(Responsavel.Usuario.Email, Responsavel.Usuario.FullName)); // Emails com cópia foreach (string cc in TxCc.Split(';')) { if (!string.IsNullOrEmpty(cc)) { mail.CC.Add(cc); } } // Emails com cópia oculta foreach (string cco in TxCco.Split(';')) { if (!string.IsNullOrEmpty(cco)) { mail.Bcc.Add(cco); } } mail.Subject = GerarAssuntoEmailSeot(); mail.IsBodyHtml = true; // Corpo do email string body; const string Separador = "<br style='clear: both;'>"; string styleFonte = "font-family: Arial; font-size: 12px;"; string styleDivTitle = "style='background-color: #006600; color: #FFFFFF; text-align: left;"; styleDivTitle += "font-weight: bold; width: 100%; margin: 0px; padding: 3px;'"; body = String.Format("<div style='width: 100%; {0}'>", styleFonte); //Informação Mais Recente var ultimo_historico = SolicitacaoOrcamentoHistorico.GetUltimoHistorico(this); body += String.Format("<div {0}>Informação Mais Recente</div>", styleDivTitle); body += String.Format("{0}<b>Situação:</b> {1}", Separador, Situacao.TxDescricao); body += String.Format("{0}<b>Comentário:</b> {1}", Separador, ultimo_historico.Comentario); body += String.Format("{0}<b>Data/Hora:</b> {1}", Separador, ultimo_historico.DataHora.ToString("dd/MM/yyyy hh:mm")); body += String.Format("{0}<b>Alterado Por:</b> {1} {2}", Separador, ultimo_historico.AtualizadoPor.Usuario.FullName, Separador); // Dados Gerais body += String.Format("{0}<div {1}>Dados Gerais</div>", Separador, styleDivTitle); body += String.Format("{0}<b>Solicitante:</b> {1}", Separador, _Solicitante); body += String.Format("{0}<b>Responsável:</b> {1} ({2})", Separador, Responsavel.Usuario.FullName, Responsavel.Usuario.UserName); body += String.Format("{0}<b>Tipo:</b> {1}", Separador, tipoSolic); body += String.Format("{0}<b>Prioridade:</b> {1} {2}", Separador, EnumUtil.DescricaoEnum(CsPrioridade), Separador); // Dados da Solicitação de Orçamento body += String.Format("{0}<div {1}>Dados da Solicitação de Orçamento</div>", Separador, styleDivTitle); body += String.Format("{0}<b>Código:</b> {1}", Separador, TxCodigo); body += String.Format("{0}<b>Título:</b> {1}", Separador, TxTitulo); body += String.Format("{0}<b>Prazo:</b> {1}", Separador, DtPrazo.ToString("dd/MM/yyyy")); body += String.Format("{0}<b>Repositório:</b> {1} {2}", Separador, reposit, Separador); // Dados do Cliente body += String.Format("{0}<div {1}>Dados do Cliente</div>", Separador, styleDivTitle); body += String.Format("{0}<b>Cliente:</b> {1}", Separador, Cliente.TxNome); body += String.Format("{0}<b>Nome:</b> {1}", Separador, TxContatoCliente); body += String.Format("{0}<b>E-mail:</b> {1}", Separador, TxEmailContatoCliente); body += String.Format("{0}<b>Fone/Fax:</b> {1} {2}", Separador, TxFone, Separador); // Outros body += String.Format("{0}<div {1}>Outros</div>", Separador, styleDivTitle); body += String.Format("{0}<b>Descrição:</b> {1}", Separador, desc); body += String.Format("{0}<b>Observação:</b> {1} {2}", Separador, obs, Separador); // Tabela Histórico string stylePositionTable = "position: relative;left: -1.7px;top: -1px;right: -50px;"; body += String.Format("{0}<div {1}>Histórico</div>", Separador, styleDivTitle); body += String.Format("<table style='width: 100%;{0};'><tbody><tr {1}>", stylePositionTable, styleDivTitle); body += String.Format("<td><div style='{0}'>Data/Hora</div></td>", styleFonte + "color: #FFFFFF;"); body += String.Format("<td><div style='{0}'>Situação</div></td>", styleFonte + "color: #FFFFFF;"); body += String.Format("<td><div style='{0}'>Responsavél</div></td>", styleFonte + "color: #FFFFFF;"); body += String.Format("<td><div style='{0}'>Comentário</div></td>", styleFonte + "color: #FFFFFF;"); body += String.Format("<td><div style='{0}'>Alterado Por</div></td></tr>", styleFonte + "color: #FFFFFF;"); /*body += String.Format("{0}<table style='width: 100%;{1}'><tbody><tr {2}>", Separador, styleFonte, styleDivTitle); * body += "<td>Data/Hora</td>"; * body += "<td>Situação</td>"; * body += "<td>Responsavél</td>"; * body += "<td>Comentário</td>"; * body += "<td>Alterado Por</td></tr>";*/ foreach (SolicitacaoOrcamentoHistorico soh in SolicitacaoOrcamentoHistoricos) { body += "<tr>"; body += String.Format("<td>{0}</td>", soh.DataHora.ToString("dd/MM/yyyy HH:mm")); body += String.Format("<td>{0}</td>", soh.Situacoes); body += String.Format("<td>{0}</td>", soh.ResponsavelHistorico); body += String.Format("<td>{0}</td>", soh.Comentario); if (soh.AtualizadoPor != null) { body += String.Format("<td>{0}</td>", soh.AtualizadoPor.ToString()); } else { body += String.Format("<td>{0}</td>", string.Empty); } body += "</tr>"; } body += "</tbody></table></div>"; mail.Body = body; textoEmail = body; SmtpClient smtp = new SmtpClient("fpfmail.dom.fpf.br", 25) { EnableSsl = false }; smtp.Send(mail); return(true); } catch (Exception e) { e.GetBaseException(); return(false); } }