package gcom.relatorio.atendimentopublico;
import gcom.batch.Relatorio;
import gcom.cadastro.imovel.Categoria;
import gcom.cadastro.imovel.FiltroCategoria;
import gcom.cadastro.imovel.FiltroSubCategoria;
import gcom.cadastro.imovel.Subcategoria;
import gcom.cadastro.sistemaparametro.SistemaParametro;
import gcom.fachada.Fachada;
import gcom.gui.ActionServletException;
import gcom.relatorio.ConstantesRelatorios;
import gcom.relatorio.RelatorioDataSource;
import gcom.relatorio.RelatorioEmitirOrdemServicoSeletivaAnaliticoSubrelatorioBean;
import gcom.relatorio.atendimentopublico.bean.ImovelEmissaoOrdensSeletivasHelper;
import gcom.seguranca.acesso.usuario.Usuario;
import gcom.tarefa.TarefaException;
import gcom.tarefa.TarefaRelatorio;
import gcom.util.ConstantesSistema;
import gcom.util.ControladorException;
import gcom.util.agendadortarefas.AgendadorTarefas;
import gcom.util.filtro.ParametroSimples;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
/**
*
* [UC0711] - Emitir Ordem de Servico Seletiva
* Relat�rio Ordem Seletiva Anal�tico
*
* @author Hugo Amorim
* @date 03/03/2010
*/
public class RelatorioEmitirOrdemServicoSeletivaAnalitico extends
TarefaRelatorio {
/**
*
*/
private static final long serialVersionUID = 1L;
public RelatorioEmitirOrdemServicoSeletivaAnalitico(Usuario usuario) {
super(usuario, ConstantesRelatorios.RELATORIO_EMITIR_ORDEM_SERVICO_SELETIVA);
}
@Deprecated
public RelatorioEmitirOrdemServicoSeletivaAnalitico() {
super(null, "");
}
@Override
public int calcularTotalRegistrosRelatorio() {
int retorno = 0;
retorno = Fachada
.getInstancia()
.filtrarImovelEmissaoOrdensSeletivasCount(gerarObjetoHelper());
if(retorno == 0){
throw new ActionServletException("atencao.pesquisa.nenhumresultado", null, "");
}
return retorno;
}
@Override
public void agendarTarefaBatch() {
AgendadorTarefas.agendarTarefa("RelatorioEmitirOrdemServicoSeletivaAnalitico", this);
}
@Override
public Object executar() throws TarefaException {
byte[] retorno = null;
Integer idFuncionalidadeIniciada = this.getIdFuncionalidadeIniciada();
ImovelEmissaoOrdensSeletivasHelper helper = gerarObjetoHelper();
int tipoFormatoRelatorio = (Integer) getParametro("tipoFormatoRelatorio");
Fachada fachada = Fachada.getInstancia();
SistemaParametro sistemaParametro = fachada.pesquisarParametrosDoSistema();
List relatorioBeans = new ArrayList();
//[UC0711] Filtro para Emissao de Ordens Seletivas
Collection<Integer> colecaoIdsImoveis = fachada.filtrarImovelEmissaoOrdensSeletivas(helper);
/*
String anoMesFaturamento =
Util.subtraiAteSeisMesesAnoMesReferencia(
sistemaParametro.getAnoMesFaturamento(), 1).toString();
String tipoOrdem = helper.getTipoOrdem();
String idElo = helper.getElo();
String idLocalidadeIncial = helper.getLocalidadeInicial();
String idLocalidadeFinal = helper.getLocalidadeFinal();
String codigoSetorComercialInicial = helper.getCodigoSetorComercialInicial();
String codigoSetorComercialFinal =helper.getCodigoSetorComercialFinal();
//CRIA��O DO ARQUIVO
String nomeZip = "ORDEM_DE_" + tipoOrdem + "_DE_HIDROMETRO_";
if (idElo != null && !idElo.equals("")) {
nomeZip += idElo + "_" + Util.formatarDataComHora(new Date()).replace("/", "_").replace(":", "_");
}else if (idLocalidadeIncial != null && !idLocalidadeIncial.equals("")
&& idLocalidadeFinal != null && !idLocalidadeFinal.equals("")
&& codigoSetorComercialInicial != null && !codigoSetorComercialInicial.equals("")
&& codigoSetorComercialFinal != null && !codigoSetorComercialFinal.equals("")){
nomeZip += idLocalidadeIncial + "_" + idLocalidadeFinal + "_" +
codigoSetorComercialInicial + "_" + codigoSetorComercialFinal + "_" +
Util.formatarDataComHora(new Date()).replace("/", "_").replace(":", "_");
}else if (idLocalidadeIncial != null && !idLocalidadeIncial.equals("")
&& idLocalidadeFinal != null && !idLocalidadeFinal.equals("")) {
nomeZip += idLocalidadeIncial + "_" + idLocalidadeFinal + "_" +
Util.formatarDataComHora(new Date()).replace("/", "_").replace(":", "_");
}else {
nomeZip += Util.formatarDataComHora(new Date()).replace("/", "_").replace(":", "_");
}
nomeZip = nomeZip.replace(" ", "_");
File compactado = null;
ZipOutputStream zos = null;
File leitura = null;
BufferedWriter out = null;
try{
compactado = new File(nomeZip + ".zip"); // nomeZip
zos = new ZipOutputStream(new FileOutputStream(compactado));
leitura = new File(nomeZip + ".txt");
out = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream(leitura.getAbsolutePath())));
//FIM CRIA��O DO ARQUIVO
String idProjeto = null;
Integer idTipoServico = null;
Integer idEmpresa = null;
Integer idOrdemServico = null;
StringBuilder documentoTxt = new StringBuilder();
*/
Collection<RelatorioEmitirOrdemServicoSeletivaAnaliticoSubrelatorioBean>
colecaoSubcategorias = this.pesquisarSubcategorias(fachada);
RelatorioEmitirOrdemServicoSeletivaAnaliticoBean bean = null;
for (Integer idImovel : colecaoIdsImoveis) {
/*
if (helper.getTipoOrdem().equals(ImovelEmissaoOrdensSeletivasActionForm.TIPO_ORDEM_INSTALACAO)) {
idTipoServico = ServicoTipo.TIPO_EFETUAR_INSTALACAO_HIDROMETRO;
}else if (helper.getTipoOrdem().equals(ImovelEmissaoOrdensSeletivasActionForm.TIPO_ORDEM_SUBSTITUICAO)){
idTipoServico = ServicoTipo.TIPO_EFETUAR_SUBSTITUICAO_HIDROMETRO;
}else if (helper.getTipoOrdem().equals(ImovelEmissaoOrdensSeletivasActionForm.TIPO_ORDEM_REMOCAO)){
idTipoServico = ServicoTipo.TIPO_EFETUAR_REMOCAO_HIDROMETRO;
}
idEmpresa = Util.converterStringParaInteger(helper.getFirma());
idProjeto = (String) getParametro("idProjeto");
// [UC0430] - Gerar Ordem de Servico
idOrdemServico = geraOrdemServico(idTipoServico, idEmpresa, idImovel, idProjeto);
documentoTxt = this.gerarLinhaTxt(idImovel,idOrdemServico,helper,fachada,anoMesFaturamento,idTipoServico);
out.write(documentoTxt.toString());
*/
bean = fachada
.pesquisarDadosRelatorioRelatorioEmitirOsSeletivaAnalitico(
idImovel,colecaoSubcategorias,sistemaParametro);
//bean.setNumeroOs(idOrdemServico.toString());
if(bean!=null){
relatorioBeans.add(bean);
}
}
/*
//Finaliza estrutura do arquivo
documentoTxt.append("\u0004");
out.write(documentoTxt.toString());
out.close();
ZipUtil.adicionarArquivo(zos, leitura);
zos.close();
leitura.delete();
} catch (IOException e) {
e.printStackTrace();
throw new TarefaException("Erro ao gerar arquivo.");
}
*/
Map parametros = new HashMap();
parametros.put("imagem", sistemaParametro.getImagemRelatorio());
RelatorioDataSource ds = new RelatorioDataSource((List) relatorioBeans);
// ------------------------------------
// Gera o relat�rio
retorno = gerarRelatorio(
ConstantesRelatorios.RELATORIO_EMITIR_ORDEM_SERVICO_SELETIVA_ANALITICO,
parametros, ds, tipoFormatoRelatorio);
// Fim
// ------------------------------------
// ------------------------------------
// Grava o relat�rio no sistema
try {
persistirRelatorioConcluido(retorno, Relatorio.RELATORIO_EMITIR_ORDEM_SERVICO_SELETIVA_ANALITICO,
idFuncionalidadeIniciada);
} catch (ControladorException e) {
e.printStackTrace();
throw new TarefaException("Erro ao gravar relat�rio no sistema", e);
}
// Fim
// ------------------------------------
return retorno;
}
private Collection<RelatorioEmitirOrdemServicoSeletivaAnaliticoSubrelatorioBean>
pesquisarSubcategorias(Fachada fachada) {
Collection<RelatorioEmitirOrdemServicoSeletivaAnaliticoSubrelatorioBean> retorno =
new ArrayList<RelatorioEmitirOrdemServicoSeletivaAnaliticoSubrelatorioBean>();
FiltroCategoria filtroCategoria = new FiltroCategoria();
filtroCategoria.setConsultaSemLimites(true);
filtroCategoria.setCampoOrderBy(FiltroCategoria.DESCRICAO);
filtroCategoria.adicionarParametro(
new ParametroSimples(FiltroCategoria.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
Collection<Categoria> colecaoCategoria =
fachada.pesquisar(filtroCategoria, Categoria.class.getName());
for (Categoria categoria : colecaoCategoria) {
FiltroSubCategoria filtroSubCategoria = new FiltroSubCategoria();
filtroSubCategoria.setCampoOrderBy(FiltroSubCategoria.CATEGORIA_ID);
filtroSubCategoria.adicionarParametro(
new ParametroSimples(FiltroSubCategoria.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
filtroSubCategoria.adicionarParametro(
new ParametroSimples(FiltroSubCategoria.CATEGORIA_ID,
categoria.getId()));
filtroSubCategoria.adicionarCaminhoParaCarregamentoEntidade(FiltroSubCategoria.CATEGORIA);
Collection<Subcategoria> colecaoSubcategorias = fachada.pesquisar(filtroSubCategoria, Subcategoria.class.getName());
RelatorioEmitirOrdemServicoSeletivaAnaliticoSubrelatorioBean catBean =
new RelatorioEmitirOrdemServicoSeletivaAnaliticoSubrelatorioBean(
categoria.getDescricao(),
null
);
retorno.add(catBean);
String subs = "";
int count = 0;
for (Iterator iterator = colecaoSubcategorias.iterator(); iterator.hasNext();) {
Subcategoria subcategoria = (Subcategoria) iterator.next();
count++;
subs += " ( ) " + subcategoria.getDescricao()+" ";
if(subs.length()>50){
RelatorioEmitirOrdemServicoSeletivaAnaliticoSubrelatorioBean subBean =
new RelatorioEmitirOrdemServicoSeletivaAnaliticoSubrelatorioBean(
subs,
null
);
subs="";
count =0;
retorno.add(subBean);
}else if(count==5){
RelatorioEmitirOrdemServicoSeletivaAnaliticoSubrelatorioBean subBean =
new RelatorioEmitirOrdemServicoSeletivaAnaliticoSubrelatorioBean(
subs,
null
);
subs="";
count =0;
retorno.add(subBean);
}else if(!iterator.hasNext()){
RelatorioEmitirOrdemServicoSeletivaAnaliticoSubrelatorioBean subBean =
new RelatorioEmitirOrdemServicoSeletivaAnaliticoSubrelatorioBean(
subs,
null
);
retorno.add(subBean);
}
}
}
return retorno;
}
/*
private StringBuilder gerarLinhaTxt(
Integer idImovel,Integer idOrdemServico,
ImovelEmissaoOrdensSeletivasHelper helper,
Fachada fachada, String anoMesFaturamento, Integer idTipoServico) {
Imovel imovel = null;
Cliente cliente = null;
ClienteFone clienteFone = null;
boolean achou = false;
Collection colecaoEconomiasCategoria = null;
Categoria entCategoria = null;
Hidrometro hidrometro = null;
HidrometroInstalacaoHistorico hidrometroInstalacaoHistorico = null;
StringBuilder documentoTxt = new StringBuilder();
// Numero de Ordem
documentoTxt.append(Util.completaStringComEspacoAEsquerda(
Util.adicionarZerosEsquedaNumero(9, idOrdemServico.toString()), 9));
// Data de Emissao
String dataAtual = Util.formatarData(new Date());
documentoTxt.append(Util.completaString(dataAtual, 10));
// Data de Validade
String dataValidade = "";
Date data = Util.adicionarNumeroDiasDeUmaData(new Date(), 90);
// Adiciona 0 ao dia se necessario
if (Util.getDiaMes(data) < 10) {
dataValidade = "0" + Util.getDiaMes(data) + "/";
}else {
dataValidade = Util.getDiaMes(data) + "/";
}
// Adiciona 0 ao mes se necessario
if (Util.getMes(data) < 10) {
dataValidade += "0" + Util.getMes(data) + "/" + Util.getAno(data);
}else {
dataValidade += Util.getMes(data) + "/" + Util.getAno(data);
}
documentoTxt.append(Util.completaString(dataValidade, 10));
// Matricula do Imovel
documentoTxt.append(Util.completaStringComEspacoAEsquerda(
Util.adicionarZerosEsquedaNumero(9, idImovel.toString()), 9));
// Inscricao
//imovel = new Imovel();
imovel = fachada.pesquisarImovel(idImovel);
documentoTxt.append(Util.completaString(imovel.getInscricaoFormatada(), 20));
*//**
* Dados do Cliente
*//*
cliente = new Cliente();
cliente = fachada.consultarClienteUsuarioImovel(imovel);
// Numero Telefone
String telefone = "";
if (!cliente.getClienteFones().isEmpty()) {
Iterator iClienteFone = cliente.getClienteFones().iterator();
clienteFone = new ClienteFone();
while (iClienteFone.hasNext() & !achou) {
clienteFone = (ClienteFone) iClienteFone.next();
if (clienteFone.getIndicadorTelefonePadrao().equals(ClienteFone.INDICADOR_FONE_PADRAO)) {
telefone = clienteFone.getTelefone();
achou = true;
}
}
}
documentoTxt.append(Util.completaString(telefone, 9));
// Nome do Cliente
documentoTxt.append(Util.completaString(cliente.getNome(), 40));
// CPF/CNPJ do Cliente
String cpfCnpj = "";
if (cliente.getCpf() != null) {
cpfCnpj = Util.completaStringComEspacoAEsquerda(cliente.getCpfFormatado(), 19);
}else if (cliente.getCnpj() != null) {
cpfCnpj = Util.completaStringComEspacoAEsquerda(cliente.getCnpjFormatado(), 19);
}else {
cpfCnpj = Util.completaStringComEspacoAEsquerda("", 19);
}
documentoTxt.append(cpfCnpj);
// Quantidade de Economias por Categoria
colecaoEconomiasCategoria = fachada.obterQuantidadeEconomiasCategoria(imovel);
if (colecaoEconomiasCategoria != null && !colecaoEconomiasCategoria.isEmpty()) {
Iterator icolecaoEconomiasCategoria = colecaoEconomiasCategoria.iterator();
entCategoria = new Categoria();
int x = 0;
while ( (icolecaoEconomiasCategoria.hasNext()) || (x < 4)) {
if (icolecaoEconomiasCategoria.hasNext()) {
entCategoria = (Categoria) icolecaoEconomiasCategoria.next();
documentoTxt.append(Util.completaStringComEspacoAEsquerda(
Util.adicionarZerosEsquedaNumero(4, entCategoria.
getQuantidadeEconomiasCategoria().toString()), 4));
//quantidadeEconomias += entCategoria.getQuantidadeEconomiasCategoria();
}else {
documentoTxt.append("0000");
}
x++;
}
//documentoTxt.append(Util.completaStringComEspacoAEsquerda(""+quantidadeEconomias, 4));
//quantidadeEconomias = 0;
}else {
documentoTxt.append("0000000000000000");
}
// Perfil do Imovel
documentoTxt.append(Util.completaString(imovel.getImovelPerfil().getDescricao(), 15));
// Endereco Abreviado do Imovel
String enderecoAbreviado = "";
enderecoAbreviado = fachada.pesquisarEndereco(idImovel);
documentoTxt.append(Util.completaString(enderecoAbreviado, 55));
// Situacao de Esgoto
documentoTxt.append(Util.completaString(imovel.getLigacaoEsgotoSituacao().getDescricao(), 10));
// Consumo Minimo
String consumoMinimo = "";
if (imovel.getLigacaoEsgoto() != null) {
if (imovel.getLigacaoEsgoto().getConsumoMinimo() != null) {
consumoMinimo = ""+imovel.getLigacaoEsgoto().getConsumoMinimo();
}
}
documentoTxt.append(Util.completaString(
Util.adicionarZerosEsquedaNumero(5, consumoMinimo), 5));
// Situacao de Agua
documentoTxt.append(Util.completaString(imovel.getLigacaoAguaSituacao().getDescricao(), 15));
*//**
* Caso o Tipo de Ordem seja SUBSTITUICAO
*//*
if (idTipoServico.equals(ServicoTipo.TIPO_EFETUAR_SUBSTITUICAO_HIDROMETRO)) {
LigacaoAgua ligacaoAgua = imovel.getLigacaoAgua();
if (ligacaoAgua.getHidrometroInstalacaoHistorico() != null) {
//hidrometro = new Hidrometro();
hidrometro = ligacaoAgua.getHidrometroInstalacaoHistorico().getHidrometro();
Integer idHidrometro = hidrometro.getId();
// Cria o Filtro para Hidrometro
FiltroHidrometro filtroHidrometro = new FiltroHidrometro();
filtroHidrometro.adicionarParametro(new ParametroSimples(
FiltroHidrometro.ID, idHidrometro));
filtroHidrometro.adicionarCaminhoParaCarregamentoEntidade("hidrometroMarca");
filtroHidrometro.adicionarCaminhoParaCarregamentoEntidade("hidrometroCapacidade");
filtroHidrometro.adicionarCaminhoParaCarregamentoEntidade("hidrometroDiametro");
Collection<Hidrometro> colecaoHidrometro =
fachada.pesquisar(filtroHidrometro, Hidrometro.class.getName());
Iterator iColecaoHidrometro = colecaoHidrometro.iterator();
Hidrometro dadosHidrometro = (Hidrometro) iColecaoHidrometro.next();
// Marca Hidrometro
documentoTxt.append(Util.completaString(dadosHidrometro.getHidrometroMarca().
getDescricao(), 15));
// Capacidade Hidrometro
documentoTxt.append(Util.completaString(dadosHidrometro.getHidrometroCapacidade().
getDescricaoAbreviada(), 6));
// Numero do Hidrometro
documentoTxt.append(Util.completaString(hidrometro.getNumero(), 10));
// Diametro do Hidrometro
documentoTxt.append(Util.completaString(dadosHidrometro.getHidrometroDiametro().
getDescricaoAbreviada(), 5));
// Local de Instalacao do Hidrometro
hidrometroInstalacaoHistorico = ligacaoAgua.getHidrometroInstalacaoHistorico();
documentoTxt.append(Util.completaString(hidrometroInstalacaoHistorico.
getHidrometroLocalInstalacao().getDescricaoAbreviada(), 5));
// Leitura Hidrometro
FiltroMedicaoHistorico filtroMedicaoHistorico = new FiltroMedicaoHistorico();
filtroMedicaoHistorico.adicionarParametro(new ParametroSimples(
FiltroMedicaoHistorico.LIGACAO_AGUA_ID, ligacaoAgua.getId()));
if (helper.getTipoMedicao().equals(MedicaoTipo.LIGACAO_AGUA.toString())) {
filtroMedicaoHistorico.adicionarParametro(new ParametroSimples(
FiltroMedicaoHistorico.MEDICAO_TIPO_ID, MedicaoTipo.LIGACAO_AGUA));
}else if (helper.getTipoMedicao().equals(MedicaoTipo.POCO.toString())) {
filtroMedicaoHistorico.adicionarParametro(new ParametroSimples(
FiltroMedicaoHistorico.MEDICAO_TIPO_ID, MedicaoTipo.POCO));
}
filtroMedicaoHistorico.adicionarParametro(new ParametroSimples(
FiltroMedicaoHistorico.ANO_MES_REFERENCIA_FATURAMENTO, anoMesFaturamento));
filtroMedicaoHistorico.adicionarCaminhoParaCarregamentoEntidade("leituraAnormalidadeFaturamento");
Collection<MedicaoHistorico> colecaoMedicaoHistorico =
fachada.pesquisar(filtroMedicaoHistorico, MedicaoHistorico.class.getName());
MedicaoHistorico dadosMedicaoHistorico = null;
if (colecaoMedicaoHistorico != null && !colecaoMedicaoHistorico.isEmpty()) {
Iterator iColecaoMedicaoHistorico = colecaoMedicaoHistorico.iterator();
dadosMedicaoHistorico = (MedicaoHistorico) iColecaoMedicaoHistorico.next();
documentoTxt.append(Util.completaStringComEspacoAEsquerda(
Util.adicionarZerosEsquedaNumero(7, ""+dadosMedicaoHistorico.
getLeituraAtualFaturamento()), 7));
}else {
documentoTxt.append(Util.completaStringComEspacoAEsquerda(
Util.adicionarZerosEsquedaNumero(7, ""), 7));
}
// Data de Instalacao do Hidrometro
String dataInstalacao = "";
if (hidrometroInstalacaoHistorico.getDataInstalacao() != null) {
dataInstalacao = hidrometroInstalacaoHistorico.getDataInstalacao().toString();
dataInstalacao = dataInstalacao.substring(8, 10) + "/" +
dataInstalacao.substring(5, 7) + "/" +
dataInstalacao.substring(0, 4);
}
documentoTxt.append(Util.completaString(dataInstalacao, 10));
// Protecao Hidrometro
String protecao = "";
HidrometroProtecao hidrometroProtecao =
hidrometroInstalacaoHistorico.getHidrometroProtecao();
if (hidrometroProtecao.getId() != null) {
protecao = hidrometroProtecao.getDescricaoAbreviada();
}
documentoTxt.append(Util.completaString(protecao, 6));
// Cavalete Hidrometro
if (hidrometroInstalacaoHistorico.getIndicadorExistenciaCavalete().
equals(HidrometroInstalacaoHistorico.INDICADOR_CAVALETE_SIM.shortValue())) {
documentoTxt.append("SIM");
}else if (hidrometroInstalacaoHistorico.getIndicadorExistenciaCavalete().
equals(HidrometroInstalacaoHistorico.INDICADOR_CAVALETE_NAO.shortValue())) {
documentoTxt.append("NAO");
}
// Anormalidade
String descricaoAnormalidade = "";
if (dadosMedicaoHistorico != null) {
if (dadosMedicaoHistorico.getLeituraAnormalidadeFaturamento() != null) {
LeituraAnormalidade leitura = dadosMedicaoHistorico.getLeituraAnormalidadeFaturamento();
descricaoAnormalidade = leitura.getDescricao();
}
}
documentoTxt.append(Util.completaString(descricaoAnormalidade, 25));
}
}
// Nome da Firma
FiltroEmpresa filtroEmpresa = new FiltroEmpresa();
filtroEmpresa.adicionarParametro(new ParametroSimples(FiltroEmpresa.ID, helper.getFirma()));
filtroEmpresa.adicionarParametro(new ParametroSimples(
FiltroEmpresa.INDICADORUSO, ConstantesSistema.INDICADOR_USO_ATIVO));
Collection<Empresa> colecaoEmpresa = fachada.pesquisar(filtroEmpresa, Empresa.class.getName());
Iterator iColecaoEmpresa = colecaoEmpresa.iterator();
Empresa empresa = (Empresa) iColecaoEmpresa.next();
documentoTxt.append(Util.completaString(empresa.getDescricaoAbreviada(), 10));
// Adiciona o Numero da Pagina
//documentoTxt.append("|" + (indice + 1) + "/" + quantidadePaginas);
documentoTxt.append(System.getProperty("line.separator"));
return documentoTxt;
}
private Integer geraOrdemServico(Integer idTipoServico, Integer idEmpresa, Integer idImovel, String idProjeto) {
OrdemServico ordemServico = null;
ServicoTipo servicoTipo = null;
Empresa empresa = null;
Integer retorno = null;
Fachada fachada = Fachada.getInstancia();
// [UC0430] - Gerar Ordem de Servico
servicoTipo = new ServicoTipo();
servicoTipo.setId(idTipoServico);
ordemServico = new OrdemServico();
ordemServico.setServicoTipo(servicoTipo);
Imovel imovel = new Imovel();
imovel.setId(idImovel);
ordemServico.setImovel(imovel);
if(idProjeto!=null && !idProjeto.equals("")){
Projeto projeto = new Projeto();
Integer id = new Integer(idProjeto);
projeto.setId(id);
ordemServico.setProjeto(projeto);
}
// Alterado por Victor Cisneiros - 05/11/2008
// Verificar se a empresa � a principal
FiltroEmpresa filtroEmpresa = new FiltroEmpresa();
filtroEmpresa.adicionarParametro(new ParametroSimples(FiltroEmpresa.ID, idEmpresa));
Collection colecaoEmpresa = fachada.pesquisar(filtroEmpresa, Empresa.class.getName());
if (colecaoEmpresa == null || colecaoEmpresa.isEmpty()) {
throw new TarefaException("Empresa com id " + idEmpresa + " n�o encontrada.");
}
empresa = (Empresa) Util.retonarObjetoDeColecao(colecaoEmpresa);
UnidadeOrganizacional unidadeOrganizacional = new UnidadeOrganizacional();
// Caso a empresa seja principal (indicadorEmpresaPrincipal = 1)
// obter a unidade a partir da unidade que representa a localidade do imovel
if (empresa.getIndicadorEmpresaPrincipal() != null &&
empresa.getIndicadorEmpresaPrincipal().equals(Empresa.INDICADOR_EMPRESA_PRINCIPAL)) {
FiltroImovel filtroImovel = new FiltroImovel();
filtroImovel.adicionarParametro(new ParametroSimples(FiltroImovel.ID, idImovel));
Collection pesquisaImovel = fachada.pesquisar(filtroImovel, Imovel.class.getName());
if (pesquisaImovel == null || pesquisaImovel.isEmpty()) {
throw new TarefaException("Imovel com id " + idImovel + "nao encontrado");
}
Imovel im = (Imovel) Util.retonarObjetoDeColecao(pesquisaImovel);
Integer idLocalidade = im.getLocalidade().getId();
FiltroUnidadeOrganizacional filtroUnidadeOrganizacional = new FiltroUnidadeOrganizacional();
filtroUnidadeOrganizacional.adicionarParametro(new ParametroSimples(
FiltroUnidadeOrganizacional.EMPRESA, idEmpresa));
filtroUnidadeOrganizacional.adicionarParametro(new ParametroSimples(
FiltroUnidadeOrganizacional.ID_LOCALIDADE, idLocalidade));
filtroUnidadeOrganizacional.adicionarParametro(new ParametroSimples(
FiltroUnidadeOrganizacional.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO));
Collection colecaoUnidadeOrganizacional = fachada.pesquisar(
filtroUnidadeOrganizacional, UnidadeOrganizacional.class.getName());
if (colecaoUnidadeOrganizacional != null && !colecaoUnidadeOrganizacional.isEmpty()) {
//[FS0011]-Verificar exist�ncia de mais de uma unidade correspondente � empresa
if(colecaoUnidadeOrganizacional.size() > 1){
throw new TarefaException("Existe mais de uma unidade correspondente � empresa da ordem de servi�o seletiva.Erro grave.Entre em contato com o analista respons�vel pelo sistema.");
}
unidadeOrganizacional = (UnidadeOrganizacional) Util.retonarObjetoDeColecao(colecaoUnidadeOrganizacional);
}else {
throw new TarefaException("Unidade Organizacional n�o encontrada para a Empresa: " + empresa + ".");
}
} else {
// Recupera a Unidade Organizacional da Empresa
unidadeOrganizacional.setEmpresa(empresa);
FiltroUnidadeOrganizacional filtroUnidadeOrganizacional = new FiltroUnidadeOrganizacional();
filtroUnidadeOrganizacional.adicionarParametro(new ParametroSimples(
FiltroUnidadeOrganizacional.EMPRESA, empresa));
filtroUnidadeOrganizacional.adicionarParametro(new ParametroSimples(
FiltroUnidadeOrganizacional.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO));
Collection<UnidadeOrganizacional> colecaoUnidadeOrganizacional =
fachada.pesquisar(filtroUnidadeOrganizacional, UnidadeOrganizacional.class.getName());
if (colecaoUnidadeOrganizacional != null && !colecaoUnidadeOrganizacional.isEmpty()) {
//[FS0011]-Verificar exist�ncia de mais de uma unidade correspondente � empresa
if(colecaoUnidadeOrganizacional.size() > 1){
throw new TarefaException("Existe mais de uma unidade correspondente � empresa da ordem de servi�o seletiva.Erro grave.Entre em contato com o analista respons�vel pelo sistema.");
}
Iterator iColecaoUnidadeOrganizacional = colecaoUnidadeOrganizacional.iterator();
unidadeOrganizacional = (UnidadeOrganizacional) iColecaoUnidadeOrganizacional.next();
}else {
throw new TarefaException("Unidade Organizacional n�o encontrada para a Empresa: " + empresa + ".");
}
}
retorno = fachada.gerarOrdemServicoSeletiva(
ordemServico, unidadeOrganizacional, imovel, Usuario.USUARIO_BATCH);
return retorno;
}
*/
private ImovelEmissaoOrdensSeletivasHelper gerarObjetoHelper() {
ImovelEmissaoOrdensSeletivasHelper helper = new ImovelEmissaoOrdensSeletivasHelper();
// PAR�METROS
helper.setTipoEmissao((String) getParametro("tipoEmissao"));
helper.setTipoOrdem((String) getParametro("tipoOrdem"));
helper.setFirma((String) getParametro("firma"));
helper.setNomeFirma((String) getParametro("nomeFirma"));
helper.setQuantidadeMaxima((String) getParametro("quantidadeMaxima"));
helper.setIdImovel((String) getParametro("idImovel"));
helper.setElo((String) getParametro("elo"));
helper.setNomeElo((String) getParametro("nomeElo"));
helper.setGerenciaRegional((String) getParametro("gerenciaRegional"));
helper.setNomeGerenciaRegional((String) getParametro("nomeGerenciaRegional"));
helper.setUnidadeNegocio((String) getParametro("unidadeNegocio"));
helper.setNomeUnidadeNegocio((String) getParametro("nomeUnidadeNegocio"));
helper.setLocalidadeInicial((String) getParametro("localidadeInicial"));
helper.setNomeLocalidadeInicial((String) getParametro("nomeLocalidadeInicial"));
helper.setLocalidadeFinal((String) getParametro("localidadeFinal"));
helper.setNomeLocalidadeFinal((String) getParametro("nomeLocalidadeFinal"));
helper.setSetorComercialInicial((String) getParametro("setorComercialInicial"));
helper.setCodigoSetorComercialInicial((String) getParametro("codigoSetorComercialInicial"));
helper.setSetorComercialFinal((String) getParametro("setorComercialFinal"));
helper.setCodigoSetorComercialFinal((String) getParametro("codigoSetorComercialFinal"));
helper.setQuadraInicial((String) getParametro("quadraInicial"));
helper.setQuadraFinal((String) getParametro("quadraFinal"));
helper.setRotaInicial((String) getParametro("rotaInicial"));
helper.setRotaFinal((String) getParametro("rotaFinal"));
helper.setRotaSequenciaInicial((String) getParametro("rotaSequenciaInicial"));
helper.setRotaSequenciaFinal((String) getParametro("rotaSequenciaFinal"));
helper.setLogradouro((String) getParametro("logradouro"));
helper.setDescricaoLogradouro((String) getParametro("descricaoLogradouro"));
helper.setDescricaoComando((String)getParametro("descricaoComando"));
// CARACTER�STICAS
helper.setPerfilImovel((String) getParametro("perfilImovel"));
helper.setCategoria((String) getParametro("categoria"));
helper.setSubCategoria((String) getParametro("subCategoria"));
helper.setQuantidadeEconomiasInicial((String) getParametro("intervaloQuantidadeEconomiasInicial"));
helper.setQuantidadeEconomiasFinal((String) getParametro("intervaloQuantidadeEconomiasFinal"));
helper.setQuantidadeDocumentosInicial((String) getParametro("intervaloQuantidadeDocumentosInicial"));
helper.setQuantidadeDocumentosFinal((String) getParametro("intervaloQuantidadeDocumentosFinal"));
helper.setNumeroMoradoresInicial((String) getParametro("intervaloNumeroMoradoresInicial"));
helper.setNumeroMoradoresFinal((String) getParametro("intervaloNumeroMoradoresFinal"));
helper.setAreaConstruidaInicial((String) getParametro("intervaloAreaConstruidaInicial"));
helper.setAreaConstruidaFinal((String) getParametro("intervaloAreaConstruidaFinal"));
helper.setImovelCondominio((String) getParametro("imovelCondominio"));
helper.setMediaImovel((String) getParametro("mediaImovel"));
helper.setConsumoPorEconomia((String) getParametro("consumoPorEconomia"));
helper.setConsumoPorEconomiaFinal((String) getParametro("consumoPorEconomiaFinal"));
helper.setTipoMedicao((String) getParametro("tipoMedicao"));
helper.setSituacaoLigacaoAgua((String[])getParametro("situacaoLigacaoAgua"));
// HIDR�METRO
helper.setCapacidadeHidrometro((String[]) getParametro("capacidade"));
helper.setMarcaHidrometro((String) getParametro("marca"));
helper.setAnormalidadeHidrometro((String[]) getParametro("anormalidadeHidrometro"));
helper.setNumeroOcorrenciasAnormalidade((String) getParametro("numeroOcorrenciasConsecutivas"));
//helper.setMesAnoInstalacaoInicialHidrometro((String) getParametro("mesAnoInstalacao"));
helper.setMesAnoInstalacaoInicialHidrometro((String) getParametro("mesAnoInstalacaoInicial"));
helper.setMesAnoInstalacaoFinalHidrometro((String) getParametro("mesAnoInstalacaoFinal"));
return helper;
}
}