Histórico da Página
...
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#Include 'Protheus.ch' User Function F998VALBX() Local oResponse := JsonObject():New() as Object Local oJsonData := JsonObject():New() as JsonObject oJsonData:fromJson(PARAMIXB[1]) IF !PARAMIXB[2] //Vista oResponse['label'] := "% Descuento" //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'] := isDisable(oJsonData) //Deshabilitar o habilitar el input nuevo oResponse['maxDiscount'] := GetLimite(oJsonData) //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(oJsonData) //Grabar ENDIF Return oResponse /*/{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 |
...
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas