package br.com.centralit.citcorpore.ajaxForms;
import java.util.List;
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.AlcadaCentroResultadoDTO;
import br.com.centralit.citcorpore.bean.AlcadaDTO;
import br.com.centralit.citcorpore.bean.CentroResultadoDTO;
import br.com.centralit.citcorpore.bean.EmpregadoDTO;
import br.com.centralit.citcorpore.bean.UsuarioDTO;
import br.com.centralit.citcorpore.negocio.AlcadaCentroResultadoService;
import br.com.centralit.citcorpore.negocio.AlcadaService;
import br.com.centralit.citcorpore.negocio.CentroResultadoService;
import br.com.centralit.citcorpore.negocio.EmpregadoService;
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;
@SuppressWarnings({ "rawtypes" })
public class AlcadaCentroResultado extends AjaxFormAction {
@Override
public void load(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
UsuarioDTO usuario = WebUtil.getUsuario(request);
AlcadaCentroResultadoDTO alcadaCentroResultadoDTO = (AlcadaCentroResultadoDTO) document.getBean();
if (usuario == null) {
document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.sessaoExpirada"));
document.executeScript("window.location = '" + Constantes.getValue("SERVER_ADDRESS") + request.getContextPath() + "'");
return;
}
// L�gica de verifica��o dos radiobuttons de acordo com a opera��o: inser��o ou atualiza��o.
document.executeScript("$('#situacaoAtivo').attr('checked', true)");
document.executeScript("$('#situacao').val('A')");
if (alcadaCentroResultadoDTO != null && alcadaCentroResultadoDTO.getIdAlcadaCentroResultado() == null) {
document.executeScript("$('#situacaoInativo').attr('disabled', true)");
}
document.getElementById("loading_overlay").setVisible(false);
}
public void restore(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
// Obtendo os DTOs.
AlcadaCentroResultadoDTO alcadaCentroResultadoDTO = (AlcadaCentroResultadoDTO) document.getBean();
EmpregadoDTO empregadoDTO = new EmpregadoDTO();
CentroResultadoDTO centroResultadoDTO = new CentroResultadoDTO();
AlcadaDTO alcadaDTO = new AlcadaDTO();
// Obtendo os Services.
AlcadaCentroResultadoService alcadaCentroResultadoService = (AlcadaCentroResultadoService) ServiceLocator.getInstance().getService(AlcadaCentroResultadoService.class, null);
EmpregadoService empregadoService = (EmpregadoService) ServiceLocator.getInstance().getService(EmpregadoService.class, null);
CentroResultadoService centroResultadoService = (CentroResultadoService) ServiceLocator.getInstance().getService(CentroResultadoService.class, null);
AlcadaService alcadaService = (AlcadaService) ServiceLocator.getInstance().getService(AlcadaService.class, null);
// Verificando se os DTOs e seus respectivos Services possuem refer�ncias.
if (alcadaCentroResultadoDTO == null || alcadaCentroResultadoDTO.getIdAlcadaCentroResultado() == null) {
return;
}
if (empregadoDTO == null || empregadoService == null) {
return;
}
if (centroResultadoDTO == null || centroResultadoService == null) {
return;
}
if (alcadaDTO == null || alcadaService == null) {
return;
}
// Recuperando a al�ada de centro de resultado a partir do banco de dados.
alcadaCentroResultadoDTO = (AlcadaCentroResultadoDTO) alcadaCentroResultadoService.restore(alcadaCentroResultadoDTO);
// Recuperando o empregado.
if (alcadaCentroResultadoDTO.getIdEmpregado() != null) {
empregadoDTO.setIdEmpregado(alcadaCentroResultadoDTO.getIdEmpregado());
empregadoDTO = (EmpregadoDTO) empregadoService.restore(empregadoDTO);
alcadaCentroResultadoDTO.setNomeEmpregado(empregadoDTO.getNome());
}
// Recuperando o centro de resultado.
if (alcadaCentroResultadoDTO.getIdCentroResultado() != null) {
centroResultadoDTO.setIdCentroResultado(alcadaCentroResultadoDTO.getIdCentroResultado());
centroResultadoDTO = (CentroResultadoDTO) centroResultadoService.restore(centroResultadoDTO);
alcadaCentroResultadoDTO.setNomeCentroResultado(centroResultadoDTO.getNomeCentroResultado());
}
// Recuperando a al�ada.
if (alcadaCentroResultadoDTO.getIdAlcada() != null) {
alcadaDTO.setIdAlcada(alcadaCentroResultadoDTO.getIdAlcada());
alcadaDTO = (AlcadaDTO) alcadaService.restore(alcadaDTO);
alcadaCentroResultadoDTO.setNomeAlcada(alcadaDTO.getNomeAlcada());
}
HTMLForm form = document.getForm("form");
form.clear();
form.setValues(alcadaCentroResultadoDTO);
document.executeScript("$('#situacaoInativo').attr('disabled', false)");
if (alcadaCentroResultadoDTO.getDataFim() == null) {
document.executeScript("$('#situacaoAtivo').attr('checked', true)");
document.executeScript("$('#situacao').val('A')");
} else {
document.executeScript("$('#situacaoInativo').attr('checked', true)");
document.executeScript("$('#situacao').val('I')");
}
}
public void save(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
// Obtendo o objeto (DTO - Data Transfer Object) que armazena os dados do formul�rio.
AlcadaCentroResultadoDTO alcadaCentroResultadoDTO = (AlcadaCentroResultadoDTO) document.getBean();
// Obtendo um objeto da camada de servi�o para realizar a persist�ncia dos dados provenientes do DTO.
AlcadaCentroResultadoService alcadaCentroResultadoService = (AlcadaCentroResultadoService) ServiceLocator.getInstance().getService(AlcadaCentroResultadoService.class, null);
HTMLForm form = document.getForm("form");
// Verificando se o DTO e o Service existem.
if (alcadaCentroResultadoDTO != null && alcadaCentroResultadoService != null) {
/*
* Verificando se a al�ada de centro de resultado possui um empregado, um centro de resultado e uma al�ada associados. Caso os tenha, prossegue no fluxo persistindo o objeto sen�o o
* abandona.
*/
if (alcadaCentroResultadoDTO.getIdEmpregado() == null || alcadaCentroResultadoDTO.getIdCentroResultado() == null || alcadaCentroResultadoDTO.getIdAlcada() == null) {
return;
}
// Configurando a data em que o objeto foi persistido.
alcadaCentroResultadoDTO.setDataInicio(UtilDatas.getDataAtual());
// Inser��o (id do DTO � nulo).
if (alcadaCentroResultadoDTO.getIdAlcadaCentroResultado() == null) {
/*
* Requisito: S� � permitida uma al�ada de centro de resultado ativa (datafim = null) para um mesmo empregado, centro de resultado e al�ada.
*/
/*
* Obtem todas as al�adas de centro de resultado j� registradas com o mesmo empregado, centro resultado e al�ada.
*/
List lista = (List) alcadaCentroResultadoService.find(alcadaCentroResultadoDTO);
// Verifica se a lista existe e n�o � vazia.
if (lista != null && !lista.isEmpty()) {
// Itera sobre a lista
for (int i = 0; i < lista.size(); i++) {
// Configurando a data final de cada elemento.
AlcadaCentroResultadoDTO aux = (AlcadaCentroResultadoDTO) lista.get(i);
aux.setDataFim(UtilDatas.getDataAtual());
// Persistindo a altera��o no banco de dados.
alcadaCentroResultadoService.update(aux);
}
}
// Sen�o persistir no banco de dados.
alcadaCentroResultadoService.create(alcadaCentroResultadoDTO);
document.alert(UtilI18N.internacionaliza(request, "MSG05"));
// Limpando o formul�rio.
form.clear();
// Configurando novo bean.
document.setBean(new AlcadaCentroResultadoDTO());
// Recarregando a p�gina.
load(document, request, response);
} else { // Atualiza��o (id do DTO n�o � nulo).
String situacao = request.getParameter("situacao");
if (situacao == null || situacao.equals("")) {
return;
} else {
if (situacao.equalsIgnoreCase("a")) {
alcadaCentroResultadoDTO.setDataFim(null);
} else if (situacao.equalsIgnoreCase("i")) {
alcadaCentroResultadoDTO.setDataFim(UtilDatas.getDataAtual());
} else {
return;
}
}
// Atualizando o DTO no banco de dados.
alcadaCentroResultadoService.update(alcadaCentroResultadoDTO);
form.clear();
// Configurando novo bean.
document.setBean(new AlcadaCentroResultadoDTO());
// Recarregando a p�gina.
load(document, request, response);
document.alert(UtilI18N.internacionaliza(request, "MSG06"));
}
}
}
public void delete(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
// DTO
AlcadaCentroResultadoDTO alcadaCentroResultadoDTO = (AlcadaCentroResultadoDTO) document.getBean();
// Service
AlcadaCentroResultadoService alcadaCentroResultadoService = (AlcadaCentroResultadoService) ServiceLocator.getInstance().getService(AlcadaCentroResultadoService.class, null);
if (alcadaCentroResultadoDTO != null & alcadaCentroResultadoService != null) {
// Id do DTO n�o � nulo nem zero.
if (alcadaCentroResultadoDTO.getIdAlcadaCentroResultado() != null && (alcadaCentroResultadoDTO.getIdAlcadaCentroResultado().intValue() > 0)) {
// Recuperando o DTO no banco de dados atrav�s de seu ID.
alcadaCentroResultadoDTO = (AlcadaCentroResultadoDTO) alcadaCentroResultadoService.restore(alcadaCentroResultadoDTO);
// Configurando a data final.
alcadaCentroResultadoDTO.setDataFim(UtilDatas.getDataAtual());
// Atualizando o DTO.
alcadaCentroResultadoService.update(alcadaCentroResultadoDTO);
document.alert(UtilI18N.internacionaliza(request, "MSG07"));
HTMLForm form = document.getForm("form");
form.clear();
document.executeScript("$('#situacaoAtivo').attr('checked', true)");
document.executeScript("$('#situacao').val('A')");
}
}
}
@Override
public Class getBeanClass() {
return AlcadaCentroResultadoDTO.class;
}
}