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.HTMLForm;
import br.com.centralit.citcorpore.bean.GrupoNivelAutoridadeDTO;
import br.com.centralit.citcorpore.bean.NivelAutoridadeDTO;
import br.com.centralit.citcorpore.bean.UsuarioDTO;
import br.com.centralit.citcorpore.negocio.GrupoNivelAutoridadeService;
import br.com.centralit.citcorpore.negocio.GrupoService;
import br.com.centralit.citcorpore.negocio.NivelAutoridadeService;
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;
@SuppressWarnings({ "rawtypes", "unchecked" })
public class NivelAutoridade extends AjaxFormAction {
@Override
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;
}
document.executeScript("GRID_GRUPOS.deleteAllRows();");
GrupoService grupoService = (GrupoService) ServiceLocator.getInstance().getService(GrupoService.class, WebUtil.getUsuarioSistema(request));
request.setAttribute("colGrupos", grupoService.listaGruposAtivos());
}
public void restore(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
NivelAutoridadeDTO nivelAutoridadeDTO = (NivelAutoridadeDTO) document.getBean();
NivelAutoridadeService nivelAutoridadeService = (NivelAutoridadeService) ServiceLocator.getInstance().getService(NivelAutoridadeService.class, null);
if (nivelAutoridadeDTO == null || nivelAutoridadeDTO.getIdNivelAutoridade() == null)
return;
nivelAutoridadeDTO = (NivelAutoridadeDTO) nivelAutoridadeService.restore(nivelAutoridadeDTO);
if (nivelAutoridadeDTO != null) {
HTMLForm form = document.getForm("form");
form.clear();
form.setValues(nivelAutoridadeDTO);
GrupoNivelAutoridadeService grupoNivelAutoridadeService = (GrupoNivelAutoridadeService) ServiceLocator.getInstance().getService(GrupoNivelAutoridadeService.class, null);
Collection<GrupoNivelAutoridadeDTO> colGrupos = grupoNivelAutoridadeService.findByIdNivelAutoridade(nivelAutoridadeDTO.getIdNivelAutoridade());
document.executeScript("GRID_GRUPOS.deleteAllRows();");
if (colGrupos != null) {
int i = 0;
for (GrupoNivelAutoridadeDTO grupoNivelAutoridadeDto : colGrupos) {
i++;
document.executeScript("GRID_GRUPOS.addRow()");
grupoNivelAutoridadeDto.setSequencia(i);
document.executeScript("seqGrupo = NumberUtil.zerosAEsquerda(" + i + ",5)");
document.executeScript("exibeGrupo('" + br.com.citframework.util.WebUtil.serializeObject(grupoNivelAutoridadeDto, WebUtil.getLanguage(request)) + "')");
}
}
}
}
public void save(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
NivelAutoridadeDTO nivelAutoridadeDTO = (NivelAutoridadeDTO) document.getBean();
NivelAutoridadeService nivelAutoridadeService = (NivelAutoridadeService) ServiceLocator.getInstance().getService(NivelAutoridadeService.class, null);
nivelAutoridadeDTO.setColGrupos(br.com.citframework.util.WebUtil.deserializeCollectionFromRequest(GrupoNivelAutoridadeDTO.class, "colGrupos_Serialize", request));
if (nivelAutoridadeDTO.getIdNivelAutoridade() == null) {
nivelAutoridadeService.create(nivelAutoridadeDTO);
document.alert(UtilI18N.internacionaliza(request, "MSG05"));
} else {
nivelAutoridadeService.update(nivelAutoridadeDTO);
document.alert(UtilI18N.internacionaliza(request, "MSG06"));
}
HTMLForm form = document.getForm("form");
form.clear();
document.setBean(new NivelAutoridadeDTO());
load(document, request, response);
}
@Override
public Class getBeanClass() {
return NivelAutoridadeDTO.class;
}
}