package br.com.centralit.citcorpore.ajaxForms;
import java.util.ArrayList;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import br.com.centralit.citajax.html.AjaxFormAction;
import br.com.centralit.citajax.html.DocumentHTML;
import br.com.centralit.citcorpore.bean.ClienteEmailCentralServicoDTO;
import br.com.centralit.citcorpore.bean.ClienteEmailCentralServicoMessagesDTO;
import br.com.centralit.citcorpore.bean.EmpregadoDTO;
import br.com.centralit.citcorpore.bean.UsuarioDTO;
import br.com.centralit.citcorpore.negocio.ClienteEmailCentralServicoService;
import br.com.centralit.citcorpore.negocio.EmpregadoService;
import br.com.centralit.citcorpore.util.Enumerados.TipoDate;
import br.com.centralit.citcorpore.util.Enumerados.TipoOrigemLeituraEmail;
import br.com.centralit.citcorpore.util.Util;
import br.com.centralit.citcorpore.util.WebUtil;
import br.com.citframework.service.ServiceLocator;
import br.com.citframework.util.Constantes;
import br.com.citframework.util.UtilDatas;
import br.com.citframework.util.UtilI18N;
/**
* @author breno.guimaraes Controla as transa��es para manipula��o de Emails.
*
*/
@SuppressWarnings({ "rawtypes", "unused" })
public class ClienteEmailCentralServico extends AjaxFormAction {
public void load(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
UsuarioDTO usuario = WebUtil.getUsuario(request);
if (usuario == null) {
document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.sessaoExpirada"));
document.executeScript("window.location = '" + Constantes.getValue("SERVER_ADDRESS") + request.getContextPath() + "'");
return;
}
loadMails(document, request, response);
}
public void loadMails(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
ClienteEmailCentralServicoDTO clienteEmailCentralServicoDTO = (ClienteEmailCentralServicoDTO) document.getBean();
ClienteEmailCentralServicoService clienteEmailService = (ClienteEmailCentralServicoService) ServiceLocator.getInstance().getService(ClienteEmailCentralServicoService.class, null);
StringBuilder html = new StringBuilder();
StringBuilder htmlBody = new StringBuilder();
ArrayList<ClienteEmailCentralServicoMessagesDTO> emailMessages;
ClienteEmailCentralServicoDTO emailMessagesDto = clienteEmailService.getMessagesByLimitAndNoRequest(document, request, response);
if (emailMessagesDto.isResultSucess()) {
emailMessages = emailMessagesDto.getEmailMessages();
if (emailMessages == null || emailMessages.isEmpty()) {
document.alert(UtilI18N.internacionaliza(request, "MSG04"));
document.executeScript("toggleClass('widgetEmails', 'hide');");
} else {
html.append("<table id='tblEmails' class='dynamicTable table table-striped table-bordered table-condensed dataTable'>");
html.append("<tr>");
html.append("<th>" + UtilI18N.internacionaliza(request, "eventoItemConfiguracao.data") + "</th>");
html.append("<th>" + UtilI18N.internacionaliza(request, "citcorpore.comum.de") + "</th>");
html.append("<th>" + UtilI18N.internacionaliza(request, "requisitosla.assunto") + "</th>");
html.append("<th>" + UtilI18N.internacionaliza(request, "questionario.acoes") + "</th>");
html.append("</tr>");
for (ClienteEmailCentralServicoMessagesDTO message : emailMessages) {
html.append("<tr " + (!message.isSeen() ? "style='font-weight: bold;'" : "") + ">");
html.append("<td style='width: 20%;'>" + UtilDatas.convertDateToString(TipoDate.TIMESTAMP_DEFAULT, message.getMessageReceivedDate(), WebUtil.getLanguage(request)) + "</td>");
html.append("<td style='width: 25%;overflow: hidden;'>" + message.getMessageEmail() + "</td>");
html.append("<td style='width: 40%;overflow: hidden;'>" + message.getMessageSubject() + "</td>");
html.append("<td><button class='btn btn-mini btn-primary light' id='verificarEmails" + message.getMessageNumber() + "' name='verificarEmails" + message.getMessageNumber() + "' onclick='copiaEmail(" + message.getMessageNumber() + ");return false;'><i></i>" + UtilI18N.internacionaliza(request, "solicitacaoServico.copiarMsg") + "</button></td>");
html.append("</tr>");
htmlBody.append("<input type='hidden' value='" + message.getMessageId() + "' name='emailMessageId" + message.getMessageNumber() + "' id='emailMessageId" + message.getMessageNumber() + "'/>");
}
html.append("</table>");
html.append(htmlBody.toString());
document.getElementById("divEmails").setInnerHTML(html.toString());
document.executeScript("toggleClass('widgetEmails', 'show');");
}
} else {
document.alert(emailMessagesDto.getResultMessage());
document.executeScript("toggleClass('widgetEmails', 'hide');");
}
document.getJanelaPopupById("JANELA_AGUARDE_MENU").hide();
}
public void readMail(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
ClienteEmailCentralServicoService clienteEmailService = (ClienteEmailCentralServicoService) ServiceLocator.getInstance().getService(ClienteEmailCentralServicoService.class, null);
ClienteEmailCentralServicoDTO clienteEmailCentralServicoDTO = (ClienteEmailCentralServicoDTO) document.getBean();
ArrayList<ClienteEmailCentralServicoMessagesDTO> emailMessages;
if (clienteEmailCentralServicoDTO != null && clienteEmailCentralServicoDTO.getEmailMessageId() != null && clienteEmailCentralServicoDTO.getIdContrato() != null) {
ClienteEmailCentralServicoDTO cecsDto = clienteEmailService.readMessage(document, request, response, clienteEmailCentralServicoDTO.getEmailMessageId());
if (cecsDto.isResultSucess()) {
emailMessages = cecsDto.getEmailMessages();
if (emailMessages == null || emailMessages.isEmpty()) {
document.alert(UtilI18N.internacionaliza(request, "MSG04"));
document.executeScript("toggleClass('widgetEmails', 'hide');");
} else {
for (ClienteEmailCentralServicoMessagesDTO message : emailMessages) {
document.getElementById("messageId").setValue(clienteEmailCentralServicoDTO.getEmailMessageId());
document.executeScript("setDescricao('" + message.getMessageContent() + "');");
//Se for empregado ir� setar o restante das informa��es
EmpregadoService empregadoService = (EmpregadoService) ServiceLocator.getInstance().getService(EmpregadoService.class, null);
EmpregadoDTO empregadoDTO = new EmpregadoDTO();
empregadoDTO = empregadoService.listEmpregadoContrato(clienteEmailCentralServicoDTO.getIdContrato(), message.getMessageEmail());
if (empregadoDTO != null) {
document.getElementById("idSolicitante").setValue(empregadoDTO.getIdEmpregado().toString());
document.getElementById("solicitante").setValue(empregadoDTO.getNome());
document.getElementById("idUnidade").setValue(Util.tratarAspasSimples(empregadoDTO.getIdUnidade().toString()));
if (clienteEmailCentralServicoDTO != null && clienteEmailCentralServicoDTO.getEmailOrigem().equalsIgnoreCase(TipoOrigemLeituraEmail.SOLICITACAO_SERVICO.toString())) {
document.getElementById("nomecontato").setValue(empregadoDTO.getNome());
document.getElementById("emailcontato").setValue(message.getMessageEmail());
document.getElementById("telefonecontato").setValue(empregadoDTO.getTelefone());
document.getElementById("idOrigem").setValue("3");
document.executeScript("renderizaInformacoesSolicitante();");
} else if (clienteEmailCentralServicoDTO != null && clienteEmailCentralServicoDTO.getEmailOrigem().equalsIgnoreCase(TipoOrigemLeituraEmail.PROBLEMA.toString())) {
document.getElementById("nomeContato").setValue(empregadoDTO.getNome());
document.getElementById("emailContato").setValue(message.getMessageEmail());
document.getElementById("telefoneContato").setValue(empregadoDTO.getTelefone());
document.getElementById("idOrigemAtendimento").setValue("3");
}
}
}
document.executeScript("fechaModalLeituraEmail();");
}
} else {
document.alert(cecsDto.getResultMessage());
document.executeScript("toggleClass('widgetEmails', 'hide');");
}
document.getJanelaPopupById("JANELA_AGUARDE_MENU").hide();
}
}
public Class getBeanClass() {
return ClienteEmailCentralServicoDTO.class;
}
}