Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Incluir Página
Lançamentos Contábeis Off-line (CTBANFE - SIGACTB)
Lançamentos Contábeis Off-line (CTBANFE - SIGACTB)

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:

  • 640 - Itens do Documento de Entrada - Somente Devolução (SD1)
  • 641 - Itens do Documento de Entrada - Devolução ou Beneficiamento (SD1)
  • 642 - Cabeçalho do Documento de Entrada (SF2) - Devolução ou Beneficiamento (SF1)
  • 650 - Itens do Documento de Entrada (SD1)
  • 651 - Itens do Rateio de Centro de Custo (SDE)
  • 652 - Itens do Pedido de Compra (SC7)
  • 660 - Cabeçalho do Documento de Entrada (SF2)
  • 950 - Cabeçalho do documento de entrada. Executado somente para documentos de importação (SIGAEIC).

...

Image RemovedImportante:

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

...

Image RemovedDica:

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

...