package gcom.relatorio.cobranca;
import gcom.batch.Relatorio;
import gcom.cadastro.sistemaparametro.SistemaParametro;
import gcom.fachada.Fachada;
import gcom.gui.ActionServletException;
import gcom.relatorio.ConstantesRelatorios;
import gcom.relatorio.RelatorioDataSource;
import gcom.seguranca.acesso.usuario.Usuario;
import gcom.tarefa.TarefaException;
import gcom.tarefa.TarefaRelatorio;
import gcom.util.ControladorException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* classe respons�vel por criar o Relat�rio de D�bitos
*
* @author Genival Barbosa
* @date 24/08/2009
*
*/
public class RelatorioAcompanhamentoAcoesCobranca extends TarefaRelatorio {
private static final long serialVersionUID = 1L;
public RelatorioAcompanhamentoAcoesCobranca(Usuario usuario) {
super(usuario, ConstantesRelatorios.RELATORIO_ACOMPANHAMENTO_ACOES_COBRANCA);
}
@Deprecated
public RelatorioAcompanhamentoAcoesCobranca() {
super(null, "");
}
@Override
public Object executar() throws TarefaException {
Fachada fachada = Fachada.getInstancia();
Object obj = null;
Object[] dados = null;
byte[] retorno = null;
String idCobrancaAcao = (String) getParametro("idCobrancaAcao");
String dataInicial = (String) getParametro("dataInicial");
String dataFinal = (String) getParametro("dataFinal");
String chkEstado = (String) getParametro("chkEstado");
String chkGerencia = (String) getParametro("chkGerencia");
String idGerenciaRegional = (String) getParametro("idGerenciaRegional");
String chkUnidade = (String) getParametro("chkUnidade");
String idUnidadeNegocio = (String) getParametro("idUnidadeNegocio");
String chkLocalidade = (String) getParametro("chkLocalidade");
String idLocalidade = (String) getParametro("idLocalidade");
String idEmpresa = (String) getParametro("idEmpresa");
Integer tipoRelatorio = 0;
RelatorioAcompanhamentoAcoesCobrancaHelper helper = new RelatorioAcompanhamentoAcoesCobrancaHelper(idCobrancaAcao,dataInicial,
dataFinal, chkEstado, chkGerencia, idGerenciaRegional,
chkUnidade, idUnidadeNegocio, chkLocalidade,
idLocalidade, idEmpresa);
List colecaoAcaoCobranca = null;
if(chkEstado != null && chkEstado.equals("on") && (chkGerencia == null || chkGerencia.equals(""))
&& idGerenciaRegional.equals("-1")
&& (chkUnidade == null || chkUnidade.equals(""))
&& idUnidadeNegocio.equals("-1")
&& (chkLocalidade == null || chkLocalidade.equals(""))
&& idLocalidade.equals("-1")){
//relatorio 1
tipoRelatorio = 1;
System.out.println("relatorio1");
}else if(chkEstado != null && chkEstado.equals("on") && chkGerencia != null && chkGerencia.equals("on")
&& idGerenciaRegional.equals("-1")
&& (chkUnidade == null || chkUnidade.equals(""))
&& idUnidadeNegocio.equals("-1")
&& (chkLocalidade == null || chkLocalidade.equals(""))
&& idLocalidade.equals("-1")){
//relatorio 2
tipoRelatorio = 2;
System.out.println("relatorio2");
}else if((chkEstado == null || chkEstado.equals(""))
&& chkGerencia != null && chkGerencia.equals("on")
&& !idGerenciaRegional.equals("-1")
&& (chkUnidade == null || chkUnidade.equals(""))
&& idUnidadeNegocio.equals("-1")
&& (chkLocalidade == null || chkLocalidade.equals(""))
&& idLocalidade.equals("-1")){
//relatorio 3
tipoRelatorio = 3;
System.out.println("relatorio3");
}else if(chkEstado != null && chkEstado.equals("on") && chkGerencia != null && chkGerencia.equals("on")
&& idGerenciaRegional.equals("-1") && chkUnidade != null && chkUnidade.equals("on")
&& idUnidadeNegocio.equals("-1")
&& (chkLocalidade == null || chkLocalidade.equals(""))
&& idLocalidade.equals("-1")){
//relatorio 4
tipoRelatorio = 4;
System.out.println("relatorio4");
}else if((chkEstado == null || chkEstado.equals(""))
&& (chkGerencia == null || chkGerencia.equals(""))
&& idGerenciaRegional.equals("-1") && chkUnidade != null && chkUnidade.equals("on")
&& !idUnidadeNegocio.equals("-1")
&& (chkLocalidade == null || chkLocalidade.equals(""))
&& idLocalidade.equals("-1")){
//relatorio 5
tipoRelatorio = 5;
System.out.println("relatorio5");
}else if(chkEstado != null && chkEstado.equals("on") && chkGerencia != null && chkGerencia.equals("on")
&& idGerenciaRegional.equals("-1") && chkUnidade != null && chkUnidade.equals("on")
&& idUnidadeNegocio.equals("-1") && chkLocalidade != null && chkLocalidade.equals("on")
&& idLocalidade.equals("-1")){
//relatorio 6
tipoRelatorio = 6;
System.out.println("relatorio6");
}else if((chkEstado == null || chkEstado.equals(""))
&& (chkGerencia == null || chkGerencia.equals(""))
&& idGerenciaRegional.equals("-1")
&& (chkUnidade == null || chkUnidade.equals(""))
&& idUnidadeNegocio.equals("-1") && chkLocalidade != null && chkLocalidade.equals("on")
&& !idLocalidade.equals("-1")){
//relatorio 7
tipoRelatorio = 7;
System.out.println("relatorio7");
}else if((chkEstado == null || chkEstado.equals(""))
&& chkGerencia != null && chkGerencia.equals("on")
&& !idGerenciaRegional.equals("-1") && chkUnidade != null && chkUnidade.equals("on")
&& idUnidadeNegocio.equals("-1")
&& (chkLocalidade == null || chkLocalidade.equals(""))
&& idLocalidade.equals("-1")){
//relatorio 8
tipoRelatorio = 8;
System.out.println("realtorio8");
}else if((chkEstado == null || chkEstado.equals(""))
&& chkGerencia != null && chkGerencia.equals("on")
&& !idGerenciaRegional.equals("-1") && chkUnidade != null && chkUnidade.equals("on")
&& idUnidadeNegocio.equals("-1") && chkLocalidade != null && chkLocalidade.equals("on")
&& idLocalidade.equals("-1")){
//relatorio 9
tipoRelatorio = 9;
System.out.println("relatorio9");
}else if((chkEstado == null || chkEstado.equals(""))
&& (chkGerencia == null || chkGerencia.equals(""))
&& idGerenciaRegional.equals("-1") && chkUnidade != null && chkUnidade.equals("on")
&& !idUnidadeNegocio.equals("-1") && chkLocalidade != null && chkLocalidade.equals("on")
&& idLocalidade.equals("-1")){
//relatorio 10
tipoRelatorio = 10;
System.out.println("relatorio10");
}else{
//colocar uma mensagem de erro avisando que as combina��es n�o s�o adequadas para um relatorio
throw new ActionServletException(
"atencao.selecao.invalida");
}
colecaoAcaoCobranca = fachada.consultarColecaoAcaoCobranca(helper);
Collection<RelatorioAcompanhamentoAcoesCobrancaBean> colecaoBean = new ArrayList<RelatorioAcompanhamentoAcoesCobrancaBean>();
if(colecaoAcaoCobranca != null)
{
// pra cada objeto obter a categoria
String idLocalidadeAnterior;
String idDocumentoBean = null;
String idGerenciaBean = null;
String nomeGerenciaBean = null;
String idUnidadeBean = null;
String nomeUnidadeBean = null;
String idLocalidadeBean = null;
String nomeLocalidadeBean = null;
String idCobrancaAcaoSituacaoBean = null;
String nomeCobrancaAcaoSituacaoBean = null;
String quantidadeSituacaoBean = null;
String valorSituacaoBean = null;
String idEmpresaBean = "-1";
String nomeEmpresaBean = "";
String idCobrancaAcaoBean = null;
String nomeCobrancaAcaoBean = null;
int count = 0;
RelatorioAcompanhamentoAcoesCobrancaBean bean = null;
String ordemSituacoes[] = new String[6];
int construtor = -1;
for (int i = 0; i < colecaoAcaoCobranca.size(); i++) {
obj = colecaoAcaoCobranca.get(i);
if (obj instanceof Object[]) {
dados = (Object[]) obj;
idLocalidadeAnterior = idLocalidadeBean;
if(!idEmpresa.trim().equals("-1"))
{
idGerenciaBean = dados[0].toString();
nomeGerenciaBean = dados[1].toString();
idUnidadeBean = dados[2].toString();
nomeUnidadeBean = dados[3].toString();
idLocalidadeBean = dados[4].toString();
nomeLocalidadeBean = dados[5].toString();
idCobrancaAcaoSituacaoBean = dados[6].toString();
nomeCobrancaAcaoSituacaoBean = dados[7].toString();
quantidadeSituacaoBean = dados[8].toString();
valorSituacaoBean = dados[9].toString();
idEmpresaBean = dados[10].toString();
nomeEmpresaBean = dados[11].toString();
idCobrancaAcaoBean = dados[12].toString();
nomeCobrancaAcaoBean = dados[13].toString();
}else {
idGerenciaBean = dados[0].toString();
nomeGerenciaBean = dados[1].toString();
idUnidadeBean = dados[2].toString();
nomeUnidadeBean = dados[3].toString();
idLocalidadeBean = dados[4].toString();
nomeLocalidadeBean = dados[5].toString();
idCobrancaAcaoSituacaoBean = dados[6].toString();
nomeCobrancaAcaoSituacaoBean = dados[7].toString();
quantidadeSituacaoBean = dados[8].toString();
valorSituacaoBean = dados[9].toString();
idCobrancaAcaoBean = dados[10].toString();
nomeCobrancaAcaoBean = dados[11].toString();
}
if (idLocalidadeAnterior == null) {
idLocalidadeAnterior = idLocalidadeBean;
bean =
new RelatorioAcompanhamentoAcoesCobrancaBean(idCobrancaAcaoBean, nomeCobrancaAcaoBean,
dataInicial, dataFinal, chkEstado, chkGerencia, chkUnidade, chkLocalidade,
idDocumentoBean, idGerenciaBean, nomeGerenciaBean, idUnidadeBean,
nomeUnidadeBean,idLocalidadeBean, nomeLocalidadeBean,
idCobrancaAcaoSituacaoBean, nomeCobrancaAcaoSituacaoBean, quantidadeSituacaoBean,
valorSituacaoBean, idEmpresaBean, nomeEmpresaBean, tipoRelatorio);
}
if (idLocalidadeAnterior.equals(idLocalidadeBean)) {
count++;
} else {
colecaoBean.add(bean);
bean =
new RelatorioAcompanhamentoAcoesCobrancaBean(idCobrancaAcaoBean, nomeCobrancaAcaoBean,
dataInicial, dataFinal, chkEstado, chkGerencia, chkUnidade, chkLocalidade,
idDocumentoBean, idGerenciaBean, nomeGerenciaBean, idUnidadeBean,
nomeUnidadeBean,idLocalidadeBean, nomeLocalidadeBean,
idCobrancaAcaoSituacaoBean, nomeCobrancaAcaoSituacaoBean, quantidadeSituacaoBean,
valorSituacaoBean, idEmpresaBean, nomeEmpresaBean, tipoRelatorio);
count = 1;
}
construtor = -1;
for(int l =0; l<6 ;l++){
if(ordemSituacoes[l]!=null && ordemSituacoes[l].equals(idCobrancaAcaoSituacaoBean)){
construtor = l;
}
}
if (construtor==0){
bean.setIdCobrancaAcaoSituacao1(idCobrancaAcaoSituacaoBean);
bean.setNomeCobrancaAcaoSituacao1(nomeCobrancaAcaoSituacaoBean);
bean.setQuantidadeSituacao1(quantidadeSituacaoBean);
bean.setValorSituacao1(valorSituacaoBean);
}else if(construtor ==1){
bean.setIdCobrancaAcaoSituacao2(idCobrancaAcaoSituacaoBean);
bean.setNomeCobrancaAcaoSituacao2(nomeCobrancaAcaoSituacaoBean);
bean.setQuantidadeSituacao2(quantidadeSituacaoBean);
bean.setValorSituacao2(valorSituacaoBean);
}else if(construtor ==2){
bean.setIdCobrancaAcaoSituacao3(idCobrancaAcaoSituacaoBean);
bean.setNomeCobrancaAcaoSituacao3(nomeCobrancaAcaoSituacaoBean);
bean.setQuantidadeSituacao3(quantidadeSituacaoBean);
bean.setValorSituacao3(valorSituacaoBean);
}else if(construtor ==3){
bean.setIdCobrancaAcaoSituacao4(idCobrancaAcaoSituacaoBean);
bean.setNomeCobrancaAcaoSituacao4(nomeCobrancaAcaoSituacaoBean);
bean.setQuantidadeSituacao4(quantidadeSituacaoBean);
bean.setValorSituacao4(valorSituacaoBean);
}else if(construtor ==4){
bean.setIdCobrancaAcaoSituacao5(idCobrancaAcaoSituacaoBean);
bean.setNomeCobrancaAcaoSituacao5(nomeCobrancaAcaoSituacaoBean);
bean.setQuantidadeSituacao5(quantidadeSituacaoBean);
bean.setValorSituacao5(valorSituacaoBean);
}else if(construtor ==5){
bean.setIdCobrancaAcaoSituacao6(idCobrancaAcaoSituacaoBean);
bean.setNomeCobrancaAcaoSituacao6(nomeCobrancaAcaoSituacaoBean);
bean.setQuantidadeSituacao6(quantidadeSituacaoBean);
bean.setValorSituacao6(valorSituacaoBean);
}else if ((count == 1 && ordemSituacoes[count-1] == null)){
bean.setIdCobrancaAcaoSituacao1(idCobrancaAcaoSituacaoBean);
bean.setNomeCobrancaAcaoSituacao1(nomeCobrancaAcaoSituacaoBean);
bean.setQuantidadeSituacao1(quantidadeSituacaoBean);
bean.setValorSituacao1(valorSituacaoBean);
ordemSituacoes[count-1]= idCobrancaAcaoSituacaoBean;
} else if ((count == 2 && ordemSituacoes[count-1] == null)){
bean.setIdCobrancaAcaoSituacao2(idCobrancaAcaoSituacaoBean);
bean.setNomeCobrancaAcaoSituacao2(nomeCobrancaAcaoSituacaoBean);
bean.setQuantidadeSituacao2(quantidadeSituacaoBean);
bean.setValorSituacao2(valorSituacaoBean);
ordemSituacoes[count-1]= idCobrancaAcaoSituacaoBean;
} else if ((count == 3 && ordemSituacoes[count-1] == null)){
bean.setIdCobrancaAcaoSituacao3(idCobrancaAcaoSituacaoBean);
bean.setNomeCobrancaAcaoSituacao3(nomeCobrancaAcaoSituacaoBean);
bean.setQuantidadeSituacao3(quantidadeSituacaoBean);
bean.setValorSituacao3(valorSituacaoBean);
ordemSituacoes[count-1]= idCobrancaAcaoSituacaoBean;
} else if ((count == 4 && ordemSituacoes[count-1] == null)){
bean.setIdCobrancaAcaoSituacao4(idCobrancaAcaoSituacaoBean);
bean.setNomeCobrancaAcaoSituacao4(nomeCobrancaAcaoSituacaoBean);
bean.setQuantidadeSituacao4(quantidadeSituacaoBean);
bean.setValorSituacao4(valorSituacaoBean);
ordemSituacoes[count-1]= idCobrancaAcaoSituacaoBean;
} else if ((count == 5 && ordemSituacoes[count-1] == null)){
bean.setIdCobrancaAcaoSituacao5(idCobrancaAcaoSituacaoBean);
bean.setNomeCobrancaAcaoSituacao5(nomeCobrancaAcaoSituacaoBean);
bean.setQuantidadeSituacao5(quantidadeSituacaoBean);
bean.setValorSituacao5(valorSituacaoBean);
ordemSituacoes[count-1]= idCobrancaAcaoSituacaoBean;
} else if ((count == 6 && ordemSituacoes[count-1] == null)){
bean.setIdCobrancaAcaoSituacao6(idCobrancaAcaoSituacaoBean);
bean.setNomeCobrancaAcaoSituacao6(nomeCobrancaAcaoSituacaoBean);
bean.setQuantidadeSituacao6(quantidadeSituacaoBean);
bean.setValorSituacao6(valorSituacaoBean);
ordemSituacoes[count-1]= idCobrancaAcaoSituacaoBean;
}
else {
construtor = -1;
for(int j =0; j<6 ;j++){
if(ordemSituacoes[j]!=null && ordemSituacoes[j].equals(idCobrancaAcaoSituacaoBean)){
construtor = j;
}
}
if (construtor==0){
bean.setIdCobrancaAcaoSituacao1(idCobrancaAcaoSituacaoBean);
bean.setNomeCobrancaAcaoSituacao1(nomeCobrancaAcaoSituacaoBean);
bean.setQuantidadeSituacao1(quantidadeSituacaoBean);
bean.setValorSituacao1(valorSituacaoBean);
}else if(construtor ==1){
bean.setIdCobrancaAcaoSituacao2(idCobrancaAcaoSituacaoBean);
bean.setNomeCobrancaAcaoSituacao2(nomeCobrancaAcaoSituacaoBean);
bean.setQuantidadeSituacao2(quantidadeSituacaoBean);
bean.setValorSituacao2(valorSituacaoBean);
}else if(construtor ==2){
bean.setIdCobrancaAcaoSituacao3(idCobrancaAcaoSituacaoBean);
bean.setNomeCobrancaAcaoSituacao3(nomeCobrancaAcaoSituacaoBean);
bean.setQuantidadeSituacao3(quantidadeSituacaoBean);
bean.setValorSituacao3(valorSituacaoBean);
}else if(construtor ==3){
bean.setIdCobrancaAcaoSituacao4(idCobrancaAcaoSituacaoBean);
bean.setNomeCobrancaAcaoSituacao4(nomeCobrancaAcaoSituacaoBean);
bean.setQuantidadeSituacao4(quantidadeSituacaoBean);
bean.setValorSituacao4(valorSituacaoBean);
}else if(construtor ==4){
bean.setIdCobrancaAcaoSituacao5(idCobrancaAcaoSituacaoBean);
bean.setNomeCobrancaAcaoSituacao5(nomeCobrancaAcaoSituacaoBean);
bean.setQuantidadeSituacao5(quantidadeSituacaoBean);
bean.setValorSituacao5(valorSituacaoBean);
}else if(construtor ==5){
bean.setIdCobrancaAcaoSituacao6(idCobrancaAcaoSituacaoBean);
bean.setNomeCobrancaAcaoSituacao6(nomeCobrancaAcaoSituacaoBean);
bean.setQuantidadeSituacao6(quantidadeSituacaoBean);
bean.setValorSituacao6(valorSituacaoBean);
}
}
}
}
if (bean != null) {
colecaoBean.add(bean);
}else {
throw new ActionServletException(
"atencao.pesquisa.nenhumresultado");
}
int tipoFormatoRelatorio = (Integer) getParametro("tipoRelatorio");
//Par�metros do relat�rio
Map parametros = new HashMap();
//Recupera o AnoMesFaturamento de Sistema Parametro
SistemaParametro sistemaParametro = fachada.pesquisarParametrosDoSistema();
parametros.put("imagem", sistemaParametro.getImagemRelatorio());
RelatorioDataSource ds = new RelatorioDataSource((List) colecaoBean);
// exporta o relat�rio em pdf e retorna o array de bytes
retorno = gerarRelatorio(
ConstantesRelatorios.RELATORIO_ACOMPANHAMENTO_ACOES_COBRANCA,
parametros, ds, tipoFormatoRelatorio);
}else {
throw new ActionServletException(
"atencao.pesquisa.nenhumresultado");
}
// ------------------------------------
// Grava o relat�rio no sistema
try {
persistirRelatorioConcluido(retorno, Relatorio.RELATORIO_ACOMPANHAMENTO_ACOES_COBRANCA, 0);
} catch (ControladorException e) {
e.printStackTrace();
throw new TarefaException("Erro ao gravar relat�rio no sistema", e);
}
// ------------------------------------
// retorna o relat�rio gerado
return retorno;
}
@Override
public int calcularTotalRegistrosRelatorio() {
return 0;
}
@Override
public void agendarTarefaBatch() {
}
}