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.JustificativaRequisicaoLiberacaoDTO;
import br.com.centralit.citcorpore.bean.RequisicaoLiberacaoDTO;
import br.com.centralit.citcorpore.bean.UsuarioDTO;
import br.com.centralit.citcorpore.negocio.JustificativaRequisicaoLiberacaoService;
import br.com.centralit.citcorpore.negocio.RequisicaoLiberacaoService;
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")
public class SuspensaoLiberacao 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;
}
HTMLForm form = document.getForm("form");
form.clear();
RequisicaoLiberacaoDTO requisicaoLiberacaoDto = (RequisicaoLiberacaoDTO)document.getBean();
RequisicaoLiberacaoService requisicaoLiberacaoService = (RequisicaoLiberacaoService) ServiceLocator.getInstance().getService(RequisicaoLiberacaoService.class, WebUtil.getUsuarioSistema(request));
JustificativaRequisicaoLiberacaoService justificativaRequisicaoLiberacaoService = (JustificativaRequisicaoLiberacaoService) ServiceLocator.getInstance().getService(JustificativaRequisicaoLiberacaoService.class, null);
if(requisicaoLiberacaoDto.getIdRequisicaoLiberacao()!=null){
requisicaoLiberacaoDto = requisicaoLiberacaoService.restoreAll(requisicaoLiberacaoDto.getIdRequisicaoLiberacao());
}
request.setAttribute("dataHoraSolicitacao", requisicaoLiberacaoDto.getDataHoraSolicitacaoStr());
Collection<JustificativaRequisicaoLiberacaoDTO> colJustificativas = justificativaRequisicaoLiberacaoService.listAtivasParaSuspensao();
HTMLSelect comboJustificativa = (HTMLSelect) document.getSelectById("idJustificativa");
document.getSelectById("idJustificativa").removeAllOptions();
comboJustificativa.addOption("", UtilI18N.internacionaliza(request, "citcorpore.comum.selecione"));
if (colJustificativas != null){
for(JustificativaRequisicaoLiberacaoDTO justificativa : colJustificativas){
comboJustificativa.addOption(justificativa.getIdJustificativaLiberacao().toString(), justificativa.getDescricaoJustificativa());
}
}
form.setValues(requisicaoLiberacaoDto);
}
public void save(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;
}
RequisicaoLiberacaoDTO requisicaoLiberacaoDto = (RequisicaoLiberacaoDTO)document.getBean();
if (requisicaoLiberacaoDto.getIdRequisicaoLiberacao() == null)
return;
if (requisicaoLiberacaoDto.getIdJustificativa() == null) {
document.alert(UtilI18N.internacionaliza(request,"gerenciaservico.suspensaosolicitacao.validacao.justificanaoinformada"));
return;
}
RequisicaoLiberacaoService requisicaoLiberacaoService = (RequisicaoLiberacaoService) ServiceLocator.getInstance().getService(RequisicaoLiberacaoService.class, WebUtil.getUsuarioSistema(request));
RequisicaoLiberacaoDTO requisicaoLiberacaoDtoAuxiliar = requisicaoLiberacaoService.restoreAll(requisicaoLiberacaoDto.getIdRequisicaoLiberacao());
requisicaoLiberacaoDtoAuxiliar.setIdJustificativa(requisicaoLiberacaoDto.getIdJustificativa());
requisicaoLiberacaoDtoAuxiliar.setComplementoJustificativa(requisicaoLiberacaoDto.getComplementoJustificativa());
requisicaoLiberacaoService.suspende(usuario, requisicaoLiberacaoDtoAuxiliar);
document.executeScript("fechar();");
}
@Override
public Class getBeanClass() {
// TODO Auto-generated method stub
return RequisicaoLiberacaoDTO.class;
}
}