Árvore de páginas

Versões comparadas

Chave

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

...

DescripciónActualizaciones
Nombre del programa fuente:FINANCIAL-TITLES.SERVICE.TLPP
Parámetros recibidos
NombreTipoDescripción
PARAMIXB[1]O

Definición de la vista y retorno de propiedades visuales del campo "Descuento por pronto pago"

Descripción del objeto PARAMIXB[1] cuando en el Json la bandera PARAMIXB[2] es Verdadera (.T.) y la bandera ["recalculate" ]  este como falsa (.F.)

Expandir
titleObjeto Titulo
Nombre en JsonEquivalenciaDescripción
recalculateN/ASi es True (.T.) realizará los calculos, si es False (.F.) realizara la vista
titulos[nX]['branch']E1_FILIALFilial
titulos[nX]['billnumber']E1_NUMERONumero de Titulo
titulos[nX]['type']E1_TIPOTipo de Titulo
titulos[nX]['actualduedt']E1_VENCREAVencimiento Real
titulos[nX]['currency']E1_MOEDAMoneda
titulos[nX]['unit']E1_LOJATienda
titulos[nX]['installment']E1_PARCELACuota
titulos[nX]['billvalue']E1_VALORValor
titulos[nX]['customer']E1_CLIENTECliente
titulos[nX]['class']E1_NATUREZModalidad
titulos[nX]['custname']A1_NOMENombre del cliente
titulos[nX]['balance']E1_SALDOSaldo del titulo
titulos[nX]['prefix']E1_PREFIXOPrefijo del titulo
titulos[nX]['issuedt']E1_EMISSAOFecha de emisión
titulos[nX]['writeoffne']E1_VALLIQValor neto de la baja    
titulos[nX]['discount']E1_DESCONTDescuento
titulos[nX]['interest']E1_JUROSIntereses
titulos[nX]['fine']E1_MULTAMultas
titulos[nX]['series']E1_SERIESerie 
titulos[nX]['origin']E1_ORIGEMRuta origen del titulo
titulos[nX]['recno']R_E_C_N_O
titulos[nX]['client']E1_CLIENTECliente
titulos[nX]['originbranch']E1_FILORIGFilial Original
titulos[nX]['paycondf2']F2_CONDCondicion SF2
titulos[nX]['paycondf1']F1_CONDCondición SF1
titulos[nX]['serie2f2']F2_SERIE2Serie SF2
titulos[nX]['serie2f1']F1_SERIE2Serie SF1
titulos[nX]['paymentcondition']
Condición de pago
titulos[nX]['cobrar']
Monto a cobrar en Numeric
titulos[nX]['billvalueString']
Toyal o saldo (Dependiendo la pantalla)
titulos[nX]['balanceString']
Saldo en String
titulos[nX]['cobrarString']
Monto a cobrar en String
titulos[nX]['discountString']
Descuento del titulo en String
titulos[nX]['interestString']
Interes del titulo en String
titulos[nX]['fineString']
Multa del titulo en String

Definición de la lógica del campo "Descuento por pronto pago"

Descripción del objeto PARAMIXB[1] cuando en el Json la bandera PARAMIXB[2] es Verdadera (.T.) y la bandera ["recalculate" ] este como True (.T.)

Expandir
titleObjeto
Nombre en JsonDescripción
recalculateSi es True (.T.) realizará los calculos, si es False (.F.) realizara la vista
bind['discountInput']Descuento ingresado en el campo Descuento Pronto Pago
bind['descuento']Tipo de Titulo
bind['multa']Interes del titulo en String
bind['interes']Multa del titulo en String
bind['saldo']Saldo total (Ya tomando en cuenta, descuento, multa e interes)

Definición de la grabación del campo "Descuento por pronto pago"

Descripción de los objetos (PARAMIXB[1]) mandados en el Json cuando la bandera PARAMIXB[2] es Falsa (.F.) 

Expandir
titleObjeto Encabezado
Nombre en JsonEquivalenciaDescripción
encabezado['serie']FJT_SERIESerie del recibo
encabezado['recibo']FJT_RECIBONumero de recibo
encabezado['emissa']FJT_EMISSAEmisión
encabezado['nature']FJT_NATURECobrador
encabezado['client']FJT_CLIENTCliente
encabezado['loja']FJT_LOJATienda
encabezado['cobrad']FJT_COBRADCobrador
encabezado['recprov']FJT_RECPRVRecibo Provisorio
Expandir
titleObjeto Titulos
Nombre en JsonEquivalenciaDescripción
titulos[nX]['branch']E1_FILIALFilial
titulos[nX]['billnumber']E1_NUMERONumero de Titulo
titulos[nX]['type']E1_TIPOTipo de Titulo
titulos[nX]['actualduedt']E1_VENCREAVencimiento Real
titulos[nX]['currency']E1_MOEDAMoneda
titulos[nX]['unit']E1_LOJATienda
titulos[nX]['installment']E1_PARCELACuota
titulos[nX]['billvalue']E1_VALORValor
titulos[nX]['customer']E1_CLIENTECliente
titulos[nX]['class']E1_NATUREZModalidad
titulos[nX]['custname']A1_NOMENombre del cliente
titulos[nX]['balance']E1_SALDOSaldo del titulo
titulos[nX]['prefix']E1_PREFIXOPrefijo del titulo
titulos[nX]['issuedt']E1_EMISSAOFecha de emisión
titulos[nX]['writeoffne']E1_VALLIQValor neto de la baja    
titulos[nX]['discount']E1_DESCONTDescuento
titulos[nX]['interest']E1_JUROSIntereses
titulos[nX]['fine']E1_MULTAMultas
titulos[nX]['series']E1_SERIESerie 
titulos[nX]['origin']E1_ORIGEMRuta origen del titulo
titulos[nX]['recno']R_E_C_N_O
titulos[nX]['client']E1_CLIENTECliente
titulos[nX]['originbranch']E1_FILORIGFilial Original
titulos[nX]['paycondf2']F2_CONDCondicion SF2
titulos[nX]['paycondf1']F1_CONDCondición SF1
titulos[nX]['serie2f2']F2_SERIE2Serie SF2
titulos[nX]['serie2f1']F1_SERIE2Serie SF1
titulos[nX]['paymentcondition']
Condición de pago
titulos[nX]['cobrar']
Monto a cobrar en Numeric
titulos[nX]['billvalueString']
Toyal o saldo (Dependiendo la pantalla)
titulos[nX]['balanceString']
Saldo en String
titulos[nX]['cobrarString']
Monto a cobrar en String
titulos[nX]['discountString']
Descuento del titulo en String
titulos[nX]['interestString']
Interes del titulo en String
titulos[nX]['fineString']
Multa del titulo en String
titulos[nX]['quickSelected']
Titulo seleccionado en el GRID
titulos[nX]['reasonBx']
Motivos de baja
titulos[nX]['peso']
Total en moneda
Expandir
titleObjeto monedas
Nombre en JsonDescripción
monedas[nX]['coin']Nombre Moneda
monedas[nX]['tasa']Tasa
monedas[nX]['received']Cantidad recibida en esta moenda
monedas[nX]['balance']Saldo en Numeric
monedas[nX]['type']Nombre de Moneda
monedas[nX]['moneda']Numero de Moneda
monedas[nX]['stringTasa']Tasa de moneda
monedas[nX]['balanceString']Saldo en String
monedas[nX]['receivedString']Cantidad recibida en esta moenda
Expandir
titleObjeto formas de pago
Nombre en JsonDescripción
formaspago[nX]['property']Nombre de la propiedad (Trae el mismo nombre registrado en la SX3)
formaspago[nX]['value']Valor de la propiedad
Expandir
titleObjeto parametros
Nombre en JsonDescripción
params[nX]['mv_par01']Valor del parametro 01

params[nX]['mv_par01']

.

.

.

params[nX]['mv_parxx']


PARAMIXB[2]LTrue (.T.) si es momento del guardado y False (.F.) si es configuración de la vista
Punto de entrada:F998VALBX
Respuesta:

Objeto Descripción del objeto de respuesta cuando en el Json la bandera PARAMIXB[2] ) es Verdadera (.T.) y la bandera ["recalculate" ]  este como falsa (.F.)

Expandir
titleObjeto de respuesta

Nombre

Tipo

Descripción

Obligatorio

oJson['label']L

Nombre del campo nuevo a mostrar.

Si
oJson['disabledDiscount']LDeshabilitar o habilitar el campo de descuento.Si
oJson['disabledInterest']LDeshabilitar o habilitar el campo de Intereses.Si
oJson['disabledFine']LDeshabilitar o habilitar el campo de Multa.Si
oJson['disabledInput']LDeshabilitar o habilitar el input nuevoSi
oJson['maxDiscount']NSe informa el descuento permitido debe tener un rango mayor a 0 y menor a 100Si
oJson['warningMaxDiscount']C Mensaje personalizado por si se excede el descuento permitido, si no se informa el front mandará uno por defaultNo

Descripción del objeto de respuesta cuando en el Json la bandera PARAMIXB[2] es Verdadera (.T.) y la bandera ["recalculate" ] este como True (.T.)

Expandir
titleObjeto de respuesta
Nombre en JsonDescripción
['descuento']Valor que sera mostrado en el campo descuento
['residuo']Valor que sera mostrado como total del titulo (Despues de descuentos, multa e intereses)
['multa']Valor que sera mostrado como multa del titulo
['interes']Valor que sera mostrado como interes del titulo

Descripción de los objetos mandados en el Json cuando la bandera ( PARAMIXB[2] ) es sea Falsa (.F.) 

N/A

Bloco de código
languageactionscript3
titleEjemplo de PE F998VALBX
linenumberstrue
collapsetrue
#Include 'Protheus.ch'

User Function F998VALBX()

    Local oResponse := JsonObject():New() as Object
    
    IF PARAMIXB[2]  //Vista 
        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']      := .T.//Deshabilitar o habilitar el input nuevo
        oResponse['maxDiscount']        := 50 //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

/*/{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 

...