Árvore de páginas

Versões comparadas

Chave

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

...

Ao revisar um contrato recorrente, na tela de revisão como mostra a seguir, em outras ações, selecionando o botão ajuste retroativo, é exibida uma tela.

Image RemovedImage Added

Percentual = 10%

...

Aviso
titleDemais informações

Os campos Função e Escala são filtros utilizados para a aplicação do reajuste, caso nenhum deles forem informados, todos os itens de RH(TFF) serão reajustados.

A opção "Em todos os locais" indica se o cálculo deve ser feito para todos os locais com suas TFF´s

Bloco de código
titleImplementação
#INCLUDE 'PROTHEUS.CH'

User function a740GrdV()
Local oView  :=   PARAMIXB[1] //Viewdef

If !isBlind() .AND. VALTYPE(oView) == 'O' .AND. isInCallStack("At870PRev")
    oView:AddUserButton("Reajuste Retroativo","",{|oView| U_RRetroat(oView)},,,)
EndIf
Return

User Function RRetroat(oView)
Local oModel
Local oMdlTFJ
Local oDlgSelect
Local cFuncao       := SPACE(TamSx3("TFF_FUNCAO")[1])
Local cEscala       := SPACE(TamSx3("TFF_ESCALA")[1])
Local nPerc := 0
Local nMult := 0
Local cTodosLoc := "2"
Local aOpcs := {"2 - Não","1 - Sim"}
 
If VALTYPE(oView) == 'O' .AND. VALTYPE(oModel := oView:GetModel()) == 'O'
    oMdlTFJ := oModel:GetModel("TFJ_REFER")
    If oMdlTFJ:GetValue("TFJ_CNTREC") == '1'
        DEFINE MSDIALOG oDlgSelect FROM 0,0 TO 202,280380 PIXEL TITLE "Reajuste Retroativo"
        @ 5, 9 SAY "Função" SIZE 30, 30 PIXEL
 
        oGetSRA := TGet():New( 015, 009, { | u | If(PCount() > 0, cFuncao := u, cFuncao) },oDlgSelect, ;
            060, 010, "!@",{ || .T.}, 0, 16777215,,.F.,,.T.,,.F.,;
            ,.F.,.F.,{|| .T.},.F.,.F. ,,"cFuncao",,,,.T.  )
        oGetSRA:cF3 := 'SRJ'

        @ 305, 977 SAY "Percentual (%)Escala" SIZE 5030, 30 PIXEL

        oDataDeoGetTDW := TGet():New( 40015, 009077, { | u | If( PCount() ==> 0, nPerc, nPerccEscala := u, cEscala) },oDlgSelect, ;
            060, 010, "@E 99.99","!@",{ || .T.}, 0, 16777215,,.F.,,.T.,,.F.,;
            ,.F.,.F.,{|| .T.},.F.,.F. ,,"nPerccEscala",,,,.T.  )

        @ 30, 77oGetTDW:cF3 := 'TDW'
 
        @ 30, 9 SAY "MultiplicadorPercentual (%)" SIZE 50, 30 PIXEL
 
        oDataAteoDataDe := TGet():New( 40, 077009, { | u | If( PCount() == 0, nMultnPerc, nMultnPerc := u ) },oDlgSelect, ;
            060, 010, "@E 99.99",, 0, 16777215,,.F.,,.T.,,.F.,,.F.,.F.,,.F.,.F. ,,"nMultnPerc",,,,.T.)
 
        @ 6430, 977 SAY "Em todos os Locais?Multiplicador" SIZE 8050, 30 PIXEL
 
        oCombooDataAte := TComboBoxTGet():New(63 40,70 077, { | u |if If( PCount()>0,cTodosLoc == 0, nMult, nMult := u,cTodosLoc ) },oDlgSelect, ;
            aOpcs060,40,10,oDlgSelect,,,, 010, "@E 99.99",, 0, 16777215,,.F.,,.T.,,.F.,,.F.,.F.,,.F.,,'cTodosLoc')
.F. ,,"nMult",,,,.T.)
 
        oRefresh@ := TButton():New( 84, 010, "Aplicar",oDlgSelect,{|| U_AplicVl(oModel, cFuncao , nPerc, nMult, LEFT(cTodosLoc,1)) , oDlgSelect:End()}, 50,10,,,.F.,.T.,.F.,,.F.,,,.F. )
64, 9 SAY "Em todos os Locais?" SIZE 80, 30 PIXEL
 
        oExitoCombo := TButtonTComboBox():New( 84	, 095, "Sair",oDlgSelect63,70,{|| oDlgSelect:End() }, 30,10,,,.F.u|if(PCount()>0,cTodosLoc:=u,cTodosLoc)},;
            aOpcs,40,10,oDlgSelect,,,,,,.T.,,,,.F.,,.F.,,,.F. 'cTodosLoc')
 
        ACTIVATEoRefresh MSDIALOG oDlgSelect CENTER
    Else
        MsgAlert("Opção disponível apenas para contratos Recorrentes")
    EndIf
