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:
Esta rotina foi concebida para ser executada em qualquer versão do Sistema, porém devem ser observadas as seguintes diferenças:
De acordo com o conteúdo do parâmetro, o lançamento padrão, deverá ser configurado conforme os exemplos descritos abaixo. |
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 |
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 |
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. |
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.
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