package gcom.gui.cadastro.tarifasocial;
import gcom.cadastro.cliente.ClienteImovel;
import gcom.cadastro.cliente.ClienteImovelEconomia;
import gcom.cadastro.cliente.ClienteImovelFimRelacaoMotivo;
import gcom.cadastro.tarifasocial.bean.TarifaSocialHelper;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.util.Util;
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 RemoverClienteImovelTarifaSocialAction 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("exibirDadosCliente");
// Pega uma instancia da sessao
HttpSession sessao = httpServletRequest.getSession(false);
AtualizarDadosTarifaSocialClienteActionForm atualizarDadosTarifaSocialClienteActionForm = (AtualizarDadosTarifaSocialClienteActionForm) actionForm;
String motivoFimRelacao = atualizarDadosTarifaSocialClienteActionForm.getClienteImovelFimRelacaoMotivo();
String dataFimRelacao = atualizarDadosTarifaSocialClienteActionForm.getDataFimRelacao();
Date dataFimRelacaoFormatada = null;
Date dataAtual = new Date();
if (dataFimRelacao != null && !dataFimRelacao.trim().equals("")) {
dataFimRelacaoFormatada = Util.converteStringParaDate(dataFimRelacao);
if (dataFimRelacaoFormatada.compareTo(dataAtual) > 0) {
throw new ActionServletException("atencao.data_fim_relacao_cliente_imovel");
}
} else {
dataFimRelacaoFormatada = dataAtual;
}
TarifaSocialHelper tarifaSocialHelperAtualizar = (TarifaSocialHelper) sessao.getAttribute("tarifaSocialHelperAtualizar");
if (sessao.getAttribute("colecaoClienteImovelRemover") != null) {
Collection colecaoClienteImovelRemover = (Collection) sessao
.getAttribute("colecaoClienteImovelRemover");
Collection colecaoClienteImovel = (Collection) sessao
.getAttribute("colecaoClienteImovel");
Iterator colecaoClienteImovelRemoverIterator = colecaoClienteImovelRemover
.iterator();
Collection colecaoClienteRemoverTarifaSocial = null;
if (tarifaSocialHelperAtualizar.getColecaoClientesRemovidos() != null) {
colecaoClienteRemoverTarifaSocial = tarifaSocialHelperAtualizar
.getColecaoClientesRemovidos();
} else {
colecaoClienteRemoverTarifaSocial = new ArrayList();
}
while (colecaoClienteImovelRemoverIterator.hasNext()) {
ClienteImovel clienteImovel = (ClienteImovel) colecaoClienteImovelRemoverIterator
.next();
Date dataInicioRelacao = clienteImovel.getDataInicioRelacao();
if (dataInicioRelacao.compareTo(dataFimRelacaoFormatada) > 0) {
throw new ActionServletException(
"atencao.data_fim_relacao_cliente_imovel_menor_inicial");
}
colecaoClienteImovel.remove(clienteImovel);
ClienteImovelFimRelacaoMotivo clienteImovelFimRelacaoMotivo = new ClienteImovelFimRelacaoMotivo();
clienteImovelFimRelacaoMotivo.setId(new Integer(
motivoFimRelacao));
clienteImovel.setDataFimRelacao(dataFimRelacaoFormatada);
clienteImovel
.setClienteImovelFimRelacaoMotivo(clienteImovelFimRelacaoMotivo);
colecaoClienteRemoverTarifaSocial.add(clienteImovel);
}
tarifaSocialHelperAtualizar
.setColecaoClientesRemovidos(colecaoClienteImovelRemover);
} else if (sessao.getAttribute("colecaoClienteImovelEconomiaRemover") != null) {
Collection colecaoClienteImovelEconomiaRemover = (Collection) sessao
.getAttribute("colecaoClienteImovelEconomiaRemover");
Collection colecaoClienteImovelEconomia = (Collection) sessao
.getAttribute("colecaoClienteImovelEconomia");
Iterator colecaoClienteImovelEconomiaRemoverIterator = colecaoClienteImovelEconomiaRemover
.iterator();
Collection colecaoClienteEconomiaRemoverTarifaSocial = null;
if (tarifaSocialHelperAtualizar.getColecaoClientesEconomiaRemovidos() != null) {
colecaoClienteEconomiaRemoverTarifaSocial = tarifaSocialHelperAtualizar
.getColecaoClientesEconomiaRemovidos();
} else {
colecaoClienteEconomiaRemoverTarifaSocial = new ArrayList();
}
while (colecaoClienteImovelEconomiaRemoverIterator.hasNext()) {
ClienteImovelEconomia clienteImovelEconomia = (ClienteImovelEconomia) colecaoClienteImovelEconomiaRemoverIterator
.next();
Date dataInicioRelacao = clienteImovelEconomia.getDataInicioRelacao();
if (dataInicioRelacao.compareTo(dataFimRelacaoFormatada) > 0) {
throw new ActionServletException(
"atencao.data_fim_relacao_cliente_imovel_menor_inicial");
}
colecaoClienteImovelEconomia.remove(clienteImovelEconomia);
ClienteImovelFimRelacaoMotivo clienteImovelFimRelacaoMotivo = new ClienteImovelFimRelacaoMotivo();
clienteImovelFimRelacaoMotivo.setId(new Integer(
motivoFimRelacao));
clienteImovelEconomia.setDataFimRelacao(dataFimRelacaoFormatada);
clienteImovelEconomia
.setClienteImovelFimRelacaoMotivo(clienteImovelFimRelacaoMotivo);
colecaoClienteEconomiaRemoverTarifaSocial.add(clienteImovelEconomia);
}
tarifaSocialHelperAtualizar
.setColecaoClientesEconomiaRemovidos(colecaoClienteEconomiaRemoverTarifaSocial);
}
sessao.setAttribute("tarifaSocialHelperAtualizar", tarifaSocialHelperAtualizar);
sessao.setAttribute("telaLimpa", true);
return retorno;
}
}