我在openerp 7中有一个自定义模块,其中包含字段签入时间(日期时间)和签出时间(日期时间)。当我点击保存时,我想在两个字段上执行验证,以确保结账时间不低于登记入住时间。谢谢你的任何想法。
答案 0 :(得分:1)
如上所述,使用日期时间。
在Odoo中,您的日期,时间和日期时间将被用作使用
格式化的字符串openerp.tools.DEFAULT_SERVER_DATE_FORMAT,DEFAULT_SERVER_TIME_FORMAT和DEFAULT_SERVER_DATETIME_FORMAT。
from datetime import datetime
from openerp.tools import DEFAULT_SERVER_DATETIME_FORMAT
check_in = datetime.strptime(my_object.check_in, DEFAULT_SERVER_DATETIME_FORMAT)
check_out = datetime.strptime(my_object.check_out, DEFAULT_SERVER_DATETIME_FORMAT)
Go nuts with comparisons etc.
几点说明:
答案 1 :(得分:0)
我会尝试使用datetime模块中的datetime类。
导入相关的python模块
from datetime import datetime
通过适当的方法检索您的记录,即
your_record = self.pool.get('your_custom_module')。search(cr,uid,domain,offset = 0,limit = None,order = None,context = None,count = False)
注意:您需要提供适当的域名并修改/删除参数以满足您的需求
从相关字段创建日期时间对象(使用datetime类的strptime方法:从字符串创建日期对象)。类似的东西:
check_in = datetime.strptime(your_record [0] ['登记入住时间'],'%Y-%m-%d') check_out = datetime.strptime(your_record [0] ['退房时间'],'%Y-%m-%d')
注意:您需要使格式('%Y-%m-%d')适应您的数据库返回的任何格式
将两个对象与一个简单的表达式进行比较:
如果check_in<查看: ... 其他: ...
做任何其他需要做的操作。
如果没有关于流程的其他详细信息,很难提供更多信息。
希望这有帮助, 干杯