Árvore de páginas

Versões comparadas

Chave

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

...

Bloco de código
languagejava
themeMidnight
firstline1
titleExemplo #02 - Rotina automática para compensação ou estorno
linenumberstrue
#INCLUDE "PROTHEUS.CH"
#include "tbiconn.ch"

user function xCmpCP()
    local aPerg as array
    local aRet as array
    local aEstorno as array
    local aRecTit as array
    local aRecCmp as array
    local aRecEst as array
    local cRecTit as character
    local cRecCmp as character
    local cJanela as character
    local cCodCanc as character
    local cValor as character
    local lContabiliza as logical
    local lAglutina as logical
    local lDigita as logical
    local lHelp as logical
    local nSldComp as numeric
    local nHdl as numeric
    local nOperacao as numeric

    cJanela := "Compensação automática CP"    
    aPerg := {}
    aRet := {}
    aEstorno := {}
    aRecTit := {}
    aRecCmp := {}
    aRecEst := {}
    cValor := cCodCanc := cRecTit := cRecCmp := replicate(" ",50)
    nSldComp = 0   
    nHdl := 0
    nOperacao := 0 
    lHelp := .F.
    
    PREPARE ENVIRONMENT EMPRESA "T1" FILIAL "D MG 01 " MODULO "FIN"
        conOut("INICIO DA ROTINA AUTOMATICA")

        PERGUNTE("AFI340",.F.)
        lContabiliza := MV_PAR11 == 1
        lAglutina := MV_PAR08 == 1
        lDigita := MV_PAR09 == 1

        aAdd(aPerg,{1, 'RecNo título de partida', cRecTit, "@", nil, nil, nil, 50, .T.})
        aAdd(aPerg,{1, 'RecNo título a compensar', cRecCmp, "@", nil, nil, nil, 50, .T.})
        aAdd(aPerg,{2, 'Comp/Est?', "1", {"1=Compensação","2=Estorno"}, 100, nil, .T.})
        aAdd(aPerg,{1, 'Valor', cValor, "@", nil, nil, nil, 50, .F.})

        if paramBox(aPerg, cJanela, aRet)
            aAdd(aRecTit, val(aRet[1]))
            if aRet[3] = "1"
                aAdd(aRecCmp, val(aRet[2]))
                aEstorno := {}
            else
                aAdd(aRecEst, val(aRet[2]))
                nOperacao := 2 // 2 = Gera movimento de estorno, 3=Exclui os movimentos
                aEstorno := {aRecEst}
            endif
            if !Empty(AllTrim(aRet[4]))
                nSldComp := val(aRet[4])
            else
                nSaldo := nil
            endif

            if FinCmpAut(aRecTit, aRecCmp, {lContabiliza,lAglutina,lDigita}, /*bBlock*/, aEstorno, nSldComp, dDatabase, /*nTaxaPA*/,/*nTaxaNF*/, nHdl, nOperacao, /*aRecSE5*/, /*aNDFDados*/, lHelp)           
                conOut("Processo concluido com exito.")
            else
                conOut("Processo nao concluido.")            
            endif
        endif

        conOut("FIM DA ROTINA AUTOMATICA")
    RESET ENVIRONMENT
Return nil