package gcom.gui.cadastro.imovel;
import gcom.cadastro.imovel.EntidadeBeneficente;
import gcom.cadastro.imovel.FiltroEntidadeBeneficente;
import gcom.cadastro.sistemaparametro.SistemaParametro;
import gcom.fachada.Fachada;
import gcom.faturamento.debito.DebitoTipo;
import gcom.faturamento.debito.FiltroDebitoTipo;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.seguranca.acesso.usuario.Usuario;
import gcom.util.ConstantesSistema;
import gcom.util.Util;
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;
/**
* [UC0389] - Inserir Im�vel Doa��o Action respons�vel pela pre-exibi��o da
* pagina de inserir ImovelDoacao
*
* @author C�sar Ara�jo
* @created 22 de agosto de 2006
*/
public class ExibirInserirImovelDoacaoAction extends GcomAction {
/**
* Description of the Method
*
* @param actionMapping
* Description of the Parameter
* @param actionForm
* Description of the Parameter
* @param httpServletRequest
* Description of the Parameter
* @param httpServletResponse
* Description of the Parameter
* @return Description of the Return Value
*/
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
/*** Declara e inicializa vari�veis ***/
ActionForward retorno = null;
Fachada fachada = null;
HttpSession sessao = null;
ImovelDoacaoActionForm imovelDoacaoActionForm = null;
FiltroEntidadeBeneficente filtroEntidadeBeneficente = null;
/*** Procedimentos b�sicos para execu��o do m�todo ***/
retorno = actionMapping.findForward("inserirImovelDoacao");
imovelDoacaoActionForm = (ImovelDoacaoActionForm) actionForm;
fachada = Fachada.getInstancia();
sessao = httpServletRequest.getSession(false);
/*** Define filtro pra pesquisar e alimenta a colecao de entidade beneficente ***/
//----------------------------------------------------------------------
// CRC933
// Autor: Yara T. Souza
// Data : 06/01/2009
//----------------------------------------------------------------------
Collection<EntidadeBeneficente> colecaoEntidadeBeneficente = null;
Usuario usuarioLogado = (Usuario) sessao.getAttribute("usuarioLogado");
filtroEntidadeBeneficente = new FiltroEntidadeBeneficente();
filtroEntidadeBeneficente.adicionarCaminhoParaCarregamentoEntidade("cliente");
filtroEntidadeBeneficente.adicionarParametro(new ParametroSimples(FiltroEntidadeBeneficente.ID_EMPRESA,
usuarioLogado.getEmpresa().getId()));
colecaoEntidadeBeneficente = fachada.pesquisar(filtroEntidadeBeneficente,
EntidadeBeneficente.class.getName());
/*** Seta colecao de entidade beneficente na sess�o ***/
if(colecaoEntidadeBeneficente.size()>0){
sessao.setAttribute("colecaoEntidadeBeneficente", colecaoEntidadeBeneficente);
}else{
filtroEntidadeBeneficente = new FiltroEntidadeBeneficente();
filtroEntidadeBeneficente.adicionarCaminhoParaCarregamentoEntidade("cliente");
colecaoEntidadeBeneficente = fachada.pesquisar(filtroEntidadeBeneficente, EntidadeBeneficente.class.getName());
sessao.setAttribute("colecaoEntidadeBeneficente", colecaoEntidadeBeneficente);
}
/*** Seta o valor sugerido com o valor que vem da tabela debito tipo ***/
String qtdParcela = "";
SistemaParametro sistemaParametro = this.getFachada().pesquisarParametrosDoSistema();
String idEntidadeBeneficiente = httpServletRequest.getParameter("idEntidadeSelecionada");
if ((idEntidadeBeneficiente != null) && (!idEntidadeBeneficiente.equals(""))){
filtroEntidadeBeneficente = new FiltroEntidadeBeneficente();
filtroEntidadeBeneficente.adicionarParametro(
new ParametroSimples(FiltroEntidadeBeneficente.ID,
new Integer(idEntidadeBeneficiente)));
filtroEntidadeBeneficente.adicionarCaminhoParaCarregamentoEntidade("cliente");
colecaoEntidadeBeneficente =
fachada.pesquisar(filtroEntidadeBeneficente, EntidadeBeneficente.class.getName());
if (colecaoEntidadeBeneficente != null && colecaoEntidadeBeneficente.size() > 0 ){
EntidadeBeneficente entidadeBeneficiente =
(EntidadeBeneficente)Util.retonarObjetoDeColecao(colecaoEntidadeBeneficente);
if (entidadeBeneficiente.getAnoMesContratoFinal() != null &&
!entidadeBeneficiente.getAnoMesContratoFinal().equals("") &&
!Util.compararAnoMesReferencia(entidadeBeneficiente.getAnoMesContratoFinal(),
sistemaParametro.getAnoMesFaturamento(),"<") ) {
qtdParcela = Util.retornaQuantidadeMeses(
entidadeBeneficiente.getAnoMesContratoFinal(),
sistemaParametro.getAnoMesFaturamento()).toString();
}
Collection<DebitoTipo> colecaoDebitoTipo = null;
FiltroDebitoTipo filtroDebitoTipo = new FiltroDebitoTipo();
filtroDebitoTipo.adicionarParametro(new ParametroSimples(FiltroDebitoTipo.ID, entidadeBeneficiente.getDebitoTipo().getId()));
colecaoDebitoTipo =
fachada.pesquisar(filtroDebitoTipo, DebitoTipo.class.getName());
if (colecaoDebitoTipo.size() > 0){
DebitoTipo debitoTipo = (DebitoTipo)Util.retonarObjetoDeColecao(colecaoDebitoTipo);
if(debitoTipo.getValorSugerido() != null){
imovelDoacaoActionForm.setValorDoacao(debitoTipo.getValorSugerido().toString().replace(".", ","));
imovelDoacaoActionForm.setQuantidadeParcela(qtdParcela);
httpServletRequest.setAttribute("qtdParcelaMaxima",qtdParcela);
httpServletRequest.setAttribute("existeAnoMesContratoFinal",true);
}
}
}
}else{
imovelDoacaoActionForm.setValorDoacao("");
imovelDoacaoActionForm.setQuantidadeParcela("");
}
/*** Valida se a cole��o est� preenchida ***/
if (colecaoEntidadeBeneficente != null && colecaoEntidadeBeneficente.size() == 0) {
throw new ActionServletException("atencao.naocadastrado", null, "Entidade Beneficente");
}
//----------------------------------------------------------------------
/*** Avalia se o c�digo do im�vel digitado na p�gina � v�lido ***/
String idImovel = (String) imovelDoacaoActionForm.getIdImovel();
if (idImovel != null && !idImovel.trim().equals("")) {
String imovelEncontrado = fachada.pesquisarInscricaoImovel(new Integer(idImovel));
if (imovelEncontrado != null && !imovelEncontrado.equalsIgnoreCase("")) {
imovelDoacaoActionForm.setIdImovel(idImovel);
imovelDoacaoActionForm.setInscricaoImovel(imovelEncontrado);
httpServletRequest.setAttribute("corInscricao", "#000000");
} else {
httpServletRequest.setAttribute("corInscricao", "#ff0000");
imovelDoacaoActionForm.setInscricaoImovel(ConstantesSistema.CODIGO_IMOVEL_INEXISTENTE);
}
}
return retorno;
}
}