تخطي للذهاب إلى المحتوى
أودو القائمة
  • تسجيل الدخول
  • جرب مجاناً
  • التطبيقات
    المالية
    • المحاسبة
    • فوترة
    • النفقات
    • جدول البيانات (BI)
    • المستندات
    • توقيع إلكتروني
    المبيعات
    • إدارة علاقات العملاء
    • المبيعات
    • نقطة البيع للمتاجر
    • نقطة البيع للمطاعم
    • الاشتراكات
    • تأجير
    المواقع الإلكترونية
    • أداة بناء المواقع الإلكترونية
    • متاجر إلكترونية
    • مدونة
    • المنتدى
    • دردشة مباشرة
    • التعليم الإلكتروني
    سلسلة التوريد
    • المستودعات
    • التصنيع
    • إدارة دورة حياة المنتج
    • المشتريات
    • الصيانة
    • الجودة
    الموارد البشرية
    • موظفون
    • التوظيف
    • إجازة عمل
    • التقييمات
    • الإحالات
    • تطبيق الأسطول
    التسويق
    • التسويق الإجتماعي
    • التسويق عبر البريد الإلكتروني
    • التسويق عبر الرسائل النصية
    • فعاليات
    • أتمتة التسويق
    • الاستطلاعات
    الخدمات
    • المشاريع
    • الجداول الزمنية
    • الخدمة الميدانية
    • مكتب المساعدة
    • التخطيط
    • مواعيد
    اﻹنتاجية
    • مناقشة
    • الموافقات
    • إنترنت الأشياء "IoT"
    • بروتوكول ربط المحادثات الصوتية عبر الإنترنت
    • المعرفة
    • WhatsApp
    التطبيقات الخارجية ستوديو أودو منصة أودو السحابية
  • قطاعات الأعمال
    البيع بالتجزئة
    • متجر كتب
    • متجر ملابس
    • متجر أثاث
    • متجر بقالة
    • متجر معدات
    • متجر ألعاب
    الطعام والضيافة
    • بار وحانة
    • المطعم
    • مطعم للوجبات السريعة
    • نزل للضيوف
    • موزّع مشروبات
    • فندق
    العقارات
    • وكالة عقارات
    • شركة هندسة معمارية
    • البناء
    • إدارة العقارات
    • العناية بالحدائق
    • اتحاد مُلاّك العقارات
    استشارة
    • مؤسسة محاسبية
    • شريك أودو
    • وكالة تسويقية
    • منشأة قانونية
    • استقطاب المواهب
    • التدقيق والتوثيق
    التصنيع
    • الأقمشة
    • معدني
    • الأثاث
    • الطعام
    • مصنع خمور
    • هدايا الشركات
    الصحة واللياقة البدنية
    • نادي رياضي
    • متجر نظارات
    • مركز لياقة بدنية
    • الممارسون الصحيون
    • صيدلية
    • صالون تصفيف الشعر
    التجارة
    • عامل صيانة
    • الأجهزة والمعدات التقنية ودعمها
    • أنظمة الطاقة الشمسية
    • صانع أحذية
    • خدمات التنظيف
    • خدمات التكييف (HVAC)
    غير ذلك
    • منظمة غير ربحية
    • وكالة بيئية
    • تأجير لوحات إعلانية
    • تصوير
    • تأجير دراجات
    • بائع وسيط للبرمجيات
    تصفح كافة قطاعات الأعمال
  • مجتمع أودو
    تعلم
    • دروس
    • التوثيق
    • شهادات
    • التدريب
    • مدونة
    • بودكاست
    قم بتعزيز التعليم
    • برنامج تعليم
    • Scale UP! لعبة الأعمال
    • قم بزيارة أودو
    احصل على البرنامج
    • تحميل
    • قارنْ الإصدارات
    • إطلاق
    تعاون
    • جيت هاب "Github"
    • المنتدى
    • فعاليات
    • الترجمات
    • كنْ شريكاً
    • خدمات الشركاء
    • سجل مكتب المحاسبة الخاص بك
    احصل على الخدمات
    • اعثر على شريك
    • اعثر على محاسب
    • قابل أحد مرشدي الأعمال
    • خدمات التنفيذ
    • مراجع العملاء
    • الدعم
    • الترقيات
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +1 (650) 691-3277
    الحصول على عرض توضيحي
  • الأسعار
  • المساعدة

Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:

  • إدارة علاقات العملاء
  • e-Commerce
  • المحاسبة
  • المخزون
  • PoS
  • المشروع
  • MRP
