package gcom.gui.cadastro.tarifasocial;
import gcom.cadastro.cliente.ClienteImovel;
import gcom.cadastro.imovel.Imovel;
import gcom.fachada.Fachada;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import java.util.Collection;
import java.util.List;
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;
/**
* Prepara a p�gina para a exibi��o de Inserir Tarifa Social
*
* @author rodrigo
*/
public class ExibirConsultarTarifaSocialAction extends GcomAction {
/**
* < <Descri��o do m�todo>>
*
* @param actionMapping
* Descri��o do par�metro
* @param actionForm
* Descri��o do par�metro
* @param httpServletRequest
* Descri��o do par�metro
* @param httpServletResponse
* Descri��o do par�metro
* @return Descri��o do retorno
*/
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
ActionForward retorno = actionMapping
.findForward("consultarTarifaSocial");
// Pega uma instancia da sessao
HttpSession sessao = httpServletRequest.getSession(false);
// Pega uma instancia do actionform
ConsultarTarifaSocialActionForm consultarTarifaSocialActionForm = (ConsultarTarifaSocialActionForm) actionForm;
Fachada fachada = Fachada.getInstancia();
String idImovel = consultarTarifaSocialActionForm.getIdImovel();
// Verifica se foi feita uma pesquisa de imovel que retornou para este
// exibir
if (idImovel != null && !idImovel.equals("")) {
Collection clientesImoveis = fachada.pesquisarClienteImovelPeloImovelParaEndereco(
new Integer(idImovel));
if (!clientesImoveis.isEmpty()) {
ClienteImovel clienteImovel = (ClienteImovel) ((List) clientesImoveis)
.get(0);
Imovel imovel = clienteImovel.getImovel();
// if (imovel.getImovelPerfil().getId().intValue() != ImovelPerfil.TARIFA_SOCIAL.intValue()){
// consultarTarifaSocialActionForm.setIdImovel("");
// consultarTarifaSocialActionForm.setInscricaoImovel("");
//
// }
consultarTarifaSocialActionForm.setInscricaoImovel(imovel.getInscricaoFormatada());
// Obter a quantidade de economias do im�vel escolhido
int quantEconomias = Fachada.getInstancia()
.obterQuantidadeEconomias(imovel);
// Seta na sess�o
sessao.setAttribute("imovel", imovel);
sessao.setAttribute("quantEconomias", String
.valueOf(quantEconomias));
Collection colecaoTarifaSocialHelper = null;
if (quantEconomias == 1) {
colecaoTarifaSocialHelper = fachada.pesquisarDadosClienteTarifaSocial(new Integer(idImovel));
} else {
colecaoTarifaSocialHelper = fachada.pesquisarDadosClienteEconomiaTarifaSocial(new Integer(idImovel));
}
if (colecaoTarifaSocialHelper != null && !colecaoTarifaSocialHelper.isEmpty()) {
sessao.setAttribute("colecaoTarifaSocialHelper", colecaoTarifaSocialHelper);
} else {
sessao.removeAttribute("colecaoTarifaSocialHelper");
throw new ActionServletException(
"atencao.imovel.nao.esta.tarifa_social",
null, imovel.getId().toString());
}
} else {
// Matr�cula inexistente
httpServletRequest.setAttribute("imovelNaoEncontrado", true);
consultarTarifaSocialActionForm.setIdImovel("");
consultarTarifaSocialActionForm.setInscricaoImovel("Im�vel Inexistente");
httpServletRequest.setAttribute("nomeCampo", "idImovel");
}
}
return retorno;
}
}