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.




