Bem-vindo, Visitante
Nome do utilizador: Senha: Memorizar
  • Página:
  • 1
  • 2
  • 3

TÓPICO: Dificuldade em criar um recibo

Dificuldade em criar um recibo 28 Abr. 2016 13:56 #10350

  • anakin84
  • Avatar de anakin84
  • Offline
  • Mensagens: 18
  • Obrigado recebido 1
Boa Tarde,

Estamos com dificuldade em criar recibos sobre documentos que não são facturas. Por exemplo, Notas de Crédito, Lançamentos a Crédito ou a Débito. Obtemos sempre um null pointer.
Será que podem fornecer um exemplo de como criar um recibo sobre estes documentos?
Obrigado
O adminstrador desactivou a escrita pública.

Dificuldade em criar um recibo 03 Mar. 2016 01:49 #10245

  • marcolopes
  • Avatar de marcolopes
  • Offline
  • Mensagens: 5348
  • Obrigado recebido 743
anakin84 escreveu:
Já conseguimos criar o recibo via API.

Caro André, lembro que estamos sempre receptivos a sugestões!

Se encontrar algo a ser melhorado, p.f. use este tópico: www.projectocolibri.com/forum/api-interf...-versao-11-antevisao
Marco Lopes
Gestor de projecto
Análise e Programação
O adminstrador desactivou a escrita pública.

Dificuldade em criar um recibo 02 Mar. 2016 21:05 #10244

  • anakin84
  • Avatar de anakin84
  • Offline
  • Mensagens: 18
  • Obrigado recebido 1
Boa noite,

Já conseguimos criar o recibo via API.

Obrigado.


Cumprimentos,

André Macedo.
O adminstrador desactivou a escrita pública.

Dificuldade em criar um recibo 02 Mar. 2016 00:10 #10243

  • marcolopes
  • Avatar de marcolopes
  • Offline
  • Mensagens: 5348
  • Obrigado recebido 743
anakin84 escreveu:
Continua a dar erro, mas agora um bocadinho mais a baixo. A variável linha é null.
Não está fácil.

Peço desculpa! É no que dá escrever código "a seco"! Espero que agora esteja tudo ok! O processamento das linhas na classe de PASTE não adiciona as linhas, apenas as cria e devolve.
Entidadesdocumentos entidadesDocumento = new Entidadesdocumentos(ColibriDatabase.loadDocumentostipos("CRE"));

Entidadesdocumentos payDocumento = InvoiceEngine.getEntityById(InvoiceEngine.COLIBRI_INVOICE_CODE, invoiceTO.getInvoices().get(0).getInvoiceId());
Entidadesmovimentos movimento=ColibriDatabase.loadEntidadesmovimentos(payDocumento.getKey());

entidadesDocumento.setEntidade(ColibriDatabase.loadEntidades(movimento.getEntidade().getKey()));

entidadesDocumento.setLinhasdocumento(new EntidadesmovimentosPaste(entidadesDocumento).process(Arrays.asList(movimento)));

Entidadesdocumentoslinhas linha=entidadesDocumento.getLinhasdocumento(0);
linha.setValorpagar(new BigDecimal(invoiceTO.getInvoices().get(0).getPayed()));
linha.process();
Marco Lopes
Gestor de projecto
Análise e Programação
O adminstrador desactivou a escrita pública.
The following user(s) said Thank You: anakin84

Dificuldade em criar um recibo 01 Mar. 2016 22:17 #10242

  • anakin84
  • Avatar de anakin84
  • Offline
  • Mensagens: 18
  • Obrigado recebido 1
Boa noite,

Continua a dar erro, mas agora um bocadinho mais a baixo. A variável linha é null.

Não está fácil.
Entidadesdocumentos entidadesDocumento = new Entidadesdocumentos(ColibriDatabase.loadDocumentostipos("CRE"));

Entidadesdocumentos payDocumento = InvoiceEngine.getEntityById(InvoiceEngine.COLIBRI_INVOICE_CODE, invoiceTO.getInvoices().get(0).getInvoiceId());
Entidadesmovimentos movimento=ColibriDatabase.loadEntidadesmovimentos(payDocumento.getKey());

entidadesDocumento.setEntidade(ColibriDatabase.loadEntidades(movimento.getEntidade().getKey()));

new EntidadesmovimentosPaste(entidadesDocumento).process(Arrays.asList(movimento));

Entidadesdocumentoslinhas linha=entidadesDocumento.getLinhasdocumento(0);
if(linha == null) {
	throw new Exception("linha is null");
}
linha.setValorpagar(new BigDecimal(invoiceTO.getInvoices().get(0).getPayed()));
linha.process();

entidadesDocumento.process();

Cumprimentos,

André Macedo.
Última Edição: 02 Mar. 2016 00:05 por marcolopes.
O adminstrador desactivou a escrita pública.

Dificuldade em criar um recibo 01 Mar. 2016 20:31 #10241

  • marcolopes
  • Avatar de marcolopes
  • Offline
  • Mensagens: 5348
  • Obrigado recebido 743
anakin84 escreveu:
Ao testar o código sugerido obtenho sempre o seguinte erro:
O código é exactamente o sugerido

Faltou a inicialização da ENTIDADE no objecto documento!

É sempre necessário carregar uma entidade no documento (a API 11 terá um método directo para criar o documento a partir do objecto da ENTIDADE, o que torna a tarefa mais lógica)

O código deverá ser:
Entidadesdocumentos entidadesDocumento = new Entidadesdocumentos(ColibriDatabase.loadDocumentostipos("CRE").getCodigo());
Entidadesmovimentos movimento=ColibriDatabase.loadEntidadesmovimentos(payDocumento.getKey());

entidadesDocumento.setEntidade(ColibriDatabase.loadEntidades(movimento.getEntidade().getKey()));

Poderia passar directamente a ENTIDADE do movimento para o documento, mas tal depende da "profundidade" com que o objecto é lido. Deve ser suficiente, mas a forma mais segura é sempre fazer um LOAD da base de dados.
Marco Lopes
Gestor de projecto
Análise e Programação
O adminstrador desactivou a escrita pública.
  • Página:
  • 1
  • 2
  • 3
Moderadores: marcolopes
Desenvolvido por Kunena