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") .OR. isInCallStack("AT870PlaRe")) 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 cAplReajs := "2" Local cAplHE := "2" Local cAplMT := "2" Local cTodosLoc := "2" Local cTodasLin := "2" Local cCronog := '1' Local cCompet := Space(7) Local aOpcRea := {"2 - Não","1 - Sim"} Local aOpcHE := {"2 - Não","1 - Sim"} Local aOpcMT := {"2 - Não","1 - Sim"} Local aOpcs := {"2 - Não","1 - Sim"} Local aOpcComp := {} Local aQtd := {"2 - Posicionada","1 - Todos"} Local aCronog := {"1 - Sim", "2 - Não"} 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 475525,300 PIXEL TITLE "Reajuste Retroativo" oGrp1 := TGroup():New(000, 005, 53, 140, "Filtros", oDlgSelect,,, .T.) @ 10, 9 SAY "Função" SIZE 30, 30 PIXEL oGetSRA := TGet():New( 020, 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' @ 10, 77 SAY "Escala" SIZE 30, 30 PIXEL oGetTDW := TGet():New( 020, 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' @ 40, 9 SAY "Apurado em:" SIZE 80, 30 PIXEL oCompet := TGet():New( 39, 077, { | u | If( PCount() == 0, cCompet, cCompet := u ) },oDlgSelect, ; 020, 010, "@E 99/9999",, 0, 16777215,,.F.,,.T.,,.F.,,.F.,.F.,,.F.,.F. ,,"cCompet",,,,.T.) oGrp2 := TGroup():New(055, 005, 123143, 140, "Reajuste", oDlgSelect,,, .T.) @ 65, 9 SAY "Percentual (%)" SIZE 50, 30 PIXEL oDataDe := TGet():New( 75, 009, { | u | If( PCount() == 0, nPerc, nPerc := u ) },oDlgSelect, ; 060, 010, "@E 9999.99",, 0, 16777215,,.F.,,.T.,,.F.,,.F.,.F.,,.F.,.F. ,,"nPerc",,,,.T.) @ 65, 77 SAY "Multiplicador" SIZE 50, 30 PIXEL oDataAte := TGet():New( 75, 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.) @ 95, 9 SAY "Aplica Reajuste?" SIZE 80, 30 PIXEL oCombo1 := TComboBox():New(94,77,{|u|if(PCount()>0,cAplReajs:=u,cAplReajs)},; aOpcRea,40,10,oDlgSelect,,,,,,.T.,,,,,,,,,'cAplReajs') @ 110, 9 SAY "Reajusta H.E.?" SIZE 80, 30 PIXEL oCombo2 := TComboBox():New(109,77,{|u|if(PCount()>0,cAplHE:=u,cAplHE)},; aOpcHE,40,10,oDlgSelect,,,,,,.T.,,,,,,,,,'cAplHE') oGrp := TGroup():New(128, 005, 183, 140, "Alteração de Quantidade", oDlgSelect,,, .T.) @ 138125, 9 SAY "Em todos os LocaisReajusta Materiais?" SIZE 80, 30 PIXEL oCombooCombo3 := TComboBox():New(137124,77,{|u|if(PCount()>0,cTodosLoccAplMT:=u,cTodosLoccAplMT)},; aOpcsaOpcMT,40,10,oDlgSelect,,,,,,.T.,,,,,,,,,'cTodosLoc') cAplMT') oGrp := TGroup():New(148, 005, 190, 140, "Alteração de Quantidade", oDlgSelect,,, .T.) @ 158, 9 SAY "Nova Quantidade" SIZE 50, 30 PIXEL oQuant := TGet():New( 168, 009, { | u | If( PCount() == 0, nQuant, nQuant := u ) },oDlgSelect, ; 060, 010, "@E 99,999,999,999",, 0, 16777215,,.F.,,.T.,,.F.,,.F.,.F.,,.F.,.F. ,,"nQuant",,,,.T.) @ 158, 77 SAY "Data de Referencia" SIZE 50, 30 PIXEL oDataAte := TGet():New( 168, 077, { | u | If( PCount() == 0, dDataRef, dDataRef := u ) },oDlgSelect, ; 060, 010, "@D",, 0, 16777215,,.F.,,.T.,,.F.,,.F.,.F.,,.F.,.F. ,,"dDataRef",,,,.T.) @ 187200, 9 SAY "Todas os itens asde LinhasRH?" SIZE 80, 30 PIXEL oCombo1 := TComboBox():New(187200, 077,{|u|if(PCount()>0,cTodasLin:=u,cTodasLin)},; aQtd,60,10,oDlgSelect,,,,,,.T.,,,,,,,,,'cTodasLin') @ 202215, 9 SAY "Aplic. Cronograma?" SIZE 80, 30 PIXEL oCombo1 := TComboBox():New(202215, 077,{|u|if(PCount()>0,cCronog:=u,cCronog)},; aCronog,60,10,oDlgSelect,,,,,,.T.,,,,,,,,,'cCronog') @ 230, 9 SAY "Em todos os Locais?" SIZE 80, 30 PIXEL oRefreshoCombo := TButtonTComboBox():New( 225230, 005, "Aplicar",oDlgSelect,77,{|u|if(PCount()>0,cTodosLoc:=u,cTodosLoc)},; aOpcs,40,10,oDlgSelect,,,,,,.T.,,,,,,,,,'cTodosLoc') oRefresh := TButton():New( 250, 005, "Aplicar",oDlgSelect,{|| U_AplicVl(oModel, cFuncao , nPerc, nMult, LEFT(cTodosLoc,1), cEscala, nQuant, dDataRef, LEFT(cTodasLin,1), cCompet, LEFT(cAplReajs,1), LEFT(cCronog,1), LEFT(cAplHE,1), LEFT(cAplMT,1)) , oDlgSelect:End()}, 60,10,,,.F.,.T.,.F.,,.F.,,,.F. ) oExit := TButton():New( 225250 , 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, cAplReajs, cCronog, cAplHE,cAplMT) Local lAllLoc := cTodosLoc == '1' Local lAllLinha := cTodasLin == '1' Local lAplicRea := cAplReajs == '1' Local oMdlTFL := oModel:GetModel("TFL_LOC") Local oMdlTFF := oModel:GetModel("TFF_RH") Local oMdlTFJoMdlTFG := oModel:GetModel("TFJTFG_REFERMI") Local oMdlTFH := oModel:GetModel("TFH_MC") Local oMdlTFJ := oModel:GetModel("TFJ_REFER") 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",,"") Local cProxParc := "" Local nValPrx := 0 Local nDiff := 0 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() If !EMPTY(STRTRAN(cCompet,"/")) .AND. cAplReajs == '1' cProxParc := cCompet Else cProxParc := TecBDt2Cmp(POSICIONE("CNA",1,xFilial("CNA")+oMdlTFL:GetValue("TFL_CONTRT")+oMdlTFL:GetValue("TFL_CONREV")+oMdlTFL:GetValue("TFL_PLAN"), "CNA_PROMED")) EndIf 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 .AND. lAplicRea nValParc := 0 Else nValParc := U_AplicQtd(oMdlTFF,nQuant,dDataRef,.F.,,cCronog == '1') EndIf nGrandTot += nValParc If cCronog == '1' If !(TecHasTGT("TFF",oMdlTFF:GetValue("TFF_COD"),cProxParc,oMdlTFJ:GetValue("TFJ_CODIGO"),@nTotal)) nTotal := At740PrxPa(/*cTipo*/,; oMdlTFF:GetValue("TFF_QTDVEN"),; oMdlTFF:GetValue("TFF_PRCVEN"),; oMdlTFF:GetValue("TFF_DESCON"),; oMdlTFF:GetValue("TFF_TXLUCR"),; oMdlTFF:GetValue("TFF_TXADM")) EndIf Else nTotal := oMdlTFF:GetValue("TFF_VLPRPA") EndIf //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 .AND. lAplicRea, 0, nValParc + nTotal)), "@e 999,999,999.99" )) +; " ( R$ " + Alltrim(TRANSFORM(nValParc, "@e 999,999,999.99" )) + " )" + " + ( R$ " + Alltrim(TRANSFORM(IIF(nPerc == 0 .AND. lAplicRea, 0, nTotal), "@e 999,999,999.99" )) + " )" + Chr(13) + Chr(10) cLog += Chr(13) + Chr(10) cLog += Chr(13) + Chr(10) EndIf If lAplicRea For nX := 1 To oMdlTFL:Length() If lAllLoc oMdlTFL:GoLine(nX) EndIf For nY := 1 To oMdlTFF:Length() If !lAllLinha nPosTFF := oMdlTFF:GetLine() oMdlTFF:GoLine(nPosTFF) Else oMdlTFF:GoLine(nY) EndIf If U_VldFiltro(oMdlTFF,cFuncao,cEscala,cCompet) .AND. oMdlTFF:GetValue("TFF_COBCTR") != '2' If !EMPTY(STRTRAN(cCompet,"/")) .AND. cAplReajs == '1' cProxParc := cCompet Else cProxParc := TecBDt2Cmp(POSICIONE("CNA",1,xFilial("CNA")+oMdlTFL:GetValue("TFL_CONTRT")+oMdlTFL:GetValue("TFL_CONREV")+oMdlTFL:GetValue("TFL_PLAN"), "CNA_PROMED")) EndIf If cCronog == '1' If !(TecHasTGT("TFF",oMdlTFF:GetValue("TFF_COD"),cProxParc,oMdlTFJ:GetValue("TFJ_CODIGO"),@nValPrx)) nValPrx := At740PrxPa(/*cTipo*/,; oMdlTFF:GetValue("TFF_QTDVEN"),; oMdlTFF:GetValue("TFF_PRCVEN"),; oMdlTFF:GetValue("TFF_DESCON"),; oMdlTFF:GetValue("TFF_TXLUCR"),; oMdlTFF:GetValue("TFF_TXADM")) EndIf Else nValPrx := oMdlTFF:GetValue("TFF_VLPRPA") EndIf 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( nValPrx , "@e 999,999,999.99" )) + Chr(13) + Chr(10) nValParc := U_AplicQtd(oMdlTFF,nQuant,dDataRef,.F.,,cCronog == '1') If nPerc == 0 .AND. lAplicRea nTotal := 0 Else nTotal := ROUND( (nValPrx * (nPerc / 100)) * nMult , TamSX3("TFF_VLPRPA")[2] ) EndIf nGrandTot += nTotal If nPerc == 0 .AND. lAplicRea nValParc := 0 Else nValParc := nValPrx + nValParc EndIf cLog += " - Valor Novo (prox. parcela): R$ " + Alltrim(TRANSFORM((IIF(nPerc == 0 .AND. lAplicRea, 0, nValParc + nTotal)), "@e 999,999,999.99" )) +; " ( R$ " + Alltrim(TRANSFORM(nValParc, "@e 999,999,999.99" )) + " )" + " + ( R$ " + Alltrim(TRANSFORM(IIF(nPerc == 0 .AND. lAplicRea, 0, nTotal), "@e 999,999,999.99" )) + " )" + Chr(13) + Chr(10) cLog += Chr(13) + Chr(10) Else cLog += " - Valor Antigo RH (prox. parcela): R$ " + Alltrim(TRANSFORM( nValPrx , "@e 999,999,999.99" )) + Chr(13) + Chr(10) If nPerc == 0 .AND. lAplicRea nTotal := 0 Else nTotal := (oMdlTFF:GetValue("TFF_PRCVEN") * (nPerc / 100)) * oMdlTFF:GetValue("TFF_QTDVEN") EndIf nTotal := Round(nTotal,TamSX3("TFF_VLPRPA")[2]) nGrandTot += nTotal cLog += " - Valor Novo RH(prox. parcela): R$ " + Alltrim(TRANSFORM((IIF(nPerc == 0 .AND. lAplicRea, 0, nValPrx) + nTotal), "@e 999,999,999.99" )) +; " ( + R$ " + Alltrim(TRANSFORM(nTotal, "@e 999,999,999.99" )) + " )" + Chr(13) + Chr(10) cLog += Chr(13) + Chr(10) EndIf If cAplMT == "1" EndIf If !lAllLinha If oMdlTFG:Length() > 0 Exit EndIf Next nYU_CheckMat("TFG",oMdlTFG,oMdlTFF:GetValue("TFF_COD"),oMdlTFJ:GetValue("TFJ_CODIGO"),cCronog,cProxParc,@cLog,nPerc,lAplicRea,@nGrandTot) cLog += REPLICATE("-",10) cLog += Chr(13) + Chr(10) EndIf If !lAllLoc Exit If oMdlTFH:Length() > EndIf0 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" ) U_CheckMat("TFH",oMdlTFH,oMdlTFF:GetValue("TFF_COD"),oMdlTFJ:GetValue("TFJ_CODIGO"),cCronog,cProxParc,@cLog,nPerc,lAplicRea,@nGrandTot) AtShowLog(cLog,"Prévia de Valores",/*lVScroll*/,/*lHScroll*/,/*lWrdWrap*/,.F.) If MsgYesNo("Aplicar valores calculados?")EndIf //Verifica se vai aplicar a quantidade somente para aEndIf linha posicionada If !lAllLinha .And. nQuant > 0 EndIf oMdlTFL:GoLine(nPosTFL) oMdlTFF:GoLine(nPosTFF)EndIf U_AplicQtd(oMdlTFF,nQuant,dDataRef,.T.,nPerc,cCronog == '1',cCompet) EndIf If !lAllLinha For nX := 1 To oMdlTFL:Length()Exit If lAllLoc EndIf oMdlTFL:GoLine(nX)Next nY EndIfcLog += REPLICATE("-",10) ForcLog nY :+= 1 To oMdlTFF:Length(Chr(13) + Chr(10) If !lAllLinhalAllLoc oMdlTFF:GoLine(nPosTFF)Exit EndIf Else Next nX EndIf cLog += REPLICATE("-",15) cLog += Chr(13) oMdlTFF:GoLine(nY+ Chr(10) cLog += "Valor adicional prox. parcela: R$ " + Alltrim(TRANSFORM(nGrandTot, "@e EndIf999,999,999.99" )) AtShowLog(cLog,"Prévia lAplicDiff := de Valores",/*lVScroll*/,/*lHScroll*/,/*lWrdWrap*/,.F.) If U_VldFiltro(oMdlTFF,cFuncao,cEscala,cCompet) .AND. oMdlTFF:GetValue("TFF_COBCTR") != '2' MsgYesNo("Aplicar valores calculados?") //Verifica se vai aplicar a quantidade Ifsomente para cAplHEa == '1'linha posicionada If !lAllLinha .And. nQuant > 0 U_AjustHE(nPerc, oMdlTFFoMdlTFL:GoLine(nPosTFL) oMdlTFF:GoLine(nPosTFF) EndIf U_AplicQtd(oMdlTFF,nQuant,dDataRef,.T.,nPerc,cCronog == '1',cCompet) EndIf //aplicar a quantidadeFor paranX todas:= as1 linhas encontradas conforme os filtrosTo oMdlTFL:Length() If lAllLoc If lAllLinha .And. nQuant > 0 oMdlTFL:GoLine(nX) EndIf For nY := 1 U_AplicQtd(oMdlTFF,nQuant,dDataRef,.T.,nPerc,cCronog == '1'To oMdlTFF:Length() If !lAllLinha EndIf oMdlTFF:GoLine(nPosTFF) If !EMPTY(STRTRAN(cCompet,"/")) .AND. cAplReajs == '1' Else cProxParc := cCompetoMdlTFF:GoLine(nY) EndIf Else lAplicDiff := .F. cProxParc := TecBDt2Cmp(POSICIONE("CNA",1,xFilial("CNA")+oMdlTFLIf U_VldFiltro(oMdlTFF,cFuncao,cEscala,cCompet) .AND. oMdlTFF:GetValue("TFLTFF_CONTRT")+oMdlTFL:GetValue("TFL_CONREV")+oMdlTFL:GetValue("TFL_PLAN"), "CNA_PROMED"))COBCTR") != '2' EndIf If cAplHE == '1' If cCronog == '1' U_AjustHE(nPerc, oMdlTFF) If !(TecHasTGT("TFF",oMdlTFF:GetValue("TFF_COD"),cProxParc,oMdlTFJ:GetValue("TFJ_CODIGO"),@nVal)) EndIf //aplicar a quantidade para todas as linhas encontradas nValconforme := At740PrxPa(/*cTipo*/,;os filtros If lAllLinha .And. nQuant > 0 oMdlTFF:GetValue("TFF_QTDVEN"),; U_AplicQtd(oMdlTFF,nQuant,dDataRef,.T.,nPerc,cCronog == '1') EndIf oMdlTFF:GetValue("TFF_PRCVEN"),; If !EMPTY(STRTRAN(cCompet,"/")) .AND. cAplReajs == '1' cProxParc := cCompet oMdlTFF:GetValue("TFF_DESCON"),; Else cProxParc oMdlTFF:= TecBDt2Cmp(POSICIONE("CNA",1,xFilial("CNA")+oMdlTFL:GetValue("TFL_CONTRT")+oMdlTFL:GetValue("TFL_CONREV")+oMdlTFL:GetValue("TFFTFL_TXLUCRPLAN"),; "CNA_PROMED")) EndIf oMdlTFF:GetValue("TFF_TXADM")) If cCronog == '1' Else //aplicar apenas a diferença If !(TecHasTGT("TFF",oMdlTFF:GetValue("TFF_COD"),cProxParc,oMdlTFJ:GetValue("TFJ_CODIGO"),@nVal)) lAplicDiffnVal := .T.At740PrxPa(/*cTipo*/,; EndIf oMdlTFF:GetValue("TFF_QTDVEN"),; Else nVal := oMdlTFF:GetValue("TFF_VLPRPAPRCVEN"),; EndIf nValPrc := oMdlTFF:GetValue("TFF_PRCVENDESCON"),; If lServRet .And. nMult > 0 oMdlTFF:GetValue("TFF_TXLUCR"),; nTotal := (nValPrc + (nValPrc * (nPerc / 100oMdlTFF:GetValue("TFF_TXADM"))) If nPerc > 0Else //aplicar apenas a diferença nDifflAplicDiff := At740PrxPa(/*cTipo*/,;.T. EndIf oMdlTFF:GetValue("TFF_QTDVEN"),; Else nVal := oMdlTFF:GetValue("TFF_PRCVENVLPRPA"),; EndIf nValPrc := oMdlTFF:GetValue("TFF_DESCONPRCVEN"),; If lServRet .And. nMult > 0 oMdlTFF:GetValue("TFF_TXLUCR"),; nTotal := (nValPrc + (nValPrc * (nPerc oMdlTFF:GetValue("TFF_TXADM"/ 100))) If nPerc oMdlTFF:SetValue("TFF_PRCVEN", nTotal)> 0 nDiff := (At740PrxPa(/*cTipo*/,; oMdlTFF:GetValue("TFF_QTDVEN"),; oMdlTFF:GetValue("TFF_PRCVEN"),; oMdlTFF:GetValue("TFF_DESCON"),; oMdlTFF:GetValue("TFF_TXLUCR"),; oMdlTFF:GetValue("TFF_TXADM"))- nDiff) EndIfoMdlTFF:SetValue("TFF_PRCVEN", nTotal) If nPercnDiff :== 0 .AND. lAplicRea (At740PrxPa(/*cTipo*/,; nTotal := 0 oMdlTFF:GetValue("TFF_QTDVEN"),; Else oMdlTFF:GetValue("TFF_PRCVEN"),; nTotal := (nValPrc * (nPerc / 100)) * oMdlTFF:GetValue("TFF_QTDVEN") oMdlTFF:GetValue("TFF_DESCON"),; EndIf nTotal oMdlTFF:= Round(nTotal,TamSX3(GetValue("TFF_VLPRPATXLUCR")[2]),; If cCronog == '1' oMdlTFF:GetValue("TFF_TXADM"))- nDiff) If lAplicDiff EndIf If nPerc == 0 At740IAuto("TFF", oMdlTFF:GetValue("TFF_COD"), cProxParc, nDiff, oMdlTFJ:GetValue("TFJ_CODIGO")) .AND. lAplicRea nTotal := 0 Else Else At740IAuto("TFF", oMdlTFF:GetValue("TFF_COD"), cProxParc, nVal + nTotal, oMdlTFJ:GetValue("TFJ_CODIGO")) nTotal := (nValPrc * (nPerc / 100)) * oMdlTFF:GetValue("TFF_QTDVEN") EndIf EndIf Else nTotal oMdlTFF:SetValue:= Round(nTotal,TamSX3("TFF_VLPRPA",nVal + nTotal)[2]) EndIf If cCronog == '1' If lAplicDiff If !Empty(cProdRet) oMdlTFF:SetValueAt740IAuto("TFF", oMdlTFF:GetValue("TFF_PRDRETCOD"),cProdRet) cProxParc, nDiff, oMdlTFJ:GetValue("TFJ_CODIGO")) EndIf Else nTotal := (nValPrc * (nPerc / 100)) * At740IAuto("TFF", oMdlTFF:GetValue("TFF_QTDVENCOD") , cProxParc, nVal + nTotal, oMdlTFJ:GetValue("TFJ_CODIGO")) EndIf nTotalElse := nTotal * nMult nTotal := Round(nTotal,TamSX3(oMdlTFF:SetValue("TFF_VLPRPA")[2],nVal + nTotal) EndIf oMdlTFF:SetValue("TFF_VLRRET",nTotal) Else If nPerc > 0!Empty(cProdRet) nDiff := At740PrxPa(/*cTipo*/,;oMdlTFF:SetValue("TFF_PRDRET",cProdRet) EndIf oMdlTFF:GetValue("TFF_QTDVEN"),; nTotal := (nValPrc * (nPerc / 100)) * oMdlTFF:GetValue("TFF_PRCVENQTDVEN"),; oMdlTFF:GetValue("TFF_DESCON"),; nTotal := nTotal * nMult oMdlTFF:GetValue nTotal := Round(nTotal,TamSX3("TFF_TXLUCRVLPRPA"),;[2]) oMdlTFF:GetValueSetValue("TFF_TXADMVLRRET",nTotal)) If cAplMT oMdlTFF:SetValue("TFF_PRCVEN",;== "1" ROUND((nValPrc + (nValPrc * (nPerc / 100))),;If oMdlTFG:Length() > 0 TamSX3U_AplicMat("TFG",oMdlTFG,oMdlTFF:GetValue("TFF_PRCVENCOD")[2]),oMdlTFJ:GetValue("TFJ_CODIGO"),cCronog,cProxParc,@cLog,nPerc,lAplicRea) nDiff := (At740PrxPa(/*cTipo*/,;EndIf oMdlTFF:GetValue("TFF_QTDVEN"),; If oMdlTFH:Length() > 0 U_AplicMat("TFH",oMdlTFH,oMdlTFF:GetValue("TFF_PRCVEN"),;COD"),oMdlTFJ:GetValue("TFJ_CODIGO"),cCronog,cProxParc,@cLog,nPerc,lAplicRea) EndIf oMdlTFF:GetValue("TFF_DESCON"),; EndIf oMdlTFF:GetValue("TFF_TXLUCR"),;Else If nPerc > 0 oMdlTFF:GetValue("TFF_TXADM"))- nDiff) nDiff EndIf:= At740PrxPa(/*cTipo*/,; If nPerc == 0 .AND. lAplicRea oMdlTFF:GetValue("TFF_QTDVEN"),; IF nQuant == 0 If cCronog == '1'oMdlTFF:GetValue("TFF_PRCVEN"),; At740IAuto("TFF", oMdlTFF:GetValue("TFF_CODDESCON"),; cProxParc, 0, oMdlTFJ:GetValue("TFJ_CODIGO")) ElseoMdlTFF:GetValue("TFF_TXLUCR"),; oMdlTFF:SetValueGetValue("TFF_VLPRPATXADM", 0)) EndIfoMdlTFF:SetValue("TFF_PRCVEN",; EndIf ROUND((nValPrc + (nValPrc * (nPerc / 100))),; ElseTamSX3("TFF_PRCVEN")[2])) IfnDiff cCronog :== '1' (At740PrxPa(/*cTipo*/,; If lAplicDiff .And. ROUND(nDiff * nMult,TamSX3 oMdlTFF:GetValue("TFF_VLPRPAQTDVEN")[2]) > 0,; At740IAutooMdlTFF:GetValue("TFF_PRCVEN"),; oMdlTFF:GetValue("TFF_CODDESCON"),; cProxParcoMdlTFF:GetValue("TFF_TXLUCR"),; ROUND(nDiff * nMult,TamSX3(oMdlTFF:GetValue("TFF_VLPRPATXADM")[2]),;))- nDiff) EndIf oMdlTFJ:GetValue("TFJ_CODIGO")) If nPerc == 0 .AND. lAplicRea Else IF nQuant == 0 At740IAuto("TFF",; If cCronog == '1' At740IAuto("TFF", oMdlTFF:GetValue("TFF_COD"),; cProxParc, 0, oMdlTFJ:GetValue("TFJ_CODIGO")) Else cProxParc,; oMdlTFF:SetValue("TFF_VLPRPA", 0) ROUND((nVal + ((nVal * (nPerc / 100)) * nMult)),TamSX3("TFF_VLPRPA")[2]),; EndIf oMdlTFJ:GetValue("TFJ_CODIGO"))EndIf Else EndIf If cCronog == '1' Else If lAplicDiff .And. ROUND(nDiff oMdlTFF:SetValue* nMult,TamSX3("TFF_VLPRPA",;)[2]) > 0 ROUND((nVal + ((nVal * (nPerc / 100)) * nMult)),; At740IAuto("TFF",; TamSX3oMdlTFF:GetValue("TFF_VLPRPACOD")[2])),; EndIf EndIfcProxParc,; EndIf EndIf If !lAllLinha ROUND(nDiff * nMult,TamSX3("TFF_VLPRPA")[2]),; Exit EndIf Next nY oMdlTFJ:GetValue("TFJ_CODIGO")) If !lAllLoc Exit EndIfElse Next nX EndIf FwRestRows( aSaveRows ) Return User Function VldFiltroAt740IAuto(oMdlTFF,cFuncao,cEscala,cCompet) Local lRetorno := .T. "TFF",; If !Empty(cFuncao) .And. !Empty(cEscala) .AND. !Empty(cCompet) If oMdlTFF:GetValue("TFF_FUNCAOCOD") == cFuncao .And. oMdlTFF:GetValue("TFF_ESCALA") == cEscala ,; If !(U_VldCompC(oMdlTFF:GetValue("TFF_COD"), cCompet)) lRetorno := .F. EndIfcProxParc,; Else lRetorno := .F. EndIf Else If !Empty(cFuncao) lRetorno := oMdlTFF:GetValue("TFF_FUNCAO") == cFuncao EndIf ROUND((nVal + ((nVal If* !Empty(cEscala) .AND. lRetorno (nPerc / 100)) * nMult)),TamSX3("TFF_VLPRPA")[2]),; lRetorno := oMdlTFF:GetValue("TFF_ESCALA") == cEscala EndIf If !Empty(cCompet) .AND. lRetorno lRetorno := U_VldCompC(oMdlTFF oMdlTFJ:GetValue("TFFTFJ_CODCODIGO"), cCompet) EndIf EndIf Return lRetorno User Function AplicQtd(oMdlTFF,nQuant,dDataRef,lSetValue, nPerc, lCronog, cCompet)EndIf Local lRet := .T. Local nDataFim := Day(LastDate(dDataRef)) // ultimoElse dia do mes Local nValor := 0 Local nValorCalc := 0 Local nVlrPrx := oMdlTFF:GetValueSetValue("TFF_VLPRPA") //Valor da proxima parcela Local nDataIni,; := Day(dDataRef) //dia de inicio do contrato Local nQtdAnt ROUND((nVal + ((nVal :=* oMdlTFF:GetValue("TFF_QTDVEN") Local oModel(nPerc / 100)) * nMult)),; := oMdlTFF:GetModel() Local oMdlTFL := oModel:GetModelTamSX3("TFLTFF_LOCVLPRPA") Local oMdlTFJ[2])) := oModel:GetModel("TFJ_REFER") Local cProxParc EndIf := TecBDt2Cmp(POSICIONE("CNA",1,xFilial("CNA")+oMdlTFF:GetValue("TFF_CONTRT")+oMdlTFF:GetValue("TFF_CONREV")+oMdlTFL:GetValue("TFL_PLAN"), "CNA_PROMED")) Default cCompet := "" If lSetValue EndIf //Altera a quantidade do campo TFF_QTDVEN lRet := oMdlTFF:SetValue("TFF_QTDVEN",nQuant) EndIf //Realiza o calculo da proxima parcelaEndIf If lRet If nValor!lAllLinha := oMdlTFF:GetValue("TFF_PRCVEN") * (nQuant - nQtdAnt) // preço de venda do contratoExit EndIf Next nValornY := (nValor/nDataFim)*((nDataFim-nDataIni)+1) If !lAllLoc //Arredonda o valor Exit nValor := Round(nValor,TamSX3("TFL_VLPRPA")[2]) EndIf nValorCalc := nValorNext nX EndIf nValor := nVlrPrx + nValor FwRestRows( aSaveRows ) oMdlTFF:SetValue("TFF_VLPRPA",nValor) Return User If lCronog Function VldFiltro(oMdlTFF,cFuncao,cEscala,cCompet) Local lRetorno := .T. If !(TecHasTGT("TFF",Empty(cFuncao) .And. !Empty(cEscala) .AND. !Empty(cCompet) If oMdlTFF:GetValue("TFF_CODFUNCAO"),cProxParc,oMdlTFJ == cFuncao .And. oMdlTFF:GetValue("TFJTFF_CODIGOESCALA"),@nVlrPrx)) == cEscala If !(U_VldCompC(oMdlTFF:GetValue("TFF_COD"), cCompet)) nVlrPrx := At740PrxPa(/*cTipo*/,; lRetorno := .F. EndIf Else nQtdAnt,; lRetorno := .F. EndIf Else If !Empty(cFuncao) lRetorno := oMdlTFF:GetValue("TFF_PRCVENFUNCAO"),; == cFuncao EndIf If !Empty(cEscala) .AND. lRetorno lRetorno := oMdlTFF:GetValue("TFF_DESCONESCALA"),; == cEscala EndIf If !Empty(cCompet) .AND. lRetorno lRetorno := U_VldCompC(oMdlTFF:GetValue("TFF_TXLUCRCOD"),; cCompet) EndIf EndIf Return lRetorno User Function AplicQtd(oMdlTFF,nQuant,dDataRef,lSetValue, nPerc, oMdlTFF:GetValue("TFF_TXADM")) lCronog, cCompet) Local lRet := EndIf.T. Local nDataFim := Day(LastDate(dDataRef)) // ultimo dia do mes Local nValor := nVlrPrx0 Local + nValorCalc := 0 Local nVlrPrx If !Empty(cCompet) .And. cProxParc > cCompet := oMdlTFF:GetValue("TFF_VLPRPA") //Valor da proxima parcela Local nDataIni := Day(dDataRef) //dia de inicio do contrato Local nQtdAnt At740IAuto("TFF", oMdlTFF:GetValue("TFF_COD"), cCompet, nValorCalc,:= oMdlTFJoMdlTFF:GetValue("TFJTFF_CODIGOQTDVEN")) Local oModel Else := oMdlTFF:GetModel() Local oMdlTFL := oModel:GetModel("TFL_LOC") Local oMdlTFJ At740IAuto("TFF", oMdlTFF:GetValue("TFF_COD"), cProxParc, nValor, oMdlTFJ:GetValue:= oModel:GetModel("TFJ_CODIGOREFER")) Local cProxParc EndIf EndIf EndIf Else nValor := TecBDt2Cmp(POSICIONE("CNA",1,xFilial("CNA")+oMdlTFF:GetValue("TFF_CONTRT")+oMdlTFF:GetValue("TFF_CONREV")+oMdlTFL:GetValue("TFL_PLAN"), "CNA_PROMED")) Default cCompet := "" If lSetValue //Altera a quantidade do campo TFF_QTDVEN lRet := oMdlTFF:GetValueSetValue("TFF_PRCVENQTDVEN",nQuant) * (nQuant - nQtdAnt) // Valor a ser reajustado //Realiza o calculo da proxima parcela nValor := (nValor/nDataFim)*((nDataFim-nDataIni)+1)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]) EndIf nValorCalc Return:= nValor User Function CompetCo() Local aCompets nValor := nVlrPrx + nValor oMdlTFF:= CtrCompets() Local nX SetValue("TFF_VLPRPA",nValor) If lCronog For nX := 1 to Len(aCompets) aCompets[nX] := CVALTOCHAR(nX)+'='+aCompets[nX] Next nX If !(TecHasTGT("TFF",oMdlTFF:GetValue("TFF_COD"),cProxParc,oMdlTFJ:GetValue("TFJ_CODIGO"),@nVlrPrx)) Return aCompets UsernVlrPrx Function:= VldCompC(cCodTFF, cCompet) Local cQueryAt740PrxPa(/*cTipo*/,; := "" Local cAliasCND := GetNextAlias() Local lRet := .T. nQtdAnt,; 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 User Function AjustHE(nPerc, oMdlTFF) Local oModel := oMdlTFF:GetModel() Local oMdlHE := oModel:GetModel("TFU_HE") Local nX Local nValor := 0 If nPerc != 0 For nX := 1 To oMdlHE:Length() oMdlHE:GoLine(nX) nValor := ROUND( oMdlHE:GetValue("TFU_VALOR") + (oMdlHE:GetValue("TFU_VALOR") * nPerc / 100), TamSX3("TFU_VALOR")[2] ) oMdlHE:SetValue("TFU_VALOR", nValor ) Next nX EndIf Return oMdlTFF:GetValue("TFF_PRCVEN"),; oMdlTFF:GetValue("TFF_DESCON"),; oMdlTFF:GetValue("TFF_TXLUCR"),; oMdlTFF:GetValue("TFF_TXADM")) EndIf nValor := nVlrPrx + nValorCalc If !Empty(cCompet) .And. cProxParc > cCompet At740IAuto("TFF", oMdlTFF:GetValue("TFF_COD"), cCompet, nValorCalc, oMdlTFJ:GetValue("TFJ_CODIGO")) Else At740IAuto("TFF", oMdlTFF:GetValue("TFF_COD"), cProxParc, nValor, oMdlTFJ:GetValue("TFJ_CODIGO")) EndIf EndIf 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 := .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 User Function AjustHE(nPerc, oMdlTFF) Local oModel := oMdlTFF:GetModel() Local oMdlHE := oModel:GetModel("TFU_HE") Local nX Local nValor := 0 If nPerc != 0 For nX := 1 To oMdlHE:Length() oMdlHE:GoLine(nX) nValor := ROUND( oMdlHE:GetValue("TFU_VALOR") + (oMdlHE:GetValue("TFU_VALOR") * nPerc / 100), TamSX3("TFU_VALOR")[2] ) oMdlHE:SetValue("TFU_VALOR", nValor ) Next nX EndIf Return User Function CheckMat(cTabela,oMdlMat,cTFFCOD,cTFJCOD,cCronog,cProxParc,cLog,nPerc,lAplicRea,nGrandTot) Local nX := 0 Local nValPrxMI := 0 Local nValPrxMC := 0 Local nTotal := 0 Local cDescProd := "" If cTabela == "TFG" For nX := 1 To oMdlMat:Length() cDescProd := Alltrim(Posicione("SB1",1,xFilial("SB1") + oMdlMat:GetValue("TFG_PRODUT"), "B1_DESC")) cLog += " - Material de Implantação: " + oMdlMat:GetValue("TFG_COD") + " - " + cDescProd + Chr(13) + Chr(10) If cCronog == '1' If !(TecHasTGT("TFG",oMdlMat:GetValue("TFG_COD"),cProxParc,cTFJCOD,@nValPrxMI)) nValPrxMI := At740PrxPa(/*cTipo*/,; oMdlMat:GetValue("TFG_QTDVEN"),; oMdlMat:GetValue("TFG_PRCVEN"),; oMdlMat:GetValue("TFG_DESCON"),; oMdlMat:GetValue("TFG_TXLUCR"),; oMdlMat:GetValue("TFG_TXADM")) EndIf Else nValPrxMI := oMdlMat:GetValue("TFG_VLPRPA") EndIf cLog += " - Valor Antigo MI (prox. parcela): R$ " + Alltrim(TRANSFORM( nValPrxMI , "@e 999,999,999.99" )) + Chr(13) + Chr(10) If nPerc == 0 .AND. lAplicRea nTotal := 0 Else nTotal := (oMdlMat:GetValue("TFG_PRCVEN") * (nPerc / 100)) * oMdlMat:GetValue("TFG_QTDVEN") EndIf nTotal := Round(nTotal,TamSX3("TFG_VLPRPA")[2]) nGrandTot += nTotal cLog += " - Valor Novo MI (prox. parcela): R$ " + Alltrim(TRANSFORM((IIF(nPerc == 0 .AND. lAplicRea, 0, nValPrxMI) + nTotal), "@e 999,999,999.99" )) +; " ( + R$ " + Alltrim(TRANSFORM(nTotal, "@e 999,999,999.99" )) + " )" + Chr(13) + Chr(10) cLog += Chr(13) + Chr(10) Next nX ElseIf cTabela == "TFH" For nX := 1 To oMdlMat:Length() cDescProd := Alltrim(Posicione("SB1",1,xFilial("SB1") + oMdlMat:GetValue("TFH_PRODUT"), "B1_DESC")) cLog += " - Material de Consumo: " + oMdlMat:GetValue("TFH_COD") + " - " + cDescProd + Chr(13) + Chr(10) If cCronog == '1' If !(TecHasTGT("TFH",oMdlMat:GetValue("TFH_COD"),cProxParc,cTFJCOD,@nValPrxMC)) nValPrxMC := At740PrxPa(/*cTipo*/,; oMdlMat:GetValue("TFH_QTDVEN"),; oMdlMat:GetValue("TFH_PRCVEN"),; oMdlMat:GetValue("TFH_DESCON"),; oMdlMat:GetValue("TFH_TXLUCR"),; oMdlMat:GetValue("TFH_TXADM")) EndIf Else nValPrxMC := oMdlMat:GetValue("TFH_VLPRPA") EndIf cLog += " - Valor Antigo MC (prox. parcela): R$ " + Alltrim(TRANSFORM( nValPrxMC , "@e 999,999,999.99" )) + Chr(13) + Chr(10) If nPerc == 0 .AND. lAplicRea nTotal := 0 Else nTotal := (oMdlMat:GetValue("TFH_PRCVEN") * (nPerc / 100)) * oMdlMat:GetValue("TFH_QTDVEN") EndIf nTotal := Round(nTotal,TamSX3("TFH_VLPRPA")[2]) nGrandTot += nTotal cLog += " - Valor Novo MC (prox. parcela): R$ " + Alltrim(TRANSFORM((IIF(nPerc == 0 .AND. lAplicRea, 0, nValPrxMC) + nTotal), "@e 999,999,999.99" )) +; " ( + R$ " + Alltrim(TRANSFORM(nTotal, "@e 999,999,999.99" )) + " )" + Chr(13) + Chr(10) cLog += Chr(13) + Chr(10) Next nX EndIf Return User Function AplicMat(cTabela,oMdlMat,cTFFCOD,cTFJCOD,cCronog,cProxParc,cLog,nPerc,lAplicRea) Local nX := 0 Local nValPrxMI := 0 Local nValPrxMC := 0 Local nTotal := 0 Local nValPrc := 0 If cTabela == "TFG" For nX := 1 To oMdlMat:Length() If cCronog == '1' If !(TecHasTGT("TFG",oMdlMat:GetValue("TFG_COD"),cProxParc,cTFJCOD,@nValPrxMI)) nValPrxMI := At740PrxPa(/*cTipo*/,; oMdlMat:GetValue("TFG_QTDVEN"),; oMdlMat:GetValue("TFG_PRCVEN"),; oMdlMat:GetValue("TFG_DESCON"),; oMdlMat:GetValue("TFG_TXLUCR"),; oMdlMat:GetValue("TFG_TXADM")) EndIf Else nValPrxMI := oMdlMat:GetValue("TFG_VLPRPA") EndIf nValPrc := oMdlMat:GetValue("TFG_PRCVEN") nTotal := (nValPrc + (nValPrc * (nPerc / 100))) If nPerc > 0 oMdlMat:SetValue("TFG_PRCVEN", nTotal) EndIf If nPerc == 0 .AND. lAplicRea nTotal := 0 Else nTotal := (nValPrc * (nPerc / 100)) * oMdlMat:GetValue("TFG_QTDVEN") EndIf nTotal := Round(nTotal,TamSX3("TFG_VLPRPA")[2]) If cCronog == '1' At740IAuto("TFG", oMdlMat:GetValue("TFG_COD"), cProxParc, nValPrxMI + nTotal, cTFJCOD) Else oMdlMat:SetValue("TFG_VLPRPA",nValPrxMI + nTotal) EndIf Next nX ElseIf cTabela == "TFH" For nX := 1 To oMdlMat:Length() If cCronog == '1' If !(TecHasTGT("TFH",oMdlMat:GetValue("TFH_COD"),cProxParc,cTFJCOD,@nValPrxMC)) nValPrxMC := At740PrxPa(/*cTipo*/,; oMdlMat:GetValue("TFH_QTDVEN"),; oMdlMat:GetValue("TFH_PRCVEN"),; oMdlMat:GetValue("TFH_DESCON"),; oMdlMat:GetValue("TFH_TXLUCR"),; oMdlMat:GetValue("TFH_TXADM")) EndIf Else nValPrxMC := oMdlMat:GetValue("TFH_VLPRPA") EndIf nValPrc := oMdlMat:GetValue("TFH_PRCVEN") nTotal := (nValPrc + (nValPrc * (nPerc / 100))) If nPerc > 0 oMdlMat:SetValue("TFH_PRCVEN", nTotal) EndIf If nPerc == 0 .AND. lAplicRea nTotal := 0 Else nTotal := (nValPrc * (nPerc / 100)) * oMdlMat:GetValue("TFH_QTDVEN") EndIf nTotal := Round(nTotal,TamSX3("TFH_VLPRPA")[2]) If cCronog == '1' At740IAuto("TFH", oMdlMat:GetValue("TFH_COD"), cProxParc, nValPrxMC + nTotal, cTFJCOD) Else oMdlMat:SetValue("TFH_VLPRPA",nValPrxMC + nTotal) EndIf Next nX EndIf Return |
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