Fórum
Ver pergunta

Como fazer a liquidação de uma fatura através da API.   

114 visualizações
1
0

Boa tarde.

Pretendo emitir FR e RE (para as FA) usando os motores mas não encontro forma de o fazer. Já procurei em IVndBSVendas mas não existe qualquer menção referência a isso. Já procurei as classes dos documentos e também não encontrei.

Tenho já facturas (normais; FA) e agora pretendia avançar para esses documentos. Do que já pesquisei e das conclusões a que cheguei as FR serão iguais às FA mas com outros campos. No entanto, não estou a ver como fazer a ligação a movimentos.

Qualquer ajuda será bem vida. Talvez o @sereno possa dar-me uma ajuda?

Grato desde já!

 

EDIT: Já descobri que tem a haver com a parte da contabilidade mais especificamente com CblBE e CblBS mas existe tanta coisa e várias tabelas … Existem métodos que simplifiquem a criação ou tenho que criar as várias entidades? Será que alguém pode explicar a relação entre objectos e tabelas? A classe CblBE100.CblBEDocumento será o Recibo e BasBE100.BasBELinhaContaCorrente serão movimentos?

 

EDIT2: Afinal não tem a haver com a contabilidade mas sim com a parte de finanças. Qualquer explicação continua a ser bem-vinda!

Faça login para poder traduzir
V10
Marcado como spam
Criado há 4 anos e 3 dias alex
a
alex Iniciante
2 respostas
1
Resposta privada

Olá Alex, a ligação entre às áreas de logistica e financeira não existe de forma automatica através da API, ou seja depois de fazeres a fatura ela fica na tabela de pendentes à espera que alguém da área financeira proceda à sua liquidação. Assim sendo tens de ser tua a programar essa logica da liquidação.

https://imgur.com/a/0Ia6Tho


private void LiquidaPendente()
{
    CctBEDocumentoLiq objLiq;
    double dblCambio;

    Set objLiq = New CctBEDocumentoLiq

	objLiq.Tipodoc = "RE";
	objLiq.Serie = "A";
	objLiq.TipoEntidade = "C";
	objLiq.Entidade = "Teste";

    BSO.PagamentosRecebimentos.Liquidacoes.PreencheDadosRelacionados(objLiq);
    objLiq.Moeda = "EUR";

    dblCambio = 0;
    objLiq.CambioMBase = dblCambio;

    // Se a moeda da liquidação não é a moeda de referência, indicamos o cambio para a moeda de referência
    if (BSO.Contexto.MoedaEuro != objLiq.Moeda)
        objLiq.Cambio = dblCambio;
    else
        objLiq.Cambio = 1;

    if (BSO.Contexto.MoedaEuro == BSO.Contexto.MoedaAlternativa)
        objLiq.CambioMAlt = 1;
    else
        objLiq.CambioMBase = 1;

    BSO.PagamentosRecebimentos.Liquidacoes.AdicionaLinha(objLiq, "000", "V", "FA", "A", 1, 1, "PEN", 0);
    BSO.PagamentosRecebimentos.Liquidacoes.Actualiza(objLiq);
}
Faça login para poder traduzir
Marcado como spam
Criado há 3 anos e 11 meses sergiosereno
sergiosereno Most Valuable Professional
    Comentários
    Ver resposta por causa da formatação do texto
    3 anos e 11 meses
    alex
      0
      Resposta privada

      @sereno desde já obrigado pela ajuda. Efectivamente já estava a andar à volta da solução que apresentaste mas com ela consegui de facto colocar a funcionar. No entanto, tenho umas dúvidas:

      1. O que é que o método PreencheDadosRelacionados() faz mesmo? Que dados são esses?

      2. Não é suposto especificar a forma de pagamento (dinheiro, mb, cheque, etc; sei que pode-se especificar no documento de venda), ou seja, gerar um movimento financeiro qualquer que fique associado ao Recibo? Desta forma parece-me que apenas se faz a liquidação da factura mas não existe nenhuma menção à forma.

      3. No caso das FR, faz-se tal e qual uma FA mas neste caso FR e logo de seguida faz-se a liquidação?

      4. Qual a relação da contabilidade com isto? Aquando da criação de um cliente, está-se a abrir contas e a registar uma ligação à contabilidade. No exemplo do git (Sales) tem lá isto

      // Accountig
      PriEngine.Engine.Base.LigacaoCBL.IntegraDocumentoLogCBL("V", invoice.Tipodoc, invoice.Serie, invoice.NumDoc, invoice.Filial, 1, ref avisos, true);

       

      EDIT: Em resposta ao ponto 2 já percebi que é o Documento de Tesouraria que é necessário criar.

      Faça login para poder traduzir
      Marcado como spam
      Criado há 3 anos e 11 meses alex
      a
      alex Iniciante
        Comentários
        @alex O PreencheDadosRelacionados() serve para reencher os dados relacionados da entidade tipo CondiçãoPagamento, ModoPagamento, etc, Moedas...etc) Sim a FR faz autoliquidação, não necessita esse passo. A contabilidade é a parte da gestão, ou seja todas as compras, vendas, inventáriação, liquidações, movimentos banco... e usado apenas quando se tem o modulo de contabilidade e se quer que os documentos, nesse caso faturas sejam logo integradas na contabildiade.
        3 anos e 11 meses
        sergiosereno
          @alex Isto não é um chat. É um local de perguntas respostas directas. Uma duvida de programanção é uma questão com um resposta objetiva. Esta discução termina aqui.
          3 anos e 11 meses
          sergiosereno