O Microsiga Protheus® possui uma transação que permite a execução de lançamentos automáticos contábeis off-line.

Para executar a rotina de geração de arquivo para a Contabilidade, devemos processar a Contabilidade Off-line.

Esta rotina efetua os lançamentos contábeis off-line para os documentos de entrada e pedidos de compra, conforme os parâmetros da rotina e as regras de contabilização dos lançamentos padrões:


Importante:

Esta rotina foi concebida para ser executada em qualquer versão do Sistema, porém devem ser observadas as seguintes diferenças:

  • Nas versões que não utilizam o DBAccess, o Sistema disponibiliza para cada um dos lançamentos padrões os aliases informados acima, antes da execução de cada lançamento padrão.
  • Para as versões DBAccess existem duas possibilidades de configuração do parâmetro MV_OPTNFE:
  • Parâmetro MV_OPTNFE com conteúdo F.
  • Parâmetro MV_OPTNFE com conteúdo T.

De acordo com o conteúdo do parâmetro, o lançamento padrão, deverá ser configurado conforme os exemplos descritos abaixo. 

Trabalhando com o parâmetro MV_OPTNFE com conteúdo F

A rotina irá selecionar os registros utilizando-se dos recursos do servidor de banco de dados (query), e antes da execução do lançamento padrão, os aliases serão posicionados e disponibilizados para uso. Dessa forma, os lançamentos poderiam ser:


Crédito

Iif(SF1->F1_TIPO$’DB’,SA1->A1_CONTA,SA2->A2_CONTA)

Débito

SD1->D1_CONTA

Valor

SD1->D1_TOTAL-SD1->D1_VALDESC+SD1->D1_VALIPI+SD1->D1_ICMRET

Trabalhando com o parâmetro MV_OPTNFE com conteúdo T

A rotina irá selecionar os registros utilizando-se dos recursos do servidor de banco de dados (query) e para a execução dos lançamentos será disponibilizado o alias CTBANFE, que contém alguns campos das tabelas mencionadas nos lançamentos padrões. Dessa forma, os lançamentos poderiam ser:


Crédito

Iif(CTBANFE->F1_TIPO$’DB’,CTBANFE->A1_CONTA,CTBANFE->A2_CONTA)

Débito

CTBANFE->D1_CONTA

Valor

CTBANFE->D1_TOTAL-CTBANFE->D1_VALDESC+CTBANFE->D1_VALIPI+CTBANFE->D1_ICMRET


Dica:

Se o parâmetro MV_OPTNFE estiver preenchido com T, os arquivos SD1 - Item Documento de Entrada e SF1 - Cabeçalho Documento de Entrada não estarão posicionados. Portanto, o usuário deverá utilizar o alias CTBANFE na inclusão dos lançamentos padronizados, como demonstrado no exemplo acima.

Campos disponíveis no alias CTBANFE


SF1

Todos os campos, exceto os iniciados em: F1_BASE e F1_BASI

SD1

Todos os campos, exceto os iniciados em: D1_BASE e D1_BASI

SA2

A2_FILIAL, A2_COD, A2_LOJA, A2_CONTA, A2_NOME, A2_NREDUZ

SA1

A1_FILIAL, A1_COD, A1_LOJA, A1_CONTA, A1_NOME, A1_NREDUZ

SB1

B1_FILIAL, B1_COD, B1_CONTA

SF4

F4_FILIAL, F4_CODIGO, F4_CF

SC7

Todos os campos do SC7 (Somente para lançamento Padrão 652)


Para adicionar outros campos, deve-se utilizar o ponto de entrada CTBNFE.



Exemplo:

User Function CTBNFE()

If PARAMIXB <> Nil

aSelect := PARAMIXB[1]

aFrom : PARAMIXB[2]

cWhere := PARAIXB[3]

//Aqui eu adiciono o campo especifico da TES.

Aadd(aSelect,{”F4_MEUTS”,\"C\",3,0})

//Aqui eu adiciono o campo especifico do Produto

Aadd(aSelect,{”B1_MEUPRD”,\"C\",15,0})

//Aqui eu adiciono o campo especifico do Fornecedor

Aadd(aSelect,{”B1_MEUSA2”,\"C\",6,0})

Return({aSelect,aFrom,cWhere})

Else

Return(PARAMIXB)

EndIf

User Function CTBPC()

If PARAMIXB <> Nil

aSelect := PARAMIXB[1]

aFrom : PARAMIXB[2]

cWhere := PARAIXB[3]

//Aqui eu adiciono o campo especifico da TES.

Aadd(aSelect,{”F4_MEUTS”,\"C\",3,0})

//Aqui eu adiciono o campo especifico do Produto

Aadd(aSelect,{”B1_MEUPRD”,\"C\",15,0})

//Aqui eu adiciono o campo especifico do Fornecedor

Aadd(aSelect,{”B1_MEUSA2”,\"C\",6,0})

Return({aSelect,aFrom,cWhere})

Else

Return(PARAMIXB)

EndIf



Veja também