Update purchase_requisition_custom.py
This commit is contained in:
parent
518d342f13
commit
a4ebe7ca9d
|
|
@ -22,6 +22,10 @@ class PurchaseRequisitionCustom(models.Model):
|
|||
_inherit = 'purchase.requisition'
|
||||
|
||||
# committee type
|
||||
attach_no = fields.Integer(compute='get_attachments')
|
||||
res_id = fields.Integer()
|
||||
res_model = fields.Char()
|
||||
|
||||
committee_type_id = fields.Many2one('purchase.committee.type', string='Committee Type')
|
||||
state_blanket_order = fields.Selection(
|
||||
selection_add=[('purchase_manager', 'Purchase manager'), ('checked', 'Waiting Approval'),
|
||||
|
|
@ -86,6 +90,75 @@ class PurchaseRequisitionCustom(models.Model):
|
|||
change_state_line = fields.One2many('change.purchase.user.state', 'requisition_id')
|
||||
date_end = fields.Datetime(string='Agreement Deadline', tracking=True)
|
||||
check_request = fields.Boolean(compute='check_request_field')
|
||||
|
||||
def get_attachments(self):
|
||||
# Check if multiple records are passed, and handle them in a loop
|
||||
if len(self) > 1:
|
||||
action = self.env['ir.actions.act_window']._for_xml_id('base.action_attachment')
|
||||
action['domain'] = [
|
||||
('res_model', '=', 'purchase.requisition'),
|
||||
('res_id', 'in', self.ids),
|
||||
]
|
||||
|
||||
# Update attachment count for all records (if necessary)
|
||||
for record in self:
|
||||
related_ids = record.ids
|
||||
related_models = 'purchase.requisition'
|
||||
|
||||
if record.res_id and record.res_model:
|
||||
related_ids = record.ids + [record.res_id]
|
||||
related_models = ['purchase.requisition', record.res_model]
|
||||
action['domain'] = [
|
||||
('res_model', 'in', related_models),
|
||||
('res_id', 'in', related_ids),
|
||||
]
|
||||
|
||||
# Context for creating new attachments for each record
|
||||
action['context'] = "{'default_res_model': '%s','default_res_id': %d}" % (record._name, record.id)
|
||||
|
||||
# Update attachment count for each record
|
||||
record.attach_no = self.env['ir.attachment'].search_count([
|
||||
('res_model', 'in', related_models),
|
||||
('res_id', 'in', related_ids)
|
||||
])
|
||||
|
||||
return action
|
||||
|
||||
# If only one record is passed, use the original logic
|
||||
self.ensure_one()
|
||||
|
||||
action = self.env['ir.actions.act_window']._for_xml_id('base.action_attachment')
|
||||
action['domain'] = [
|
||||
('res_model', '=', 'purchase.requisition'),
|
||||
('res_id', 'in', self.ids),
|
||||
]
|
||||
domain = [
|
||||
('res_model', '=', 'purchase.requisition'),
|
||||
('res_id', 'in', self.ids),
|
||||
]
|
||||
related_ids = self.ids
|
||||
related_models = 'purchase.requisition'
|
||||
|
||||
if self.res_id and self.res_model:
|
||||
related_ids = self.ids + [self.res_id]
|
||||
related_models = ['purchase.requisition', self.res_model]
|
||||
action['domain'] = [
|
||||
('res_model', 'in', related_models),
|
||||
('res_id', 'in', related_ids),
|
||||
]
|
||||
domain = [
|
||||
('res_model', 'in', related_models),
|
||||
('res_id', 'in', related_ids),
|
||||
]
|
||||
|
||||
# Context for creating new attachments
|
||||
action['context'] = "{'default_res_model': '%s','default_res_id': %d}" % (self._name, self.id)
|
||||
|
||||
# Update attachment count for smart button
|
||||
self.attach_no = self.env['ir.attachment'].search_count(domain)
|
||||
|
||||
return action
|
||||
|
||||
def check_request_field(self):
|
||||
for rec in self:
|
||||
if rec.request_id:
|
||||
|
|
|
|||
Loading…
Reference in New Issue