package br.com.centralit.citcorpore.ajaxForms;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang.StringEscapeUtils;
import br.com.centralit.bpm.dto.PermissoesFluxoDTO;
import br.com.centralit.bpm.dto.TipoFluxoDTO;
import br.com.centralit.bpm.servico.TipoFluxoService;
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.citajax.html.HTMLForm;
import br.com.centralit.citajax.html.HTMLSelect;
import br.com.centralit.citcorpore.bean.ClienteDTO;
import br.com.centralit.citcorpore.bean.ContratoDTO;
import br.com.centralit.citcorpore.bean.ContratosGruposDTO;
import br.com.centralit.citcorpore.bean.FornecedorDTO;
import br.com.centralit.citcorpore.bean.GrupoDTO;
import br.com.centralit.citcorpore.bean.GrupoEmailDTO;
import br.com.centralit.citcorpore.bean.GrupoEmpregadoDTO;
import br.com.centralit.citcorpore.bean.PerfilAcessoDTO;
import br.com.centralit.citcorpore.bean.PerfilAcessoGrupoDTO;
import br.com.centralit.citcorpore.bean.ResultResponsaveisDTO;
import br.com.centralit.citcorpore.integracao.GrupoEmailDao;
import br.com.centralit.citcorpore.negocio.ClienteService;
import br.com.centralit.citcorpore.negocio.ContratoService;
import br.com.centralit.citcorpore.negocio.ContratosGruposService;
import br.com.centralit.citcorpore.negocio.FornecedorService;
import br.com.centralit.citcorpore.negocio.GrupoEmailService;
import br.com.centralit.citcorpore.negocio.GrupoEmpregadoService;
import br.com.centralit.citcorpore.negocio.GrupoService;
import br.com.centralit.citcorpore.negocio.PerfilAcessoGrupoService;
import br.com.centralit.citcorpore.negocio.PerfilAcessoService;
import br.com.centralit.citcorpore.negocio.PermissoesFluxoService;
import br.com.centralit.citcorpore.util.Enumerados;
import br.com.centralit.citcorpore.util.Enumerados.ParametroSistema;
import br.com.centralit.citcorpore.util.Enumerados.TipoDate;
import br.com.centralit.citcorpore.util.ParametroUtil;
import br.com.centralit.citcorpore.util.WebUtil;
import br.com.citframework.service.ServiceLocator;
import br.com.citframework.util.UtilDatas;
import br.com.citframework.util.UtilI18N;
import br.com.citframework.util.UtilStrings;
/**
* @author thays.araujo
*
*/
@SuppressWarnings({ "unchecked", "rawtypes" })
public class Grupo extends AjaxFormAction {
public void load(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
document.focusInFirstActivateField(null);
preencherComboPerfilAcessoGrupo(document, request, response);
TipoFluxoService tipoFluxoService = (TipoFluxoService) ServiceLocator.getInstance().getService(TipoFluxoService.class, null);
ArrayList<TipoFluxoDTO> tiposFluxos = (ArrayList) tipoFluxoService.list();
request.setAttribute("tiposFluxos", tiposFluxos);
document.getElementById("divListaContratos").setVisible(false);
String COLABORADORES_VINC_CONTRATOS = ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.COLABORADORES_VINC_CONTRATOS, "N");
if (COLABORADORES_VINC_CONTRATOS == null) {
COLABORADORES_VINC_CONTRATOS = "N";
}
if (COLABORADORES_VINC_CONTRATOS.equalsIgnoreCase("S")) {
ContratoService contratoService = (ContratoService) ServiceLocator.getInstance().getService(ContratoService.class, null);
ClienteService clienteService = (ClienteService) ServiceLocator.getInstance().getService(ClienteService.class, null);
FornecedorService fornecedorService = (FornecedorService) ServiceLocator.getInstance().getService(FornecedorService.class, null);
Collection colContratos = contratoService.list();
String bufferContratos = "<b" + UtilI18N.internacionaliza(request, "citcorpore.comum.acessoAosContratos") + ":</b> <br><table>";
if (colContratos != null) {
for (Iterator it = colContratos.iterator(); it.hasNext();) {
ContratoDTO contratoDto = (ContratoDTO) it.next();
if (contratoDto.getDeleted() == null || !contratoDto.getDeleted().equalsIgnoreCase("y")) {
String nomeCliente = "";
String nomeForn = "";
ClienteDTO clienteDto = new ClienteDTO();
clienteDto.setIdCliente(contratoDto.getIdCliente());
clienteDto = (ClienteDTO) clienteService.restore(clienteDto);
if (clienteDto != null) {
nomeCliente = clienteDto.getNomeRazaoSocial();
}
FornecedorDTO fornecedorDto = new FornecedorDTO();
fornecedorDto.setIdFornecedor(contratoDto.getIdFornecedor());
fornecedorDto = (FornecedorDTO) fornecedorService.restore(fornecedorDto);
if (fornecedorDto != null) {
nomeForn = fornecedorDto.getRazaoSocial();
}
String situacao = "";
if (contratoDto.getSituacao().equalsIgnoreCase("A")) {
situacao = UtilI18N.internacionaliza(request, "citcorpore.comum.situacaoAtiva");
}
if (contratoDto.getSituacao().equalsIgnoreCase("C")) {
situacao = UtilI18N.internacionaliza(request, "citcorpore.comum.situacaoCancelado");
}
if (contratoDto.getSituacao().equalsIgnoreCase("F")) {
situacao = UtilI18N.internacionaliza(request, "citcorpore.comum.situacaoFinalizado");
}
if (contratoDto.getSituacao().equalsIgnoreCase("P")) {
situacao = UtilI18N.internacionaliza(request, "citcorpore.comum.situacaoParalisado");
}
String checked = "";
// if (this.getEmpregadoBean().getIdContrato() != null){
// for(int i = 0; i < this.getEmpregadoBean().getIdContrato().length; i++){
// if (this.getEmpregadoBean().getIdContrato()[i].intValue() == contratoDto.getIdContrato().intValue()){
// checked = " checked=checked ";
// break;
// }
// }
// }
bufferContratos += "<tr>";
bufferContratos += "<td>";
bufferContratos += "<input type='checkbox' name='idContrato' id='idContrato_" + contratoDto.getIdContrato() + "' value='0" + contratoDto.getIdContrato() + "' " + checked
+ "/> N�mero: " + contratoDto.getNumero() + " de " + UtilDatas.convertDateToString(TipoDate.DATE_DEFAULT, contratoDto.getDataContrato(), WebUtil.getLanguage(request)) + " (" + nomeCliente + " - " + nomeForn + ") - " + situacao;
bufferContratos += "</td>";
bufferContratos += "</tr>";
}
}
}
bufferContratos += "</table>";
document.getElementById("fldListaContratos").setInnerHTML(bufferContratos);
document.getElementById("divListaContratos").setVisible(true);
}
}
/**
* Inclui novo Grupo.
*
* @param document
* @param request
* @param response
* @throws Exception
* @author thays.araujo
*/
public void save(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
GrupoDTO grupoDto = (GrupoDTO) document.getBean();
GrupoService grupoService = (GrupoService) ServiceLocator.getInstance().getService(GrupoService.class, null);
TipoFluxoService tipoFluxoService = (TipoFluxoService) ServiceLocator.getInstance().getService(TipoFluxoService.class, null);
ArrayList<TipoFluxoDTO> tiposFluxos = (ArrayList) tipoFluxoService.list();
ArrayList<PermissoesFluxoDTO> permissoesFluxos = new ArrayList<PermissoesFluxoDTO>();
if (tiposFluxos != null) {
for (Iterator it = tiposFluxos.iterator(); it.hasNext();) {
TipoFluxoDTO tipoFluxoDto = (TipoFluxoDTO) it.next();
PermissoesFluxoDTO permissoesFluxoDTO = new PermissoesFluxoDTO();
String criacao = request.getParameter("C_" + tipoFluxoDto.getIdTipoFluxo());
if (criacao == null) {
criacao = "N";
}
String execucao = request.getParameter("E_" + tipoFluxoDto.getIdTipoFluxo());
if (execucao == null) {
execucao = "N";
}
String delegar = request.getParameter("D_" + tipoFluxoDto.getIdTipoFluxo());
if (delegar == null) {
delegar = "N";
}
String suspensao = request.getParameter("S_" + tipoFluxoDto.getIdTipoFluxo());
if (suspensao == null) {
suspensao = "N";
}
String reativar = request.getParameter("R_" + tipoFluxoDto.getIdTipoFluxo());
if (reativar == null) {
reativar = "N";
}
String alterarSLA = request.getParameter("A_" + tipoFluxoDto.getIdTipoFluxo());
if (alterarSLA == null) {
alterarSLA = "N";
}
String reabrir = request.getParameter("X_" + tipoFluxoDto.getIdTipoFluxo());
if (reabrir == null) {
reabrir = "N";
}
String cancelar = request.getParameter("N_" + tipoFluxoDto.getIdTipoFluxo());
if (cancelar == null) {
cancelar = "N";
}
permissoesFluxoDTO.setIdTipoFluxo(tipoFluxoDto.getIdTipoFluxo());
permissoesFluxoDTO.setCriar(criacao);
permissoesFluxoDTO.setExecutar(execucao);
permissoesFluxoDTO.setDelegar(delegar);
permissoesFluxoDTO.setSuspender(suspensao);
permissoesFluxoDTO.setReativar(reativar);
permissoesFluxoDTO.setAlterarSLA(alterarSLA);
permissoesFluxoDTO.setReabrir(reabrir);
permissoesFluxoDTO.setCancelar(cancelar);
permissoesFluxos.add(permissoesFluxoDTO);
}
}
grupoDto.setPermissoesFluxos(permissoesFluxos);
if (grupoDto.getSigla() != null) {
grupoDto.setSigla(grupoDto.getSigla().trim());
}
boolean isCriado = false;
boolean isAlterado = false;
if (grupoDto.getIdGrupo() == null) {
if (grupoService.verificarSeGrupoExiste(grupoDto)) {
document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.registroJaCadastrado"));
} else {
grupoDto.setIdEmpresa(WebUtil.getIdEmpresa(request));
grupoService.create(grupoDto, request);
//document.executeScript("contEmpregado = 0;");
isCriado = true;
}
} else {
if (grupoService.verificarSeGrupoExiste(grupoDto)) {
document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.registroJaCadastrado"));
} else {
// for(GrupoEmpregadoDTO grupoempregadoaux : grupoempregado){
// }
//gravarEmail(document, request, response);
grupoService.update(grupoDto, request);
//document.executeScript("contEmpregado = 0;");
isAlterado = true;
}
}
document.executeScript("deleteAllRows()");
HTMLForm form = document.getForm("form");
form.clear();
document.executeScript("limpar_LOOKUP_GRUPO()");
document.executeScript("JANELA_AGUARDE_MENU.hide()");
if (isCriado) {
document.alert(UtilI18N.internacionaliza(request, "MSG05"));
}
if (isAlterado) {
document.alert(UtilI18N.internacionaliza(request, "MSG06"));
}
}
/**
* Recupera Grupo.
*
* @param document
* @param request
* @param response
* @throws Exception
* @author thays.araujo
*/
public void restore(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
GrupoDTO grupo = (GrupoDTO) document.getBean();
PerfilAcessoGrupoDTO perfilAcessoGrupoDTO = new PerfilAcessoGrupoDTO();
// GrupoEmpregadoDTO grupoEmpregadoDTO = new GrupoEmpregadoDTO();
GrupoService grupoService = (GrupoService) ServiceLocator.getInstance().getService(GrupoService.class, null);
// EmpregadoService empregadoService = (EmpregadoService) ServiceLocator.getInstance().getService(EmpregadoService.class, null);
PermissoesFluxoService permissoesFluxoService = (PermissoesFluxoService) ServiceLocator.getInstance().getService(PermissoesFluxoService.class, null);
PerfilAcessoGrupoService perfilAcessoGrupoService = (PerfilAcessoGrupoService) ServiceLocator.getInstance().getService(PerfilAcessoGrupoService.class, null);
GrupoEmailService grupoEmailService = (GrupoEmailService) ServiceLocator.getInstance().getService(GrupoEmailService.class, null);
GrupoEmpregadoService grupoEmpregadoService = (GrupoEmpregadoService) ServiceLocator.getInstance().getService(GrupoEmpregadoService.class, null);
grupo = (GrupoDTO) grupoService.restore(grupo);
perfilAcessoGrupoDTO.setIdGrupo(grupo.getIdGrupo());
// grupoEmpregadoDTO.setIdGrupo(grupo.getIdGrupo());
PerfilAcessoGrupoDTO perfilAcessoGrupo = perfilAcessoGrupoService.listByIdGrupo(perfilAcessoGrupoDTO);
this.preencherComboPerfilAcessoGrupo(document, request, response);
this.preencherComboTipoFluxo(document, request, response);
if (perfilAcessoGrupo != null) {
grupo.setIdPerfilAcessoGrupo(perfilAcessoGrupo.getIdPerfilAcessoGrupo());
}
document.executeScript("deleteAllRows();");
HTMLForm form = document.getForm("form");
form.clear();
//Collection<GrupoEmpregadoDTO> grupoDeEmpregados = (Collection<GrupoEmpregadoDTO>) grupoEmpregadoService.findGrupoAndEmpregadoByIdGrupo(grupo.getIdGrupo());
Collection<GrupoEmailDTO> grupoDeEmails = (Collection<GrupoEmailDTO>) grupoEmailService.findByIdGrupo(grupo.getIdGrupo());
Collection<PermissoesFluxoDTO> permissaoGrupo = (Collection<PermissoesFluxoDTO>) permissoesFluxoService.findByIdGrupo(grupo.getIdGrupo());
document.executeScript("contEmpregado = 0;");
document.executeScript("contEmail = 0;");
if (permissaoGrupo != null && !permissaoGrupo.isEmpty()) {
for (PermissoesFluxoDTO permissao : permissaoGrupo) {
if (permissao.getCriar() != null && permissao.getCriar().equalsIgnoreCase("S")) {
document.getCheckboxById("C_" + permissao.getIdTipoFluxo()).setChecked(true);
}
if (permissao.getExecutar() != null && permissao.getExecutar().equalsIgnoreCase("S")) {
document.getCheckboxById("E_" + permissao.getIdTipoFluxo()).setChecked(true);
}
if (permissao.getDelegar() != null && permissao.getDelegar().equalsIgnoreCase("S")) {
document.getCheckboxById("D_" + permissao.getIdTipoFluxo()).setChecked(true);
}
if (permissao.getSuspender() != null && permissao.getSuspender().equalsIgnoreCase("S")) {
document.getCheckboxById("S_" + permissao.getIdTipoFluxo()).setChecked(true);
}
if (permissao.getReativar() != null && permissao.getReativar().equalsIgnoreCase("S")) {
document.getCheckboxById("R_" + permissao.getIdTipoFluxo()).setChecked(true);
}
if (permissao.getAlterarSLA() != null && permissao.getAlterarSLA().equalsIgnoreCase("S")) {
document.getCheckboxById("A_" + permissao.getIdTipoFluxo()).setChecked(true);
}
if (permissao.getReabrir() != null && permissao.getReabrir().equalsIgnoreCase("S")) {
document.getCheckboxById("X_" + permissao.getIdTipoFluxo()).setChecked(true);
}
if (permissao.getCancelar() != null && permissao.getCancelar().equalsIgnoreCase("S")) {
document.getCheckboxById("N_" + permissao.getIdTipoFluxo()).setChecked(true);
}
}
}
//Insere elementos na tabela empregado
Integer itensPorPagina = Integer.parseInt(ParametroUtil.getValorParametroCitSmartHashMap(ParametroSistema.QUANT_RETORNO_PESQUISA, "10"));
Integer totalPaginas = grupoEmpregadoService.calculaTotalPaginas(itensPorPagina, grupo.getIdGrupo());
Integer paginaSelecionadaColaborador = grupo.getPaginaSelecionadaColaborador();
if (paginaSelecionadaColaborador == null) {
paginaSelecionadaColaborador = 1;
}
//if(totalPaginas>1){
paginacaoColaborador(totalPaginas,paginaSelecionadaColaborador,request, document);
//}
preencheTabelaColaborador(document, request, response);
if (grupoDeEmails != null && !grupoDeEmails.isEmpty()) {
for (GrupoEmailDTO grupoEmailBean : grupoDeEmails) {
if (grupoEmailBean.getIdEmpregado() == null) {
grupoEmailBean.setIdEmpregado(0);
}
document.executeScript("addLinhaTabelaEmail(" + grupoEmailBean.getIdEmpregado() + ", '" + StringEscapeUtils.escapeJavaScript(grupoEmailBean.getNome()) + "', '"
+ StringEscapeUtils.escapeJavaScript(grupoEmailBean.getEmail()) + "', " + false + ");");
document.executeScript("exibirGrid1();");
}
}
String COLABORADORES_VINC_CONTRATOS = ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.COLABORADORES_VINC_CONTRATOS, "N");
if (COLABORADORES_VINC_CONTRATOS == null) {
COLABORADORES_VINC_CONTRATOS = "N";
}
if (COLABORADORES_VINC_CONTRATOS.equalsIgnoreCase("S")) {
ContratosGruposService contratosGruposService = (ContratosGruposService) ServiceLocator.getInstance().getService(ContratosGruposService.class, null);
Collection col = contratosGruposService.findByIdGrupo(grupo.getIdGrupo());
if (col != null && col.size() > 0) {
for (Iterator it = col.iterator(); it.hasNext();) {
ContratosGruposDTO contratosGruposDTO = (ContratosGruposDTO) it.next();
document.getCheckboxById("idContrato_" + contratosGruposDTO.getIdContrato()).setValue("0" + contratosGruposDTO.getIdContrato());
}
}
}
form.setValues(grupo);
document.executeScript("JANELA_AGUARDE_MENU.hide()");
}
/**
* Exclui Grupo atribuindo sua data fim em Grupo.
*
* @param document
* @param request
* @param response
* @throws Exception
* @author thays.araujo
*/
public void delete(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
GrupoDTO grupo = (GrupoDTO) document.getBean();
GrupoService grupoService = (GrupoService) ServiceLocator.getInstance().getService(GrupoService.class, WebUtil.getUsuarioSistema(request));
if (grupo.getIdGrupo().intValue() > 0) {
grupoService.delete(grupo, document);
}
}
/**
* Exclui Grupo atribuindo sua data fim em Grupo.
*
* @param document
* @param request
* @param response
* @throws Exception
* @author thays.araujo
*/
public void deleteEmpregado(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
GrupoDTO grupo = (GrupoDTO) document.getBean();
if (!grupo.getAllEmpregadosCheckados().equals("")){
grupo.setColEmpregadoCheckado(grupo.getAllEmpregadosCheckados());
} else {
grupo.setColEmpregadoCheckado(null);
}
GrupoEmpregadoDTO grupoEmpregadoDTO = new GrupoEmpregadoDTO();
GrupoEmpregadoService grupoEmpregadoService = (GrupoEmpregadoService) ServiceLocator.getInstance().getService(GrupoEmpregadoService.class, null);
Integer idGrupo = grupo.getIdGrupo();
// Verifica-se se h� empregadosCheckados caso haja faz-se um for para excluir um a um!
if (grupo.getColEmpregadoCheckado() != null && grupo.getColEmpregadoCheckado().length >= 1){
Integer count = 0;
for (String empregadoCheckado : grupo.getColEmpregadoCheckado()){
ResultResponsaveisDTO resultResponsaveisDto = new ResultResponsaveisDTO();
Integer idEmpregado = Integer.parseInt(empregadoCheckado);
grupoEmpregadoDTO.setIdGrupo(idGrupo);
grupoEmpregadoDTO.setIdEmpregado(idEmpregado);
Collection<GrupoEmpregadoDTO> colGrupoEmpregadoDTO = grupoEmpregadoService.verificacaoResponsavelPorSolicitacao(grupoEmpregadoDTO.getIdGrupo(), grupoEmpregadoDTO.getIdEmpregado());
if (colGrupoEmpregadoDTO == null || colGrupoEmpregadoDTO.isEmpty()){
if (grupo.getIdGrupo() != null && grupo.getIdGrupo().intValue() > 0) {
grupoEmpregadoService.deleteByIdGrupoAndEmpregado(idGrupo, idEmpregado);
count++;
}
} else {
//Informar individualmente o colaborador que n�o pode ser excluido
resultResponsaveisDto.setResultado(true);
for (GrupoEmpregadoDTO grupoEmpregado : colGrupoEmpregadoDTO){
resultResponsaveisDto.concatMensagem(UtilI18N.internacionaliza(request, "grupo.oColaborador") + grupoEmpregado.getNomeEmpregado());
resultResponsaveisDto.concatMensagem(UtilI18N.internacionaliza (request, "grupo.naoPodeExcluir"));
document.alert(resultResponsaveisDto.getMensagem());
break;
}
}
}
if (count > 0)
document.alert(UtilI18N.internacionaliza(request,"grupo.empregados.excluidosSucesso"));
} else {
document.alert(UtilI18N.internacionaliza(request,"grupo.empregados.naoSelecionado"));
}
document.executeScript("document.form.AllEmpregadosCheckados.value = ''");
document.executeScript("empregadosCheckados = ''");
preencheTabelaColaborador(document, request, response);
}
public void deleteTodosEmpregados(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
GrupoDTO grupo = (GrupoDTO) document.getBean();
GrupoEmpregadoDTO grupoEmpregadoDTO = new GrupoEmpregadoDTO();
GrupoEmpregadoService grupoEmpregadoService = (GrupoEmpregadoService) ServiceLocator.getInstance().getService(GrupoEmpregadoService.class, null);
Integer idGrupo = grupo.getIdGrupo();
Collection<GrupoEmpregadoDTO> colGrupoEmpregadoDTO = grupoEmpregadoService.findByIdGrupo(idGrupo);
if (colGrupoEmpregadoDTO != null && !colGrupoEmpregadoDTO.isEmpty()){
Integer count = 0;
for (GrupoEmpregadoDTO grupoEmpregado : colGrupoEmpregadoDTO){
ResultResponsaveisDTO resultResponsaveisDto = new ResultResponsaveisDTO();
grupoEmpregadoDTO.setIdGrupo(idGrupo);
grupoEmpregadoDTO.setIdEmpregado(grupoEmpregado.getIdEmpregado());
Collection<GrupoEmpregadoDTO> colGrupoEmpregadoResponsaveis = grupoEmpregadoService.verificacaoResponsavelPorSolicitacao(grupoEmpregado.getIdGrupo(), grupoEmpregado.getIdEmpregado());
if (colGrupoEmpregadoResponsaveis == null || colGrupoEmpregadoResponsaveis.isEmpty()){
if (grupo.getIdGrupo() != null && grupo.getIdGrupo().intValue() > 0) {
grupoEmpregadoService.deleteByIdGrupoAndEmpregado(grupoEmpregadoDTO.getIdGrupo(), grupoEmpregadoDTO.getIdEmpregado());
count++;
}
} else {
//Informar individualmente o colaborador que n�o pode ser excluido
resultResponsaveisDto.setResultado(true);
for (GrupoEmpregadoDTO grupoEmpregadoResponsavel : colGrupoEmpregadoResponsaveis){
resultResponsaveisDto.concatMensagem(UtilI18N.internacionaliza(request, "grupo.oColaborador") + grupoEmpregadoResponsavel.getNomeEmpregado()+" , ");
resultResponsaveisDto.concatMensagem(UtilI18N.internacionaliza (request, "grupo.naoPodeExcluir"));
document.alert(resultResponsaveisDto.getMensagem());
break;
}
}
}
if (count > 0)
document.alert(UtilI18N.internacionaliza(request,"grupo.empregados.excluidosSucesso"));
} else {
document.alert(UtilI18N.internacionaliza(request,"grupo.empregados.naoSelecionado"));
}
document.executeScript("document.form.AllEmpregadosCheckados.value = ''");
document.executeScript("empregadosCheckados = ''");
preencheTabelaColaborador(document, request, response);
}
public void deleteEmail(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
GrupoDTO grupo = (GrupoDTO) document.getBean();
GrupoEmailDTO grupoEmailDTO = new GrupoEmailDTO();
GrupoEmailDao grupoEmailDao = new GrupoEmailDao();
Integer idGrupo = grupo.getIdGrupo();
String idEmailAux = request.getParameter("emailGrupos");
String email = idEmailAux;
grupoEmailDTO.setIdGrupo(idGrupo);
grupoEmailDTO.setEmail(email);
if (grupo.getIdGrupo() != null && grupo.getIdGrupo().intValue() > 0) {
grupoEmailDao.deleteByIdGrupoAndEmail(idGrupo, email);
}
document.alert(UtilI18N.internacionaliza(request, "MSG07"));
}
/**
* Preenche a combo PerfilAcesso.
*
* @param document
* @param request
* @param response
* @throws Exception
* @author thays.araujo
*/
private void preencherComboPerfilAcessoGrupo(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
PerfilAcessoService perfilAcessoService = (PerfilAcessoService) ServiceLocator.getInstance().getService(PerfilAcessoService.class, null);
HTMLSelect comboPerfilAcessoGrupo = (HTMLSelect) document.getSelectById("idPerfilAcessoGrupo");
ArrayList<PerfilAcessoDTO> perfilAcessos = (ArrayList) perfilAcessoService.list();
inicializarCombo(comboPerfilAcessoGrupo, request);
for (PerfilAcessoDTO perfilAcessoDto : perfilAcessos) {
if (perfilAcessoDto.getDataFim() == null) {
System.out.println(perfilAcessoDto.getNomePerfilAcesso());
comboPerfilAcessoGrupo.addOption(perfilAcessoDto.getIdPerfilAcesso().toString(), StringEscapeUtils.escapeJavaScript(perfilAcessoDto.getNomePerfilAcesso()));
}
}
}
/**
* Preenche a combo PerfilAcesso.
*
* @param document
* @param request
* @param response
* @throws Exception
* @author thays.araujo
*/
private void preencherComboTipoFluxo(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
TipoFluxoService tipoFluxoService = (TipoFluxoService) ServiceLocator.getInstance().getService(TipoFluxoService.class, null);
HTMLSelect ComboTipoFluxo = (HTMLSelect) document.getSelectById("idTipoFluxo");
ArrayList<TipoFluxoDTO> tiposFluxos = (ArrayList) tipoFluxoService.list();
inicializarCombo(ComboTipoFluxo, request);
for (TipoFluxoDTO tipoFluxo : tiposFluxos) {
ComboTipoFluxo.addOption(tipoFluxo.getIdTipoFluxo().toString(), StringEscapeUtils.escapeJavaScript(tipoFluxo.getNomeFluxo()));
}
}
/**
* Iniciliza combo.
*
* @param componenteCombo
* @author thays.araujo
*/
private void inicializarCombo(HTMLSelect componenteCombo, HttpServletRequest request) {
componenteCombo.removeAllOptions();
componenteCombo.addOption("", UtilI18N.internacionaliza(request, "citcorpore.comum.selecione"));
}
public void preencheTabelaColaborador(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
GrupoDTO grupo = (GrupoDTO) document.getBean();
GrupoEmpregadoService grupoEmpregadoService = (GrupoEmpregadoService) ServiceLocator.getInstance().getService(GrupoEmpregadoService.class, null);
Integer itensPorPagina = Integer.parseInt(ParametroUtil.getValorParametroCitSmartHashMap(ParametroSistema.QUANT_RETORNO_PESQUISA, "10"));
Integer totalPaginas = grupoEmpregadoService.calculaTotalPaginas(itensPorPagina, grupo.getIdGrupo());
Integer paginaSelecionadaColaborador = grupo.getPaginaSelecionadaColaborador();
if (paginaSelecionadaColaborador == null) {
paginaSelecionadaColaborador = 1;
}
//Insere a pagina�ao
//if(totalPaginas>1){
paginacaoColaborador(totalPaginas,paginaSelecionadaColaborador,request, document);
//}
//Elementos paginados
Collection<GrupoEmpregadoDTO> grupoDeEmpregadostes = (Collection<GrupoEmpregadoDTO>) grupoEmpregadoService.paginacaoGrupoEmpregado(grupo.getIdGrupo(),paginaSelecionadaColaborador,itensPorPagina);
document.executeScript("deleteEmpregadoRows()");
if (grupoDeEmpregadostes != null && !grupoDeEmpregadostes.isEmpty()) {
for (GrupoEmpregadoDTO grupoEmpregadoDto : grupoDeEmpregadostes) {
document.executeScript("addLinhaTabelaEmpregado(" + grupoEmpregadoDto.getIdEmpregado() + ", '" + StringEscapeUtils.escapeJavaScript(grupoEmpregadoDto.getNomeEmpregado()) + "', "
+ false + ", " + (grupoEmpregadoDto.getEnviaEmail() != null && grupoEmpregadoDto.getEnviaEmail().equalsIgnoreCase("S")) + " );");
document.executeScript("exibirGrid();");
}
//Focus na tabela
document.executeScript("document.getElementById('tabelaEmpregado').scrollIntoView(true);");
document.executeScript("memoriaEmpregadosCheckados();");
}
}
//Insere os elementos de pagina��o
public void paginacaoColaborador(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='itenPaginacaoColaborador' class='pagination pagination-right margin-none' > ");
sb.append(" <ul>");
sb.append(" <li " + (paginaSelecionada == 1 ? "class='disabled'" : "value='1' onclick='paginarItens(this.value);'") + " ><font style='background-color: #E6ECEF; background-position: 100px; border-color: #E6ECEF; border: #B6B6B6; border-width: 1px; border-style: solid;'><a href='#'>"+UtilI18N.internacionaliza(request, "citcorpore.comum.primeiro")+"</a></li></font>");
sb.append(" <li " + ((totalPaginas == 1 || paginaSelecionada == 1) ? "class='disabled'" : "value='"+(paginaSelecionada-1)+"' onclick='paginarItens(this.value);'") + "><font style='background-color: #E6ECEF; border-color: #E6ECEF; border: #B6B6B6; border-width: 1px; border-style: solid;'><a href='#'>"+UtilI18N.internacionaliza(request, "citcorpore.comum.anterior")+"</a></li></font>");
if(totalPaginas <= 5) {
for (int i = 1; i <= totalPaginas; i++) {
if (i == paginaSelecionada) {
sb.append("<li id='"+i+"' value='"+i+"' onclick='paginarItens(this.value);'><font style='background-color: #E6ECEF; background-position: 100px; border-color: #E6ECEF; border: #B6B6B6; border-width: 1px; border-style: solid;'><a href='#'>"+i+"</a></li></font>");
} else {
sb.append("<li id='"+i+"' value='"+i+"' onclick='paginarItens(this.value);'><font style='background-color: #E6ECEF; background-position: 100px; border-color: #E6ECEF; border: #B6B6B6; border-width: 1px; border-style: solid;'><a href='#'>"+i+"</a></li></font> " );
}
}
} 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);'><font style='background-color: #E6ECEF; background-position: 100px; border-color: #E6ECEF; border: #B6B6B6; border-width: 1px; border-style: solid;'><a href='#'>"+i+"</a></li></font> ");
} else {
sb.append("<li id='"+i+"' value='"+i+"' onclick='paginarItens(this.value);'><font style='background-color: #E6ECEF; background-position: 100px; border-color: #E6ECEF; border: #B6B6B6; border-width: 1px; border-style: solid;'><a href='#'>"+i+"</a></li></font> " );
}
}
} 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);'><font style='background-color: #E6ECEF; background-position: 100px; border-color: #E6ECEF; border: #B6B6B6; border-width: 1px; border-style: solid;'><a href='#'>"+i+"</a></li></font> ");
} else {
sb.append("<li id='"+i+"' value='"+i+"' onclick='paginarItens(this.value);'><font style='background-color: #E6ECEF; background-position: 100px; border-color: #E6ECEF; border: #B6B6B6; border-width: 1px; border-style: solid;'><a href='#'>"+i+"</a></li></font> ");
}
}
} 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);'><font style='background-color: #E6ECEF; background-position: 100px; border-color: #E6ECEF; border: #B6B6B6; border-width: 1px; border-style: solid;'><a href='#'>"+i+"</a></li></font> ");
} else {
sb.append("<li id='"+i+"' value='"+i+"' onclick='paginarItens(this.value);'><font style='background-color: #E6ECEF; background-position: 100px; border-color: #E6ECEF; border: #B6B6B6; border-width: 1px; border-style: solid;'><a href='#'>"+i+"</a></li></font> ");
}
}
}
}
}
sb.append(" <li " + ((totalPaginas == 1 || paginaSelecionada.equals(totalPaginas)) ? "class='disabled'" : "value='"+(paginaSelecionada+1)+"' onclick='paginarItens(this.value);'") + " ><font style='background-color: #E6ECEF; border-color: #E6ECEF; border: #B6B6B6; border-width: 1px; border-style: solid;'><a href='#'>"+UtilI18N.internacionaliza(request, "citcorpore.comum.proximo")+"</a></li></font>");
sb.append(" <li id='"+totalPaginas+"' value='"+totalPaginas+"' onclick='paginarItens(this.value);'><font style='background-color: #E6ECEF; border-color: #E6ECEF; border: #B6B6B6; border-width: 1px; border-style: solid;'><a href='#'>"+UtilI18N.internacionaliza(request, "citcorpore.comum.ultimo")+"</a></li></font>");
sb.append(" </ul>");
sb.append(" </div>");
}
divPrincipal.setInnerHTML(sb.toString());
}
//Manipula dados do empregado
public void manipulaEmpregado(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
GrupoDTO grupo = (GrupoDTO) document.getBean();
GrupoEmpregadoDTO grupoEmpregadoDTO = new GrupoEmpregadoDTO();
GrupoEmpregadoService grupoEmpregadoService = (GrupoEmpregadoService) ServiceLocator.getInstance().getService(GrupoEmpregadoService.class, null);
String idEmpregadoAux = request.getParameter("iddEmpregado");
String descEmpregado = UtilStrings.decodeCaracteresEspeciais(request.getParameter("descEmpregado"));
Integer idEmpregado = Integer.parseInt(idEmpregadoAux);
//verifica se est� criando ou incluindo empregado
if (grupo.getIdGrupo() != null) {
//verifica se existe empregado ao grupo
if (!grupoEmpregadoService.grupoempregado(idEmpregado,grupo.getIdGrupo())) {
grupoEmpregadoDTO.setIdGrupo(grupo.getIdGrupo());
grupoEmpregadoDTO.setIdEmpregado(idEmpregado);
grupoEmpregadoService.create(grupoEmpregadoDTO);
document.executeScript("addLinhaTabelaEmpregado('"+ idEmpregado + "','" + descEmpregado + "'," + true + " , false);");
} else {
document.alert(UtilI18N.internacionaliza(request,"citcorpore.comum.registroJaAdicionado"));
}
} else{
//Quando n�o tem o grupo apenas adiciona a linha
document.executeScript("addLinhaTabelaEmpregado('"+ idEmpregado + "','" + descEmpregado + "'," + true + ", false);");
}
}
//Manipula email
public void gravarEmail(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
GrupoDTO grupo = (GrupoDTO) document.getBean();
GrupoEmpregadoDTO grupoEmpregadoDTO = new GrupoEmpregadoDTO();
GrupoEmpregadoService grupoEmpregadoService = (GrupoEmpregadoService) ServiceLocator.getInstance().getService(GrupoEmpregadoService.class, null);
if (grupo.getIdGrupo() != null) {
//Elementos que est�o na tabela da pagina selecionada e setando se envia email
Collection <GrupoEmpregadoDTO> grupoempregado = br.com.citframework.util.WebUtil.deserializeCollectionFromRequest(GrupoEmpregadoDTO.class, "empregadosSerializadosAux", request);
if(grupoempregado!=null){
for(GrupoEmpregadoDTO grupoempregadoaux : grupoempregado){
if(grupoempregadoaux!=null){
grupoEmpregadoService.deleteByIdGrupoAndEmpregado(grupo.getIdGrupo(),grupoempregadoaux.getIdEmpregado());
grupoEmpregadoDTO.setIdEmpregado(grupoempregadoaux.getIdEmpregado());
grupoEmpregadoDTO.setIdGrupo(grupo.getIdGrupo());
grupoEmpregadoDTO.setEnviaEmail(grupoempregadoaux.getEnviaEmail());
grupoEmpregadoService.create(grupoEmpregadoDTO);
}
}
}
}
}
public Class getBeanClass() {
return GrupoDTO.class;
}
}