Skip to Content
Menu
This question has been flagged
1 Reply
1604 Views

Hello everyone,

I have a doubt, or rather a problem to solve....

I have created a button with the following conditions within the model stock.picking = makes the connection between the views of Receipts and Subcontrating Deliveries, this button appears a colour, according to the state of the order, and I need to add one more condition, that if the order has a transfer in receipts associated with subcontrating then, this button should appear, if not the button should be invisible.

It happens, that I need to create a field related to the name and the picking_type_id, I did that creation, but I think it's not well done, because in the view it's not working either, can someone help me and give me a clarification?

Below is my code and my xml.

Thanks in advance! :)



Avatar
Discard
Best Answer

you can try this way:

Define a new computed field in the stock.picking model that checks for the associated transfer in receipts and subcontrating. This field will determine the visibility of the button.

from odoo import models, fields, api

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

is_transfer_receipt = fields.Boolean(compute='_compute_is_transfer_receipt', store=True)

@api.depends( 'picking_type_id')
def _compute_is_transfer_receipt(self):
for picking in self:
is_transfer_receipt = False
if picking.name and picking.picking_type_id.code == 'receipt':
transfer_receipts = self.env['stock.picking'].search([
('origin', '=', picking.name),
('picking_type_id.code', '=', 'subcontrating'),
])
if transfer_receipts:
is_transfer_receipt = True
picking.is_transfer_receipt = is_transfer_receipt


Make sure to replace 'your_button_field_name' with the actual field name you have defined for your button.

Avatar
Discard
Related Posts Replies Views Activity
1
Jul 23
2330
1
Jul 23
1686
1
Jun 23
2883
2
Aug 23
2027
1
Jun 23
2203