تخطي للذهاب إلى المحتوى
القائمة
لقد تم الإبلاغ عن هذا السؤال
2 الردود
5018 أدوات العرض

Hello 

 I need to restrict removing attachment from purchase order page in the state (purchase)

thank you in advance


الصورة الرمزية
إهمال

See how to override unlink method: https://goo.gl/4BkizH

أفضل إجابة

You need to inherit the ir.attachment object and override the unlink method. Now, in this method, check the res model and res_id. If it is of purchase order, then just browse it and check the state of the purchase and raise exception based on your need.

الصورة الرمزية
إهمال
الكاتب

Thanks Sudhir

I tried same method,and also override the create method for restrict adding attachment is done state.it will works fine in local server.but i push in my production it will cause error when printing any pdf reports.
my code is like below,

class IrAttachment(models.Model):
# _inherit = 'ir.attachment'
#
# @api.model
# def create(self, vals):
# if vals.get('res_model') == 'purchase.order':
# po = self.env['purchase.order'].browse(vals.get('res_id'))
# if po.state == 'done':
# raise UserError('Can not add Attachments in Locked State')
# else:
# return super(IrAttachment, self).create(vals)
#
# @api.multi
# def unlink(self):
# if self.res_model == 'purchase.order':
# po = self.env['purchase.order'].browse(self.res_id)
# if po.state == 'done':
# raise UserError('Can not Delete Attachments in Locked State')
# else:
# return super(IrAttachment, self).unlink()

أفضل إجابة

You inherit class IrAttachment and create custom unlink() method 

الصورة الرمزية
إهمال
المنشورات ذات الصلة الردود أدوات العرض النشاط
2
نوفمبر 21
7730
4
ديسمبر 22
4605
0
أكتوبر 21
2620
4
مارس 21
10945
2
نوفمبر 17
6908