Como criar e integrar os processos de execução de documentos de compra na contabilidade? (Public Sector)
Os orçamentos da despesa são particularmente importantes para as organizações públicas, pelo que é crucial uma correta integração dos documentos de compra na contabilidade, assim como dos processos de execução. A partir da versão 10 deixa de ser necessário o tratamento orçamental na criação e integração de documentos de compra, estando essa lógica implementada tanto na gravação dos documentos de compra, na descodificação do token passado nas linhas dos documentos, como na integração contabilística do documento de compra, com a criação, preenchimento e gravação do respetivo processo de execução. Este artigo tem o objetivo de demonstrar a criação e integração de um documento de compra inicial ao fluxo e a sua transformação num documento posterior, utilizando os motores, através dos seguintes passos: Passo 1 - Adicionar referências: Passo 2 - Criar o documento de compra inicial ao fluxo: As linhas devem conter o token "" na propriedade "ProcessoCBL" para que seja criado um novo processo de execução: Passo 3 - Efetuar a integração na contabilidade e criar o respetivo processo de execução: Passo 4 - Criar documento seguinte por transformação://Criação do documento de compra
CmpBE100.CmpBEDocumentoCompra objDoc = new CmpBE100.CmpBEDocumentoCompra
{
Tipodoc = "PRC",
Serie = "2020",
TipoEntidade = "F",
Entidade = "F0001",
NumDocExterno = "1"
};
//Preenchimento dos dados relacionados do cabeçalho do documento
BSO.Compras.Documentos.PreencheDadosRelacionados(objDoc);
//Criação de uma linha
BSO.Compras.Documentos.AdicionaLinha(objDoc, "A0001");
objDoc.Linhas.GetEdita(objDoc.Linhas.NumItens).PrecUnit = 10;
objDoc.Linhas.GetEdita(objDoc.Linhas.NumItens).ProcessoCBL = "";
//Classificações orçamentais da linha, em função dos planos orçamentados
objDoc.Linhas.GetEdita(objDoc.Linhas.NumItens).ClassEconCBL = "01020210";
objDoc.Linhas.GetEdita(objDoc.Linhas.NumItens).OrganicaCBL = "010403";
objDoc.Linhas.GetEdita(objDoc.Linhas.NumItens).FonteCBL = "000";
objDoc.Linhas.GetEdita(objDoc.Linhas.NumItens).ActividadeCBL = "000";
objDoc.Linhas.GetEdita(objDoc.Linhas.NumItens).ProgMedidaCBL = "000000";
objDoc.Linhas.GetEdita(objDoc.Linhas.NumItens).ContaCBL = "621311";
//Gravação do documento de compra – inclui a descodificação do token
BSO.Compras.Documentos.Actualiza(objDoc);
try
{
BSO.Base.LigacaoCBL.IntegraDocumentoLogCBL(ConstantesPrimavera100.Modulos.Compras, objDoc.Tipodoc, objDoc.Serie, objDoc.NumDoc, objDoc.Filial);
}
catch(Exception exIntCbl)
{
CblBE100.CblBECnfDocExercicioLigCBL objConfigDoc = BSO.Contabilidade.ConfiguracaoDocCBL.EditaExercicio("C", objDoc.Tipodoc, objDoc.DataDoc.Year);
//No caso de documento com ligação orçamental (para criação do processo de execução), mas sem contas para descodificar, a integração na contabilidade vai devolver erro de documento vazio.
//Nesses casos, deve ser ignorada a exceção, porque é suposto que não integre - a criação do processo sucede.
if(objConfigDoc.PlanosDeContas.NumItens>0)
{
throw exIntCbl;
}
}
//Criação do documento de compra seguinte
CmpBE100.CmpBEDocumentoCompra objDocT = new CmpBE100.CmpBEDocumentoCompra
{
Tipodoc = "COM",
Serie = "2020",
TipoEntidade = "F",
Entidade = "F0001",
NumDocExterno = "1"
};
//Preenchimento dos dados relacionados do cabeçalho do documento
BSO.Compras.Documentos.PreencheDadosRelacionados(objDocT);
//Adição de uma linha, por transformação
BSO.Compras.Documentos.AdicionaLinhaTransformada(objDocT, objDoc.Tipodoc, objDoc.NumDoc, 1);
//Gravação do documento de compra
BSO.Compras.Documentos.Actualiza(objDocT);
//Integração contabilística
BSO.Base.LigacaoCBL.IntegraDocumentoLogCBL(ConstantesPrimavera100.Modulos.Compras, objDocT.Tipodoc, objDocT.Serie, objDocT.NumDoc, objDocT.Filial);
login para deixar a sua opinião.