def get_charge_hour(self, order_id, auto_type): result = 0 model_list = self.env['nebula.charge.line'].search_read( [('order_id', '=', order_id), ('name', '=', auto_type)], ['charge_hour']) if model_list: result = model_list[0]['charge_hour'] return result
# -*- coding: utf-8 -*-from odoo import fields, models, apiclass SystemInfo(models.Model): _name = "nebula.system.info" _description = "公司费用" _order = 'name' active = fields.Boolean('是否启用', default=True) name = fields.Char('费用名称', size=30, index=True) start_time = fields.Float('上班时间', default=07.00, digits=(4, 2)) end_time = fields.Float('下班时间', default=23.00, digits=(4, 2)) hours_hour = fields.Integer('每节课小时数', default=3) wager_hour = fields.Integer('每小时工资', default=50) note = fields.Text('备注') order_line = fields.One2many('nebula.charge.line', 'order_id', string='每小时费用', auto_join=True) _sql_constraints = [('check_uniq_name', 'unique(name)', '不允许费用名称同名')]class ChargeLine(models.Model): _name = 'nebula.charge.line' _description = '费用明细' @api.model def _select_auto_type(self): records = self.env['nebula.auto.type'].search([]) return [(r.name, r.name_type) for r in records] name = fields.Selection(selection='_select_auto_type', required=True, string='排档类') charge_hour = fields.Integer('每小时收费', default=70) order_id = fields.Many2one('nebula.system.info', string='费用明细行', required=True, ondelete='cascade', index=True, copy=False)# 获取每小时收费数据def get_charge_hour(self, order_id, auto_type): result = 0 model_list = self.env['nebula.charge.line'].search_read( [('order_id', '=', order_id), ('name', '=', auto_type)], ['charge_hour']) if model_list: result = model_list[0]['charge_hour'] return result