V10 RecursosGuías
RecursosGuías
Guías
Años | List of Articles

¿Cómo crear e integrar procesos de ejecución de documentos de compra en la contabilidad? (Public Sector)

Última modificación el 03/05/2024

Los presupuestos de gastos son especialmente importantes para las organizaciones públicas, por lo que es crucial integrar correctamente los documentos de compra en la contabilidad, así como los procesos de ejecución.

A partir de la versión 10, ya no es necesario el tratamiento presupuestario en la creación e integración de los documentos de compra, y esta lógica se implementa tanto en el registro de los documentos de compra, en la descodificación del token pasado en las líneas de los documentos, como en la integración contable del documento de compra, con la creación, cumplimentación y registro del respectivo proceso de ejecución.

El objetivo de este artículo es demostrar la creación e integración de un documento de compra inicial en el flujo y su transformación en un documento posterior, utilizando los motores, a través de los siguientes pasos:

Paso 1 - Añadir referencias:

  1. CmpBE100;
  2. CmpBS100;
  3. BasBE100;
  4. IBasBS100;
  5. CblBE100;
  6. ICblBS100;
  7. ConstantesPrimavera100.

Paso 2 - Crear el documento de compra inicial para el flujo:

Las líneas deben contener el token " en la propiedad "ProcessoCBL" para que se cree un nuevo proceso de ejecución:

//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);

Paso 3 - Realizar la integración en la contabilidad y crear el respectivo proceso de ejecución:

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;
    }
}

Paso 4 - Crear el siguiente documento por transformación:

//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);
Bookmark or share this article
Esta página foi útil?
Obrigado pelo seu voto.

login para deixar a sua opinião.

Obrigado pelo seu feedback. Iremos analisá-lo para continuarmos a melhorar!