Está genial. Es algo que siempre he tenido y echaba de menos en Odoo. Tiene una pega. No controla de qué cliente se trata y te bloquea si esa referencia la tienen pedidos de otros contactos. Aún así ayuda mucho.
Habría manera de ponerlo solo de manera informativa? Es decir que te advierta de lo repetido pero te permite avanzar? Lo pregunto porque que pasara si estás repitiendo la orden de venta por un error en la venta original? Muchas gracias. Tus videos son geniales.
Hola! Con el siguiente código en una Regla de automatización, va a mostrar un mensaje en el Chatter, pero permite guardar el registro: if record.client_order_ref: # Busca todas las órdenes con la misma referencia y diferente ID conflicting_orders = env['sale.order'].search([ ('client_order_ref', '=', record.client_order_ref), ('id', '!=', record.id) ]) if conflicting_orders: # Genera una lista de nombres de los pedidos conflictivos conflicting_names = ", ".join(order.name for order in conflicting_orders) # Publicar un mensaje en el Chatter del pedido record.message_post( body=f"Advertencia: La referencia de cliente '{record.client_order_ref}' ya ha sido utilizada en los siguientes pedidos: {conflicting_names}. " "Por favor, verifica la información antes de proceder.", message_type='notification', subtype_id=env.ref('mail.mt_note').id )
Está genial. Es algo que siempre he tenido y echaba de menos en Odoo.
Tiene una pega. No controla de qué cliente se trata y te bloquea si esa referencia la tienen pedidos de otros contactos.
Aún así ayuda mucho.
¡De nada! La cooperación es un motor para el crecimiento de todos.
Habría manera de ponerlo solo de manera informativa? Es decir que te advierta de lo repetido pero te permite avanzar? Lo pregunto porque que pasara si estás repitiendo la orden de venta por un error en la venta original? Muchas gracias. Tus videos son geniales.
Hola! Con el siguiente código en una Regla de automatización, va a mostrar un mensaje en el Chatter, pero permite guardar el registro:
if record.client_order_ref:
# Busca todas las órdenes con la misma referencia y diferente ID
conflicting_orders = env['sale.order'].search([
('client_order_ref', '=', record.client_order_ref),
('id', '!=', record.id)
])
if conflicting_orders:
# Genera una lista de nombres de los pedidos conflictivos
conflicting_names = ", ".join(order.name for order in conflicting_orders)
# Publicar un mensaje en el Chatter del pedido
record.message_post(
body=f"Advertencia: La referencia de cliente '{record.client_order_ref}' ya ha sido utilizada en los siguientes pedidos: {conflicting_names}. "
"Por favor, verifica la información antes de proceder.",
message_type='notification',
subtype_id=env.ref('mail.mt_note').id
)