public void execute(ServiceData serviceData) throws ServiceException { log.debug("::Iniciando execução do servico CancelarDocumentoPagamentoService"); try { log.debug("Preparando os argumentos"); IEntity<? extends DocumentoPagamento> inDocumento = (IEntity<? extends DocumentoPagamento>) serviceData.getArgumentList().getProperty(IN_DOCUMENTO); Calendar inDataCancelamento = (Calendar) serviceData.getArgumentList().getProperty(IN_DATA_CANCELAMENTO); IGerenciadorDocumentoPagamento gerenciador = this.retrieveGerenciadorPorDocumento((DocumentoPagamento) inDocumento.getObject()); log.debug("Executando o método cancelarDocumento avulso do gerenciador"); gerenciador.cancelarDocumento(inDocumento, inDataCancelamento, serviceData); log.debug("Adicionando a mensagem de sucesso: cancelarDocumento"); this.addInfoMessage(serviceData, "CANCELAR_DOCUMENTO_SUCESSO", inDocumento.toString()); } 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)); } }
@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)); } }