EndIf

Return .T.


User Function AplicVl(oModel, cFuncao , nPerc, nMult, cTodosLoc)
Local lAllLoc := cTodosLoc == '1'
Local oMdlTFL := oModel:GetModel("TFL_LOC")
Local oMdlTFF := oModel:GetModel("TFF_RH")
Local nX
Local nY
Local cLog := ""
Local aSaveRows := FwSaveRows()
Local nTotal := 0
Local nGrandTot := 0
Local nVal := 0
Local nValPrc := 0

For nX := 1 To oMdlTFL:Length()
    If lAllLoc
        oMdlTFL:GoLine(nX)
    EndIf
    For nY := 1 To oMdlTFF:Length()
        oMdlTFF:GoLine(nY)
        If oMdlTFF:GetValue("TFF_FUNCAO") == cFuncao .AND. oMdlTFF:GetValue("TFF_COBCTR") != '2'
            cLog += "Local: " + Alltrim(POSICIONE("ABS",1,xFilial("ABS") + oMdlTFL:GetValue("TFL_LOCAL"), "ABS_DESCRI")) + Chr(13) + Chr(10)
            cLog += " - RH: " + oMdlTFF:GetValue("TFF_COD") + Chr(13) + Chr(10:= TButton():New( 84, 010, "Aplicar",oDlgSelect,{|| U_AplicVl(oModel, cFuncao , nPerc, nMult, LEFT(cTodosLoc,1), cEscala) , oDlgSelect:End()}, 50,10,,,.F.,.T.,.F.,,.F.,,,.F. )
 
        oExit := TButton():New( 84  , 095, "Sair",oDlgSelect,{|| oDlgSelect:End() }, 30,10,,,.F.,.T.,.F.,,.F.,,,.F. )
        
        ACTIVATE MSDIALOG oDlgSelect CENTER
    Else
        MsgAlert("Opção disponível apenas para contratos Recorrentes")
    EndIf
EndIf
 
Return .T.
 
 
User Function AplicVl(oModel, cFuncao , nPerc, nMult, cTodosLoc, cEscala)
Local lAllLoc := cTodosLoc == '1'
Local oMdlTFL := oModel:GetModel("TFL_LOC")
Local oMdlTFF := oModel:GetModel("TFF_RH")
Local nX
Local nY
Local cLog := ""
Local aSaveRows := FwSaveRows()
Local nTotal := 0
Local nGrandTot := 0
Local nVal := 0
Local nValPrc := 0
 
For nX := 1 To oMdlTFL:Length()
    If lAllLoc
        oMdlTFL:GoLine(nX)
    EndIf
    For nY := 1 To oMdlTFF:Length()
        oMdlTFF:GoLine(nY)
    cLog += " - Função: " + Alltrim(POSICIONE("SRJ",1,xFilial("SRJ") +If U_VldFiltro(oMdlTFF,cFuncao,cEscala) .AND. oMdlTFF:GetValue("TFF_FUNCAOCOBCTR"), "RJ_DESC")) + Chr(13) + Chr(10) != '2'
            cLog += " - ProdutoLocal: " + Alltrim(PosicionePOSICIONE("SB1ABS",1,xFilial("SB1ABS") + oMdlTFFoMdlTFL:GetValue("TFFTFL_PRODUTLOCAL"), "B1ABS_DESCDESCRI")) + Chr(13) + Chr(10)
            cLog += " - Valor Antigo (prox. parcela): R$RH: " +  Alltrim(TRANSFORM( oMdlTFF:GetValue("TFF_VLPRPACOD") , "@e 999,999,999.99" )) + Chr(13) + Chr(10)
            nTotalcLog :+= " ROUND(- (oMdlTFF:GetValue("TFF_VLPRPAFunção: " + Alltrim(POSICIONE("SRJ",1,xFilial("SRJ") *+ (nPerc / 100oMdlTFF:GetValue("TFF_FUNCAO"), "RJ_DESC")) * nMult , TamSX3("TFF_VLPRPA")[2] )+ Chr(13) + Chr(10)
            nGrandTot += nTotal
            cLog += " - Valor Novo (prox. parcela): R$Produto: " + Alltrim(TRANSFORM((Posicione("SB1",1,xFilial("SB1") + oMdlTFF:GetValue("TFF_VLPRPA"PRODUT"), "B1_DESC")) + nTotalChr(13), "@e 999,999,999.99" )) +;
+ Chr(10)
            cLog += " - Valor Antigo (prox. +parcela): R$ " +  Alltrim(TRANSFORM(nTotal( oMdlTFF:GetValue("TFF_VLPRPA") , "@e 999,999,999.99" )) + " )" + Chr(13) + Chr(10)
            cLognTotal +:= Chr(13ROUND( (oMdlTFF:GetValue("TFF_VLPRPA") +* Chr(10)
        EndIf
(nPerc / 100)) * nMult , TamSX3("TFF_VLPRPA")[2] )
       Next nY
    cLognGrandTot += REPLICATE("-",10)nTotal
            cLog += Chr(13) + Chr(10)
    If !lAllLoc" - Valor Novo (prox. parcela): R$ " + Alltrim(TRANSFORM((oMdlTFF:GetValue("TFF_VLPRPA") + nTotal), "@e 999,999,999.99" )) +;
        Exit
    EndIf
Next nX

cLog += REPLICATE("-",15)
cLog += Chr(13) + Chr(10)
cLog += "Valor adicional prox. parcela: " ( + R$ " + Alltrim(TRANSFORM(nGrandTotnTotal, "@e 999,999,999.99" ))

AtShowLog(cLog,"Prévia de Valores",/*lVScroll*/,/*lHScroll*/,/*lWrdWrap*/,.F.)

If MsgYesNo("Aplicar valores calculados?")
    For nX := 1 To oMdlTFL:Length() + " )" + Chr(13) + Chr(10)
            cLog += Chr(13) + Chr(10)
        EndIf
    Next nY
    cLog += REPLICATE("-",10)
    cLog += Chr(13) + Chr(10)
    If !lAllLoc
        Exit
    EndIf
Next nX
 
cLog += REPLICATE("-",15)
cLog += Chr(13) + Chr(10)
cLog += "Valor adicional prox. parcela: R$ " + Alltrim(TRANSFORM(nGrandTot, "@e 999,999,999.99" ))
 
AtShowLog(cLog,"Prévia de Valores",/*lVScroll*/,/*lHScroll*/,/*lWrdWrap*/,.F.)
 
If MsgYesNo("Aplicar valores calculados?")
    For nX := 1 To oMdlTFL:Length()
        If lAllLoc
            oMdlTFL:GoLine(nX)
        EndIf
        For nY := 1 To oMdlTFF:Length()
            oMdlTFF:GoLine(nY)
            If U_VldFiltro(oMdlTFF,cFuncao,cEscala) .AND. oMdlTFF:GetValue("TFF_COBCTR") != '2'
                nVal := oMdlTFF:GetValue("TFF_VLPRPA")
                nValPrc := oMdlTFF:GetValue("TFF_PRCVEN")
                oMdlTFF:SetValue("TFF_PRCVEN",;
                    ROUND((nValPrc + (nValPrc * (nPerc / 100))),;
                    TamSX3("TFF_PRCVEN")[2]))
 
                oMdlTFF:SetValue("TFF_VLPRPA",;
                    ROUND((nVal + ((nVal * (nPerc / 100)) * nMult)),;
        If lAllLoc
            oMdlTFL:GoLine(nX)
TamSX3("TFF_VLPRPA")[2]))
            EndIf
        ForNext nY := 1 To oMdlTFF:Length()
        If !lAllLoc
            oMdlTFF:GoLine(nY)
Exit
        EndIf
    Next nX
EndIf
 
FwRestRows( aSaveRows )
 
Return

User IfFunction oMdlTFF:GetValue("TFF_FUNCAO") == cFuncao .AND. oMdlTFF:GetValue("TFF_COBCTR") != '2'VldFiltro(oMdlTFF,cFuncao,cEscala)
Local lRetorno := .F.

If !Empty(cFuncao) .Or. !Empty(cEscala)
    If !Empty(cFuncao) .And. !Empty(cEscala)
         nVal :=If oMdlTFF:GetValue("TFF_VLPRPAFUNCAO")
				nValPrc := oMdlTFF:GetValue("TFF_PRCVEN")
                oMdlTFF:SetValue == cFuncao .And. oMdlTFF:GetValue("TFF_PRCVENESCALA",;
) == cEscala
            lRetorno := .T.
    ROUND((nValPrc + (nValPrc * (nPerc / 100))),; EndIf
    Else
                TamSX3("TFF_PRCVEN")[2]))
If !Empty(cFuncao)
               If oMdlTFF:SetValueGetValue("TFF_VLPRPA",;
FUNCAO") == cFuncao
                lRetorno := .T.
    ROUND((nVal + ((nVal * (nPerc / 100)) * nMult)),;EndIf
        Else
            If TamSX3oMdlTFF:GetValue("TFF_VLPRPA")[2]))ESCALA") == cEscala
            EndIf
    lRetorno := .T.
  Next nY
        If !lAllLocEndIf
        EndIf
    ExitEndIf
Else
    //Considera qualquer TFF quando os filtros estiverem EndIfvazios
    lRetorno Next nX:= .T.
EndIf

FwRestRows( aSaveRows )

Return lRetorno


04. DEMAIS INFORMAÇÕES

DSERSGS-10241 DT Criação de gatilho para preenchimento de valor pro-rata

...