Histórico da Página
...
Bloco de código | ||
---|---|---|
| ||
#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 nQuant := 0 Local dDataRef := dDataBase Local cTodosLoc := "2" Local cTodasLin := "2" Local cCompet := Space(7) Local cCompCtr := Space(10) Local aOpcs := {"2 - Não","1 - Sim"} Local aOpcComp := {} Local aQtd := {"2 - Posicionada","1 - Todos"} Local oGrp If VALTYPE(oView) == 'O' .AND. VALTYPE(oModel := oView:GetModel()) == 'O' oMdlTFJ := oModel:GetModel("TFJ_REFER") If oMdlTFJ:GetValue("TFJ_CNTREC") == '1' aOpcComp := U_CompetCo() DEFINE MSDIALOG oDlgSelect FROM 0,0 TO 320380,300 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' @ 5, 77 SAY "Escala" SIZE 30, 30 PIXEL oGetTDW := TGet():New( 015, 077, { | u | If(PCount() > 0, cEscala := u, cEscala) },oDlgSelect, ; 060, 010, "!@",{ || .T.}, 0, 16777215,,.F.,,.T.,,.F.,; ,.F.,.F.,{|| .T.},.F.,.F. ,,"cEscala",,,,.T. ) oGetTDW:cF3 := 'TDW' @ 30, 9 SAY "Percentual (%)" SIZE 50, 30 PIXEL oDataDe := TGet():New( 40, 009, { | u | If( PCount() == 0, nPerc, nPerc := u ) },oDlgSelect, ; 060, 010, "@E 999999.99",, 0, 16777215,,.F.,,.T.,,.F.,,.F.,.F.,,.F.,.F. ,,"nPerc",,,,.T.) @ 30, 77 SAY "Multiplicador" SIZE 50, 30 PIXEL oDataAte := TGet():New( 40, 077, { | u | If( PCount() == 0, nMult, nMult := u ) },oDlgSelect, ; 060, 010, "@E 99.99",, 0, 16777215,,.F.,,.T.,,.F.,,.F.,.F.,,.F.,.F. ,,"nMult",,,,.T.) @ 6460, 9 SAY "Em todos os Locais?Apurado em:" SIZE 80, 30 PIXEL oCombooCompet := TComboBoxTGet():New(63 59,77 077, { | u |if If( PCount()>0,cTodosLoc == 0, cCompet, cCompet := u,cTodosLoc ) },oDlgSelect, ; aOpcs020,40,10,oDlgSelect,,,, 010, "@E 99/9999",, 0, 16777215,,.F.,,.T.,,.F.,,.F.,.F.,,.F.,.F. ,,"cCompet",,,,'cTodosLoc'.T.) oGrp@ 94, 9 SAY := TGroup():New(080, 005, 135, 140, "Alteração de Quantidade", oDlgSelect,,, .T.) "Em todos os Locais?" SIZE 80, 30 PIXEL @ 90, 9 SAY "Nova Quantidade" SIZE 50, 30 PIXEL oQuantoCombo := TGetTComboBox():New( 10093, 00977, { | u | Ifif( PCount() == 0, nQuant, nQuant >0,cTodosLoc:= u ,cTodosLoc) },oDlgSelect, ; 060aOpcs, 010, "@E 99,999,999,999",, 0, 16777215,,.F.,,.T.,,.F.,,.F.,.F.,,.F.,.F. ,,"nQuant",,,,40,10,oDlgSelect,,,,,,.T.,,,,,,,,,'cTodosLoc') oGrp := TGroup():New(080, 005, 135, 140, "Alteração de Quantidade", oDlgSelect,,, .T.) @ 90110, 779 SAY "DataNova de ReferenciaQuantidade" SIZE 50, 30 PIXEL oDataAteoQuant := TGet():New( 100120, 077009, { | u | If( PCount() == 0, dDataRefnQuant, dDataRefnQuant := u ) },oDlgSelect, ; 060, 010, "@D@E 99,999,999,999",, 0, 16777215,,.F.,,.T.,,.F.,,.F.,.F.,,.F.,.F. ,,"dDataRefnQuant",,,,.T.) @ 120110, 977 SAY "TodasData asde Linhas?Referencia" SIZE 8050, 30 PIXEL oCombo1oDataAte := TComboBoxTGet():New( 120, 077, { | u |if If( PCount()>0,cTodasLin == 0, dDataRef, dDataRef := u,cTodasLin ) },oDlgSelect, ; aQtd060,60,10,oDlgSelect,,,, 010, "@D",, 0, 16777215,,.F.,,.T.,,.F.,,.F.,.F.,,,,'cTodasLin').F.,.F. ,,"dDataRef",,,,.T.) @ 140, 9 SAY "Todas as Linhas?" SIZE 80, 30 PIXEL oRefreshoCombo1 := TButtonTComboBox():New( 144140, 005, "Aplicar",oDlgSelect,077,{|| U_AplicVl(oModel, cFuncao , nPerc, nMult, LEFT(cTodosLoc,1), cEscala, nQuant, dDataRef, LEFT(cTodasLin,1)) , oDlgSelect:End()}, 60,10,,,.F.,.T.,.F.,,.F.,,,.F. ) u|if(PCount()>0,cTodasLin:=u,cTodasLin)},; aQtd,60,10,oDlgSelect,,,,,,.T.,,,,,,,,,'cTodasLin') oExitoRefresh := TButton():New( 144 164, 080005, "SairAplicar",oDlgSelect,{|| oDlgSelect:End() }, 60,10,,,.F.,.U_AplicVl(oModel, cFuncao , nPerc, nMult, LEFT(cTodosLoc,1), cEscala, nQuant, dDataRef, LEFT(cTodasLin,1), cCompet) , oDlgSelect:End()}, 60,10,,,.F.,.T.,.F.,,.F.,,,.F. ) oExit := TButton():New( 164 , ACTIVATE MSDIALOG oDlgSelect CENTER Else MsgAlert("Opção disponível apenas para contratos Recorrentes") EndIf EndIf 080, "Sair",oDlgSelect,{|| oDlgSelect:End() }, 60,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, nQuant, dDataRef, cTodasLin, cCompet) Local lAllLoc := cTodosLoc == '1' Local lAllLinha := cTodasLin == '1' Local oMdlTFL := oModel:GetModel("TFL_LOC") Local oMdlTFF := oModel:GetModel("TFF_RH") Local nX := 0 Local nY := 0 Local cLog := "" Local aSaveRows := FwSaveRows() Local nTotal := 0 Local nGrandTot := 0 Local nVal := 0 Local nValPrc := 0 Local nPosTFF := 0 Local nPosTFL := 0 Local nValParc := 0 Local lServRet := .F. Local cProdRet := SuperGetMv("MV_PRODRET",,"") DbSelectArea("TFF") TFF->(DbSetOrder(1)) If TFF->(ColumnPos("TFF_PRDRET")) > 0 .And. TFF->(ColumnPos("TFF_VLRRET")) > 0 lServRet := .T. EndIf If nQuant > 0 .And. !lAllLinha nPosTFF := oMdlTFF:GetLine() nPosTFL := oMdlTFL:GetLine() 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) cLog += " - Função: " + Alltrim(POSICIONE("SRJ",1,xFilial("SRJ") + oMdlTFF:GetValue("TFF_FUNCAO"), "RJ_DESC")) + Chr(13) + Chr(10) cLog += " - Produto: " + Alltrim(Posicione("SB1",1,xFilial("SB1") + oMdlTFF:GetValue("TFF_PRODUT"), "B1_DESC")) + Chr(13) + Chr(10) cLog += " - Qtd. Venda Anterior: " + Alltrim(AllToChar(oMdlTFF:GetValue("TFF_QTDVEN"))) + Chr(13) + Chr(10) cLog += " - Qtd. Venda: " + Alltrim(AllToChar(nQuant)) + Chr(13) + Chr(10) cLog += " - Vlr. Venda Anterior: R$ " + Alltrim(TRANSFORM( oMdlTFF:GetValue("TFF_SUBTOT") , "@E 99,999,999,999.99" )) + Chr(13) + Chr(10) cLog += " - Vlr. Venda Novo: R$ " + Alltrim(TRANSFORM( ROUND(nQuant * oMdlTFF:GetValue("TFF_SUBTOT"), TamSX3("TFF_SUBTOT")[2]) , "@E 99,999,999,999.99" )) + Chr(13) + Chr(10) IF nPerc == 0 nValParc := 0 Else nValParc := U_AplicQtd(oMdlTFF,nQuant,dDataRef,.F.) EndIf nGrandTot += nValParc nTotal := oMdlTFF:GetValue("TFF_VLPRPA") //cLog += " - Valor Novo (prox. parcela): R$ " + Alltrim(TRANSFORM((nValParc), "@e 999,999,999.99" ))" cLog += " - Valor Novo (prox. parcela): R$ " + Alltrim(TRANSFORM((IIF(nPerc == 0, 0, nValParc + nTotal)), "@e 999,999,999.99" )) +; " ( R$ " + Alltrim(TRANSFORM(nValParc, "@e 999,999,999.99" )) + " )" + " + ( R$ " + Alltrim(TRANSFORM(IIF(nPerc == 0, 0, nTotal), "@e 999,999,999.99" )) + " )" + Chr(13) + Chr(10) cLog += Chr(13) + Chr(10) cLog += Chr(13) + Chr(10) EndIf If nPerc > 0 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,cCompet) .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) cLog += " - Função: " + Alltrim(POSICIONE("SRJ",1,xFilial("SRJ") + oMdlTFF:GetValue("TFF_FUNCAO"), "RJ_DESC")) + Chr(13) + Chr(10) cLog += " - Produto: " + Alltrim(Posicione("SB1",1,xFilial("SB1") + oMdlTFF:GetValue("TFF_PRODUT"), "B1_DESC")) + Chr(13) + Chr(10) If lAllLinha .And. nQuant > 0 cLog += " - Qtd. Venda Anterior: " + Alltrim(AllToChar(oMdlTFF:GetValue("TFF_QTDVEN"))) + Chr(13) + Chr(10) cLog += " - Qtd. Venda: " + Alltrim(AllToChar(nQuant)) + Chr(13) + Chr(10) cLog += " - Vlr. Venda Anterior: R$ " + Alltrim(TRANSFORM( oMdlTFF:GetValue("TFF_SUBTOT") , "@E 99,999,999,999.99" )) + Chr(13) + Chr(10) cLog += " - Vlr. Venda Novo: R$ " + Alltrim(TRANSFORM( ROUND(nQuant * oMdlTFF:GetValue("TFF_SUBTOT"), TamSX3("TFF_SUBTOT")[2]) , "@E 99,999,999,999.99" )) + Chr(13) + Chr(10) cLog += " - Valor Antigo (prox. parcela): R$ " + Alltrim(TRANSFORM( oMdlTFF:GetValue("TFF_VLPRPA") , "@e 999,999,999.99" )) + Chr(13) + Chr(10) nValParc := U_AplicQtd(oMdlTFF,nQuant,dDataRef,.F.) If nPerc == 0 nTotal := ROUND( (oMdlTFF:GetValue("TFF_VLPRPA") * (nPerc / 100)) * nMult , TamSX3("TFF_VLPRPA")[2] ) nTotal := 0 nGrandTot += nTotalElse nValParcnTotal := ROUND( (oMdlTFF:GetValue("TFF_VLPRPA") + nValParc * (nPerc / 100)) * nMult , TamSX3("TFF_VLPRPA")[2] ) cLogEndIf += " - Valor Novo (prox. parcela): R$ " + Alltrim(TRANSFORM((nValParc + nTotal), "@e 999,999,999.99" )) +; nGrandTot += nTotal If nPerc == 0 " ( R$ " + Alltrim(TRANSFORM(nValParc, "@e 999,999,999.99" )) + " )" + " + ( R$ " + Alltrim(TRANSFORM(nTotal, "@e 999,999,999.99" )) + " )" + Chr(13) + Chr(10) nValParc := 0 Else cLognValParc +:= Chr(13oMdlTFF:GetValue("TFF_VLPRPA") + Chr(10)nValParc ElseEndIf cLog cLog += " - Valor AntigoNovo (prox. parcela): R$ " + Alltrim(TRANSFORM((IIF( oMdlTFF:GetValue("TFF_VLPRPA") nPerc == 0, 0, nValParc + nTotal)), "@e 999,999,999.99" )) + Chr(13) + Chr(10); " ( R$ " //nTotal := ROUND( (oMdlTFF:GetValue("TFF_VLPRPA") * (nPerc / 100)) * nMult , TamSX3("TFF_VLPRPA")[2] ) nTotal := (oMdlTFF:GetValue("TFF_PRCVEN") * (nPerc / 100)) * oMdlTFF:GetValue("TFF_QTDVEN") + Alltrim(TRANSFORM(nValParc, "@e 999,999,999.99" )) + " )" + " + ( R$ " + Alltrim(TRANSFORM(IIF(nPerc == 0, 0, nTotal), "@e 999,999,999.99" )) + " )" + Chr(13) + Chr(10) cLog += Chr(13) nTotal := Round(nTotal,TamSX3("TFF_VLPRPA")[2]) + Chr(10) nGrandTot += nTotal Else cLog += " - Valor NovoAntigo (prox. parcela): R$ " + Alltrim(TRANSFORM(( oMdlTFF:GetValue("TFF_VLPRPA") + nTotal), "@e 999,999,999.99" )) +; Chr(13) + Chr(10) //nTotal ":= ROUND( + R$ " + Alltrim(TRANSFORM(nTotal, "@e 999,999,999.99" )) + " )" + Chr(13) + Chr(10(oMdlTFF:GetValue("TFF_VLPRPA") * (nPerc / 100)) * nMult , TamSX3("TFF_VLPRPA")[2] ) If nPerc == 0 cLog += Chr(13) + Chr(10) nTotal := EndIf0 EndIf Else Next nY cLog += REPLICATE("-",10) cLognTotal +:= Chr(13(oMdlTFF:GetValue("TFF_PRCVEN") +* Chr(10) (nPerc / 100)) * oMdlTFF:GetValue("TFF_QTDVEN") If !lAllLoc ExitEndIf EndIf Next nX EndIf 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?") //Verifica se vai aplicar a quantidade somente para a linha posicionada If !lAllLinha .And. nQuant > 0 oMdlTFL:GoLine(nPosTFL) nTotal := Round(nTotal,TamSX3("TFF_VLPRPA")[2]) nGrandTot += nTotal cLog += " - Valor Novo (prox. parcela): R$ " + Alltrim(TRANSFORM((IIF(nPerc == 0, 0, oMdlTFF:GetValue("TFF_VLPRPA")) + nTotal), "@e 999,999,999.99" )) +; oMdlTFF:GoLine(nPosTFF) " ( + R$ " U_AplicQtd(oMdlTFF,nQuant,dDataRef,.T.) EndIf For nX := 1 To oMdlTFL:Length() + Alltrim(TRANSFORM(nTotal, "@e 999,999,999.99" )) + " )" + Chr(13) + Chr(10) cLog += Chr(13) If lAllLoc+ Chr(10) oMdlTFL:GoLine(nX)EndIf EndIf Next nY For nYcLog :+= 1 To oMdlTFF:Length(REPLICATE("-",10) cLog += Chr(13) + Chr(10) oMdlTFF:GoLine(nY)If !lAllLoc Exit If U_VldFiltro(oMdlTFF,cFuncao,cEscala) .AND. oMdlTFF:GetValue("TFF_COBCTR") != '2' //aplicar a quantidade para todas as linhas encontradas conforme os filtros 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?") //Verifica se vai aplicar a quantidade somente para a linha posicionada If !lAllLinha .And. nQuant > 0 oMdlTFL:GoLine(nPosTFL) oMdlTFF:GoLine(nPosTFF) U_AplicQtd(oMdlTFF,nQuant,dDataRef,.T.) EndIf For nX := 1 To oMdlTFL:Length() EndIf If lAllLoc nVal := oMdlTFFoMdlTFL:GetValue("TFF_VLPRPA")GoLine(nX) EndIf nValPrcFor nY := 1 To oMdlTFF:GetValueLength("TFF_PRCVEN") oMdlTFF:GoLine(nY) If lServRetU_VldFiltro(oMdlTFF,cFuncao,cEscala,cCompet) .AndAND. nMult > 0 oMdlTFF:GetValue("TFF_COBCTR") != '2' //aplicar a quantidade para todas as linhas encontradas conforme os filtros nTotal := (nValPrc +If (nValPrc * (nPerc / 100))) lAllLinha .And. nQuant > 0 oMdlTFF:SetValue("TFF_PRCVEN", nTotal) U_AplicQtd(oMdlTFF,nQuant,dDataRef,.T.) EndIf nTotal := (nValPrc * (nPerc / 100)) *nVal := oMdlTFF:GetValue("TFF_QTDVENVLPRPA") nTotalnValPrc := Round(nTotal,TamSX3(oMdlTFF:GetValue("TFF_VLPRPAPRCVEN")[2]) If lServRet .And. nMult > 0 oMdlTFFnTotal :SetValue("TFF_VLPRPA",nVal= (nValPrc + nTotal)(nValPrc * (nPerc / 100))) oMdlTFF:SetValue("TFF_PRCVEN", nTotal) If !Empty(cProdRet) nPerc == 0 oMdlTFF:SetValue("TFF_PRDRET",cProdRet)nTotal := 0 EndIf Else nTotal := (nValPrc * (nPerc / 100)) * oMdlTFF:GetValue("TFF_QTDVEN") EndIf nTotal := Round(nTotal * nMult ,TamSX3("TFF_VLPRPA")[2]) nTotal := Round(nTotal,TamSX3("TFF_VLPRPA")[2]) oMdlTFF:SetValue("TFF_VLRRETVLPRPA",nVal + nTotal) Else oMdlTFF:SetValue("TFF_PRCVEN",; If !Empty(cProdRet) ROUND((nValPrc + (nValPrc * (nPerc / 100))),; oMdlTFF:SetValue("TFF_PRDRET",cProdRet) TamSX3("TFF_PRCVEN")[2]))EndIf nTotal := (nValPrc * (nPerc / 100)) * oMdlTFF:SetValueGetValue("TFF_VLPRPAQTDVEN",; ) ROUND((nVal + ((nVal * (nPerc / 100)) nTotal := nTotal * nMult)),; nTotal := Round(nTotal,TamSX3("TFF_VLPRPA")[2])) EndIf oMdlTFF:SetValue("TFF_VLRRET",nTotal) EndIf Next nY Else If !lAllLoc ExitoMdlTFF:SetValue("TFF_PRCVEN",; EndIf Next nX EndIf FwRestRows( aSaveRows ) Return User Function VldFiltro(oMdlTFF,cFuncao,cEscala) Local lRetorno := .F. If !Empty(cFuncao) .Or. !Empty(cEscala)ROUND((nValPrc + (nValPrc * (nPerc / 100))),; If !Empty(cFuncao) .And. !Empty(cEscala) If oMdlTFF:GetValue("TFF_FUNCAO") == cFuncao .And. oMdlTFF:GetValue TamSX3("TFF_ESCALAPRCVEN")[2])) == cEscala lRetorno := .T. If nPerc == EndIf0 Else If !Empty(cFuncao) If oMdlTFF:GetValueSetValue("TFF_FUNCAOVLPRPA", 0) == cFuncao lRetorno := .T.Else EndIf Else oMdlTFF:SetValue("TFF_VLPRPA",; If oMdlTFF:GetValue ROUND((nVal + ((nVal * (nPerc / 100)) * nMult)),; TamSX3("TFF_ESCALAVLPRPA")[2])) == cEscala lRetorno := .T. EndIf EndIf EndIf EndIf Next nY If !lAllLoc Exit EndIf Next nX EndIf FwRestRows( aSaveRows ) Return User Function VldFiltro(oMdlTFF,cFuncao,cEscala,cCompet) Local lRetorno := .T. If !Empty(cFuncao) .And. !Empty(cEscala) .AND. !Empty(cCompet) If oMdlTFF:GetValue("TFF_FUNCAO") == cFuncao .And. oMdlTFF:GetValue("TFF_ESCALA") == cEscala If !(U_VldCompC(oMdlTFF:GetValue("TFF_COD"), cCompet)) lRetorno := .F. EndIf Else lRetorno := .F. EndIf Else If !Empty(cFuncao) lRetorno := oMdlTFF:GetValue("TFF_FUNCAO") == cFuncao EndIf If !Empty(cEscala) .AND. lRetorno lRetorno := oMdlTFF:GetValue("TFF_ESCALA") == cEscala EndIf If !Empty(cCompet) .AND. lRetorno lRetorno := U_VldCompC(oMdlTFF:GetValue("TFF_COD"), cCompet) EndIf EndIf Return lRetorno User Function AplicQtd(oMdlTFF,nQuant,dDataRef,lSetValue) Local lRet := .T. Local nDataFim := Day(LastDate(dDataRef)) // ultimo dia do mes Local nValor := 0 Local nVlrPrx := oMdlTFF:GetValue("TFF_VLPRPA") //Valor da proxima parcela Local nDataIni := Day(dDataRef) //dia de inicio do contrato Local nQtdAnt := oMdlTFF:GetValue("TFF_QTDVEN") If lSetValue //Altera a quantidade do campo TFF_QTDVEN lRet := oMdlTFF:SetValue("TFF_QTDVEN",nQuant) //Realiza o calculo da proxima parcela If lRet nValor := oMdlTFF:GetValue("TFF_PRCVEN") * (nQuant - nQtdAnt) // preço de venda do contrato nValor := (nValor/nDataFim)*((nDataFim-nDataIni)+1) //Arredonda o valor nValor := Round(nValor,TamSX3("TFL_VLPRPA")[2]) nValor := nVlrPrx + nValor oMdlTFF:SetValue("TFF_VLPRPA",nValor) EndIf Else nValor := oMdlTFF:GetValue("TFF_PRCVEN") * (nQuant - nQtdAnt) // Valor a ser reajustado nValor := (nValor/nDataFim)*((nDataFim-nDataIni)+1) //Arredonda o valor nValor := Round(nValor,TamSX3("TFL_VLPRPA")[2]) EndIf Return nValor User Function CompetCo() Local aCompets := CtrCompets() Local nX For nX := 1 to Len(aCompets) aCompets[nX] := CVALTOCHAR(nX)+'='+aCompets[nX] Next nX Return aCompets User Function VldCompC(cCodTFF, cCompet) Local cQuery := "" Local cAliasCND := GetNextAlias() Local lRet EndIf EndIf Else //Considera qualquer TFF quando os filtros estiverem vazios lRetorno := .T. EndIf Return lRetorno User Function AplicQtd(oMdlTFF,nQuant,dDataRef,lSetValue) Local lRet := .T. Local nDataFim := Day(LastDate(dDataRef)) // ultimo dia do mes Local nValor := 0 Local nVlrPrx := oMdlTFF:GetValue("TFF_VLPRPA") //Valor da proxima parcela Local nDataIni := Day(dDataRef) //dia de inicio do contrato Local nQtdAnt := oMdlTFF:GetValue("TFF_QTDVEN") If lSetValue //Altera a quantidade do campo TFF_QTDVEN lRet := oMdlTFF:SetValue("TFF_QTDVEN",nQuant) //Realiza o calculo da proxima parcela If lRet nValor := oMdlTFF:GetValue("TFF_PRCVEN") * (nQuant - nQtdAnt) // preço de venda do contrato nValor := (nValor/nDataFim)*((nDataFim-nDataIni)+1) //Arredonda o valor nValor := Round(nValor,TamSX3("TFL_VLPRPA")[2]) nValor := nVlrPrx + nValor oMdlTFF:SetValue("TFF_VLPRPA",nValor) EndIf Else nValor := oMdlTFF:GetValue("TFF_PRCVEN") * (nQuant - nQtdAnt) // Valor a ser reajustado nValor := (nValor/nDataFim)*((nDataFim-nDataIni)+1) //Arredonda o valor nValor := Round(nValor,TamSX3("TFL_VLPRPA")[2]) EndIf Return nValor := .T. cQuery := "" cQuery += " SELECT 1 FROM " + RetSQLName("TFF") + " TFF " cQuery += " INNER JOIN " + RetSQLName("TFL") + " TFL " cQuery += " ON TFL.TFL_CODIGO = TFF.TFF_CODPAI " cQuery += " AND TFL.TFL_FILIAL = '" + xFilial("TFL") + "' " cQuery += " AND TFL.D_E_L_E_T_ = ' ' " cQuery += " INNER JOIN " + RetSQLName("CNE") + " CNE " cQuery += " ON CNE.CNE_CONTRA = TFF.TFF_CONTRT " cQuery += " AND CNE.CNE_NUMERO = TFL.TFL_PLAN " cQuery += " AND CNE.CNE_REVISA = TFF.TFF_CONREV " cQuery += " AND CNE.CNE_ITEM = TFF.TFF_ITCNB " cQuery += " AND CNE.CNE_FILIAL = '" + xFilial("CNE") + "' " cQuery += " AND CNE.D_E_L_E_T_ = ' ' " cQuery += " INNER JOIN " + RetSQLName("CND") + " CND " cQuery += " ON CND.CND_CONTRA = CNE.CNE_CONTRA " cQuery += " AND CND.CND_REVISA = CNE.CNE_REVISA " cQuery += " AND CND.CND_FILIAL = '" + xFilial("CND") + "' " cQuery += " AND CND.D_E_L_E_T_ = ' ' " cQuery += " AND CND.CND_COMPET = '" + cCompet + "' " cQuery += " WHERE " cQuery += " TFF.TFF_FILIAL = '" + xFilial("TFF") + "' " cQuery += " AND TFF.TFF_COD = '" + cCodTFF + "' " cQuery += " AND TFF.D_E_L_E_T_ = ' ' " cQuery := ChangeQuery(cQuery) DbUseArea(.T., "TOPCONN",TcGenQry(,,cQuery), cAliasCND , .T., .T.) lRet := ( cAliasCND )->( !EOF() ) ( cAliasCND )->(DbCloseArea()) Return lRet |
04. DEMAIS INFORMAÇÕES
DSERSGS-10241 DT Criação de gatilho para preenchimento de valor pro-rata
...
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas