package gcom.relatorio.cadastro.atualizacaocadastral;
import java.util.Collection;
import java.util.Date;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionForm;
import gcom.cadastro.SituacaoAtualizacaoCadastral;
import gcom.fachada.Fachada;
import gcom.gui.ActionServletException;
import gcom.gui.relatorio.cadastro.atualizacaocadastral.RelatorioImoveisSituacaoPeriodoActionForm;
import gcom.seguranca.acesso.usuario.Usuario;
import gcom.tarefa.TarefaRelatorio;
import gcom.util.Util;
public class RelatorioImoveisSituacaoPeriodoBO {
private RelatorioImoveisSituacaoPeriodoActionForm form;
private String dataInicial;
private String dataFinal;
private String idSituacaoCadastral;
private Usuario usuario;
private String tipoRelatorio;
public RelatorioImoveisSituacaoPeriodoBO(ActionForm actionForm, HttpServletRequest request) {
this.form = (RelatorioImoveisSituacaoPeriodoActionForm) actionForm;
this.dataInicial = (String) form.getDataInicial();
this.dataFinal = (String) form.getDataFinal();
this.idSituacaoCadastral = (String) form.getIdSituacaoCadastral();
this.usuario = (Usuario) (request.getSession(false)).getAttribute("usuarioLogado");
this.tipoRelatorio = request.getParameter("tipoRelatorio");
}
public RelatorioImoveisSituacaoPeriodo getRelatorioImoveisSituacaoPeriodo() {
if (idSituacaoCadastral.equals("-1"))
throw new ActionServletException("atencao.campo_texto.obrigatorio", "Situa��o");
if (temPeriodo()) {
if (dataInicial != null && dataInicial.equals(""))
throw new ActionServletException("atencao.data.inicial.invalida");
if (dataFinal != null && dataFinal.equals(""))
throw new ActionServletException("atencao.data.final.invalida");
}
RelatorioImoveisSituacaoPeriodo relatorio = new RelatorioImoveisSituacaoPeriodo(usuario);
relatorio.addParametro("descricaoSituacaoCadastral", getSituacaoAtualizacaoCadastral());
relatorio.addParametro("dataInicial", dataInicial);
relatorio.addParametro("dataFinal", dataFinal);
relatorio.addParametro("tipoFormatoRelatorio", getTipoFormatoRelatorio());
relatorio.addParametro("colecaoImoveis", getImoveis(
Util.converteStringParaDate(dataInicial), Util.converteStringParaDate(dataFinal), Integer.valueOf(idSituacaoCadastral)));
return relatorio;
}
private boolean temPeriodo() {
return idSituacaoCadastral.equals(SituacaoAtualizacaoCadastral.DISPONIVEL.toString())
|| idSituacaoCadastral.equals(SituacaoAtualizacaoCadastral.TRANSMITIDO.toString())
|| idSituacaoCadastral.equals(SituacaoAtualizacaoCadastral.APROVADO.toString())
|| idSituacaoCadastral.equals(SituacaoAtualizacaoCadastral.ATUALIZADO.toString());
}
private String getSituacaoAtualizacaoCadastral() {
SituacaoAtualizacaoCadastral situacao = Fachada.getInstancia().pesquisarSituacaoAtualizacaoCadastralPorId(Integer.valueOf(idSituacaoCadastral));
return situacao.getDescricao();
}
private Collection<Integer> getImoveis(Date dataInicial, Date dataFinal, Integer idSituacaoCadastral) {
return Fachada.getInstancia().pesquisarImoveisPorSituacaoPeriodo(dataInicial, dataFinal, idSituacaoCadastral);
}
public RelatorioImoveisSituacaoPeriodoActionForm getForm() {
return form;
}
public String getDataInicial() {
return dataInicial;
}
public String getDataFinal() {
return dataFinal;
}
public String getIdSituacaoCadastral() {
return idSituacaoCadastral;
}
private int getTipoFormatoRelatorio() {
if (tipoRelatorio == null) {
tipoRelatorio = TarefaRelatorio.TIPO_PDF + "";
}
return Integer.parseInt(tipoRelatorio);
}
}