public boolean runWithEntity(IEntity<?> entity) { super.beforeRun(); boolean result = false; /* Verifica se a entidade é compatível */ /* Verifica se a entidade passada eh um DocumentoCobranca ou pertence eh descendente */ if (ClassUtils.isAssignable(entity.getInfo().getType(), Contrato.class)) { Contrato oContrato = (Contrato) entity.getObject(); this.cpfCnpj = oContrato.getPessoa().getDocumento(); /* Alguns dados poderao ser inicializados aqui */ this.categoriaContratoId = IDAO.ENTITY_UNSAVED; /* Define as datas de vencimento e recebimento amplas */ Calendar dataInicial = CalendarUtils.getCalendar(1900, Calendar.JANUARY, 1); Calendar dataAtual = CalendarUtils.getCalendar(); this.dataVencimentoInicial = (Calendar) dataInicial.clone(); this.dataVencimentoFinal = (Calendar) dataAtual.clone(); this.dataRecebimentoInicial = (Calendar) dataInicial.clone(); this.dataRecebimentoFinal = (Calendar) dataAtual.clone(); /* Não executa nada, pois o processo gera um PDF e é importante * que o operador defina as propriedades do relatório antes de gerar o PDF */ result = true; } else if (ClassUtils.isAssignable(entity.getInfo().getType(), Pessoa.class)) { Pessoa oPessoa = (Pessoa) entity.getObject(); this.cpfCnpj = oPessoa.getDocumento(); /* Alguns dados poderao ser inicializados aqui */ this.categoriaContratoId = IDAO.ENTITY_UNSAVED; /* Define as datas de vencimento e recebimento amplas */ Calendar dataInicial = CalendarUtils.getCalendar(1900, Calendar.JANUARY, 1); Calendar dataAtual = CalendarUtils.getCalendar(); this.dataVencimentoInicial = (Calendar) dataInicial.clone(); this.dataVencimentoFinal = (Calendar) dataAtual.clone(); this.dataRecebimentoInicial = (Calendar) dataInicial.clone(); this.dataRecebimentoFinal = (Calendar) dataAtual.clone(); /* Não executa nada, pois o processo gera um PDF e é importante * que o operador defina as propriedades do relatório antes de gerar o PDF */ result = true; } else { this.getMessageList() .add( new BusinessMessage( IRunnableEntityProcess.class, "ENTITY_NOT_COMPATIBLE", PROCESS_NAME, entity.getInfo().getType().getName())); } return result; }
@Test public void quitar() throws Exception { /* * Cria os parâmetros necessários para o serviço. */ Conta conta = UtilsCrud.objectRetrieve(this.serviceManager, Conta.class, 1l, null); Contrato contrato = UtilsCrud.objectRetrieve(this.serviceManager, Contrato.class, 1l, null); Operacao operacao = UtilsCrud.objectRetrieve(this.serviceManager, Operacao.class, 1l, null); CentroCusto centroCusto = UtilsCrud.objectRetrieve(this.serviceManager, CentroCusto.class, 1l, null); ItemCusto itemCusto = UtilsCrud.objectRetrieve(this.serviceManager, ItemCusto.class, 1l, null); ClassificacaoContabil classificacaoContabil = UtilsCrud.objectRetrieve(this.serviceManager, ClassificacaoContabil.class, 1l, null); Calendar data = CalendarUtils.getCalendar(2007, Calendar.SEPTEMBER, 18); BigDecimal valor = DecimalUtils.TEN; Lancamento lancamento = UtilsLancamento.inserir( this.serviceManager, conta, contrato, data, data, "", operacao, Transacao.CREDITO, centroCusto, classificacaoContabil, itemCusto, valor, null, false, null); /* * Executa o serviço. */ ServiceData sd = new ServiceData(QuitarLancamentoService.SERVICE_NAME, null); sd.getArgumentList().setProperty(QuitarLancamentoService.IN_CONTA, conta); sd.getArgumentList().setProperty(QuitarLancamentoService.IN_DATA, data); sd.getArgumentList().setProperty(QuitarLancamentoService.IN_LANCAMENTO, lancamento); sd.getArgumentList().setProperty(QuitarLancamentoService.IN_VALOR, valor); this.serviceManager.execute(sd); /* * Recarrega o lançamento para atualização. */ lancamento = UtilsCrud.objectRetrieve(this.serviceManager, Lancamento.class, lancamento.getId(), null); lancamentoMovimento = (LancamentoMovimento) sd.getFirstOutput(); assertEquals(conta.toString(), lancamentoMovimento.getConta().toString()); assertEquals(data, lancamentoMovimento.getData()); assertEquals(lancamento.toString(), lancamentoMovimento.getLancamento().toString()); assertEquals( LancamentoMovimentoCategoria.QUITADO, lancamentoMovimento.getLancamentoMovimentoCategoria()); assertEquals(valor, lancamentoMovimento.getValor()); assertEquals(DecimalUtils.getBigDecimal(0), lancamento.getSaldo()); }
public String toString() { String result = ""; if (this.ocorrencia != null) { result = "Código: " + this.ocorrencia.getCodigo(); result += " / Descrição: " + this.ocorrencia.getDescricao(); result += " / Data: " + CalendarUtils.formatDate(this.dataOcorrencia); } return result; }
@Test public void testExecute() throws BusinessException { // String documento = "04175308000129"; String documento = ""; Calendar dataInicial = CalendarUtils.getCalendar(2009, Calendar.MARCH, 1); Calendar dataFinal = CalendarUtils.getCalendar(2009, Calendar.MARCH, 31); // List<ItemCusto> itemCustoList = UtilsCrud.objectList(this.serviceManager, ItemCusto.class, // "nome like 'Material%'", null); Situacao situacao = Situacao.TODOS; ServiceData sd = new ServiceData(ListarPosicaoContratoService.SERVICE_NAME, null); sd.getArgumentList().setProperty(ListarPosicaoContratoService.IN_DOCUMENTO_OPT, documento); sd.getArgumentList().setProperty(ListarPosicaoContratoService.IN_CONTA_LIST_OPT, new Long[0]); // sd.getArgumentList().setProperty(ListarPosicaoContratoService.IN_ITEM_CUSTO_LIST_OPT, // itemCustoList); sd.getArgumentList().setProperty(ListarPosicaoContratoService.IN_DATA_INICIAL_OPT, dataInicial); sd.getArgumentList().setProperty(ListarPosicaoContratoService.IN_DATA_FINAL_OPT, dataFinal); sd.getArgumentList().setProperty(ListarPosicaoContratoService.IN_SITUACAO_OPT, situacao); this.serviceManager.execute(sd); List<Lancamento> list = sd.getFirstOutput(); assertTrue(list.size() > 0); System.out.printf("%-6s ", "ID"); System.out.printf("%-30s ", "Nome"); System.out.printf("%-30s ", "Descrição"); System.out.printf("%10s ", "Valor"); System.out.println(); // System.out.println("------ ------------------------------ "); for (Lancamento lancamento : list) { System.out.printf("%6s ", lancamento.getId()); System.out.printf("%-30s ", lancamento.getContrato().getPessoa().getNome()); System.out.printf("%-30s ", lancamento.getDescricao()); System.out.printf("%10.2f ", lancamento.getSaldo()); System.out.println(); // System.out.println( // lancamento.getId() + " | " + // CalendarUtils.formatDate(lancamento.getData()) + " | " + // lancamento.getLancamentoItens().get(0).getItemCusto()); } }
/** * Este processo lista as pendências dos contratos para cobrança. * * <p><b>Procedimentos:</b> * * @author Antônio 20070424 * @version 20070424 * @spring.bean id="RelatorioRecebimentoProcess" singleton="false" * @spring.property name="processManager" ref="ProcessManager" */ @ProcessMetadata( label = "Relatório de recebimento", hint = "Gera um relatório com os lançamentos recebimento, seu vencimento, sua data de recebimento e seu valor", description = "Gera um relatório com os lançamentos recebidos no período, seu vencimento, sua data de recebimento e seu valor.") public class RelatorioRecebimentoProcess extends ProcessBasic implements IRunnableEntityProcess { public static final String PROCESS_NAME = "RelatorioRecebimentoProcess"; private String itemCustoIdList = null; private Boolean itemCustoNot = false; private String escritorioContabilIdList = null; private Long categoriaContratoId = IDAO.ENTITY_UNSAVED; private Long municipioId = IDAO.ENTITY_UNSAVED; private Boolean notMunicipio = false; private Long contaId = IDAO.ENTITY_UNSAVED; private Long contratoRepresentanteId = IDAO.ENTITY_UNSAVED; private int tipoContrato = 0; // private Calendar dataLancamentoInicial = CalendarUtils.getCalendar(); // private Calendar dataLancamentoFinal = CalendarUtils.getCalendar(); private Calendar dataVencimentoInicial = CalendarUtils.getCalendar(); private Calendar dataVencimentoFinal = CalendarUtils.getCalendar(); private Calendar dataRecebimentoInicial = CalendarUtils.getCalendar(); private Calendar dataRecebimentoFinal = CalendarUtils.getCalendar(); private Integer quantidadeItensInicial = null; private Integer quantidadeItensFinal = null; private String cpfCnpj = null; private OutputStream outputStream = null; @Override public void start() throws ProcessException { super.start(); // dataLancamentoInicial.set(Calendar.DATE, // dataLancamentoInicial.getActualMinimum(Calendar.DATE)); dataVencimentoInicial.set(Calendar.DATE, dataVencimentoInicial.getActualMinimum(Calendar.DATE)); dataRecebimentoInicial.set( Calendar.DATE, dataRecebimentoInicial.getActualMinimum(Calendar.DATE)); } public void execute() { log.debug("Iniciando RelatorioRecebimentoProcess..."); try { ServiceData sd = new ServiceData(RelatorioRecebimentoService.SERVICE_NAME, null); sd.getArgumentList() .setProperty(RelatorioRecebimentoService.IN_ITEM_CUSTO_ID_LIST, this.itemCustoIdList); sd.getArgumentList() .setProperty(RelatorioRecebimentoService.IN_ITEM_CUSTO_NOT, this.itemCustoNot); sd.getArgumentList() .setProperty( RelatorioRecebimentoService.IN_ESCRITORIO_CONTABIL_ID_LIST, this.escritorioContabilIdList); sd.getArgumentList() .setProperty( RelatorioRecebimentoService.IN_CATEGORIA_CONTRATO_ID, this.categoriaContratoId); sd.getArgumentList() .setProperty(RelatorioRecebimentoService.IN_TIPO_CONTRATO, this.tipoContrato); // sd.getArgumentList().setProperty(RelatorioRecebimentoService.IN_DATA_LANCAMENTO_INICIAL, // this.dataLancamentoInicial); // sd.getArgumentList().setProperty(RelatorioRecebimentoService.IN_DATA_LANCAMENTO_FINAL, // this.dataLancamentoFinal); sd.getArgumentList() .setProperty( RelatorioRecebimentoService.IN_DATA_VENCIMENTO_INICIAL, this.dataVencimentoInicial); sd.getArgumentList() .setProperty( RelatorioRecebimentoService.IN_DATA_VENCIMENTO_FINAL, this.dataVencimentoFinal); sd.getArgumentList() .setProperty( RelatorioRecebimentoService.IN_DATA_RECEBIMENTO_INICIAL, this.dataRecebimentoInicial); sd.getArgumentList() .setProperty( RelatorioRecebimentoService.IN_DATA_RECEBIMENTO_FINAL, this.dataRecebimentoFinal); sd.getArgumentList() .setProperty( RelatorioRecebimentoService.IN_QUANTIDADE_ITENS_INICIAL, this.quantidadeItensInicial); sd.getArgumentList() .setProperty( RelatorioRecebimentoService.IN_QUANTIDADE_ITENS_FINAL, this.quantidadeItensFinal); sd.getArgumentList().setProperty(RelatorioRecebimentoService.IN_CPF_CNPJ, this.cpfCnpj); sd.getArgumentList() .setProperty(RelatorioRecebimentoService.IN_MUNICIPIO_ID_OPT, this.municipioId); sd.getArgumentList() .setProperty(RelatorioRecebimentoService.IN_NOT_MUNICIPIO_OPT, this.notMunicipio); sd.getArgumentList().setProperty(RelatorioRecebimentoService.IN_CONTA_ID_OPT, this.contaId); sd.getArgumentList() .setProperty( RelatorioRecebimentoService.IN_CONTRATO_REPRESENTANTE_ID_OPT, this.contratoRepresentanteId); sd.getArgumentList() .setProperty(RelatorioRecebimentoService.IN_OUTPUT_STREAM, this.outputStream); sd.getArgumentList() .setProperty( RelatorioRecebimentoService.IN_APPLICATION_USER_OPT, this.getUserSession().getUser().getObject()); this.getProcessManager().getServiceManager().execute(sd); sd.getFirstOutput(); } catch (BusinessException e) { /* Armazenando a lista de erros */ this.getMessageList().addAll(e.getErrorList()); } } /** * Constrói uma lista de Categorias de Contratos para ser usada na exibição da página JSF. * * @return List<SelectItem> * @throws BusinessException */ public List<SelectItem> getListCategoriaContrato() throws BusinessException { List<SelectItem> result = this.getProcessManager() .getServiceManager() .getEntityManager() .getEntitySelectItems(ContratoCategoria.class, ""); result.add(0, new SelectItem(IDAO.ENTITY_UNSAVED, "(Todos)")); return result; } public List<SelectItem> getListMunicipio() throws BusinessException { List<SelectItem> result = this.getProcessManager() .getServiceManager() .getEntityManager() .getEntitySelectItems(Municipio.class, ""); result.add(0, new SelectItem(IDAO.ENTITY_UNSAVED, "(Todos)")); return result; } public List<SelectItem> getListConta() throws BusinessException { List<SelectItem> result = this.getProcessManager() .getServiceManager() .getEntityManager() .getEntitySelectItems( Conta.class, " entity.id in (SELECT c.id FROM Conta c inner join c.applicationUsers as user where user.id=" + this.getUserSession().getUser().getId() + ")"); result.add(0, new SelectItem(IDAO.ENTITY_UNSAVED, "(Todas)")); return result; } public List<SelectItem> getListContratoRepresentante() throws BusinessException { List<SelectItem> result = this.getProcessManager() .getServiceManager() .getEntityManager() .getEntitySelectItems(Representante.class, ""); result.add(0, new SelectItem(IDAO.ENTITY_UNSAVED, "(Todos)")); return result; } public List<SelectItem> getListTipoContrato() { List<SelectItem> result = new ArrayList<SelectItem>(3); result.add( new SelectItem( RelatorioRecebimentoService.TipoContrato.TODOS.ordinal(), RelatorioRecebimentoService.TipoContrato.TODOS.getNome())); result.add( new SelectItem( RelatorioRecebimentoService.TipoContrato.ATIVOS.ordinal(), RelatorioRecebimentoService.TipoContrato.ATIVOS.getNome())); result.add( new SelectItem( RelatorioRecebimentoService.TipoContrato.INATIVOS.ordinal(), RelatorioRecebimentoService.TipoContrato.INATIVOS.getNome())); return result; } public String getProcessName() { return PROCESS_NAME; } public String getItemCustoIdList() { return itemCustoIdList; } public void setItemCustoIdList(String itemCustoIdList) { this.itemCustoIdList = itemCustoIdList; } public Long getCategoriaContratoId() { return categoriaContratoId; } public void setCategoriaContratoId(Long categoriaContratoId) { this.categoriaContratoId = categoriaContratoId; } public int getTipoContrato() { return tipoContrato; } public void setTipoContrato(int tipoContrato) { this.tipoContrato = tipoContrato; } public Integer getQuantidadeItensInicial() { return quantidadeItensInicial; } public void setQuantidadeItensInicial(Integer quantidadeItensInicial) { this.quantidadeItensInicial = quantidadeItensInicial; } public Integer getQuantidadeItensFinal() { return quantidadeItensFinal; } public void setQuantidadeItensFinal(Integer quantidadeItensFinal) { this.quantidadeItensFinal = quantidadeItensFinal; } public String getCpfCnpj() { return cpfCnpj; } public void setCpfCnpj(String cpfCnpj) { this.cpfCnpj = cpfCnpj; } public OutputStream getOutputStream() { return outputStream; } public void setOutputStream(OutputStream outputStream) { this.outputStream = outputStream; } // public Calendar getDataLancamentoFinal() { // return dataLancamentoFinal; // } // // public void setDataLancamentoFinal(Calendar dataLancamentoFinal) { // this.dataLancamentoFinal = dataLancamentoFinal; // } // // public Calendar getDataLancamentoInicial() { // return dataLancamentoInicial; // } // // public void setDataLancamentoInicial(Calendar dataLancamentoInicial) { // this.dataLancamentoInicial = dataLancamentoInicial; // } public Calendar getDataVencimentoFinal() { return dataVencimentoFinal; } public void setDataVencimentoFinal(Calendar dataVencimentoFinal) { this.dataVencimentoFinal = dataVencimentoFinal; } public Calendar getDataVencimentoInicial() { return dataVencimentoInicial; } public void setDataVencimentoInicial(Calendar dataVencimentoInicial) { this.dataVencimentoInicial = dataVencimentoInicial; } public Long getContratoRepresentanteId() { return contratoRepresentanteId; } public void setContratoRepresentanteId(Long contratoRepresentanteId) { this.contratoRepresentanteId = contratoRepresentanteId; } public Long getMunicipioId() { return municipioId; } public void setMunicipioId(Long municipioId) { this.municipioId = municipioId; } public Long getContaId() { return contaId; } public void setContaId(Long contaId) { this.contaId = contaId; } public Calendar getDataRecebimentoFinal() { return dataRecebimentoFinal; } public void setDataRecebimentoFinal(Calendar dataRecebimentoFinal) { this.dataRecebimentoFinal = dataRecebimentoFinal; } public Calendar getDataRecebimentoInicial() { return dataRecebimentoInicial; } public void setDataRecebimentoInicial(Calendar dataRecebimentoInicial) { this.dataRecebimentoInicial = dataRecebimentoInicial; } public Boolean getNotMunicipio() { return notMunicipio; } public void setNotMunicipio(Boolean notMunicipio) { this.notMunicipio = notMunicipio; } /*============================================================================== * IRunnableEntityProcess *==============================================================================*/ public boolean runWithEntity(IEntity<?> entity) { super.beforeRun(); boolean result = false; /* Verifica se a entidade é compatível */ /* Verifica se a entidade passada eh um DocumentoCobranca ou pertence eh descendente */ if (ClassUtils.isAssignable(entity.getInfo().getType(), Contrato.class)) { Contrato oContrato = (Contrato) entity.getObject(); this.cpfCnpj = oContrato.getPessoa().getDocumento(); /* Alguns dados poderao ser inicializados aqui */ this.categoriaContratoId = IDAO.ENTITY_UNSAVED; /* Define as datas de vencimento e recebimento amplas */ Calendar dataInicial = CalendarUtils.getCalendar(1900, Calendar.JANUARY, 1); Calendar dataAtual = CalendarUtils.getCalendar(); this.dataVencimentoInicial = (Calendar) dataInicial.clone(); this.dataVencimentoFinal = (Calendar) dataAtual.clone(); this.dataRecebimentoInicial = (Calendar) dataInicial.clone(); this.dataRecebimentoFinal = (Calendar) dataAtual.clone(); /* Não executa nada, pois o processo gera um PDF e é importante * que o operador defina as propriedades do relatório antes de gerar o PDF */ result = true; } else if (ClassUtils.isAssignable(entity.getInfo().getType(), Pessoa.class)) { Pessoa oPessoa = (Pessoa) entity.getObject(); this.cpfCnpj = oPessoa.getDocumento(); /* Alguns dados poderao ser inicializados aqui */ this.categoriaContratoId = IDAO.ENTITY_UNSAVED; /* Define as datas de vencimento e recebimento amplas */ Calendar dataInicial = CalendarUtils.getCalendar(1900, Calendar.JANUARY, 1); Calendar dataAtual = CalendarUtils.getCalendar(); this.dataVencimentoInicial = (Calendar) dataInicial.clone(); this.dataVencimentoFinal = (Calendar) dataAtual.clone(); this.dataRecebimentoInicial = (Calendar) dataInicial.clone(); this.dataRecebimentoFinal = (Calendar) dataAtual.clone(); /* Não executa nada, pois o processo gera um PDF e é importante * que o operador defina as propriedades do relatório antes de gerar o PDF */ result = true; } else { this.getMessageList() .add( new BusinessMessage( IRunnableEntityProcess.class, "ENTITY_NOT_COMPATIBLE", PROCESS_NAME, entity.getInfo().getType().getName())); } return result; } public String getEscritorioContabilIdList() { return escritorioContabilIdList; } public void setEscritorioContabilIdList(String escritorioContabilIdList) { this.escritorioContabilIdList = escritorioContabilIdList; } public Boolean getItemCustoNot() { return itemCustoNot; } public void setItemCustoNot(Boolean itemCustoNot) { this.itemCustoNot = itemCustoNot; } }
@SuppressWarnings("unchecked") public void execute(ServiceData serviceData) throws ServiceException { log.debug("::Iniciando a execução do serviço ListarLancamentoMovimentoService"); try { log.debug("Preparando os argumentos"); /* Obrigatórios */ String inPropriedadeData = (String) serviceData.getArgumentList().getProperty(IN_PROPRIEDADE_DATA); int inOrdem = (Integer) serviceData.getArgumentList().getProperty(IN_ORDEM); /* Opcionais */ Long[] inContasId = (serviceData.getArgumentList().containsProperty(IN_CONTAS_ID_OPT) ? (Long[]) serviceData.getArgumentList().getProperty(IN_CONTAS_ID_OPT) : null); Calendar inDataInicial = (serviceData.getArgumentList().containsProperty(IN_DATA_INICIAL_OPT) ? (Calendar) serviceData.getArgumentList().getProperty(IN_DATA_INICIAL_OPT) : CalendarUtils.getCalendarBaseDate()); Calendar inDataFinal = (serviceData.getArgumentList().containsProperty(IN_DATA_FINAL_OPT) ? (Calendar) serviceData.getArgumentList().getProperty(IN_DATA_FINAL_OPT) : null); Long inLancamentoId = (serviceData.getArgumentList().containsProperty(IN_LANCAMENTO_ID_OPT) ? (Long) serviceData.getArgumentList().getProperty(IN_LANCAMENTO_ID_OPT) : null); Long inDocumentoId = (serviceData.getArgumentList().containsProperty(IN_DOCUMENTO_ID_OPT) ? (Long) serviceData.getArgumentList().getProperty(IN_DOCUMENTO_ID_OPT) : null); Long inContratoId = (serviceData.getArgumentList().containsProperty(IN_CONTRATO_ID_OPT) ? (Long) serviceData.getArgumentList().getProperty(IN_CONTRATO_ID_OPT) : null); Long inItemCustoId = (serviceData.getArgumentList().containsProperty(IN_ITEM_CUSTO_ID_OPT) ? (Long) serviceData.getArgumentList().getProperty(IN_ITEM_CUSTO_ID_OPT) : null); Long inDocumentoCobrancaCategoriaId = (serviceData.getArgumentList().containsProperty(IN_DOCUMENTO_COBRANCA_CATEGORIA_ID_OPT) ? (Long) serviceData.getArgumentList().getProperty(IN_DOCUMENTO_COBRANCA_CATEGORIA_ID_OPT) : null); String inCpfCnpj = (serviceData.getArgumentList().containsProperty(IN_CPF_CNPJ_OPT) ? (String) serviceData.getArgumentList().getProperty(IN_CPF_CNPJ_OPT) : null); LancamentoMovimentoCategoria inTipoOperacao = (serviceData.getArgumentList().containsProperty(IN_TIPO_OPERACAO_OPT) ? (LancamentoMovimentoCategoria) serviceData.getArgumentList().getProperty(IN_TIPO_OPERACAO_OPT) : null); Transacao inTransacao = (serviceData.getArgumentList().containsProperty(IN_TIPO_TRANSACAO_OPT) ? (Transacao) serviceData.getArgumentList().getProperty(IN_TIPO_TRANSACAO_OPT) : null); log.debug("Buscando registros"); /* Montando a clausula SELECT */ String sqlSelect = QueryLancamentoMovimento.SELECT; sqlSelect += " left outer join movimento.lancamento.lancamentos as lancamentos "; /* Montando a clausula WHERE */ String sqlWhere = " where (true = true)"; if (inContasId != null) { String listaContas = ""; for (int i = 0; i < inContasId.length; i++) { if (i > 0) listaContas += ", "; listaContas += inContasId[i].toString(); } sqlWhere += " and (lancamentoMovimento." + LancamentoMovimento.CONTA + " in (" + listaContas + "))"; } if (inLancamentoId != null) sqlWhere += " and (lancamentoMovimento." + LancamentoMovimento.LANCAMENTO_MOVIMENTO_CATEGORIA + " = " + inLancamentoId + ")"; if (inDocumentoId != null) sqlWhere += " and (lancamentoMovimento." + LancamentoMovimento.LANCAMENTO_MOVIMENTO_CATEGORIA + "." + Lancamento.DOCUMENTO_PAGAMENTO + " = " + Long.toString(inDocumentoId) + ")"; if (inContratoId != null) sqlWhere += " and (lancamentomovimento." + LancamentoMovimento.LANCAMENTO_MOVIMENTO_CATEGORIA + "." + Lancamento.CONTRATO + " = " + Long.toString(inContratoId) + ")"; if (inItemCustoId != null) sqlWhere += " and (lancamentos." + LancamentoItem.ITEM_CUSTO + " = " + Long.toString(inItemCustoId) + ")"; if (inDocumentoCobrancaCategoriaId != null && inDocumentoCobrancaCategoriaId != 0) sqlWhere += " and (lancamentoMovimento." + LancamentoMovimento.LANCAMENTO_MOVIMENTO_CATEGORIA + "." + Lancamento.DOCUMENTO_PAGAMENTO + "." + DocumentoCobranca.DOCUMENTO_COBRANCA_CATEGORIA + " = " + Long.toString(inDocumentoCobrancaCategoriaId) + ")"; if (inCpfCnpj != null) sqlWhere += " and (lancamentoMovimento." + LancamentoMovimento.LANCAMENTO_MOVIMENTO_CATEGORIA + "." + Lancamento.CONTRATO + "." + Contrato.PESSOA + "." + Pessoa.DOCUMENTO + "='" + inCpfCnpj + "')"; if (inDataFinal != null) sqlWhere += " and (lancamentoMovimento." + inPropriedadeData + " between '" + CalendarUtils.formatToSQLDate(inDataInicial) + "' and '" + CalendarUtils.formatToSQLDate(inDataFinal) + "')"; if (inTransacao == Transacao.CREDITO) sqlWhere += " and (lancamentoMovimento.valor>=0)"; else if (inTransacao == Transacao.DEBITO) sqlWhere += " and (lancamentoMovimento.valor<0)"; /* * Atribui as condições do filtro da Operação * Para cada Tipo de Operação, há duas operações a serem filtradas. * Exemplo: Lançar e Extorno de Lançado. */ if (inTipoOperacao == LancamentoMovimentoCategoria.QUITADO) { sqlWhere += " and ((lancamentoMovimento." + LancamentoMovimento.LANCAMENTO_MOVIMENTO_CATEGORIA + " = " + LancamentoMovimentoCategoria.QUITADO + ") or (lancamentoMovimento." + LancamentoMovimento.LANCAMENTO_MOVIMENTO_CATEGORIA + " = " + LancamentoMovimentoCategoria.QUITADO_ESTORNADO + "))"; } if (inTipoOperacao == LancamentoMovimentoCategoria.CANCELADO) { sqlWhere += " and ((lancamentoMovimento." + LancamentoMovimento.LANCAMENTO_MOVIMENTO_CATEGORIA + " = " + LancamentoMovimentoCategoria.CANCELADO + ") or (lancamentoMovimento." + LancamentoMovimento.LANCAMENTO_MOVIMENTO_CATEGORIA + " = " + LancamentoMovimentoCategoria.CANCELADO_ESTORNADO + "))"; } /* Montando a clausula ORDER */ String sqlOrder = " order by"; if (inOrdem == ORDEM_DATA) { sqlOrder += " lancamentoMovimento." + inPropriedadeData + ", lancamentoMovimento." + IDAO.PROPERTY_ID_NAME; } if (inOrdem == ORDEM_LANCAMENTO) { sqlOrder += " lancamentoMovimento." + LancamentoMovimento.LANCAMENTO_MOVIMENTO_CATEGORIA + ", lancamentoMovimento." + inPropriedadeData + ", lancamentoMovimento." + IDAO.PROPERTY_ID_NAME; } if (inOrdem == ORDEM_NOME) { sqlOrder += " lancametoMovimento." + LancamentoMovimento.LANCAMENTO_MOVIMENTO_CATEGORIA + "." + Lancamento.CONTRATO + "." + Contrato.PESSOA + "." + Pessoa.NOME + ", lancamentoMovimento." + LancamentoMovimento.LANCAMENTO + ", lancamentoMovimento." + inPropriedadeData + ", lancamentoMovimento." + IDAO.PROPERTY_ID_NAME; } /* Executando serviço da query */ String sql = sqlSelect.concat(sqlWhere).concat(sqlOrder); Query query = serviceData.getCurrentSession().createQuery(sql); List<QueryLancamentoMovimento> beanList = query.list(); log.debug("::Fim da execução do serviço"); serviceData.getOutputData().add(beanList); } catch (BusinessException e) { log.fatal(e.getErrorList()); /* O Serviço não precisa adicionar mensagem local. O Manager já indica qual srv falhou e os parâmetros. */ throw new ServiceException(e.getErrorList()); } catch (Exception e) { log.fatal(e.getMessage()); /* Indica que o serviço falhou por causa de uma exceção do hibernate. */ throw new ServiceException(MessageList.createSingleInternalError(e)); } }