Publicado el Dejar un comentario

Validando información antes de guardar un documento mediante Scripts en MyBusiness POS


Una de las mayores ventajas de MyBusiness POS es la posibilidad de extender su funcionamiento mediante Scripts. Con unas cuantas líneas de código podemos validar información, mostrar mensajes al usuario e incluso impedir que un documento sea guardado cuando no cumple con las políticas de la empresa.

En este ejemplo aprenderemos a validar que el cliente tenga asignado un RFC antes de permitir guardar una factura.

¿Por qué hacerlo?

En muchos negocios es común que existan clientes registrados únicamente con nombre. Sin embargo, al momento de emitir una factura es indispensable contar con un RFC válido.

En lugar de esperar a que el CFDI genere un error, podemos realizar la validación desde el propio Script.

Código de ejemplo

'-----------------------------------------------------
' Validar RFC del cliente
' Evento: Antes de guardar el documento
'-----------------------------------------------------

Dim sRFC

sRFC = Cliente.Valor("RFC")

Si Trim(sRFC) = "" Entonces

    Mensaje "El cliente seleccionado no tiene capturado el RFC." & _
            SaltoLinea & _
            SaltoLinea & _
            "Capture el RFC antes de continuar."

    Cancelar

FinSi

Analizando el Script

Obtener el valor de un campo

La función Valor() permite recuperar el contenido de un campo del objeto actual.

sRFC = Cliente.Valor("RFC")

En este caso obtenemos el RFC del cliente asociado al documento.


Validar que exista información

Antes de guardar el documento verificamos que el campo no esté vacío.

Si Trim(sRFC) = "" Entonces

Utilizar Trim() elimina espacios al inicio y al final del texto, evitando que un campo con espacios sea considerado como válido.


Mostrar un mensaje

Para informar al usuario utilizamos el procedimiento Mensaje.

Mensaje "El cliente seleccionado no tiene capturado el RFC."

La ventaja es que el usuario conoce inmediatamente la causa del problema.


Cancelar el proceso

Cuando una condición no se cumple podemos impedir que el documento continúe.

Cancelar

Dependiendo del evento donde se ejecute el Script, MyBusiness POS regresará el control al usuario para corregir la información.


Agregando una confirmación

En algunos casos no queremos cancelar automáticamente el proceso, sino permitir que el usuario decida.

Si Pregunta("El cliente no tiene RFC." & SaltoLinea & _
            "¿Desea continuar?") = No Entonces

    Cancelar

FinSi

La función Pregunta() resulta muy útil cuando la decisión depende del operador.


Validando el importe del documento

Otro ejemplo práctico consiste en advertir cuando una venta supera cierto importe.

Dim dTotal

dTotal = Documento.Valor("TOTAL")

Si dTotal > 50000 Entonces

    Mensaje "Esta venta supera los $50,000." & _
            SaltoLinea & _
            "Solicite autorización."

    Cancelar

FinSi

Este tipo de validaciones son comunes para restringir ventas de alto importe sin autorización.


Buenas prácticas

Cuando desarrolles Scripts para MyBusiness POS procura seguir estas recomendaciones:

  • Utiliza nombres descriptivos para las variables.
  • Coloca comentarios en cada bloque importante.
  • Evita repetir el mismo código en varios eventos.
  • Aprovecha las funciones propias del motor de Scripts antes de recurrir a soluciones externas.
  • Realiza las pruebas en una empresa de demostración antes de implementar los cambios en producción.

Conclusión

Los Scripts de MyBusiness POS permiten adaptar el sistema a las necesidades específicas de cada empresa sin modificar el código fuente. Funciones como Valor(), Mensaje, Pregunta y Cancelar facilitan la implementación de reglas de negocio de una forma sencilla y fácil de mantener.

En una siguiente publicación exploraremos cómo recorrer las partidas de un documento para validar artículos, cantidades y precios de manera automática.

Deja un comentario