/**
*
*/
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.CaracteristicaDTO;
import br.com.centralit.citcorpore.bean.EmpregadoDTO;
import br.com.centralit.citcorpore.bean.GrupoItemConfiguracaoDTO;
import br.com.centralit.citcorpore.bean.ItemConfiguracaoDTO;
import br.com.centralit.citcorpore.bean.MidiaSoftwareDTO;
import br.com.centralit.citcorpore.bean.TipoItemConfiguracaoDTO;
import br.com.centralit.citcorpore.bean.UnidadeDTO;
import br.com.centralit.citcorpore.bean.UsuarioDTO;
import br.com.centralit.citcorpore.negocio.CaracteristicaService;
import br.com.centralit.citcorpore.negocio.EmpregadoService;
import br.com.centralit.citcorpore.negocio.GrupoItemConfiguracaoService;
import br.com.centralit.citcorpore.negocio.InformacaoItemConfiguracaoService;
import br.com.centralit.citcorpore.negocio.ItemConfiguracaoService;
import br.com.centralit.citcorpore.negocio.MidiaSoftwareService;
import br.com.centralit.citcorpore.negocio.TipoItemConfiguracaoService;
import br.com.centralit.citcorpore.negocio.UnidadeService;
import br.com.centralit.citcorpore.negocio.UsuarioService;
import br.com.centralit.citcorpore.util.CITCorporeUtil;
import br.com.citframework.dto.IDto;
import br.com.citframework.excecao.ServiceException;
import br.com.citframework.service.ServiceLocator;
import br.com.citframework.util.UtilI18N;
import br.com.citframework.util.WebUtil;
/**
* @author thays.araujo
*
*/
@SuppressWarnings("rawtypes")
public class ItemConfiguracao extends AjaxFormAction {
/** Bean de Base Item Configura��o. */
private ItemConfiguracaoDTO itemConfiguracaoBean;
/** Bean de Tipo Item Configura��o. */
private TipoItemConfiguracaoDTO tipoItemConfiguracaoBean = new TipoItemConfiguracaoDTO();
/** Bean de Usuario */
private UsuarioDTO UsuarioDto = new UsuarioDTO();
/** Bean Empregado. */
private EmpregadoDTO empregadoDTO = new EmpregadoDTO();
/** Bean Unidade. */
private UnidadeDTO unidadeDto = new UnidadeDTO();
@Override
public Class getBeanClass() {
return ItemConfiguracaoDTO.class;
}
/*
* (non-Javadoc)
*
* @see
* br.com.centralit.citajax.html.AjaxFormAction#load(br.com.centralit.citajax
* .html.DocumentHTML, javax.servlet.http.HttpServletRequest,
* javax.servlet.http.HttpServletResponse)
*/
@Override
public void load(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
UsuarioDTO usrDto = (UsuarioDTO) br.com.centralit.citcorpore.util.WebUtil.getUsuario(request);
if(usrDto == null){
return;
}
document.executeScript("ocultarItemConfiguracao()");
}
/**
* Inclui Novo Item de Configura��o na Base.
*
* @param document
* @param request
* @param response
* @throws Exception
* @author valdoilo.damasceno
*/
public boolean salvar(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
UsuarioDTO usrDto = (UsuarioDTO) br.com.centralit.citcorpore.util.WebUtil.getUsuario(request);
if(usrDto == null){
return false;
}
MidiaSoftwareService midiaSoftwareService = (MidiaSoftwareService) ServiceLocator.getInstance().getService(MidiaSoftwareService.class, null);
this.setItemConfiguracaoBean((IDto) document.getBean());
/**
* Checa qual tipo de respons�vel para gravar no banco o ID correspondente
*
* @author thyen.chang
*/
if(this.getItemConfiguracaoBean().getTipoResponsavel().equals("U")){
this.getItemConfiguracaoBean().setIdGrupoResponsavel(null);
} else {
this.getItemConfiguracaoBean().setIdGrupoResponsavel(this.getItemConfiguracaoBean().getIdGrupoResponsavel());
this.getItemConfiguracaoBean().setIdResponsavel(null);
}
this.getTipoItemConfiguracaoBean().setCaracteristicas((List) WebUtil.deserializeCollectionFromRequest(CaracteristicaDTO.class, "caracteristicasSerializadas", request));
this.getItemConfiguracaoBean().setTipoItemConfiguracaoSerializadas(this.getTipoItemConfiguracaoBean());
if(this.getItemConfiguracaoBean().getIdItemConfiguracaoPai()!=null) {
ItemConfiguracaoDTO i = new ItemConfiguracaoDTO();
i.setIdItemConfiguracao(this.getItemConfiguracaoBean().getIdItemConfiguracaoPai());
i = (ItemConfiguracaoDTO) this.getItemConfiguracaoService().restore(i);
this.getItemConfiguracaoBean().setIdGrupoItemConfiguracao(i.getIdGrupoItemConfiguracao());
}
if (this.getItemConfiguracaoBean().getIdItemConfiguracao() == null) {
/*
* Alteracao - Emauri - 27/11/2013
*/
//ThreadProcessaInventario.performanceDataSemaphoreInventario.acquireUninterruptibly();
try{
this.getItemConfiguracaoService().createItemConfiguracaoAplicacao(this.getItemConfiguracaoBean(), usrDto);
}catch(Exception e){
e.printStackTrace();
}finally{
//ThreadProcessaInventario.performanceDataSemaphoreInventario.release();
}
/*
* Fim - Alteracao - Emauri - 27/11/2013
*/
document.alert(UtilI18N.internacionaliza(request, "MSG05"));
document.executeScript("parent.JANELA_AGUARDE_MENU.hide()");
} else {
/*Verificando se as m�dias est�o esgotadas*/
if(this.getItemConfiguracaoBean().getIdMidiaSoftware()!=null) {
MidiaSoftwareDTO midia = new MidiaSoftwareDTO();
midia.setIdMidiaSoftware(this.getItemConfiguracaoBean().getIdMidiaSoftware());
midia = (MidiaSoftwareDTO) midiaSoftwareService.restore(midia);
if(midia.getLicencas() <= this.getItemConfiguracaoService().quantidadeMidiaSoftware(this.getItemConfiguracaoBean())) {
document.alert(UtilI18N.internacionaliza(request, "itemConfiguracaoTree.licencaEsgotada"));
document.executeScript("parent.JANELA_AGUARDE_MENU.hide()");
return false;
} else {
/*
* Alteracao - Emauri - 27/11/2013
*/
//ThreadProcessaInventario.performanceDataSemaphoreInventario.acquireUninterruptibly();
try{
this.getItemConfiguracaoService().updateItemConfiguracao(this.getItemConfiguracaoBean(), usrDto);
}catch(Exception e){
e.printStackTrace();
}finally{
//ThreadProcessaInventario.performanceDataSemaphoreInventario.release();
}
/*
* Fim - Alteracao - Emauri - 27/11/2013
*/
document.alert(UtilI18N.internacionaliza(request, "MSG06"));
document.executeScript("parent.JANELA_AGUARDE_MENU.hide()");
}
} else {
this.getItemConfiguracaoService().updateItemConfiguracao(this.getItemConfiguracaoBean(), usrDto);
document.alert(UtilI18N.internacionaliza(request, "MSG06"));
document.executeScript("parent.JANELA_AGUARDE_MENU.hide()");
}
}
if(this.getItemConfiguracaoBean().getIdItemConfiguracaoPai() == null) {
document.executeScript("ocultaGrid();reload("+this.getItemConfiguracaoBean().getIdItemConfiguracao()+")");
} else {
document.executeScript("ocultaGrid();reload("+this.getItemConfiguracaoBean().getIdItemConfiguracaoPai()+")");
}
return true;
}
public UsuarioDTO getUsuarioSessao(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
return (UsuarioDTO) br.com.centralit.citcorpore.util.WebUtil.getUsuario(request);
}
/**
* Restaura Item de Configuracao.
*
* @param document
* @param request
* @param response
* @throws Exception
* @author valdoilo.damasceno
*/
public void restore(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
UsuarioDTO usrDto = (UsuarioDTO) br.com.centralit.citcorpore.util.WebUtil.getUsuario(request);
if(usrDto == null){
return;
}
this.setItemConfiguracaoBean((IDto) document.getBean());
ItemConfiguracaoDTO itemConfiguracaoPai = new ItemConfiguracaoDTO();
this.setItemConfiguracaoBean(this.getItemConfiguracaoService().restore(this.getItemConfiguracaoBean()));
document.executeScript("deleteAllRows()");
HTMLForm form = CITCorporeUtil.limparFormulario(document);
form.setValues(this.getItemConfiguracaoBean());
if ((this.getItemConfiguracaoBean().getIdItemConfiguracaoPai() == null)) {
document.executeScript("ocultarItemConfiguracao()");
} else {
this.getTipoItemConfiguracaoBean().setId(this.getItemConfiguracaoBean().getIdTipoItemConfiguracao());
this.getItemConfiguracaoBean().setNomeTipoItemConfiguracao(
((TipoItemConfiguracaoDTO) this.getTipoItemConfiguracaoService().restore(this.getTipoItemConfiguracaoBean())).getNome());
this.getTipoItemConfiguracaoService().restaurarGridCaracteristicas(
document,
this.getCaracteristicaService().consultarCaracteristicasComValoresItemConfiguracao(this.getItemConfiguracaoBean().getIdTipoItemConfiguracao(),
this.getItemConfiguracaoBean().getIdItemConfiguracao()));
itemConfiguracaoPai.setIdItemConfiguracao(this.getItemConfiguracaoBean().getIdItemConfiguracaoPai());
itemConfiguracaoPai = (ItemConfiguracaoDTO) this.getItemConfiguracaoService().restore(itemConfiguracaoPai);
this.getItemConfiguracaoBean().setNomeItemConfiguracaoPai(itemConfiguracaoPai.getIdentificacao());
document.executeScript("visualizarItemConfiguracaoPai()");
}
if (this.getItemConfiguracaoBean() != null) {
if (this.getItemConfiguracaoBean().getIdGrupoItemConfiguracao() != null && this.getItemConfiguracaoBean().getIdGrupoItemConfiguracao() > 0) {
GrupoItemConfiguracaoService grupoItemConfiguracaoService = (GrupoItemConfiguracaoService) ServiceLocator.getInstance().getService(GrupoItemConfiguracaoService.class, null);
GrupoItemConfiguracaoDTO grupoItemConfiguracaoDTO = new GrupoItemConfiguracaoDTO();
grupoItemConfiguracaoDTO.setIdGrupoItemConfiguracao(this.getItemConfiguracaoBean().getIdGrupoItemConfiguracao());
grupoItemConfiguracaoDTO = (GrupoItemConfiguracaoDTO) grupoItemConfiguracaoService.restore(grupoItemConfiguracaoDTO);
this.getItemConfiguracaoBean().setNomeGrupoItemConfiguracao(grupoItemConfiguracaoDTO.getNomeGrupoItemConfiguracao());
}
}
form.setValues(this.getItemConfiguracaoBean());
}
/**
* Restaura o Tipo de Item Configura��o e carrega a Grid de Caracter�sticas
* Ativas.
*
* @param document
* @param request
* @param response
* @throws Exception
* @author valdoilo.damasceno
*/
public void restoreTipoItemConfiguracao(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
this.restoreTipoItemConfiguracaoValues(document, request, response);
}
/**
* Restaura o Tipo de Item Configura��o e carrega a Grid de Caracter�sticas
* Ativas.
*
* @param document
* @param request
* @param response
* @throws Exception
* @author flavio.santana
*/
public void restoreTipoItemConfiguracaoValues(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
UsuarioDTO usrDto = (UsuarioDTO) br.com.centralit.citcorpore.util.WebUtil.getUsuario(request);
if(usrDto == null){
return;
}
this.setItemConfiguracaoBean((IDto) document.getBean());
if(this.getItemConfiguracaoBean().getIdTipoItemConfiguracao()==null) {
this.setItemConfiguracaoBean(this.getItemConfiguracaoService().restoreByIdItemConfiguracao(this.getItemConfiguracaoBean().getIdItemConfiguracao()));
}
this.getTipoItemConfiguracaoBean().setId(this.getItemConfiguracaoBean().getIdTipoItemConfiguracao());
this.setTipoItemConfiguracaoBean(this.getTipoItemConfiguracaoService().restore(this.getTipoItemConfiguracaoBean()));
/**
* Valida se o campo � diferente de null
* @author flavio.santana
* 25/10/2013 11:40
*/
if (this.getTipoItemConfiguracaoBean() != null) {
this.getItemConfiguracaoBean().setNomeTipoItemConfiguracao(this.getTipoItemConfiguracaoBean().getNome());
}
document.executeScript("deleteAllRows()");
HTMLForm form = document.getForm("form");
form.setValues(this.getItemConfiguracaoBean());
if (this.getTipoItemConfiguracaoBean() != null) {
this.getTipoItemConfiguracaoService().restaurarGridCaracteristicas(document,
this.getCaracteristicaService().
consultarCaracteristicasComValoresItemConfiguracao(this.getTipoItemConfiguracaoBean().getId(), this.getItemConfiguracaoBean().getIdItemConfiguracao()));
}
}
public void restoreUnidade(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
UsuarioDTO usrDto = (UsuarioDTO) br.com.centralit.citcorpore.util.WebUtil.getUsuario(request);
if(usrDto == null){
return;
}
this.setItemConfiguracaoBean((IDto) document.getBean());
this.setUsuarioDto(this.getUsuarioService().restore(this.getUsuarioDto()));
this.getEmpregadoDto().setIdEmpregado(getUsuarioDto().getIdEmpregado()) ;
this.setEmpregado(this.getEmpregadoService().restore(getEmpregadoDto()));
HTMLForm form = document.getForm("form");
form.setValues(this.getItemConfiguracaoBean());
}
/**
* Restaura o Grupo do Item de Configuracao.
*
* @param document
* @param request
* @param response
* @throws Exception
*/
public void restoreGrupoItemConfiguracao(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
UsuarioDTO usrDto = (UsuarioDTO) br.com.centralit.citcorpore.util.WebUtil.getUsuario(request);
if(usrDto == null){
return;
}
GrupoItemConfiguracaoService grupoItemConfiguracaoService = (GrupoItemConfiguracaoService) ServiceLocator.getInstance().getService(GrupoItemConfiguracaoService.class, null);
ItemConfiguracaoDTO itemConfiguracaoDTO = (ItemConfiguracaoDTO) ((IDto) document.getBean());
GrupoItemConfiguracaoDTO grupoItemConfiguracaoDTO = new GrupoItemConfiguracaoDTO();
grupoItemConfiguracaoDTO.setIdGrupoItemConfiguracao(itemConfiguracaoDTO.getIdGrupoItemConfiguracao());
grupoItemConfiguracaoDTO = (GrupoItemConfiguracaoDTO) grupoItemConfiguracaoService.restore(grupoItemConfiguracaoDTO);
itemConfiguracaoDTO.setIdGrupoItemConfiguracao(grupoItemConfiguracaoDTO.getIdGrupoItemConfiguracao());
itemConfiguracaoDTO.setNomeGrupoItemConfiguracao(grupoItemConfiguracaoDTO.getNomeGrupoItemConfiguracao());
HTMLForm form = document.getForm("form");
form.setValues(itemConfiguracaoDTO);
document.executeScript("fecharPopupGrupo()");
}
/**
* @param document
* @param request
* @param response
* @throws Exception
* Metodo colocar status Data fim quando for solicitado a
* exclus�o do ItemConfiguracao.
* @author thays.araujo
*/
public void delete(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
UsuarioDTO usrDto = (UsuarioDTO) br.com.centralit.citcorpore.util.WebUtil.getUsuario(request);
if(usrDto == null){
return;
}
this.setItemConfiguracaoBean((IDto) document.getBean());
if (this.getItemConfiguracaoBean().getIdItemConfiguracao().intValue() > 0) {
this.getItemConfiguracaoService().delete((getItemConfiguracaoBean()));
}
HTMLForm form = document.getForm("form");
document.executeScript("deleteAllRows()");
form.clear();
document.alert(UtilI18N.internacionaliza(request, "MSG07"));
}
/**
* Retorna Service de ItemConfiguracao.
*
* @return ItemConfiguracaoService
* @throws ServiceException
* @throws Exception
* @author thays.araujo
*/
public ItemConfiguracaoService getItemConfiguracaoService() throws ServiceException, Exception {
return (ItemConfiguracaoService) ServiceLocator.getInstance().getService(ItemConfiguracaoService.class,null);
}
/**
* Retorna Service de TipoItemConfiguracao.
*
* @return TipoItemConfiguracaoService
* @throws ServiceException
* @throws Exception
* @author thays.araujo
*/
public TipoItemConfiguracaoService getTipoItemConfiguracaoService() throws ServiceException, Exception {
return (TipoItemConfiguracaoService) ServiceLocator.getInstance().getService(TipoItemConfiguracaoService.class, null);
}
/**
* Retorna Service de Caracteristica.
*
* @return CaracteristicaService
* @throws ServiceException
* @throws Exception
* @author thays.araujo
*/
public CaracteristicaService getCaracteristicaService() throws ServiceException, Exception {
return (CaracteristicaService) ServiceLocator.getInstance().getService(CaracteristicaService.class, null);
}
/**
* Retorna Service de Unidade.
*
* @return UnidadeService
* @throws ServiceException
* @throws Exception
* @author thays.araujo
*/
public UnidadeService getUnidadeService() throws ServiceException, Exception {
return (UnidadeService) ServiceLocator.getInstance().getService(UnidadeService.class, null);
}
/**
* Retorna Service de Usuario.
*
* @return UsuarioService
* @throws ServiceException
* @throws Exception
* @author thays.araujo
*/
public UsuarioService getUsuarioService() throws ServiceException, Exception {
return (UsuarioService) ServiceLocator.getInstance().getService(UsuarioService.class, null);
}
/**
* Configura bean ItemConfiguracaoDTO.
*
* @param itemConfiguracaoBean
* @author thays.araujo
*/
public void setItemConfiguracaoBean(IDto itemConfiguracaoBean) {
this.itemConfiguracaoBean = (ItemConfiguracaoDTO) itemConfiguracaoBean;
}
/**
* Retorna bean de ItemConfiguracaoDTO.
*
* @return ItemConfiguracaoDTO
* @author thays.araujo
*/
public ItemConfiguracaoDTO getItemConfiguracaoBean() {
return itemConfiguracaoBean;
}
/**
* Retorna Bean Tipo Item Configura��o.
*
* @return TipoItemConfiguracaoDTO
* @author thays.araujo
*/
public TipoItemConfiguracaoDTO getTipoItemConfiguracaoBean() {
return this.tipoItemConfiguracaoBean;
}
/**
* Retorna Bean Usuario.
*
* @return TipoItemConfiguracaoDTO
* @author thays.araujo
*/
public UsuarioDTO getUsuarioDto() {
return this.UsuarioDto;
}
/**
* Retorna Bean Empregado.
*
* @return TipoItemConfiguracaoDTO
* @author thays.araujo
*/
public EmpregadoDTO getEmpregadoDto() {
return this.empregadoDTO;
}
/**
* Configura Empregado.
*
* @param empregadoDto
* IDto
* @author thays.araujo
*/
public void setEmpregado(IDto empregadoDto) {
this.empregadoDTO = (EmpregadoDTO) empregadoDto;
}
/**
* Retorna Bean Empregado.
*
* @return TipoItemConfiguracaoDTO
* @author thays.araujo
*/
public UnidadeDTO getUnidadeDto() {
return this.unidadeDto;
}
/**
* Configura Empregado.
*
* @param empregadoDto
* IDto
* @author thays.araujo
*/
public void setUnidadeDto(IDto unidadeDto) {
this.unidadeDto = (UnidadeDTO) unidadeDto;
}
/**
* Configura Tipo Item Configura��o.
*
* @param tipoItemConfiguracao
* IDto
* @author thays.araujo
*/
public void setTipoItemConfiguracaoBean(IDto tipoItemConfiguracao) {
this.tipoItemConfiguracaoBean = (TipoItemConfiguracaoDTO) tipoItemConfiguracao;
}
/**
* Configura Usuario.
*
* @param usuarioDto
* IDto
* @author thays.araujo
*/
public void setUsuarioDto(IDto usuarioDto) {
this.UsuarioDto = (UsuarioDTO) usuarioDto;
}
/**
* Retorna Service de InformacaoItemConfiguracao.
*
* @return InformacaoItemConfiguracaoService
* @throws ServiceException
* @throws Exception
* @author rosana.godinho
*/
public InformacaoItemConfiguracaoService getInformacaoItemConfiguracaoService() throws ServiceException, Exception {
return (InformacaoItemConfiguracaoService) ServiceLocator.getInstance().getService(InformacaoItemConfiguracaoService.class, null);
}
/**
* Retorna Service de Empregado.
*
* @return InformacaoItemConfiguracaoService
* @throws ServiceException
* @throws Exception
* @author rosana.godinho
*/
public EmpregadoService getEmpregadoService() throws ServiceException, Exception {
return (EmpregadoService) ServiceLocator.getInstance().getService(EmpregadoService.class, null);
}
}