/**
* CentralIT - CITSmart
*/
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.citajax.html.HTMLSelect;
import br.com.centralit.citcorpore.bean.CategoriaPostDTO;
import br.com.centralit.citcorpore.bean.UsuarioDTO;
import br.com.centralit.citcorpore.negocio.CategoriaPostService;
import br.com.centralit.citcorpore.util.WebUtil;
import br.com.citframework.excecao.ServiceException;
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 CategoriaPost extends AjaxFormAction {
/**
* Inicializa os 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;
}
gerarComboCategoria(document,request);
}
/**
* Inclui um registro.
*
* @param document
* @param request
* @param response
* @throws Exception
*/
public void save(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
CategoriaPostDTO categoriaServicoDTO = (CategoriaPostDTO) document.getBean();
CategoriaPostService categoriaServicoService = (CategoriaPostService) ServiceLocator.getInstance().getService(CategoriaPostService.class, null);
if (categoriaServicoDTO.getIdCategoriaPost() == null) {
categoriaServicoDTO.setDataInicio(UtilDatas.getDataAtual());
if (!categoriaServicoService.verificarSeCategoriaExiste(categoriaServicoDTO)) {
categoriaServicoService.create(categoriaServicoDTO);
document.alert(UtilI18N.internacionaliza(request, "MSG05"));
} else {
document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.registroJaCadastrado"));
}
} else {
categoriaServicoService.update(categoriaServicoDTO);
document.alert(UtilI18N.internacionaliza(request, "MSG06"));
}
HTMLForm form = document.getForm("form");
form.clear();
document.setBean(new CategoriaPostDTO());
}
/**
* Seta a data atual na data final ao excluir um registro.
*
* @param document
* @param request
* @param response
* @throws Exception
*/
public void delete(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
CategoriaPostDTO categoriaPost = (CategoriaPostDTO) document.getBean();
CategoriaPostService categoriaServicoService = (CategoriaPostService) ServiceLocator.getInstance().getService(CategoriaPostService.class, null);
if (categoriaPost != null && categoriaPost.getIdCategoriaPost() != null)
{
if (categoriaServicoService.verificarSeCategoriaPossuiServicoOuSubCategoria(categoriaPost)) {
document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.registroNaoPodeSerExcluido"));
} else {
categoriaPost.setDataFim(UtilDatas.getDataAtual());
categoriaServicoService.update(categoriaPost);
document.alert(UtilI18N.internacionaliza(request, "MSG07"));
}
}
HTMLForm form = document.getForm("form");
form.clear();
}
/**
* Restaura os dados ao clicar em um registro.
*
* @param document
* @param request
* @param response
* @throws Exception
*/
public void restore(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
CategoriaPostDTO categoriaServicoDTO = (CategoriaPostDTO) document.getBean();
CategoriaPostService categoriaServicoService = (CategoriaPostService) ServiceLocator.getInstance().getService(CategoriaPostService.class, null);
categoriaServicoDTO = (CategoriaPostDTO) categoriaServicoService.restore(categoriaServicoDTO);
CategoriaPostDTO categoriaServicoSuperior = new CategoriaPostDTO();
if(categoriaServicoDTO.getIdCategoriaPostPai() != null){
categoriaServicoSuperior.setIdCategoriaPost(categoriaServicoDTO.getIdCategoriaPostPai());
categoriaServicoSuperior = (CategoriaPostDTO) categoriaServicoService.restore(categoriaServicoSuperior);
}
HTMLForm form = document.getForm("form");
form.clear();
form.setValues(categoriaServicoDTO);
//gerarComboCategoria(document);
}
/**
* Gera Combo de Categoria de Servi�o Superior.
*
* @param document
* @throws ServiceException
* @throws Exception
*/
@SuppressWarnings("unchecked")
public void gerarComboCategoria(DocumentHTML document,HttpServletRequest request) throws ServiceException, Exception {
CategoriaPostDTO categoriaServicoDTO = (CategoriaPostDTO) document.getBean();
if (categoriaServicoDTO == null){
categoriaServicoDTO = new CategoriaPostDTO();
}
CategoriaPostService categoriaServicoService = (CategoriaPostService) ServiceLocator.getInstance().getService(CategoriaPostService.class, null);
HTMLSelect comboCategoriaServicoSuperior = (HTMLSelect) document.getSelectById("idCategoriaPostPai");
comboCategoriaServicoSuperior.removeAllOptions();
Collection<CategoriaPostDTO> categoriasServicoSuperior = categoriaServicoService.listCategoriasAtivas();
if(categoriaServicoDTO.getIdCategoriaPost() != null && categoriaServicoDTO.getIdCategoriaPost() != 0){
for(CategoriaPostDTO c : categoriasServicoSuperior){
if(c.getIdCategoriaPost() == categoriaServicoDTO.getIdCategoriaPost().intValue()){
categoriasServicoSuperior.remove(c);
break;
}
}
}
if (categoriasServicoSuperior != null && !categoriasServicoSuperior.isEmpty()) {
comboCategoriaServicoSuperior.addOption("",UtilI18N.internacionaliza(request, "citcorpore.comum.selecione"));
comboCategoriaServicoSuperior.addOptions(categoriasServicoSuperior, "idCategoriaPost", "nomeCategoria", null);
} else {
comboCategoriaServicoSuperior.addOption("", UtilI18N.internacionaliza(request, "citcorpore.comum.selecione"));
}
}
public Class getBeanClass() {
return CategoriaPostDTO.class;
}
}