Páginas filhas
  • Conciliação Financeira

Versões comparadas

Chave

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

...

Bloco de código
//------------------------------------------------------------------------------
/*/{Protheus.doc} RskBankCon
Exemplo para customizar o processamento da conciliação bancaria.

@param  Nenhum
@return Nenhum
@author Squad NT TechFin
@since  21/01/2020
/*/
//-----------------------------------------------------------------------------
User Function RskBankCon()
    Local aArea         := GetArea()
    Local aAreaAR4      := AR4->(GetArea())
    Local aConciliation := {}
    Local aBankEvent    := {}
    Local aData         := {}
    Local xRet          := Nil
    Local cKeyLog       := ""
    Local nEvent        := 0
    Local nData         := 0
    Local nType         := PARAMIXB[1]     
    Local oModel        := Nil 

    //Inscrição para processar os eventos pela customização.
    If nType == 1
        /*  
            **** Eventos da Conciliação Financeira processado pelo Padrão ***
            **** Array aData utilizado somente para consulta dos eventos ***

            aData[1] => "IMPL"      Crédito por implantação de faturamento
            aData[2] => "BONIFI"    Débito por lançamento de bonificação
            aData[3] => "RPASSP"    Taxa por Prorrogação de Vencimentos 
            aData[4] => "CANCE"     Débito por cancelamento total 
            aData[5] => "CANCEP"    Débito por cancelamento parcial
            aData[6] => "RPASSC"    Taxa por Cancelamento de Contrato
            aData[7] => "DEBNF"     Débito referente a cobrança de Nota Fiscal emitida pela Supplier contra o Parceiro
            aData[8] => "BXSLDN"    Baixa de saldo negativo por pagamento efetuado pelo parceiro à Supplier via nota de débito.
            aData[9] => "RPASSI"    Repasse de IOF
             
        */
        //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

                    BANK_ID            1   // Id da conciliação (guide)
                    BANK_GROUP         2   // Código do grupo
                    BANK_DATE          3   // Data dos lançamentos
                    BANK_ACCOUNT_ID    4   // Id da conta (guide)
                    BANK_CODE          5   // Banco
                    BANK_AGENCY        6   // Agencia 
                    BANK_ACCOUNT       7   // Conta corrente
                    BANK_PARCEL        8   // Parcela 
                    BANK_PARCEL_NUM    9   // Número de parcelas 
                    BANK_INVOICE       10  // Número da nota fiscal 
                    BANK_TRANS_CODE    11  // Código da transação 
                    BANK_EVENT_TYPE    12  // Tipo de evento 
                    BANK_EVENT         13  // Descrição do tipo de evento
                    BANK_ENTRY_TYPE    14  // Tipo de lançamento 
                    BANK_TRANS_TYPE    15  // Tipo de transação 
                    BANK_TRANS_DESC    16  // Descrição do tipo de transação
                    BANK_FUTURE        17  // Lançamento Futuro ?
                    BANK_ENTRY_DATE    18  // Data do lançamento 
                    BANK_EVENT_DATE    19  // Data do evento 
                    BANK_ORI_MAT_DATE  20  // Data do vencimento original da parcela 
                    BANK_ACT_MAT_DATE  21  // Data do vencimento atual da parcela 
                    BANK_TRANS_MAIN    22  // Valor principal da transação 
                    BANK_TRANS_TOTAL   23  // Valor total da transação 
                    BANK_PARC_MAIN     24  // Valor principal da parcela 
                    BANK_PARC_TOTAL    25  // Valor total da parcela 
                    BANK_ENTRY_VALUE   26  // Valor do lançamento 
                    BANK_PARC_COST     27  // Custo de antecipação da parcela 
                    BANK_TAXES         28  // Valor dos impostos
                    BANK_PART_CNPJ     29  // Cnpj do parceiro (SIGAMAT)
                    BANK_CUST_CNPJ     30  // Cnpj/Cpf do cliente 
                    BANK_DIVERGENCY    31  // Evento divergencia comercial
                    BANK_ENTRY_ID      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  






Outras Ações / Ações relacionadas

...