package gcom.gui.cobranca;
import java.util.Collection;
import gcom.atendimentopublico.ligacaoagua.FiltroLigacaoAguaSituacao;
import gcom.atendimentopublico.ligacaoagua.LigacaoAguaSituacao;
import gcom.atendimentopublico.ligacaoesgoto.FiltroLigacaoEsgotoSituacao;
import gcom.atendimentopublico.ligacaoesgoto.LigacaoEsgotoSituacao;
import gcom.atendimentopublico.ordemservico.FiltroServicoTipo;
import gcom.atendimentopublico.ordemservico.ServicoTipo;
import gcom.cobranca.CobrancaAcao;
import gcom.cobranca.CobrancaCriterio;
import gcom.cobranca.DocumentoTipo;
import gcom.cobranca.FiltroCobrancaAcao;
import gcom.cobranca.FiltroCobrancaCriterio;
import gcom.cobranca.FiltroDocumentoTipo;
import gcom.fachada.Fachada;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.util.ConstantesSistema;
import gcom.util.Util;
import gcom.util.filtro.ParametroSimples;
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;
/**
* Pre- processamento para atualiza o criterio da cobran�a
*
* @author S�vio Luiz
* @date 06/11/2006
*/
public class ExibirAtualizarAcaoCobrancaAction extends GcomAction {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
// Seta o retorno
ActionForward retorno = actionMapping
.findForward("atualizarAcaoCobranca");
HttpSession sessao = httpServletRequest.getSession(false);
Fachada fachada = Fachada.getInstancia();
// caso seja a primeira vez
if (httpServletRequest.getParameter("menu") != null) {
sessao.removeAttribute("voltar");
}
AcaoCobrancaAtualizarActionForm acaoCobrancaAtualizarActionForm = (AcaoCobrancaAtualizarActionForm) actionForm;
if ((httpServletRequest.getParameter("idRegistroAtualizar") != null && !httpServletRequest
.getParameter("idRegistroAtualizar").equals(""))
|| (sessao.getAttribute("cobrancaAcao") != null && !sessao
.getAttribute("cobrancaAcao").equals(""))) {
if (httpServletRequest.getParameter("objetoConsulta") == null) {
CobrancaAcao cobrancaAcao = null;
if (httpServletRequest.getParameter("idRegistroAtualizar") != null
&& !httpServletRequest.getParameter(
"idRegistroAtualizar").equals("")) {
String idAcaoCobranca = httpServletRequest
.getParameter("idRegistroAtualizar");
FiltroCobrancaAcao filtroCobrancaAcao = new FiltroCobrancaAcao();
filtroCobrancaAcao.adicionarParametro(new ParametroSimples(
FiltroCobrancaAcao.ID, idAcaoCobranca));
filtroCobrancaAcao.adicionarCaminhoParaCarregamentoEntidade("cobrancaCriterio");
filtroCobrancaAcao.adicionarCaminhoParaCarregamentoEntidade("servicoTipo");
filtroCobrancaAcao.adicionarCaminhoParaCarregamentoEntidade("documentoTipo");
filtroCobrancaAcao.adicionarCaminhoParaCarregamentoEntidade("cobrancaAcaoPredecessora");
filtroCobrancaAcao.adicionarCaminhoParaCarregamentoEntidade("ligacaoEsgotoSituacao");
filtroCobrancaAcao.adicionarCaminhoParaCarregamentoEntidade("ligacaoAguaSituacao");
filtroCobrancaAcao.adicionarCaminhoParaCarregamentoEntidade("cobrancaAcaoPredecessora.documentoTipo");
filtroCobrancaAcao.adicionarCaminhoParaCarregamentoEntidade("cobrancaAcaoPredecessora.ligacaoAguaSituacao");
filtroCobrancaAcao.adicionarCaminhoParaCarregamentoEntidade("cobrancaAcaoPredecessora.ligacaoEsgotoSituacao");
filtroCobrancaAcao.adicionarCaminhoParaCarregamentoEntidade("cobrancaAcaoPredecessora.cobrancaCriterio");
Collection colecaoCobrancaAcao = fachada.pesquisar(
filtroCobrancaAcao, CobrancaAcao.class.getName());
if (colecaoCobrancaAcao != null
&& !colecaoCobrancaAcao.isEmpty()) {
cobrancaAcao = (CobrancaAcao) Util
.retonarObjetoDeColecao(colecaoCobrancaAcao);
}
sessao.setAttribute("voltar", "manter");
} else {
cobrancaAcao = (CobrancaAcao) sessao
.getAttribute("cobrancaAcao");
sessao.setAttribute("voltar", "filtrar");
}
if (cobrancaAcao != null && !cobrancaAcao.equals("")) {
if (cobrancaAcao.getDescricaoCobrancaAcao() != null) {
acaoCobrancaAtualizarActionForm
.setDescricaoAcao(cobrancaAcao
.getDescricaoCobrancaAcao());
} else {
acaoCobrancaAtualizarActionForm.setDescricaoAcao("");
}
if (cobrancaAcao.getCobrancaCriterio() != null) {
acaoCobrancaAtualizarActionForm
.setIdCobrancaCriterio(""
+ cobrancaAcao.getCobrancaCriterio()
.getId());
acaoCobrancaAtualizarActionForm
.setDescricaoCobrancaCriterio(cobrancaAcao
.getCobrancaCriterio()
.getDescricaoCobrancaCriterio());
} else {
acaoCobrancaAtualizarActionForm
.setIdCobrancaCriterio("");
acaoCobrancaAtualizarActionForm
.setDescricaoCobrancaCriterio("");
}
if (cobrancaAcao.getServicoTipo() != null) {
acaoCobrancaAtualizarActionForm.setIdServicoTipo(""
+ cobrancaAcao.getServicoTipo().getId());
acaoCobrancaAtualizarActionForm
.setDescricaoServicoTipo(cobrancaAcao
.getServicoTipo().getDescricao());
} else {
acaoCobrancaAtualizarActionForm.setIdServicoTipo("");
acaoCobrancaAtualizarActionForm.setDescricaoServicoTipo("");
}
if (cobrancaAcao.getIndicadorObrigatoriedade() != null) {
acaoCobrancaAtualizarActionForm.setIcAcaoObrigatoria(""
+ cobrancaAcao.getIndicadorObrigatoriedade());
} else {
acaoCobrancaAtualizarActionForm.setIcAcaoObrigatoria("");
}
if (cobrancaAcao.getIndicadorAcrescimoImpontualidade() != null) {
acaoCobrancaAtualizarActionForm
.setIcAcrescimosImpontualidade(""
+ cobrancaAcao
.getIndicadorAcrescimoImpontualidade());
} else {
acaoCobrancaAtualizarActionForm.setIcAcrescimosImpontualidade("");
}
if (cobrancaAcao.getIndicadorCronograma() != null) {
acaoCobrancaAtualizarActionForm
.setIcCompoeCronograma(""
+ cobrancaAcao.getIndicadorCronograma());
} else {
acaoCobrancaAtualizarActionForm
.setIcCompoeCronograma("");
}
if (cobrancaAcao.getIndicadorCobrancaDebACobrar() != null) {
acaoCobrancaAtualizarActionForm
.setIcDebitosACobrar(""
+ cobrancaAcao
.getIndicadorCobrancaDebACobrar());
} else {
acaoCobrancaAtualizarActionForm.setIcDebitosACobrar("");
}
if (cobrancaAcao.getIndicadorBoletim() != null) {
acaoCobrancaAtualizarActionForm
.setIcEmitirBoletimCadastro(""
+ cobrancaAcao.getIndicadorBoletim());
} else {
acaoCobrancaAtualizarActionForm.setIcEmitirBoletimCadastro("");
}
if (cobrancaAcao.getIndicadorGeracaoTaxa() != null) {
acaoCobrancaAtualizarActionForm.setIcGeraTaxa(""
+ cobrancaAcao.getIndicadorGeracaoTaxa());
} else {
acaoCobrancaAtualizarActionForm.setIcGeraTaxa("");
}
if (cobrancaAcao.getIndicadorDebito() != null) {
acaoCobrancaAtualizarActionForm
.setIcImoveisSemDebitos(""
+ cobrancaAcao.getIndicadorDebito());
} else {
acaoCobrancaAtualizarActionForm.setIcImoveisSemDebitos("");
}
if (cobrancaAcao.getIndicadorRepeticao() != null) {
acaoCobrancaAtualizarActionForm.setIcRepetidaCiclo(""
+ cobrancaAcao.getIndicadorRepeticao());
} else {
acaoCobrancaAtualizarActionForm.setIcRepetidaCiclo("");
}
if (cobrancaAcao.getIndicadorSuspensaoAbastecimento() != null) {
acaoCobrancaAtualizarActionForm
.setIcSuspensaoAbastecimento(""
+ cobrancaAcao
.getIndicadorSuspensaoAbastecimento());
} else {
acaoCobrancaAtualizarActionForm.setIcSuspensaoAbastecimento("");
}
if (cobrancaAcao.getCobrancaAcaoPredecessora() != null &&
!cobrancaAcao.getCobrancaAcaoPredecessora().equals("")) {
acaoCobrancaAtualizarActionForm
.setIdAcaoPredecessora(""
+ cobrancaAcao
.getCobrancaAcaoPredecessora()
.getId());
} else {
acaoCobrancaAtualizarActionForm.setIdAcaoPredecessora("");
}
if (cobrancaAcao.getLigacaoAguaSituacao() != null) {
acaoCobrancaAtualizarActionForm
.setIdSituacaoLigacaoAgua(""
+ cobrancaAcao.getLigacaoAguaSituacao()
.getId());
} else {
acaoCobrancaAtualizarActionForm.setIdSituacaoLigacaoAgua("");
}
if (cobrancaAcao.getLigacaoEsgotoSituacao() != null) {
acaoCobrancaAtualizarActionForm
.setIdSituacaoLigacaoEsgoto(""
+ cobrancaAcao
.getLigacaoEsgotoSituacao()
.getId());
} else {
acaoCobrancaAtualizarActionForm.setIdSituacaoLigacaoEsgoto("");
}
if (cobrancaAcao.getDocumentoTipo() != null) {
acaoCobrancaAtualizarActionForm
.setIdTipoDocumentoGerado(""
+ cobrancaAcao.getDocumentoTipo()
.getId());
} else {
acaoCobrancaAtualizarActionForm.setIdTipoDocumentoGerado("");
}
if (cobrancaAcao.getNumeroDiasMinimoAcaoPrecedente() != null) {
acaoCobrancaAtualizarActionForm
.setNumeroDiasEntreAcoes(""
+ cobrancaAcao
.getNumeroDiasMinimoAcaoPrecedente());
} else {
acaoCobrancaAtualizarActionForm.setNumeroDiasEntreAcoes("");
}
if (cobrancaAcao.getNumeroDiasValidade() != null) {
acaoCobrancaAtualizarActionForm
.setNumeroDiasValidade(""
+ cobrancaAcao.getNumeroDiasValidade());
} else {
acaoCobrancaAtualizarActionForm.setNumeroDiasValidade("");
}
if (cobrancaAcao.getOrdemRealizacao() != null) {
acaoCobrancaAtualizarActionForm.setOrdemCronograma(""
+ cobrancaAcao.getOrdemRealizacao());
} else {
acaoCobrancaAtualizarActionForm.setOrdemCronograma("");
}
if (cobrancaAcao.getNumeroDiasVencimento() != null) {
acaoCobrancaAtualizarActionForm.setNumeroDiasVencimento(""
+ cobrancaAcao.getNumeroDiasVencimento());
} else {
acaoCobrancaAtualizarActionForm.setNumeroDiasVencimento("");
}
if (cobrancaAcao.getIndicadorMetasCronograma() != null) {
acaoCobrancaAtualizarActionForm.setIcMetasCronograma(""
+ cobrancaAcao.getIndicadorMetasCronograma());
} else {
acaoCobrancaAtualizarActionForm.setIcMetasCronograma("");
}
if (cobrancaAcao.getIndicadorOrdenamentoCronograma() != null) {
acaoCobrancaAtualizarActionForm.setIcOrdenamentoCronograma(""
+ cobrancaAcao.getIndicadorOrdenamentoCronograma());
} else {
acaoCobrancaAtualizarActionForm.setIcOrdenamentoCronograma("");
}
if (cobrancaAcao.getIndicadorOrdenamentoEventual() != null) {
acaoCobrancaAtualizarActionForm.setIcOrdenamentoEventual(""
+ cobrancaAcao.getIndicadorOrdenamentoEventual());
} else {
acaoCobrancaAtualizarActionForm.setIcOrdenamentoEventual("");
}
if (cobrancaAcao.getIndicadorDebitoInterfereAcao() != null) {
acaoCobrancaAtualizarActionForm.setIcDebitoInterfereAcao(""
+ cobrancaAcao.getIndicadorDebitoInterfereAcao());
} else {
acaoCobrancaAtualizarActionForm.setIcDebitoInterfereAcao("");
}
if (cobrancaAcao.getNumeroDiasRemuneracaoTerceiro() != null) {
acaoCobrancaAtualizarActionForm.setNumeroDiasRemuneracaoTerceiro(""
+ cobrancaAcao.getNumeroDiasRemuneracaoTerceiro());
} else {
acaoCobrancaAtualizarActionForm.setNumeroDiasRemuneracaoTerceiro("");
}
if(cobrancaAcao.getIndicadorCreditosARealizar()!=null){
acaoCobrancaAtualizarActionForm.setIcCreditosARealizar(
cobrancaAcao.getIndicadorCreditosARealizar().toString());
}else{
acaoCobrancaAtualizarActionForm.setIcCreditosARealizar("");
}
if(cobrancaAcao.getIndicadorNotasPromissoria()!=null){
acaoCobrancaAtualizarActionForm.setIcNotasPromissoria(
cobrancaAcao.getIndicadorNotasPromissoria().toString());
}else{
acaoCobrancaAtualizarActionForm.setIcNotasPromissoria("");
}
if(cobrancaAcao.getIndicadorOrdenarMaiorValor()!=null){
acaoCobrancaAtualizarActionForm.setIcOrdenarMaiorValor(
cobrancaAcao.getIndicadorOrdenarMaiorValor().toString());
}else{
acaoCobrancaAtualizarActionForm.setIcOrdenarMaiorValor("");
}
if(cobrancaAcao.getIndicadorValidarItem()!=null){
acaoCobrancaAtualizarActionForm.setIcValidarItem(
cobrancaAcao.getIndicadorValidarItem().toString());
}else{
acaoCobrancaAtualizarActionForm.setIcValidarItem("");
}
}
// faz as pesquisas obrigat�rias
pesquisasObrigatorias(fachada, sessao);
// seta o objeto na sess�o para ser atualizado
sessao.setAttribute("cobrancaAcao", cobrancaAcao);
}
}
// pesquisa os dados do enter
pesquisarEnter(acaoCobrancaAtualizarActionForm, httpServletRequest,
fachada);
return retorno;
}
private void pesquisarEnter(
AcaoCobrancaAtualizarActionForm acaoCobrancaAtualizarActionForm,
HttpServletRequest httpServletRequest, Fachada fachada) {
// pesquisa enter de crit�rio de cobran�a
if (acaoCobrancaAtualizarActionForm.getIdCobrancaCriterio() != null
&& !acaoCobrancaAtualizarActionForm.getIdCobrancaCriterio()
.equals("")
&& (acaoCobrancaAtualizarActionForm
.getDescricaoCobrancaCriterio() == null || acaoCobrancaAtualizarActionForm
.getDescricaoCobrancaCriterio().equals(""))) {
FiltroCobrancaCriterio filtroCobrancaCriterio = new FiltroCobrancaCriterio();
try {
filtroCobrancaCriterio.adicionarParametro(new ParametroSimples(
FiltroCobrancaCriterio.ID, new Integer(
acaoCobrancaAtualizarActionForm
.getIdCobrancaCriterio())));
} catch (NumberFormatException ex) {
throw new ActionServletException(
"atencao.campo_texto.numero_obrigatorio", null,
"Crit�rio de Cobran�a");
}
filtroCobrancaCriterio
.setCampoOrderBy(FiltroCobrancaCriterio.DESCRICAO_COBRANCA_CRITERIO);
Collection colecaoCobrancaCriterio = fachada.pesquisar(
filtroCobrancaCriterio, CobrancaCriterio.class.getName());
if (colecaoCobrancaCriterio != null
&& !colecaoCobrancaCriterio.isEmpty()) {
CobrancaCriterio cobrancaCriterio = (CobrancaCriterio) Util
.retonarObjetoDeColecao(colecaoCobrancaCriterio);
acaoCobrancaAtualizarActionForm
.setDescricaoCobrancaCriterio(cobrancaCriterio
.getDescricaoCobrancaCriterio());
} else {
acaoCobrancaAtualizarActionForm.setIdCobrancaCriterio("");
acaoCobrancaAtualizarActionForm
.setDescricaoCobrancaCriterio("COBRAN�A CRIT�RIO INEXISTENTE");
}
}
// pesquisa enter de tipo de servi�o
if (acaoCobrancaAtualizarActionForm.getIdServicoTipo() != null
&& !acaoCobrancaAtualizarActionForm.getIdServicoTipo().equals(
"")
&& (acaoCobrancaAtualizarActionForm.getDescricaoServicoTipo() == null || acaoCobrancaAtualizarActionForm
.getDescricaoServicoTipo().equals(""))) {
FiltroServicoTipo filtroServicoTipo = new FiltroServicoTipo();
try {
filtroServicoTipo.adicionarParametro(new ParametroSimples(
FiltroServicoTipo.ID, new Integer(
acaoCobrancaAtualizarActionForm
.getIdServicoTipo())));
} catch (NumberFormatException ex) {
throw new ActionServletException(
"atencao.campo_texto.numero_obrigatorio", null,
"Servi�o Tipo");
}
filtroServicoTipo.setCampoOrderBy(FiltroServicoTipo.DESCRICAO);
Collection colecaoServicoTipo = fachada.pesquisar(
filtroServicoTipo, ServicoTipo.class.getName());
if (colecaoServicoTipo != null && !colecaoServicoTipo.isEmpty()) {
ServicoTipo servicoTipo = (ServicoTipo) Util
.retonarObjetoDeColecao(colecaoServicoTipo);
acaoCobrancaAtualizarActionForm
.setDescricaoServicoTipo(servicoTipo.getDescricao());
} else {
acaoCobrancaAtualizarActionForm.setIdServicoTipo("");
acaoCobrancaAtualizarActionForm
.setDescricaoServicoTipo("TIPO DE SERVI�O INEXISTENTE");
}
}
}
private void pesquisasObrigatorias(Fachada fachada, HttpSession sessao) {
// pesquisa as a��es predecessoras
FiltroCobrancaAcao filtroCobrancaAcao = new FiltroCobrancaAcao();
filtroCobrancaAcao.setCampoOrderBy(FiltroCobrancaAcao.DESCRICAO);
filtroCobrancaAcao.adicionarParametro(new ParametroSimples(
FiltroCobrancaAcao.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
Collection colecaoAcaoPredecessora = fachada.pesquisar(
filtroCobrancaAcao, CobrancaAcao.class.getName());
if (colecaoAcaoPredecessora == null
|| colecaoAcaoPredecessora.isEmpty()) {
throw new ActionServletException("atencao.pesquisa_inexistente",
null, "Cobran�a A��o");
} else {
sessao.setAttribute("colecaoAcaoPredecessora",
colecaoAcaoPredecessora);
}
// pesquisa os tipos de documentos
FiltroDocumentoTipo filtroDocumentoTipo = new FiltroDocumentoTipo();
filtroDocumentoTipo.setCampoOrderBy(FiltroDocumentoTipo.DESCRICAO);
filtroDocumentoTipo.adicionarParametro(new ParametroSimples(
FiltroDocumentoTipo.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
Collection colecaoDocumentoTipo = fachada.pesquisar(
filtroDocumentoTipo, DocumentoTipo.class.getName());
if (colecaoDocumentoTipo == null || colecaoDocumentoTipo.isEmpty()) {
throw new ActionServletException("atencao.pesquisa_inexistente",
null, "Documento Tipo");
} else {
sessao.setAttribute("colecaoDocumentoTipo", colecaoDocumentoTipo);
}
// pesquisa as situa��es de liga��es de agua
FiltroLigacaoAguaSituacao filtroLigacaoAguaSituacao = new FiltroLigacaoAguaSituacao();
filtroDocumentoTipo
.setCampoOrderBy(FiltroLigacaoAguaSituacao.DESCRICAO);
filtroDocumentoTipo.adicionarParametro(new ParametroSimples(
FiltroLigacaoAguaSituacao.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
Collection colecaoLigacaoAguaSituacao = fachada.pesquisar(
filtroLigacaoAguaSituacao, LigacaoAguaSituacao.class.getName());
if (colecaoLigacaoAguaSituacao == null
|| colecaoLigacaoAguaSituacao.isEmpty()) {
throw new ActionServletException("atencao.pesquisa_inexistente",
null, "Liga��o Agua Situa��o");
} else {
sessao.setAttribute("colecaoLigacaoAguaSituacao",
colecaoLigacaoAguaSituacao);
}
// pesquisa as situa��es de liga��es de agua
FiltroLigacaoEsgotoSituacao filtroLigacaoEsgotoSituacao = new FiltroLigacaoEsgotoSituacao();
filtroDocumentoTipo
.setCampoOrderBy(FiltroLigacaoEsgotoSituacao.DESCRICAO);
filtroDocumentoTipo.adicionarParametro(new ParametroSimples(
FiltroLigacaoEsgotoSituacao.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
Collection colecaoLigacaoEsgotoSituacao = fachada.pesquisar(
filtroLigacaoEsgotoSituacao, LigacaoEsgotoSituacao.class
.getName());
if (colecaoLigacaoEsgotoSituacao == null
|| colecaoLigacaoEsgotoSituacao.isEmpty()) {
throw new ActionServletException("atencao.pesquisa_inexistente",
null, "Liga��o Esgoto Situa��o");
} else {
sessao.setAttribute("colecaoLigacaoEsgotoSituacao",
colecaoLigacaoEsgotoSituacao);
}
}
}