package gcom.gui.cadastro.tarifasocial;
import gcom.cadastro.cliente.Cliente;
import gcom.cadastro.cliente.ClienteImovel;
import gcom.cadastro.cliente.ClienteImovelEconomia;
import gcom.cadastro.cliente.ClienteRelacaoTipo;
import gcom.cadastro.imovel.Imovel;
import gcom.cadastro.imovel.ImovelEconomia;
import gcom.cadastro.tarifasocial.TarifaSocialDadoEconomia;
import gcom.cadastro.tarifasocial.TarifaSocialExclusaoMotivo;
import gcom.cadastro.tarifasocial.bean.TarifaSocialHelper;
import gcom.fachada.Fachada;
import gcom.gui.GcomAction;
import java.util.ArrayList;
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;
/**
* @author Rafael Corr�a
* @since 16/01/2007
*/
public class RemoverTarifaSocialImovelAnteriorAction extends GcomAction {
/**
*
* @param actionMapping
* @param actionForm
* @param httpServletRequest
* @param httpServletResponse
* @return
*/
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
// Seta o mapeamento de retorno
ActionForward retorno = actionMapping.findForward("remover");
// Pega uma instancia da sessao
HttpSession sessao = httpServletRequest.getSession(false);
RemoverTarifaSocialImovelAnteriorActionForm removerTarifaSocialImovelAnteriorActionForm = (RemoverTarifaSocialImovelAnteriorActionForm) actionForm;
Fachada fachada = Fachada.getInstancia();
String idMotivoExclusao = removerTarifaSocialImovelAnteriorActionForm
.getMotivoExclusao();
Cliente cliente = (Cliente) sessao
.getAttribute("clienteTarifaSocialImovelAnterior");
String manter = httpServletRequest.getParameter("manter");
if (manter == null || manter.trim().equals("")) {
TarifaSocialHelper tarifaSocialHelperAtualizar = (TarifaSocialHelper) sessao
.getAttribute("tarifaSocialHelperAtualizar");
TarifaSocialHelper tarifaSocialHelper = (TarifaSocialHelper) sessao
.getAttribute("tarifaSocialHelper");
ClienteRelacaoTipo clienteRelacaoTipo = new ClienteRelacaoTipo();
clienteRelacaoTipo.setId(ClienteRelacaoTipo.USUARIO.intValue());
clienteRelacaoTipo.setDescricao("USUARIO");
Date dataInicioRelacao = (Date) sessao
.getAttribute("dataInicioRelacao");
if (sessao.getAttribute("colecaoClienteImovel") != null) {
ClienteImovel clienteImovel = new ClienteImovel();
clienteImovel.setCliente(cliente);
clienteImovel.setClienteRelacaoTipo(clienteRelacaoTipo);
Imovel imovel = tarifaSocialHelper.getClienteImovel()
.getImovel();
clienteImovel.setDataInicioRelacao(dataInicioRelacao);
clienteImovel.setImovel(imovel);
Collection colecaoClienteImovel = (Collection) sessao
.getAttribute("colecaoClienteImovel");
tarifaSocialHelperAtualizar.setClienteImovel(clienteImovel);
sessao.setAttribute("tarifaSocialHelperAtualizar",
tarifaSocialHelperAtualizar);
colecaoClienteImovel.add(clienteImovel);
sessao.setAttribute("colecaoClienteImovel",
colecaoClienteImovel);
Collection colecaoClientesInseridos = null;
if (tarifaSocialHelperAtualizar.getColecaoClientesInseridos() != null) {
colecaoClientesInseridos = tarifaSocialHelperAtualizar
.getColecaoClientesInseridos();
} else {
colecaoClientesInseridos = new ArrayList();
}
colecaoClientesInseridos.add(clienteImovel);
tarifaSocialHelperAtualizar
.setColecaoClientesInseridos(colecaoClientesInseridos);
sessao.setAttribute("tarifaSocialHelperAtualizar",
tarifaSocialHelperAtualizar);
} else {
ClienteImovelEconomia clienteImovelEconomia = new ClienteImovelEconomia();
clienteImovelEconomia.setCliente(cliente);
clienteImovelEconomia.setClienteRelacaoTipo(clienteRelacaoTipo);
ImovelEconomia imovelEconomia = tarifaSocialHelper
.getClienteImovelEconomia().getImovelEconomia();
clienteImovelEconomia.setDataInicioRelacao(dataInicioRelacao);
clienteImovelEconomia.setImovelEconomia(imovelEconomia);
Collection colecaoClienteImovelEconomia = (Collection) sessao
.getAttribute("colecaoClienteImovelEconomia");
tarifaSocialHelperAtualizar
.setClienteImovelEconomia(clienteImovelEconomia);
sessao.setAttribute("tarifaSocialHelperAtualizar",
tarifaSocialHelperAtualizar);
colecaoClienteImovelEconomia.add(clienteImovelEconomia);
sessao.setAttribute("colecaoClienteImovelEconomia",
colecaoClienteImovelEconomia);
Collection colecaoClientesInseridos = null;
if (tarifaSocialHelperAtualizar
.getColecaoClientesEconomiaInseridos() != null) {
colecaoClientesInseridos = tarifaSocialHelperAtualizar
.getColecaoClientesEconomiaInseridos();
} else {
colecaoClientesInseridos = new ArrayList();
}
colecaoClientesInseridos.add(clienteImovelEconomia);
tarifaSocialHelperAtualizar
.setColecaoClientesEconomiaInseridos(colecaoClientesInseridos);
sessao.setAttribute("tarifaSocialHelperAtualizar",
tarifaSocialHelperAtualizar);
}
} else {
retorno = actionMapping.findForward("exibirRemover");
httpServletRequest.setAttribute("fecharPopup", true);
sessao.setAttribute("atualizar", true);
TarifaSocialDadoEconomia tarifaSocialDadoEconomiaRecadastrar = (TarifaSocialDadoEconomia) sessao
.getAttribute("tarifaSocialRecadastrar");
Collection colecaoTarifasSociaisRecadastradas = null;
if (sessao
.getAttribute("colecaoTarifasSociaisRecadastradas") != null) {
colecaoTarifasSociaisRecadastradas = (Collection) sessao
.getAttribute("colecaoTarifasSociaisRecadastradas");
} else {
colecaoTarifasSociaisRecadastradas = new ArrayList();
}
colecaoTarifasSociaisRecadastradas
.add(tarifaSocialDadoEconomiaRecadastrar);
sessao.setAttribute("colecaoTarifasSociaisRecadastradas",
colecaoTarifasSociaisRecadastradas);
ArrayList colecaoTarifaSocialHelper = (ArrayList) sessao
.getAttribute("colecaoTarifaSocialHelper");
int i = 0;
Iterator colecaoTarifaSocialHelperIterator = colecaoTarifaSocialHelper.iterator();
while (colecaoTarifaSocialHelperIterator.hasNext()) {
TarifaSocialHelper tarifaSocialHelper = (TarifaSocialHelper) colecaoTarifaSocialHelperIterator
.next();
if (tarifaSocialHelper.getTarifaSocialDadoEconomia().getId()
.equals(tarifaSocialDadoEconomiaRecadastrar.getId())) {
tarifaSocialHelper
.setTarifaSocialDadoEconomia(tarifaSocialDadoEconomiaRecadastrar);
colecaoTarifaSocialHelper.set(i, tarifaSocialHelper);
colecaoTarifasSociaisRecadastradas
.add(tarifaSocialDadoEconomiaRecadastrar);
sessao.setAttribute("colecaoTarifaSocialHelper", colecaoTarifaSocialHelper);
break;
}
i++;
}
}
ClienteImovel clienteImovel = new ClienteImovel();
clienteImovel.setCliente(cliente);
TarifaSocialHelper tarifaSocialHelperImovelAnterior = new TarifaSocialHelper();
TarifaSocialDadoEconomia tarifaSocialDadoEconomiaSessao = (TarifaSocialDadoEconomia) sessao.getAttribute("tarifaSocialDadoEconomiaImovelAnterior");
TarifaSocialDadoEconomia tarifaSocialDadoEconomia = fachada.pesquisarTarifaSocial(tarifaSocialDadoEconomiaSessao.getId());
tarifaSocialDadoEconomia.setTarifaSocialRevisaoMotivo(null);
tarifaSocialDadoEconomia.setDataRevisao(null);
TarifaSocialExclusaoMotivo tarifaSocialExclusaoMotivo = new TarifaSocialExclusaoMotivo();
tarifaSocialExclusaoMotivo.setId(new Integer(idMotivoExclusao));
tarifaSocialDadoEconomia
.setTarifaSocialExclusaoMotivo(tarifaSocialExclusaoMotivo);
tarifaSocialHelperImovelAnterior
.setTarifaSocialDadoEconomia(tarifaSocialDadoEconomia);
tarifaSocialHelperImovelAnterior.setClienteImovel(clienteImovel);
Collection colecaoImoveisExcluidosTarifaSocial = null;
if (sessao.getAttribute("colecaoImoveisExcluidosTarifaSocial") != null) {
colecaoImoveisExcluidosTarifaSocial = (Collection) sessao
.getAttribute("colecaoImoveisExcluidosTarifaSocial");
} else {
colecaoImoveisExcluidosTarifaSocial = new ArrayList();
}
colecaoImoveisExcluidosTarifaSocial
.add(tarifaSocialHelperImovelAnterior);
sessao.setAttribute("colecaoImoveisExcluidosTarifaSocial",
colecaoImoveisExcluidosTarifaSocial);
sessao.setAttribute("telaLimpa", true);
return retorno;
}
}