package gcom.gui.cobranca;
import gcom.atendimentopublico.ordemservico.OrdemServico;
import gcom.cadastro.localidade.FiltroQuadra;
import gcom.cadastro.localidade.FiltroSetorComercial;
import gcom.cadastro.localidade.Quadra;
import gcom.cadastro.localidade.SetorComercial;
import gcom.cobranca.CobrancaAcao;
import gcom.cobranca.CobrancaDocumento;
import gcom.cobranca.CobrancaDocumentoItem;
import gcom.cobranca.DocumentoEmissaoForma;
import gcom.cobranca.FiltroCobrancaAcao;
import gcom.cobranca.FiltroCobrancaDocumentoItem;
import gcom.cobranca.bean.CobrancaDocumentoHelper;
import gcom.cobranca.bean.FiltrarDocumentoCobrancaHelper;
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 java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collection;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Iterator;
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
* @date 07/03/2006
*/
public class FiltrarDocumentosCobrancaAction extends GcomAction {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
ActionForward retorno = actionMapping
.findForward("filtrarDocumentosCobrancaResultado");
// DynaValidatorActionForm pesquisarActionForm =
// (DynaValidatorActionForm) actionForm;
HttpSession sessao = httpServletRequest.getSession(false);
Fachada fachada = Fachada.getInstancia();
// Parte que pega as cole��es da sess�o
FiltrarDocumentosCobrancaActionForm filtrarDocumentosCobrancaActionForm = (FiltrarDocumentosCobrancaActionForm) actionForm;
FiltrarDocumentoCobrancaHelper filtrarDocumentoCobrancaHelper = new FiltrarDocumentoCobrancaHelper();
/*if(httpServletRequest.getParameter("idGerenciaRegional")== null){
filtrarDocumentosCobrancaActionForm.setIdGerenciaRegional(null);
}
if(httpServletRequest.getParameter("idUnidadeNegocio") == null){
filtrarDocumentosCobrancaActionForm.setIdUnidadeNegocio(null);
}*/
boolean informUm = false;
//Intervalo de Valor do Documento
//===============================================================================
//String valorInicioSTR = null;
//String valorFimSTR = null;
BigDecimal valorInicio = null;
BigDecimal valorFim = null;
if (filtrarDocumentosCobrancaActionForm.getValorInicial() != null
&& !filtrarDocumentosCobrancaActionForm.getValorInicial().equals("")) {
/*
valorInicioSTR = filtrarDocumentosCobrancaActionForm.getValorInicial().replace(".","");
valorInicioSTR = valorInicioSTR.replace(",",".");
valorInicio = new BigDecimal(valorInicioSTR);*/
valorInicio = Util.formatarMoedaRealparaBigDecimal(filtrarDocumentosCobrancaActionForm.getValorInicial());
}
if (filtrarDocumentosCobrancaActionForm.getValorFinal() != null
&& !filtrarDocumentosCobrancaActionForm.getValorFinal().equals("")) {
/*valorFimSTR = filtrarDocumentosCobrancaActionForm.getValorFinal().replace(".","");
valorFimSTR = valorFimSTR.replace(",",".");
valorFim = new BigDecimal(valorFimSTR);*/
valorFim = Util.formatarMoedaRealparaBigDecimal(filtrarDocumentosCobrancaActionForm.getValorFinal());
}
if ((valorInicio != null) && (valorFim != null)) {
if (valorInicio.compareTo(valorFim) > 0) {
throw new ActionServletException(
"atencao.valor_fim_menor_inicio");
}else {
filtrarDocumentoCobrancaHelper.setValorDocumentoInicial(valorInicio);
filtrarDocumentoCobrancaHelper.setValorDocumentoFinal(valorFim);
}
}
else if (valorInicio != null && valorFim == null){
filtrarDocumentoCobrancaHelper.setValorDocumentoInicial(valorInicio);
filtrarDocumentoCobrancaHelper.setValorDocumentoFinal(valorInicio);
}
//===================================================================================
if (filtrarDocumentosCobrancaActionForm.getIdImovel() != null
&& !filtrarDocumentosCobrancaActionForm.getIdImovel().equals("")) {
informUm = true;
filtrarDocumentoCobrancaHelper.setIdImovel(new Integer(filtrarDocumentosCobrancaActionForm.getIdImovel()));
}
if (filtrarDocumentosCobrancaActionForm.getIdGerenciaRegional() != null
&& !filtrarDocumentosCobrancaActionForm.getIdGerenciaRegional().equals("")
&& !filtrarDocumentosCobrancaActionForm.getIdGerenciaRegional().equals(String.valueOf(ConstantesSistema.NUMERO_NAO_INFORMADO))) {
filtrarDocumentoCobrancaHelper.setIdGerenciaRegional(new Integer(filtrarDocumentosCobrancaActionForm.getIdGerenciaRegional()));
informUm = true;
}
//Unidade Negocio
if (filtrarDocumentosCobrancaActionForm.getIdUnidadeNegocio() != null
&& !filtrarDocumentosCobrancaActionForm.getIdUnidadeNegocio().equals("")
&& !filtrarDocumentosCobrancaActionForm.getIdUnidadeNegocio().equals(String.valueOf(ConstantesSistema.NUMERO_NAO_INFORMADO))) {
filtrarDocumentoCobrancaHelper.setIdUnidadeNegocio(new Integer(filtrarDocumentosCobrancaActionForm.getIdUnidadeNegocio()));
informUm = true;
}
//Cobran�a A��o
String[] idsCobrancaAcao = null;
if (filtrarDocumentosCobrancaActionForm.getCobrancaAcao() != null
&& filtrarDocumentosCobrancaActionForm.getCobrancaAcao().length > 0){
idsCobrancaAcao = filtrarDocumentosCobrancaActionForm.getCobrancaAcao();
Integer[] idsCobrancaAcaoAux = null;
if (idsCobrancaAcao[0].equals("-1")){
idsCobrancaAcaoAux = new Integer[idsCobrancaAcao.length - 1];
}else{
idsCobrancaAcaoAux = new Integer[idsCobrancaAcao.length];
}
for(int i=0; i< idsCobrancaAcao.length; i++ ){
if (!idsCobrancaAcao[i].equals("-1")){
if (idsCobrancaAcao[0].equals("-1")){
idsCobrancaAcaoAux[i-1] = new Integer(idsCobrancaAcao[i]);
}else{
idsCobrancaAcaoAux[i] = new Integer(idsCobrancaAcao[i]);
}
}
}
filtrarDocumentoCobrancaHelper.setIdsCobrancaAcao(idsCobrancaAcaoAux);
}
//CobrancaAcaoSituacao
if (filtrarDocumentosCobrancaActionForm.getIdCobrancaAcaoSituacao() != null
&& filtrarDocumentosCobrancaActionForm.getIdCobrancaAcaoSituacao().length > 0){
String[] idsCobrancaAcaoSituacao = filtrarDocumentosCobrancaActionForm.getIdCobrancaAcaoSituacao();
Integer[] idsCobrancaAcaoSituacaoAux = null;
if (idsCobrancaAcaoSituacao[0].equals("-1")){
idsCobrancaAcaoSituacaoAux = new Integer[idsCobrancaAcaoSituacao.length - 1];
}else{
idsCobrancaAcaoSituacaoAux = new Integer[idsCobrancaAcaoSituacao.length];
}
for(int i=0; i< idsCobrancaAcaoSituacao.length; i++ ){
if (!idsCobrancaAcaoSituacao[i].equals("-1")){
if (idsCobrancaAcaoSituacao[0].equals("-1")){
idsCobrancaAcaoSituacaoAux[i-1] = new Integer(idsCobrancaAcaoSituacao[i]);
}else{
idsCobrancaAcaoSituacaoAux[i] = new Integer(idsCobrancaAcaoSituacao[i]);
}
}
}
filtrarDocumentoCobrancaHelper.setIdsAcaoSituacao(idsCobrancaAcaoSituacaoAux);
}
//CobrancaDebitoSituacao
if (filtrarDocumentosCobrancaActionForm.getIdCobrancaDebitoSituacao() != null
&& filtrarDocumentosCobrancaActionForm.getIdCobrancaDebitoSituacao().length > 0){
String[] idsCobrancaDebitoSituacao = filtrarDocumentosCobrancaActionForm.getIdCobrancaDebitoSituacao();
Integer[] idsCobrancadebitoSituacaoAux = null;
if (idsCobrancaDebitoSituacao[0].equals("-1")){
idsCobrancadebitoSituacaoAux = new Integer[idsCobrancaDebitoSituacao.length - 1];
}else{
idsCobrancadebitoSituacaoAux = new Integer[idsCobrancaDebitoSituacao.length];
}
for(int i=0; i< idsCobrancaDebitoSituacao.length; i++ ){
if (!idsCobrancaDebitoSituacao[i].equals("-1")){
if (idsCobrancaDebitoSituacao[0].equals("-1")){
idsCobrancadebitoSituacaoAux[i-1] = new Integer(idsCobrancaDebitoSituacao[i]);
}else{
idsCobrancadebitoSituacaoAux[i] = new Integer(idsCobrancaDebitoSituacao[i]);
}
}
}
filtrarDocumentoCobrancaHelper.setIdsDebitoSituacao(idsCobrancadebitoSituacaoAux);
}
//Categoria
if (filtrarDocumentosCobrancaActionForm.getIdCategoria() != null
&& filtrarDocumentosCobrancaActionForm.getIdCategoria().length > 0){
String[] idsCategoria = filtrarDocumentosCobrancaActionForm.getIdCategoria();
Integer[] idsCategoriaAux = null;
if (idsCategoria[0].equals("-1")){
idsCategoriaAux = new Integer[idsCategoria.length - 1];
}else{
idsCategoriaAux = new Integer[idsCategoria.length];
}
for(int i=0; i< idsCategoria.length; i++ ){
if (!idsCategoria[i].equals("-1")){
if (idsCategoria[0].equals("-1")){
idsCategoriaAux[i-1] = new Integer(idsCategoria[i]);
}else{
idsCategoriaAux[i] = new Integer(idsCategoria[i]);
}
}
}
filtrarDocumentoCobrancaHelper.setIdsImovelCategoria(idsCategoriaAux);
}
//Empresa
if (filtrarDocumentosCobrancaActionForm.getIdFirma() != null
&& filtrarDocumentosCobrancaActionForm.getIdFirma().length > 0){
String[] idsEmpresas = filtrarDocumentosCobrancaActionForm.getIdFirma();
Integer[] idsEmpresasAux = null;
if (idsEmpresas[0].equals("-1")){
idsEmpresasAux = new Integer[idsEmpresas.length - 1];
}else{
idsEmpresasAux = new Integer[idsEmpresas.length];
}
for(int i=0; i< idsEmpresas.length; i++ ){
if (!idsEmpresas[i].equals("-1")){
if (idsEmpresas[0].equals("-1")){
idsEmpresasAux[i-1] = new Integer(idsEmpresas[i]);
}else{
idsEmpresasAux[i] = new Integer(idsEmpresas[i]);
}
}
}
filtrarDocumentoCobrancaHelper.setIdsEmpresa(idsEmpresasAux);
}
//fim altera��o
//Motivo da N�o Entrega do Documento
if (filtrarDocumentosCobrancaActionForm.getMotivoNaoEntregaDocumento() != null
&& filtrarDocumentosCobrancaActionForm.getMotivoNaoEntregaDocumento().length > 0){
String[] idsMotivoNaoEntregaDocumento = filtrarDocumentosCobrancaActionForm.getMotivoNaoEntregaDocumento();
Integer[] idsMotivoNaoEntregaDocumentoAux = null;
if (idsMotivoNaoEntregaDocumento[0].equals("-1")){
idsMotivoNaoEntregaDocumentoAux = new Integer[idsMotivoNaoEntregaDocumento.length - 1];
}else{
idsMotivoNaoEntregaDocumentoAux = new Integer[idsMotivoNaoEntregaDocumento.length];
}
for(int i=0; i< idsMotivoNaoEntregaDocumento.length; i++ ){
if (!idsMotivoNaoEntregaDocumento[i].equals("-1")){
if (idsMotivoNaoEntregaDocumento[0].equals("-1")){
idsMotivoNaoEntregaDocumentoAux[i-1] = new Integer(idsMotivoNaoEntregaDocumento[i]);
}else{
idsMotivoNaoEntregaDocumentoAux[i] = new Integer(idsMotivoNaoEntregaDocumento[i]);
}
}
}
filtrarDocumentoCobrancaHelper.setIdsMotivoNaoEntrega(idsMotivoNaoEntregaDocumentoAux);
}
//Perfil do Im�vel
if (filtrarDocumentosCobrancaActionForm.getImovelPerfil() != null
&& filtrarDocumentosCobrancaActionForm.getImovelPerfil().length > 0){
String[] idsImovelPerfil = filtrarDocumentosCobrancaActionForm.getImovelPerfil();
Integer[] idsImovelPerfilAux = null;
if (idsImovelPerfil[0].equals("-1")){
idsImovelPerfilAux = new Integer[idsImovelPerfil.length - 1];
}else{
idsImovelPerfilAux = new Integer[idsImovelPerfil.length];
}
for(int i=0; i< idsImovelPerfil.length; i++ ){
if (!idsImovelPerfil[i].equals("-1")){
if (idsImovelPerfil[0].equals("-1")){
idsImovelPerfilAux[i-1] = new Integer(idsImovelPerfil[i]);
}else{
idsImovelPerfilAux[i] = new Integer(idsImovelPerfil[i]);
}
}
}
filtrarDocumentoCobrancaHelper.setIdsImovelPerfil(idsImovelPerfilAux);
}
// Buscando por localidade, Setor Comercial e Quadra, fazendo validacoes
// de intervalos
if ((filtrarDocumentosCobrancaActionForm.getLocalidadeOrigemID() != null)
&& (!filtrarDocumentosCobrancaActionForm
.getLocalidadeOrigemID().equals(""))
&& (filtrarDocumentosCobrancaActionForm
.getLocalidadeDestinoID() != null)
&& (!filtrarDocumentosCobrancaActionForm
.getLocalidadeDestinoID().equals(""))) {
informUm = true;
Integer localidadeInicial = new Integer(
filtrarDocumentosCobrancaActionForm.getLocalidadeOrigemID());
Integer localidadeFinal = new Integer(
filtrarDocumentosCobrancaActionForm
.getLocalidadeDestinoID());
int resultado = localidadeInicial.compareTo(localidadeFinal);
if (resultado == 0) {
filtrarDocumentoCobrancaHelper.setIdLocalidadeInicial(localidadeInicial);
filtrarDocumentoCobrancaHelper.setIdLocalidadeFinal(localidadeFinal);
if ((filtrarDocumentosCobrancaActionForm
.getSetorComercialOrigemCD() != null)
&& (!filtrarDocumentosCobrancaActionForm
.getSetorComercialOrigemCD().equals(""))
&& (filtrarDocumentosCobrancaActionForm
.getSetorComercialDestinoCD() != null)
&& (!filtrarDocumentosCobrancaActionForm
.getSetorComercialDestinoCD().equals(""))) {
Integer setorInicial = new Integer(
filtrarDocumentosCobrancaActionForm
.getSetorComercialOrigemCD());
Integer setorFinal = new Integer(
filtrarDocumentosCobrancaActionForm
.getSetorComercialDestinoCD());
int resultadoSetor = setorInicial.compareTo(setorFinal);
if (resultadoSetor == 0) {
FiltroSetorComercial filtroSetorComercial = new FiltroSetorComercial();
filtroSetorComercial.adicionarParametro(new ParametroSimples(FiltroSetorComercial.CODIGO_SETOR_COMERCIAL, setorInicial));
filtroSetorComercial.adicionarParametro(new ParametroSimples(FiltroSetorComercial.ID_LOCALIDADE, localidadeInicial));
Collection colecaoSetorComercial = fachada.pesquisar(filtroSetorComercial, SetorComercial.class.getName());
SetorComercial setorComercialInicio = (SetorComercial) Util.retonarObjetoDeColecao(colecaoSetorComercial);
filtrarDocumentoCobrancaHelper.setIdSetorComercialInicial(setorComercialInicio.getId());
filtrarDocumentoCobrancaHelper.setIdSetorComercialFinal(setorComercialInicio.getId());
if ((filtrarDocumentosCobrancaActionForm
.getQuadraOrigemNM() != null)
&& (!filtrarDocumentosCobrancaActionForm
.getQuadraOrigemNM().equals(""))
&& (filtrarDocumentosCobrancaActionForm
.getQuadraDestinoNM() != null)
&& (!filtrarDocumentosCobrancaActionForm
.getQuadraDestinoNM().equals(""))) {
Integer quadraInicial = new Integer(
filtrarDocumentosCobrancaActionForm
.getQuadraOrigemNM());
Integer quadraFinal = new Integer(
filtrarDocumentosCobrancaActionForm
.getQuadraDestinoNM());
int resultadoQuadra = quadraInicial
.compareTo(quadraFinal);
if (resultadoQuadra == 0) {
FiltroQuadra filtroQuadra = new FiltroQuadra();
filtroQuadra.adicionarParametro(new ParametroSimples(FiltroQuadra.NUMERO_QUADRA, quadraInicial));
filtroQuadra.adicionarParametro(new ParametroSimples(FiltroQuadra.ID_SETORCOMERCIAL, setorComercialInicio.getId()));
filtroQuadra.adicionarParametro(new ParametroSimples(FiltroQuadra.ID_LOCALIDADE, localidadeInicial));
Collection colecaoQuadra = fachada.pesquisar(filtroQuadra, Quadra.class.getName());
Quadra quadraInicio = (Quadra) Util.retonarObjetoDeColecao(colecaoQuadra);
filtrarDocumentoCobrancaHelper.setIdQuadraInicial(quadraInicio.getId());
filtrarDocumentoCobrancaHelper.setIdQuadraFinal(quadraInicio.getId());
} else if (resultadoQuadra > 0) {
throw new ActionServletException(
"atencao.valor_fim_menor_inicio");
} else {
FiltroQuadra filtroQuadra = new FiltroQuadra();
filtroQuadra.adicionarParametro(new ParametroSimples(FiltroQuadra.NUMERO_QUADRA, quadraInicial));
filtroQuadra.adicionarParametro(new ParametroSimples(FiltroQuadra.ID_SETORCOMERCIAL, setorComercialInicio.getId()));
filtroQuadra.adicionarParametro(new ParametroSimples(FiltroQuadra.ID_LOCALIDADE, localidadeInicial));
Collection colecaoQuadra = fachada.pesquisar(filtroQuadra, Quadra.class.getName());
Quadra quadraInicio = (Quadra) Util.retonarObjetoDeColecao(colecaoQuadra);
filtrarDocumentoCobrancaHelper.setIdQuadraInicial(quadraInicio.getId());
FiltroQuadra filtroQuadraFinal = new FiltroQuadra();
filtroQuadraFinal.adicionarParametro(new ParametroSimples(FiltroQuadra.NUMERO_QUADRA, quadraFinal));
filtroQuadraFinal.adicionarParametro(new ParametroSimples(FiltroQuadra.ID_SETORCOMERCIAL, setorComercialInicio.getId()));
filtroQuadraFinal.adicionarParametro(new ParametroSimples(FiltroQuadra.ID_LOCALIDADE, localidadeFinal));
Collection colecaoQuadraFinal = fachada.pesquisar(filtroQuadraFinal, Quadra.class.getName());
Quadra quadraFim = (Quadra) Util.retonarObjetoDeColecao(colecaoQuadraFinal);
filtrarDocumentoCobrancaHelper.setIdQuadraFinal(quadraFim.getId());
}
}
} else if (resultadoSetor > 0) {
throw new ActionServletException(
"atencao.valor_fim_menor_inicio");
} else {
FiltroSetorComercial filtroSetorComercial = new FiltroSetorComercial();
filtroSetorComercial.adicionarParametro(new ParametroSimples(FiltroSetorComercial.CODIGO_SETOR_COMERCIAL, setorInicial));
filtroSetorComercial.adicionarParametro(new ParametroSimples(FiltroSetorComercial.ID_LOCALIDADE, localidadeInicial));
Collection colecaoSetorComercial = fachada.pesquisar(filtroSetorComercial, SetorComercial.class.getName());
SetorComercial setorComercialInicio = (SetorComercial) Util.retonarObjetoDeColecao(colecaoSetorComercial);
filtrarDocumentoCobrancaHelper.setIdSetorComercialInicial(setorComercialInicio.getId());
FiltroSetorComercial filtroSetorComercialFinal = new FiltroSetorComercial();
filtroSetorComercialFinal.adicionarParametro(new ParametroSimples(FiltroSetorComercial.CODIGO_SETOR_COMERCIAL, setorFinal));
filtroSetorComercialFinal.adicionarParametro(new ParametroSimples(FiltroSetorComercial.ID_LOCALIDADE, localidadeFinal));
Collection colecaoSetorComercialFim = fachada.pesquisar(filtroSetorComercialFinal, SetorComercial.class.getName());
SetorComercial setorComercialFim = (SetorComercial) Util.retonarObjetoDeColecao(colecaoSetorComercialFim);
filtrarDocumentoCobrancaHelper.setIdSetorComercialFinal(setorComercialFim.getId());
if ((filtrarDocumentosCobrancaActionForm
.getQuadraOrigemNM() != null)
&& (!filtrarDocumentosCobrancaActionForm
.getQuadraOrigemNM().equals(""))
&& (filtrarDocumentosCobrancaActionForm
.getQuadraDestinoNM() != null)
&& (!filtrarDocumentosCobrancaActionForm
.getQuadraDestinoNM().equals(""))) {
Integer quadraInicial = new Integer(
filtrarDocumentosCobrancaActionForm
.getQuadraOrigemNM());
Integer quadraFinal = new Integer(
filtrarDocumentosCobrancaActionForm
.getQuadraDestinoNM());
int resultadoQuadra = quadraInicial
.compareTo(quadraFinal);
if (resultadoQuadra == 0) {
FiltroQuadra filtroQuadra = new FiltroQuadra();
filtroQuadra.adicionarParametro(new ParametroSimples(FiltroQuadra.NUMERO_QUADRA, quadraInicial));
filtroQuadra.adicionarParametro(new ParametroSimples(FiltroQuadra.ID_SETORCOMERCIAL, setorComercialInicio.getId()));
filtroQuadra.adicionarParametro(new ParametroSimples(FiltroQuadra.ID_LOCALIDADE, localidadeInicial));
Collection colecaoQuadra = fachada.pesquisar(filtroQuadra, Quadra.class.getName());
Quadra quadraInicio = (Quadra) Util.retonarObjetoDeColecao(colecaoQuadra);
filtrarDocumentoCobrancaHelper.setIdQuadraInicial(quadraInicio.getId());
} else if (resultadoQuadra > 0) {
throw new ActionServletException(
"atencao.valor_fim_menor_inicio");
} else {
FiltroQuadra filtroQuadra = new FiltroQuadra();
filtroQuadra.adicionarParametro(new ParametroSimples(FiltroQuadra.NUMERO_QUADRA, quadraInicial));
filtroQuadra.adicionarParametro(new ParametroSimples(FiltroQuadra.ID_SETORCOMERCIAL, setorComercialInicio.getId()));
filtroQuadra.adicionarParametro(new ParametroSimples(FiltroQuadra.ID_LOCALIDADE, localidadeInicial));
Collection colecaoQuadra = fachada.pesquisar(filtroQuadra, Quadra.class.getName());
Quadra quadraInicio = (Quadra) Util.retonarObjetoDeColecao(colecaoQuadra);
filtrarDocumentoCobrancaHelper.setIdQuadraInicial(quadraInicio.getId());
FiltroQuadra filtroQuadraFinal = new FiltroQuadra();
filtroQuadraFinal.adicionarParametro(new ParametroSimples(FiltroQuadra.NUMERO_QUADRA, quadraFinal));
filtroQuadraFinal.adicionarParametro(new ParametroSimples(FiltroQuadra.ID_SETORCOMERCIAL, setorComercialFim.getId()));
filtroQuadraFinal.adicionarParametro(new ParametroSimples(FiltroQuadra.ID_LOCALIDADE, localidadeFinal));
Collection colecaoQuadraFinal = fachada.pesquisar(filtroQuadraFinal, Quadra.class.getName());
Quadra quadraFim = (Quadra) Util.retonarObjetoDeColecao(colecaoQuadraFinal);
filtrarDocumentoCobrancaHelper.setIdQuadraFinal(quadraFim.getId());
}
}
}
}
} else if (resultado > 0) {
throw new ActionServletException(
"atencao.valor_fim_menor_inicio");
} else {
filtrarDocumentoCobrancaHelper.setIdLocalidadeInicial(localidadeInicial);
filtrarDocumentoCobrancaHelper.setIdLocalidadeFinal(localidadeFinal);
}
}
//Forma de emiss�o
if (filtrarDocumentosCobrancaActionForm.getDocumentoEmissaoForma() != null
&& filtrarDocumentosCobrancaActionForm.getDocumentoEmissaoForma().length > 0){
String[] idsFormaEmissao = filtrarDocumentosCobrancaActionForm.getDocumentoEmissaoForma();
Integer[] idsDocumentoEmissaoForma = null;
if (idsFormaEmissao[0].equals("-1")){
idsDocumentoEmissaoForma = new Integer[idsFormaEmissao.length - 1];
}else{
idsDocumentoEmissaoForma = new Integer[idsFormaEmissao.length];
}
for(int i=0; i< idsFormaEmissao.length; i++ ){
if (!idsFormaEmissao[i].equals("-1")){
if (idsFormaEmissao[0].equals("-1")){
idsDocumentoEmissaoForma[i-1] = new Integer(idsFormaEmissao[i]);
}else{
idsDocumentoEmissaoForma[i] = new Integer(idsFormaEmissao[i]);
}
}
}
filtrarDocumentoCobrancaHelper.setIdsDocumentoEmissaoForma(idsDocumentoEmissaoForma);
}
//Per�odo de Data de Emiss�o
String dataInicial = filtrarDocumentosCobrancaActionForm.getDataEmissaoInicio();
String dataFinal = filtrarDocumentosCobrancaActionForm.getDataEmissaoFim();
if ((dataInicial.trim().length() == 10)
&& (dataFinal.trim().length() == 10)) {
Calendar calendarInicio = new GregorianCalendar();
Calendar calendarFim = new GregorianCalendar();
calendarInicio.setTime( Util.converteStringParaDate( dataInicial ) );
calendarFim.setTime( Util.converteStringParaDate( dataFinal ) );
if (calendarFim.compareTo(calendarInicio) < 0) {
throw new ActionServletException(
"atencao.data_fim_menor_inicio");
}
//[FS0011] - Validar forma de emiss�o
//Caso o m�s/ano de refer�ncia esteja informado e
//forma de emiss�o CRONOGRAMA n�o esteja selecionada
boolean achouCronograma = false;
String[] idsFormaEmissao = filtrarDocumentosCobrancaActionForm.getDocumentoEmissaoForma();
if (filtrarDocumentosCobrancaActionForm.getMesAnoReferencia() != null
&& !filtrarDocumentosCobrancaActionForm.getMesAnoReferencia().equals("")){
if ( idsFormaEmissao!=null && idsFormaEmissao.length > 0){
//s� considera o ciclo caso haja forma de emiss�o cronograma selecionada
if (new Integer(idsFormaEmissao[0]).intValue() == DocumentoEmissaoForma.CRONOGRAMA){
achouCronograma = true;
//Ciclo
//[FS0010] Validar m�s/ano de refer�ncia
// FiltroSistemaParametro filtroSistemaParametro= new FiltroSistemaParametro();
// Collection colecaoSistemaParametro = fachada.pesquisar(filtroSistemaParametro, SistemaParametro.class.getName());
//
// if (colecaoSistemaParametro != null && !colecaoSistemaParametro.isEmpty()) {
// SistemaParametro sistemaParametro = (SistemaParametro) colecaoSistemaParametro.iterator().next();
String anoMesReferencia = Util.formatarMesAnoParaAnoMesSemBarra(filtrarDocumentosCobrancaActionForm.getMesAnoReferencia());
// String anoMesFaturamentoCorrente = ""+ sistemaParametro.getAnoMesFaturamento();
String anoMesCorrente = Util.getAnoMesComoString(new Date());
Integer resultado = anoMesReferencia.compareTo(anoMesCorrente);
if (resultado > 0){
throw new ActionServletException( "atencao.ano_mes_referencia_anterior_que_ano_mes_faturamento_corrente",
null, Util.formatarAnoMesParaMesAno(anoMesCorrente));
}
Collection idsCobrancaAcaoAux = pesquisarIdsAcoesCobranca(fachada, idsCobrancaAcao);
Collection colecaoIdsRetorno = fachada.pesquisarIdsAcoesCiclo(idsCobrancaAcaoAux, new Integer(anoMesReferencia));
if (colecaoIdsRetorno != null && colecaoIdsRetorno.size() > 0){
Integer[] idsCobrancaAcaoAtividadeCronograma = new Integer[colecaoIdsRetorno.size()];
int ind = 0;
for (Iterator colecaoIdsRetornoIterator = colecaoIdsRetorno.iterator(); colecaoIdsRetornoIterator
.hasNext();) {
Integer idCobrancaAcaoAtividadeCronograma = (Integer) colecaoIdsRetornoIterator.next();
idsCobrancaAcaoAtividadeCronograma[ind] = idCobrancaAcaoAtividadeCronograma;
ind++;
}
filtrarDocumentoCobrancaHelper.setIdsCobrancaAcaoAtividadeCronograma(idsCobrancaAcaoAtividadeCronograma);
filtrarDocumentoCobrancaHelper.setCiclo(filtrarDocumentosCobrancaActionForm.getMesAnoReferencia());
}
// }
}
}
if (achouCronograma == false){
throw new ActionServletException(
"atencao.ciclo_apenas_acoes_cronograma");
}
}
filtrarDocumentoCobrancaHelper.setDataEmissaoInicial(dataInicial);
filtrarDocumentoCobrancaHelper.setDataEmissaoFinal(dataFinal);
}else{
//[FS0011] - Validar forma de emiss�o
//Caso o per�odo de emiss�o n�o esteja informado e
//forma de emiss�o EVENTUAL ou INDIVIDUAL estejam selecionadas
boolean achouEventual = false;
boolean achouIndividual = false;
boolean achouCronograma = false;
String[] idsFormaEmissao = filtrarDocumentosCobrancaActionForm.getDocumentoEmissaoForma();
if (idsFormaEmissao != null){
for (int i = 0; i < idsFormaEmissao.length; i++) {
if (new Integer(idsFormaEmissao[i]).intValue() == DocumentoEmissaoForma.EVENTUAL ){
achouEventual = true;
}
if (new Integer(idsFormaEmissao[i]).intValue() == DocumentoEmissaoForma.INDIVIDUAL ){
achouIndividual = true;
}
if (new Integer(idsFormaEmissao[i]).intValue() == DocumentoEmissaoForma.CRONOGRAMA ){
achouCronograma = true;
}
}
if (achouEventual || achouIndividual){
throw new ActionServletException(
"atencao.periodo_obrigatorio_eventual_individual");
}
if (achouCronograma == false && filtrarDocumentosCobrancaActionForm.getMesAnoReferencia() !=null
&& !filtrarDocumentosCobrancaActionForm.getMesAnoReferencia().equals("")){
throw new ActionServletException(
"atencao.ciclo_apenas_acoes_cronograma");
}
if (filtrarDocumentosCobrancaActionForm.getMesAnoReferencia() != null
&& !filtrarDocumentosCobrancaActionForm.getMesAnoReferencia().equals("")){
//Ciclo
if (idsFormaEmissao.length > 0 && achouCronograma){
//[FS0010] Validar m�s/ano de refer�ncia
// FiltroSistemaParametro filtroSistemaParametro= new FiltroSistemaParametro();
// Collection colecaoSistemaParametro = fachada.pesquisar(filtroSistemaParametro, SistemaParametro.class.getName());
//
// if (colecaoSistemaParametro != null && !colecaoSistemaParametro.isEmpty()) {
//RM3967 - alterado por Vivianne Sousa - 05/01/2010 - analista: Ana Cristina
// SistemaParametro sistemaParametro = (SistemaParametro) colecaoSistemaParametro.iterator().next();
String anoMesReferencia = Util.formatarMesAnoParaAnoMesSemBarra(filtrarDocumentosCobrancaActionForm.getMesAnoReferencia());
// String anoMesFaturamentoCorrente = ""+ sistemaParametro.getAnoMesFaturamento();
String anoMesCorrente = Util.getAnoMesComoString(new Date());
Integer resultado = anoMesReferencia.compareTo(anoMesCorrente);
if (resultado > 0){
throw new ActionServletException( "atencao.ano_mes_referencia_anterior_que_ano_mes_faturamento_corrente",
null, Util.formatarAnoMesParaMesAno(anoMesCorrente));
}
Collection idsCobrancaAcaoAux = pesquisarIdsAcoesCobranca(fachada, idsCobrancaAcao);
Collection colecaoIdsRetorno = fachada.pesquisarIdsAcoesCiclo(idsCobrancaAcaoAux, new Integer(anoMesReferencia));
if (colecaoIdsRetorno != null && colecaoIdsRetorno.size() > 0){
Integer[] idsCobrancaAcaoAtividadeCronograma = new Integer[colecaoIdsRetorno.size()];
int ind = 0;
for (Iterator colecaoIdsRetornoIterator = colecaoIdsRetorno.iterator(); colecaoIdsRetornoIterator
.hasNext();) {
Integer idCobrancaAcaoAtividadeCronograma = (Integer) colecaoIdsRetornoIterator.next();
idsCobrancaAcaoAtividadeCronograma[ind] = idCobrancaAcaoAtividadeCronograma;
ind++;
}
filtrarDocumentoCobrancaHelper.setIdsCobrancaAcaoAtividadeCronograma(idsCobrancaAcaoAtividadeCronograma);
filtrarDocumentoCobrancaHelper.setCiclo(filtrarDocumentosCobrancaActionForm.getMesAnoReferencia());
}
// }
}
}
}
}
//verifica se campos obrigatorios foram preenchidos
if (!informUm && httpServletRequest.getParameter("page.offset")== null){
throw new ActionServletException(
"atencao.informe_matricula_gerencia_localidade");
}
Collection colecaoDocumentoCobranca = fachada.consultarCobrancaDocumento(filtrarDocumentoCobrancaHelper);
if (colecaoDocumentoCobranca == null
|| colecaoDocumentoCobranca.isEmpty()) {
// [FS0010] Nenhum registro encontrado
throw new ActionServletException(
"atencao.pesquisa.nenhumresultado", null, "");
}
//Esquema de Pagina��o
// 1� Passo - Pegar o total de registros
Integer totalRegistros = colecaoDocumentoCobranca.size();
// 2� Passo - Chamar a fun��o de Pagina��o passando o total de
// registros
retorno = controlarPaginacao(httpServletRequest, retorno, totalRegistros);
//3� Passo - Obter a cole��o da consulta que aparecer� na tela
//passando o numero de paginas
// da pesquisa que est� no request
colecaoDocumentoCobranca = buscaColecaoPaginada((Integer) httpServletRequest.getAttribute("numeroPaginasPesquisa"), colecaoDocumentoCobranca);
sessao.setAttribute("totalRegistros", totalRegistros);
sessao.setAttribute("numeroPaginasPesquisa",httpServletRequest
.getAttribute("numeroPaginasPesquisa"));
//final esquema paginacao
Iterator colecaoDocumentoCobrancaIterator = colecaoDocumentoCobranca
.iterator();
CobrancaDocumentoHelper cobrancaDocumentoHelper = null;
CobrancaDocumento cobrancaDocumento = null;
FiltroCobrancaDocumentoItem filtroCobrancaDocumentoItem = new FiltroCobrancaDocumentoItem();
Collection colecaoCobrancaDocumentoItem = null;
Collection colecaoCobrancaDocumentoHelper = new ArrayList();
while (colecaoDocumentoCobrancaIterator.hasNext()) {
cobrancaDocumento = (CobrancaDocumento) colecaoDocumentoCobrancaIterator
.next();
filtroCobrancaDocumentoItem
.adicionarParametro(new ParametroSimples(
FiltroCobrancaDocumentoItem.COBRANCA_DOCUMENTO_ID,
cobrancaDocumento.getId()));
colecaoCobrancaDocumentoItem = fachada.pesquisar(
filtroCobrancaDocumentoItem, CobrancaDocumentoItem.class
.getName());
cobrancaDocumentoHelper = new CobrancaDocumentoHelper();
cobrancaDocumentoHelper.setCobrancaDocumento(cobrancaDocumento);
Object[] dadosOrdemServico = fachada.pesquisarDadosOrdemServicoDocumentoCobranca(cobrancaDocumento.getId());
if(dadosOrdemServico != null){
if(dadosOrdemServico[0] != null){
cobrancaDocumentoHelper.setIdOrdemServico((Integer)dadosOrdemServico[0]);
}
if(dadosOrdemServico[1] != null){
Short situacaoOS = (Short)dadosOrdemServico[1];
if(situacaoOS.equals(OrdemServico.SITUACAO_PENDENTE)){
cobrancaDocumentoHelper.setSituacaoOrdemServico(OrdemServico.SITUACAO_DESC_ABREV_PENDENTE);
}
if(situacaoOS.equals(OrdemServico.SITUACAO_ENCERRADO)){
cobrancaDocumentoHelper.setSituacaoOrdemServico(OrdemServico.SITUACAO_DESC_ABREV_ENCERRADO);
}
if(situacaoOS.equals(OrdemServico.SITUACAO_EXECUCAO_EM_ANDAMENTO)){
cobrancaDocumentoHelper.setSituacaoOrdemServico(OrdemServico.SITUACAO_DESC_ABREV_EXECUCAO_EM_ANDAMENTO);
}
if(situacaoOS.equals(OrdemServico.SITUACAO_AGUARDANDO_LIBERACAO)){
cobrancaDocumentoHelper.setSituacaoOrdemServico(OrdemServico.SITUACAO_DESC_ABREV_AGUARDANDO_LIBERACAO);
}
}
}
if (colecaoCobrancaDocumentoItem == null
|| colecaoCobrancaDocumentoItem.isEmpty()) {
cobrancaDocumentoHelper.setQuantidadeItensCobrancaDocumento(0);
} else {
cobrancaDocumentoHelper
.setQuantidadeItensCobrancaDocumento(colecaoCobrancaDocumentoItem
.size());
}
colecaoCobrancaDocumentoHelper.add(cobrancaDocumentoHelper);
filtroCobrancaDocumentoItem.limparListaParametros();
}
sessao.setAttribute("colecaoDocumentoCobranca",
colecaoCobrancaDocumentoHelper);
sessao.setAttribute("filtrarDocumentoCobrancaHelper", filtrarDocumentoCobrancaHelper);
return retorno;
}
/**
* Este m�todo � respons�vel por verificar as a��es de cobran�a selecionadas
* para uso posterior na pesquisa dos ids da a��es do ciclo
*
* @author Anderson Italo
* @param fachada
* @param idsCobrancaAcao
* @return
*/
private Collection pesquisarIdsAcoesCobranca(Fachada fachada, String[] idsCobrancaAcao) {
Collection idsCobrancaAcaoAux = null;
if (idsCobrancaAcao == null){
FiltroCobrancaAcao filtroCobrancaAcao = new FiltroCobrancaAcao();
Collection colecaoCobrancaAcao = fachada.pesquisar(filtroCobrancaAcao, CobrancaAcao.class.getName());
if (colecaoCobrancaAcao !=null && !colecaoCobrancaAcao.isEmpty()){
idsCobrancaAcaoAux = new ArrayList();
int indice = 0;
for (Iterator colecaoIterator = colecaoCobrancaAcao.iterator(); colecaoIterator
.hasNext();) {
CobrancaAcao cobrancaAcao = (CobrancaAcao) colecaoIterator.next();
idsCobrancaAcaoAux.add(cobrancaAcao.getId());
indice ++;
}
}
}else if (idsCobrancaAcao.length < 1){
FiltroCobrancaAcao filtroCobrancaAcao = new FiltroCobrancaAcao();
Collection colecaoCobrancaAcao = fachada.pesquisar(filtroCobrancaAcao, CobrancaAcao.class.getName());
if (colecaoCobrancaAcao !=null && !colecaoCobrancaAcao.isEmpty()){
idsCobrancaAcaoAux = new ArrayList();
int indice = 0;
for (Iterator colecaoIterator = colecaoCobrancaAcao.iterator(); colecaoIterator
.hasNext();) {
CobrancaAcao cobrancaAcao = (CobrancaAcao) colecaoIterator.next();
idsCobrancaAcaoAux.add(cobrancaAcao.getId());
indice ++;
}
}
}else if (idsCobrancaAcao[0].toString().equals("-1")){
FiltroCobrancaAcao filtroCobrancaAcao = new FiltroCobrancaAcao();
Collection colecaoCobrancaAcao = fachada.pesquisar(filtroCobrancaAcao, CobrancaAcao.class.getName());
if (colecaoCobrancaAcao !=null && !colecaoCobrancaAcao.isEmpty()){
idsCobrancaAcaoAux = new ArrayList();
int indice = 0;
for (Iterator colecaoIterator = colecaoCobrancaAcao.iterator(); colecaoIterator
.hasNext();) {
CobrancaAcao cobrancaAcao = (CobrancaAcao) colecaoIterator.next();
idsCobrancaAcaoAux.add(cobrancaAcao.getId());
indice ++;
}
}
}else if (idsCobrancaAcao.length >= 1){
for (int i = 0; i < idsCobrancaAcao.length; i++) {
idsCobrancaAcaoAux = new ArrayList();
idsCobrancaAcaoAux.add(new Integer( idsCobrancaAcao[i]));
}
}
return idsCobrancaAcaoAux;
}
/**
* Este m�todo � respons�vel pela pagina��o da cole��o
* a ser exibida na tela de resultados
*
* @author Anderson Italo
* @param fachada
* @param idsCobrancaAcao
* @return
*/
private Collection buscaColecaoPaginada(int numeroPagina, Collection colecaoDocumentosCobranca){
Collection colecao = null;
if (numeroPagina > 0) {
if (colecaoDocumentosCobranca != null
&& !colecaoDocumentosCobranca.isEmpty()) {
int posicao = 0;
colecao = new ArrayList();
Iterator iteratorColecaoDocumentosCobranca = colecaoDocumentosCobranca
.iterator();
CobrancaDocumento documentoCobranca = null;
while (iteratorColecaoDocumentosCobranca.hasNext()) {
documentoCobranca = (CobrancaDocumento) iteratorColecaoDocumentosCobranca
.next();
if (posicao >= (numeroPagina * 10)) {
colecao.add(documentoCobranca);
}
posicao++;
}
}
} else {
colecao = colecaoDocumentosCobranca;
}
return colecao;
}
}