我有这个方法:
@api.multi
@api.depends('order_picking', 'order_picking.isbn', 'contract_worksheet', 'state')
def accounting_scenarios(self):
for record in self:
if not len(record.transporter):
raise Warning('Please Enter Transporter !')
elif not len(record.transporter.transp_transit):
raise Warning('Please assign transit account to the transporter !')
if record.state in ('awaitingraw'): #('cancel', 'done')
record.temp = record.contract_worksheet.total_alles - record.contract_worksheet.total_totals
acc_move = self.env['account.move']
move_lines = [
(0, 0, {
'name': 'name', # a label so accountant can understand where this line come from
'debit': record.temp or 0.0, # amount of debit
'credit': 0, # amount of credit
'account_id': record.transporter.transp_transit,
'date': date,
'partner_id': record.transporter,
#'currency_id': currency_id or (account.currency_id.id or False),
}),
]
journal_id = False
if record.transporter.transp_transit:
journals = self.env['account.journal'].search([
('default_debit_account_id', '=', record.transporter.transp_transit.id)
])
if journals:
journal_id = journals[0].id
acc_move.create({
#'period_id': period_id, #Fiscal period
'journal_id': journal_id,
'date': fields.Date.today(),
'state': 'draft',
'line_id': move_lines,
})
elif record.state in ('work_in_progress'):
record.temp2 = record.contract_worksheet.total_totals
elif record.state in ('delivered'):
record.transporter.transp_transit.debit = record.contract_worksheet.total_alles
我已经意识到debit
和credit
字段的问题,问题是日记账没有账户(transp_transit
)作为默认借方或贷方账户。在
不管怎样,现在它似乎在尝试做account.move
,但它给我带来了这样一个问题:
有什么想法吗?在
编辑
我班上有这个领域:
transporter = fields.Many2one('res.partner', string="Transporter", domain="[('type_of_supplier','=','transporter')]")
在res.partner
(转运体)上:
transp_transit = fields.Many2one('account.account', string='Transporter Transit Account')
当您传递要创建或写入的值时,请确保没有为多个字段传递object,请传递id
相关问题 更多 >
编程相关推荐