♥ 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! Marcado como spam |
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. 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); } Marcado como spam Comentários Ver resposta por causa da formatação do texto | |
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. Marcado como spam 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. @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. |