package gcom.cadastro.localidade;
import gcom.cadastro.dadocensitario.FiltroIbgeSetorCensitario;
import gcom.cadastro.dadocensitario.IbgeSetorCensitario;
import gcom.cadastro.endereco.LogradouroBairro;
import gcom.cadastro.endereco.LogradouroCep;
import gcom.cadastro.geografico.Bairro;
import gcom.cadastro.geografico.FiltroBairro;
import gcom.cadastro.localidade.bean.InserirQuadraHelper;
import gcom.cadastro.localidade.bean.IntegracaoQuadraFaceHelper;
import gcom.cadastro.sistemaparametro.SistemaParametro;
import gcom.cadastro.unidade.IRepositorioUnidade;
import gcom.cadastro.unidade.RepositorioUnidadeHBM;
import gcom.faturamento.FaturamentoGrupo;
import gcom.interceptor.RegistradorOperacao;
import gcom.micromedicao.FiltroRota;
import gcom.micromedicao.Rota;
import gcom.micromedicao.RoteiroEmpresa;
import gcom.micromedicao.bean.NumeroQuadraMinimoMaximoDaRotaHelper;
import gcom.operacional.Bacia;
import gcom.operacional.ControladorOperacionalLocal;
import gcom.operacional.ControladorOperacionalLocalHome;
import gcom.operacional.DistritoOperacional;
import gcom.operacional.FiltroDistritoOperacional;
import gcom.operacional.FonteCaptacao;
import gcom.operacional.SetorFonteCaptacao;
import gcom.operacional.SetorFonteCaptacaoPK;
import gcom.seguranca.acesso.Abrangencia;
import gcom.seguranca.acesso.ControladorAcessoLocal;
import gcom.seguranca.acesso.ControladorAcessoLocalHome;
import gcom.seguranca.acesso.Operacao;
import gcom.seguranca.acesso.OperacaoEfetuada;
import gcom.seguranca.acesso.usuario.Usuario;
import gcom.seguranca.acesso.usuario.UsuarioAcao;
import gcom.seguranca.acesso.usuario.UsuarioAcaoUsuarioHelper;
import gcom.util.ConstantesJNDI;
import gcom.util.ConstantesSistema;
import gcom.util.ControladorException;
import gcom.util.ControladorUtilLocal;
import gcom.util.ControladorUtilLocalHome;
import gcom.util.ErroRepositorioException;
import gcom.util.FachadaException;
import gcom.util.ServiceLocator;
import gcom.util.ServiceLocatorException;
import gcom.util.SistemaException;
import gcom.util.Util;
import gcom.util.filtro.ParametroSimples;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.Iterator;
import javax.ejb.CreateException;
import javax.ejb.SessionBean;
import javax.ejb.SessionContext;
public class ControladorLocalidadeSEJB implements SessionBean {
private static final long serialVersionUID = 1L;
private IRepositorioSetorComercial repositorioSetorComercial = null;
private IRepositorioQuadra repositorioQuadra = null;
private IRepositorioLocalidade repositorioLocalidade = null;
private IRepositorioGerenciaRegional repositorioGerenciaRegional = null;
private IRepositorioUnidade repositorioUnidade = null;
SessionContext sessionContext;
/**
* < <Descri��o do m�todo>>
*
* @exception CreateException
* Descri��o da exce��o
*/
public void ejbCreate() throws CreateException {
repositorioSetorComercial = RepositorioSetorComercialHBM.getInstancia();
repositorioQuadra = RepositorioQuadraHBM.getInstancia();
repositorioLocalidade = RepositorioLocalidadeHBM.getInstancia();
repositorioGerenciaRegional = RepositorioGerenciaRegionalHBM
.getInstancia();
repositorioUnidade = RepositorioUnidadeHBM.getInstancia();
}
/**
* < <Descri��o do m�todo>>
*/
public void ejbRemove() {
}
/**
* < <Descri��o do m�todo>>
*/
public void ejbActivate() {
}
/**
* < <Descri��o do m�todo>>
*/
public void ejbPassivate() {
}
/**
* Seta o valor de sessionContext
*
* @param sessionContext
* O novo valor de sessionContext
*/
public void setSessionContext(SessionContext sessionContext) {
this.sessionContext = sessionContext;
}
/**
* Retorna o valor de controladorOperacional
*
* @return O valor de controladorOperacional
*/
private ControladorOperacionalLocal getControladorOperacional() {
ControladorOperacionalLocalHome localHome = null;
ControladorOperacionalLocal local = null;
// pega a inst�ncia do ServiceLocator.
ServiceLocator locator = null;
try {
locator = ServiceLocator.getInstancia();
localHome = (ControladorOperacionalLocalHome) locator
.getLocalHome(ConstantesJNDI.CONTROLADOR_OPERACIONAL_SEJB);
// guarda a referencia de um objeto capaz de fazer chamadas �
// objetos remotamente
local = localHome.create();
return local;
} catch (CreateException e) {
throw new SistemaException(e);
} catch (ServiceLocatorException e) {
throw new SistemaException(e);
}
}
/**
* Retorna o valor de controladorAcesso
*
* @return O valor de controladorAcesso
*/
private ControladorAcessoLocal getControladorAcesso() {
ControladorAcessoLocalHome localHome = null;
ControladorAcessoLocal local = null;
// pega a inst�ncia do ServiceLocator.
ServiceLocator locator = null;
try {
locator = ServiceLocator.getInstancia();
localHome = (ControladorAcessoLocalHome) locator
.getLocalHome(ConstantesJNDI.CONTROLADOR_ACESSO_SEJB);
// guarda a referencia de um objeto capaz de fazer chamadas �
// objetos remotamente
local = localHome.create();
return local;
} catch (CreateException e) {
throw new SistemaException(e);
} catch (ServiceLocatorException e) {
throw new SistemaException(e);
}
}
/**
* < <Descri��o do m�todo>>
*
* @param setorComercial
* Descri��o do par�metro
* @throws ControladorException
*/
public void atualizarSetorComercial(SetorComercial setorComercial,Collection colecaoFonteCaptacao)
throws ControladorException {
// Valida��o para Setor Comercial
if (setorComercial != null) {
// Cria o filtro
FiltroSetorComercial filtroSetorComercial = new FiltroSetorComercial();
// Pega o nome do pacote do objeto
String nomePacoteObjeto = SetorComercial.class.getName();
// Seta os parametros do filtro
filtroSetorComercial.adicionarParametro(
new ParametroSimples(
FiltroSetorComercial.ID,
setorComercial.getId()));
// Pesquisa a cole��o de acordo com o filtro passado
Collection setoresComerciais =
getControladorUtil().pesquisar(
filtroSetorComercial, nomePacoteObjeto);
SetorComercial setorComercialNaBase =
(SetorComercial) Util.retonarObjetoDeColecao(setoresComerciais);
// Verifica se a data de altera��o do objeto gravado na base �
// maior que a na instancia
if ((setorComercialNaBase.getUltimaAlteracao().after(setorComercial.getUltimaAlteracao()))) {
sessionContext.setRollbackOnly();
throw new ControladorException("atencao.atualizacao.timestamp");
}
// Seta a data/hora
setorComercial.setUltimaAlteracao(new Date());
}
// Atualiza objeto
getControladorUtil().atualizar(setorComercial);
Collection colecaoSetor = new ArrayList();
colecaoSetor.add(setorComercial);
Collection colecaoFonteCaptacaoNaBase =
this.getControladorOperacional().pesquisarFonteCaptacao(colecaoSetor);
this.removerOuIncluiFonteCaptacao(colecaoFonteCaptacaoNaBase,colecaoFonteCaptacao,setorComercial);
}
/**
* Remove ou inclui o relacionamento setor fonte de captacao
*
* @param colecaoFonteCaptacaoNaBase
* @param colecaoFonteCaptacao
* @param setorComercial
*
* @throws ControladorException
*/
private void removerOuIncluiFonteCaptacao(Collection colecaoFonteCaptacaoNaBase,
Collection colecaoFonteCaptacao,SetorComercial setorComercial)
throws ControladorException {
if(colecaoFonteCaptacao != null && !colecaoFonteCaptacao.isEmpty()){
Iterator itera = colecaoFonteCaptacao.iterator();
//Remove as fontes
while (itera.hasNext()) {
FonteCaptacao fonteCaptacao = (FonteCaptacao) itera.next();
if(colecaoFonteCaptacaoNaBase != null && !colecaoFonteCaptacaoNaBase.isEmpty() &&
!colecaoFonteCaptacaoNaBase.contains(fonteCaptacao)){
SetorFonteCaptacaoPK comp_id = new SetorFonteCaptacaoPK();
comp_id.setFonteCaptacao(fonteCaptacao);
comp_id.setSetorComercial(setorComercial);
SetorFonteCaptacao setorFonteCaptacao = new SetorFonteCaptacao();
setorFonteCaptacao.setComp_id(comp_id);
setorFonteCaptacao.setUltimaAlteracao(new Date());
this.getControladorUtil().inserir(setorFonteCaptacao);
}else if (colecaoFonteCaptacaoNaBase == null || colecaoFonteCaptacaoNaBase.isEmpty()){
SetorFonteCaptacaoPK comp_id = new SetorFonteCaptacaoPK();
comp_id.setFonteCaptacao(fonteCaptacao);
comp_id.setSetorComercial(setorComercial);
SetorFonteCaptacao setorFonteCaptacao = new SetorFonteCaptacao();
setorFonteCaptacao.setComp_id(comp_id);
setorFonteCaptacao.setUltimaAlteracao(new Date());
this.getControladorUtil().inserir(setorFonteCaptacao);
}
}
}
if(colecaoFonteCaptacaoNaBase != null && !colecaoFonteCaptacaoNaBase.isEmpty()){
Iterator itera = colecaoFonteCaptacaoNaBase.iterator();
//Remove as fontes
while (itera.hasNext()) {
FonteCaptacao fonteCaptacao = (FonteCaptacao) itera.next();
if(colecaoFonteCaptacao != null && !colecaoFonteCaptacao.isEmpty() &&
!colecaoFonteCaptacao.contains(fonteCaptacao)){
SetorFonteCaptacaoPK comp_id = new SetorFonteCaptacaoPK();
comp_id.setFonteCaptacao(fonteCaptacao);
comp_id.setSetorComercial(setorComercial);
SetorFonteCaptacao setorFonteCaptacao = new SetorFonteCaptacao();
setorFonteCaptacao.setComp_id(comp_id);
setorFonteCaptacao.setUltimaAlteracao(new Date());
this.getControladorUtil().remover(setorFonteCaptacao);
}else if (colecaoFonteCaptacao == null || colecaoFonteCaptacao.isEmpty()){
SetorFonteCaptacaoPK comp_id = new SetorFonteCaptacaoPK();
comp_id.setFonteCaptacao(fonteCaptacao);
comp_id.setSetorComercial(setorComercial);
SetorFonteCaptacao setorFonteCaptacao = new SetorFonteCaptacao();
setorFonteCaptacao.setComp_id(comp_id);
setorFonteCaptacao.setUltimaAlteracao(new Date());
this.getControladorUtil().remover(setorFonteCaptacao);
}
}
}
}
/**
* < <Descri��o do m�todo>>
*
* @param localidade
* Descri��o do par�metro
* @throws ControladorException
*/
public void atualizarLocalidade(Localidade localidade)
throws ControladorException {
// -----VALIDA��O DOS TIMESTAMP PARA ATUALIZA��O DE CADASTRO
// Valida��o para Setor Comercial
if (localidade != null) {
// Cria o filtro
FiltroLocalidade filtroLocalidade = new FiltroLocalidade();
// Pega o nome do pacote do objeto
String nomePacoteObjeto = Localidade.class.getName();
// Seta os parametros do filtro
filtroLocalidade.adicionarParametro(new ParametroSimples(
FiltroLocalidade.ID, localidade.getId()));
// Pesquisa a cole��o de acordo com o filtro passado
Collection localidades = getControladorUtil().pesquisar(
filtroLocalidade, nomePacoteObjeto);
Localidade localidadeNaBase = (Localidade) Util
.retonarObjetoDeColecao(localidades);
// Verifica se a data de altera��o do objeto gravado na base �
// maior que a na instancia
if ((localidadeNaBase.getUltimaAlteracao().after(localidade
.getUltimaAlteracao()))) {
sessionContext.setRollbackOnly();
throw new ControladorException("atencao.atualizacao.timestamp");
}
// Seta a data/hora
localidade.setUltimaAlteracao(new Date());
}
// Atualiza objeto
getControladorUtil().atualizar(localidade);
}
/**
* < <Descri��o do m�todo>>
*
* @param quadra
* Descri��o do par�metro
* @throws ControladorException
*/
public void atualizarQuadra(Quadra quadra, Usuario usuarioLogado, Collection colecaoQuadraFace)
throws ControladorException {
// -----VALIDA��O DOS TIMESTAMP PARA ATUALIZA��O DE CADASTRO
// Valida��o para quadra
if (quadra != null) {
// Cria o filtro
FiltroQuadra filtroQuadra = new FiltroQuadra();
// Pega o nome do pacote do objeto
String nomePacoteObjeto = Quadra.class.getName();
// Seta os parametros do filtro
filtroQuadra.adicionarParametro(new ParametroSimples(
FiltroQuadra.ID, quadra.getId()));
// Pesquisa a cole��o de acordo com o filtro passado
Collection quadras = getControladorUtil().pesquisar(filtroQuadra,
nomePacoteObjeto);
Quadra quadraNaBase = (Quadra) Util.retonarObjetoDeColecao(quadras);
// Verifica se a data de altera��o do objeto gravado na base �
// maior que a na instancia
if ((quadraNaBase.getUltimaAlteracao().after(quadra
.getUltimaAlteracao()))) {
sessionContext.setRollbackOnly();
throw new ControladorException("atencao.atualizacao.timestamp");
}
// Seta a data/hora
quadra.setUltimaAlteracao(new Date());
}
//------------ REGISTRAR TRANSA��O ----------------
RegistradorOperacao registradorOperacao = new RegistradorOperacao(
Operacao.OPERACAO_QUADRA_ATUALIZAR,
new UsuarioAcaoUsuarioHelper(usuarioLogado,
UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO));
Operacao operacao = new Operacao();
operacao.setId(Operacao.OPERACAO_QUADRA_ATUALIZAR);
OperacaoEfetuada operacaoEfetuada = new OperacaoEfetuada();
operacaoEfetuada.setOperacao(operacao);
//------------ REGISTRAR TRANSA��O ----------------
// ------------ CONTROLE DE ABRANGENCIA ----------------
Abrangencia abrangencia = new Abrangencia(usuarioLogado, quadra);
// ------------ CONTROLE DE ABRANGENCIA ----------------
if (!getControladorAcesso().verificarAcessoAbrangencia(abrangencia)) {
sessionContext.setRollbackOnly();
throw new ControladorException("atencao.acesso.negado.abrangencia");
}
else {
//------------ REGISTRAR TRANSA��O ----------------
quadra.setOperacaoEfetuada(operacaoEfetuada);
quadra.adicionarUsuario(usuarioLogado,
UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO);
registradorOperacao.registrarOperacao(quadra);
//------------ REGISTRAR TRANSA��O ----------------
getControladorUtil().atualizar(quadra);
//ATUALIZANDO AS FACES DA QUADRA
SistemaParametro sistemaParametro = this.getControladorUtil().pesquisarParametrosDoSistema();
if (sistemaParametro.getIndicadorQuadraFace().equals(ConstantesSistema.SIM)){
if (colecaoQuadraFace != null && !colecaoQuadraFace.isEmpty()){
Iterator itQuadraFace = colecaoQuadraFace.iterator();
//PESQUISANDO AS QUADRAS QUE EST�O CADASTRADAS NA BASE
FiltroQuadraFace filtroQuadraFace = new FiltroQuadraFace();
filtroQuadraFace.adicionarParametro(new ParametroSimples(
FiltroQuadraFace.ID_QUADRA, quadra.getId()));
Collection colecaoQuadraFaceNaBase = this.getControladorUtil().pesquisar(filtroQuadraFace,
QuadraFace.class.getName());
if (colecaoQuadraFaceNaBase != null && !colecaoQuadraFaceNaBase.isEmpty()){
//REMOVENDO A(S) FACE(S) DA QUADRA QUE FORAM EXLU�DAS PELO USU�RIO
//==========================================================================
Iterator itQuadraFaceNaBase = colecaoQuadraFaceNaBase.iterator();
QuadraFace quadraFaceNaBase = null;
while (itQuadraFaceNaBase.hasNext()){
quadraFaceNaBase = (QuadraFace) itQuadraFaceNaBase.next();
if (!colecaoQuadraFace.contains(quadraFaceNaBase)){
//REMOVENDO...
this.getControladorUtil().remover(quadraFaceNaBase);
}
}
//FIM - REMOVENDO A(S) FACE(S) DA QUADRA QUE FORAM EXLU�DAS PELO USU�RIO
//==========================================================================
//ATUALIZANDO A(S) FACE(S) DA QUADRA QUE FORAM ALTERADAS PELO USU�RIO
//==========================================================================
boolean inserir;
QuadraFace quadraFaceAtualizar = null;
while (itQuadraFace.hasNext()){
inserir = true;
quadraFaceAtualizar = (QuadraFace) itQuadraFace.next();
itQuadraFaceNaBase = colecaoQuadraFaceNaBase.iterator();
while (itQuadraFaceNaBase.hasNext()){
quadraFaceNaBase = (QuadraFace) itQuadraFaceNaBase.next();
if (quadraFaceNaBase.getNumeroQuadraFace().equals(
quadraFaceAtualizar.getNumeroQuadraFace())){
quadraFaceAtualizar.setId(quadraFaceNaBase.getId());
quadraFaceAtualizar.setQuadra(quadra);
quadraFaceAtualizar.setUltimaAlteracao(new Date());
inserir = false;
//ATUALIZANDO A FACE DA QUADRA
getControladorUtil().atualizar(quadraFaceAtualizar);
break;
}
}
if (inserir){
quadraFaceAtualizar.setQuadra(quadra);
quadraFaceAtualizar.setUltimaAlteracao(new Date());
this.getControladorUtil().inserir(quadraFaceAtualizar);
}
}
//FIM - ATUALIZANDO A(S) FACE(S) DA QUADRA QUE FORAM ALTERADAS PELO USU�RIO
//==========================================================================
}
else{
//INSERINDO A(S) FACE(S) DA QUADRA QUE FORAM EXLU�DAS PELO USU�RIO
while (itQuadraFace.hasNext()){
QuadraFace quadraFaceInserir = (QuadraFace) itQuadraFace.next();
quadraFaceInserir.setQuadra(quadra);
quadraFaceInserir.setUltimaAlteracao(new Date());
this.getControladorUtil().inserir(quadraFaceInserir);
}
}
}
}
}
}
/**
* Pesquisa uma cole��o de setor comercial com uma query especifica
*
* @param idLocalidade
* parametros para a consulta
* @return Description of the Return Value
* @throws ControladorException
*/
public Collection pesquisarSetorComercial(int idLocalidade)
throws ControladorException {
try {
return repositorioSetorComercial
.pesquisarSetorComercial(idLocalidade);
} catch (ErroRepositorioException ex) {
sessionContext.setRollbackOnly();
throw new ControladorException("erro.sistema", ex);
}
}
/**
* Pesquisa uma cole��o de quadra com uma query especifica
*
* @param idSetorComercial
* parametros para a consulta
* @return Description of the Return Value
* @throws ControladorException
*/
public Collection pesquisarQuadra(int idSetorComercial)
throws ControladorException {
Collection colecaoQuadraArray = null;
Collection<Quadra> colecaoRetorno = new ArrayList();
try {
colecaoQuadraArray = repositorioQuadra
.pesquisarQuadra(idSetorComercial);
} catch (ErroRepositorioException ex) {
sessionContext.setRollbackOnly();
throw new ControladorException("erro.sistema", ex);
}
Iterator colecaoQuadraArrayIt = colecaoQuadraArray.iterator();
Object[] quadraArray;
Quadra quadra;
Rota rota = new Rota();
FaturamentoGrupo faturamentoGrupo = new FaturamentoGrupo();
while (colecaoQuadraArrayIt.hasNext()) {
quadraArray = (Object[]) colecaoQuadraArrayIt.next();
quadra = new Quadra();
quadra.setId((Integer) quadraArray[0]);
quadra.setNumeroQuadra(new Integer(String.valueOf(quadraArray[1]))
.intValue());
faturamentoGrupo.setId((Integer) quadraArray[3]);
rota.setId((Integer) quadraArray[2]);
rota.setFaturamentoGrupo(faturamentoGrupo);
quadra.setRota(rota);
colecaoRetorno.add(quadra);
}
return colecaoRetorno;
}
/**
* Retorna o valor de controladorUtil
*
* @return O valor de controladorUtil
*/
private ControladorUtilLocal getControladorUtil() {
ControladorUtilLocalHome localHome = null;
ControladorUtilLocal local = null;
// pega a inst�ncia do ServiceLocator.
ServiceLocator locator = null;
try {
locator = ServiceLocator.getInstancia();
localHome = (ControladorUtilLocalHome) locator
.getLocalHome(ConstantesJNDI.CONTROLADOR_UTIL_SEJB);
// guarda a referencia de um objeto capaz de fazer chamadas �
// objetos remotamente
local = localHome.create();
return local;
} catch (CreateException e) {
throw new SistemaException(e);
} catch (ServiceLocatorException e) {
throw new SistemaException(e);
}
}
/**
* Pesquisa uma cole��o de localidades por ger�ncia regional
*
* @param idGerenciaRegional
* C�digo da ger�ncia regional solicitada
* @return Cole��o de Localidades da Ger�ncia Regional solicitada
* @exception ControladorException
* Erro no hibernate
*/
public Collection<Localidade> pesquisarLocalidadePorGerenciaRegional(
int idGerenciaRegional) throws ControladorException {
try {
// pesquisa a cole��o de localidades para a ger�ncia regional
// informada
return repositorioLocalidade
.pesquisarLocalidadePorGerenciaRegional(idGerenciaRegional);
// erro no hibernate
} catch (ErroRepositorioException ex) {
// levanta a exce��o para a pr�xima camada
throw new ControladorException("erro.sistema", ex);
}
}
/**
* Pesquisa uma cole��o de ger�ncias regionais
*
* @return Cole��o de Ger�ncias Regionais
* @exception ErroRepositorioException
* Erro no hibernate
*/
public Collection<GerenciaRegional> pesquisarGerenciaRegional()
throws ControladorException {
try {
// pesquisa as gerencias regionais existentes no sisitema
return repositorioGerenciaRegional.pesquisarGerenciaRegional();
// erro no hibernate
} catch (ErroRepositorioException ex) {
// levanta a exce��o para a pr�xima camada
throw new ControladorException("erro.sistema", ex);
}
}
/**
* Pesquisa uma ger�ncia regional pelo id
*
* @author Rafael Corr�a
* @date 01/08/2006
*
* @return Ger�ncia Regional
* @exception ErroRepositorioException
* Erro no hibernate
*/
public GerenciaRegional pesquisarObjetoGerenciaRegionalRelatorio(
Integer idGerenciaRegional) throws ControladorException {
try {
// pesquisa as gerencias regionais existentes no sisitema
Object[] objetoGerenciaRegional = repositorioGerenciaRegional
.pesquisarObjetoGerenciaRegionalRelatorio(idGerenciaRegional);
GerenciaRegional gerenciaRegional = new GerenciaRegional();
gerenciaRegional.setId((Integer) objetoGerenciaRegional[0]);
gerenciaRegional
.setNomeAbreviado((String) objetoGerenciaRegional[1]);
return gerenciaRegional;
// erro no hibernate
} catch (ErroRepositorioException ex) {
// levanta a exce��o para a pr�xima camada
throw new ControladorException("erro.sistema", ex);
}
}
/**
* Inseri um objeto do tipo setor comercial no BD
*
* @param setorComercial
* @return ID gerado
* @throws ControladorException
*/
public Integer inserirSetorComercial(SetorComercial setorComercial,
Collection colecaoFonteCaptacao)
throws ControladorException {
Integer retorno = null;
FiltroSetorComercial filtroSetorComercial = new FiltroSetorComercial();
filtroSetorComercial.adicionarCaminhoParaCarregamentoEntidade("localidade");
filtroSetorComercial.adicionarParametro(
new ParametroSimples(
FiltroSetorComercial.ID_LOCALIDADE,
setorComercial.getLocalidade().getId()));
filtroSetorComercial.adicionarParametro(
new ParametroSimples(
FiltroSetorComercial.CODIGO_SETOR_COMERCIAL,
setorComercial.getCodigo()));
// Retorna caso j� exista um setor comercial com o c�digo
// informado
Collection colecaoPesquisa =
this.getControladorUtil().pesquisar(
filtroSetorComercial, SetorComercial.class.getName());
if (colecaoPesquisa != null && !colecaoPesquisa.isEmpty()) {
// Setor comercial j� cadastrado
throw new ControladorException(
"atencao.pesquisa.setor_comercial_ja_cadastrado", null, ""
+ setorComercial.getCodigo(), setorComercial
.getLocalidade().getDescricao());
}
retorno = (Integer) this.getControladorUtil().inserir(setorComercial);
if(colecaoFonteCaptacao != null && !colecaoFonteCaptacao.isEmpty()){
SetorComercial setorComer = new SetorComercial();
setorComer.setId(retorno);
Iterator itera = colecaoFonteCaptacao.iterator();
while (itera.hasNext()) {
FonteCaptacao fonteCaptacao = (FonteCaptacao) itera.next();
SetorFonteCaptacaoPK comp_id = new SetorFonteCaptacaoPK();
comp_id.setFonteCaptacao(fonteCaptacao);
comp_id.setSetorComercial(setorComer);
SetorFonteCaptacao setorFonteCaptacao = new SetorFonteCaptacao();
setorFonteCaptacao.setComp_id(comp_id);
setorFonteCaptacao.setUltimaAlteracao(new Date());
this.getControladorUtil().inserir(setorFonteCaptacao);
}
}
return retorno;
}
/**
* /** Inseri uma cole��o de pagamentos no sistema
*
* [UC0265] Inserir Pagamentos
*
* Este fluxo secund�rio tem como objetivo pesquisar a localidade digitada
* pelo usu�rio
*
* [FS0007] - Verificar exist�ncia da localidade
*
* @author Pedro Alexandre
* @date 16/02/2006
*
* @param idLocalidadeDigitada
* @return
* @throws ControladorException
*/
public Localidade pesquisarLocalidadeDigitada(Integer idLocalidadeDigitada)
throws ControladorException {
// Varai�vel que vai armazenar a localidade digitada pelo usu�rio
Localidade localidadeDigitada = null;
// Pesquisa a localidade informada pelo usu�rio no sistema
FiltroLocalidade filtroLocalidade = new FiltroLocalidade();
filtroLocalidade.adicionarParametro(new ParametroSimples(
FiltroLocalidade.ID, idLocalidadeDigitada));
Collection<Localidade> colecaoLocalidade = getControladorUtil()
.pesquisar(filtroLocalidade, Localidade.class.getName());
// Caso exista a localidade no sistema
// Retorna para o usu�rio a localidade retornada pela pesquisa
// Caso contr�rio retorna um objeto nulo
if (colecaoLocalidade != null && !colecaoLocalidade.isEmpty()) {
localidadeDigitada = (Localidade) Util
.retonarObjetoDeColecao(colecaoLocalidade);
}
// Retorna a localdiade encontrada ou nulo se n�o existir
return localidadeDigitada;
}
/**
* M�todo que retorna o maior n�mero da quadra de um setor comercial
*
* @author Rafael Corr�a
* @date 11/07/2006
*
* @param idSetorComercial
* @return
* @throws ControladorException
*/
public int pesquisarMaximoCodigoQuadra(Integer idSetorComercial)
throws ControladorException {
try {
return repositorioQuadra
.pesquisarMaximoCodigoQuadra(idSetorComercial);
} catch (ErroRepositorioException ex) {
sessionContext.setRollbackOnly();
throw new ControladorException("erro.sistema", ex);
}
}
/**
* M�todo que retorna o maior c�digo de setor comercial de uma localidade
*
* @author Rafael Corr�a
* @date 11/07/2006
*
* @param idLocalidade
* @return
* @throws ControladorException
*/
public int pesquisarMaximoCodigoSetorComercial(Integer idLocalidade)
throws ControladorException {
try {
return repositorioSetorComercial
.pesquisarMaximoCodigoSetorComercial(idLocalidade);
} catch (ErroRepositorioException ex) {
sessionContext.setRollbackOnly();
throw new ControladorException("erro.sistema", ex);
}
}
/**
* M�todo que retorna o maior id de Localidade
*
* @author Vivianne Sousa
* @date 12/07/2006
*
* @return
* @throws ControladorException
*/
public int pesquisarMaximoIdLocalidade() throws ControladorException {
try {
return repositorioLocalidade.pesquisarMaximoIdLocalidade();
} catch (ErroRepositorioException ex) {
sessionContext.setRollbackOnly();
throw new ControladorException("erro.sistema", ex);
}
}
/**
* Pesquisa uma localidade pelo id
*
* @author Rafael Corr�a
* @date 01/08/2006
*
* @return Localidade
* @exception ErroRepositorioException
* Erro no hibernate
*/
public Localidade pesquisarObjetoLocalidadeRelatorio(Integer idLocalidade)
throws ControladorException {
try {
// pesquisa as gerencias regionais existentes no sisitema
Object[] objetoLocalidade = repositorioLocalidade
.pesquisarObjetoLocalidadeRelatorio(idLocalidade);
Localidade localidade = new Localidade();
if ( objetoLocalidade != null) {
localidade.setId((Integer) objetoLocalidade[0]);
localidade.setDescricao((String) objetoLocalidade[1]);
}
return localidade;
// erro no hibernate
} catch (ErroRepositorioException ex) {
// levanta a exce��o para a pr�xima camada
throw new ControladorException("erro.sistema", ex);
}
}
/**
* Pesquisa um setor comercial pelo c�digo e pelo id da localidade
*
* @author Rafael Corr�a
* @date 01/08/2006
*
* @return SetorComercial
* @exception ErroRepositorioException
* Erro no hibernate
*/
public SetorComercial pesquisarObjetoSetorComercialRelatorio(
Integer codigoSetorComercial, Integer idLocalidade)
throws ControladorException {
try {
// pesquisa as gerencias regionais existentes no sisitema
Object[] objetoSetorComercial = repositorioSetorComercial
.pesquisarObjetoSetorComercialRelatorio(
codigoSetorComercial, idLocalidade);
SetorComercial setorComercial = new SetorComercial();
if(objetoSetorComercial != null){
setorComercial.setCodigo((Integer) objetoSetorComercial[0]);
setorComercial.setDescricao((String) objetoSetorComercial[1]);
}
return setorComercial;
// erro no hibernate
} catch (ErroRepositorioException ex) {
// levanta a exce��o para a pr�xima camada
throw new ControladorException("erro.sistema", ex);
}
}
public Integer verificarExistenciaLocalidade(Integer idLocalidade)
throws ControladorException {
// Retorna o cliente encontrado ou vazio se n�o existir
try {
return repositorioLocalidade
.verificarExistenciaLocalidade(idLocalidade);
} catch (ErroRepositorioException e) {
throw new ControladorException("erro.sistema", e);
}
}
/**
* Met�do respons�vel por inserir uma quadra no sitema
*
* [UC0000 - Inserir Quadra]
*
* @author Vivianne Sousa, Pedro Alexandre
* @date 27/06/2006, 16/11/2006
*
* @param quadra
* @param usuarioLogado
* @param usuarioLogado
* @return colecaoQuadraFace
* @throws ControladorException
*/
public Integer inserirQuadra(Quadra quadra, Collection colecaoQuadraFace, Usuario usuarioLogado)
throws ControladorException {
Integer retorno = null;
// ------------ CONTROLE DE ABRANGENCIA ----------------
Abrangencia abrangencia = new Abrangencia(usuarioLogado, quadra
.getSetorComercial());
if (!getControladorAcesso().verificarAcessoAbrangencia(abrangencia)) {
sessionContext.setRollbackOnly();
throw new ControladorException("atencao.acesso.negado.abrangencia");
} else {
// ------------ REGISTRAR TRANSA��O----------------------------
RegistradorOperacao registradorOperacao = new RegistradorOperacao(
Operacao.OPERACAO_QUADRA_INSERIR,
new UsuarioAcaoUsuarioHelper(usuarioLogado,
UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO));
Operacao operacao = new Operacao();
operacao.setId(Operacao.OPERACAO_QUADRA_INSERIR);
OperacaoEfetuada operacaoEfetuada = new OperacaoEfetuada();
operacaoEfetuada.setOperacao(operacao);
quadra.setOperacaoEfetuada(operacaoEfetuada);
quadra.adicionarUsuario(usuarioLogado,
UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO);
registradorOperacao.registrarOperacao(quadra);
// ------------ REGISTRAR TRANSA��O----------------------------
retorno = (Integer) this.getControladorUtil().inserir(quadra);
}
// ------------ CONTROLE DE ABRANGENCIA ----------------
//INSERINDO AS FACES DA QUADRA
quadra.setId(retorno);
SistemaParametro sistemaParametro = this.getControladorUtil().pesquisarParametrosDoSistema();
if (sistemaParametro.getIndicadorQuadraFace().equals(ConstantesSistema.SIM)){
if (colecaoQuadraFace != null && !colecaoQuadraFace.isEmpty()){
Iterator it = colecaoQuadraFace.iterator();
while (it.hasNext()){
QuadraFace quadraFaceInserir = (QuadraFace) it.next();
quadraFaceInserir.setQuadra(quadra);
quadraFaceInserir.setUltimaAlteracao(new Date());
this.getControladorUtil().inserir(quadraFaceInserir);
}
}
}
return retorno;
}
/**
* met�do respons�vel por verificar se o usu�rio que est� tentando remover
* as quadras tem abrang�ncia
*
* <Identificador e nome do caso de uso>
*
* @author Pedro Alexandre
* @date 18/11/2006
*
* @param ids
* @param pacoteNomeObjeto
* @param operacaoEfetuada
* @param acaoUsuarioHelper
* @param usuarioLogado
* @throws ControladorException
*/
public void removerQuadra(String[] ids, String pacoteNomeObjeto,
OperacaoEfetuada operacaoEfetuada,
Collection<UsuarioAcaoUsuarioHelper> acaoUsuarioHelper,
Usuario usuarioLogado) throws ControladorException {
if (ids != null && ids.length != 0) {
for (int i = 0; i < ids.length; i++) {
int id = Integer.parseInt(ids[i]);
Quadra quadra = new Quadra();
quadra.setId(id);
// ------------ CONTROLE DE ABRANGENCIA ----------------
Abrangencia abrangencia = new Abrangencia(usuarioLogado, quadra);
if (!getControladorAcesso().verificarAcessoAbrangencia(
abrangencia)) {
sessionContext.setRollbackOnly();
throw new ControladorException(
"atencao.acesso.negado.abrangencia");
}
// ------------ CONTROLE DE ABRANGENCIA ----------------
// Alteracao CRC 3695
FiltroQuadraFace filtroQuadraFace = new FiltroQuadraFace();
filtroQuadraFace.adicionarParametro(new ParametroSimples(FiltroQuadraFace.ID_QUADRA, quadra.getId()));
Collection colecaoQuadraFaces = getControladorUtil().pesquisar(filtroQuadraFace,QuadraFace.class.getName());
if(colecaoQuadraFaces != null && !colecaoQuadraFaces.isEmpty()){
Iterator iteratorQuadraFace = colecaoQuadraFaces.iterator();
while (iteratorQuadraFace.hasNext()){
QuadraFace quadraFace = (QuadraFace) iteratorQuadraFace.next();
getControladorUtil().remover(quadraFace);
}
}
// Fim - Alteracao CRC 3695
}
getControladorUtil().remover(ids, pacoteNomeObjeto,
operacaoEfetuada, acaoUsuarioHelper);
}
}
// /**
// * < <Descri��o do m�todo>>
// *
// * @param ger�ncia Regional
// * Descri��o do par�metro
// * @throws ControladorException
// */
// public void atualizarGerenciaRegional(GerenciaRegional gerenciaRegional)
// throws ControladorException {
//
// // -----VALIDA��O DOS TIMESTAMP PARA ATUALIZA��O DE CADASTRO
//
// // Valida��o para Setor Comercial
// if (gerenciaRegional != null) {
// // Cria o filtro
// FiltroGerenciaRegional filtroGerenciaRegional = new
// FiltroGerenciaRegional();
// // Pega o nome do pacote do objeto
// String nomePacoteObjeto = GerenciaRegional.class.getName();
//
// // Seta os parametros do filtro
// filtroGerenciaRegional.adicionarParametro(new
// ParametroSimples(FiltroGerenciaRegional.ID, gerenciaRegional.getId()));
//
// // Pesquisa a cole��o de acordo com o filtro passado
// Collection gerenciaRegionais =
// getControladorUtil().pesquisar(filtroGerenciaRegional, nomePacoteObjeto);
// GerenciaRegional gerenciaRegionalNaBase = (GerenciaRegional)
// Util.retonarObjetoDeColecao(gerenciaRegionais);
//
// // Verifica se a data de altera��o do objeto gravado na base �
// // maior que a na instancia
// if
// ((gerenciaRegionalNaBase.getUltimaAlteracao().after(gerenciaRegional.getUltimaAlteracao())))
// {
// sessionContext.setRollbackOnly();
// throw new ControladorException("atencao.atualizacao.timestamp");
// }
//
// // Seta a data/hora
// gerenciaRegional.setUltimaAlteracao(new Date());
//
// }
//
// // Atualiza objeto
// getControladorUtil().atualizar(gerenciaRegional);
//
// }
// /**
// * Permite inserir uma Ger�ncia Regional
// *
// * [UC0217] Inserir Gerencia Regional
// *
// * @author Thiago Ten�rio
// * @date 30/03/2006
// *
// */
// public Integer inserirGerenciaRegional(GerenciaRegional gerenciaRegional)
// throws ControladorException {
//
// FiltroGerenciaRegional filtroGerenciaRegional = new
// FiltroGerenciaRegional();
// filtroGerenciaRegional.adicionarParametro(new ParametroSimples(
// FiltroGerenciaRegional.ID, gerenciaRegional.getId()));
//
// filtroGerenciaRegional.adicionarParametro(new ParametroSimples(
// FiltroGerenciaRegional.NOME, gerenciaRegional.getNome()));
//
// filtroGerenciaRegional.adicionarParametro(new ParametroSimples(
// FiltroGerenciaRegional.NOME_ABREVIADO, gerenciaRegional
// .getNomeAbreviado()));
//
// Collection colecaoEnderecos = getControladorUtil().pesquisar(
// filtroGerenciaRegional, GerenciaRegional.class.getName());
//
// if (colecaoEnderecos != null && !colecaoEnderecos.isEmpty()) {
// throw new ControladorException(
// "atencao.endereco_localidade_nao_informado");
// }
//
// Integer id = (Integer) getControladorUtil().inserir(gerenciaRegional);
//
// return id;
//
// }
/**
* Pesquisa o id da ger�ncia regional para a qual a localidade pertence.
*
* [UC0267] Encerrar Arrecada��o do M�s, [UC0155] Encerrar Faturamento do
* M�s
*
* @author Pedro Alexandre
* @date 05/01/2007
*
* @param idLocalidade
* @return
* @throws ControladorException
*/
public Integer pesquisarIdGerenciaParaLocalidade(Integer idLocalidade)
throws ControladorException {
try {
return repositorioGerenciaRegional
.pesquisarIdGerenciaParaLocalidade(idLocalidade);
} catch (ErroRepositorioException ex) {
throw new ControladorException("erro.sistema", ex);
}
}
/**
* Atualiza logradouroCep de um ou mais im�veis
*
* [UC0] Atualizar Logradouro
*
* @author Raphael Rossiter
* @date 22/02/2007
*
* @param
* @return void
*/
public void atualizarLogradouroCepGerenciaRegional(
LogradouroCep logradouroCepAntigo, LogradouroCep logradouroCepNovo)
throws ControladorException {
try {
this.repositorioLocalidade.atualizarLogradouroCepGerenciaRegional(
logradouroCepAntigo, logradouroCepNovo);
} catch (ErroRepositorioException ex) {
ex.printStackTrace();
throw new ControladorException("erro.sistema", ex);
}
}
/**
* Atualiza logradouroBairro de um ou mais im�veis
*
* [UC0] Atualizar Logradouro
*
* @author Raphael Rossiter
* @date 22/02/2007
*
* @param
* @return void
*/
public void atualizarLogradouroBairroGerenciaRegional(
LogradouroBairro logradouroBairroAntigo,
LogradouroBairro logradouroBairroNovo) throws ControladorException {
try {
this.repositorioLocalidade
.atualizarLogradouroBairroGerenciaRegional(
logradouroBairroAntigo, logradouroBairroNovo);
} catch (ErroRepositorioException ex) {
ex.printStackTrace();
throw new ControladorException("erro.sistema", ex);
}
}
/**
* Atualiza logradouroCep de um ou mais im�veis
*
* [UC0] Atualizar Logradouro
*
* @author Raphael Rossiter
* @date 22/02/2007
*
* @param
* @return void
*/
public void atualizarLogradouroCep(LogradouroCep logradouroCepAntigo,
LogradouroCep logradouroCepNovo) throws ControladorException {
try {
this.repositorioLocalidade.atualizarLogradouroCep(
logradouroCepAntigo, logradouroCepNovo);
} catch (ErroRepositorioException ex) {
ex.printStackTrace();
throw new ControladorException("erro.sistema", ex);
}
}
/**
* Atualiza logradouroBairro de um ou mais im�veis
*
* [UC0] Atualizar Logradouro
*
* @author Raphael Rossiter
* @date 22/02/2007
*
* @param
* @return void
*/
public void atualizarLogradouroBairro(
LogradouroBairro logradouroBairroAntigo,
LogradouroBairro logradouroBairroNovo) throws ControladorException {
try {
this.repositorioLocalidade.atualizarLogradouroBairro(
logradouroBairroAntigo, logradouroBairroNovo);
} catch (ErroRepositorioException ex) {
ex.printStackTrace();
throw new ControladorException("erro.sistema", ex);
}
}
/**
* Pesquisa o id da unidade negocio para a qual a localidade pertence.
*
* [UC0267] Encerrar Arrecada��o do M�s, [UC0155] Encerrar Faturamento do
* M�s
*
* @author Raphael Rossiter
* @date 30/05/2007
*
* @param idLocalidade
* @throws ControladorException
*/
public Integer pesquisarIdUnidadeNegocioParaLocalidade(Integer idLocalidade)
throws ControladorException {
try {
return repositorioUnidade
.pesquisarIdUnidadeNegocioParaLocalidade(idLocalidade);
} catch (ErroRepositorioException ex) {
throw new ControladorException("erro.sistema", ex);
}
}
/**
* Pesquisar os ids da Localidade
*
* @author Thiago ten�rio
* @date 07/02/2007
*
* @return Collection<Integer>
* @throws ErroRepositorioException
*/
public Collection pesquisarTodosIdsLocalidade() throws ControladorException {
try {
return repositorioLocalidade.pesquisarTodosIdLocalidade();
} catch (ErroRepositorioException ex) {
sessionContext.setRollbackOnly();
throw new ControladorException("erro.sistema", ex);
}
}
/**
* Pesquisa uma cole��o de quadra com uma query especifica
*
* @param idsSetorComercial
* @param idFaturamentoGrupo
* parametros para a consulta
* @return Description of the Return Value
* @throws ControladorException
*/
public Collection pesquisarQuadrasPorSetorComercialFaturamentoGrupo(
int localidade, int[] idsSetorComercial, Integer idFaturamentoGrupo)
throws ControladorException {
Collection colecaoQuadraArray = null;
Collection<Quadra> colecaoRetorno = new ArrayList();
try {
colecaoQuadraArray = repositorioQuadra
.pesquisarQuadrasPorSetorComercialFaturamentoGrupo(
localidade, idsSetorComercial, idFaturamentoGrupo);
} catch (ErroRepositorioException ex) {
sessionContext.setRollbackOnly();
throw new ControladorException("erro.sistema", ex);
}
Iterator colecaoQuadraArrayIt = colecaoQuadraArray.iterator();
Object[] quadraArray;
Quadra quadra;
// Rota rota = new Rota();
// FaturamentoGrupo faturamentoGrupo = new FaturamentoGrupo();
while (colecaoQuadraArrayIt.hasNext()) {
quadraArray = (Object[]) colecaoQuadraArrayIt.next();
quadra = new Quadra();
quadra.setId((Integer) quadraArray[0]);
quadra.setNumeroQuadra(new Integer(String.valueOf(quadraArray[1]))
.intValue());
// faturamentoGrupo.setId((Integer) quadraArray[3]);
// rota.setId((Integer) quadraArray[2]);
// rota.setFaturamentoGrupo(faturamentoGrupo);
SetorComercial setor = new SetorComercial();
setor.setId((Integer) quadraArray[2]);
setor.setCodigo(((Integer) quadraArray[3]).intValue());
quadra.setSetorComercial(setor);
// Id roteiro empresa
if (quadraArray[4] != null) {
RoteiroEmpresa roEm = new RoteiroEmpresa();
roEm.setId(((Integer) quadraArray[4]).intValue());
quadra.setRoteiroEmpresa(roEm);
}
quadra.setUltimaAlteracao((Date) quadraArray[5]);
colecaoRetorno.add(quadra);
}
return colecaoRetorno;
}
/**
*
* [UC608] Efetuar Liga��o de Esgoto sem RA
*
* @author S�vio Luiz
* @date 10/09/2007
*
* @return
*/
public Short pesquisarIndicadorRedeEsgotoQuadra(int idImovel)
throws ControladorException {
try {
return repositorioQuadra
.pesquisarIndicadorRedeEsgotoQuadra(idImovel);
} catch (ErroRepositorioException ex) {
sessionContext.setRollbackOnly();
throw new ControladorException("erro.sistema", ex);
}
}
public Collection pesquisarQuadrasPorRoteiroEmpresa(
int idRoteiroEmpresa)
throws ControladorException {
Collection colecaoQuadraArray = null;
Collection<Quadra> colecaoRetorno = new ArrayList();
try {
colecaoQuadraArray = repositorioQuadra
.pesquisarQuadrasPorRoteiroEmpresa(idRoteiroEmpresa);
} catch (ErroRepositorioException ex) {
sessionContext.setRollbackOnly();
throw new ControladorException("erro.sistema", ex);
}
Iterator colecaoQuadraArrayIt = colecaoQuadraArray.iterator();
Object[] quadraArray;
Quadra quadra;
Rota rota = new Rota();
FaturamentoGrupo faturamentoGrupo = new FaturamentoGrupo();
SetorComercial setor = new SetorComercial();
while (colecaoQuadraArrayIt.hasNext()) {
quadraArray = (Object[]) colecaoQuadraArrayIt.next();
quadra = new Quadra();
quadra.setId((Integer) quadraArray[0]);
quadra.setNumeroQuadra(new Integer(String.valueOf(quadraArray[1]))
.intValue());
setor.setId((Integer) quadraArray[2]);
setor.setCodigo(((Integer) quadraArray[3]).intValue());
quadra.setSetorComercial(setor);
// Id roteiro empresa
if (quadraArray[4] != null) {
RoteiroEmpresa roEm = new RoteiroEmpresa();
roEm.setId(((Integer) quadraArray[4]).intValue());
quadra.setRoteiroEmpresa(roEm);
}
rota.setId((Integer) quadraArray[5]);
faturamentoGrupo.setId((Integer) quadraArray[6]);
rota.setFaturamentoGrupo(faturamentoGrupo);
quadra.setRota(rota);
Localidade localidade = new Localidade();
localidade.setId((Integer) quadraArray[7]);
localidade.setDescricao((String) quadraArray[8]);
setor.setLocalidade(localidade);
quadra.setUltimaAlteracao((Date) quadraArray[9]);
colecaoRetorno.add(quadra);
}
return colecaoRetorno;
}
/**
* Obt�m Elo P�lo
* @author Ana Maria
* @date 10/12/2007
*
* @throws ControladorException
*/
public Collection pesquisarEloPolo()throws ControladorException {
try {
return repositorioLocalidade.pesquisarEloPolo();
// erro no hibernate
} catch (ErroRepositorioException ex) {
// levanta a exce��o para a pr�xima camada
throw new ControladorException("erro.sistema", ex);
}
}
/**
* pesquisar localidades do munic�pio
* @author S�vio Luiz
* @date 25/02/2008
*
* @throws ControladorException
*/
public Collection pesquisarLocalidadesMunicipio(Integer idMunicipio)throws ControladorException {
try {
return repositorioLocalidade.pesquisarLocalidadesMunicipio(idMunicipio);
// erro no hibernate
} catch (ErroRepositorioException ex) {
// levanta a exce��o para a pr�xima camada
throw new ControladorException("erro.sistema", ex);
}
}
/**
* @author: Vivianne Sousa
* @date: 16/05/2008
*/
public Collection pesquisarIdQuadraPorSetorComercial(Integer idSetorComercial)
throws ControladorException {
try {
return repositorioQuadra.pesquisarIdQuadraPorSetorComercial(idSetorComercial);
// erro no hibernate
} catch (ErroRepositorioException ex) {
// levanta a exce��o para a pr�xima camada
throw new ControladorException("erro.sistema", ex);
}
}
/**
* Pesquisa os ids das localidaes que possuem im�veis
*
* @author Pedro Alexandre
* @date 07/07/2008
*
* @return
* @throws ControladorException
*/
public Collection<Integer> pesquisarIdsLocalidadesImoveis() throws ControladorException {
try {
return repositorioLocalidade.pesquisarIdsLocalidadesImoveis();
} catch (ErroRepositorioException ex) {
sessionContext.setRollbackOnly();
throw new ControladorException("erro.sistema", ex);
}
}
/**
* Atualiza o campo rota das quadras que pertencem ao intervalo de numero informado e ao setor comercial
*
* @author: Victor Cisneiros
* @date: 30/09/2008
*/
public void atualizarRotaDasQuadrasNoIntervaloNumero(
int idNovaRota, int idSetorComercial, int numeroInicial, int numeroFinal) throws ControladorException {
try {
repositorioQuadra.atualizarRotaDasQuadrasNoIntervaloNumero(idNovaRota, idSetorComercial, numeroInicial, numeroFinal);
} catch (ErroRepositorioException ex) {
sessionContext.setRollbackOnly();
throw new ControladorException("erro.sistema", ex);
}
}
/**
* @author: Victor Cisneiros
* @date: 30/09/2008
*/
public Collection<NumeroQuadraMinimoMaximoDaRotaHelper> pesquisarNumeroQuadraMininoMaximoDaRota(
Collection<Integer> idsRotas) throws ControladorException {
try {
return repositorioQuadra.pesquisarNumeroQuadraMininoMaximoDaRota(idsRotas);
} catch (ErroRepositorioException ex) {
sessionContext.setRollbackOnly();
throw new ControladorException("erro.sistema", ex);
}
}
/**
* [UC0???] Informar Subdivis�es de Rota
*
* @author: Victor Cisneiros
* @date: 27/10/2008
*/
public Integer pesqisarQuantidadeQuadrasDaRota(
Integer idRota, Integer quadraInicial, Integer quadraFinal) throws ControladorException {
try {
return this.repositorioQuadra.pesqisarQuantidadeQuadrasDaRota(idRota, quadraInicial, quadraFinal);
} catch (ErroRepositorioException ex) {
throw new FachadaException(ex.getMessage(), ex);
}
}
/**
* [UC0024] Inserir Quadra
*
* @author Raphael Rossiter
* @date 06/04/2009
*
* @param helper
* @return Quadra
* @throws ControladorException
*/
public Quadra validarQuadra(InserirQuadraHelper helper) throws ControladorException{
Quadra quadraInserir = new Quadra();
Collection colecaoPesquisa = null;
Localidade objetoLocalidade = null;
// LOCALIDADE � OBRIGAT�RIO.
if (helper.getLocalidadeID() == null || helper.getLocalidadeID().equalsIgnoreCase("")) {
throw new ControladorException("atencao.required", null, "Localidade");
}
else {
FiltroLocalidade filtroLocalidade = new FiltroLocalidade();
filtroLocalidade.adicionarCaminhoParaCarregamentoEntidade("localidade");
filtroLocalidade.adicionarParametro(new ParametroSimples(
FiltroLocalidade.ID, helper.getLocalidadeID()));
filtroLocalidade.adicionarParametro(new ParametroSimples(
FiltroLocalidade.INDICADORUSO, ConstantesSistema.INDICADOR_USO_ATIVO));
colecaoPesquisa = this.getControladorUtil().pesquisar(filtroLocalidade,
Localidade.class.getName());
if (colecaoPesquisa == null || colecaoPesquisa.isEmpty()) {
throw new ControladorException("atencao.pesquisa.localidade_inexistente");
}
else {
objetoLocalidade = (Localidade) Util
.retonarObjetoDeColecao(colecaoPesquisa);
if (objetoLocalidade.getLocalidade().getId().intValue() == 0) {
throw new ControladorException("atencao.localidade_sem_elo");
}
}
}
// ========================================================================
// SETOR COMERCIAL � OBRIGAT�RIO
SetorComercial objetoSetorComercial = null;
if (helper.getSetorComercialCD() == null || helper.getSetorComercialCD().equalsIgnoreCase("")) {
throw new ControladorException("atencao.required", null,"Setor Comercial");
}
else {
FiltroSetorComercial filtroSetorComercial = new FiltroSetorComercial();
filtroSetorComercial.adicionarCaminhoParaCarregamentoEntidade("localidade");
filtroSetorComercial.adicionarParametro(new ParametroSimples(
FiltroSetorComercial.ID_LOCALIDADE, helper.getLocalidadeID()));
filtroSetorComercial.adicionarParametro(new ParametroSimples(
FiltroSetorComercial.CODIGO_SETOR_COMERCIAL, helper.getSetorComercialCD()));
filtroSetorComercial.adicionarParametro(new ParametroSimples(
FiltroSetorComercial.INDICADORUSO, ConstantesSistema.INDICADOR_USO_ATIVO));
colecaoPesquisa = this.getControladorUtil().pesquisar(filtroSetorComercial,
SetorComercial.class.getName());
if (colecaoPesquisa == null || colecaoPesquisa.isEmpty()) {
throw new ControladorException("atencao.processo.setorComercialNaoCadastrada");
}
else {
objetoSetorComercial = (SetorComercial) Util
.retonarObjetoDeColecao(colecaoPesquisa);
quadraInserir.setSetorComercial(objetoSetorComercial);
}
}
// ========================================================================
// N�MERO DA QUADRA � OBRIGAT�RIO.
if (helper.getQuadraNM() == null || helper.getQuadraNM().equalsIgnoreCase("")) {
throw new ControladorException("atencao.required", null, "Quadra");
}
else {
quadraInserir.setNumeroQuadra(Integer.parseInt(helper.getQuadraNM()));
}
// ========================================================================
// PERFIL DA QUADRA � OBRIGAT�RIO
if (helper.getPerfilQuadraID() == null ||
helper.getPerfilQuadraID().equals(String.valueOf(ConstantesSistema.NUMERO_NAO_INFORMADO))) {
throw new ControladorException("atencao.required", null, "Perfil da Quadra");
}
else {
QuadraPerfil objetoQuadraPerfil = new QuadraPerfil();
objetoQuadraPerfil.setId(new Integer(helper.getPerfilQuadraID()));
quadraInserir.setQuadraPerfil(objetoQuadraPerfil);
}
// ========================================================================
//Area Tipo /Localiza��o
if (helper.getAreaTipoID() != null &&
!helper.getAreaTipoID().equals(String.valueOf(ConstantesSistema.NUMERO_NAO_INFORMADO))) {
AreaTipo objetoAreaTipo = new AreaTipo();
objetoAreaTipo.setId(new Integer(helper.getAreaTipoID()));
quadraInserir.setAreaTipo(objetoAreaTipo);
}
//=========================================================================
//IndicadorIncrementoLote
quadraInserir.setIndicadorIncrementoLote(new Short(helper.getIndicadorIncrementoLote()));
// ========================================================================
/*
* Para as empresas que N�O utilizam o conceito de face da quadra, as caracter�sticas da quadra ser�o
* gravadas na pr�pria quadra, caso contr�rio; ser�o geradas as faces da quadra com suas caracter�sticas
* diferentes.
*/
SistemaParametro sistemaParametro = this.getControladorUtil().pesquisarParametrosDoSistema();
if (sistemaParametro.getIndicadorQuadraFace().equals(ConstantesSistema.NAO)){
//IndicadorRedeAgua
if (helper.getIndicadorRedeAgua() == null || helper.getIndicadorRedeAgua().equals("")) {
throw new ControladorException("atencao.required", null, "Rede de �gua");
}
else {
quadraInserir.setIndicadorRedeAgua(new Short(helper.getIndicadorRedeAgua()));
}
// ========================================================================
// IndicadorRedeEsgoto
if (helper.getIndicadorRedeEsgoto() == null || helper.getIndicadorRedeEsgoto().equals("")) {
throw new ControladorException("atencao.required", null, "Rede de Esgoto");
}
else {
quadraInserir.setIndicadorRedeEsgoto(new Short(helper.getIndicadorRedeEsgoto()));
}
// ========================================================================
/*
* Caso o indicador da rede de �gua seja "COM_REDE = 2" ou "REDE_PARCIAL =
* 3" o campo distrito operacional passa a ser obrigat�rio
*/
if (quadraInserir.getIndicadorRedeAgua().equals(Quadra.COM_REDE) ||
quadraInserir.getIndicadorRedeAgua().equals(Quadra.REDE_PARCIAL)) {
if (helper.getDistritoOperacionalID() == null ||
helper.getDistritoOperacionalID().equalsIgnoreCase("")) {
throw new ControladorException("atencao.required", null, "Distrito Operacional");
}
}
if (helper.getDistritoOperacionalID() != null &&
!helper.getDistritoOperacionalID().equalsIgnoreCase("")) {
FiltroDistritoOperacional filtroDistritoOperacional = new FiltroDistritoOperacional();
filtroDistritoOperacional.adicionarParametro(new ParametroSimples(
FiltroDistritoOperacional.ID, helper.getDistritoOperacionalID()));
filtroDistritoOperacional.adicionarParametro(new ParametroSimples(
FiltroDistritoOperacional.INDICADORUSO, ConstantesSistema.INDICADOR_USO_ATIVO));
colecaoPesquisa = this.getControladorUtil().pesquisar(filtroDistritoOperacional,
DistritoOperacional.class.getName());
if (colecaoPesquisa == null || colecaoPesquisa.isEmpty()) {
throw new ControladorException("atencao.pesquisa.distrito_operacional_inexistente");
}
else {
DistritoOperacional objetoDistritoOperacional = (DistritoOperacional) Util
.retonarObjetoDeColecao(colecaoPesquisa);
quadraInserir.setDistritoOperacional(objetoDistritoOperacional);
}
}
// ======================================================================
/*
* Caso o indicador da rede de esgoto seja "COM_REDE = 2" ou
* "REDE_PARCIAL = 3" o campo bacia passa a ser obrigat�rio
*/
Bacia objetoBacia = new Bacia();
if (quadraInserir.getIndicadorRedeEsgoto().equals(Quadra.COM_REDE) ||
quadraInserir.getIndicadorRedeEsgoto().equals(Quadra.REDE_PARCIAL)) {
if (Integer.parseInt(helper.getSistemaEsgotoID()) == ConstantesSistema.NUMERO_NAO_INFORMADO) {
throw new ControladorException("atencao.required", null, "Sistema Esgoto");
}
else if (helper.getBaciaID() == null || helper.getBaciaID().equalsIgnoreCase("")) {
throw new ControladorException("atencao.sistema_esgoto_nao_contem_bacia");
}
else {
objetoBacia.setId(new Integer(helper.getBaciaID()));
quadraInserir.setBacia(objetoBacia);
}
}
else if (helper.getBaciaID() != null && !helper.getBaciaID().equalsIgnoreCase("") &&
!helper.getBaciaID().equalsIgnoreCase(String.valueOf(ConstantesSistema.NUMERO_NAO_INFORMADO))) {
objetoBacia.setId(new Integer(helper.getBaciaID()));
quadraInserir.setBacia(objetoBacia);
}
// ========================================================================
}
// Setor Censit�rio (Opcional)
if (helper.getSetorCensitarioID() != null &&
!helper.getSetorCensitarioID().equalsIgnoreCase("")) {
FiltroIbgeSetorCensitario filtroIbgeSetorCensitario = new FiltroIbgeSetorCensitario();
filtroIbgeSetorCensitario.adicionarParametro(new ParametroSimples(
FiltroIbgeSetorCensitario.ID, helper.getSetorCensitarioID()));
filtroIbgeSetorCensitario.adicionarParametro(new ParametroSimples(
FiltroIbgeSetorCensitario.INDICADORUSO, ConstantesSistema.INDICADOR_USO_ATIVO));
colecaoPesquisa = this.getControladorUtil().pesquisar(filtroIbgeSetorCensitario,
IbgeSetorCensitario.class.getName());
if (colecaoPesquisa == null || colecaoPesquisa.isEmpty()) {
throw new ControladorException("atencao.pesquisa_inexistente", null,
"Setor Censit�rio");
}
else {
IbgeSetorCensitario objetoIbgeSetorCensitario = new IbgeSetorCensitario();
objetoIbgeSetorCensitario.setId(new Integer(helper.getSetorCensitarioID()));
quadraInserir.setIbgeSetorCensitario(objetoIbgeSetorCensitario);
}
}
// ========================================================================
// Zeis (Opcional)
if (Integer.parseInt(helper.getZeisID()) != ConstantesSistema.NUMERO_NAO_INFORMADO) {
Zeis objetoZeis = new Zeis();
objetoZeis.setId(new Integer(helper.getZeisID()));
quadraInserir.setZeis(objetoZeis);
}
// ========================================================================
/*
* Rota � obrigat�rio (o setor comercial da quadra tem que ser o mesmo
* setor) comercial da rota
*/
if ((helper.getRotaCD() == null || helper.getRotaCD().equalsIgnoreCase(""))
&& (helper.getRotaID() == null || helper.getRotaID().equalsIgnoreCase(""))) {
throw new ControladorException("atencao.required", null, "Rota");
}
else {
FiltroRota filtroRota = new FiltroRota();
filtroRota.adicionarCaminhoParaCarregamentoEntidade("setorComercial");
filtroRota.adicionarParametro(new ParametroSimples(
FiltroRota.LOCALIDADE_ID, helper.getLocalidadeID()));
filtroRota.adicionarParametro(new ParametroSimples(
FiltroRota.SETOR_COMERCIAL_CODIGO, helper.getSetorComercialCD()));
filtroRota.adicionarParametro(new ParametroSimples(
FiltroRota.CODIGO_ROTA, helper.getRotaCD()));
/*
* 08/03/2012
*
* Adi��o do id da rota no filtro para pesquisa
*/
filtroRota.adicionarParametro(new ParametroSimples(
FiltroRota.ID_ROTA, helper.getRotaID()));
// fim da altera��o
filtroRota.adicionarParametro(new ParametroSimples(FiltroRota.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
colecaoPesquisa = this.getControladorUtil().pesquisar(filtroRota, Rota.class.getName());
if (colecaoPesquisa == null || colecaoPesquisa.isEmpty()) {
throw new ControladorException("atencao.pesquisa.rota_inexistente");
}
else {
Rota objetoRota = (Rota) Util.retonarObjetoDeColecao(colecaoPesquisa);
if (objetoRota.getSetorComercial().getId().intValue() != quadraInserir
.getSetorComercial().getId().intValue()) {
throw new ControladorException("atencao.quadra_rota_mesmo_setor_comercial");
}
else {
quadraInserir.setRota(objetoRota);
}
}
}
// ========================================================================
// Indicador de Uso
if (helper.getIndicadorUso() != null && !helper.getIndicadorUso().equals("")){
quadraInserir.setIndicadorUso(Short.valueOf(helper.getIndicadorUso()));
}
else{
quadraInserir.setIndicadorUso(ConstantesSistema.INDICADOR_USO_ATIVO);
}
// ========================================================================
if (helper.getQuadraId() == null || helper.getQuadraId().equals("")){
//Verifica se ja existe uma quadra cadastrada com o mesmo numero
FiltroQuadra filtroQuadra = new FiltroQuadra();
filtroQuadra.adicionarParametro(new ParametroSimples(
FiltroQuadra.ID_SETORCOMERCIAL, quadraInserir.getSetorComercial().getId()));
filtroQuadra.adicionarParametro(new ParametroSimples(
FiltroQuadra.NUMERO_QUADRA, new Integer(quadraInserir.getNumeroQuadra())));
colecaoPesquisa = this.getControladorUtil().pesquisar(filtroQuadra, Quadra.class
.getName());
if (colecaoPesquisa != null && !colecaoPesquisa.isEmpty()) {
throw new ControladorException("atencao.pesquisa.quadra_ja_cadastrada", null, ""
+ quadraInserir.getNumeroQuadra(), helper.getSetorComercialCD()
+ "-" + objetoSetorComercial.getDescricao(),
helper.getLocalidadeID() + "-" + objetoLocalidade.getDescricao());
}
// ========================================================================
}
// Bairro
if(helper.getBairroCD() != null && !helper.getBairroCD().equals("")){
// Verifica se ja existe uma Bairro cadastrada com o mesmo numero
FiltroBairro filtroBairro = new FiltroBairro();
filtroBairro.adicionarParametro(new ParametroSimples(
FiltroBairro.CODIGO, helper.getBairroCD()));
// Munic�pio
if(helper.getMunicipioID() != null && !helper.getMunicipioID().equals("")){
filtroBairro.adicionarParametro(new ParametroSimples(
FiltroBairro.MUNICIPIO_ID, helper.getMunicipioID()));
}
colecaoPesquisa = this.getControladorUtil().pesquisar(filtroBairro, Bairro.class
.getName());
if (colecaoPesquisa == null || colecaoPesquisa.isEmpty()) {
throw new ControladorException("atencao.pesquisa.bairro_inexistente");
}
else {
Bairro objetoBairro = (Bairro) Util.retonarObjetoDeColecao(colecaoPesquisa);
quadraInserir.setBairro(objetoBairro);
}
}
// Ultima altera��o
quadraInserir.setUltimaAlteracao(new Date());
return quadraInserir;
}
/**
* Integra��o com o conceito de face da quadra
*
* @author Raphael Rossiter
* @date 21/05/2009
*
* @param idImovel
* @return IntegracaoQuadraFaceHelper
* @throws ControladorException
*/
public IntegracaoQuadraFaceHelper integracaoQuadraFace(Integer idImovel) throws ControladorException{
IntegracaoQuadraFaceHelper integracaoQuadraFaceHelper = new IntegracaoQuadraFaceHelper();
SistemaParametro sistemaParametro = this.getControladorUtil().pesquisarParametrosDoSistema();
/*
* Caso a empresa utilize o conceito de face da quadra (PARM_ICQUADRAFACE = 1 da
* tabela SISTEMA_PARAMETROS); os campos de INDICADOR_REDE_AGUA, INDICADOR_REDE_ESGOTO
* DISTRITO_OPERACIONAL e BACIA ser�o obtidos a partir da face da quadra que est�
* associada ao im�vel selecionado.
*/
if (sistemaParametro.getIndicadorQuadraFace().equals(ConstantesSistema.SIM)){
try {
QuadraFace quadraFace = this.repositorioQuadra.pesquisarQuadraFace(idImovel);
if (quadraFace != null){
integracaoQuadraFaceHelper.setIndicadorRedeAgua(quadraFace.getIndicadorRedeAgua());
integracaoQuadraFaceHelper.setIndicadorRedeEsgoto(quadraFace.getIndicadorRedeEsgoto());
integracaoQuadraFaceHelper.setDistritoOperacional(quadraFace.getDistritoOperacional());
integracaoQuadraFaceHelper.setBacia(quadraFace.getBacia());
}
else{
throw new ControladorException("atencao.imovel_sem_quadra_face", null, "Rota");
}
}
catch (ErroRepositorioException ex) {
ex.printStackTrace();
throw new FachadaException(ex.getMessage(), ex);
}
}
/*
* Caso contr�rio; ser�o obtidos atrav�s da quadra
*/
else{
try {
Quadra quadra = this.repositorioQuadra.pesquisarQuadra(idImovel);
integracaoQuadraFaceHelper.setIndicadorRedeAgua(quadra.getIndicadorRedeAgua());
integracaoQuadraFaceHelper.setIndicadorRedeEsgoto(quadra.getIndicadorRedeEsgoto());
integracaoQuadraFaceHelper.setDistritoOperacional(quadra.getDistritoOperacional());
integracaoQuadraFaceHelper.setBacia(quadra.getBacia());
} catch (ErroRepositorioException ex) {
ex.printStackTrace();
throw new FachadaException(ex.getMessage(), ex);
}
}
return integracaoQuadraFaceHelper;
}
/**
* [UC0928] - Manter Situa��o Especial de Faturamento
* [FS0004] - Verificar Exist�ncia da Quadra
*
* Pesquisa uma cole��o de quadra com filtrando tamb�m pelo setor comercial.
*
*/
public Quadra obterQuadraSetorComercial(int idSetor, int numeroQuadra) throws ControladorException{
try {
FiltroQuadra filtroQuadra = new FiltroQuadra();
filtroQuadra.adicionarParametro(new ParametroSimples(FiltroQuadra.NUMERO_QUADRA,numeroQuadra));
filtroQuadra.adicionarParametro(new ParametroSimples(FiltroQuadra.ID_SETORCOMERCIAL,idSetor));
filtroQuadra.adicionarParametro(new ParametroSimples(
FiltroQuadra.INDICADORUSO,ConstantesSistema.INDICADOR_USO_ATIVO));
Collection<Quadra> colecaoQuadra =
getControladorUtil().pesquisar(filtroQuadra,Quadra.class.getName());
if( !Util.isVazioOrNulo(colecaoQuadra)){
return colecaoQuadra.iterator().next();
}
return null;
} catch (Exception ex) {
ex.printStackTrace();
throw new ControladorException("erro.sistema", ex);
}
}
/**
* Pesquisa os ids de Todas as localidaes.
*
* @author Hugo Leonardo
* @date 08/07/2010
*
* @return
* @throws ControladorException
*/
public Collection<Integer> pesquisarIdsLocalidades() throws ControladorException {
try {
return repositorioLocalidade.pesquisarIdsLocalidades();
} catch (ErroRepositorioException ex) {
sessionContext.setRollbackOnly();
throw new ControladorException("erro.sistema", ex);
}
}
}