package gcom.batch.faturamento; import gcom.cadastro.sistemaparametro.SistemaParametro; import gcom.fachada.Fachada; import gcom.faturamento.FaturamentoGrupo; import gcom.seguranca.acesso.usuario.Usuario; import gcom.tarefa.TarefaBatch; import gcom.tarefa.TarefaException; import gcom.util.ConstantesJNDI; import gcom.util.ConstantesSistema; import gcom.util.agendadortarefas.AgendadorTarefas; import java.util.Collection; import java.util.Iterator; /** * Tarefa que manda para batch Emitir Contas * * @author Rodrigo Silveira * @created 05/12/2006 */ public class TarefaBatchEmitirContas extends TarefaBatch { private static final long serialVersionUID = 1L; public TarefaBatchEmitirContas(Usuario usuario, int idFuncionalidadeIniciada) { super(usuario, idFuncionalidadeIniciada); } @Deprecated public TarefaBatchEmitirContas() { super(null, 0); } public Object executar() throws TarefaException { FaturamentoGrupo faturamentoGrupo = (FaturamentoGrupo) getParametro("faturamentoGrupo"); Integer anoMesFaturamentoGrupo = (Integer) getParametro("anoMesFaturamentoGrupo"); Collection colecaoIdsEmpresas = (Collection) getParametro(ConstantesSistema.COLECAO_UNIDADES_PROCESSAMENTO_BATCH); SistemaParametro sistemaParametro = Fachada.getInstancia().pesquisarParametrosDoSistema(); // Manda rodar cada tipo de conta numa thread diferente if (!sistemaParametro.getNomeAbreviadoEmpresa().equalsIgnoreCase("CAERN") && !sistemaParametro.getNomeAbreviadoEmpresa().equalsIgnoreCase("CAER") && !sistemaParametro.getNomeAbreviadoEmpresa().equalsIgnoreCase("CAEMA") && !sistemaParametro.getNomeAbreviadoEmpresa().equalsIgnoreCase("COSANPA")) { if (faturamentoGrupo != null) { for (int tipoConta = 0; tipoConta < 6; tipoConta++) { if (tipoConta == 3 || tipoConta == 4) { enviarMensagemControladorBatch( ConstantesJNDI.BATCH_EMITIR_CONTAS_MDB, new Object[] { anoMesFaturamentoGrupo, faturamentoGrupo, this.getIdFuncionalidadeIniciada(), tipoConta, null, ConstantesSistema.NAO } ); } else { Iterator iteratorEmpresas = colecaoIdsEmpresas.iterator(); while (iteratorEmpresas.hasNext()) { Integer idEmpresa = (Integer) iteratorEmpresas.next(); enviarMensagemControladorBatch( ConstantesJNDI.BATCH_EMITIR_CONTAS_MDB, new Object[] { anoMesFaturamentoGrupo, faturamentoGrupo, this.getIdFuncionalidadeIniciada(), tipoConta, idEmpresa, ConstantesSistema.NAO } ); } } } } else { for (int tipoConta = 3; tipoConta < 5; tipoConta++) { enviarMensagemControladorBatch( ConstantesJNDI.BATCH_EMITIR_CONTAS_MDB, new Object[] { anoMesFaturamentoGrupo, faturamentoGrupo, this.getIdFuncionalidadeIniciada(), tipoConta, null, ConstantesSistema.SIM }); } } } else if ((sistemaParametro.getNomeAbreviadoEmpresa().equalsIgnoreCase("CAERN")) || (sistemaParametro.getNomeAbreviadoEmpresa().equalsIgnoreCase("CAEMA")) || (sistemaParametro.getNomeAbreviadoEmpresa().equalsIgnoreCase("COSANPA"))){ //QUANDO A EMPRESA FOR CAERN enviarMensagemControladorBatch( ConstantesJNDI.BATCH_EMITIR_CONTAS_MDB, new Object[] { anoMesFaturamentoGrupo, faturamentoGrupo, this.getIdFuncionalidadeIniciada(), 5, 1, ConstantesSistema.SIM }); //CAER }else{ if (faturamentoGrupo != null) { for (int tipoConta = 0; tipoConta < 2; tipoConta++) { if (tipoConta == 2) { enviarMensagemControladorBatch( ConstantesJNDI.BATCH_EMITIR_CONTAS_MDB, new Object[] { anoMesFaturamentoGrupo, faturamentoGrupo, this.getIdFuncionalidadeIniciada(), tipoConta, null, ConstantesSistema.NAO } ); } else { enviarMensagemControladorBatch( ConstantesJNDI.BATCH_EMITIR_CONTAS_MDB, new Object[] { anoMesFaturamentoGrupo, faturamentoGrupo, this.getIdFuncionalidadeIniciada(), tipoConta, 1, ConstantesSistema.NAO } ); } } } else { enviarMensagemControladorBatch( ConstantesJNDI.BATCH_EMITIR_CONTAS_MDB, new Object[] { anoMesFaturamentoGrupo, faturamentoGrupo, this.getIdFuncionalidadeIniciada(), 2, null, ConstantesSistema.SIM }); } } return null; } @Override public Collection pesquisarTodasUnidadeProcessamentoBatch() { return null; } @Override public Collection pesquisarTodasUnidadeProcessamentoReinicioBatch() { return null; } @Override public void agendarTarefaBatch() { AgendadorTarefas.agendarTarefa("EmitirContasBatch", this); } }