package gcom.gui.cadastro.imovel;
import gcom.cadastro.cliente.Cliente;
import gcom.cadastro.cliente.FiltroCliente;
import gcom.cadastro.imovel.Imovel;
import gcom.cobranca.CobrancaSituacao;
import gcom.cobranca.FiltroCobrancaSituacao;
import gcom.fachada.Fachada;
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 java.util.Date;
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 Administrador
*/
public class InformarImovelSituacaoCobrancaAction extends GcomAction {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
ActionForward retorno = actionMapping.findForward("telaSucesso");
InserirImovelSituacaoCobrancaActionForm form = (InserirImovelSituacaoCobrancaActionForm) actionForm;
String idImovel = null;
String idSituacaoCobranca = null;
String idCliente = null;
Date dataImplantacao = null;
Integer anoMesInicio = null;
Integer anoMesFim = null;
Imovel imovel = new Imovel();
CobrancaSituacao cobrancaSituacao = new CobrancaSituacao();
Cliente cliente = new Cliente();
if (form.getCodigoImovel() != null &&
!form.getCodigoImovel().equalsIgnoreCase("")){
idImovel = form.getCodigoImovel();
imovel.setId(new Integer(idImovel));
}
Cliente clienteEscritorio = null;
Cliente clienteAdvogado = null;
if (form.getSituacaoCobranca() != null && !form.getSituacaoCobranca().equalsIgnoreCase("")){
idSituacaoCobranca = form.getSituacaoCobranca();
cobrancaSituacao.setId(new Integer(idSituacaoCobranca));
FiltroCobrancaSituacao filtroCobrancaSituacao = new FiltroCobrancaSituacao();
filtroCobrancaSituacao.adicionarParametro(new ParametroSimples(
FiltroCobrancaSituacao.ID, idSituacaoCobranca));
filtroCobrancaSituacao.adicionarCaminhoParaCarregamentoEntidade("contaMotivoRevisao");
filtroCobrancaSituacao.adicionarCaminhoParaCarregamentoEntidade("profissao");
Collection colecaoCobrancaSituacao = Fachada.getInstancia().pesquisar(
filtroCobrancaSituacao, CobrancaSituacao.class.getName());
CobrancaSituacao cobrancaSituacao2 = (CobrancaSituacao) colecaoCobrancaSituacao.iterator().next();
// Verificando se o indicador de exigencia de advogado for igual a 1 � necessario
// informar o advogado ou escritorio de advocacia.
if ( cobrancaSituacao2.getIndicadorExigenciaAdvogado() != null &&
cobrancaSituacao2.getIndicadorExigenciaAdvogado().toString().equals(ConstantesSistema.SIM.toString()) ) {
String cobrancaSituacaoDescricao = cobrancaSituacao2.getDescricao();
if ((form.getIdEscritorio() == null || form.getIdEscritorio().equals(""))&&
(form.getIdAdvogado() == null || form.getIdAdvogado().equals(""))){
throw new ActionServletException("atencao.situacao_cobranca_exige_advogado_ou_escritorio_advocacia", null, cobrancaSituacaoDescricao);
}else{
clienteEscritorio = setClienteEscritorio(form, clienteEscritorio);
clienteAdvogado = setClienteAdvogado(form, clienteAdvogado);
}
}else{
clienteEscritorio = setClienteEscritorio(form, clienteEscritorio);
clienteAdvogado = setClienteAdvogado(form, clienteAdvogado);
}
if ( cobrancaSituacao2.getProfissao() != null ) {
cobrancaSituacao.setProfissao(cobrancaSituacao2.getProfissao());
}
if ( cobrancaSituacao2.getRamoAtividade() != null ) {
cobrancaSituacao.setRamoAtividade(cobrancaSituacao2.getRamoAtividade());
}
if (cobrancaSituacao2.getContaMotivoRevisao() != null){
if (form.getAnoMesReferenciaInicio() != null &&
!form.getAnoMesReferenciaInicio().equalsIgnoreCase("")){
anoMesInicio = Util.formatarMesAnoComBarraParaAnoMes(
form.getAnoMesReferenciaInicio());
} else {
throw new ActionServletException(
"atencao.informe_anomes_referencia_debitos");
}
if (form.getAnoMesReferenciaFim() != null &&
!form.getAnoMesReferenciaFim().equalsIgnoreCase("")){
anoMesFim = Util.formatarMesAnoComBarraParaAnoMes(
form.getAnoMesReferenciaFim());
} else {
throw new ActionServletException(
"atencao.informe_anomes_referencia_debitos");
}
}
}
if (form.getIdClienteAlvo() != null &&
!form.getIdClienteAlvo().equalsIgnoreCase("")){
idCliente = form.getIdClienteAlvo();
cliente.setId(new Integer(idCliente));
}
if (form.getDataImplantacao() != null &&
!form.getDataImplantacao().equalsIgnoreCase("")){
dataImplantacao = Util.converteStringParaDate(
form.getDataImplantacao());
}
if (form.getAnoMesReferenciaInicio() != null &&
!form.getAnoMesReferenciaInicio().equalsIgnoreCase("")){
anoMesInicio = Util.formatarMesAnoComBarraParaAnoMes(
form.getAnoMesReferenciaInicio());
}
if (form.getAnoMesReferenciaFim() != null &&
!form.getAnoMesReferenciaFim().equalsIgnoreCase("")){
anoMesFim = Util.formatarMesAnoComBarraParaAnoMes(
form.getAnoMesReferenciaFim());
if (anoMesFim < anoMesInicio){
throw new ActionServletException(
"atencao.ano_mes_inicio_menor_que_final");
}
}
HttpSession sessao = httpServletRequest.getSession(false);
Usuario usuarioLogado = (Usuario)sessao.getAttribute(Usuario.USUARIO_LOGADO);
if ( clienteEscritorio != null && clienteAdvogado != null ){
throw new ActionServletException(
"atencao.informar_escritorio_advogado");
}
// Acrescimo de 2 argumentos do tipo cliente (Kassia Albuquerque)
Fachada.getInstancia().inserirImovelSitucaoCobranca(
imovel, cobrancaSituacao, cliente, clienteEscritorio,
clienteAdvogado, dataImplantacao, anoMesInicio, anoMesFim, usuarioLogado);
montarPaginaSucesso(httpServletRequest, "Situa��o de Cobran�a do Imovel inserida com sucesso.",
"Informar outra situa��o de cobran�a do imovel",
"exibirInformarImovelSituacaoCobrancaAction.do?menu=sim");
return retorno;
}
// VERIFICANDO SE O CLIENTE EXISTE.
// (Kassia Albuquerque)
private Cliente setClienteAdvogado(InserirImovelSituacaoCobrancaActionForm form , Cliente clienteAdvogado) {
String idAdvogado= form.getIdAdvogado();
if (idAdvogado!=null && !idAdvogado.equalsIgnoreCase("")){
FiltroCliente filtroClienteAdvogado = new FiltroCliente();
filtroClienteAdvogado.adicionarCaminhoParaCarregamentoEntidade("clienteTipo");
filtroClienteAdvogado.adicionarCaminhoParaCarregamentoEntidade("profissao");
filtroClienteAdvogado.adicionarParametro(new ParametroSimples(FiltroCliente.ID,idAdvogado));
Collection colecaoClienteAdvogado = Fachada.getInstancia().pesquisar(filtroClienteAdvogado,Cliente.class.getName());
Cliente clienteAdvogado2 = (Cliente)colecaoClienteAdvogado.iterator().next();
if (clienteAdvogado2 == null){
throw new ActionServletException("atencao.advogado_inexistente");
}else{
clienteAdvogado = new Cliente();
clienteAdvogado = clienteAdvogado2;
}
}
return clienteAdvogado;
}
// VERIFICANDO SE O CLIENTE EXISTE.
// (Kassia Albuquerque)
private Cliente setClienteEscritorio(InserirImovelSituacaoCobrancaActionForm form , Cliente clienteEscritorio) {
String idEscritorio = form.getIdEscritorio();
if (idEscritorio!=null && !idEscritorio.equalsIgnoreCase("")){
FiltroCliente filtroClienteEscritorio = new FiltroCliente();
filtroClienteEscritorio.adicionarCaminhoParaCarregamentoEntidade("clienteTipo");
filtroClienteEscritorio.adicionarCaminhoParaCarregamentoEntidade("ramoAtividade");
filtroClienteEscritorio.adicionarParametro(new ParametroSimples(FiltroCliente.ID,idEscritorio));
Collection colecaoClienteEscritorio = Fachada.getInstancia().pesquisar(filtroClienteEscritorio,Cliente.class.getName());
Cliente clienteEscritorio2 = (Cliente)colecaoClienteEscritorio.iterator().next();
if (clienteEscritorio2 == null){
throw new ActionServletException("atencao.escritorio_inexistente");
}else{
clienteEscritorio = new Cliente();
clienteEscritorio = clienteEscritorio2;
}
}
return clienteEscritorio;
}
}