Árvore de páginas

01. DADOS GERAIS

Produto:TOTVS Mais Negócios
Linha de Produto:Linha Protheus
Módulo:Mais Negócios
Função:RSKBANKCON - Ponto de Entrada


02. DESCRIÇÃO

O ponto de entrada RSKBANKCON, localizado no Fonte RSKA080 (Conciliação Financeira), será utilizado para tratamento complementar de eventos da conciliação financeira customizados pelo Cliente.

Eventos disponíveis:

EventoDescrição
IMPLCrédito por Implantação de Faturamento
BONIFIDébito por lançamento de bonificação
RPASSPTaxa por prorrogação de vencimentos
CANCEDébito por cancelamento Total
CANCEPDébito por cancelamento Parcial
RPASSCTaxa por cancelamento de contrato
DEBNFDébito referente a cobrança de Nota Fiscal emitida pela Supplier contra o Parceiro
BXSLDNBaixa de saldo negativo por pagamento efetuado pelo parceiro à Supplier via nota de Débito
RPASSIRepasse de IOF

03. PARÂMETROS

Os parâmetros utilizados no Ponto de Entrada são passados por meio da variável PARAMIXB, conforme exemplo abaixo:

NomeTipoDescrição
PARAMIXB[1]NuméricoTipo de Evento (1=Inscrição dos Eventos; 2=Processamento)
PARAMIXB[2]VetorRegistros para processamento da Conciliação. Somente receberá valores para o Tipo de Evento 1

04. RETORNO

Vetor que indica quais os eventos da conciliação serão processados pela rotina customizada.

05. EXEMPLO

Exemplo - P.E. RSKBANKCON
//------------------------------------------------------------------------------
/*/{Protheus.doc} RskBankCon
Exemplo para customizar o processamento da conciliação bancaria.
 
@param PARAMIXB
/*/
//-----------------------------------------------------------------------------
User Function RskBankCon()
    Local aArea         As Array
    Local aAreaAR4      As Array
    Local aConciliation As Array
    Local aBankEvent    As Array
    Local aData         As Array
    Local xRet
    Local cKeyLog       As Character
    Local nEvent        As Numeric
    Local nData         As Numeric
    Local nType         As Numeric
    Local oModel        As Object
 
    aArea         := GetArea()
    aAreaAR4      := AR4->(GetArea())
    aConciliation := {}
    aBankEvent    := {}
    aData         := {}
    xRet          := Nil
    cKeyLog       := ""
    nEvent        := 0
    nData         := 0
    nType         := PARAMIXB[1]    
    oModel        := Nil 

    //Inscrição para processar os eventos pela customização.
    If nType == 1
        //Retorna os eventos que serão processados pelo customizado.
        xRet := {"IMPL","BONIFI"}
    //Processa os eventos.
    Else
         
        AR4->(DBSetOrder(1)) //AR4_FILIAL + AR4_IDPROC + AR4_ITEM
 
        aBankEvent  := PARAMIXB[2]
        oModel      := FWLoadModel( "RSKA050" )
 
        For nEvent := 1 To Len(aBankEvent)
             
            aData := aBankEvent[nEvent][2]
 
            For nData := 1 To Len(aData)
 
                /*-----------------------------------------------------
                    Posições do Array - aConciliation
 
                    aConciliation[1]   // Id da conciliação (guide)
                    aConciliation[2]   // Código do grupo
                    aConciliation[3]   // Data dos lançamentos
                    aConciliation[4]   // Id da conta (guide)
                    aConciliation[5]   // Banco
                    aConciliation[6]   // Agencia
                    aConciliation[7]   // Conta corrente
                    aConciliation[8]   // Parcela
                    aConciliation[9]   // Número de parcelas
                    aConciliation[10]  // Número da nota fiscal
                    aConciliation[11]  // Código da transação
                    aConciliation[12]  // Tipo de evento
                    aConciliation[13]  // Descrição do tipo de evento
                    aConciliation[14]  // Tipo de lançamento
                    aConciliation[15]  // Tipo de transação
                    aConciliation[16]  // Descrição do tipo de transação
                    aConciliation[17]  // Lançamento Futuro ?
                    aConciliation[18]  // Data do lançamento
                    aConciliation[19]  // Data do evento
                    aConciliation[20]  // Data do vencimento original da parcela
                    aConciliation[21]  // Data do vencimento atual da parcela
                    aConciliation[22]  // Valor principal da transação
                    aConciliation[23]  // Valor total da transação
                    aConciliation[24]  // Valor principal da parcela
                    aConciliation[25]  // Valor total da parcela
                    aConciliation[26]  // Valor do lançamento
                    aConciliation[27]  // Custo de antecipação da parcela
                    aConciliation[28]  // Valor dos impostos
                    aConciliation[29]  // Cnpj do parceiro (SIGAMAT)
                    aConciliation[30]  // Cnpj/Cpf do cliente
                    aConciliation[31]  // Evento divergencia comercial
                    aConciliation[32]  // Id do lançamento (guide)
                */
                aConciliation := aData[nData][4]
 
                /*
                    Realiza o processamento customizado do item aConciliation
                /*
 
 
 
                /*
                    Apos o processamento atualiza a tabela AR4 com
                    Status de Corrigir ou Movimentado
                */         
                cKeyLog := aData[nData][1] + aData[nData][2] + aData[nData][3]
 
                If AR4->(DBSeek(cKeyLog))
                    oModel:SetOperation( MODEL_OPERATION_UPDATE )
                    oModel:Activate()
                    oModel:SetValue("AR4MASTER", "AR4_STATUS", "2" ) //1=Recepcionado;2=Movimentado;3=Corrigir;4=Cancelado;5=Agendado;6=Customizado
                    If oModel:VldData()
                        oModel:CommitData()
                    EndIf
                    oModel:DeActivate()
                EndIf
             
            Next
 
        Next
 
        oModel:Destroy()
        FreeObj(oModel)
    EndIf
 
    RestArea(aAreaAR4)
    RestArea(aArea)
 
Return xRet