01. DATOS GENERALES
Producto | TOTVS Backoffice | ||||||
---|---|---|---|---|---|---|---|
Línea de producto: | Línea Protheus | ||||||
Segmento: | Servicios | ||||||
Módulo: | SIGAFIN - FINANCIERO | ||||||
Función: |
| ||||||
País: | Todos | ||||||
Ticket: | N/A | ||||||
Requisito/Story/Issue (informe el requisito vinculado): | DMINA-14964 |
02. SITUACIÓN/REQUISITO
Crear un punto de entrada con el objetivo de agregar validaciones y mensajes de confirmación o error antes de guardar, de manera que si no cumple las condiciones del punto de entrada no permita el guardado del recibo y este pueda ser modificado.
03. SOLUCIÓN
Se crea el punto de entrada F998NROK en la rutina SAVE-RECEIPT.SERVICE.TLPP - Servicio para el guardado de los recibos, con el objetivo de que el usuario pueda agregar validaciones y mensajes de confirmación antes de guardar (Si retorna True procederá con el guardado del recibo, de lo contrario no procederá con el guardado del recibo y mandara un mensaje como alerta).
- Crear la función de usuario F998NROK para agregar validaciones y mensajes de confirmación o error.
- La rutina efectuará las validaciones correspondientes y debe retornar un arreglo con un valor booleano y un mensaje de confirmación o error. - Dentro del modulo Financiero ejecutar la rutina TOTVS Recibo (Actualizaciones | Cuentas por cobrar).
- En la sección Nuevo Recibo, llenar los campos necesarios para el encabezado del recibo.
- Seleccionar un titulo a cobrar o compensar.
- Agregar una forma de pago (Opcional).
- Al momento de dar clic en confirmar se ejecutará el punto de entrada F998NROK .
- Si las validaciones fueron las correctas procederá con el guardado del recibo, de lo contrario no permitirá el guardado y mandara un mensaje.
04. INFORMACIÓN ADICIONAL
Descripción | Actualizaciones | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Punto de entrada: | F998NROK | ||||||||||||
Nombre del programa fuente: | SAVE-RECEIPT.SERVICE.TLPP | ||||||||||||
Parámetros recibidos: |
| ||||||||||||
Respuesta: |
|
Ejemplo:
#INCLUDE "Totvs.ch"
/*/{Protheus.doc} F998NROK
Punto de entrada que permite agregar validaciones al recibo antes del guardado
Si retorna un .T. procedera con el guardado del recibo
Si retorna un .F. no continuara con el guardado del recibo
/*/
USER FUNCTION F998NROK()
Local jFormasPago := Paramixb[1] //Json que contiene todas las formas de pago del recibo
Local jTitulos := Paramixb[2] //Json que contiene todos los titulos que contiene el recibo
Local jEncabezado := Paramixb[3] //Json que contiene los datos que conforman el encabezado del recibo
Local lRet := .T. As Logical
Local aRet := {} As Array
Local nCont As Numeric
Local cMensaje := "" As Character
Local nTipoDoc As Numeric
//Ejemplo de validaciones en las formas de pago que contiene el recibo
FOR nCont := 1 TO LEN(jFormasPago)
nTipoDoc := AScan(jFormasPago[nCont],{|x|x['property'] == "tipodoc"})
IF jFormasPago[nCont][nTipoDoc]['value'] == "EF"
lRet := .F.
cMensaje := "No se permite guardar recibos con forma de pago tipo EF-Efectivo"
AADD(aRet,{lRet,cMensaje})
ENDIF
NEXT
/*
//Ejemplo de validaciones en los titulos que contiene el recibo
FOR nCont := 1 TO LEN(jTitulos)
IF jTitulos[nCont]['series'] == "A"
lRet := .F.
cMensaje := "No se permite guardar un recibo con un titulo de serie A"
AADD(aRet,{lRet,cMensaje})
ENDIF
NEXT
*/
/*
//Ejemplo de validaciones sobre el encabezado del recibo
IF ALLTRIM(jEncabezado['modalidad']) == "COBRO"
lRet := .F.
cMensaje := "No se permite guardar un recibo con una modalidad dde tipo COBRO"
AADD(aRet,{lRet,cMensaje})
ENDIF
*/
RETURN aRet
La presente solución aplica para versión 12.1.33 o superior, siempre y cuando se tengan las rutinas actualizadas a la fecha de la expedición del issue.¡IMPORTANTE!