اذهب إلى المحتوى

السؤال

نشر

السلام عليكم 

أنا بحاول اعمل نقطه بيع باستخدام اودو تعمل على كل الاجهزه بحيث اقوم ببيعها للعميل وبالتالى يقدر العميل بتشغيل نقطه البيع بدون تثبيت اي برامج

ولذالك ان عملت مجلد يحتوي على Python portable 

postgres portable

venv 

odoo

وثبت المكتبات وكله تمام وبحاول تجربتها فى sandbox لكن فى مشكله تظهر تخص قاعده البيانات حتى قومت بمسح ملف data وإنشاءه اكثر من مره ولم اصل إلى حل فارجو المساعده بدلى على سبب الخطا او اعطا الحزمه مضغوطه بحث اقدر اشغلها على اي جهاز

او دلي على طريقه اسهل لعمل نظام كاشير واداره المطاعم اسهل 

Traceback (most recent call last):
  File "C:\Users\WDAGUtilityAccount\Desktop\ready\odoo\odoo\modules\registry.py", line 87, in new
    odoo.modules.load_modules(registry, force_demo, status, update_module)
  File "C:\Users\WDAGUtilityAccount\Desktop\ready\odoo\odoo\modules\loading.py", line 396, in load_modules
    odoo.modules.db.initialize(cr)
  File "C:\Users\WDAGUtilityAccount\Desktop\ready\odoo\odoo\modules\db.py", line 52, in initialize
    cr.execute('INSERT INTO ir_module_module \
  File "C:\Users\WDAGUtilityAccount\Desktop\ready\venv\Lib\site-packages\decorator.py", line 232, in fun
    return caller(func, *(extras + args), **kw)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\WDAGUtilityAccount\Desktop\ready\odoo\odoo\sql_db.py", line 90, in check
    return f(self, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\WDAGUtilityAccount\Desktop\ready\odoo\odoo\sql_db.py", line 311, in execute
    res = self._obj.execute(query, params)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\WDAGUtilityAccount\Desktop\ready\python64\Lib\encodings\cp1252.py", line 12, in encode
    return codecs.charmap_encode(input,errors,encoding_table)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
UnicodeEncodeError: 'charmap' codec can't encode character '\u010d' in position 9: character maps to <undefined>

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\WDAGUtilityAccount\Desktop\ready\odoo\odoo\service\server.py", line 1260, in preload_registries
    registry = Registry.new(dbname, update_module=update_module)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\WDAGUtilityAccount\Desktop\ready\odoo\odoo\modules\registry.py", line 89, in new
    odoo.modules.reset_modules_state(db_name)
  File "C:\Users\WDAGUtilityAccount\Desktop\ready\odoo\odoo\modules\loading.py", line 602, in reset_modules_state
    cr.execute(
  File "C:\Users\WDAGUtilityAccount\Desktop\ready\venv\Lib\site-packages\decorator.py", line 232, in fun
    return caller(func, *(extras + args), **kw)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\WDAGUtilityAccount\Desktop\ready\odoo\odoo\sql_db.py", line 90, in check
    return f(self, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\WDAGUtilityAccount\Desktop\ready\odoo\odoo\sql_db.py", line 311, in execute
    res = self._obj.execute(query, params)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
psycopg2.errors.UndefinedTable: relation "ir_module_module" does not exist
LINE 1: UPDATE ir_module_module SET state='installed' WHERE state IN...
               ^

2025-07-21 13:02:21,836 3352 INFO ? odoo.service.server: Initiating shutdown
2025-07-21 13:02:21,836 3352 INFO ? odoo.service.server: Hit CTRL-C again or send a second signal to force the shutdown.

 

Recommended Posts

  • 0
نشر

وعليكم السلام ورحمة الله وبركاته،

أهلا محمد،

المشكلة التي تواجهها الآن متعلقة بقاعدة البيانات، وتحديدًا تظهر أخطاء من نوع:

UnicodeEncodeError: 'charmap' codec can't encode character '\u010d'
psycopg2.errors.UndefinedTable: relation "ir_module_module" does not exist

الخطأ الأول UnicodeEncodeError:
يشير إلى أن الترميز  في Windows لا يدعم أحد الأحرف التي يستخدمها Odoo. يرجع ذلك لأن موجه الأوامر (CMD) يستخدم الترميز cp1252 الذي لا يدعم بعض الحروف مثل č.

شغّل الأوامر التالية قبل تشغيل Odoo في موجه الأوامر:

chcp 65001 set PYTHONIOENCODING=utf-8

أو قم بتعديل ملف odoo.conf ليشمل:

[options] ... csv_internal_sep=,

الخطأ الثاني UndefinedTable: relation "ir_module_module" does not exist:
هذا يعني أن قاعدة البيانات التي أنشأتها لا تحتوي على الجداول الأساسية التي يحتاجها Odoo، جدول ir_module_module الضروري لتشغيل الإضافات.

تأكد أنك أنشأت قاعدة البيانات من خلال Odoo نفسه باستخدام الأمر:

python odoo-bin -d <your_db> -i base --without-demo=all --save

أو قم بحذف قاعدة البيانات بالكامل وإنشاء واحدة جديدة عبر واجهة Odoo:

افتح Odoo عبر المتصفح لأول مرة.

املأ بيانات قاعدة البيانات الجديدة (الاسم، المستخدم، كلمة المرور).

سيتم إنشاء الجداول تلقائيًا.

هذه بعض الحلول المقترحة اتمنى ان تساعدك
بالتوفيق

  • 0
نشر

ليست تلك هي الطريقة الصحيحة والعملية، في الواقع العملي الأمر يتم إما عن طريق SaaS أي تطوير منصة لتوفير خدمة من خلال موقع بحيث ستقوم بتثبيت Odoo على خادم سحابي VPS والمتوفر من خلال DigitalOcean, Vultr, AWS وغيرهم، ثم يستخدم العملاء المنصة.

والبديل الثاني هو الإعتماد على Docker وتلك تقنية تقوم بتغليف التطبيقات وتبعياتها في حاويات معزولة، بمعنى ستقوم بإنشاء ملف docker-compose.yml يحدد كيفية تشغيل Odoo و PostgreSQL معًا، والعميل سيحتاج فقط إلى تثبيت برنامج Docker Desktop ثم يقوم بتشغيل مشروعك بأمر واحد بسيط.

والبيئة ستعمل بنفس الطريقة على أي جهاز مثبت عليه Docker، لكن ذلك يحتاج إلى خبرة تقنية من قبل العميل، لذا الحل الأول هو الأفضل.

بخصوص طريقتك حاليًا يوجد مشكلتان،  الخطأ الأول يحدث أولًا UnicodeEncodeError: 'charmap' codec can't encode character '\u010d'، فيفشل Odoo فى إنشاء جداول النظام ثم تُعاد المحاولة فيجد الجدول مفقودًا UnicodeEncodeError: 'charmap' codec can't encode character '\u010d'.

بالتالي مجلد البيانات الذى أنشأته لـ PostgreSQL مهيَّأ بترميز WIN1252/CP1250 وهو الترميز الافتراضى على Windows في حال لم تُحدد شيئًا عند تهيئة قاعدة البيانات.

وOdoo يحتوى على أسماء وحدات فيها الحرف č وغيره من Unicode، وتلك الأحرف لا يمكن تمثيلها داخل WIN1252، فيفشل الإدراج فى أول جدول ir_module_module.

أي قاعدة البيانات نفسها ليست بترميز UTF-8، ولذلك تنهار عملية التهيئة، لذا عليك بالتالي:

أوقف PostgreSQL إن كان يعمل من خلال تنفيذ الأمر التالي في CMD وليس powershell لكن قم بتشغيله بصلاحيات administrator:

pg_ctl -D data stop -m fast

ثم أعد تسمية المجلد data القديم أو احذفه بتفيذ التالي في المسار الذي به مجلد data في المشروع:

ren data data_old --

ثم أنشئ مجلد data جديد مهيأ بترميز UTF-8 من خلال تنفيذ:

set LANG=en_US.UTF-8

ثم:

bin\initdb.exe ^
     -D data ^
     -U odoo ^
     -A md5 -W odoo ^
     -E UTF8 ^
     --locale=C

ثم عليك إنشاء قاعدة بيانات Odoo جديدة في Postgres.

وللعلم لو أردت أتمتة الأمر لعميلك، فقم بتضمين أوامر initdb و pg_ctl في ملف ‎start.bat‎ بحيث ينفذ التهيئة تلقائيًّا إذا لم يجد ‎PG_VERSION‎ داخل ‎data‎.

  • 0
نشر
بتاريخ On 21‏/7‏/2025 at 18:44 قال Abdulrahman Muhammad:

وعليكم السلام ورحمة الله وبركاته،

أهلا محمد،

المشكلة التي تواجهها الآن متعلقة بقاعدة البيانات، وتحديدًا تظهر أخطاء من نوع:

UnicodeEncodeError: 'charmap' codec can't encode character '\u010d'
psycopg2.errors.UndefinedTable: relation "ir_module_module" does not exist

الخطأ الأول UnicodeEncodeError:
يشير إلى أن الترميز  في Windows لا يدعم أحد الأحرف التي يستخدمها Odoo. يرجع ذلك لأن موجه الأوامر (CMD) يستخدم الترميز cp1252 الذي لا يدعم بعض الحروف مثل č.

شغّل الأوامر التالية قبل تشغيل Odoo في موجه الأوامر:

chcp 65001 set PYTHONIOENCODING=utf-8

أو قم بتعديل ملف odoo.conf ليشمل:

[options] ... csv_internal_sep=,

الخطأ الثاني UndefinedTable: relation "ir_module_module" does not exist:
هذا يعني أن قاعدة البيانات التي أنشأتها لا تحتوي على الجداول الأساسية التي يحتاجها Odoo، جدول ir_module_module الضروري لتشغيل الإضافات.

تأكد أنك أنشأت قاعدة البيانات من خلال Odoo نفسه باستخدام الأمر:

python odoo-bin -d <your_db> -i base --without-demo=all --save

أو قم بحذف قاعدة البيانات بالكامل وإنشاء واحدة جديدة عبر واجهة Odoo:

افتح Odoo عبر المتصفح لأول مرة.

املأ بيانات قاعدة البيانات الجديدة (الاسم، المستخدم، كلمة المرور).

سيتم إنشاء الجداول تلقائيًا.

هذه بعض الحلول المقترحة اتمنى ان تساعدك
بالتوفيق

عند إغلاق الجلسه  وترحيل القيود  يحدث خطا فى المستخدم

"يرجى تحديد حساب الدخل لهذا المنتج (المعرف:3)"

مع العلم ان وحده المحاسبه تريد ترقيه ولذالك لا يوجد تبويب محاسبه

  • 0
نشر
بتاريخ 8 دقائق مضت قال Mohamed Shaban18:

عند إغلاق الجلسه  وترحيل القيود  يحدث خطا فى المستخدم

"يرجى تحديد حساب الدخل لهذا المنتج (المعرف:3)"

مع العلم ان وحده المحاسبه تريد ترقيه ولذالك لا يوجد تبويب محاسبه

هذا الخطأ يظهر لأن المنتج لا يحتوي على حساب دخل محدد، وOdoo يحتاج هذا الحساب لكي يتمكن من ترحيل القيد المحاسبي عند إغلاق الجلسة.

ولكن، بما أن وحدة المحاسبة غير مفعّلة أو تتطلب ترقية، فلن تتمكن من الدخول إلى تبويب "المحاسبة" داخل بطاقة المنتج لتحديد الحساب.

قم بتفعيل وضع المطوّر (Developer Mode) من الإعدادات.

افتح بطاقة المنتج.

سيظهر لك تبويب "المعلومات الإضافية" أو الحقول المحاسبية.

حدّد حساب دخل افتراضي في خانة "حساب الإيرادات" (Income Account).

أو يمكنك:

تحديد الحساب الافتراضي للإيرادات على مستوى فئة المنتج (Category) بدلاً من تحديده داخل كل منتج على حدة.

وبذلك سيتمكن نظام Odoo من ترحيل الجلسة دون حدوث أخطاء.

  • 0
نشر
بتاريخ 12 ساعة قال Abdulrahman Muhammad:

هذا الخطأ يظهر لأن المنتج لا يحتوي على حساب دخل محدد، وOdoo يحتاج هذا الحساب لكي يتمكن من ترحيل القيد المحاسبي عند إغلاق الجلسة.

ولكن، بما أن وحدة المحاسبة غير مفعّلة أو تتطلب ترقية، فلن تتمكن من الدخول إلى تبويب "المحاسبة" داخل بطاقة المنتج لتحديد الحساب.

قم بتفعيل وضع المطوّر (Developer Mode) من الإعدادات.

افتح بطاقة المنتج.

سيظهر لك تبويب "المعلومات الإضافية" أو الحقول المحاسبية.

حدّد حساب دخل افتراضي في خانة "حساب الإيرادات" (Income Account).

أو يمكنك:

تحديد الحساب الافتراضي للإيرادات على مستوى فئة المنتج (Category) بدلاً من تحديده داخل كل منتج على حدة.

وبذلك سيتمكن نظام Odoo من ترحيل الجلسة دون حدوث أخطاء.

لم اجد خانه حساب دخل افتراضي سواء فى المنتج او الفئه

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...