package gcom.gui.cobranca; import gcom.atendimentopublico.ligacaoagua.LigacaoAguaSituacao; import gcom.atendimentopublico.ligacaoesgoto.LigacaoEsgotoSituacao; import gcom.cobranca.CobrancaCriterio; import gcom.cobranca.CobrancaSituacao; import gcom.cobranca.CriterioSituacaoCobranca; import gcom.cobranca.CriterioSituacaoCobrancaPK; import gcom.cobranca.CriterioSituacaoLigacaoAgua; import gcom.cobranca.CriterioSituacaoLigacaoAguaPK; import gcom.cobranca.CriterioSituacaoLigacaoEsgoto; import gcom.cobranca.CriterioSituacaoLigacaoEsgotoPK; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.util.ConstantesSistema; import gcom.util.Util; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Collection; import java.util.Date; import java.util.HashSet; 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; /** * Processamento para inserir o crit�rio da cobran�a e as linhas do criterio da * cobran�a * * @author S�vio Luiz * @date 03/05/2006 */ public class InserirCriterioCobrancaAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { // Seta o retorno ActionForward retorno = actionMapping.findForward("telaSucesso"); CriterioCobrancaActionForm criterioCobrancaActionForm = (CriterioCobrancaActionForm) actionForm; HttpSession sessao = httpServletRequest.getSession(false); Fachada fachada = Fachada.getInstancia(); Integer idCobrancaCriterio = null; // cria o objeto criterio cobran�a para ser inserido CobrancaCriterio cobrancaCriterio = new CobrancaCriterio(); if (criterioCobrancaActionForm.getDescricaoCriterio() != null && !criterioCobrancaActionForm.getDescricaoCriterio() .equals("")) { cobrancaCriterio .setDescricaoCobrancaCriterio(criterioCobrancaActionForm .getDescricaoCriterio()); } else { throw new ActionServletException("atencao.required", null, "Descri��o do Crit�rio de Cobran�a"); } Date dataInicio = null; if (criterioCobrancaActionForm.getDataInicioVigencia() != null && !criterioCobrancaActionForm.getDataInicioVigencia().equals( "")) { String dataInicioVigencia = criterioCobrancaActionForm .getDataInicioVigencia(); if (Util.validarDiaMesAno(dataInicioVigencia)) { throw new ActionServletException( "atencao.data.inicio.Vigencia.invalida"); } dataInicio = Util.converteStringParaDate(dataInicioVigencia); Date dataAtualSemHora = Util.formatarDataSemHora(new Date()); if (dataInicio.before(dataAtualSemHora)) { String dataAtual = Util.formatarData(new Date()); throw new ActionServletException( "atencao.data.inicio.nao.superior.data.corrente", null, dataAtual); } } else { throw new ActionServletException("atencao.required", null, "Data de In�cio de Vig�ncia do Crit�rio"); } cobrancaCriterio.setDataInicioVigencia(dataInicio); if (criterioCobrancaActionForm.getNumeroAnoContaAntiga() != null && !criterioCobrancaActionForm.getNumeroAnoContaAntiga() .equals("")) { boolean valorNaoNumerico = Util .validarValorNaoNumerico(criterioCobrancaActionForm .getNumeroAnoContaAntiga()); if (!valorNaoNumerico) { cobrancaCriterio.setNumeroContaAntiga(new Short( criterioCobrancaActionForm.getNumeroAnoContaAntiga())); } else { throw new ActionServletException("atencao.integer", null, "N�mero de Anos para Determinar Conta Antiga"); } } else { throw new ActionServletException("atencao.required", null, "N�mero de Anos para Determinar Conta Antiga"); } if (criterioCobrancaActionForm.getValorLimitePrioridade() != null && !criterioCobrancaActionForm.getValorLimitePrioridade() .equals("")) { BigDecimal valorLimitePrioridade = new BigDecimal( criterioCobrancaActionForm.getValorLimitePrioridade().replace(".", "") .replace(",", ".")); cobrancaCriterio.setValorLimitePrioridade(valorLimitePrioridade); } else { throw new ActionServletException("atencao.required", null, "Valor Limite para Prioridade"); } if (criterioCobrancaActionForm .getPercentualValorMinimoPagoParceladoCancelado() != null && !criterioCobrancaActionForm .getPercentualValorMinimoPagoParceladoCancelado() .equals("")) { BigDecimal percentualValorMinimoPagoParceladoCancelado = new BigDecimal( criterioCobrancaActionForm .getPercentualValorMinimoPagoParceladoCancelado() .replace(".", "").replace(",", ".")); cobrancaCriterio .setPercentualValorMinimoPagoParceladoCancelado(percentualValorMinimoPagoParceladoCancelado); } else { throw new ActionServletException("atencao.required", null, "Percentual Valor"); } if (criterioCobrancaActionForm .getPercentualQuantidadeMinimoPagoParceladoCancelado() != null && !criterioCobrancaActionForm .getPercentualQuantidadeMinimoPagoParceladoCancelado() .equals("")) { BigDecimal percentualQuantidadeMinimoPagoParceladoCancelado = new BigDecimal( criterioCobrancaActionForm .getPercentualQuantidadeMinimoPagoParceladoCancelado().replace(".", "") .replace(",", ".")); cobrancaCriterio .setPercentualQuantidadeMinimoPagoParceladoCancelado(percentualQuantidadeMinimoPagoParceladoCancelado); } else { throw new ActionServletException("atencao.required", null, "Percentual Quantidade de Itens"); } if (criterioCobrancaActionForm.getOpcaoAcaoImovelSitEspecial() != null && !criterioCobrancaActionForm.getOpcaoAcaoImovelSitEspecial() .equals("")) { cobrancaCriterio .setIndicadorEmissaoImovelParalisacao(new Short( criterioCobrancaActionForm .getOpcaoAcaoImovelSitEspecial())); } else { throw new ActionServletException("atencao.required", null, "Emiss�o da A��o para Im�vel com Sit. Especial de Cobran�a"); } if (criterioCobrancaActionForm.getOpcaoAcaoImovelSit() != null && !criterioCobrancaActionForm.getOpcaoAcaoImovelSit().equals( "")) { cobrancaCriterio .setIndicadorEmissaoImovelSituacaoCobranca(new Short( criterioCobrancaActionForm.getOpcaoAcaoImovelSit())); } else { throw new ActionServletException("atencao.required", null, "Emiss�o da A��o para Im�vel com Sit. de Cobran�a"); } if (criterioCobrancaActionForm.getOpcaoContasRevisao() != null && !criterioCobrancaActionForm.getOpcaoContasRevisao().equals( "")) { cobrancaCriterio .setIndicadorEmissaoContaRevisao(new Short( criterioCobrancaActionForm .getOpcaoAcaoImovelSitEspecial())); } else { throw new ActionServletException("atencao.required", null, "Considerar Contas em Revis�o"); } if (criterioCobrancaActionForm.getOpcaoAcaoImovelDebitoMesConta() != null && !criterioCobrancaActionForm .getOpcaoAcaoImovelDebitoMesConta().equals("")) { cobrancaCriterio.setIndicadorEmissaoDebitoContaMes(new Short( criterioCobrancaActionForm .getOpcaoAcaoImovelDebitoMesConta())); } else { throw new ActionServletException("atencao.required", null, "Emiss�o da A��o para Im�vel com D�bito s� da Conta do M�s"); } if (criterioCobrancaActionForm.getOpcaoAcaoInquilinoDebitoMesConta() != null && !criterioCobrancaActionForm .getOpcaoAcaoInquilinoDebitoMesConta().equals("")) { cobrancaCriterio .setIndicadorEmissaoInquilinoDebitoContaMes(new Short( criterioCobrancaActionForm .getOpcaoAcaoInquilinoDebitoMesConta())); } else { throw new ActionServletException( "atencao.required", null, "Emiss�o da A��o para Inquilino Com D�bito s� da Conta do M�s Independentemente do Valor da Conta"); } if (criterioCobrancaActionForm.getOpcaoAcaoImovelDebitoContasAntigas() != null && !criterioCobrancaActionForm .getOpcaoAcaoImovelDebitoContasAntigas().equals("")) { cobrancaCriterio.setIndicadorEmissaoDebitoContaAntiga(new Short( criterioCobrancaActionForm .getOpcaoAcaoImovelDebitoContasAntigas())); } else { throw new ActionServletException("atencao.required", null, "Emiss�o da A��o para Im�vel com D�bito s� de Contas Antigas"); } // Verificando se houve situacoes de cobranca escolhidas para o criterio if (criterioCobrancaActionForm.getIdsCobrancaSituacao() != null && criterioCobrancaActionForm.getIdsCobrancaSituacao().length > 0){ Collection criteriosSituacaoCobranca = new ArrayList(); for (int i = 0; i < criterioCobrancaActionForm.getIdsCobrancaSituacao().length; i++) { CriterioSituacaoCobranca csc = new CriterioSituacaoCobranca(); CriterioSituacaoCobrancaPK cscPK = new CriterioSituacaoCobrancaPK(); CobrancaSituacao cobSit = new CobrancaSituacao(); cobSit.setId(new Integer(criterioCobrancaActionForm.getIdsCobrancaSituacao()[i])); cscPK.setCobrancaSituacao(cobSit); csc.setComp_id(cscPK); criteriosSituacaoCobranca.add(csc); } cobrancaCriterio.setCriteriosSituacaoCobranca(new HashSet(criteriosSituacaoCobranca)); } // verificando se houveram situacoes de ligacao de agua para este criterio if (criterioCobrancaActionForm.getIdsSituacaoLigacaoAgua() != null && criterioCobrancaActionForm.getIdsSituacaoLigacaoAgua().length > 0){ Collection criteriosSituacaoLigacaoAgua = new ArrayList(); for (int i = 0; i < criterioCobrancaActionForm.getIdsSituacaoLigacaoAgua().length; i++) { CriterioSituacaoLigacaoAgua csla = new CriterioSituacaoLigacaoAgua(); CriterioSituacaoLigacaoAguaPK cslaPK = new CriterioSituacaoLigacaoAguaPK(); LigacaoAguaSituacao ligAguaSit = new LigacaoAguaSituacao(); ligAguaSit.setId(new Integer(criterioCobrancaActionForm.getIdsSituacaoLigacaoAgua()[i])); cslaPK.setLigacaoAguaSituacao(ligAguaSit); csla.setComp_id(cslaPK); criteriosSituacaoLigacaoAgua.add(csla); } cobrancaCriterio.setCriteriosSituacaoLigacaoAgua(new HashSet(criteriosSituacaoLigacaoAgua)); } // verificando se houveram situacoes de ligacao de esgoto para este criterio if (criterioCobrancaActionForm.getIdsSituacaoLigacaoEsgoto() != null && criterioCobrancaActionForm.getIdsSituacaoLigacaoEsgoto().length > 0){ Collection criteriosSituacaoLigacaoEsgoto = new ArrayList(); for (int i = 0; i < criterioCobrancaActionForm.getIdsSituacaoLigacaoEsgoto().length; i++) { CriterioSituacaoLigacaoEsgoto csle = new CriterioSituacaoLigacaoEsgoto(); CriterioSituacaoLigacaoEsgotoPK cslePK = new CriterioSituacaoLigacaoEsgotoPK(); LigacaoEsgotoSituacao ligEsgotoSit = new LigacaoEsgotoSituacao(); ligEsgotoSit.setId(new Integer(criterioCobrancaActionForm.getIdsSituacaoLigacaoEsgoto()[i])); cslePK.setLigacaoEsgotoSituacao(ligEsgotoSit); csle.setComp_id(cslePK); criteriosSituacaoLigacaoEsgoto.add(csle); } cobrancaCriterio.setCriteriosSituacaoLigacaoEsgoto(new HashSet(criteriosSituacaoLigacaoEsgoto)); } cobrancaCriterio.setIndicadorUso(ConstantesSistema.INDICADOR_USO_ATIVO); cobrancaCriterio.setUltimaAlteracao(new Date()); Collection colecaoCobrancaCriterioLinha = (Collection) sessao .getAttribute("colecaoCobrancaCriterioLinha"); if (colecaoCobrancaCriterioLinha != null && !colecaoCobrancaCriterioLinha.isEmpty()) { cobrancaCriterio.setCobrancaCriterioLinhas(new HashSet( colecaoCobrancaCriterioLinha)); idCobrancaCriterio = fachada .inserirCobrancaCriterio(cobrancaCriterio,this.getUsuarioLogado(httpServletRequest)); } else { throw new ActionServletException( "atencao.informar.linha.criterio.cobranca"); } sessao.removeAttribute("colecaoCobrancaCriterioLinha"); montarPaginaSucesso(httpServletRequest, "Crit�rio de Cobran�a " + idCobrancaCriterio + " inserido com sucesso.", "Inserir outro Crit�rio de Cobran�a", "exibirInserirCriterioCobrancaAction.do?menu=sim", "exibirAtualizarCriterioCobrancaAction.do?idRegistroAtualizacao=" + idCobrancaCriterio + "&retornoFiltrar=1", "Atualizar Crit�rio de Cobran�a inserido"); return retorno; } }