跳至內容
選單
此問題已被標幟
4 回覆
34468 瀏覽次數

i have a compute field and function :

account_info = fields.Integer(compute='_credit_debit_info', string='# Credits and Debits')

@api.multi
def _credit_debit_info(self):
print "...Self...",self.ids
print "...context..",self.env.context.get('active_id')
print "...context..", self.env.context
for partner in self:
if partner.with_context(active_id=True):
PartnerInfo = self.env['account.move.line'].with_context(active_test=False).search([('partner_id', '=', partner.id),
('account_id', 'in', (partner.property_account_receivable_id.id, partner.property_account_payable_id.id))])
for acco in PartnerInfo:
cre = sum(acco.mapped('credit'))
debit = sum(acco.mapped('debit'))
partner.account_info = cre - debit

When i click on res.partner list view or kanban view, the current record id's data should get calculated and display in smart button, am facing probelm in getting current ID.


頭像
捨棄
最佳答案

Hi Supreeth , 


@api.multi

this method decorator is used to work with a list of id ,
while printing  self.id  you will get a list of ids 


use  @api.one  decorator  to work with a single record ,

頭像
捨棄
最佳答案

self.ids you get the current records
[2,5]
then you must walk them through a for
for rid in self:
     var = rid.id
     var2 = rid.name

I hope I've helped

頭像
捨棄
最佳答案

try self.id

it is your current record id 

頭像
捨棄
作者

thanks, i have tried this.. iam not able to get current ID? i printed and value and tried

相關帖文 回覆 瀏覽次數 活動
7
12月 23
20163
1
11月 17
5541
2
8月 25
2595
1
7月 25
1000
1
8月 25
1151