package gcom.gui.cadastro.imovel;
import gcom.cadastro.cliente.ClienteImovelEconomia;
import gcom.cadastro.cliente.ClienteImovelFimRelacaoMotivo;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
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;
/**
* Description of the Class
*
* @author compesa
* @created 15 de Agosto de 2005
*/
public class ManterFimRelacaoClienteImovelAction extends GcomAction {
/**
* Description of the Method
*
* @param actionMapping
* Description of the Parameter
* @param actionForm
* Description of the Parameter
* @param httpServletRequest
* Description of the Parameter
* @param httpServletResponse
* Description of the Parameter
* @return Description of the Return Value
*/
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
// Prepara o retorno da A��o
ActionForward retorno = actionMapping
.findForward("exibirAtualizarEconomiaPopup");
// Cria a sess�o
HttpSession sessao = httpServletRequest.getSession(false);
FimRelacaoClienteImovelActionForm fimRelacaoClienteImovelActionForm = (FimRelacaoClienteImovelActionForm) actionForm;
// Obt�m a fachada
//Fachada fachada = Fachada.getInstancia();
Collection colecaoClientesImoveisEconomiaFimRelacao = (Collection) sessao
.getAttribute("colecaoClientesImoveisEconomiaFimRelacao");
// verifica se tem algum cliente imovel economia que precisa ser
// atualizado com a data de termino da
// rela��o e o motivo.
if (colecaoClientesImoveisEconomiaFimRelacao != null
&& !colecaoClientesImoveisEconomiaFimRelacao.isEmpty()) {
Iterator clienteImovelEconomiaIterator = colecaoClientesImoveisEconomiaFimRelacao
.iterator();
String idMotivoFimRelacao = fimRelacaoClienteImovelActionForm
.getIdMotivo();
ClienteImovelFimRelacaoMotivo clienteImovelFimRelacao = new ClienteImovelFimRelacaoMotivo();
// seta o id do motivo do fim da rela��o
clienteImovelFimRelacao.setId(new Integer(idMotivoFimRelacao));
String dataFimRelacaoForm = fimRelacaoClienteImovelActionForm
.getDataTerminoRelacao();
SimpleDateFormat dataFormato = new SimpleDateFormat("dd/MM/yyyy");
Date dataFimRelacao = null;
try {
dataFimRelacao = dataFormato.parse(dataFimRelacaoForm);
} catch (ParseException ex) {
dataFimRelacao = null;
}
Date dataCorrente = null;
Calendar a = Calendar.getInstance();
a.set(Calendar.SECOND, 0);
a.set(Calendar.MILLISECOND, 0);
a.set(Calendar.HOUR, 0);
a.set(Calendar.MINUTE, 0);
dataCorrente = a.getTime();
if (dataFimRelacao.after(dataCorrente)) {
throw new ActionServletException(
"atencao.data_fim_relacao_cliente_imovel");
}
while (clienteImovelEconomiaIterator.hasNext()) {
ClienteImovelEconomia clienteImovelEconomia = (ClienteImovelEconomia) clienteImovelEconomiaIterator
.next();
if (dataFimRelacao.before(clienteImovelEconomia
.getDataInicioRelacao())) {
throw new ActionServletException(
"atencao.data_fim_relacao_cliente_imovel_menor_inicial");
}
}
// caso a data n�o seja menor que a atual ent�o
// seta a data final no cliente imovel
clienteImovelEconomiaIterator = colecaoClientesImoveisEconomiaFimRelacao
.iterator();
while (clienteImovelEconomiaIterator.hasNext()) {
ClienteImovelEconomia clienteImovelEconomia = (ClienteImovelEconomia) clienteImovelEconomiaIterator
.next();
clienteImovelEconomia
.setClienteImovelFimRelacaoMotivo(clienteImovelFimRelacao);
clienteImovelEconomia.setDataFimRelacao(dataFimRelacao);
}
}
return retorno;
}
}