package br.com.centralit.citcorpore.ajaxForms;
import java.util.ArrayList;
import java.util.Collection;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import br.com.centralit.bpm.dto.FluxoDTO;
import br.com.centralit.bpm.dto.TipoFluxoDTO;
import br.com.centralit.bpm.servico.FluxoService;
import br.com.centralit.bpm.servico.TipoFluxoService;
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.CalendarioDTO;
import br.com.centralit.citcorpore.bean.CondicaoOperacaoDTO;
import br.com.centralit.citcorpore.bean.FaseServicoDTO;
import br.com.centralit.citcorpore.bean.FluxoServicoDTO;
import br.com.centralit.citcorpore.bean.GrupoDTO;
import br.com.centralit.citcorpore.bean.ModeloEmailDTO;
import br.com.centralit.citcorpore.bean.ServicoContratoDTO;
import br.com.centralit.citcorpore.bean.ServicoDTO;
import br.com.centralit.citcorpore.negocio.CalendarioService;
import br.com.centralit.citcorpore.negocio.CondicaoOperacaoService;
import br.com.centralit.citcorpore.negocio.FaseServicoService;
import br.com.centralit.citcorpore.negocio.FluxoServicoService;
import br.com.centralit.citcorpore.negocio.GrupoService;
import br.com.centralit.citcorpore.negocio.ModeloEmailService;
import br.com.centralit.citcorpore.negocio.ServicoContratoService;
import br.com.centralit.citcorpore.negocio.ServicoService;
import br.com.centralit.citcorpore.util.WebUtil;
import br.com.citframework.service.ServiceLocator;
import br.com.citframework.util.UtilI18N;
/**
*
* @author Cledson.junior
*
*/
public class ServicoContrato 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 {
this.preencherComboCondicaoOperacao(document, request, response);
this.preencherComboModelosEmailsAbertura(document, request, response);
this.preencherComboModelosEmailsFinalizacao(document, request, response);
this.preencherComboModelosEmailsDemais(document, request, response);
this.preencherComboGrupoAprovador(document, request, response);
this.preencherComboGrupoEscalacao(document, request, response);
this.preencherComboGrupoExecutor(document, request, response);
this.preencherCalendario(document, request, response);
this.preencherComboFluxo(document, request, response);
this.preencherComboFase(document, request, response);
String idServicoContrato = request.getParameter("idServicoContrato");
if(idServicoContrato!= null && idServicoContrato != ""){
recupera(document, request, response);
}
}
/**
* Restaura os dados ao clicar em um registro.
*
* @param document
* @param request
* @param response
* @throws Exception
*/
@SuppressWarnings("unchecked")
public void recupera(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
ServicoContratoDTO servicoContratoDTO = (ServicoContratoDTO) document.getBean();
ServicoContratoService servicoContratoService = (ServicoContratoService) ServiceLocator.getInstance().getService(ServicoContratoService.class, WebUtil.getUsuarioSistema(request));
HTMLForm form = document.getForm("form");
if(servicoContratoDTO.getIdServicoContrato() != null) {
servicoContratoDTO = (ServicoContratoDTO) servicoContratoService.restore(servicoContratoDTO);
ServicoDTO servicoBean = new ServicoDTO();
FaseServicoDTO faseServicoDTO = new FaseServicoDTO();
TipoFluxoDTO tipoFluxoDTO = new TipoFluxoDTO();
ServicoService servicoService = (ServicoService) ServiceLocator.getInstance().getService(ServicoService.class, null);
servicoBean.setIdServico(servicoContratoDTO.getIdServico());
servicoBean = (ServicoDTO) servicoService.restore(servicoBean);
servicoContratoDTO.setNomeServico(servicoBean.getNomeServico());
FaseServicoService faseServicoService = (FaseServicoService) ServiceLocator.getInstance().getService(FaseServicoService.class, null);
TipoFluxoService tipoFluxoService = (TipoFluxoService) ServiceLocator.getInstance().getService(TipoFluxoService.class, null);
FluxoServicoService fluxoServicoService = (FluxoServicoService) ServiceLocator.getInstance().getService(FluxoServicoService.class, WebUtil.getUsuarioSistema(request));
Collection<FluxoServicoDTO> grupoFluxo = (Collection<FluxoServicoDTO>) fluxoServicoService.findByIdServicoContrato(servicoContratoDTO.getIdServicoContrato());
if (grupoFluxo != null && !grupoFluxo.isEmpty()) {
for (FluxoServicoDTO fluxoServicoDTO : grupoFluxo) {
faseServicoDTO.setIdFase(fluxoServicoDTO.getIdFase());
faseServicoDTO = (FaseServicoDTO) faseServicoService.restore(faseServicoDTO);
tipoFluxoDTO.setIdTipoFluxo(fluxoServicoDTO.getIdTipoFluxo());
tipoFluxoDTO = (TipoFluxoDTO) tipoFluxoService.restore(tipoFluxoDTO);
/* Desenvolvedor: Euler.Ramos Data: 11/11/2013 Hor�rio: 10h18min ID Citsmart: 123627 Motivo/Coment�rio: Evitar null pointer!*/
String nomeFase;
if ((faseServicoDTO!=null)&&(faseServicoDTO.getNomeFase()!=null)) {
nomeFase = faseServicoDTO.getNomeFase();
} else {
nomeFase = "";
}
String descricaoTipoFluxo;
if ((tipoFluxoDTO!=null)&&(tipoFluxoDTO.getDescricao()!=null)) {
descricaoTipoFluxo = tipoFluxoDTO.getDescricao();
} else {
descricaoTipoFluxo = "";
}
document.executeScript("addLinhaTabelaFluxoTrabalho(" + fluxoServicoDTO.getIdFase() + ",'" + fluxoServicoDTO.getIdTipoFluxo() + "','" + fluxoServicoDTO.getPrincipal() + "','"+ nomeFase+"','"+ descricaoTipoFluxo +"','"+ fluxoServicoDTO.getPrincipal()+"');");
}
document.executeScript("exibirGrid();");
}
form.setValues(servicoContratoDTO);
}
}
public void deleteFluxo(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
FluxoServicoDTO fluxoServicoDTO = new FluxoServicoDTO();
FluxoServicoService fluxoServicoService = (FluxoServicoService) ServiceLocator.getInstance().getService(FluxoServicoService.class, WebUtil.getUsuarioSistema(request));
ServicoContratoDTO servicoContratoDTO = (ServicoContratoDTO) document.getBean();
String idTipoFluxoExclusao = request.getParameter("idTipoFluxoExclusao");
String idFaseExclusao = request.getParameter("idFaseExclusao");
String principalExclusao = request.getParameter("principalExclusao");
fluxoServicoDTO.setDeleted("y");
fluxoServicoDTO.setIdFase(Integer.parseInt(idFaseExclusao));
fluxoServicoDTO.setIdTipoFluxo(Integer.parseInt(idTipoFluxoExclusao));
fluxoServicoDTO.setPrincipal(principalExclusao);
fluxoServicoDTO.setIdServicoContrato(servicoContratoDTO.getIdServicoContrato());
if (fluxoServicoDTO != null && fluxoServicoDTO.getIdServicoContrato() != null) {
fluxoServicoService.update(fluxoServicoDTO);
}
document.alert(UtilI18N.internacionaliza(request, "MSG07"));
}
public void restoreServicoContrato(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
ServicoContratoDTO servicoContratoDTO = (ServicoContratoDTO) document.getBean();
ServicoDTO servicoBean = new ServicoDTO();
ServicoService servicoService = (ServicoService) ServiceLocator.getInstance().getService(ServicoService.class, null);
servicoBean.setIdServico(servicoContratoDTO.getIdServico());
servicoBean = (ServicoDTO) servicoService.restore(servicoBean);
servicoContratoDTO.setNomeServico(servicoBean.getNomeServico());
servicoContratoDTO.setIdServico(servicoBean.getIdServico());
HTMLForm form = document.getForm("form");
form.setValues(servicoContratoDTO);
document.executeScript("fecharPopup()");
}
public void delete(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
try {
ServicoContratoDTO servicoContratoDTO = (ServicoContratoDTO) document.getBean();
ServicoContratoService servicoContratoService = (ServicoContratoService) ServiceLocator.getInstance().getService(ServicoContratoService.class, null);
servicoContratoService.deletarByIdServicoContrato(servicoContratoDTO, document);
document.executeScript("closePopup();");
document.executeScript("showServicosContrato('" + servicoContratoDTO.getIdContrato() + "');");
} catch (Exception e) {
e.getStackTrace();
}
}
public Class<ServicoContratoDTO> getBeanClass() {
return ServicoContratoDTO.class;
}
@SuppressWarnings({ "rawtypes", "unchecked" })
public void preencherComboCondicaoOperacao(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
CondicaoOperacaoService condicaoOperacaoService = (CondicaoOperacaoService) ServiceLocator.getInstance().getService(CondicaoOperacaoService.class, null);
HTMLSelect idCondicaoOperacao = (HTMLSelect) document.getSelectById("idCondicaoOperacao");
idCondicaoOperacao.removeAllOptions();
ArrayList<CondicaoOperacaoDTO> cols = (ArrayList) condicaoOperacaoService.list();
ArrayList<CondicaoOperacaoDTO> popular = new ArrayList<CondicaoOperacaoDTO>();
if (cols != null) {
for (CondicaoOperacaoDTO condicaoOperacaoDTO : cols)
if (condicaoOperacaoDTO.getDataFim() == null)
popular.add(condicaoOperacaoDTO);
idCondicaoOperacao.addOptions(popular, "idCondicaoOperacao", "nomeCondicaoOperacao", null);
}
}
@SuppressWarnings({ "rawtypes", "unchecked" })
public void preencherComboModelosEmailsAbertura(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
ModeloEmailService modeloEmailService = (ModeloEmailService) ServiceLocator.getInstance().getService(ModeloEmailService.class, null);
HTMLSelect idModelosEmails = (HTMLSelect) document.getSelectById("idModeloEmailCriacao");
idModelosEmails.removeAllOptions();
ArrayList<ModeloEmailDTO> cols = (ArrayList) modeloEmailService.getAtivos();
ArrayList<ModeloEmailDTO> popular = new ArrayList<ModeloEmailDTO>();
idModelosEmails.addOption("", UtilI18N.internacionaliza(request, "requisitosla.selecione"));
if (cols != null) {
for (ModeloEmailDTO modeloEmailDTO : cols)
popular.add(modeloEmailDTO);
idModelosEmails.addOptions(popular, "idModeloEmail", "titulo", null);
}
}
@SuppressWarnings({ "rawtypes", "unchecked" })
public void preencherComboModelosEmailsFinalizacao(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
ModeloEmailService modeloEmailService = (ModeloEmailService) ServiceLocator.getInstance().getService(ModeloEmailService.class, null);
HTMLSelect idModelosEmails = (HTMLSelect) document.getSelectById("idModeloEmailFinalizacao");
idModelosEmails.removeAllOptions();
ArrayList<ModeloEmailDTO> cols = (ArrayList) modeloEmailService.getAtivos();
ArrayList<ModeloEmailDTO> popular = new ArrayList<ModeloEmailDTO>();
idModelosEmails.addOption("", UtilI18N.internacionaliza(request, "requisitosla.selecione"));
if (cols != null) {
for (ModeloEmailDTO modeloEmailDTO : cols)
popular.add(modeloEmailDTO);
idModelosEmails.addOptions(popular, "idModeloEmail", "titulo", null);
}
}
@SuppressWarnings({ "rawtypes", "unchecked" })
public void preencherComboModelosEmailsDemais(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
ModeloEmailService modeloEmailService = (ModeloEmailService) ServiceLocator.getInstance().getService(ModeloEmailService.class, null);
HTMLSelect idModelosEmails = (HTMLSelect) document.getSelectById("idModeloEmailAcoes");
idModelosEmails.removeAllOptions();
ArrayList<ModeloEmailDTO> cols = (ArrayList) modeloEmailService.getAtivos();
ArrayList<ModeloEmailDTO> popular = new ArrayList<ModeloEmailDTO>();
idModelosEmails.addOption("", UtilI18N.internacionaliza(request, "requisitosla.selecione"));
if (cols != null) {
for (ModeloEmailDTO modeloEmailDTO : cols)
popular.add(modeloEmailDTO);
idModelosEmails.addOptions(popular, "idModeloEmail", "titulo", null);
}
}
@SuppressWarnings({ "rawtypes", "unchecked" })
public void preencherComboGrupoEscalacao(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
GrupoService grupoService = (GrupoService) ServiceLocator.getInstance().getService(GrupoService.class, null);
HTMLSelect idGrupoEscalacao = (HTMLSelect) document.getSelectById("idGrupoNivel1");
idGrupoEscalacao.removeAllOptions();
ArrayList<GrupoDTO> cols = (ArrayList) grupoService.listaGruposAtivos();
ArrayList<GrupoDTO> popular = new ArrayList<GrupoDTO>();
idGrupoEscalacao.addOption("", UtilI18N.internacionaliza(request, "requisitosla.selecione"));
if (cols != null) {
for (GrupoDTO grupoDTO : cols)
popular.add(grupoDTO);
idGrupoEscalacao.addOptions(popular, "idGrupo", "nome", null);
}
}
@SuppressWarnings({ "rawtypes", "unchecked" })
public void preencherComboGrupoExecutor(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
GrupoService grupoService = (GrupoService) ServiceLocator.getInstance().getService(GrupoService.class, null);
HTMLSelect idGrupoEscalacao = (HTMLSelect) document.getSelectById("idGrupoExecutor");
idGrupoEscalacao.removeAllOptions();
ArrayList<GrupoDTO> cols = (ArrayList) grupoService.listaGruposAtivos();
ArrayList<GrupoDTO> popular = new ArrayList<GrupoDTO>();
idGrupoEscalacao.addOption("", UtilI18N.internacionaliza(request, "requisitosla.selecione"));
if (cols != null) {
for (GrupoDTO grupoDTO : cols)
popular.add(grupoDTO);
idGrupoEscalacao.addOptions(popular, "idGrupo", "nome", null);
}
}
@SuppressWarnings({ "rawtypes", "unchecked" })
public void preencherComboGrupoAprovador(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
GrupoService grupoService = (GrupoService) ServiceLocator.getInstance().getService(GrupoService.class, null);
HTMLSelect idGrupoEscalacao = (HTMLSelect) document.getSelectById("idGrupoAprovador");
idGrupoEscalacao.removeAllOptions();
ArrayList<GrupoDTO> cols = (ArrayList) grupoService.listaGruposAtivos();
ArrayList<GrupoDTO> popular = new ArrayList<GrupoDTO>();
idGrupoEscalacao.addOption("", UtilI18N.internacionaliza(request, "requisitosla.selecione"));
if (cols != null) {
for (GrupoDTO grupoDTO : cols)
popular.add(grupoDTO);
idGrupoEscalacao.addOptions(popular, "idGrupo", "nome", null);
}
}
@SuppressWarnings({ "rawtypes", "unchecked" })
public void preencherCalendario(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
CalendarioService calendarioService = (CalendarioService) ServiceLocator.getInstance().getService(CalendarioService.class, null);
HTMLSelect idCalendario = (HTMLSelect) document.getSelectById("idCalendario");
idCalendario.removeAllOptions();
ArrayList<CalendarioDTO> cols = (ArrayList) calendarioService.list();
ArrayList<CalendarioDTO> popular = new ArrayList<CalendarioDTO>();
idCalendario.addOption("", UtilI18N.internacionaliza(request, "requisitosla.selecione"));
if (cols != null) {
for (CalendarioDTO calendarioDTO : cols)
popular.add(calendarioDTO);
idCalendario.addOptions(popular, "idCalendario", "descricao", null);
}
}
@SuppressWarnings({ "rawtypes", "unchecked" })
public void preencherComboFluxo(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
FluxoService fluxoService = (FluxoService) ServiceLocator.getInstance().getService(FluxoService.class, null);
HTMLSelect idtipofluxo = (HTMLSelect) document.getSelectById("idtipofluxo");
idtipofluxo.removeAllOptions();
ArrayList<FluxoDTO> cols = (ArrayList) fluxoService.list();
ArrayList<FluxoDTO> popular = new ArrayList<FluxoDTO>();
idtipofluxo.addOption("", UtilI18N.internacionaliza(request, "requisitosla.selecione"));
if (cols != null) {
for (FluxoDTO fluxoDTO : cols)
popular.add(fluxoDTO);
idtipofluxo.addOptions(popular, "idtipofluxo", "descricao", null);
}
}
@SuppressWarnings({ "rawtypes", "unchecked" })
public void preencherComboFase(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
FaseServicoService faseServicoService = (FaseServicoService) ServiceLocator.getInstance().getService(FaseServicoService.class, null);
HTMLSelect idfase = (HTMLSelect) document.getSelectById("idfase");
idfase.removeAllOptions();
ArrayList<FaseServicoDTO> cols = (ArrayList) faseServicoService.list();
ArrayList<FaseServicoDTO> popular = new ArrayList<FaseServicoDTO>();
idfase.addOption("", UtilI18N.internacionaliza(request, "requisitosla.selecione"));
if (cols != null) {
for (FaseServicoDTO faseServicoDTO : cols)
popular.add(faseServicoDTO);
idfase.addOptions(popular, "idfase", "nomefase", null);
}
}
}