/**
* CentralIT - CITSmart.
*/
package br.com.centralit.citcorpore.ajaxForms;
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.CaracteristicaDTO;
import br.com.centralit.citcorpore.negocio.CaracteristicaService;
import br.com.centralit.citcorpore.util.CITCorporeUtil;
import br.com.citframework.dto.IDto;
import br.com.citframework.excecao.LogicException;
import br.com.citframework.excecao.ServiceException;
import br.com.citframework.service.ServiceLocator;
import br.com.citframework.util.UtilI18N;
/**
* Action de Caracter�stica.
*
* @author valdoilo.damasceno
*/
public class Caracteristica extends AjaxFormAction {
/** Bean de Caracteristica. */
private CaracteristicaDTO caracteristicaBean;
@Override
public void load(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
}
/**
* Inclui Nova Caracter�stica.
*
* @param document
* @param request
* @param response
* @throws Exception
* @author valdoilo.damasceno
*/
public void save(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
this.setCaracteristicaBean((CaracteristicaDTO) document.getBean());
CaracteristicaDTO dto = new CaracteristicaDTO();
if (this.getCaracteristicaBean().getIdCaracteristica() == null || this.getCaracteristicaBean().getIdCaracteristica() == 0) {
if (getCaracteristicaService().verificarSeCaracteristicaExiste(getCaracteristicaBean())) {
document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.registroJaCadastrado"));
return;
}
this.getCaracteristicaService().create(this.getCaracteristicaBean(), request);
document.alert(UtilI18N.internacionaliza(request, "MSG05"));
CITCorporeUtil.limparFormulario(document);
} else {
if (getCaracteristicaService().verificarSeCaracteristicaExiste(getCaracteristicaBean())) {
document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.registroJaCadastrado"));
return;
}
dto = (CaracteristicaDTO) this.getCaracteristicaService().restore(this.getCaracteristicaBean());
this.getCaracteristicaBean().setSistema(dto.getSistema());
this.getCaracteristicaService().update(this.getCaracteristicaBean());
document.alert(UtilI18N.internacionaliza(request, "MSG06"));
CITCorporeUtil.limparFormulario(document);
}
}
/**
* Recupera caracter�stica.
*
* @param document
* @param request
* @param response
* @throws Exception
* @author valdoilo.damasceno
*/
public void restore(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
this.setCaracteristicaBean((CaracteristicaDTO) document.getBean());
this.setCaracteristicaBean((CaracteristicaDTO) this.getCaracteristicaService().restore(this.getCaracteristicaBean()));
this.bloquearDesbloquearTag(document);
HTMLForm form = CITCorporeUtil.limparFormulario(document);
form.setValues(this.getCaracteristicaBean());
}
/**
* Exclui caracter�stica.
*
* @param document
* @param request
* @param response
* @throws Exception
* @author valdoilo.damasceno
*/
public void delete(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
this.setCaracteristicaBean((CaracteristicaDTO) document.getBean());
if (this.getCaracteristicaBean().getIdCaracteristica() != null && this.getCaracteristicaBean().getIdCaracteristica() != 0) {
this.setCaracteristicaBean(this.getCaracteristicaService().restore(this.getCaracteristicaBean()));
if (getCaracteristicaBean().getSistema() != null) {
if (!this.getCaracteristicaBean().getSistema().equalsIgnoreCase("N")) {
document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.registroNaoPodeSerExcluido"));
return;
} else {
try {
this.getCaracteristicaService().excluirCaracteristica(this.getCaracteristicaBean());
document.alert(UtilI18N.internacionaliza(request, "MSG07"));
document.executeScript("bloquearTag(+" + false + ")");
CITCorporeUtil.limparFormulario(document);
} catch (LogicException logicException) {
document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.registroNaoPodeSerExcluido"));
logicException.printStackTrace();
}
}
} else {
try {
this.getCaracteristicaService().excluirCaracteristica(this.getCaracteristicaBean());
document.alert(UtilI18N.internacionaliza(request, "MSG07"));
CITCorporeUtil.limparFormulario(document);
document.executeScript("bloquearTag(+" + false + ")");
} catch (LogicException e) {
document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.registroNaoPodeSerExcluido"));
e.printStackTrace();
}
}
}
}
/**
* Bloquea ou desbloqueia TAG.
*
* @param document
* @author valdoilo.damasceno
*/
private void bloquearDesbloquearTag(DocumentHTML document) {
if (this.getCaracteristicaBean().getSistema() != "N") {
document.executeScript("bloquearTag(+" + true + ")");
} else {
document.executeScript("bloquearTag(+" + false + ")");
}
}
/**
* Retorna Service de Caracter�stica.
*
* @return CaracteristicaService
* @throws ServiceException
* @throws Exception
* @author valdoilo.damasceno
*/
private CaracteristicaService getCaracteristicaService() throws ServiceException, Exception {
return (CaracteristicaService) ServiceLocator.getInstance().getService(CaracteristicaService.class, null);
}
/**
* Retorna bean de caracter�stica.
*
* @return valor do atributo caracteristicaBean.
* @author valdoilo.damasceno
*/
public CaracteristicaDTO getCaracteristicaBean() {
return caracteristicaBean;
}
/**
* Define valor do atributo caracteristicaBean.
*
* @param caracteristicaBean
* @author valdoilo.damasceno
*/
public void setCaracteristicaBean(IDto caracteristicaBean) {
this.caracteristicaBean = (CaracteristicaDTO) caracteristicaBean;
}
@SuppressWarnings("rawtypes")
@Override
public Class getBeanClass() {
return CaracteristicaDTO.class;
}
}