package br.com.centralit.citcorpore.rh.ajaxForms;
import java.util.ArrayList;
import java.util.Collection;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang.StringEscapeUtils;
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.citajax.html.HTMLSelect;
import br.com.centralit.citajax.html.HTMLTable;
import br.com.centralit.citcorpore.rh.bean.AtitudeIndividualDTO;
import br.com.centralit.citcorpore.rh.bean.AtribuicaoResponsabilidadeDTO;
import br.com.centralit.citcorpore.rh.bean.CertificacaoDTO;
import br.com.centralit.citcorpore.rh.bean.CursoDTO;
import br.com.centralit.citcorpore.rh.bean.DescricaoAtribuicaoResponsabilidadeDTO;
import br.com.centralit.citcorpore.rh.bean.HistManualFuncaoDTO;
import br.com.centralit.citcorpore.rh.bean.IdiomaDTO;
import br.com.centralit.citcorpore.rh.bean.ManualCompetenciaTecnicaDTO;
import br.com.centralit.citcorpore.rh.bean.ManualFuncaoCompetenciaDTO;
import br.com.centralit.citcorpore.rh.bean.ManualFuncaoComplexidadeDTO;
import br.com.centralit.citcorpore.rh.bean.ManualFuncaoDTO;
import br.com.centralit.citcorpore.rh.integracao.HistManualFuncaoDao;
import br.com.centralit.citcorpore.rh.negocio.AtitudeIndividualService;
import br.com.centralit.citcorpore.rh.negocio.DescricaoAtribuicaoResponsabilidadeService;
import br.com.centralit.citcorpore.rh.negocio.IdiomaService;
import br.com.centralit.citcorpore.rh.negocio.ManualFuncaoCompetenciaService;
import br.com.centralit.citcorpore.rh.negocio.ManualFuncaoComplexidadeService;
import br.com.centralit.citcorpore.rh.negocio.ManualFuncaoService;
import br.com.centralit.citcorpore.util.WebUtil;
import br.com.citframework.service.ServiceLocator;
import br.com.citframework.util.UtilI18N;
@SuppressWarnings({"rawtypes", "unchecked"})
public class ManualFuncao extends AjaxFormAction {
@Override
public void load(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
WebUtil.validarSeUsuarioEstaNaSessao(request, document);
// Carregamaneto combobox Perspectiva Complexidade
preencherComboNivel(document, request, response);
// Carregamaneto combobox Perspectiva Tecnica - Requisitos de Acesso
preencherComboIdiomaRA(document, request, response);
// Carregamaneto combobox Perspectiva Tecnica - Requisitos da Fun��o
preencherComboIdiomaRF(document, request, response);
// Carregamaneto combobox Compet�ncia Tecnica
preencherComboCompetenciasAcesso(document, request, response);
preencherComboCompetenciasFuncao(document, request, response);
}
public void save(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
final ManualFuncaoDTO manualDto = (ManualFuncaoDTO) document.getBean();
final ManualFuncaoService manualService = (ManualFuncaoService) ServiceLocator.getInstance().getService(
ManualFuncaoService.class, WebUtil.getUsuarioSistema(request));
final Collection colResponsabilidades = br.com.citframework.util.WebUtil.deserializeCollectionFromRequest(
AtribuicaoResponsabilidadeDTO.class, "colResponsabilidades_Serialize", request);
final Collection colCertificacoesRA = br.com.citframework.util.WebUtil.deserializeCollectionFromRequest(
CertificacaoDTO.class, "colCertificacoes_Serialize", request);
final Collection colCursosRA = br.com.citframework.util.WebUtil.deserializeCollectionFromRequest(
CursoDTO.class, "colCursos_Serialize", request);
final Collection colCertificacoesRF = br.com.citframework.util.WebUtil.deserializeCollectionFromRequest(
CertificacaoDTO.class, "colCertificacoesRF_Serialize", request);
final Collection colCursosRF = br.com.citframework.util.WebUtil.deserializeCollectionFromRequest(
CursoDTO.class, "colCursosRF_Serialize", request);
final Collection colCompetencias = br.com.citframework.util.WebUtil.deserializeCollectionFromRequest(
ManualCompetenciaTecnicaDTO.class, "colCompetencias_Serialize", request);
final Collection colPerspectivaComportamental = br.com.citframework.util.WebUtil
.deserializeCollectionFromRequest(AtitudeIndividualDTO.class, "colPerspectivaComportamental_Serialize",
request);
manualDto.setColAtribuicaoResponsabilidadeDTO(colResponsabilidades);
manualDto.setColCertificacaoDTORA(colCertificacoesRA);
manualDto.setColCursoDTORA(colCursosRA);
manualDto.setColCertificacaoDTORF(colCertificacoesRF);
manualDto.setColCursoDTORF(colCursosRF);
manualDto.setColCompetenciaTecnicaDTO(colCompetencias);
manualDto.setColPerspectivaComportamentalDTO(colPerspectivaComportamental);
if (manualDto.getIdManualFuncao() == null || manualDto.getIdManualFuncao().intValue() == 0) {
manualService.create(manualDto);
document.alert(UtilI18N.internacionaliza(request, "MSG05"));
} else {
manualService.update(manualDto);
document.alert(UtilI18N.internacionaliza(request, "MSG06"));
}
// Gravar historico
final HistManualFuncaoDTO histManualFuncao = manualService.createHistManualFuncao(manualDto);
manualService.createHistAtribuicaoResponsabilidade(manualDto, histManualFuncao.getIdhistManualFuncao());
manualService.createHistPerspectivaComportamental(manualDto, histManualFuncao.getIdhistManualFuncao());
manualService.createHistManualCompetenciaTecnica(manualDto, histManualFuncao.getIdhistManualFuncao());
manualService.createHistManualCurso(manualDto, histManualFuncao.getIdhistManualFuncao());
manualService.createHistManualCertificacao(manualDto, histManualFuncao.getIdhistManualFuncao());
final HTMLForm form = document.getForm("form");
form.clear();
document.executeScript("limparDados();");
}
private void preencherComboNivel(DocumentHTML document, HttpServletRequest request, HttpServletResponse response)
throws Exception {
final HTMLSelect cmbJustificativa = document.getSelectById("idNivel");
if (cmbJustificativa != null) {
final ManualFuncaoComplexidadeService complexidadeService = (ManualFuncaoComplexidadeService) ServiceLocator
.getInstance().getService(ManualFuncaoComplexidadeService.class, null);
final ArrayList<ManualFuncaoComplexidadeDTO> manualFuncaoComplexidade = (ArrayList<ManualFuncaoComplexidadeDTO>) complexidadeService
.listAtivos();
inicializarCombo(cmbJustificativa, request);
for (final ManualFuncaoComplexidadeDTO complexidadeDto : manualFuncaoComplexidade) {
cmbJustificativa.addOption(complexidadeDto.getIdComplexidade().toString(),
StringEscapeUtils.escapeJavaScript(complexidadeDto.getDescricao()));
}
}
}
private void preencherComboIdiomaRA(DocumentHTML document, HttpServletRequest request, HttpServletResponse response)
throws Exception {
final HTMLSelect comboIdioma = document.getSelectById("idIdiomaRA");
if (comboIdioma != null) {
inicializarCombo(comboIdioma, request);
final IdiomaService idiomaService = (IdiomaService) ServiceLocator.getInstance().getService(
IdiomaService.class, null);
final HTMLSelect cmbIdioma = document.getSelectById("idIdiomaRA");
final Collection<IdiomaDTO> idiomaDto = idiomaService.list();
inicializarCombo(cmbIdioma, request);
for (final IdiomaDTO idiomaDto2 : idiomaDto) {
cmbIdioma.addOption(idiomaDto2.getIdIdioma().toString(),
StringEscapeUtils.escapeJavaScript(idiomaDto2.getDescricao()));
}
}
}
private void preencherComboIdiomaRF(DocumentHTML document, HttpServletRequest request, HttpServletResponse response)
throws Exception {
final HTMLSelect comboIdioma = document.getSelectById("idIdiomaRF");
if (comboIdioma != null) {
inicializarCombo(comboIdioma, request);
final IdiomaService idiomaService = (IdiomaService) ServiceLocator.getInstance().getService(
IdiomaService.class, null);
final HTMLSelect cmbIdioma = document.getSelectById("idIdiomaRF");
final Collection<IdiomaDTO> idiomaDto = idiomaService.list();
inicializarCombo(cmbIdioma, request);
for (final IdiomaDTO idiomaDto2 : idiomaDto) {
cmbIdioma.addOption(idiomaDto2.getIdIdioma().toString(),
StringEscapeUtils.escapeJavaScript(idiomaDto2.getDescricao()));
}
}
}
private void preencherComboCompetenciasAcesso(DocumentHTML document, HttpServletRequest request,
HttpServletResponse response) throws Exception {
final HTMLSelect cmbCompetencia = document.getSelectById("idNivelCompetenciaAcesso");
if (cmbCompetencia != null) {
final ManualFuncaoCompetenciaService competenciaService = (ManualFuncaoCompetenciaService) ServiceLocator
.getInstance().getService(ManualFuncaoCompetenciaService.class, null);
final ArrayList<ManualFuncaoCompetenciaDTO> competencia = (ArrayList<ManualFuncaoCompetenciaDTO>) competenciaService
.listAtivos();
inicializarCombo(cmbCompetencia, request);
for (final ManualFuncaoCompetenciaDTO competenciaDto : competencia) {
cmbCompetencia.addOption(competenciaDto.getIdNivelCompetencia().toString(),
StringEscapeUtils.escapeJavaScript(competenciaDto.getDescricao()));
}
}
}
private void preencherComboCompetenciasFuncao(DocumentHTML document, HttpServletRequest request,
HttpServletResponse response) throws Exception {
final HTMLSelect cmbCompetencia = document.getSelectById("idNivelCompetenciaFuncao");
if (cmbCompetencia != null) {
inicializarCombo(cmbCompetencia, request);
final ManualFuncaoCompetenciaService competenciaService = (ManualFuncaoCompetenciaService) ServiceLocator
.getInstance().getService(ManualFuncaoCompetenciaService.class, null);
final ArrayList<ManualFuncaoCompetenciaDTO> competencia = (ArrayList<ManualFuncaoCompetenciaDTO>) competenciaService
.listAtivos();
inicializarCombo(cmbCompetencia, request);
for (final ManualFuncaoCompetenciaDTO competenciaDto : competencia) {
cmbCompetencia.addOption(competenciaDto.getIdNivelCompetencia().toString(),
StringEscapeUtils.escapeJavaScript(competenciaDto.getDescricao()));
}
}
}
private void inicializarCombo(HTMLSelect componenteCombo, HttpServletRequest request) {
componenteCombo.removeAllOptions();
componenteCombo.addOption("", UtilI18N.internacionaliza(request, "citcorpore.comum.selecione"));
}
public void gravarManualFuncaoComplexidade(DocumentHTML document, HttpServletRequest request,
HttpServletResponse response) throws Exception {
final ManualFuncaoDTO manualDto = (ManualFuncaoDTO) document.getBean();
if (manualDto.getDescricaoPerspectivaComplexidade().isEmpty()) {
document.alert("Campo vazio.");
return;
}
final DescricaoAtribuicaoResponsabilidadeDTO descricaoAtribuicao = new DescricaoAtribuicaoResponsabilidadeDTO();
descricaoAtribuicao.setSituacao("A");
descricaoAtribuicao.setDescricao(manualDto.getDescricaoPerspectivaComplexidade());
final DescricaoAtribuicaoResponsabilidadeService descricaoService = (DescricaoAtribuicaoResponsabilidadeService) ServiceLocator
.getInstance().getService(DescricaoAtribuicaoResponsabilidadeService.class,
WebUtil.getUsuarioSistema(request));
final Collection colecaoDescricaoAux = descricaoService.findByNome(descricaoAtribuicao.getDescricao());
if (colecaoDescricaoAux != null && !colecaoDescricaoAux.isEmpty()) {
document.alert("Registro j� existe!");
} else {
descricaoService.create(descricaoAtribuicao);
document.alert(UtilI18N.internacionaliza(request, "MSG05"));
}
}
public void gravarComportamento(DocumentHTML document, HttpServletRequest request, HttpServletResponse response)
throws Exception {
final ManualFuncaoDTO manualDto = (ManualFuncaoDTO) document.getBean();
if (manualDto.getComportamento().isEmpty()) {
document.alert("Campo vazio.");
return;
}
final AtitudeIndividualDTO atitudeIndividual = new AtitudeIndividualDTO();
atitudeIndividual.setDescricao(manualDto.getComportamento());
final AtitudeIndividualService atitudeIndividualService = (AtitudeIndividualService) ServiceLocator
.getInstance().getService(AtitudeIndividualService.class, WebUtil.getUsuarioSistema(request));
final Collection colecaoDescricaoAux = atitudeIndividualService.findByNome(atitudeIndividual.getDescricao());
if (colecaoDescricaoAux != null && !colecaoDescricaoAux.isEmpty()) {
document.alert("Registro j� existe!");
} else {
atitudeIndividualService.create(atitudeIndividual);
document.alert(UtilI18N.internacionaliza(request, "MSG05"));
}
}
public void restore(DocumentHTML document, HttpServletRequest request, HttpServletResponse response)
throws Exception {
ManualFuncaoDTO manualFuncaoDto = (ManualFuncaoDTO) document.getBean();
final ManualFuncaoService manualService = (ManualFuncaoService) ServiceLocator.getInstance().getService(
ManualFuncaoService.class, WebUtil.getUsuarioSistema(request));
final HistManualFuncaoDao historicoFuncaoDao = new HistManualFuncaoDao();
manualFuncaoDto = (ManualFuncaoDTO) manualService.restore(manualFuncaoDto);
final HTMLForm form = document.getForm("form");
form.clear();
form.setValues(manualFuncaoDto);
// tratamento para atribuicaoresponsabilidade
final HTMLTable tblResponsabilidades = document.getTableById("tblResponsabilidades");
tblResponsabilidades.deleteAllRows();
if (manualFuncaoDto.getColAtribuicaoResponsabilidadeDTO() != null
&& !manualFuncaoDto.getColAtribuicaoResponsabilidadeDTO().isEmpty()) {
tblResponsabilidades.addRowsByCollection(manualFuncaoDto.getColAtribuicaoResponsabilidadeDTO(),
new String[] {"descricaoPerspectivaComplexidade", "idNivel", ""}, null,
"J� existe registrado esta demanda na tabela", new String[] {"gerarButtonDeleteResponsabilidade"},
null, null);
}
// tratamento para certificados
final HTMLTable tblCertificacaoRA = document.getTableById("tblCertificacoesRA");
tblCertificacaoRA.deleteAllRows();
if (manualFuncaoDto.getColCertificacaoDTORA() != null && !manualFuncaoDto.getColCertificacaoDTORA().isEmpty()) {
tblCertificacaoRA.addRowsByCollection(manualFuncaoDto.getColCertificacaoDTORA(), new String[] {"descricao",
""}, null, "J� existe registrado esta demanda na tabela",
new String[] {"gerarButtonDeleteCertificacao"}, null, null);
}
final HTMLTable tblCertificacaoRF = document.getTableById("tblCertificacoesRF");
tblCertificacaoRF.deleteAllRows();
if (manualFuncaoDto.getColCertificacaoDTORF() != null && !manualFuncaoDto.getColCertificacaoDTORF().isEmpty()) {
tblCertificacaoRF.addRowsByCollection(manualFuncaoDto.getColCertificacaoDTORF(), new String[] {"descricao",
""}, null, "J� existe registrado esta demanda na tabela",
new String[] {"gerarButtonDeleteCertificacaoRF"}, null, null);
}
// tratamento para cursos
final HTMLTable tblCursoRA = document.getTableById("tblCursosRA");
tblCursoRA.deleteAllRows();
if (manualFuncaoDto.getColCursoDTORA() != null && !manualFuncaoDto.getColCursoDTORA().isEmpty()) {
tblCursoRA.addRowsByCollection(manualFuncaoDto.getColCursoDTORA(), new String[] {"descricao", ""}, null,
"J� existe registrado esta demanda na tabela", new String[] {"gerarButtonDeleteCurso"}, null, null);
}
final HTMLTable tblCursoRF = document.getTableById("tblCursoRF");
tblCursoRF.deleteAllRows();
if (manualFuncaoDto.getColCursoDTORF() != null && !manualFuncaoDto.getColCursoDTORF().isEmpty()) {
tblCursoRF.addRowsByCollection(manualFuncaoDto.getColCursoDTORF(), new String[] {"descricao", ""}, null,
"J� existe registrado esta demanda na tabela", new String[] {"gerarButtonDeleteCursoRF"}, null,
null);
}
// tratamento para competencias
final HTMLTable tblCompetencias = document.getTableById("tblCompetencias");
tblCompetencias.deleteAllRows();
final Collection<ManualCompetenciaTecnicaDTO> colCompetencias = manualFuncaoDto.getColCompetenciaTecnicaDTO();
if (manualFuncaoDto.getColCompetenciaTecnicaDTO() != null
&& !manualFuncaoDto.getColCompetenciaTecnicaDTO().isEmpty()) {
document.executeScript("addCompetenciaJava('"
+ br.com.citframework.util.WebUtil.serializeObjects(colCompetencias) + "')");
}
// tratamento para perspectiva comportamental
final HTMLTable tblPerspComp = document.getTableById("tblPerspectivaComportamental");
tblPerspComp.deleteAllRows();
if (manualFuncaoDto.getColCompetenciaTecnicaDTO() != null) {
tblPerspComp.addRowsByCollection(manualFuncaoDto.getColPerspectivaComportamentalDTO(), new String[] {
"descricaoCmbCompetenciaComportamental", "comportamento", ""}, null,
"J� existe registrado esta demanda na tabela",
new String[] {"gerarButtonDeletePerspectivaComportamental"}, null, null);
}
final HTMLTable tblHistorivoVersao = document.getTableById("tblHistoricoVersoes");
tblHistorivoVersao.deleteAllRows();
final Collection<HistManualFuncaoDTO> colHistoricoVersoes = historicoFuncaoDao
.findByIdManualFuncao(manualFuncaoDto.getIdManualFuncao());
if (colHistoricoVersoes != null) {
tblHistorivoVersao.addRowsByCollection(colHistoricoVersoes, new String[] {"tituloCargo", "tituloFuncao",
"codCBO", "codigo", "versao", ""}, null, "J� existe registrado esta demanda na tabela",
new String[] {"gerarButtonVisualizaHistorico"}, null, null);
}
}
@Override
public Class getBeanClass() {
return ManualFuncaoDTO.class;
}
}