如何在odoo中使用相关的attrubite在表格行中打印值

时间:2019-03-05 17:17:32

标签: odoo-12

我正在尝试显示模块中也存在的“每分钟价格”字段中存在的值,该模块继承自sale.order,该字段实际上包含非零值,但是我无法显示它在sale.order的order_line字段的表的“ Prim par minutes”列中,我总是在“每分钟价格”列中找到具有空值的字段! 这是我使用的python代码:

#-----------------------------------------------------
class ClassSaleOrder(models.Model):
    _inherit = 'sale.order'
    ratio = fields.Float(string='Ratio de chutes')
    largeur_initial = fields.Float()
    longueur_initial = fields.Float()
    surface_initiale = fields.Float(compute='SetSurfaceUnitiale', readonly=True)
    surface_utile = fields.Float()
    matiere = fields.Many2one('module.config2')
    procede = fields.Many2one(related='matiere.procede', string='Procede')
    epaisseur = fields.Many2one(related='matiere.epaisseur', string='Epaisseur')
    prix_par_minute = fields.Float(related='matiere.prix_par_minute', compute='_compute_prix', store=True)
    temps_de_decoupes = fields.Integer(compute='SetTempsDeDecoupes', string='Temps de decoupes (min)')

    @api.depends('largeur_initial', 'longueur_initial')
    def SetSurfaceUnitiale(self):
        if (self.largeur_initial != 0 and self.longueur_initial != 0):
            self.surface_initiale = self.largeur_initial * self.longueur_initial

    @api.depends('order_line.temps_de_decoupe')
    def SetTempsDeDecoupes(self):
        for record in self:
            record.temps_de_decoupes = 0
            for line in record.order_line:
                record.temps_de_decoupes += line.temps_de_decoupe
#---------------------------------------------
class ClasSaleOrderLine(models.Model):
    _inherit = 'sale.order.line'
    temps_de_decoupe = fields.Integer(string='Temps de decoupe (min)')
    # prix_de_decoupe = fields.Float(string='Prix de decoupe')
    prix_de_decoupe = fields.Float(compute='SetPrixDeDecoupe', string='Prix de decoupe')

    ref = fields.Many2one('sale.order')
    prix_par_minute = fields.Float(related="ref.prix_par_minute")

    @api.depends('temps_de_decoupe')
    def SetPrixDeDecoupe(self):
        for record in self:
            record.prix_de_decoupe = 99*record.temps_de_decoupe # OK
            # record.prix_de_decoupe = record.prix_par_minute*record.temps_de_decoupe #NO 

----------------------------------------------------- -----

以下是相关视图的屏幕截图:enter image description here

0 个答案:

没有答案