Histórico da Página
...
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#Include 'Protheus.ch' User Function F998VALBX() Local oResponse := JsonObject():New() as Object IF PARAMIXB[2] //Vista IF PARAMIXB[1]['recalculate'] oResponse:=setValues(PARAMIXB[1]) ELSE oResponse['label'] := "% Descuento por pronto pago" //Nombre del campo nuevo a mostrar. oResponse['readonlyDiscount'] := .T. //Deshabilitar o habilitar el campo de descuento. oResponse['readonlyInterest'] := .T. //Deshabilitar o habilitar el campo de Intereses. oResponse['readonlyFine'] := .T. //Deshabilitar o habilitar el campo de Multa. oResponse['disabledInput'] := .TF.//Deshabilitar isDisable(PARAMIXB[1]) //Deshabilitar o habilitar el input nuevo oResponse['maxDiscount'] := 50//GetLimite(PARAMIXB[1]) //Se informa el descuento permitido debe tener un rango mayor a 0 y menor a 100 oResponse['warningMaxDiscount'] := "Descuento por Pronto Pago mayor al permitido. En esta condición el tope es:"+ALLTRIM(STR(oResponse['maxDiscount'])) //Mensaje personalizado por si se excede el descuento permitido, si no se informa el front mandara uno por default ELSE SaveData(PARAMIXB[1]) //Grabación ENDIF Return oResponse se excede el descuento permitido, si no se informa el front mandara uno por default ENDIF ELSE SaveData(PARAMIXB[1]) //Grabación ENDIF Return oResponse /*/{Protheus.doc} setValues Esta funcion determina los valores a mostrar en los campos de descuento, residuo,multa e interes @type function @version @author luis.aboytes @since 25/7/2024 @param oJson, object, param_description @return variant, return_description /*/ Static Function setValues(oJson) Local oRes := JsonObject():New() oRes['descuento'] := Round(PARAMIXB[1]['bind']['discountInput']/100*PARAMIXB[1]['bind']['saldo'],2) oRes['residuo'] := Round(PARAMIXB[1]['bind']['saldo']-oRes['descuento'],MsDecimais(SE1->E1_MOEDA)) oRes['multa'] := 0 oRes['interes'] := 0 Return oRes /*/{Protheus.doc} SaveData Guardamos el dato en un campo en especifico @type function @author luis.aboytes @since 18/7/2024 /*/ Static Function SaveData(oJsonData) Local nCont as Numeric For nCont := 1 to LEN(oJsonData['titulos']) SE1->(dbSetOrder(1)) SE1->(dbSeek(xFilial("SE1")+PADR(oJsonData['titulos'][nCont]['prefix'],GetSx3Cache("E1_PREFIXO","X3_TAMANHO"))+PADR(oJsonData['titulos'][nCont]['billnumber'],GetSx3Cache("E1_NUM","X3_TAMANHO"))+PADR(oJsonData['titulos'][nCont]['installment'],GetSx3Cache("E1_PARCELA","X3_TAMANHO")))) RecLock("SE1",.F.) SE1->E1_XPERDES := oJsonData['titulos'][nCont]['percentDiscount'] MsUnLock() Next Return /*/{Protheus.doc} GetLimite Se retorna el limite de descuento @type function @author luis.aboytes @since 18/7/2024 /*/ Static Function GetLimite(oJsonData) Local nTope := 0 SE1->(dbSetOrder(1)) SE1->(dbSeek(xFilial("SE1")+PADR(oJsonData['prefix'],GetSx3Cache("E1_PREFIXO","X3_TAMANHO"))+PADR(oJsonData['billnumber'],GetSx3Cache("E1_NUM","X3_TAMANHO"))+PADR(oJsonData['installment'],GetSx3Cache("E1_PARCELA","X3_TAMANHO")))) nTope:=IIF(VAZIO(Posicione("SE4", 1,xFilial("SE4")+SE1->E1_XCONDPP,"E4_XDESCON")),0,Posicione("SE4", 1,xFilial("SE4")+SE1->E1_XCONDPP,"E4_XDESCON")) Return nTope /*/{Protheus.doc} isDisable Funcion que retorna si es editable o no el valor del input @type function @author luis.aboytes @since 18/7/2024 /*/ Static Function isDisable(oJsonData) Local lRet := .t. SE1->(dbSetOrder(1)) SE1->(dbSeek(xFilial("SE1")+PADR(oJsonData['prefix'],GetSx3Cache("E1_PREFIXO","X3_TAMANHO"))+PADR(oJsonData['billnumber'],GetSx3Cache("E1_NUM","X3_TAMANHO"))+PADR(oJsonData['installment'],GetSx3Cache("E1_PARCELA","X3_TAMANHO")))) IF SE1->E1_XCONDPP == '999' lRet := .f. ENDIF Return lRet |
04. ASUNTOS RELACIONADOS
- TOTVS Recibo
- 5.2 Puntos de entrada disponibles
Templatedocumentos
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas