package gcom.gui.arrecadacao;
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.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;
/**
* Descri��o da classe
*
* @author Marcio Roberto
* @date 25/01/2007
*/
public class InserirArrecadadorAction extends GcomAction {
/**
* Este caso de uso permite a inclus�o de um novo Arrecadador
*
* [UC0381] Inserir Arrecadador
*
*
* @author Marcio Roberto
* @date 25/01/2007
*
* @param actionMapping
* @param actionForm
* @param httpServletRequest
* @param httpServletResponse
* @return
*/
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
ActionForward retorno = actionMapping.findForward("telaSucesso");
InserirArrecadadorActionForm inserirArrecadadorActionForm = (InserirArrecadadorActionForm) actionForm;
HttpSession sessao = httpServletRequest.getSession(false);
Fachada fachada = Fachada.getInstancia();
sessao.setAttribute("caminhoRetornoVoltar",
"/gsan/exibirInserirArrecadadorAction.do");
Usuario usuario = (Usuario) sessao.getAttribute("usuarioLogado");
// Validamos o cliente
FiltroCliente filtro = new FiltroCliente();
filtro.adicionarParametro( new ParametroSimples(
FiltroCliente.ID, inserirArrecadadorActionForm.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");
}
String inscricaoEstadual = inserirArrecadadorActionForm.getInscricaoEstadual();
//Inscricao Estadual
if(!inserirArrecadadorActionForm.getInscricaoEstadual().trim().equals("") && inserirArrecadadorActionForm.getInscricaoEstadual() != null){
inserirArrecadadorActionForm.setInscricaoEstadual(inscricaoEstadual);
} else {
inscricaoEstadual = null;
inserirArrecadadorActionForm.setInscricaoEstadual(inscricaoEstadual);
}
if(inserirArrecadadorActionForm.getIdImovel() != null &&
!inserirArrecadadorActionForm.getIdImovel().equals("")){
// Validamos o imovel
FiltroImovel filtroImovel = new FiltroImovel();
filtroImovel.adicionarParametro( new ParametroSimples(
FiltroImovel.ID, inserirArrecadadorActionForm.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");
}
}
Integer idArrecadador = fachada.inserirArrecadador(
inserirArrecadadorActionForm.getIdAgente(),
inserirArrecadadorActionForm.getIdCliente(),
inserirArrecadadorActionForm.getInscricaoEstadual(),
inserirArrecadadorActionForm.getIdImovel(), usuario);
String idRegistroAtualizacao = idArrecadador.toString();
sessao.setAttribute("idRegistroAtualizacao",idRegistroAtualizacao);
// Monta a p�gina de sucesso
montarPaginaSucesso(httpServletRequest, "Arrecadador de c�digo " + idArrecadador
+ " inserido com sucesso.", "Inserir outro Arrecadador",
"exibirInserirArrecadadorAction.do?menu=sim",
"exibirAtualizarArrecadadorAction.do?idRegistroInseridoAtualizar="
+ idArrecadador, "Atualizar Arrecadador Inserido");
sessao.removeAttribute("InserirArrecadadorActionForm");
return retorno;
}
}