微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从odoo中的日期计算Odoo天数?

如何解决从odoo中的日期计算Odoo天数?

我有一个这样的场景。 我在odoo中有一个开始日期和结束日期。我想找到两个给定日期之间的天数,这些天数需要与其他模型的工作日进行比较。

解决方法

您可以在 python 代码中使用此函数来查找两个日期之间的天数。

from datetime import date
f_date = date(2014,7,2)
l_date = date(2014,11)
delta = l_date - f_date
print(delta.days)
,

Bhoomi 的回答为您提供了使用纯 python 最简单的方法。

我只是想对此进行一些扩展,并向您展示专门使用 Odoo 字段的方法。如果您在一个模型上有 2 个 fields.Datefields.Datetime 字段,那么添加另一个字段来计算两者之间的天数可能是最简单的。

from odoo import api,fields,models


class MyClass(models.Model):
    _name = "my.class"

    start = fields.Date()
    stop = fields.Date()
    days_until = fields.Integer(
        compute="_compute_days_until",store=True
    )

    @api.depends("start","stop")
    def _compute_days_until(self):
        for record in self:
            if record.start and record.stop:
                record.days_until = (record.stop - self.record).days
            else:
                record.days_until = 0

根据您的 Odoo 版本,这些示例中的 startstop 值可能是字符串或实际的 datetime.date 对象。在旧版本的 Odoo 中,我相信它们是字符串。

但如果您遇到这种情况,Odoo 有一个帮手:

from odoo import fields


fields.Date.from_string()

因此您的计算可能需要看起来更像:

record.days_until = (fields.Date.from_string(record.stop) - fields.Date.from_string(record.start)).days

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。