All apps
يجب أن تكون مسجلاً حتى تتفاعل مع المجتمع.
كافة المنشورات الأفراد الشارات
علامات التصنيف (عرض الكل)
odoo accounting v14 pos v15
حول هذا المنتدى
يجب أن تكون مسجلاً حتى تتفاعل مع المجتمع.
كافة المنشورات الأفراد الشارات
علامات التصنيف (عرض الكل)
odoo accounting v14 pos v15
حول هذا المنتدى
المساعدة

Adding 1 year on a date

اشتراك

تسلم الإشعارات عندما يكون هناك نشاط في هذا المنشور

لقد تم الإبلاغ عن هذا السؤال
datecomputestudiocalculationstimedelta
2 الردود
3699 أدوات العرض
الصورة الرمزية
Didier Ryckaert

Hello

Can anyone help me on a single date calculation

I have 2 date fields:

'x_studio_last_maintenance_date' and 'x_studio_next_maintenance_date'

I need that in the record when i set the last_maintenance_date,  the next_maintenance_date is calculated 1 year after de last_maintenance_date

Here is what i set in the compute field in the via studio:

from datetime import timedelta
for record in self:
  record['x_studio_next_maintenance_date'] = x_studio_last_maintenance_date + timedelta(years=1) 

Then i try  it and receive this error:

Any help about this error. I do not know python

