La validacion está diseñada para crear verificaciones adicionales de cambios en pedidos y clientes que el usuario implementa en el sistema. Los cheques se aplican no solo al editar en el pedido / ficha de cliente, sino en operaciones grupales.
Se especifica una expresión booleana en la condición; si es verdadera, la acción se cancelará y el usuario recibirá un mensaje de error.
En la condición, puede trabajar con el objeto en el que se realiza la acción (esto es order
o customer
), así como con el objeto changeSet
(tipo Change\EntityChangeSet
), que contiene información sobre el) campos.
changeSet.isUpdate() and changeSet.hasChangedField('payments.status')
En algunos casos, la validación requiere verificar algunos atributos del usuario que cambia los datos en el pedido / cliente. Por ejemplo, verifique que el usuario esté en un grupo específico. Puede obtener el usuario que cambia los datos a través de la función user()
.
-
- Prohibición de cambiar el estado de pago del pedido.
changeSet.isUpdate() and changeSet.hasChangedField('payments.status')
-
- La fecha de entrega debe ser hoy o más tarde
order.deliveryDate < date('now 00:00:00') and (
(changeSet.isCreate() and order.deliveryDate) or
(changeSet.isUpdate() and changeSet.hasChangedField('delivery_date'))
)
-
- Solo el usuario del grupo Logist puede hacer el envío.
Nota
De forma predeterminada, no hay un grupo de Logist en el sistema, pero puede crear los grupos de usuarios que necesite.
changeSet.hasChangedField('shipped') and not user().hasGroup('logist')
-
- El usuario puede cambiar solo ciertos campos
changeSet.hasChangesExcluding(['status', 'first_name', 'last_name'])