| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Discuss (mail)
• Invoicing (account) • Sales (sale_management) |
| Lines of code | 3092 |
| Technical Name |
eh_log_base |
| License | LGPL-3 |
| Website | https://www.erpheritage.com.au/ |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Discuss (mail)
• Invoicing (account) • Sales (sale_management) |
| Lines of code | 3092 |
| Technical Name |
eh_log_base |
| License | LGPL-3 |
| Website | https://www.erpheritage.com.au/ |
Logistics Suite Engine
محرّك الحزمة اللوجستية
The shared engine the suite is built on. Adapter framework, credentials helper with env / encrypted-param / default precedence, typed exception hierarchy [EHL-XXX-NNN], audit log, charge code master, paper format, three-tier privilege groups, brand-attribution integrity verifier.
المحرّك المشترك الذي تُبنى عليه الحزمة. إطار المحوّلات ، مساعد الاعتمادات بترتيب (متغير بيئة ، إعداد مشفّر ، قيمة افتراضية) ، نظام استثناءات مكتوب [EHL-XXX-NNN] ، سجل تدقيق ، أكواد الرسوم ، صيغة ورق ، ثلاث مجموعات صلاحيات ، والمدقّق المُتحقَّق لهوية العلامة.
GCC freight forwarders, agents, and 3PL operators running the lanes between the GCC and the rest of the world.
Hours of manual reconciliation between operational modules and the cost of paying enterprise add-ons for the same capability.
Overview
What this module does, in one read.
eh_log_base ships the foundation every other module in the suite depends on. The adapter registry, the typed exception hierarchy, the audit-log model, the charge-code master, the paper formats, the three-tier privilege groups, and the brand-attribution integrity verifier all live here. Every regulator and carrier integration follows the same PROVIDER_CODE / API_VERSION contract; every model raises typed errors with stable [EHL-XXX-NNN] prefixes; every company-aware model carries an ir.rule with global=True.
نظرة عامة
ما الذي تقدمه الوحدة في قراءة واحدة
تطبيق eh_log_base يحمل الأساس الذي تعتمد عليه كل وحدة أخرى في الحزمة. سجل المحوّلات ، نظام الاستثناءات المكتوب ، نموذج سجل التدقيق ، أكواد الرسوم ، صيغ الورق ، مجموعات الصلاحيات الثلاث ، والمدقّق المُتحقَّق لهوية العلامة ، جميعها هنا. كل تكامل مع جهة تنظيمية أو ناقل يتبع عقد PROVIDER_CODE / API_VERSION ، وكل نموذج يرفع أخطاء مكتوبة ببادئة [EHL-XXX-NNN] ، وكل نموذج تابع لشركة يحوي قاعدة ir.rule عالمية.
A day in the life
A typical morning at the office.
The operator opens the dashboard, sees the open queue grouped by state, drills into the kanban for the day's hottest lane, and clears five exceptions before the second coffee. The toast confirms each transition; the activity inbox flags the one expiring permit. Quiet, fast, auditable.
صباح اعتيادي في المكتب
يفتح المشغّل لوحة المعلومات ، يرى الطابور مجمّعًا حسب الحالة ، يدخل عرض الكانبان للخط الأكثر ضغطًا ، ويعالج خمس استثناءات قبل القهوة الثانية. الإشعار يؤكّد كل انتقال ، وصندوق الأنشطة يرفع التذكير للتصريح الذي على وشك الانتهاء. هادئ ، سريع ، وقابل للتدقيق.
Capabilities
12 things this module gives you, with no padding.
Adapter framework
إطار المحوّلات
PROVIDER_CODE / API_VERSION contract every regulator / carrier adapter follows. Mock-mode fixture playback for CI; circuit breaker on live calls; structured eh.log.adapter.message log.
عقد PROVIDER_CODE / API_VERSION يلتزم به كل محوّل تنظيمي أو لناقل. وضع المحاكاة بـfixture لـCI ، قاطع تيار للاستدعاءات الحية ، وسجل eh.log.adapter.message منظَّم.
Credentials helper
مساعد الاعتمادات
Lookup precedence: environment variable, encrypted ir.config_parameter (Fernet), default. Per-company scoping; structured logging without leaking the secret.
ترتيب البحث: متغير بيئة ، ir.config_parameter مشفّر بـFernet ، قيمة افتراضية. حصر بالشركة ، وتسجيل منظَّم لا يفشي السر.
Typed exception hierarchy
نظام استثناءات مكتوب
Subclasses of UserError / ValidationError with stable [EHL-DOMAIN-NNN] codes. Support can grep logs without parsing English; tests assert on the code, not the message.
فئات فرعية من UserError / ValidationError بأكواد ثابتة [EHL-DOMAIN-NNN]. الدعم يبحث في السجلات دون تحليل النص الإنجليزي ، والاختبارات تتحقّق من الكود لا الرسالة.
Audit log model
نموذج سجل التدقيق
Append-only eh.log.event with category, severity, summary, related-record fields, and a JSON context column. Every operational module logs to the same model.
نموذج eh.log.event إضافي فقط ، بفئة وأهمية وملخّص وحقول السجل المرتبط وعمود سياق JSON. كل وحدة تشغيلية تسجّل في النموذج نفسه.
Charge code master
أكواد الرسوم الرئيسية
Standard charge codes (port dues, pilotage, tugs, documentation, agency fee, demurrage) with is_disbursement flag. Used by quotation, freight, ship agency, and warehouse billing.
أكواد رسوم قياسية (رسوم ميناء ، إرشاد بحري ، قاطرات ، وثائق ، أتعاب وكالة ، رسوم تأخير) مع علامة is_disbursement. تُستخدم من قبل العروض ، والشحن ، ووكالة السفن ، وفوترة المستودع.
Paper formats
صيغ الورق
A4 portrait (42/26/14/14, header_spacing 12) and A4 landscape (36/24/12/12, header_spacing 10). Tuned for the integrity-checked footer + page-counter without crowding the body.
A4 عمودي (42/26/14/14 ، ترويسة 12) وA4 أفقي (36/24/12/12 ، ترويسة 10). مضبوطة لتذييل الإسناد المُتحقَّق وعدّاد الصفحات دون ازدحام المتن.
Three-tier privilege groups
ثلاث مجموعات صلاحيات
group_eh_log_user (day-to-day), group_eh_log_manager (mass actions, settings), group_eh_log_auditor (read-only across the suite). Every module's ACL respects this trio.
group_eh_log_user (عمل يومي) ، group_eh_log_manager (أكشن جماعي ، إعدادات) ، group_eh_log_auditor (قراءة فقط عبر الحزمة). صلاحيات كل وحدة تحترم الثلاثي.
Brand-attribution integrity
تحقق هوية العلامة
The publisher's mandatory brand line is reassembled at runtime from six base64-encoded fragment files and SHA-256-verified at module import, on post-load, and on every PDF render. Tampering fails the verifier.
السطر التعريفي الإلزامي للناشر يُعاد تجميعه وقت التشغيل من ست شظايا base64 ويُتحقَّق منه بـSHA-256 عند استيراد الوحدة ، وبعد التحميل ، وعند كل إصدار PDF. أي عبث يفشّل المدقّق.
UX mixin
مرن واجهة المستخدم
_notify / _notify_success / _notify_warning / _notify_danger / _nudge / _log_state_change available on every operational model that opts in. Toast on every action; activity nudge on every blocking event.
_notify / _notify_success / _notify_warning / _notify_danger / _nudge / _log_state_change متوفّرة لكل نموذج تشغيلي ينضم. إشعار على كل أكشن ، تذكير نشاط على كل حدث معطّل.
Document type master
أنواع المستندات
Catalogue of document types (BL, MAWB, customs declaration, certificate of origin, packing list, commercial invoice). Drives the document register in freight, customs, and ship agency.
كتالوج أنواع المستندات (بوليصة شحن ، شهادة منشأ ، قائمة تعبئة ، فاتورة تجارية). يقود سجل الوثائق في الشحن والتخليص ووكالة السفن.
Brand model + report shell
نموذج الهوية + قالب التقارير
QWeb cannot import Python directly; the abstract eh.log.brand model exposes brand_line() to templates. The integrity-checked footer renders on every page of every PDF in the suite.
QWeb لا تستورد Python مباشرة ، فالنموذج المجرّد eh.log.brand يتيح brand_line() للقوالب. التذييل المُتحقَّق يُعرض على كل صفحة من كل PDF في الحزمة.
Multi-company by default
تعدد الشركات افتراضيًا
Every operational model the suite ships with carries an ir.rule with global=True. Cross-company joins fail at the database layer; reports and dashboards respect allowed_company_ids.
كل نموذج تشغيلي في الحزمة يحوي قاعدة ir.rule عالمية. الانضمام عبر الشركات يفشل عند قاعدة البيانات ، والتقارير واللوحات تحترم allowed_company_ids.
Country matrix
Same code, six regulators.
شيفرة واحدة، ست جهات تنظيمية. كل دولة في الخليج لها متطلباتها وحزمتها الخاصة.
| Aspect | 🇦🇪 UAE | 🇸🇦 KSA | 🇰🇼 KW | 🇧🇭 BH | 🇶🇦 QA | 🇴🇲 OM |
|---|---|---|---|---|---|---|
| Default deployment posture وضع النشر الافتراضي |
Multi-company-aware | Multi-company-aware | Multi-company-aware | Multi-company-aware | Multi-company-aware | Multi-company-aware |
| VAT awareness الوعي بضريبة القيمة المضافة |
5% (FTA) | 15% (ZATCA) | — | 10% (NBR) | — | 5% (TA) |
| Document language لغة الوثائق |
EN / AR | AR / EN | AR / EN | AR / EN | AR / EN | AR / EN |
| Currency العملة |
AED | SAR | KWD | BHD | QAR | OMR |
| Adapter pre-mapped محوّل جاهز ومُربَط الحقول |
Mirsal 2 | FASAH + SABER | KW Customs | OFFS | Al Nadeeb | Bayan |
Workflow
Configure once. Operate. Audit. Report.
إعداد مرة واحدة، تشغيل، تدقيق، تقارير.
Configure the master data
إعداد البيانات الأساسية
Currencies, partners, charge codes, and the country pack: do this once at install.
Operate the lifecycle
إدارة دورة الحياة
State transitions through the buttons; mass actions from the list view; kanban for visual work.
Audit and report
التدقيق وإصدار التقارير
Every action posts to the chatter, every state transition logs an event, every PDF carries the integrity-checked footer.
Bill and reconcile
الفوترة والتسوية
Cost / revenue lines flow through the standard sale order to invoice path; multi-currency and multi-company respected.
FAQ
Common questions, direct answers.
Does this run on Odoo 19 Community?
Yes. The suite is built and tested on Odoo 19 Community. No Enterprise modules are required.
هل يعمل التطبيق على Odoo 19 Community ؟
نعم. الحزمة مبنية ومُختبَرة على Odoo 19 Community. لا حاجة لوحدات Enterprise.
Will it conflict with another addon?
Inheritance ordering is documented and the model names are eh.log.* throughout. A third-party addon that does not use those names is unaffected.
هل يتعارض مع تطبيق آخر ؟
ترتيب الوراثة موثَّق وأسماء النماذج بنمط eh.log.* في كامل الحزمة. أي تطبيق طرف ثالث لا يستخدم هذه الأسماء لا يتأثر.
Are tests included?
Yes. Unit tests, integration (e2e) tests, country matrix tests, and load tests are all included.
هل الاختبارات مرفقة ؟
نعم. اختبارات الوحدة ، التكامل (e2e) ، مصفوفة الدول ، واختبارات التحميل ، جميعها مرفقة.
How do I rebrand?
The publisher offers a paid whitelabel licence. Without the whitelabel files the integrity check fails and the suite refuses to operate.
كيف أُغيِّر العلامة ؟
يقدّم الناشر ترخيص whitelabel مدفوع. بدون ملفات whitelabel يفشل التحقق وتتوقف الحزمة.
Support & Licensing
Open source, commercially supported.
Open source under LGPL-3 with the brand-attribution footer required intact. Issues opened on the public repository are taken seriously and fixes ship on the public branch. Commercial whitelabel licensing, implementation services, and tier-1 support available from ERP Heritage in Melbourne; partner integrators in the GCC are recommendable on request.
الدعم والترخيص
مفتوح المصدر، مدعوم تجاريًا.
مفتوح المصدر بموجب رخصة LGPL-3 مع الحفاظ على تذييل الهوية. تُؤخذ المشكلات الواردة على المستودع العام بجدية ، وتُنشر الإصلاحات على الفرع العام. تراخيص العلامة الخاصة (whitelabel) ، وخدمات التنفيذ ، والدعم من المستوى الأول متاحة من ERP Heritage في ملبورن. شركاء التكامل في دول الخليج يُرشَّحون بناءً على الطلب.
Talk to ERP Heritage about Odoo implementation, customisation, training, or support.
End-to-end engagement across the Odoo platform: implementation, customisation, reimplementation, functional and technical training, ongoing support, integration planning, and scoped extensions. One team, one response within a business day.
تواصل مع ERP Heritage بشأن تنفيذ Odoo والتخصيص والتدريب والدعم.
خدمة شاملة على منصة Odoo: التنفيذ، التخصيص، إعادة التنفيذ، التدريب الوظيفي والتقني، الدعم المستمر، تخطيط التكامل، وتوسعات بنطاق محدد. فريق واحد، استجابة واحدة خلال يوم عمل.
Please log in to comment on this module