как сделать так, чтобы метод запускался один раз для указанной c записи на odoo? - PullRequest
1 голос
/ 17 июня 2020

Я пытаюсь сделать метод с помощью кнопки, чтобы добавить общую стоимость счета к значению другого объекта, он работает хорошо, но каждый раз, когда я нажимаю кнопку, он добавляет общую стоимость счета к другому объекту значение, мне нужно что-нибудь сделать сцены, чтобы предотвратить добавление суммы счета несколько раз, вот код

class acc_inv_prop(models.Model):
_inherit = 'account.invoice'

property_id = fields.Many2one(comodel_name="account.asset.asset", string="Property", required=False, )

def prop_up_value(self):
    self.property_id.value += self.amount_total
    pass

, что я могу сделать с объектом account.asset.asset, чтобы проверить, что текущий счет был добавлен ранее и вызвать ошибку, и если счет новый, добавьте его стоимость обычно, но также только один раз

любая помощь будет оценена

1 Ответ

0 голосов
/ 17 июня 2020

Помимо добавления чего-то к стоимости account.asset.asset, что заставляет меня чувствовать себя неудобно (разве вы не должны сделать logi c, который определяет полную стоимость актива из счета-фактуры?)

Вы потребуется дополнительное поле, чтобы помнить, что вы уже добавили сумму:

class acc_inv_prop(models.Model):
    _inherit = 'account.invoice'

    property_id = fields.Many2one(comodel_name="account.asset.asset", string="Property", required=False, )
    property_last_added_value = fields.Float(string='Last Value Added to Property', readonly=True, digits=0)

    def prop_up_value(self):
        if self.property_last_added_value != self.amount_total:
            self.property_id.value -= self.property_last_added_value
            self.property_id.value += self.amount_total
            self.property_last_added_value = self.amount_total


...