package gcom.relatorio.atendimentopublico;
import gcom.atendimentopublico.ordemservico.ServicoTipo;
import gcom.atendimentopublico.ordemservico.bean.RelatorioBoletimOrdensServicoConcluidasHelper;
import gcom.batch.Relatorio;
import gcom.cadastro.imovel.Imovel;
import gcom.cadastro.localidade.Localidade;
import gcom.cadastro.localidade.Quadra;
import gcom.cadastro.localidade.SetorComercial;
import gcom.cadastro.sistemaparametro.SistemaParametro;
import gcom.fachada.Fachada;
import gcom.gui.ActionServletException;
import gcom.relatorio.ConstantesRelatorios;
import gcom.relatorio.RelatorioDataSource;
import gcom.seguranca.acesso.usuario.Usuario;
import gcom.tarefa.TarefaException;
import gcom.tarefa.TarefaRelatorio;
import gcom.util.ControladorException;
import gcom.util.Util;
import gcom.util.agendadortarefas.AgendadorTarefas;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
/**
* [UC0766] - Relatorio Boletim de Ordens de Servico Concluidas
*
* @author Ivan S�rgio
* @created 07/05/2008
*
*/
public class RelatorioBoletimOrdensServicoConcluidas extends TarefaRelatorio {
private static final long serialVersionUID = 1L;
public RelatorioBoletimOrdensServicoConcluidas(Usuario usuario) {
super(usuario,
ConstantesRelatorios.RELATORIO_BOLETIM_ORDENS_SERVICO_CONCLUIDAS);
}
@Deprecated
public RelatorioBoletimOrdensServicoConcluidas() {
super(null, "");
}
public Object executar() throws TarefaException {
// ------------------------------------
Integer idFuncionalidadeIniciada = this.getIdFuncionalidadeIniciada();
// ------------------------------------
String idFirma = (String) getParametro("idFirma");
String idLocalidade = (String) getParametro("idLocalidade");
String idSetorComercial = (String) getParametro("idSetorComercial");
String anoMesReferenciaEncerramento = (String) getParametro("anoMesReferenciaEncerramento");
String situacao = (String) getParametro("situacao");
int tipoFormatoRelatorio = (Integer) getParametro("tipoFormatoRelatorio");
// valor de retorno
byte[] retorno = null;
// cole��o de beans do relat�rio
List relatorioBeans = new ArrayList();
Fachada fachada = Fachada.getInstancia();
RelatorioBoletimOrdensServicoConcluidasBean relatorioBean = null;
Integer empresa = new Integer(idFirma);
Integer localidade = null;
if (idLocalidade != null) {
if (!idLocalidade.equals("")) {
localidade = new Integer(idLocalidade);
}
}
Integer setorComercial = null;
if (idSetorComercial != null) {
if (!idSetorComercial.equals("")) {
setorComercial = new Integer(idSetorComercial);
}
}
String referenciaEncerramento = Util.formatarMesAnoParaAnoMesSemBarra(anoMesReferenciaEncerramento);
Short situacaoBoletim = new Short(situacao);
Collection colecaoDadosHelper = fachada
.pesquisarBoletimOrdensServicoConcluidasGerarRelatorio(
empresa, localidade, setorComercial, referenciaEncerramento, situacaoBoletim);
if (colecaoDadosHelper != null && !colecaoDadosHelper.isEmpty()) {
Iterator iColecaoDados = colecaoDadosHelper.iterator();
while (iColecaoDados.hasNext()) {
RelatorioBoletimOrdensServicoConcluidasHelper helper =
(RelatorioBoletimOrdensServicoConcluidasHelper) iColecaoDados.next();
relatorioBean = new RelatorioBoletimOrdensServicoConcluidasBean();
relatorioBean.setIdOrdemServico(helper.getIdOrdemServico().toString());
Integer mes = new Integer(helper.getAnoMesReferenciaBoletim().toString().substring(4, 6));
String ano = helper.getAnoMesReferenciaBoletim().toString().substring(0, 4);
relatorioBean.setReferenciaEncerramentoMes(Util.retornaDescricaoMes(mes));
relatorioBean.setReferenciaEncerramentoAno(ano);
if (situacaoBoletim == 1) {
relatorioBean.setSituacao("EM FISCALIZA��O/APROVADAS");
}else {
relatorioBean.setSituacao("REPROVADAS");
}
relatorioBean.setIdImovel(helper.getIdImovel().toString());
relatorioBean.setIdLocalidade(helper.getIdLocalidade().toString());
relatorioBean.setNomeLocalidade(helper.getDescricaoLocalidade());
relatorioBean.setIdLocalInstalacao(helper.getIdLocalInstalacaoHidrometro().toString());
relatorioBean.setDescricaoLocalInstalacao(helper.getDescricaoLocalInstalacaoHidrometro());
relatorioBean.setNomeAbreviadoFirma(helper.getDescricaoAbreviadaFirma());
// Inscricao do Imovel
Imovel imovel = new Imovel();
Localidade local = new Localidade();
local.setId(helper.getIdLocalidade());
SetorComercial setor = new SetorComercial();
setor.setCodigo(helper.getCodigoSetorComercial());
Quadra quadra = new Quadra();
quadra.setNumeroQuadra(helper.getNumeroQuadra());
imovel.setLocalidade(local);
imovel.setSetorComercial(setor);
imovel.setQuadra(quadra);
imovel.setLote(helper.getLote());
imovel.setSubLote(helper.getSubLote());
relatorioBean.setInscricao(imovel.getInscricaoFormatada());
//*****************************************************************************
relatorioBean.setIdSetorComercial(helper.getIdSetorComercial().toString());
relatorioBean.setCodigoSetorComercial(helper.getCodigoSetorComercial().toString());
relatorioBean.setIdOrdemServico(helper.getIdOrdemServico().toString());
if (helper.getIdTipoServico().equals(ServicoTipo.TIPO_EFETUAR_INSTALACAO_HIDROMETRO)) {
relatorioBean.setTipoServico("INST");
}else if(helper.getIdTipoServico().equals(ServicoTipo.TIPO_EFETUAR_SUBSTITUICAO_HIDROMETRO)){
relatorioBean.setTipoServico("SUBST");
}else if(helper.getIdTipoServico().equals(ServicoTipo.TIPO_EFETUAR_REMOCAO_HIDROMETRO)){
relatorioBean.setTipoServico("REMOC");
}
if (helper.getIndicadorTorcaProtecaoHidrometro() == 1) {
relatorioBean.setTrocaProtecao("SIM");
}else {
relatorioBean.setTrocaProtecao("NAO");
}
if (helper.getIndicadorTorcaRegistroHidrometro() == 1) {
relatorioBean.setTrocaRegistro("SIM");
}else {
relatorioBean.setTrocaRegistro("NAO");
}
relatorioBean.setDataGeracaoOrdemServico(helper.getDataGeracaoOrdemServico());
relatorioBean.setDataEncerramentoOrdemServico(helper.getDataEncerramentoOrdemServico());
relatorioBean.setDataFiscalizacao1(helper.getDataFiscalizacao1());
relatorioBean.setDataFiscalizacao2(helper.getDataFiscalizacao2());
relatorioBean.setDataFiscalizacao3(helper.getDataFiscalizacao3());
String paga = "";
if (helper.getCodigoFiscalizaco() == 2 &&
helper.getDataEncerramentoBoletim() != null &&
!helper.getDataEncerramentoBoletim().equals("")) {
paga = "SIM";
}
relatorioBean.setPaga(paga);
// adiciona o bean a cole��o
relatorioBeans.add(relatorioBean);
}
// Par�metros do relat�rio
Map parametros = new HashMap();
SistemaParametro sistemaParametro = fachada.pesquisarParametrosDoSistema();
parametros.put("imagem", sistemaParametro.getImagemRelatorio());
// cria uma inst�ncia do dataSource do relat�rio
RelatorioDataSource ds = new RelatorioDataSource(relatorioBeans);
retorno = gerarRelatorio(
ConstantesRelatorios.RELATORIO_BOLETIM_ORDENS_SERVICO_CONCLUIDAS,
parametros, ds, tipoFormatoRelatorio);
// Grava o relat�rio no sistema
try {
persistirRelatorioConcluido(retorno,
Relatorio.RELATORIO_BOLETIM_ORDENS_SERVICO_CONCLUIDAS,
idFuncionalidadeIniciada);
} catch (ControladorException e) {
e.printStackTrace();
throw new TarefaException("Erro ao gravar relat�rio no sistema", e);
}
// ------------------------------------
}else {
throw new ActionServletException("atencao.pesquisa.nenhumresultado");
}
// retorna o relat�rio gerado
return retorno;
}
@Override
public int calcularTotalRegistrosRelatorio() {
return 0;
}
public void agendarTarefaBatch() {
AgendadorTarefas.agendarTarefa("RelatorioBoletimOrdensServicoConcluidas",
this);
}
}