Como bloquear cambios a una orden de compra

31 de julio de 2023 por
Gustavo Orrillo
| Sin comentarios aún
 

En la mayoría de las ocasiones se necesita bloquear los cambios a las órdenes de compra ya confirmadas (o solo realizar cambios a algunos campos, como por ejemplo términos de pago o referencias; pero nunca cambiar precios unitarios por ejemplo). Para ello desarrollamos el módulo purchase_automatic_block. Este módulo solo debe descargarse del repositorio y listo. Lo que hace es, al confirmarse el pedido de compras, se impide el ingreso o modificación de líneas del pedido.


Noten que al validarse el pedido, el mismo pasa a estado Bloqueado y no se permite la edición. Tambien se remueven los botones de bloquear y desbloquear.

Notas técnicas


El módulo es muy sencillo, se extiende el método que confirma el pedido de compra agregandose la llamada al método que bloquea el pedido


def button_confirm(self):
res = super(PurchaseOrder, self).button_confirm()
self.button_done()
return res


Por otra parte se ocultaron los botones de "Bloquear" y "Desbloquear" en la vista del pedido de ventas


<record id="block_purchase_order_form" model="ir.ui.view">
<field name="name">block.purchase.order.form</field>
<field name="model">purchase.order</field>
<field name="inherit_id" ref="purchase.purchase_order_form"></field>
<field name="arch" type="xml">
<xpath expr="//button[@name='button_done']" position="attributes">
<attribute name="invisible">1</attribute>
</xpath>
<xpath expr="//button[@name='button_unlock']" position="attributes">
<attribute name="invisible">1</attribute>
</xpath>
</field>
</record>
Gustavo Orrillo 31 de julio de 2023
Compartir
Categorías
Archivar
Identificarse dejar un comentario