package br.com.centralit.citcorpore.ajaxForms;
import java.util.ArrayList;
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.citajax.html.HTMLSelect;
import br.com.centralit.citcorpore.bean.PrioridadeDTO;
import br.com.centralit.citcorpore.bean.UsuarioDTO;
import br.com.centralit.citcorpore.negocio.PrioridadeService;
import br.com.centralit.citcorpore.util.WebUtil;
import br.com.citframework.service.ServiceLocator;
import br.com.citframework.util.Constantes;
import br.com.citframework.util.UtilI18N;
/**
* @author leandro.viana
*
*/
@SuppressWarnings({ "rawtypes", "unused" })
public class Prioridade extends AjaxFormAction {
/**
* Inicializa dados ao carregar a tela.
*
* @param document
* @param request
* @param response
* @throws Exception
*/
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;
}
// if (!WebUtil.isUserInGroup(request,
// Constantes.getValue("GRUPO_GPESS"))
// && !WebUtil.isUserInGroup(request,
// Constantes.getValue("GRUPO_DIRETORIA"))) {
// document.alert("Voc� n�o tem permiss�o para acessar esta funcionalidade!");
// document.executeScript("window.location = '" +
// Constantes.getValue("SERVER_ADDRESS")
// + request.getContextPath() + "/pages/index/index.jsp'");
// return;
// }
this.preencherComboGrupoPrioridade(document, request, response);
document.focusInFirstActivateField(null);
}
/**
* Inclui ou Atualiza um registro.
*
* @param document
* @param request
* @param response
* @throws Exception
*/
public void save(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
// Obtendo o objeto de transfer�ncia de dados (DTO).
PrioridadeDTO prioridadeDTO = (PrioridadeDTO) document.getBean();
// Obtendo o servi�o.
PrioridadeService prioridadeService = (PrioridadeService) ServiceLocator.getInstance().getService(PrioridadeService.class, null);
ArrayList<PrioridadeDTO> listPrioridades = null;
if(prioridadeService != null){
listPrioridades = (ArrayList<PrioridadeDTO>) prioridadeService.prioridadesAtivasPorNome(prioridadeDTO.getNomePrioridade() );
}
// Verificando se a prioridade informada j� foi cadastrada.
if(listPrioridades!=null){
document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.registroJaCadastrado") );
return;
}
// Verificando se o DTO e o servi�o existem.
if (prioridadeDTO != null && prioridadeService != null) {
// Inserindo.
if (prioridadeDTO.getIdPrioridade() == null) {
prioridadeDTO.setSituacao("A");
prioridadeDTO.setIdEmpresa(WebUtil.getIdEmpresa(request) );
prioridadeService.create(prioridadeDTO);
// Notificando o usu�rio do sucesso da inser��o.
document.alert(UtilI18N.internacionaliza(request, "MSG05") );
} else {
prioridadeService.update(prioridadeDTO);
// Notificando o usu�rio do sucesso da atualiza��o.
document.alert(UtilI18N.internacionaliza(request, "MSG06") );
}
// Referenciando o formul�rio.
HTMLForm form = document.getForm("form");
// Limpando o formul�rio.
form.clear();
}
}
/**
* Restaura os dados ao clicar em um registro na tela.
*
* @param document
* @param request
* @param response
* @throws Exception
*/
public void restore(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
PrioridadeDTO prioridade = (PrioridadeDTO) document.getBean();
this.preencherComboGrupoPrioridade(document, request, response);
PrioridadeService prioridadeService = (PrioridadeService) ServiceLocator.getInstance().getService(PrioridadeService.class, null);
prioridade = (PrioridadeDTO) prioridadeService.restore(prioridade);
HTMLForm form = document.getForm("form");
form.clear();
form.setValues(prioridade);
}
/**
* Altera a situa��o da prioridade para Inativo ao confirmar a exclus�o.
*
* @param document
* @param request
* @param response
* @throws Exception
*/
public void alterarSituacao(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
PrioridadeDTO prioridadeDTO = (PrioridadeDTO) document.getBean();
PrioridadeService prioridadeService = (PrioridadeService) ServiceLocator.getInstance().getService(PrioridadeService.class, null);
if (prioridadeDTO.getIdPrioridade() != null && prioridadeDTO.getIdPrioridade().intValue() != 0) {
prioridadeDTO.setSituacao("I");
prioridadeService.update(prioridadeDTO);
HTMLForm form = document.getForm("form");
form.clear();
document.alert(UtilI18N.internacionaliza(request, "MSG07"));
}
}
public void preencherComboGrupoPrioridade(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
PrioridadeService prioridadeService = (PrioridadeService) ServiceLocator.getInstance().getService(PrioridadeService.class, null);
HTMLSelect comboGrupoPrioridade = (HTMLSelect) document.getSelectById("grupoPrioridade");
comboGrupoPrioridade.removeAllOptions();
comboGrupoPrioridade.addOption("",UtilI18N.internacionaliza(request, "citcorpore.comum.selecione"));
comboGrupoPrioridade.addOption("G1",UtilI18N.internacionaliza(request, "prioridade.gp1"));
comboGrupoPrioridade.addOption("G2",UtilI18N.internacionaliza(request, "prioridade.gp2") );
comboGrupoPrioridade.addOption("G3",UtilI18N.internacionaliza(request, "prioridade.gp3") );
}
/**
* Informa a classe DTO.
*/
public Class getBeanClass() {
return PrioridadeDTO.class;
}
}