package gcom.gui.cadastro.imovel;
import gcom.cadastro.cliente.ClienteImovelEconomia;
import gcom.cadastro.imovel.ImovelEconomia;
import gcom.fachada.Fachada;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.seguranca.acesso.usuario.Usuario;
import java.util.Collection;
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;
public class InformarEconomiaAction extends GcomAction {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
ActionForward retorno = actionMapping.findForward("telaSucesso");
EconomiaActionForm economiaActionForm = (EconomiaActionForm) actionForm;
// obtendo uma instancia da sessao
HttpSession sessao = httpServletRequest.getSession(false);
Fachada fachada = Fachada.getInstancia();
Collection colecaoImovelEconomiasModificadas = (Collection) sessao
.getAttribute("colecaoImovelEconomiasModificadas");
Collection colecaoClientesImoveisEconomiaRemovidas = (Collection) sessao.getAttribute("colecaoClientesImoveisEconomiaRemovidas");
Collection colecaoRemovidas = (Collection) sessao.getAttribute("colecaoRemovidas");
/** alterado por pedro alexandre dia 18/11/2006
* Recupera o usu�rio logado para passar no met�do de remover quadra
* para verificar se o usu�rio tem abrang�ncia para remover as quadras
* selecionadas.
*/
Usuario usuarioLogado = (Usuario)sessao.getAttribute(Usuario.USUARIO_LOGADO);
int alteracao = 0;
if (colecaoRemovidas != null && !colecaoRemovidas.isEmpty()){
for (Iterator iter = colecaoRemovidas.iterator(); iter.hasNext();) {
ImovelEconomia imovelEconomiaIterator = (ImovelEconomia) iter.next();
/** alterado por pedro alexandre dia 19/11/2006
* alterado para acoplar o esquema de seguran�a de acesso por abrag�ncia */
//fachada.removerImovelEconomia(imovelEconomiaIterator);
fachada.removerImovelEconomia(imovelEconomiaIterator, usuarioLogado);
}
alteracao = 1;
}
if (colecaoImovelEconomiasModificadas != null
&& !colecaoImovelEconomiasModificadas.isEmpty()) {
// Cria variaveis
/** alterado por pedro alexandre dia 19/11/2006
* alterado para acoplar o esquema de seguran�a de acesso por abrag�ncia */
// inseri os clientes imoveis economias e os imoveis economia na
// subcategoria
//fachada.informarImovelEconomia(colecaoImovelEconomiasModificadas);
fachada.informarImovelEconomia(colecaoImovelEconomiasModificadas, usuarioLogado);
alteracao = 1;
}
if (colecaoClientesImoveisEconomiaRemovidas != null && !colecaoClientesImoveisEconomiaRemovidas.isEmpty()){
Iterator iterator = colecaoClientesImoveisEconomiaRemovidas.iterator();
while (iterator.hasNext()) {
ClienteImovelEconomia clienteImovelEconomia = (ClienteImovelEconomia) iterator.next();
fachada.remover(clienteImovelEconomia);
}
}
if (alteracao == 0){
throw new ActionServletException(
"atencao.nao_atualizado_subcategoria_economia");
}
// limpa o form e a sessao
sessao.removeAttribute("colecaoImovelSubCategoriasCadastradas");
sessao.removeAttribute("colecaoImovelEconomiasModificadas");
sessao.removeAttribute("colecaoClientesImoveisEconomiaRemovidas");
economiaActionForm.setCodigoImovelSubCategoria(null);
montarPaginaSucesso(httpServletRequest, "Im�vel "
+ economiaActionForm.getIdImovel()
+ " com economia(s) informada(s) com sucesso.",
"Informar outro(s) Im�vel(eis) Economia(s)",
"exibirInformarEconomiaAction.do?menu=sim");
economiaActionForm.setIdImovel(null);
economiaActionForm.setEnderecoImovel(null);
return retorno;
}
}