Traceback (most recent call last):
  File "/home/odoo/src/odoo/16.0/odoo/http.py", line 1578, in _serve_db
    return service_model.retrying(self._serve_ir_http, self.env)
  File "/home/odoo/src/odoo/16.0/odoo/service/model.py", line 134, in retrying
    result = func()
  File "/home/odoo/src/odoo/16.0/odoo/http.py", line 1607, in _serve_ir_http
    response = self.dispatcher.dispatch(rule.endpoint, args)
  File "/home/odoo/src/odoo/16.0/odoo/http.py", line 1804, in dispatch
    result = self.request.registry['ir.http']._dispatch(endpoint)
  File "/home/odoo/src/odoo/16.0/addons/website/models/ir_http.py", line 227, in _dispatch
    response = super()._dispatch(endpoint)
  File "/home/odoo/src/odoo/16.0/odoo/addons/base/models/ir_http.py", line 140, in _dispatch
    result = endpoint(**request.params)
  File "/home/odoo/src/odoo/16.0/odoo/http.py", line 698, in route_wrapper
    result = endpoint(self, *args, **params_ok)
  File "/home/odoo/src/odoo/16.0/addons/web/controllers/dataset.py", line 42, in call_kw
    return self._call_kw(model, method, args, kwargs)
  File "/home/odoo/src/odoo/16.0/addons/web/controllers/dataset.py", line 33, in _call_kw
    return call_kw(request.env[model], method, args, kwargs)
  File "/home/odoo/src/odoo/16.0/odoo/api.py", line 461, in call_kw
    result = _call_kw_multi(method, model, args, kwargs)
  File "/home/odoo/src/odoo/16.0/odoo/api.py", line 448, in _call_kw_multi
    result = method(recs, *args, **kwargs)
  File "/home/odoo/src/odoo/16.0/odoo/models.py", line 6514, in onchange
    todo = [
  File "/home/odoo/src/odoo/16.0/odoo/models.py", line 6517, in 
    if name not in done and snapshot0.has_changed(name)
  File "/home/odoo/src/odoo/16.0/odoo/models.py", line 6300, in has_changed
    return self[name] != record[name]
  File "/home/odoo/src/odoo/16.0/odoo/models.py", line 5842, in __getitem__
    return self._fields[key].__get__(self, type(self))
  File "/home/odoo/src/odoo/16.0/odoo/fields.py", line 1135, in __get__
    self.recompute(record)
  File "/home/odoo/src/odoo/16.0/odoo/fields.py", line 1324, in recompute
    self.compute_value(recs)
  File "/home/odoo/src/odoo/16.0/odoo/fields.py", line 1346, in compute_value
    records._compute_field_value(self)
  File "/home/odoo/src/odoo/16.0/addons/mail/models/mail_thread.py", line 403, in _compute_field_value
    return super()._compute_field_value(field)
  File "/home/odoo/src/odoo/16.0/odoo/models.py", line 4189, in _compute_field_value
    field.compute(self)
  File "/home/odoo/src/odoo/16.0/odoo/addons/base/models/ir_model.py", line 37, in 
    func = lambda self: safe_eval(text, SAFE_EVAL_BASE, {'self': self}, mode="exec")
  File "/home/odoo/src/odoo/16.0/odoo/tools/safe_eval.py", line 337, in safe_eval
    c = test_expr(expr, _SAFE_OPCODES, mode=mode, filename=filename)
  File "/home/odoo/src/odoo/16.0/odoo/tools/safe_eval.py", line 195, in test_expr
    assert_valid_codeobj(allowed_codes, code_obj, expr)
  File "/home/odoo/src/odoo/16.0/odoo/tools/safe_eval.py", line 168, in assert_valid_codeobj
    raise ValueError("forbidden opcode(s) in %r: %s" % (expr, ', '.join(opname[x] for x in (code_codes - allowed_codes))))
ValueError: forbidden opcode(s) in "from datetime import timedelta\nfor record in self:\n  record['x_studio_next_maintenance_date'] = x_studio_last_maintenance_date + timedelta(years=1) ": IMPORT_NAME, IMPORT_FROM

The above server error caused the following client error:
null

I thank you in advance

1
الصورة الرمزية
إهمال
الصورة الرمزية
Waleed Ali Mohsen
أفضل إجابة

You can't use years with timedelta, so you can use relativedelta as below:

You will add  x_studio_last_maintenance_date  to  Dependencies of the field  x_studio_next_maintenance_date and use the below code:

for rec in self:
if rec.x_studio_last_maintenance_date:
rec['x_studio_next_maintenance_date'] = rec.x_studio_last_maintenance_date + dateutil.relativedelta.relativedelta(years=1)
1
الصورة الرمزية
إهمال
Hassane LAHLOU

Thank you for your help Sir. it works perfectly for me.

الصورة الرمزية
Didier Ryckaert
الكاتب أفضل إجابة

It works perfectly.

I really thank you. Have a nice day

1
الصورة الرمزية
إهمال
Waleed Ali Mohsen

Thanks for feedback.

هل أعجبك النقاش؟ لا تكن مستمعاً فقط. شاركنا!

أنشئ حساباً اليوم لتستمتع بالخصائص الحصرية، وتفاعل مع مجتمعنا الرائع!

تسجيل
المنشورات ذات الصلة الردود أدوات العرض النشاط
How to create recurring date in "Studio"
date studio
الصورة الرمزية
الصورة الرمزية
2
سبتمبر 24
1590
Computed Field - Sum of two fields - V14
cost compute studio
الصورة الرمزية
الصورة الرمزية
1
سبتمبر 23
2208
Outstanding Value in Sales Orders - V14
sales formula compute studio
الصورة الرمزية
0
سبتمبر 23
1726
Studio compute field with condition
compute studio computed-fields Studio
الصورة الرمزية
الصورة الرمزية
الصورة الرمزية
2
أغسطس 22
6318
SUM USING TWO DATES and INT.
fields date compute integer
الصورة الرمزية
الصورة الرمزية
الصورة الرمزية
2
مارس 22
4182
المجتمع
  • دروس
  • التوثيق
  • المنتدى
مصدر مفتوح
  • تحميل
  • جيت هاب "Github"
  • المشغل الآلي رنبوت
  • الترجمات
خدماتنا
  • استضافة أودو إس إتش
  • الدعم
  • الترقية
  • التطويرات المخصصة
  • التعليم
  • اعثر على محاسب
  • اعثر على شريك
  • كنْ شريكاً
معلومات عنا
  • شركتنا
  • أصول العلامة التجارية
  • اتصلْ بنا
  • الوظائف
  • فعاليات
  • بودكاست
  • مدونة
  • عملاء
  • قانوني • الخصوصية
  • الحماية
الْعَرَبيّة Català 简体中文 繁體中文 (台灣) Čeština Dansk Nederlands English Suomi Français Deutsch हिंदी Bahasa Indonesia Italiano 日本語 한국어 (KR) Lietuvių kalba Język polski Português (BR) română русский язык Slovenský jazyk slovenščina Español (América Latina) Español ภาษาไทย Türkçe українська Tiếng Việt

أودو هو عبارة عن مجموعة من تطبيقات الأعمال مفتوحة المصدر التي تغطي جميع احتياجات شركتك، مثل: إدارة علاقات العملاء والتجارة الإلكترونية والمحاسبة والمخزون ونقاط البيع وإدارة المشاريع وما إلى ذلك.

ما يجعل من أودو مميزاً هو هدفه بأن يكون سهل الاستخدام للغاية ومتكاملاً تمامًا في الوقت ذاته.

Website made with

Odoo Experience on YouTube

1. Use the live chat to ask your questions.
2. The operator answers within a few minutes.

Live support on Youtube
Watch now