package gcom.gui.arrecadacao;
import gcom.arrecadacao.Arrecadador;
import gcom.arrecadacao.FiltroArrecadador;
import gcom.cadastro.cliente.Cliente;
import gcom.cadastro.cliente.FiltroCliente;
import gcom.cadastro.imovel.FiltroImovel;
import gcom.cadastro.imovel.Imovel;
import gcom.fachada.Fachada;
import gcom.gui.GcomAction;
import gcom.util.Util;
import gcom.util.filtro.ParametroSimples;
import java.util.Collection;
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;
/**
* [UC0507] ATUALIZAR ARRECADADOR
*
* @author Marcio Roberto
* @date 13/02/2007
*/
public class ExibirAtualizarArrecadadorAction extends GcomAction {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
ActionForward retorno = actionMapping
.findForward("atualizarArrecadador");
AtualizarArrecadadorActionForm atualizarArrecadadorActionForm = (AtualizarArrecadadorActionForm) actionForm;
HttpSession sessao = httpServletRequest.getSession(false);
Fachada fachada = Fachada.getInstancia();
String idArrecadador = httpServletRequest
.getParameter("idRegistroAtualizacao");
if (idArrecadador == null) {
if (httpServletRequest.getAttribute("idRegistroAtualizacao") == null) {
idArrecadador = (String) sessao
.getAttribute("idRegistroAtualizacao");
} else {
idArrecadador = (String) httpServletRequest.getAttribute(
"idRegistroAtualizacao").toString();
}
} else {
sessao.setAttribute("i", true);
}
Arrecadador arrecadador = null;
String idImovel = null;
String inscricaoImovel = null;
String idCliente = null;
String objetoConsulta = httpServletRequest
.getParameter("objetoConsulta");
if (objetoConsulta != null && !objetoConsulta.equals("")) {
// Validamos o cliente
if (atualizarArrecadadorActionForm.getIdCliente() != null
&& !atualizarArrecadadorActionForm.getIdCliente().trim()
.equals("")) {
FiltroCliente filtro = new FiltroCliente();
filtro.adicionarParametro(new ParametroSimples(
FiltroCliente.ID, atualizarArrecadadorActionForm
.getIdCliente()));
Collection colCliente = fachada.pesquisar(filtro, Cliente.class
.getName());
if (colCliente == null || !colCliente.iterator().hasNext()) {
// O cliente n�o existe
atualizarArrecadadorActionForm.setIdCliente("");
atualizarArrecadadorActionForm
.setNomeCliente("Cliente inexistente");
httpServletRequest.setAttribute("existeCliente",
"exception");
} else {
Cliente cliente = (Cliente) Util
.retonarObjetoDeColecao(colCliente);
atualizarArrecadadorActionForm.setIdCliente(cliente.getId()
.toString());
atualizarArrecadadorActionForm.setNomeCliente(cliente
.getNome());
}
}
if (atualizarArrecadadorActionForm.getIdImovel() != null
&& !atualizarArrecadadorActionForm.getIdImovel().trim()
.equals("")) {
// Validamos o imovel
FiltroImovel filtroImovel = new FiltroImovel();
filtroImovel.adicionarParametro(new ParametroSimples(
FiltroImovel.ID, atualizarArrecadadorActionForm
.getIdImovel()));
Collection colImovel = fachada.pesquisar(filtroImovel,
Imovel.class.getName());
if (colImovel == null || colImovel.isEmpty()) {
// O Imovel n�o existe
atualizarArrecadadorActionForm.setIdImovel("");
atualizarArrecadadorActionForm
.setInscricaoImovel("Im�vel inexistente");
httpServletRequest
.setAttribute("existeImovel", "exception");
} else {
Imovel imovel = (Imovel) Util
.retonarObjetoDeColecao(colImovel);
inscricaoImovel = fachada.pesquisarInscricaoImovel(imovel
.getId());
// atualizarArrecadadorActionForm.setIdImovel(arrecadador
// .getImovel().getId().toString());
atualizarArrecadadorActionForm.setIdImovel(imovel
.getId().toString());
atualizarArrecadadorActionForm
.setInscricaoImovel(inscricaoImovel);
}
}
} else {
if (idArrecadador != null && !idArrecadador.trim().equals("")
&& Integer.parseInt(idArrecadador) > 0) {
FiltroArrecadador filtroArrecadador = new FiltroArrecadador();
// Adiciona entidade estrangeira para carregamento do objeto
// "CLIENTE"
// (ou seja, em ARRECADADOR existe um atributo do tipo Cliente,
// ent�o � preciso carregar o cliente)
// o mesmo para Imovel.
filtroArrecadador
.adicionarCaminhoParaCarregamentoEntidade("cliente");
filtroArrecadador
.adicionarCaminhoParaCarregamentoEntidade("imovel");
filtroArrecadador.adicionarParametro(new ParametroSimples(
FiltroArrecadador.ID, idArrecadador));
Collection colecaoArrecadador = fachada.pesquisar(
filtroArrecadador, Arrecadador.class.getName());
if (colecaoArrecadador != null && !colecaoArrecadador.isEmpty()) {
arrecadador = (Arrecadador) Util
.retonarObjetoDeColecao(colecaoArrecadador);
}
}
if (idImovel == null || idImovel.trim().equals("")) {
if (arrecadador.getImovel() != null
&& !arrecadador.getImovel().getId().toString().trim()
.equals("")) {
idImovel = arrecadador.getImovel().getId().toString();
// Filtro para descobrir id do Imovel
FiltroImovel filtroImovel = new FiltroImovel();
filtroImovel.adicionarParametro(new ParametroSimples(
FiltroImovel.ID, idImovel));
Collection colecaoImovel = fachada.pesquisar(filtroImovel,
Imovel.class.getName());
Imovel imovel = (Imovel) Util
.retonarObjetoDeColecao(colecaoImovel);
inscricaoImovel = fachada.pesquisarInscricaoImovel(imovel
.getId());
atualizarArrecadadorActionForm.setIdImovel(arrecadador
.getImovel().getId().toString());
atualizarArrecadadorActionForm
.setInscricaoImovel(inscricaoImovel);
}
}
if (idCliente == null || idCliente.trim().equals("")) {
atualizarArrecadadorActionForm.setIdCliente(arrecadador
.getCliente().getId().toString());
atualizarArrecadadorActionForm.setNomeCliente(arrecadador
.getCliente().getNome());
}
atualizarArrecadadorActionForm.setId(idArrecadador);
atualizarArrecadadorActionForm.setIdAgente(arrecadador
.getCodigoAgente().toString());
atualizarArrecadadorActionForm.setInscricaoEstadual(arrecadador
.getNumeroInscricaoEstadual());
atualizarArrecadadorActionForm.setIndicadorUso(arrecadador
.getIndicadorUso().toString());
sessao.setAttribute("arrecadador", arrecadador);
if(sessao.getAttribute("colecaoArrecadador") != null){
sessao.setAttribute("caminhoRetornoVoltar",
"/gsan/filtrarArrecadadorAction.do");
}else{
sessao.setAttribute("caminhoRetornoVoltar",
"/gsan/exibirFiltrarArrecadadorAction.do");
}
}
return retorno;
}
}