package gcom.gui.arrecadacao;
import java.util.Collection;
import java.util.Date;
import gcom.arrecadacao.Arrecadador;
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.ActionServletException;
import gcom.gui.GcomAction;
import gcom.seguranca.acesso.usuario.Usuario;
import gcom.util.Util;
import gcom.util.filtro.ParametroSimples;
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;
/**
* [UC005] Manter Municipio [SB0001]Atualizar Municipio
*
* @author K�ssia Albuquerque
* @date 08/01/2007
*/
public class AtualizarArrecadadorAction extends GcomAction{
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
ActionForward retorno = actionMapping.findForward("telaSucesso");
AtualizarArrecadadorActionForm atualizarArrecadadorActionForm = (AtualizarArrecadadorActionForm) actionForm;
HttpSession sessao = httpServletRequest.getSession(false);
Usuario usuarioLogado = (Usuario) sessao.getAttribute("usuarioLogado");
Arrecadador arrecadador = (Arrecadador) sessao.getAttribute("arrecadador");
Fachada fachada = Fachada.getInstancia();
// Validamos o cliente
FiltroCliente filtro = new FiltroCliente();
arrecadador.setId(new Integer(atualizarArrecadadorActionForm.getId()));
arrecadador.setNumeroInscricaoEstadual(atualizarArrecadadorActionForm.getInscricaoEstadual());
arrecadador.setIndicadorUso(new Short (atualizarArrecadadorActionForm.getIndicadorUso()));
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
throw new ActionServletException("atencao.cliente.inexistente",
null, "Cliente");
}
if(atualizarArrecadadorActionForm.getIdImovel() != null
&& !atualizarArrecadadorActionForm.getIdImovel().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
throw new ActionServletException("atencao.imovel.inexistente",
null, "Imovel");
}
}
String id = atualizarArrecadadorActionForm.getId();
String inscricaoEstadual = atualizarArrecadadorActionForm
.getInscricaoEstadual();
String indicadorUso = atualizarArrecadadorActionForm.getIndicadorUso();
String[] idArrecadador = new String[1];
idArrecadador[0] = arrecadador.getId().toString();
//Atualiza a entidade com os valores do formul�rio
// atualizarArrecadadorActionForm.setFormValues(arrecadador);
// Seta Objeto Cliente para Arrecadador
FiltroCliente filtroCliente = new FiltroCliente();
filtroCliente.adicionarParametro(new ParametroSimples(FiltroCliente.ID, atualizarArrecadadorActionForm.getIdCliente()));
Collection colecaoCliente = fachada.pesquisar(filtroCliente, Cliente.class.getName());
Cliente cliente = (Cliente) Util.retonarObjetoDeColecao(colecaoCliente);
arrecadador.setCliente(cliente);
if(atualizarArrecadadorActionForm.getIdImovel() != null && !atualizarArrecadadorActionForm.getIdImovel().equals("")){
// Seta Objeto Imovel para Arrecadador
FiltroImovel filtroImovel = new FiltroImovel();
filtroImovel.adicionarParametro(new ParametroSimples(FiltroImovel.ID, atualizarArrecadadorActionForm.getIdImovel()));
Collection colecaoImovel = fachada.pesquisar(filtroImovel,Imovel.class.getName());
Imovel imovel = (Imovel) Util.retonarObjetoDeColecao(colecaoImovel);
arrecadador.setImovel(imovel);
}
arrecadador.setId(new Integer(id));
if(!atualizarArrecadadorActionForm.getInscricaoEstadual().trim().equals("") && atualizarArrecadadorActionForm.getInscricaoEstadual() != null){
arrecadador.setNumeroInscricaoEstadual(inscricaoEstadual);
} else {
inscricaoEstadual = null;
arrecadador.setNumeroInscricaoEstadual(inscricaoEstadual);
}
arrecadador.setUltimaAlteracao( new Date() );
arrecadador.setIndicadorUso(new Short(indicadorUso));
//atualiza na base de dados de Arrecadador
fachada.atualizarArrecadador(arrecadador,usuarioLogado);
//Monta a p�gina de sucesso
montarPaginaSucesso(httpServletRequest, "Arrecadador de c�digo "+ atualizarArrecadadorActionForm.getId()+" atualizado com sucesso.", "Realizar outra Manuten��o de Arrecadador",
"exibirFiltrarArrecadadorAction.do?menu=sim");
return retorno;
}
}