package br.com.centralit.citcorpore.ajaxForms; 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.citajax.html.HTMLForm; import br.com.centralit.citcorpore.bean.CtrlAsteriskDTO; import br.com.centralit.citcorpore.bean.EmpregadoDTO; import br.com.centralit.citcorpore.negocio.EmpregadoService; import br.com.centralit.citcorpore.util.Telefone; import br.com.centralit.citcorpore.util.WebUtil; import br.com.citframework.service.ServiceLocator; import br.com.citframework.util.UtilI18N; /** * @author euler.ramos */ public class CtrlAsterisk extends AjaxFormAction { @Override public void load(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { } public void abrePopUpAsterisk(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { CtrlAsteriskDTO ctrlAsteriskDTO = (CtrlAsteriskDTO) document.getBean(); //Este n�mero vem da sess�o: if (request.getSession().getAttribute("ramalTelefone")!=null){ ctrlAsteriskDTO.setRamalTelefone(request.getSession().getAttribute("ramalTelefone").toString()); } if ((ctrlAsteriskDTO.getListaChamadas()!=null)&&(ctrlAsteriskDTO.getListaChamadas().length()>0)){ if ((ctrlAsteriskDTO.getRamalTelefone()!=null)&&(ctrlAsteriskDTO.getRamalTelefone().length()>0)){ //Quebrando por Liga��es String[] arrayListaTelefones = ctrlAsteriskDTO.getListaChamadas().split("#"); StringBuilder html = new StringBuilder(); StringBuilder campoNome = new StringBuilder(); StringBuilder campoTelefone = new StringBuilder(); EmpregadoDTO empregadoDto = new EmpregadoDTO(); StringBuilder condicaoProcura; EmpregadoService empregadoService = (EmpregadoService) ServiceLocator.getInstance().getService(EmpregadoService.class, WebUtil.getUsuarioSistema(request)); for(String ligacao : arrayListaTelefones){ //Separando os campos String[] chamada = ligacao.split(","); //Se Destino for o ramal deste cliente if (chamada[1].equals(ctrlAsteriskDTO.getRamalTelefone())){ condicaoProcura = new StringBuilder(); condicaoProcura.append(Telefone.mascaraProcuraSql(chamada[0])); empregadoDto = empregadoService.findByTelefoneOrRamal(condicaoProcura.toString()); if (empregadoDto != null && empregadoDto.getNome() != null && org.apache.commons.lang.StringUtils.isNotBlank(empregadoDto.getNome())) { campoNome.append("<p>" + empregadoDto.getNome() + "</p>"); html.append("<input id='idEmpregado' type='hidden' value='" + empregadoDto.getIdEmpregado() + "'/>"); } else { campoNome.append("<p>" + UtilI18N.internacionaliza(WebUtil.getUsuarioSistema(request).getLocale(), "citcorpore.comum.telefone.CliNaoIdentificado") + "</p>"); } campoTelefone.append("<p>" + Telefone.numeroMascarado(chamada[0], false) + "</p>"); html.append("<div class='box-generic'>"); html.append(" <div class='row-fluid'>"); html.append(" <div class='span6'>"); html.append(" <label class='strong'>"+UtilI18N.internacionaliza(request, "citcorpore.comum.nome")+"</label>"); html.append(campoNome.toString()); html.append(" </div>"); html.append(" <div class='span6'>"); html.append(" <label class='strong'>"+UtilI18N.internacionaliza(request, "citcorpore.comum.telefone")+"</label>"); html.append(campoTelefone.toString()); html.append(" </div>"); html.append(" </div>"); html.append(" <div class='row-fluid'>"); html.append(" <div class='span12 innerTB'>"); html.append(" <button class='btn btn-block btn-primary' onclick='abrirSolicitacao();' type='button'>"+UtilI18N.internacionaliza(request, "solicitacaoServico.cadastrosolicitacao")+"</button>"); html.append(" </div>"); html.append(" </div>"); html.append("</div>"); html.append("<style>"); html.append("div.container{width:100%;margin:0px;border:1px solid gray;line-height:25%;}"); html.append("div.tituloleft{float:left;padding:0.5em;color:white;background-color:#CED8E6;width:400px;margin:0;}"); html.append("div.tituloright{margin-left:160px;padding:0.5em;color:white;background-color:#CED8E6;}"); html.append("div.conteudoleft{float:left;padding:0.5em;color:black;width:400px;margin:0;}"); html.append("div.conteudoright{margin-left:390px;padding:0.5em;color:black;border-left:1px solid #CED8E6;}"); html.append("button.btnAbrirSolicitacao{width:30%;margin:0px; padding-left: 0px;}"); html.append("</style>"); document.getElementById("conteudoframeTelefonia").setInnerHTML(html.toString()); document.executeScript("$('#modal_Telefonia').modal('show');"); break; //N�o haver� mais do que uma chamada ativa para este ramal, outras tentativas receber�o sinal de ocupado. } } } } } public void abreRamalTelefone(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { CtrlAsteriskDTO ctrlAsteriskDTO = (CtrlAsteriskDTO) document.getBean(); if (request.getSession().getAttribute("ramalTelefone") != null) { ctrlAsteriskDTO.setRamalTelefone(request.getSession().getAttribute("ramalTelefone").toString()); } HTMLForm form = document.getForm("formCtrlAsterisk"); form.clear(); form.setValues(ctrlAsteriskDTO); document.executeScript("$('#modal_ramalTelefone').modal('show');"); } public void gravarRamalTelefone(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { CtrlAsteriskDTO ctrlAsteriskDTO = (CtrlAsteriskDTO) document.getBean(); if (ctrlAsteriskDTO != null) { request.getSession().setAttribute("ramalTelefone", ctrlAsteriskDTO.getRamalTelefone()); if ((ctrlAsteriskDTO.getRamalTelefone() != null) || (ctrlAsteriskDTO.getRamalTelefone().length() > 0)) { document.alert(UtilI18N.internacionaliza(WebUtil.getUsuarioSistema(request).getLocale(), "citcorpore.comum.ramal.ramalGravadoSucesso")); // document.alert((String)request.getSession().getAttribute("ramalTelefone").toString()); document.executeScript("$('#modal_ramalTelefone').modal('hide');"); } } else { // Quando o usu�rio esvaziou o campo o sistema retira este cliente da Thread MonitoraAsterisk, para n�o sobrecarreg�-la! request.getSession().setAttribute("ramalTelefone", null); } } @SuppressWarnings("rawtypes") @Override public Class getBeanClass() { return CtrlAsteriskDTO.class; } }