package gcom.gui.cadastro.imovel;
import gcom.cadastro.imovel.FiltroImovel;
import gcom.cadastro.imovel.FiltroImovelInscricaoAlterada;
import gcom.cadastro.imovel.Imovel;
import gcom.cadastro.imovel.ImovelInscricaoAlterada;
import gcom.cadastro.localidade.FiltroLocalidade;
import gcom.cadastro.localidade.FiltroQuadra;
import gcom.cadastro.localidade.FiltroSetorComercial;
import gcom.cadastro.localidade.Localidade;
import gcom.cadastro.localidade.Quadra;
import gcom.cadastro.localidade.SetorComercial;
import gcom.cadastro.sistemaparametro.SistemaParametro;
import gcom.fachada.Fachada;
import gcom.faturamento.FaturamentoAtividade;
import gcom.faturamento.FaturamentoAtividadeCronograma;
import gcom.faturamento.FaturamentoGrupo;
import gcom.faturamento.FiltroFaturamentoAtividadeCronograma;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.seguranca.acesso.usuario.Usuario;
import gcom.util.ConstantesSistema;
import gcom.util.ErroRepositorioException;
import gcom.util.Util;
import gcom.util.filtro.ParametroNulo;
import gcom.util.filtro.ParametroSimples;
import java.rmi.RemoteException;
import java.util.Collection;
import java.util.Date;
import java.util.Iterator;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.validator.DynaValidatorForm;
public class AlterarImovelInscricaoAction extends GcomAction {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
//Seta o retorno
ActionForward retorno = actionMapping.findForward("telaSucesso");
//Obt�m a inst�ncia da fachada
Fachada fachada = Fachada.getInstancia();
//Obt�m a sess�o
HttpSession sessao = httpServletRequest.getSession(false);
SistemaParametro sistemaParametro = this.getSistemaParametro();
DynaValidatorForm alterarImovelInscricaoActionForm = (DynaValidatorForm) sessao.getAttribute("AlterarImovelInscricaoActionForm");
//Dados da inscri��o de origem
String localidadeOrigemID = (String) alterarImovelInscricaoActionForm.get("localidadeOrigemID");
String setorComercialOrigemCD = (String) alterarImovelInscricaoActionForm.get("setorComercialOrigemCD");
String quadraOrigemNM = (String) alterarImovelInscricaoActionForm.get("quadraOrigemNM");
String loteOrigemTemp = (String) alterarImovelInscricaoActionForm.get("loteOrigem");
//short loteOrigem = 0;
if (loteOrigemTemp != null && !loteOrigemTemp.equalsIgnoreCase("")) {
//loteOrigem = Short.parseShort(loteOrigemTemp);
}
boolean flagContinuar = true;
Localidade localidadeOrigem = (Localidade) validarCampo(localidadeOrigemID, null, 1);
SetorComercial setorComercialOrigem = null;
Quadra quadraOrigem = null;
//Valida��o dos campos da inscri��o de origem (FS0002, FS0003, FS0004)
if (localidadeOrigem == null) {
//Nenhuma localidade encontrada
flagContinuar = false;
throw new ActionServletException("atencao.pesquisa.localidade_origem_inexistente");
}
if (setorComercialOrigemCD != null && !setorComercialOrigemCD.equalsIgnoreCase("")) {
setorComercialOrigem = (SetorComercial) validarCampo( localidadeOrigem.getId().toString(), setorComercialOrigemCD, 2);
if (setorComercialOrigem == null) {
//Nenhum Setor Comercial encontrado
flagContinuar = false;
throw new ActionServletException("atencao.pesquisa.setor_origem_inexistente");
}
if (quadraOrigemNM != null && !quadraOrigemNM.equalsIgnoreCase("")) {
quadraOrigem = (Quadra) validarCampo( setorComercialOrigem.getId().toString(), quadraOrigemNM, 3);
if (quadraOrigem == null) {
//Nenhuma Quadra encontrada
flagContinuar = false;
throw new ActionServletException(
"atencao.pesquisa.quadra_origem_inexistente");
}
}
}
//Dados da inscri��o de destino
String localidadeDestinoID = (String) alterarImovelInscricaoActionForm.get("localidadeDestinoID");
String setorComercialDestinoCD = (String) alterarImovelInscricaoActionForm.get("setorComercialDestinoCD");
String quadraDestinoNM = (String) alterarImovelInscricaoActionForm.get("quadraDestinoNM");
String loteDestinoTemp = (String) alterarImovelInscricaoActionForm.get("loteDestino");
//Verificar a existencia de Setor alternativo
FiltroSetorComercial filtroSetorComercial = new FiltroSetorComercial();
filtroSetorComercial.adicionarParametro( new ParametroSimples ( FiltroSetorComercial.CODIGO_SETOR_COMERCIAL, setorComercialDestinoCD ) );
Collection setorComercial = this.getFachada().pesquisar( filtroSetorComercial, SetorComercial.class.getName() );
Iterator iteratorSetorComercial = setorComercial.iterator();
SetorComercial setor = null;
while ( iteratorSetorComercial.hasNext() ) {
setor = (SetorComercial) iteratorSetorComercial.next();
if ( setor.getIndicadorSetorAlternativo().equals( ConstantesSistema.INDICADOR_USO_ATIVO ) &&
setor.getLocalidade().getId().equals( new Integer( localidadeDestinoID ) ) &&
("" + setor.getCodigo()).equals(setorComercialDestinoCD) ) {
throw new ActionServletException("atencao.setor_comercial_alternativo_nao_pode_ser_informado");
}
}
short loteDestino = 0;
if (loteDestinoTemp != null && !loteDestinoTemp.equalsIgnoreCase("")) {
loteDestino = Short.parseShort(loteDestinoTemp);
}
Localidade localidadeDestino = (Localidade) validarCampo(localidadeDestinoID, null, 1);
SetorComercial setorComercialDestino = null;
Quadra quadraDestino = null;
if (flagContinuar) {
//Valida��o dos campos da inscri��o de destino (FS0002, FS0003, FS0004)
if (localidadeDestino == null) {
//Nenhuma localidade encontrada
flagContinuar = false;
throw new ActionServletException("atencao.pesquisa.localidade_destino_inexistente");
}
if (setorComercialDestinoCD != null && !setorComercialDestinoCD.equalsIgnoreCase("")) {
setorComercialDestino = (SetorComercial) validarCampo(localidadeDestino.getId().toString(), setorComercialDestinoCD, 2);
if (setorComercialDestino == null) {
//Nenhum Setor Comercial encontrado
flagContinuar = false;
throw new ActionServletException("atencao.pesquisa.setor_destino_inexistente");
}
if (quadraDestinoNM != null && !quadraDestinoNM.equalsIgnoreCase("")) {
quadraDestino = (Quadra) validarCampo( setorComercialDestino.getId().toString(), quadraDestinoNM, 3);
if (quadraDestino == null) {
//Nenhuma Quadra encontrada
flagContinuar = false;
throw new ActionServletException("atencao.pesquisa.quadra_destino_inexistente");
}
}
}
}
// [FS0005 - Verificar preenchimento dos campos]
if (flagContinuar) {
if (setorComercialOrigem == null && setorComercialDestino == null) {
flagContinuar = compararObjetos(localidadeOrigem,localidadeDestino, 1);
if (!flagContinuar) {
throw new ActionServletException("atencao.pesquisa.setorcomercial_nao_correspondente");
}
} else if (setorComercialOrigem == null && setorComercialDestino != null) {
if (quadraDestino == null) {
//Verificar se o setor de destino existe na localidade de origem
setorComercialOrigem = (SetorComercial) pesquisarRetornarObjeto(setorComercialDestino, localidadeOrigem, 1);
//Verificar se existe as mesmas quadras do setor de destino no setor de origem
if (setorComercialOrigem == null) {
flagContinuar = false;
throw new ActionServletException("atencao.pesquisa.setorcomercial_nao_correspondente");
}
flagContinuar = compararObjetos(setorComercialOrigem, setorComercialDestino, 2);
//Valor original do setor de origem
setorComercialOrigem = null;
if (!flagContinuar) {
throw new ActionServletException("atencao.pesquisa.quadra_nao_correspondente");
}
} else {
//Verificar se o setor de destino existe na localidade de origem
setorComercialOrigem = (SetorComercial) pesquisarRetornarObjeto(setorComercialDestino, localidadeOrigem, 1);
//Verificar se a quadra de destino existe na localidade de origem
if (setorComercialOrigem == null) {
flagContinuar = false;
throw new ActionServletException("atencao.pesquisa.setorcomercial_nao_correspondente");
}
flagContinuar = pesquisarObjeto(quadraDestino, setorComercialOrigem, 2);
//Valor original do setor de origem
setorComercialOrigem = null;
if (!flagContinuar) {
throw new ActionServletException("atencao.pesquisa.quadra_nao_correspondente");
}
}
} else {
if (quadraOrigem == null && quadraDestino == null) {
//Verificar se o setor de origem existe na localidade de destino
flagContinuar = pesquisarObjeto(setorComercialOrigem, localidadeDestino, 1);
//Verificar se existe as mesmas quadras do setor de origem no setor de destino
if (flagContinuar) {
flagContinuar = compararObjetos(setorComercialOrigem,setorComercialDestino, 2);
if (!flagContinuar) {
throw new ActionServletException("atencao.pesquisa.quadra_nao_correspondente");
}
} else {
throw new ActionServletException("atencao.pesquisa.setorcomercial_nao_correspondente");
}
} else if (quadraOrigem == null && quadraDestino != null) {
//Verificar se o setor de destino existe na localidade de origem
flagContinuar = pesquisarObjeto(setorComercialDestino, localidadeOrigem, 1);
//Verificar se a quadra de destino existe no setor de origem
if (flagContinuar) {
flagContinuar = pesquisarObjeto(quadraDestino, setorComercialOrigem, 2);
if (!flagContinuar) {
throw new ActionServletException("atencao.pesquisa.quadra_nao_correspondente");
}
} else {
throw new ActionServletException("atencao.pesquisa.setorcomercial_nao_correspondente");
}
} else if (quadraOrigem != null && quadraDestino == null){
//Verificar se o setor de destino existe na localidade de origem
flagContinuar = pesquisarObjeto(setorComercialDestino, localidadeOrigem, 1);
//Verificar se a quadra de origem existe no setor de destino
if (flagContinuar) {
flagContinuar = pesquisarObjeto(quadraOrigem, setorComercialDestino, 2);
if (!flagContinuar) {
throw new ActionServletException("atencao.pesquisa.quadra_nao_correspondente");
}
} else {
throw new ActionServletException("atencao.pesquisa.setorcomercial_nao_correspondente");
}
}
}
}
// [FS0006 - Verificar pr�-requisitos para altera��o da inscri��o]
if (flagContinuar) {
Collection colecaoSetorOrigem = null;
Iterator iteratorSetorOrigem = null;
// Collection colecaoSetorDestino = null;
// Iterator iteratorSetorDestino = null;
Collection colecaoQuadraOrigem = null;
Iterator iteratorQuadraOrigem = null;
// Collection colecaoQuadraDestino = null;
// Iterator iteratorQuadraDestino = null;
if (setorComercialOrigem == null && setorComercialDestino == null) {
colecaoSetorOrigem = pesquisarDependentes(localidadeOrigem, 1);
if (colecaoSetorOrigem != null && !colecaoSetorOrigem.isEmpty()) {
iteratorSetorOrigem = (colecaoSetorOrigem).iterator();
while (iteratorSetorOrigem.hasNext()) {
setorComercialOrigem = (SetorComercial) iteratorSetorOrigem
.next();
colecaoQuadraOrigem = pesquisarDependentes(setorComercialOrigem, 2);
if (colecaoQuadraOrigem != null && !colecaoQuadraOrigem.isEmpty()) {
iteratorQuadraOrigem = (colecaoQuadraOrigem).iterator();
while (iteratorQuadraOrigem.hasNext()) {
quadraOrigem = (Quadra) iteratorQuadraOrigem.next();
if (!verificarSituacaoRota(quadraOrigem)) {
setorComercialDestino = (SetorComercial) pesquisarRetornarObjeto(setorComercialOrigem, localidadeDestino, 1);
quadraDestino = (Quadra) pesquisarRetornarObjeto(quadraOrigem,setorComercialDestino, 2);
if (verificarSituacaoRota(quadraDestino)) {
flagContinuar = false;
throw new ActionServletException(
"atencao.pesquisa.quadra_rota_nao_faturada");
}
}
}
}
}
}
setorComercialOrigem = null;
setorComercialDestino = null;
quadraOrigem = null;
quadraDestino = null;
} else if (setorComercialOrigem == null && setorComercialDestino != null) {
setorComercialOrigem = (SetorComercial) pesquisarRetornarObjeto( setorComercialDestino, localidadeOrigem, 1);
if (quadraDestino == null) {
colecaoQuadraOrigem = pesquisarDependentes(setorComercialOrigem, 2);
if (colecaoQuadraOrigem != null && !colecaoQuadraOrigem.isEmpty()) {
iteratorQuadraOrigem = (colecaoQuadraOrigem).iterator();
while (iteratorQuadraOrigem.hasNext()) {
quadraOrigem = (Quadra) iteratorQuadraOrigem.next();
if (!verificarSituacaoRota(quadraOrigem)) {
quadraDestino = (Quadra) pesquisarRetornarObjeto(quadraOrigem, setorComercialDestino, 2);
if (verificarSituacaoRota(quadraDestino)) {
flagContinuar = false;
throw new ActionServletException("atencao.pesquisa.quadra_rota_nao_faturada");
}
}
}
}
quadraOrigem = null;
quadraDestino = null;
} else {
quadraOrigem = (Quadra) pesquisarRetornarObjeto(
quadraDestino, setorComercialOrigem, 2);
if (!verificarSituacaoRota(quadraOrigem)) {
if (verificarSituacaoRota(quadraDestino)) {
flagContinuar = false;
throw new ActionServletException( "atencao.pesquisa.quadra_rota_nao_faturada");
}
}
quadraOrigem = null;
}
setorComercialOrigem = null;
} else {
if (quadraOrigem == null && quadraDestino == null) {
colecaoQuadraOrigem = pesquisarDependentes( setorComercialOrigem, 2);
if (colecaoQuadraOrigem != null && !colecaoQuadraOrigem.isEmpty()) {
iteratorQuadraOrigem = (colecaoQuadraOrigem).iterator();
while (iteratorQuadraOrigem.hasNext()) {
quadraOrigem = (Quadra) iteratorQuadraOrigem.next();
if (!verificarSituacaoRota(quadraOrigem)) {
quadraDestino = (Quadra) pesquisarRetornarObjeto(
quadraOrigem, setorComercialDestino, 2);
if (verificarSituacaoRota(quadraDestino)) {
flagContinuar = false;
throw new ActionServletException( "atencao.pesquisa.quadra_rota_nao_faturada");
}
}
}
}
quadraOrigem = null;
quadraDestino = null;
} else if (quadraOrigem == null && quadraDestino != null) {
quadraOrigem = (Quadra) pesquisarRetornarObjeto( quadraDestino, setorComercialOrigem, 2);
if (!verificarSituacaoRota(quadraOrigem)) {
if (verificarSituacaoRota(quadraDestino)) {
flagContinuar = false;
throw new ActionServletException("atencao.pesquisa.quadra_rota_nao_faturada");
}
}
quadraOrigem = null;
} else {
if (!verificarSituacaoRota(quadraOrigem)) {
if (verificarSituacaoRota(quadraDestino)) {
flagContinuar = false;
throw new ActionServletException("atencao.pesquisa.quadra_rota_nao_faturada");
}
}
}
}
}
// Continua�ao [FS0006 - Verificar pr�-requisitos para altera��o da
// inscri��o]
if (flagContinuar) {
/*
* Prepara os objetos para a pesquisa dos imoveis que est�o
* localizados na inscri��o de origem
*/
Collection<Object> colecaoImovel = null;
if (setorComercialOrigem != null) {
if (quadraOrigem != null) {
if (!loteOrigemTemp.equals("")) {
colecaoImovel = fachada.pesquisarImovel(
localidadeOrigem.getId(), setorComercialOrigem
.getId(), quadraOrigem.getId(),
new Short(loteOrigemTemp));
} else {
colecaoImovel = fachada.pesquisarImovel(
localidadeOrigem.getId(), setorComercialOrigem
.getId(), quadraOrigem.getId(), null);
}
} else {
colecaoImovel = fachada.pesquisarImovel(localidadeOrigem
.getId(), setorComercialOrigem.getId(), null, null);
}
} else {
colecaoImovel = fachada.pesquisarImovel(localidadeOrigem
.getId(), null, null, null);
}
Imovel imovel = new Imovel();
if (colecaoImovel == null || colecaoImovel.isEmpty()) {
flagContinuar = false;
throw new ActionServletException(
"atencao.pesquisa.imovel_inexistente");
}
Iterator itImovel = (colecaoImovel).iterator();
//se descomentar a valida��o da situa��o do im�vel,
//verificar caso de uso. Verifica��o n�o � p ser feita por CBST_ID<>Nulo.
//Validando a situa��o do im�vel
while (itImovel.hasNext()) {
imovel = (Imovel) itImovel.next();
if (imovel.getFaturamentoSituacaoTipo() != null) {
flagContinuar = false;
throw new ActionServletException(
"atencao.pesquisa.imovel_situacao_especial_faturamento");
} else if (imovel.getCobrancaSituacaoTipo() != null) {
flagContinuar = false;
throw new ActionServletException(
"atencao.pesquisa.imovel_situacao_especial_cobranca");
}
}
// Prepara��o dos objetos do tipo Imovel
// ===========================
itImovel = (colecaoImovel).iterator();
SetorComercial setorComercialDestinoAuxiliar = new SetorComercial();
Quadra quadraDestinoAuxiliar = new Quadra();
Imovel imovelAuxiliar = new Imovel();
// Array onde ser�o armazenados os im�veis que sofrer�o
// altera��es.
int indexArray = 0;
Imovel[] imoveisAlteracao = new Imovel[colecaoImovel.size()];
while (itImovel.hasNext()) {
imovel = (Imovel) itImovel.next();
imovel.setLocalidade(localidadeDestino);
Integer idQuadraOrigem = imovel.getQuadra().getId();
setorComercialDestinoAuxiliar = null;
quadraDestinoAuxiliar = null;
if (setorComercialDestino != null) {
imovel.setSetorComercial(setorComercialDestino);
if (quadraDestino != null) {
imovel.setQuadra(quadraDestino);
if (loteDestinoTemp != null
&& !loteDestinoTemp.equalsIgnoreCase("")) {
imovel.setLote(loteDestino);
}
} else {
//Pesquisa os objetos equivalentes na localidade de
// destino
quadraDestinoAuxiliar = (Quadra) pesquisarRetornarObjeto(
imovel.getQuadra(), setorComercialDestino,
2);
imovel.setQuadra(quadraDestinoAuxiliar);
if (loteDestinoTemp != null
&& !loteDestinoTemp.equalsIgnoreCase("")) {
imovel.setLote(loteDestino);
}
}
} else {
//Pesquisa os objetos equivalentes na localidade de
// destino
setorComercialDestinoAuxiliar = (SetorComercial) pesquisarRetornarObjeto(
imovel.getSetorComercial(), localidadeDestino,
1);
quadraDestinoAuxiliar = (Quadra) pesquisarRetornarObjeto(
imovel.getQuadra(),
setorComercialDestinoAuxiliar, 2);
imovel.setSetorComercial(setorComercialDestinoAuxiliar);
imovel.setQuadra(quadraDestinoAuxiliar);
if (loteDestinoTemp != null
&& !loteDestinoTemp.equalsIgnoreCase("")) {
imovel.setLote(loteDestino);
}
}
// [FS0008 - Verificar duplicidade de inscri��o]
imovelAuxiliar = (Imovel) pesquisarRetornarObjeto(imovel,
imovel.getQuadra(), 3);
if (imovelAuxiliar != null) {
sessao.removeAttribute("acao");
throw new ActionServletException(
"atencao.imovel.duplicidade_inscricao");
}
/**
* [SB0001] � Verificar Altera��o da Inscri��o dos Im�veis
* @author Arthur Carvalho
* @date 18/09/2010
*/
Integer idQuadraDestino = null ;
if ( quadraDestinoAuxiliar != null && quadraDestinoAuxiliar.getId() != null ) {
idQuadraDestino = quadraDestinoAuxiliar.getId();
} else if ( quadraDestino != null && quadraDestino.getId() != null ) {
idQuadraDestino = quadraDestino.getId();
}
retorno = this.verificaAlteracaoInscricaoImovel( imovel, idQuadraOrigem, idQuadraDestino, sistemaParametro,
fachada, httpServletRequest, actionMapping , sessao );
imoveisAlteracao[indexArray] = imovel;
indexArray++;
}
// Data: 06/07/2010
// Analista: F�tima Sampaio
// Desenvolvedor: Hugo Amorim
// CRC4701
// [FS0006] - Verificar pr�-requisitos para altera��o da inscri��o
int contadorImoveisEmProcessoFaturamento = 0;
boolean flagNaoConfirmado = false;
String confirmado = httpServletRequest.getParameter("confirmado");
Usuario usuario = (Usuario) sessao.getAttribute("usuarioLogado");
// Se tiver sido aprensentada a tela confirma��o e o usuario confirmou.
if ( confirmado != null && confirmado.equalsIgnoreCase("ok") ) {
// Caso o usu�rio confirme, n�o efetivar a altera��o da inscri��o na tabela IMOVEL
// e gravar as informa��es da inscri��o alterada na tabela IMOVEL_INSCR_ALTERADA.
for ( indexArray = 0; indexArray < imoveisAlteracao.length; indexArray++ ) {
Imovel imovelHelper = imoveisAlteracao[indexArray];
contadorImoveisEmProcessoFaturamento++;
prepararAlteracaoInscricaoEncerramentoFaturamento( fachada, imovelHelper, usuario );
imoveisAlteracao[indexArray] = imovelHelper;
retorno = actionMapping.findForward("telaSucesso");
}
}// Caso n�o exista imovel em processo de faturamento, os imoveis serao atualizados na tabela de imovel
else if ( sessao.getAttribute("acaoInserir") != null && sessao.getAttribute("acaoInserir").equals("inserirImovel") ) {
for (indexArray = 0; indexArray < imoveisAlteracao.length; indexArray++) {
/**
* @author Arthur Carvalho
* @Analista Leonardo Vieira
* Altera��o feita para suprir necessidade da compesa, onde qualquer alteracao de inscricao do imovel,
* somente sera efetivada no encerramento do faturamento.
*
* @date 24/11/2010
*/
fachada.atualizarImovelInscricao(imoveisAlteracao[indexArray], usuario);
}
}
//Se tiver sido aprensentada a tela confirma��o e o usuario nao confirmou.
if(confirmado != null && confirmado.equalsIgnoreCase("nao")){
// Caso contr�rio (usu�rio n�o confirmou), n�o efetivar a altera��o
// da inscri��o na tabela IMOVEL.
flagNaoConfirmado = true;
retorno = actionMapping.findForward("telaSucesso");
}
sessao.removeAttribute("acao");
sessao.removeAttribute("acaoInserir");
String mensagemSucesso =
imoveisAlteracao.length +" Inscri��es de Im�vel alteradas com sucesso.";
if(flagNaoConfirmado){
mensagemSucesso = "Aten��o! Dados da inscri��o do(s) im�vel(is) n�o alterados devido ao(s) im�vel(is) estar(em) em processo de faturamento.";
}
//Mensagem de retorno para o usu�rio
montarPaginaSucesso(httpServletRequest,
mensagemSucesso,
"Atualizar outra Inscri��o de Im�vel",
"exibirAlterarImovelInscricaoAction.do");
}
//devolve o mapeamento de retorno
return retorno;
}
/**
* Verifica a situa��o em que se encontra a rota que pertence a quadra
* passada como par�metro - n�o faturada = false e faturada = true
*
* @param quadra
* @return um boleano
*/
private boolean verificarSituacaoRota(Quadra quadra) {
boolean retorno = true;
Collection colecaoPesquisa = null;
SistemaParametro sistemaParametro = null;
//Obt�m a inst�ncia da fachada
Fachada fachada = Fachada.getInstancia();
//Retorna o �nico objeto da tabela sistemaParametro
sistemaParametro = fachada.pesquisarParametrosDoSistema();
if (sistemaParametro == null) {
retorno = false;
throw new ActionServletException(
"atencao.pesquisa.sistemaparametro_inexistente");
}
FiltroFaturamentoAtividadeCronograma filtroFaturamentoAtividadeCronograma = new FiltroFaturamentoAtividadeCronograma();
filtroFaturamentoAtividadeCronograma
.adicionarParametro(new ParametroSimples(
FiltroFaturamentoAtividadeCronograma.FATURAMENTO_GRUPO_CRONOGRAMA_MENSAL_FATURAMENTO_GRUPO_ID,
quadra.getRota().getFaturamentoGrupo().getId()));
filtroFaturamentoAtividadeCronograma
.adicionarParametro(new ParametroSimples(
FiltroFaturamentoAtividadeCronograma.FATURAMENTO_GRUPO_CRONOGRAMA_MENSAL_ANO_MES_REFERENCIA,
new Integer(sistemaParametro.getAnoMesFaturamento())));
//O valor do ID ser� fixo
// =============================================
filtroFaturamentoAtividadeCronograma
.adicionarParametro(new ParametroSimples(
FiltroFaturamentoAtividadeCronograma.FATURAMENTO_ATIVIDADE_ID,
FaturamentoAtividade.FATURAR_GRUPO));
//=====================================================================
colecaoPesquisa = fachada.pesquisar(
filtroFaturamentoAtividadeCronograma,
FaturamentoAtividadeCronograma.class.getName());
if (colecaoPesquisa == null || colecaoPesquisa.isEmpty()) {
/*retorno = false;
throw new ActionServletException(
"atencao.pesquisa.faturamento_atividade_cronograma_inexistente");*/
} else {
FaturamentoAtividadeCronograma faturamentoAtividadeCronograma = (FaturamentoAtividadeCronograma) Util
.retonarObjetoDeColecao(colecaoPesquisa);
//Local da verifica��o da situa��o da Rota (Faturada ou n�o
// Faturada)
if (faturamentoAtividadeCronograma.getDataRealizacao() == null) {
retorno = false;
}
}
return retorno;
}
/**
*
* @param objetoPesquisa
* @param objetoPai
* @param tipoObjeto
* @return
* @throws RemoteException
* @throws ErroRepositorioException
*/
private boolean pesquisarObjeto(Object objetoPesquisa, Object objetoPai,
int tipoObjeto) {
boolean retorno = true;
Collection colecaoPesquisa = null;
SetorComercial setorComercial = null;
//Obt�m a inst�ncia da fachada
Fachada fachada = Fachada.getInstancia();
switch (tipoObjeto) {
//Setor Comercial
case 1:
Localidade localidade = (Localidade) objetoPai;
setorComercial = (SetorComercial) objetoPesquisa;
FiltroSetorComercial filtroSetorComercial = new FiltroSetorComercial();
filtroSetorComercial.adicionarParametro(new ParametroSimples(
FiltroSetorComercial.ID_LOCALIDADE, localidade.getId()));
filtroSetorComercial.adicionarParametro(new ParametroSimples(
FiltroSetorComercial.CODIGO_SETOR_COMERCIAL, String
.valueOf(setorComercial.getCodigo())));
filtroSetorComercial.adicionarParametro(new ParametroSimples(
FiltroSetorComercial.INDICADORUSO,
ConstantesSistema.INDICADOR_USO_ATIVO));
colecaoPesquisa = fachada.pesquisar(filtroSetorComercial,
SetorComercial.class.getName());
if (colecaoPesquisa == null || colecaoPesquisa.isEmpty()) {
retorno = false;
}
break;
//Quadra
case 2:
setorComercial = (SetorComercial) objetoPai;
Quadra quadra = (Quadra) objetoPesquisa;
FiltroQuadra filtroQuadra = new FiltroQuadra();
filtroQuadra.adicionarParametro(new ParametroSimples(
FiltroQuadra.ID_SETORCOMERCIAL, String
.valueOf(setorComercial.getId())));
filtroQuadra.adicionarParametro(new ParametroSimples(
FiltroQuadra.NUMERO_QUADRA, String.valueOf(quadra
.getNumeroQuadra())));
filtroQuadra.adicionarParametro(new ParametroSimples(
FiltroQuadra.INDICADORUSO,
ConstantesSistema.INDICADOR_USO_ATIVO));
colecaoPesquisa = fachada.pesquisar(filtroQuadra, Quadra.class
.getName());
if (colecaoPesquisa == null || colecaoPesquisa.isEmpty()) {
retorno = false;
}
break;
default:
break;
}
return retorno;
}
/**
*
* @param objetoPesquisa
* @param objetoPai
* @param tipoObjeto
* @return
* @throws RemoteException
* @throws ErroRepositorioException
*/
private Object pesquisarRetornarObjeto(Object objetoPesquisa,
Object objetoPai, int tipoObjeto) {
Object retorno = null;
Collection colecaoPesquisa = null;
SetorComercial setorComercial = null;
Quadra quadra = null;
Imovel imovel = null;
//Obt�m a inst�ncia da fachada
Fachada fachada = Fachada.getInstancia();
switch (tipoObjeto) {
//Setor Comercial
case 1:
Localidade localidade = (Localidade) objetoPai;
setorComercial = (SetorComercial) objetoPesquisa;
FiltroSetorComercial filtroSetorComercial = new FiltroSetorComercial();
filtroSetorComercial.adicionarParametro(new ParametroSimples(
FiltroSetorComercial.ID_LOCALIDADE, localidade.getId()));
filtroSetorComercial.adicionarParametro(new ParametroSimples(
FiltroSetorComercial.CODIGO_SETOR_COMERCIAL, String
.valueOf(setorComercial.getCodigo())));
filtroSetorComercial.adicionarParametro(new ParametroSimples(
FiltroSetorComercial.INDICADORUSO,
ConstantesSistema.INDICADOR_USO_ATIVO));
colecaoPesquisa = fachada.pesquisar(filtroSetorComercial,
SetorComercial.class.getName());
if ( !Util.isVazioOrNulo(colecaoPesquisa)) {
retorno = Util.retonarObjetoDeColecao(colecaoPesquisa);
}
break;
//Quadra
case 2:
setorComercial = (SetorComercial) objetoPai;
quadra = (Quadra) objetoPesquisa;
FiltroQuadra filtroQuadra = new FiltroQuadra();
//Objetos que ser�o retornados pelo hibernate
filtroQuadra.adicionarCaminhoParaCarregamentoEntidade("rota.faturamentoGrupo");
filtroQuadra.adicionarParametro(new ParametroSimples(
FiltroQuadra.ID_SETORCOMERCIAL, String
.valueOf(setorComercial.getId())));
filtroQuadra.adicionarParametro(new ParametroSimples(
FiltroQuadra.NUMERO_QUADRA, String.valueOf(quadra
.getNumeroQuadra())));
filtroQuadra.adicionarParametro(new ParametroSimples(
FiltroQuadra.INDICADORUSO,
ConstantesSistema.INDICADOR_USO_ATIVO));
colecaoPesquisa = fachada.pesquisar(filtroQuadra, Quadra.class
.getName());
if ( !Util.isVazioOrNulo(colecaoPesquisa)) {
retorno = Util.retonarObjetoDeColecao(colecaoPesquisa);
}
break;
//Imovel
case 3:
quadra = (Quadra) objetoPai;
imovel = (Imovel) objetoPesquisa;
FiltroImovel filtroImovel = new FiltroImovel();
filtroImovel.adicionarParametro(new ParametroSimples(
FiltroImovel.QUADRA_ID, quadra.getId()));
filtroImovel.adicionarParametro(new ParametroSimples(
FiltroImovel.LOTE, new Short(imovel.getLote())));
filtroImovel.adicionarParametro(new ParametroSimples(
FiltroImovel.SUBLOTE, new Short(imovel.getSubLote())));
colecaoPesquisa = fachada.pesquisar(filtroImovel, Imovel.class
.getName());
if ( !Util.isVazioOrNulo(colecaoPesquisa)) {
retorno = Util.retonarObjetoDeColecao(colecaoPesquisa);
}
break;
default:
break;
}
return retorno;
}
/**
* Compara os objetos para validar suas referencias
*
* @param origem
* @param destino
* @param tipoObjeto
* @return
* @throws RemoteException
* @throws ErroRepositorioException
*/
private boolean compararObjetos(Object origem, Object destino,
int tipoObjeto) {
boolean retorno = true;
//Collection colecaoImoveis;
switch (tipoObjeto) {
//Localidade
case 1:
Collection colecaoSetorOrigem = pesquisarDependentes(origem, 1);
//Compara��o de setores
if (colecaoSetorOrigem != null && !colecaoSetorOrigem.isEmpty()) {
Collection colecaoSetorDestino = pesquisarDependentes(destino,
1);
if (colecaoSetorDestino != null
&& !colecaoSetorDestino.isEmpty()) {
Iterator itSetorOrigem = (colecaoSetorOrigem).iterator();
Iterator itSetorDestino = null;
Iterator itQuadraOrigem = null;
Iterator itQuadraDestino = null;
SetorComercial setorComercialOrigem = null;
SetorComercial setorComercialDestino = null;
Quadra quadraOrigem = null;
Quadra quadraDestino = null;
while (itSetorOrigem.hasNext()) {
if (!retorno) {
// Verifica a exist�ncia de im�veis no setor
// comercial
if (existeImovel(setorComercialOrigem, 1)) {
break;
}
}
setorComercialOrigem = (SetorComercial) itSetorOrigem
.next();
//Colocar o �ndice para o primeiro registro
itSetorDestino = (colecaoSetorDestino).iterator();
//flag auxiliar para controlar a sa�da da rotina de
// repeti��o
boolean sairLoop = false;
while (itSetorDestino.hasNext() && sairLoop == false) {
setorComercialDestino = (SetorComercial) itSetorDestino
.next();
if (setorComercialDestino.getCodigo() == setorComercialOrigem
.getCodigo()) {
retorno = true;
sairLoop = true;
//Compara��o de quadras
Collection colecaoQuadraOrigem = pesquisarDependentes(
setorComercialOrigem, 2);
if (colecaoQuadraOrigem == null
|| colecaoQuadraOrigem.isEmpty()) {
retorno = true;
break;
}
Collection colecaoQuadraDestino = pesquisarDependentes(
setorComercialDestino, 2);
if (colecaoQuadraDestino != null
&& !colecaoQuadraDestino.isEmpty()) {
itQuadraOrigem = (colecaoQuadraOrigem)
.iterator();
while (itQuadraOrigem.hasNext()) {
if (!retorno) {
// Verifica a exist�ncia de
// im�veis na quadra
if (existeImovel(quadraOrigem,
2)) {
break;
}
}
quadraOrigem = (Quadra) itQuadraOrigem
.next();
//Colocar o �ndice para o primeiro
// registro
itQuadraDestino = (colecaoQuadraDestino)
.iterator();
while (itQuadraDestino.hasNext()) {
quadraDestino = (Quadra) itQuadraDestino
.next();
if (quadraDestino
.getNumeroQuadra() == quadraOrigem
.getNumeroQuadra()) {
retorno = true;
break;
}
retorno = false;
}
}
} else {
retorno = false;
}
} else {
retorno = false;
}
}
}
} else {
retorno = false;
}
}
break;
//Setor Comercial
case 2:
Collection colecaoQuadraOrigem = pesquisarDependentes(origem, 2);
//Compara��o de quadras
if (colecaoQuadraOrigem != null && !colecaoQuadraOrigem.isEmpty()) {
Collection colecaoQuadraDestino = pesquisarDependentes(destino,
2);
if (colecaoQuadraDestino != null
&& !colecaoQuadraDestino.isEmpty()) {
Iterator itQuadraOrigem = (colecaoQuadraOrigem).iterator();
Iterator itQuadraDestino = null;
while (itQuadraOrigem.hasNext()) {
if (!retorno) {
break;
}
Quadra quadraOrigem = (Quadra) itQuadraOrigem.next();
//Colocar o �ndice para o primeiro registro
itQuadraDestino = (colecaoQuadraDestino).iterator();
while (itQuadraDestino.hasNext()) {
Quadra quadraDestino = (Quadra) itQuadraDestino
.next();
if (quadraDestino.getNumeroQuadra() == quadraOrigem
.getNumeroQuadra()) {
retorno = true;
break;
}
retorno = false;
}
}
} else {
retorno = false;
}
}
break;
default:
break;
}
return retorno;
}
/**
* Retorna os dependentes do objeto passado (Localidade ou Setor Comercial)
*
* @param objetoPai
* @param tipoObjeto
* @return uma colecao com objetos dependentes do objeto passado
* @throws RemoteException
* @throws ErroRepositorioException
*/
private Collection pesquisarDependentes(Object objetoPai, int tipoObjeto) {
Collection colecaoPesquisa = null;
//Obt�m a inst�ncia da fachada
Fachada fachada = Fachada.getInstancia();
switch (tipoObjeto) {
//Localidade - retorna uma cole��o de setor comercial
case 1:
Localidade localidade = (Localidade) objetoPai;
//Indicador de uso considerado como ATIVO
colecaoPesquisa = fachada.pesquisarSetorComercial(localidade
.getId().intValue());
break;
//Setor Comercial - retorna uma cole��o de quadra
case 2:
SetorComercial setorComercial = (SetorComercial) objetoPai;
//Indicador de uso considerado como ATIVO
colecaoPesquisa = fachada.pesquisarQuadra(setorComercial.getId()
.intValue());
break;
default:
break;
}
return colecaoPesquisa;
}
/**
* Valida os valores digitados pelo usu�rio
*
* @param campoDependencia
* @param dependente
* @param tipoObjeto
* @return Object
* @throws RemoteException
* @throws ErroRepositorioException
*/
private Object validarCampo(String campoDependencia, String dependente,
int tipoObjeto) {
Object objeto = null;
Collection colecaoPesquisa;
//Obt�m a inst�ncia da fachada
Fachada fachada = Fachada.getInstancia();
if (campoDependencia != null && !campoDependencia.equalsIgnoreCase("")) {
if (dependente == null || tipoObjeto == 1) {
//Localidade
FiltroLocalidade filtroLocalidade = new FiltroLocalidade();
filtroLocalidade.adicionarParametro(new ParametroSimples(
FiltroLocalidade.ID, campoDependencia));
filtroLocalidade.adicionarParametro(new ParametroSimples(
FiltroLocalidade.INDICADORUSO,
ConstantesSistema.INDICADOR_USO_ATIVO));
colecaoPesquisa = fachada.pesquisar(filtroLocalidade,
Localidade.class.getName());
if ( !Util.isVazioOrNulo(colecaoPesquisa)) {
objeto = Util.retonarObjetoDeColecao(colecaoPesquisa);
}
} else if (dependente != null && !dependente.equalsIgnoreCase("")
&& tipoObjeto > 1) {
switch (tipoObjeto) {
// Setor Comercial
case 2:
FiltroSetorComercial filtroSetorComercial = new FiltroSetorComercial();
filtroSetorComercial
.adicionarParametro(new ParametroSimples(
FiltroSetorComercial.ID_LOCALIDADE,
campoDependencia));
filtroSetorComercial
.adicionarParametro(new ParametroSimples(
FiltroSetorComercial.CODIGO_SETOR_COMERCIAL,
new Integer(dependente)));
filtroSetorComercial
.adicionarParametro(new ParametroSimples(
FiltroSetorComercial.INDICADORUSO,
ConstantesSistema.INDICADOR_USO_ATIVO));
colecaoPesquisa = fachada.pesquisar(filtroSetorComercial,
SetorComercial.class.getName());
if ( !Util.isVazioOrNulo(colecaoPesquisa)) {
objeto = Util.retonarObjetoDeColecao(colecaoPesquisa);
}
break;
// Quadra
case 3:
FiltroQuadra filtroQuadra = new FiltroQuadra();
//Objetos que ser�o retornados pelo hibernate
filtroQuadra.adicionarCaminhoParaCarregamentoEntidade("rota.faturamentoGrupo");
filtroQuadra.adicionarParametro(new ParametroSimples(
FiltroQuadra.ID_SETORCOMERCIAL, campoDependencia));
filtroQuadra.adicionarParametro(new ParametroSimples(
FiltroQuadra.NUMERO_QUADRA, new Integer(dependente)));
filtroQuadra.adicionarParametro(new ParametroSimples(
FiltroQuadra.INDICADORUSO,
ConstantesSistema.INDICADOR_USO_ATIVO));
colecaoPesquisa = fachada.pesquisar(filtroQuadra,
Quadra.class.getName());
if ( !Util.isVazioOrNulo(colecaoPesquisa)) {
objeto = Util.retonarObjetoDeColecao(colecaoPesquisa);
}
break;
default:
break;
}
}
}
return objeto;
}
/**
* Verifica a exist�ncia de im�veis no objeto passado como par�metro Os
* objetos passados podem ser do tipo SetorComercial = 1 e Quadra = 2
*
* @param objetoCondicao
* @param tipoObjeto
* @return um boleano
*/
private boolean existeImovel(Object objetoCondicao, int tipoObjeto) {
boolean retorno = false;
Collection colecaoPesquisa;
//Obt�m a inst�ncia da fachada
Fachada fachada = Fachada.getInstancia();
if (tipoObjeto == 1) {
SetorComercial setorComercial = (SetorComercial) objetoCondicao;
colecaoPesquisa = fachada.pesquisarImovel(null, setorComercial
.getId(), null, null);
if (colecaoPesquisa != null && !colecaoPesquisa.isEmpty()) {
retorno = true;
}
} else {
Quadra quadra = (Quadra) objetoCondicao;
colecaoPesquisa = fachada.pesquisarImovel(null, null, quadra
.getId(), null);
if (colecaoPesquisa != null && !colecaoPesquisa.isEmpty()) {
retorno = true;
}
}
return retorno;
}
/**
* [UC0074] Alterar Inscri��o de Im�vel
* [FS0010] � Verificar Duplicidade de Inscri��o
* @author Arthur Carvalho
* @date 17/09/2010
* @return
*/
private void verificarDuplicidadeInscricao( Imovel imovelHelper, Fachada fachada ) {
ImovelInscricaoAlterada imovelInscricaoAlterada = new ImovelInscricaoAlterada();
Integer idQuadraFace = null;
if ( imovelHelper.getQuadraFace() != null && imovelHelper.getQuadraFace().getId() != null ) {
idQuadraFace = imovelHelper.getQuadraFace().getId();
}
imovelInscricaoAlterada = fachada.verificarDuplicidadeImovelInscricaoAlterada(imovelHelper.getLocalidade().getId(),
imovelHelper.getSetorComercial().getId(), imovelHelper.getQuadra().getId(),
idQuadraFace, new Integer(imovelHelper.getLote()), new Integer(imovelHelper.getSubLote())
);
if ( imovelInscricaoAlterada != null && imovelInscricaoAlterada.getId() != null ) {
throw new ActionServletException("atencao.imovel_inscricao_alterada_em_duplicidade", null,
imovelInscricaoAlterada.getId().toString());
}
}
/**
* [SB0001] � Verificar Altera��o da Inscri��o dos Im�veis
*
* @author Arthur Carvalho
* @date 20/09/2010
* @param imoveisAlteracao
* @param idQuadraOrigem
* @param idQuadraDestino
* @param sistemaParametro
* @param fachada
* @param httpServletRequest
* @param actionMapping
* @param sessao
* @return
*/
private ActionForward verificaAlteracaoInscricaoImovel(Imovel imovel, Integer idQuadraOrigem, Integer idQuadraDestino,
SistemaParametro sistemaParametro, Fachada fachada, HttpServletRequest httpServletRequest, ActionMapping actionMapping,
HttpSession sessao) {
//localiza o action no objeto actionmapping
ActionForward retorno = actionMapping.findForward("telaSucesso");
/*
* 1. Caso o indicador de altera��o da inscri��o esteja ativo (PARM_ICALTERACAOINSCRICAOIMOVEL=1 da tabela SISTEMA_PARAMETROS),
* verificar para cada um dos im�veis da Inscri��o Inicial a impossibilidade de efetuar a altera��o das inscri��es em tempo real:
*/
if (sistemaParametro.getIndicadorAlteracaoInscricaoImovel().equals(ConstantesSistema.SIM)){
//if (fachada.verificarImovelEmProcessoDeFaturamento(imovel.getId())){
httpServletRequest.setAttribute("nomeBotao1", "Sim");
httpServletRequest.setAttribute("nomeBotao3", "N�o");
sessao.setAttribute("acao" , "inserirImovelInscricaoAlterada");
return montarPaginaConfirmacao("atencao.imoveis_em_processo_de_faturamento",
httpServletRequest, actionMapping);
//}
}
/*
* 2. Caso o indicador de altera��o da inscri��o esteja inativo (PARM_ICALTERACAOINSCRICAOIMOVEL=2 da tabela SISTEMA_PARAMETROS),
* para cada um dos im�veis do conjunto de im�veis da Inscri��o Inicial, verificar a impossibilidade de efetuar a altera��o das
* inscri��es em tempo real:
*/
else{
FaturamentoGrupo[] faturamentoGrupos = new FaturamentoGrupo[2];
FaturamentoGrupo faturamentoGrupoOrigem = new FaturamentoGrupo();
FaturamentoGrupo faturamentoGrupoDestino = new FaturamentoGrupo();
//boolean retorno = false;
faturamentoGrupos = fachada.verificaInscricaoAlteradaAcarretaMudancaDoGrupoFaturamento( idQuadraOrigem , idQuadraDestino );
faturamentoGrupoOrigem = faturamentoGrupos[0];
faturamentoGrupoDestino = faturamentoGrupos[1];
//verifica se o imovel foi mudado de grupo ao ser alterado a quadra
if ( !faturamentoGrupoOrigem.getId().toString().equals(faturamentoGrupoDestino.getId().toString()) ) {
//1.3.1
if ( faturamentoGrupoOrigem.getAnoMesReferencia() > sistemaParametro.getAnoMesFaturamento() ) {
//1.3.1.1
if ( fachada.verificaGeracaoDadosLeituraGrupoFaturamento(faturamentoGrupoOrigem) ) {
//1.3.1.1.1
//1.3.1.1.2
httpServletRequest.setAttribute("nomeBotao1", "Sim");
httpServletRequest.setAttribute("nomeBotao3", "N�o");
sessao.setAttribute("acao" , "inserirImovelInscricaoAlterada");
return montarPaginaConfirmacao(
"atencao.imovel_inscricao_alterada_grupo_origem_gerou_dados_leituras",
httpServletRequest, actionMapping, imovel.getId().toString(), faturamentoGrupoDestino.getId().toString() ,
faturamentoGrupoOrigem.getId().toString() );
}//1.3.1.2
else {
//1.3.1.2.1
if ( faturamentoGrupoDestino.getAnoMesReferencia() > sistemaParametro.getAnoMesFaturamento() ) {
//1.3.1.2.1.1.1
if ( fachada.verificaGeracaoDadosLeituraGrupoFaturamento(faturamentoGrupoDestino)) {
//1.3.1.2.1.1.1
//1.3.1.2.1.1.2
httpServletRequest.setAttribute("nomeBotao1", "Sim");
httpServletRequest.setAttribute("nomeBotao3", "N�o");
sessao.setAttribute("acao" , "inserirImovelInscricaoAlterada");
return montarPaginaConfirmacao(
"atencao.imovel_inscricao_alterada_grupo_gerou_dados_leituras_proximo_faturamento",
httpServletRequest, actionMapping, imovel.getId().toString(), faturamentoGrupoDestino.getId().toString() );
}//1.3.1.2.1.2
else {
//efetivar a altera��o da inscri��o na tabela IMOVEL
sessao.setAttribute("acaoInserir" , "inserirImovel");
}
}//1.3.1.2.2
else {
//1.3.1.2.2.1
if ( fachada.verificaGeracaoDadosLeituraGrupoFaturamento(faturamentoGrupoDestino)) {
//1.3.1.2.2.1.1
//1.3.1.2.2.1.2
httpServletRequest.setAttribute("nomeBotao1", "Sim");
httpServletRequest.setAttribute("nomeBotao3", "N�o");
sessao.setAttribute("acao" , "inserirImovelInscricaoAlterada");
return montarPaginaConfirmacao(
"atencao.dados_leituras_gerados_faturamento_grupo_destino_imovel_inscricao_alterada",
httpServletRequest, actionMapping, imovel.getId().toString(), faturamentoGrupoDestino.getId().toString() );
//[SB0005 � Preparar Altera��o Inscri��o no Encerramento Faturamento]
} else {
//1.3.1.2.2.2
//efetivar a altera��o da inscri��o na tabela IMOVEL
sessao.setAttribute("acaoInserir" , "inserirImovel");
}
}
}
} //1.3.2
else {
//1.3.2.1
if ( fachada.verificaGeracaoDadosLeituraGrupoFaturamento(faturamentoGrupoOrigem) ) {
//1.3.2.1.1
//1.3.2.1.2
httpServletRequest.setAttribute("nomeBotao1", "Sim");
httpServletRequest.setAttribute("nomeBotao3", "N�o");
sessao.setAttribute("acao" , "inserirImovelInscricaoAlterada");
return montarPaginaConfirmacao(
"atencao.dados_leituras_gerados_faturamento_grupo_origem_imovel_inscricao_alterada",
httpServletRequest, actionMapping, imovel.getId().toString(),
faturamentoGrupoDestino.getId().toString(), faturamentoGrupoOrigem.getId().toString() );
}//1.3.2.2
else {
//1.3.2.2.1
if ( faturamentoGrupoDestino.getAnoMesReferencia() > sistemaParametro.getAnoMesFaturamento() ) {
//1.3.2.2.1.1
//1.3.2.2.1.2
httpServletRequest.setAttribute("nomeBotao1", "Sim");
httpServletRequest.setAttribute("nomeBotao3", "N�o");
sessao.setAttribute("acao" , "inserirImovelInscricaoAlterada");
return montarPaginaConfirmacao(
"atencao.faturamento_grupo_destino_ja_faturado_imovel_inscricao_alterada",
httpServletRequest, actionMapping, imovel.getId().toString(),
faturamentoGrupoDestino.getId().toString() );
}//1.3.2.2.2
else {
//1.3.2.2.2.1
if ( fachada.verificaGeracaoDadosLeituraGrupoFaturamento(faturamentoGrupoDestino) ) {
//1.3.2.2.2.1.1
//1.3.2.2.2.1.2
httpServletRequest.setAttribute("nomeBotao1", "Sim");
httpServletRequest.setAttribute("nomeBotao3", "N�o");
sessao.setAttribute("acao" , "inserirImovelInscricaoAlterada");
return montarPaginaConfirmacao(
"atencao.faturamento_grupo_destino_nao_faturado_imovel_inscricao_alterada",
httpServletRequest, actionMapping, imovel.getId().toString(),
faturamentoGrupoDestino.getId().toString() );
}//1.3.2.2.2.2
else {
//efetivar a altera��o da inscri��o na tabela IMOVEL
sessao.setAttribute("acaoInserir" , "inserirImovel");
}
}
}
}
}
}
sessao.setAttribute("acaoInserir" , "inserirImovel");
return retorno;
}
/**
* [SB0002] � Preparar Altera��o Inscri��o no Encerramento Faturamento
* @author Arthur Carvalho
* @date 20/09/2010
* @param fachada
* @param imovelHelper
*/
private void prepararAlteracaoInscricaoEncerramentoFaturamento(Fachada fachada, Imovel imovelHelper, Usuario usuario ){
//[FS0009 � Verificar Exist�ncia de Altera��o de Inscri��o Pendente para o Im�vel]
verificarExistenciaAlteracaoInscricaoPendenteImovel(imovelHelper, fachada);
//[FS0010 � Verificar Duplicidade de Inscri��o]
verificarDuplicidadeInscricao(imovelHelper, fachada );
FiltroImovel filtroImovel = new FiltroImovel();
filtroImovel.adicionarParametro(new ParametroSimples(FiltroImovel.ID, imovelHelper.getId()));
Collection colecaoImoveis = fachada.pesquisar(filtroImovel, Imovel.class.getName());
Imovel imovelSemAtualizacao = (Imovel) Util.retonarObjetoDeColecao(colecaoImoveis);
ImovelInscricaoAlterada imovelInscricaoAlterada = new ImovelInscricaoAlterada();
imovelInscricaoAlterada.setImovel(imovelHelper);
imovelInscricaoAlterada.setFaturamentoGrupo(null);
imovelInscricaoAlterada.setLocalidadeAnterior(imovelSemAtualizacao.getLocalidade());
imovelInscricaoAlterada.setSetorComercialAnterior(imovelSemAtualizacao.getSetorComercial());
imovelInscricaoAlterada.setQuadraAnterior(imovelSemAtualizacao.getQuadra());
imovelInscricaoAlterada.setQuadraFaceAnterior(imovelSemAtualizacao.getQuadraFace()!=null?imovelSemAtualizacao.getQuadraFace():null);
imovelInscricaoAlterada.setLoteAnterior(imovelSemAtualizacao.getLote());
imovelInscricaoAlterada.setSubLoteAnterior(imovelSemAtualizacao.getSubLote());
imovelInscricaoAlterada.setLocalidadeAtual(imovelHelper.getLocalidade());
imovelInscricaoAlterada.setSetorComercialAtual(imovelHelper.getSetorComercial());
imovelInscricaoAlterada.setQuadraAtual(imovelHelper.getQuadra());
imovelInscricaoAlterada.setQuadraFaceAtual(imovelHelper.getQuadraFace()!=null?imovelHelper.getQuadraFace():null);
imovelInscricaoAlterada.setLoteAtual(imovelHelper.getLote());
imovelInscricaoAlterada.setSubLoteAtual(imovelHelper.getSubLote());
imovelInscricaoAlterada.setIndicadorAtualizado(ConstantesSistema.NAO);
imovelInscricaoAlterada.setIndicadorAtualizacaoExcluida(ConstantesSistema.NAO);
imovelInscricaoAlterada.setIndicadorImovelExcluido(ConstantesSistema.NAO);
imovelInscricaoAlterada.setIndicadorErroAlteracao(null);
if (this.getSistemaParametro().getIndicadorAlteracaoInscricaoImovel().toString().equals(""+ConstantesSistema.SIM)){
imovelInscricaoAlterada.setIndicadorAutorizado(ConstantesSistema.NAO);
} else {
imovelInscricaoAlterada.setIndicadorAutorizado(ConstantesSistema.SIM);
}
imovelInscricaoAlterada.setUsuarioAlteracao(usuario);
imovelInscricaoAlterada.setDataAlteracaoOnline(new Date());
imovelInscricaoAlterada.setDataAlteracaoBatch(null);
imovelInscricaoAlterada.setUltimaAlteracao(new Date());
fachada.inserir(imovelInscricaoAlterada);
}
/**
* [FS0009 � Verificar Exist�ncia de Altera��o de Inscri��o Pendente para o Im�vel]
* @author Arthur Carvalho
* @date 17/09/2010
* @param imovelSemAtualizacao
* @param fachada
*/
private void verificarExistenciaAlteracaoInscricaoPendenteImovel(Imovel imovelSemAtualizacao, Fachada fachada) {
FiltroImovelInscricaoAlterada filtroImovelInscricaoAlterada = new FiltroImovelInscricaoAlterada();
filtroImovelInscricaoAlterada.adicionarParametro(new ParametroSimples(
FiltroImovelInscricaoAlterada.IMOVEL_ID, imovelSemAtualizacao.getId()));
filtroImovelInscricaoAlterada.adicionarParametro(new ParametroSimples(
FiltroImovelInscricaoAlterada.INDICADOR_ATUALIZADO, ConstantesSistema.NAO));
filtroImovelInscricaoAlterada.adicionarParametro(new ParametroSimples(
FiltroImovelInscricaoAlterada.INDICADOR_ALTERACAO_EXCLUIDA,ConstantesSistema.NAO));
filtroImovelInscricaoAlterada.adicionarParametro(new ParametroNulo(
FiltroImovelInscricaoAlterada.INDICADOR_ERRO_ALTERACAO));
Collection<ImovelInscricaoAlterada> colecaoImovelInscricaoAlterada
= fachada.pesquisar(filtroImovelInscricaoAlterada,
ImovelInscricaoAlterada.class.getName());
if(!Util.isVazioOrNulo(colecaoImovelInscricaoAlterada)){
for (ImovelInscricaoAlterada imovelInscricaoAlterada : colecaoImovelInscricaoAlterada) {
imovelInscricaoAlterada.setIndicadorAtualizacaoExcluida(ConstantesSistema.SIM);
imovelInscricaoAlterada.setUltimaAlteracao(new Date());
fachada.atualizar(imovelInscricaoAlterada);
}
}
}
}