package gcom.operacional;
import gcom.interceptor.RegistradorOperacao;
import gcom.micromedicao.hidrometro.FiltroHidrometroMarca;
import gcom.micromedicao.hidrometro.HidrometroMarca;
import gcom.operacional.abastecimento.AbastecimentoProgramacao;
import gcom.operacional.abastecimento.FiltroAbastecimentoProgramacao;
import gcom.operacional.abastecimento.FiltroManutencaoProgramacao;
import gcom.operacional.abastecimento.ManutencaoProgramacao;
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.ServiceLocator;
import gcom.util.ServiceLocatorException;
import gcom.util.SistemaException;
import gcom.util.Util;
import gcom.util.filtro.ComparacaoTextoCompleto;
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;
/**
* Defini��o da l�gica de neg�cio do Session Bean de ControladorCliente
*
* @author Leandro Cavalcanti
* @created 12 de junho de 2006
*/
public class ControladorOperacionalSEJB implements SessionBean {
private static final long serialVersionUID = 1L;
SessionContext sessionContext;
protected IRepositorioOperacional repositorioOperacional;
/**
* < <Descri��o do m�todo>>
*
* @exception CreateException
* Descri��o da exce��o
*/
public void ejbCreate() throws CreateException {
repositorioOperacional = RepositorioOperacionalHBM.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 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);
}
}
/**
* Faz o controle de concorrencia de programa��o de abastecimento
*
* @author Rafael Pinto
*
* @date 04/12/2006
* @throws ControladorException
*/
private void verificarAbastecimentoProgramacaoControleConcorrencia(
AbastecimentoProgramacao abastecimentoProgramacao)
throws ControladorException {
FiltroAbastecimentoProgramacao filtro = new FiltroAbastecimentoProgramacao();
filtro.adicionarParametro(new ParametroSimples(
FiltroAbastecimentoProgramacao.ID, abastecimentoProgramacao
.getId()));
Collection colecao = getControladorUtil().pesquisar(filtro,
AbastecimentoProgramacao.class.getName());
if (colecao == null || colecao.isEmpty()) {
sessionContext.setRollbackOnly();
throw new ControladorException("atencao.atualizacao.timestamp");
}
AbastecimentoProgramacao abastecimentoProgramacaoAtual = (AbastecimentoProgramacao) Util
.retonarObjetoDeColecao(colecao);
if (abastecimentoProgramacaoAtual.getUltimaAlteracao().after(
abastecimentoProgramacao.getUltimaAlteracao())) {
sessionContext.setRollbackOnly();
throw new ControladorException("atencao.atualizacao.timestamp");
}
}
/**
* Faz o controle de concorrencia da programa��o da manuten��o
*
* @author Rafael Pinto
*
* @date 04/12/2006
* @throws ControladorException
*/
private void verificarManutencaoProgramacaoControleConcorrencia(
ManutencaoProgramacao manutencaoProgramacao)
throws ControladorException {
FiltroManutencaoProgramacao filtro = new FiltroManutencaoProgramacao();
filtro.adicionarParametro(new ParametroSimples(
FiltroManutencaoProgramacao.ID, manutencaoProgramacao.getId()));
Collection colecao = getControladorUtil().pesquisar(filtro,
ManutencaoProgramacao.class.getName());
if (colecao == null || colecao.isEmpty()) {
sessionContext.setRollbackOnly();
throw new ControladorException("atencao.atualizacao.timestamp");
}
ManutencaoProgramacao manutencaoProgramacaoAtual = (ManutencaoProgramacao) Util
.retonarObjetoDeColecao(colecao);
if (manutencaoProgramacaoAtual.getUltimaAlteracao().after(
manutencaoProgramacaoAtual.getUltimaAlteracao())) {
sessionContext.setRollbackOnly();
throw new ControladorException("atencao.atualizacao.timestamp");
}
}
/**
* [UC0001] Inserir Distrito Operacional
*
* @author Eduardo Bianchi
* @date 26/01/2007
*
* @param Distrito
* Operaciona Descri��o do par�metro
*/
public Integer inserirDistritoOperacional(String descricao,
String descricaoAbreviada, String idSetorAbastecimento,
Usuario usuarioLogado)
throws ControladorException {
DistritoOperacional distritoOperacional = new DistritoOperacional();
distritoOperacional.setDescricao(descricao);
distritoOperacional.setDescricaoAbreviada(descricaoAbreviada);
SetorAbastecimento setorAbesteciento = new SetorAbastecimento();
setorAbesteciento.setId(new Integer(idSetorAbastecimento));
distritoOperacional.setSetorAbastecimento(setorAbesteciento);
distritoOperacional.setUltimaAlteracao(new Date());
distritoOperacional.setIndicadorUso( new Integer(1).shortValue() );
FiltroDistritoOperacional filtroDistritoOperacional = new FiltroDistritoOperacional();
filtroDistritoOperacional.adicionarParametro(new ParametroSimples(
FiltroDistritoOperacional.DESCRICAO, descricao));
Collection colecaoDistritoOperacional = getControladorUtil().pesquisar(
filtroDistritoOperacional, DistritoOperacional.class.getName());
Integer idDistritoOperacional = null;
if (colecaoDistritoOperacional.isEmpty()) {
idDistritoOperacional = (Integer) getControladorUtil().inserir(
distritoOperacional);
} else {
throw new ControladorException(
"atencao.distrito_operacional_existente");
}
// ------------ REGISTRAR TRANSA��O----------------------------
RegistradorOperacao registradorOperacao = new RegistradorOperacao(
Operacao.OPERACAO_DISTRITO_OPERACIONAL_INSERIR,
new UsuarioAcaoUsuarioHelper(usuarioLogado,
UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO));
Operacao operacao = new Operacao();
operacao.setId(Operacao.OPERACAO_DISTRITO_OPERACIONAL_INSERIR);
OperacaoEfetuada operacaoEfetuada = new OperacaoEfetuada();
operacaoEfetuada.setOperacao(operacao);
distritoOperacional.setOperacaoEfetuada(operacaoEfetuada);
distritoOperacional.adicionarUsuario(usuarioLogado,
UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO);
registradorOperacao.registrarOperacao(distritoOperacional);
// ------------ REGISTRAR TRANSA��O----------------------------
return idDistritoOperacional;
}
/**
* [UC0414] - Informar Programa��o de Abastecimento e Manuten��o
*
* [SB0006] - Atualizar Programa��o de Abastecimento na Base de Dados
* [SB0007] - Atualizar Programa��o de Manuten��o na Base de Dados
*
* @author Rafael Pinto
* @date 09/11/2006
*
* @throws ControladorException
* Controlador Exception
*/
public void atualizarProgramacaoAbastecimentoManutencao(
Collection colecaoProgramacaoAbastecimento,
Collection colecaoProgramacaoAbastecimentoRemovidas,
Collection colecaoProgramacaoManutencao,
Collection colecaoProgramacaoManutencaoRemovidas, Usuario usuario)
throws ControladorException {
// [UC0107] - Registrar Transa��o
RegistradorOperacao registradorOperacao = new RegistradorOperacao(
Operacao.OPERACAO_PROGRAMACAO_ABASTECIMENTO_MANUTENCAO_ATUALIZAR,
new UsuarioAcaoUsuarioHelper(usuario,
UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO));
Operacao operacao = new Operacao();
operacao
.setId(Operacao.OPERACAO_PROGRAMACAO_ABASTECIMENTO_MANUTENCAO_ATUALIZAR);
OperacaoEfetuada operacaoEfetuada = new OperacaoEfetuada();
operacaoEfetuada.setOperacao(operacao);
Iterator itera = null;
// [SB0006] - Atualizar Programa��o de Abastecimento na Base de Dados
if (colecaoProgramacaoAbastecimento != null
&& !colecaoProgramacaoAbastecimento.isEmpty()) {
itera = colecaoProgramacaoAbastecimento.iterator();
while (itera.hasNext()) {
AbastecimentoProgramacao abastecimentoProgramacao = (AbastecimentoProgramacao) itera
.next();
// Se existir id que dizer que existe esse objeto na base,
// ent�o verifica o controle de concorrencia
if (abastecimentoProgramacao.getId() != null
&& abastecimentoProgramacao.getId().intValue() != ConstantesSistema.NUMERO_NAO_INFORMADO) {
this
.verificarAbastecimentoProgramacaoControleConcorrencia(abastecimentoProgramacao);
}
abastecimentoProgramacao.setUltimaAlteracao(new Date());
// [UC0107] - Registrar Transa��o
abastecimentoProgramacao.setOperacaoEfetuada(operacaoEfetuada);
abastecimentoProgramacao.adicionarUsuario(usuario,
UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO);
registradorOperacao.registrarOperacao(abastecimentoProgramacao);
this.getControladorUtil().inserirOuAtualizar(
abastecimentoProgramacao);
}
}
if (colecaoProgramacaoAbastecimentoRemovidas != null
&& !colecaoProgramacaoAbastecimentoRemovidas.isEmpty()) {
Iterator iter = colecaoProgramacaoAbastecimentoRemovidas.iterator();
while (iter.hasNext()) {
AbastecimentoProgramacao abastecimentoProgramacao = (AbastecimentoProgramacao) iter
.next();
// Se existir id que dizer que existe esse objeto na base,
// ent�o verifica o controle de concorrencia
if (abastecimentoProgramacao.getId() != null
&& abastecimentoProgramacao.getId().intValue() != ConstantesSistema.NUMERO_NAO_INFORMADO) {
this
.verificarAbastecimentoProgramacaoControleConcorrencia(abastecimentoProgramacao);
}
abastecimentoProgramacao.setOperacaoEfetuada(operacaoEfetuada);
abastecimentoProgramacao.adicionarUsuario(usuario,
UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO);
registradorOperacao.registrarOperacao(abastecimentoProgramacao);
this.getControladorUtil().remover(abastecimentoProgramacao);
}
}
if (colecaoProgramacaoManutencao != null
&& !colecaoProgramacaoManutencao.isEmpty()) {
itera = colecaoProgramacaoManutencao.iterator();
// [SB0007] - Atualizar Programa��o de Manuten��o na Base de Dados
while (itera.hasNext()) {
ManutencaoProgramacao manutencaoProgramacao = (ManutencaoProgramacao) itera
.next();
// Se existir id que dizer que existe esse objeto na base,
// ent�o verifica o controle de concorrencia
if (manutencaoProgramacao.getId() != null
&& manutencaoProgramacao.getId().intValue() != ConstantesSistema.NUMERO_NAO_INFORMADO) {
this
.verificarManutencaoProgramacaoControleConcorrencia(manutencaoProgramacao);
}
manutencaoProgramacao.setUltimaAlteracao(new Date());
// [UC0107] - Registrar Transa��o
manutencaoProgramacao.setOperacaoEfetuada(operacaoEfetuada);
manutencaoProgramacao.adicionarUsuario(usuario,
UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO);
registradorOperacao.registrarOperacao(manutencaoProgramacao);
this.getControladorUtil().inserirOuAtualizar(
manutencaoProgramacao);
}
}
if (colecaoProgramacaoManutencaoRemovidas != null
&& !colecaoProgramacaoManutencaoRemovidas.isEmpty()) {
Iterator iter = colecaoProgramacaoManutencaoRemovidas.iterator();
while (iter.hasNext()) {
ManutencaoProgramacao manutencaoProgramacao = (ManutencaoProgramacao) iter
.next();
// Se existir id que dizer que existe esse objeto na base,
// ent�o verifica o controle de concorrencia
if (manutencaoProgramacao.getId() != null
&& manutencaoProgramacao.getId().intValue() != ConstantesSistema.NUMERO_NAO_INFORMADO) {
this
.verificarManutencaoProgramacaoControleConcorrencia(manutencaoProgramacao);
}
manutencaoProgramacao.setOperacaoEfetuada(operacaoEfetuada);
manutencaoProgramacao.adicionarUsuario(usuario,
UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO);
registradorOperacao.registrarOperacao(manutencaoProgramacao);
this.getControladorUtil().remover(manutencaoProgramacao);
}
}
}
/**
* [UC0522] MANTER DISTRITO OPERACIONAL
*
* Remover Distrito Operacional
*
* @author Eduardo Bianchi
* @date 05/02/2007
*
* @pparam distritoOperacional
* @throws ControladorException
*/
public void removerDistritoOperacional(String[] ids, Usuario usuarioLogado)throws ControladorException {
// ------------ REGISTRAR TRANSA��O ----------------
Operacao operacao = new Operacao();
operacao.setId(Operacao.OPERACAO_MUNICIPIO_REMOVER);
OperacaoEfetuada operacaoEfetuada = new OperacaoEfetuada();
operacaoEfetuada.setOperacao(operacao);
UsuarioAcaoUsuarioHelper usuarioAcaoUsuarioHelper = new UsuarioAcaoUsuarioHelper(
usuarioLogado, UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO);
Collection<UsuarioAcaoUsuarioHelper> colecaoUsuarios = new ArrayList();
colecaoUsuarios.add(usuarioAcaoUsuarioHelper);
// ------------ REGISTRAR TRANSA��O ----------------
// [FS0003]Municipiopossui vinculos no sistema
this.getControladorUtil().remover(ids, DistritoOperacional.class.getName(),null, null);
}
/**
* [UC0522] Manter Distrito Operacional [SB0001]Atualizar Municipio
*
* @author Eduardo Bianchi
* @date 09/02/2007
*
* @pparam distritoOperacional
* @throws ControladorException
*/
public void atualizarDistritoOperacional(DistritoOperacional distritoOperacional,
Usuario usuarioLogado) throws ControladorException {
// [UC0107] - Registrar Transa��o
// ------------ REGISTRAR TRANSA��O----------------------------
RegistradorOperacao registradorOperacao = new RegistradorOperacao(
Operacao.OPERACAO_DISTRITO_OPERACIONAL_ATUALIZAR,new UsuarioAcaoUsuarioHelper(usuarioLogado,
UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO));
Operacao operacao = new Operacao();
operacao.setId(Operacao.OPERACAO_DISTRITO_OPERACIONAL_ATUALIZAR);
OperacaoEfetuada operacaoEfetuada = new OperacaoEfetuada();
operacaoEfetuada.setOperacao(operacao);
distritoOperacional.setOperacaoEfetuada(operacaoEfetuada);
distritoOperacional.adicionarUsuario(usuarioLogado,UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO);
registradorOperacao.registrarOperacao(distritoOperacional);
// ------------ REGISTRAR TRANSA��O----------------------------
// [FS0002] - Atualiza��o realizada por outro usu�rio
FiltroDistritoOperacional filtroDistritoOperacional = new FiltroDistritoOperacional();
// Seta o filtro para buscar o Distrito Operacional na base
filtroDistritoOperacional.adicionarParametro(new ParametroSimples(FiltroDistritoOperacional.ID, distritoOperacional.getId()));
// Procura o Distrito Operacional na base
Collection distritosOperacionaisAtualizados = getControladorUtil().pesquisar(filtroDistritoOperacional,DistritoOperacional.class.getName());
DistritoOperacional distritoOperacionalNaBase = (DistritoOperacional) Util.retonarObjetoDeColecao(distritosOperacionaisAtualizados);
if (distritoOperacionalNaBase == null) {
sessionContext.setRollbackOnly();
throw new ControladorException("atencao.registro_remocao_nao_existente");
}
// Verificar se o distrito Operacional j� foi atualizado por outro usu�rio
// durante esta atualiza��o
if (distritoOperacionalNaBase.getUltimaAlteracao().after(distritoOperacional.getUltimaAlteracao())) {
sessionContext.setRollbackOnly();
throw new ControladorException("atencao.atualizacao.timestamp");
}
distritoOperacional.setUltimaAlteracao(new Date());
// Atualiza o objeto na base
getControladorUtil().atualizar(distritoOperacional);
}
/**
* [UC0524] Inserir Sistema de Esgoto
*
* @author Kassia Albuquerque
* @date 09/03/2007
*
*
*/
public Integer inserirSistemaEsgoto(SistemaEsgoto sistemaEsgoto,Usuario usuarioLogado)
throws ControladorException {
// [FS0003] - Verificando a exist�ncia do Sistema de Esgoto
FiltroSistemaEsgoto filtroSistemaEsgoto= new FiltroSistemaEsgoto();
filtroSistemaEsgoto.adicionarParametro(new ComparacaoTextoCompleto(FiltroSistemaEsgoto.DESCRICAO,sistemaEsgoto.getDescricao()));
Collection colecaoSistemaEsgoto = getControladorUtil().pesquisar(filtroSistemaEsgoto, SistemaEsgoto.class.getName());
if (colecaoSistemaEsgoto != null && !colecaoSistemaEsgoto.isEmpty()){
throw new ControladorException("atencao.divisao_esgoto.existente", null, sistemaEsgoto.getDescricao());
}
sistemaEsgoto.setUltimaAlteracao(new Date());
// ------------ REGISTRAR TRANSA��O----------------------------
RegistradorOperacao registradorOperacao = new RegistradorOperacao(
Operacao.OPERACAO_INSERIR_SISTEMA_ESGOTO, new UsuarioAcaoUsuarioHelper
(usuarioLogado,UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO));
Operacao operacao = new Operacao();
operacao.setId(Operacao.OPERACAO_INSERIR_SISTEMA_ESGOTO);
OperacaoEfetuada operacaoEfetuada = new OperacaoEfetuada();
operacaoEfetuada.setOperacao(operacao);
sistemaEsgoto.setOperacaoEfetuada(operacaoEfetuada);
sistemaEsgoto.adicionarUsuario(usuarioLogado,UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO);
registradorOperacao.registrarOperacao(sistemaEsgoto);
// ------------ REGISTRAR TRANSA��O----------------------------
Integer idSistemaEsgoto = (Integer) getControladorUtil().inserir(sistemaEsgoto);
sistemaEsgoto.setId(idSistemaEsgoto);
return idSistemaEsgoto;
}
/**
* [UC0525] Manter Sistema Esgoto [SB0001]Atualizar Sistema Esgoto
*
* @author Kassia Albuquerque
* @date 19/03/2007
*
*/
public void atualizarSistemaEsgoto(SistemaEsgoto sistemaEsgoto,Usuario usuarioLogado)
throws ControladorException {
// [UC0107] - Registrar Transa��o
// ------------ REGISTRAR TRANSA��O----------------------------
RegistradorOperacao registradorOperacao = new RegistradorOperacao(
Operacao.OPERACAO_SISTEMA_ESGOTO_ATUALIZAR,new UsuarioAcaoUsuarioHelper(usuarioLogado,
UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO));
Operacao operacao = new Operacao();
operacao.setId(Operacao.OPERACAO_SISTEMA_ESGOTO_ATUALIZAR);
OperacaoEfetuada operacaoEfetuada = new OperacaoEfetuada();
operacaoEfetuada.setOperacao(operacao);
sistemaEsgoto.setOperacaoEfetuada(operacaoEfetuada);
sistemaEsgoto.adicionarUsuario(usuarioLogado,UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO);
registradorOperacao.registrarOperacao(sistemaEsgoto);
// ------------ REGISTRAR TRANSA��O----------------------------
// [FS0002] - Atualiza��o realizada por outro usu�rio
FiltroSistemaEsgoto filtroSistemaEsgoto = new FiltroSistemaEsgoto();
// Seta o filtro para buscar o sistema de esgoto na base
filtroSistemaEsgoto.adicionarParametro(new ParametroSimples(FiltroSistemaEsgoto.ID, sistemaEsgoto.getId()));
// Procura sistema de esgoto na base
Collection sistemaEsgotoAtualizados = getControladorUtil().pesquisar(filtroSistemaEsgoto,SistemaEsgoto.class.getName());
SistemaEsgoto sistemaEsgotoNaBase = (SistemaEsgoto) Util.retonarObjetoDeColecao(sistemaEsgotoAtualizados);
if (sistemaEsgotoNaBase == null) {
sessionContext.setRollbackOnly();
throw new ControladorException("atencao.registro_remocao_nao_existente");
}
// Verificar se o sistema de esgoto j� foi atualizado por outro usu�rio
// durante esta atualiza��o
if (sistemaEsgotoNaBase.getUltimaAlteracao().after(sistemaEsgoto.getUltimaAlteracao())) {
sessionContext.setRollbackOnly();
throw new ControladorException("atencao.atualizacao.timestamp");
}
sistemaEsgoto.setUltimaAlteracao(new Date());
// Atualiza o objeto na base
getControladorUtil().atualizar(sistemaEsgoto);
}
/**
* [UC0525] Manter Sistema Esgoto [SB0002]Remover Sistema Esgoto
*
* @author Kassia Albuquerque
* @date 20/03/2007
*
*/
public void removerSistemaEsgoto(String[] ids, Usuario usuarioLogado)throws ControladorException {
// ------------ REGISTRAR TRANSA��O ----------------
Operacao operacao = new Operacao();
operacao.setId(Operacao.OPERACAO_SISTEMA_ESGOTO_REMOVER);
OperacaoEfetuada operacaoEfetuada = new OperacaoEfetuada();
operacaoEfetuada.setOperacao(operacao);
UsuarioAcaoUsuarioHelper usuarioAcaoUsuarioHelper = new UsuarioAcaoUsuarioHelper(
usuarioLogado, UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO);
Collection<UsuarioAcaoUsuarioHelper> colecaoUsuarios = new ArrayList();
colecaoUsuarios.add(usuarioAcaoUsuarioHelper);
// ------------ REGISTRAR TRANSA��O ----------------
// [FS0003]Sistema de Esgoto possui vinculos no sistema
this.getControladorUtil().remover(ids, SistemaEsgoto.class.getName(),operacaoEfetuada, colecaoUsuarios);
}
/**
* [UC0081] Manter Marca Hidrometro
*
* @author Bruno Barros
* @date 03/07/2007
*
*/
public void removerHidrometroMarca(String[] ids, Usuario usuarioLogado)throws ControladorException {
// ------------ REGISTRAR TRANSA��O ----------------
Operacao operacao = new Operacao();
operacao.setId(Operacao.OPERACAO_REMOVER_MARCA_HIDROMETRO);
OperacaoEfetuada operacaoEfetuada = new OperacaoEfetuada();
operacaoEfetuada.setOperacao(operacao);
UsuarioAcaoUsuarioHelper usuarioAcaoUsuarioHelper = new UsuarioAcaoUsuarioHelper(
usuarioLogado, UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO);
Collection<UsuarioAcaoUsuarioHelper> colecaoUsuarios = new ArrayList();
colecaoUsuarios.add(usuarioAcaoUsuarioHelper);
// ------------ REGISTRAR TRANSA��O ----------------
// [FS0003]Sistema de Esgoto possui vinculos no sistema
this.getControladorUtil().remover(ids, HidrometroMarca.class.getName(),operacaoEfetuada, colecaoUsuarios);
}
/**
* [UC0081] Manter Hidrometro Marca
*
* @author Bruno Barros
* @date 04/07/2007
*
*/
public void atualizarHidrometroMarca(HidrometroMarca hidrometroMarca,Usuario usuarioLogado)
throws ControladorException {
// [UC0107] - Registrar Transa��o
// ------------ REGISTRAR TRANSA��O----------------------------
RegistradorOperacao registradorOperacao = new RegistradorOperacao(
Operacao.OPERACAO_ATUALIZAR_MARCA_HIDROMETRO,new UsuarioAcaoUsuarioHelper(usuarioLogado,
UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO));
Operacao operacao = new Operacao();
operacao.setId(Operacao.OPERACAO_ATUALIZAR_MARCA_HIDROMETRO);
OperacaoEfetuada operacaoEfetuada = new OperacaoEfetuada();
operacaoEfetuada.setOperacao(operacao);
hidrometroMarca.setOperacaoEfetuada(operacaoEfetuada);
hidrometroMarca.adicionarUsuario(usuarioLogado,UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO);
registradorOperacao.registrarOperacao(hidrometroMarca);
// ------------ REGISTRAR TRANSA��O----------------------------
// [FS0002] - Atualiza��o realizada por outro usu�rio
FiltroHidrometroMarca filtroHidrometroMarca = new FiltroHidrometroMarca();
// Seta o filtro para buscar a marca de hidrometro na base
filtroHidrometroMarca.adicionarParametro(new ParametroSimples(FiltroHidrometroMarca.ID, hidrometroMarca.getId()));
// Procura sistema de esgoto na base
Collection hidrometromMarcaAtualizados = getControladorUtil().pesquisar(filtroHidrometroMarca,HidrometroMarca.class.getName());
HidrometroMarca hidrometromMarcaNaBase = (HidrometroMarca) Util.retonarObjetoDeColecao(hidrometromMarcaAtualizados);
if (hidrometromMarcaNaBase == null) {
sessionContext.setRollbackOnly();
throw new ControladorException("atencao.registro_remocao_nao_existente");
}
// Verificar se o sistema de esgoto j� foi atualizado por outro usu�rio
// durante esta atualiza��o
if (hidrometromMarcaNaBase.getUltimaAlteracao().after(hidrometroMarca.getUltimaAlteracao())) {
sessionContext.setRollbackOnly();
throw new ControladorException("atencao.atualizacao.timestamp");
}
hidrometroMarca.setUltimaAlteracao(new Date());
// Atualiza o objeto na base
getControladorUtil().atualizar(hidrometroMarca);
}
/**
* [UC0596] - Inserir Qualidade de agua
*
* Pesquisa as fonte de captacao apatir da tabela de SetorFonteCaptacao
*
* @author Rafael Pinto
* @date 15/10/2008
*
* @param Collection colecaoSetorComercial
* @throws ControladorException
*/
public Collection<FonteCaptacao> pesquisarFonteCaptacao(Collection colecaoSetorComercial)
throws ControladorException {
try {
return this.repositorioOperacional.pesquisarFonteCaptacao(colecaoSetorComercial);
} catch (Exception e) {
throw new ControladorException("erro.sistema", e);
}
}
}