Árvore de páginas


01. DADOS GERAIS

Linha de Produto:Microsiga Protheus
Segmento:Serviços
Módulo:Financeiro
Versão:12.1.27
Função:FINA820


02. SITUAÇÃO/REQUISITO

Ponto de entrada para controle dos registros que serão enviados no arquivo do Livro Caixa Digital do Produtor Rural.

03. SOLUÇÃO

Ponto de entrada (PE) F820Reg criado para possibilitar ao operador controlar registro a registro todas as movimentações financeiras relativas à produção rural que deverão constar no arquivo do LCDPR, além de classificar outros títulos do sistema como sendo um dos tipos padrões do LCDPR.

Haverá a possibilidade de alterar o número do documento ( campo 5 do bloco Q100 - NUMDOC ) de forma a padronizar a exibição desse campo, para facilitar a conferência.

Exemplo:

Compilar a função de usuário:

Código fonte:
#Include "Protheus.ch"
#Include "rwmake.ch"

Static __lFirst := .T.

User Function F820Reg()

	Local nRec := PARAMIXB[1] // Recno do registro na SE5 (mov. bancário).
    Local aTpReg := PARAMIXB[2] // Array com os tipos de títulos a serem considerados.
    Local lRegValid := PARAMIXB[3] // Define se o registro deve ser impresso (considerado) no arquivo LCDPR ou não.

    // Tipos a serem considerados:
    // aTpReg[1] = Tipos de Nota Fiscal, além do NF
    // aTpReg[2] = Tipos de Fatura, além do FT
    // aTpReg[3] = Tipos de Recibo, além do RC
    // aTpReg[4] = Tipos de Contrato, além do C01
    // aTpReg[5] = Tipos de Fol. Pagto, além do FOL
    // O formato é sempre dos demais títulos separador por '|' (pipe) entre si. Ex.: 'NCC|NDF'

    Local aRet := {}
    Local aArea := SE5->(GetArea())
	Local cDoc   := ""

    DbSelectArea("SE5")
    DbGoTo(nRec)

    If SE5->E5_TIPO == 'RC '
        lRegValid := .F.
    EndIf

    cDoc := AllTrim(TRB100->NUMDOC) + Iif( !Empty(AllTrim(TRB100->PREFIXO)), "/" + AllTrim(TRB100->PREFIXO), "")
    If __lFirst
        aTpReg[1] := {"NCC|NDF"}
        __lFirst := .F.
        aAdd(aRet, lRegValid )
        aAdd(aRet, aTpReg )                        
    Else
        aAdd(aRet, lRegValid )
        aAdd(aRet, {} )                        
    EndIf
    aAdd(aRet, cDoc )     

    RestArea(aArea)

Return aRet


Onde o 'nRec' recebido por parâmetro é o R_E_C_N_O_ do registro na tabela de movimentos bancários (SE5) contido no arquivo temporária de movimentações do Extrator LCDPR naquele momento.

E o 'lRegValid' define se o registro deve ser impresso (considerado) no arquivo LCDPR ou não de acordo com as regras da rotina. (Valor Default)

04. DEMAIS INFORMAÇÕES

lRegValid, devolvido na primeira posição do aRet do PE, define se o registro deve ser considerado no LCDPR ou não (É possível manter o valor padrão recebido através dos parâmetros).

Já o aTpReg, retornado da primeira vez da execução do PE, é o array contendo (caso necessário) os tipos de documentos existentes na base para o LCDPR além dos tipos do padrão.

Estrutura do aTpReg:

aTpReg[1]: tipo Nota Fiscal, além do 'NF' padrão;

aTpReg[2]: tipo Fatura, além do 'FT' do padrão;

aTpReg[3]: tipo Recibo, além do 'RC' do padrão;

aTpReg[4]: tipo Contrato, além do 'C01' do padrão;

aTpReg[5]: tipo Folha de pagamento, além do 'FOL' do padrão.

Todos os tipos devem ser informados, cada qual em sua posição específica no array, separados por '|' (Pipe). Exemplo:

aTpReg[1] := { 'NFC|NFX'}


cDoc deve ser retornado na terceira posição do aRet.

05. ASSUNTOS RELACIONADOS

  • Não se aplica.