Ir al contenido
Menú
Se marcó esta pregunta

Hello, we are using the Odoo 16 community edition. I need an option to mass lock sales orders once they are delivered. Any suggestions?

Avatar
Descartar
Mejor respuesta

Hi,


* To lock the sales order after delivery, we need to inherit the 'Validate' button in the Delivery Order (stock.picking).


class StockPicking(models.Model):
"""Inherits stock.picking"""
_inherit = 'stock.picking'

def button_validate(self):
"""Call the function for locking the sale order
while clicking on the validate button"""
res = super().button_validate()
self.sale_id.action_done()
return res


This will result in the corresponding sales order being locked whenever the delivery is confirmed.


* For mass locking, we have to add a server action. 


1- Enable developer mode


2- Go to  Settings > Technical > Server Actions



3 - Add new server action.

       Action name: Mass Lock Sale Order

       Model: Sales Order

       Action Do: Execute Python code


       Python Code : 

                         for record in records:

                                   action = record.action_done()



Click the 'Create Contextual Action' button


4- Go to sales orders and filter all the orders that are to be locked.

     To get all delivered orders, add the following filter.






5- Select all the orders and click on the 'Mass Lock Sale Order' from the action menu.




6- You can see all the selected orders are now turned to locked state.




For more information, refer to the following


https://www.cybrosys.com/blog/how-to-lock-confirmed-orders-in-odoo-16-sales-module


*https://youtu.be/DJ-V1ZLYcu0?si=1WdYlGnHgSgy7vmE



Hope it helps.

Avatar
Descartar
Publicaciones relacionadas Respuestas Vistas Actividad
0
dic 24
1017
2
abr 25
1327
0
abr 25
864
0
mar 25
790
1
mar 25
1021