package gcom.gui.arrecadacao.banco;
import gcom.arrecadacao.banco.Agencia;
import gcom.arrecadacao.banco.Banco;
import gcom.arrecadacao.banco.FiltroAgencia;
import gcom.arrecadacao.banco.FiltroBanco;
import gcom.fachada.Fachada;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.util.filtro.ParametroSimples;
import java.util.ArrayList;
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;
/**
* Descri��o da classe
*
* @author Thiago Ten�rio
* @date 30/10/2006
*/
public class ExibirAtualizarAgenciaBancariaAction extends GcomAction {
/**
* [UC0393] Atualizar Ag�ncia Banc�ria
*
* Este caso de uso permite alterar um valor de Ag�ncia Banc�ria
*
* @author Thiago Ten�rio
* @date 31/10/2006
*
* @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("atualizarAgenciaBancaria");
HttpSession sessao = httpServletRequest.getSession(false);
AtualizarAgenciaBancariaActionForm atualizarAgenciaBancariaActionForm = (AtualizarAgenciaBancariaActionForm) actionForm;
String removerEndereco = (String) httpServletRequest
.getParameter("removerEndereco");
if (httpServletRequest.getParameter("menu") != null) {
atualizarAgenciaBancariaActionForm.setBancoID("");
}
Fachada fachada = Fachada.getInstancia();
// this.getAtendimentoMotivoEncerramentoCollection(sessao);
//
// this.getServicoTipoReferenciaCollection(sessao, fachada);
String id = null;
String idAgencia = null;
if (httpServletRequest.getParameter("idRegistroAtualizacao") != null
&& !httpServletRequest.getParameter("idRegistroAtualizacao")
.equals("")) {
sessao.removeAttribute("agencia");
sessao.removeAttribute("colecaoAgenciaTela");
}
// Verifica se veio do filtrar ou do manter
if (httpServletRequest.getParameter("manter") != null) {
sessao.setAttribute("manter", true);
} else if (httpServletRequest.getParameter("filtrar") != null) {
sessao.removeAttribute("manter");
}
FiltroBanco filtroBanco = new FiltroBanco();
Collection colecaoBancos = fachada.pesquisar(filtroBanco, Banco.class.getName());
sessao.setAttribute("colecaoBanco", colecaoBancos);
// Verifica se o servicoCobrancaValor j� est� na sess�o, em caso
// afirmativo
// significa que o usu�rio j� entrou na tela e apenas selecionou algum
// item que deu um reload na tela e em caso negativo significa que ele
// est� entrando pela primeira vez
if (sessao.getAttribute("agenciaAtualizar") == null) {
// Limpa o endere�o da sess�o
if (sessao.getAttribute("colecaoEnderecos") != null) {
sessao.removeAttribute("colecaoEnderecos");
}
Agencia agencia = null;
if (sessao.getAttribute("agencia") != null) {
agencia = (Agencia) sessao.getAttribute("agencia");
sessao.setAttribute("idAgencia", agencia.getId().toString());
sessao.setAttribute("filtrar", true);
} else {
agencia = null;
if (httpServletRequest.getParameter("inserir") != null) {
sessao.setAttribute("inserir", true);
sessao.setAttribute("filtrar", true);
} else {
sessao.removeAttribute("filtrar");
sessao.removeAttribute("inserir");
}
idAgencia = null;
if (httpServletRequest.getParameter("idRegistroAtualizacao") == null
|| httpServletRequest.getParameter(
"idRegistroAtualizacao").equals("")) {
agencia = (Agencia) sessao.getAttribute("agencia");
} else {
idAgencia = (String) httpServletRequest
.getParameter("idRegistroAtualizacao");
sessao.setAttribute("idRegistroAtualizacao", idAgencia);
}
if (idAgencia != null) {
id = idAgencia;
FiltroAgencia filtroAgencia = new FiltroAgencia();
filtroAgencia
.adicionarCaminhoParaCarregamentoEntidade("banco");
filtroAgencia
.adicionarCaminhoParaCarregamentoEntidade("enderecoReferencia");
filtroAgencia
.adicionarCaminhoParaCarregamentoEntidade("cep");
filtroAgencia
.adicionarCaminhoParaCarregamentoEntidade("logradouroCep.logradouro.logradouroTipo");
filtroAgencia
.adicionarCaminhoParaCarregamentoEntidade("logradouroCep.logradouro.logradouroTitulo");
filtroAgencia
.adicionarCaminhoParaCarregamentoEntidade("logradouroBairro.bairro.municipio.unidadeFederacao");
filtroAgencia
.adicionarCaminhoParaCarregamentoEntidade("logradouroCep.cep");
filtroAgencia.adicionarParametro(new ParametroSimples(
FiltroAgencia.ID, idAgencia));
Collection<Agencia> colecaoAgencia = fachada.pesquisar(
filtroAgencia, Agencia.class.getName());
if (colecaoAgencia == null || colecaoAgencia.isEmpty()) {
throw new ActionServletException(
"atencao.atualizacao.timestamp");
}
httpServletRequest.setAttribute("colecaoAgencia",
colecaoAgencia);
agencia = (Agencia) colecaoAgencia.iterator().next();
}
if (idAgencia == null) {
if (sessao.getAttribute("idRegistroAtualizacao") != null) {
idAgencia = (String) sessao
.getAttribute("idRegistroAtualizacao");
} else {
agencia = (Agencia) sessao
.getAttribute("osReferidaRetornoTipo");
idAgencia = agencia.getId().toString();
}
}
sessao.setAttribute("agenciaAtualizar", agencia);
}
if (agencia != null) {
atualizarAgenciaBancariaActionForm.setCodigo(agencia
.getCodigoAgencia().toString());
atualizarAgenciaBancariaActionForm.setNome(agencia
.getNomeAgencia());
atualizarAgenciaBancariaActionForm.setTelefone(agencia
.getNumeroTelefone());
atualizarAgenciaBancariaActionForm.setRamal(agencia
.getNumeroRamal());
atualizarAgenciaBancariaActionForm.setFax(agencia
.getNumeroFax());
atualizarAgenciaBancariaActionForm.setEmail(agencia.getEmail());
atualizarAgenciaBancariaActionForm.setBancoID(agencia
.getBanco().getId().toString());
Collection colecaoEnderecos = null;
if (agencia.getEnderecoFormatado() != null) {
colecaoEnderecos = new ArrayList();
colecaoEnderecos.add(agencia);
sessao.setAttribute("colecaoEnderecos", colecaoEnderecos);
}
id = agencia.getId().toString();
sessao.setAttribute("agenciaAtualizar", agencia);
}
}
// -------------- bt DESFAZER ---------------
if (httpServletRequest.getParameter("desfazer") != null
&& httpServletRequest.getParameter("desfazer")
.equalsIgnoreCase("S")) {
sessao.removeAttribute("colecaoAgenciaTela");
String agenciaID = null;
if (sessao.getAttribute("idRegistroAtualizacao") != null
&& !sessao.getAttribute("idRegistroAtualizacao").equals("")) {
agenciaID = (String) sessao
.getAttribute("idRegistroAtualizacao");
}
if ((agenciaID == null) && (id == null)) {
Agencia agencia = (Agencia) sessao.getAttribute("agencia");
atualizarAgenciaBancariaActionForm.setNome(agencia
.getNomeAgencia());
atualizarAgenciaBancariaActionForm.setTelefone(agencia
.getNumeroTelefone());
atualizarAgenciaBancariaActionForm.setRamal(agencia
.getNumeroRamal());
atualizarAgenciaBancariaActionForm.setFax(agencia
.getNumeroFax());
atualizarAgenciaBancariaActionForm.setEmail(agencia.getEmail());
atualizarAgenciaBancariaActionForm.setBancoID(agencia
.getBanco().getId().toString());
Collection colecaoEnderecos = null;
if (agencia.getEnderecoFormatado() != null) {
colecaoEnderecos = new ArrayList();
colecaoEnderecos.add(agencia);
sessao.setAttribute("colecaoEnderecos", colecaoEnderecos);
}
sessao.setAttribute("agenciaAtualizar", agencia);
}
if ((idAgencia == null) && (id != null)) {
idAgencia = id;
}
if (idAgencia != null) {
FiltroAgencia filtroAgencia = new FiltroAgencia();
filtroAgencia.adicionarCaminhoParaCarregamentoEntidade("banco");
filtroAgencia.adicionarParametro(new ParametroSimples(
FiltroAgencia.ID, idAgencia));
Collection<Agencia> colecaoAgencia = fachada.pesquisar(
filtroAgencia, Agencia.class.getName());
if (colecaoAgencia == null || colecaoAgencia.isEmpty()) {
throw new ActionServletException(
"atencao.atualizacao.timestamp");
}
httpServletRequest.setAttribute("colecaoAgencia",
colecaoAgencia);
Agencia agencia = (Agencia) colecaoAgencia.iterator().next();
atualizarAgenciaBancariaActionForm.setCodigo(agencia
.getCodigoAgencia().toString());
atualizarAgenciaBancariaActionForm.setNome(agencia
.getNomeAgencia());
atualizarAgenciaBancariaActionForm.setTelefone(agencia
.getNumeroTelefone());
atualizarAgenciaBancariaActionForm.setRamal(agencia
.getNumeroRamal());
atualizarAgenciaBancariaActionForm.setFax(agencia
.getNumeroFax());
atualizarAgenciaBancariaActionForm.setEmail(agencia.getEmail());
atualizarAgenciaBancariaActionForm.setBancoID(agencia
.getBanco().getId().toString());
httpServletRequest.setAttribute("idAgencia", idAgencia);
sessao.setAttribute("agenciaAtualizar", agencia);
}
}
// -------------- bt DESFAZER ---------------
httpServletRequest.setAttribute("colecaoAgenciaTela", sessao
.getAttribute("colecaoAgenciaTipoValorTela"));
sessao.removeAttribute("tipoPesquisaRetorno");
// Remove o endereco informado.
if (removerEndereco != null
&& !removerEndereco.trim().equalsIgnoreCase("")) {
if (sessao.getAttribute("colecaoEnderecos") != null) {
Collection enderecos = (Collection) sessao
.getAttribute("colecaoEnderecos");
if (!enderecos.isEmpty()) {
enderecos.remove(enderecos.iterator().next());
}
}
}
return retorno;
}
}