Histórico da Página
...
Dica | ||
---|---|---|
| ||
O parâmetro MV_IMPCOM determina se a compensação automática de títulos a pagar será realizada no modelo legado (fonte apartado) ou com as regras do FINA340 (onde existe todo o processo de retenção dos impostos). |
...
Bloco de código | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
#INCLUDE "Protheus.ch" #INCLUDE "RWMAKE.CH" #INCLUDE "TBICONN.CH" Static __COMPAUT := Nil User Function CMPAUTOMA() Local lRet := .F. Local cQry := "" Local aTipos := {"NF ", "PA ", "NDF"} Local cTblTmp := "" Local aNF := {} Local aPA_NDF := {} Local aContabil := {} Local bBlock := Nil Local aEstorno := {} Local nSldComp := 0 Local nTaxaPA := 0 Local nTaxaNF := 0 Local nHdl := 0 Local nOperacao := 0 Local aRecSE5 := {} Local aNDFDados := {} Local lHelp := .T. If __COMPAUT == Nil cQry := "SELECT E2_TIPO TIPO, R_E_C_N_O_ R_E_C_N_O FROM " + RetSqlName("SE2") + " " cQry += "WHERE E2_SALDO > 0 AND E2_TIPO IN (?) " cQry += "ORDER BY E2_TIPO" cQry := ChangeQuery(cQry) __COMPAUT := FWPreparedStatement():New(cQry) EndIf __COMPAUT:SetIn(1, aTipos) cQry := __COMPAUT:GetFixQuery() cTblTmp := MpSysOpenQuery(cQry) While (cTblTmp)->(!Eof()) If (cTblTmp)->TIPO $ MVPAGANT+"|"+MV_CPNEG Aadd(aPA_NDF, (cTblTmp)->R_E_C_N_O) Else Aadd(aNF, (cTblTmp)->R_E_C_N_O) EndIf (cTblTmp)->(DbSkip()) lRet := .T. EndDo (cTblTmp)->(DbCloseArea()) cTblTmp := "" If lRet Pergunte("AFI340", .F.) lContabiliza := MV_PAR11 == 1 lAglutina := MV_PAR08 == 1 lDigita := MV_PAR09 == 1 lRet := FinCmpAut(aNF, aPA_NDF, aContabil, bBlock, aEstorno, nSldComp, dDatabase, nTaxaPA ,nTaxaNF, nHdl, nOperacao, aRecSE5, aNDFDados, lHelp) If lRet Alert("Compensação realizada com sucesso") Else Alert("Ocorreu um erro no processo de compensação") EndIf Else Alert("Não existem dados a serem compensados") EndIf Return Nil |
Bloco de código | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
#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])) 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 |
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas