Histórico da Página
Incluir Página | ||||
---|---|---|---|---|
|
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).
...
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
...