/**
*
*/
package br.com.centralit.citcorpore.ajaxForms;
import java.util.Collection;
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.HTMLElement;
import br.com.centralit.citcorpore.bean.ConexaoBIDTO;
import br.com.centralit.citcorpore.bean.LogImportacaoBIDTO;
import br.com.centralit.citcorpore.bean.UsuarioDTO;
import br.com.centralit.citcorpore.negocio.ConexaoBIService;
import br.com.centralit.citcorpore.negocio.LogImportacaoBIService;
import br.com.centralit.citcorpore.util.Enumerados.ParametroSistema;
import br.com.centralit.citcorpore.util.ParametroUtil;
import br.com.centralit.citcorpore.util.WebUtil;
import br.com.citframework.excecao.ServiceException;
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 thiago.barbosa
*
*
*/
@SuppressWarnings( { "rawtypes" } )
public class LogImportacaoBI extends AjaxFormAction {
public Class getBeanClass() {
return LogImportacaoBIDTO.class;
}
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;
}
listInfoLogConexaoBI(document, request, response);
}
public void listInfoLogConexaoBI(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws ServiceException, Exception {
LogImportacaoBIDTO logExecucaoBIDTO = (LogImportacaoBIDTO) document.getBean();
LogImportacaoBIService logImportacaoService = (LogImportacaoBIService) ServiceLocator.getInstance().getService(LogImportacaoBIService.class, null);
ConexaoBIService conexaoBIService = (ConexaoBIService) ServiceLocator.getInstance().getService(ConexaoBIService.class, null);
Integer itensPorPagina = Integer.parseInt(ParametroUtil.getValorParametroCitSmartHashMap(ParametroSistema.QUANT_RETORNO_PESQUISA, "10"));
Integer totalPaginas = logImportacaoService.calculaTotalPaginas(logExecucaoBIDTO.getIdConexaoBI(), itensPorPagina);
Integer paginaSelecionadaColaborador = logExecucaoBIDTO.getPaginaSelecionada();
if (paginaSelecionadaColaborador == null) {
paginaSelecionadaColaborador = 1;
}
paginacaoLog(totalPaginas, paginaSelecionadaColaborador, request, document);
Collection<LogImportacaoBIDTO> logImportacao = (Collection<LogImportacaoBIDTO>) logImportacaoService.paginacaoLog(logExecucaoBIDTO.getIdConexaoBI(), paginaSelecionadaColaborador, itensPorPagina);
String strBuffer = "";
if (logImportacao != null && !logImportacao.isEmpty()) {
strBuffer += "<tr>";
strBuffer += " <th>" + UtilI18N.internacionaliza(request, "conexaoBI.conexaoBI") + "</th>";
strBuffer += " <th style='width:20%;'>" + UtilI18N.internacionaliza(request, "citcorpore.comum.datainicio") + "</th>";
strBuffer += " <th>" + UtilI18N.internacionaliza(request, "citcorpore.comum.datafim") + "</th>";
strBuffer += " <th>" + UtilI18N.internacionaliza(request, "citcorpore.comum.status") + "</th>";
strBuffer += " <th>" + UtilI18N.internacionaliza(request, "conexaoBI.log.detalhamento") + "</th>";
strBuffer += " <th>" + UtilI18N.internacionaliza(request, "citcorpore.comum.tipo") + "</th>";
strBuffer += " <th></th>";
strBuffer += "</tr>";
for (LogImportacaoBIDTO logImportacaoDto : logImportacao) {
ConexaoBIDTO conexaoBIDTO = new ConexaoBIDTO();
conexaoBIDTO.setIdConexaoBI(logExecucaoBIDTO.getIdConexaoBI());
conexaoBIDTO = (ConexaoBIDTO) conexaoBIService.restore(conexaoBIDTO);
strBuffer += "<tr>";
strBuffer += " <td>" + conexaoBIDTO.getNome() + "</td>";
strBuffer += " <td>" + UtilDatas.dateToSTRWithFormat(logImportacaoDto.getDataHoraInicio(), "dd/MM/yyyy HH:mm:ss.SSS") + "</td>";
strBuffer += " <td>" + UtilDatas.dateToSTRWithFormat(logImportacaoDto.getDataHoraFim(), "dd/MM/yyyy HH:mm:ss.SSS") + "</td>";
strBuffer += " <td>" + (logImportacaoDto.getStatus().equalsIgnoreCase("F") ? "Falha" : "Sucesso") + "</td>";
strBuffer += " <td>" + logImportacaoDto.getDetalhamento().replaceAll("\n", "<br/>") + "</td>";
strBuffer += " <td>" + (logImportacaoDto.getTipo().equalsIgnoreCase("A") ? "Autom�tico" : (logImportacaoDto.getTipo().equalsIgnoreCase("M") ? "Manual" : "Teste de conex�o")) + "</td>";
strBuffer += " <td><a href='javascript:baixarLog(" + logImportacaoDto.getIdLogImportacao() + ");'>" + UtilI18N.internacionaliza(request, "downloadagente.download") + "</a></td>";
strBuffer += "</tr>";
}
} else {
strBuffer += UtilI18N.internacionaliza(request, "conexaoBI.log.naoExisteLog");
}
document.getElementById("tblLog").setInnerHTML(strBuffer.toString());
}
//Insere os elementos de pagina��o
public void paginacaoLog(Integer totalPaginas, Integer paginaSelecionada, HttpServletRequest request, DocumentHTML document) throws Exception {
HTMLElement divPrincipal = document.getElementById("paginas");
StringBuilder sb = new StringBuilder();
if (totalPaginas>1){
final Integer adjacentes = 2;
if (paginaSelecionada == null)
paginaSelecionada = 1;
sb.append(" <div id='itenPaginacao' class='pagination pagination-right margin-none' > ");
sb.append(" <ul>");
sb.append(" <li " + (paginaSelecionada == 1 ? "class='disabled'" : "value='1' onclick='paginarItens(this.value);return false;'") + " ><a href='#'>"+UtilI18N.internacionaliza(request, "citcorpore.comum.primeiro")+"</a></li>");
sb.append(" <li " + ((totalPaginas == 1 || paginaSelecionada == 1) ? "class='disabled'" : "value='"+(paginaSelecionada-1)+"' onclick='paginarItens(this.value);return false;'") + "><a href='#'>"+UtilI18N.internacionaliza(request, "citcorpore.comum.anterior")+"</a></li>");
if(totalPaginas <= 5) {
for (int i = 1; i <= totalPaginas; i++) {
if (i == paginaSelecionada) {
sb.append("<li id='"+i+"' value='"+i+"' onclick='paginarItens(this.value);return false;' class='active'><a href='#'>"+i+"</a></li>");
} else {
sb.append("<li id='"+i+"' value='"+i+"' onclick='paginarItens(this.value);return false;'><a href='#'>"+i+"</a></li>");
}
}
} else {
if (totalPaginas > 5) {
if (paginaSelecionada < 1 + (2 * adjacentes)) {
for (int i=1; i< 2 + (2 * adjacentes); i++) {
if (i == paginaSelecionada) {
sb.append("<li id='"+i+"' value='"+i+"' onclick='paginarItens(this.value);return false;' class='active'><a href='#'>"+i+"</a></li>");
} else {
sb.append("<li id='"+i+"' value='"+i+"' onclick='paginarItens(this.value);return false;'><a href='#'>"+i+"</a></li>");
}
}
} else if (paginaSelecionada > (2 * adjacentes) && paginaSelecionada < totalPaginas - 3) {
for (int i = paginaSelecionada-adjacentes; i<= paginaSelecionada + adjacentes; i++) {
if (i == paginaSelecionada) {
sb.append("<li id='"+i+"' value='"+i+"' onclick='paginarItens(this.value);return false;' class='active'><a href='#'>"+i+"</a></li>");
} else {
sb.append("<li id='"+i+"' value='"+i+"' onclick='paginarItens(this.value);return false;'><a href='#'>"+i+"</a></li>");
}
}
} else {
for (int i = totalPaginas - (0 + (2 * adjacentes)); i <= totalPaginas; i++) {
if (i == paginaSelecionada) {
sb.append("<li id='"+i+"' value='"+i+"' onclick='paginarItens(this.value);return false;' class='active'><a href='#'>"+i+"</a></li>");
} else {
sb.append("<li id='"+i+"' value='"+i+"' onclick='paginarItens(this.value);return false;'><a href='#'>"+i+"</a></li>");
}
}
}
}
}
sb.append(" <li " + ((totalPaginas == 1 || paginaSelecionada.equals(totalPaginas)) ? "class='disabled'" : "value='"+(paginaSelecionada+1)+"' onclick='paginarItens(this.value);return false;'") + " ><a href='#'>"+UtilI18N.internacionaliza(request, "citcorpore.comum.proximo")+"</a></li>");
sb.append(" <li id='"+totalPaginas+"' value='"+totalPaginas+"' onclick='paginarItens(this.value);return false;'><a href='#'>"+UtilI18N.internacionaliza(request, "citcorpore.comum.ultimo")+"</a></li>");
sb.append(" </ul>");
sb.append(" </div>");
}
divPrincipal.setInnerHTML(sb.toString());
}
}