Yemen North Overlay
A Sana'a-authority overlay on the base Yemen chart that adds the 20% khums levy on natural-resource extraction, its dedicated Khums Payable account and tax group, and a North Yemen fiscal position, all merged into the chart at load time through Odoo's template mechanism.
Why this module
Yemen North Overlay
The Sana'a stack, on the chart side
The Sana'a authority runs a materially different tax stack from Aden. This overlay adds only the chart-side differences: the khums levy, its payable account and tax group, and a North Yemen fiscal position. It sits on the base Yemen chart rather than replacing it.
One source of truth per rate
The 35% Sana'a income tax and the zakat rate are not duplicated here. They live in the Yemen income tax module, selected by region on the run, so a rate is never defined in two places that can drift apart.
Installs by merging, not by scripting
The additions are registered as @template('ye', ...) methods, so when the Yemen chart is loaded with this overlay installed, Odoo merges the khums account, tax group, tax and fiscal position into the chart automatically. Nothing is entered by hand.
Day in the life
Loading the Yemen chart with the overlay in
You install eh_l10n_ye_north alongside the base Yemen module, then create a company and load the Yemen chart. The chart comes up with the standard Yemen accounts plus a Khums Payable account (202050), a Khums 20% (Extraction) sale tax that computes 20% and posts it into that payable account, and a North Yemen (Sana'a) fiscal position ready to select. On an extraction sale you apply the khums tax and the levy lands in Khums Payable, for both the invoice and any later refund.
Edge cases
The cases most modules quietly ignore.
In the shipped code today, each one a place where a cheaper module silently does the wrong thing.
The khums tax carries base and tax repartition lines for both the invoice and the refund document type, so a credit note reverses the 20% out of Khums Payable the same way the invoice booked it in.
Because the additions register through the chart-template mechanism, they are contributed only when the Yemen chart is actually loaded with the overlay installed, keeping them tied to that chart rather than injected as standalone records.
The Khums 20% tax group is given both a tax receivable account (103030) and a tax payable account (202050), so the group is complete for tax closing rather than payable-only.
What is inside
Built to do the job, end to end.
- Khums Payable account (202050). A liability_current account named Khums Payable, added to the Yemen chart to receive the 20% levy separately from other tax liabilities.
- Khums 20% tax group. A dedicated tax group named Khums 20%, wired to receivable account 103030 and payable account 202050, keeping the levy isolated on the chart and in reporting.
- Khums 20% (Extraction) tax. A 20% percentage sale tax whose tax repartition posts the amount into 202050 for both invoice and refund, described as the Sana'a authority levy on natural-resource extraction.
- North Yemen (Sana'a) fiscal position. A fiscal position on Yemen named North Yemen (Sana'a), with auto_apply off, for companies operating across the line to select explicitly.
- Template overlay methods. Four @template('ye', ...) methods on account.chart.template that contribute the account, tax group, tax and fiscal position when the Yemen chart is loaded.
Honest about the edges
What this does not do, so nothing surprises you.
- It does not ship a full Yemen chart of accounts on its own. It requires and extends eh_l10n_ye, so the base Yemen module must be installed and its chart loaded.
- It does not compute the 35% Sana'a income tax or the zakat rate. Those are handled by the Yemen income tax module by selecting the Sana'a region.
- It does not create a second currency for the divergent Sana'a rial. That is treated as a rate-zone question, handled by a functional currency or a manual YER rate per company.
- It does not apply the khums tax automatically to transactions. The tax and fiscal position are made available for you to select where the levy applies.
- It does not add reports, wizards, or a user interface. It contributes chart records (an account, a tax group, a tax, and a fiscal position) only.
- It does not retro-fit an already-loaded chart on install. The additions merge when the Yemen chart is loaded with the overlay present.
odoo 19 yemen localization, yemen chart of accounts odoo, khums 20 percent extraction levy, sana'a north yemen tax overlay, yemen fiscal position odoo, khums payable account, yemen tax odoo community, odoo yemen chart template
الطبقة الإضافية لشمال اليمن
طبقة إضافية خاصة بسلطة صنعاء تُبنى فوق دليل الحسابات اليمني الأساسي، تضيف ضريبة الخُمس بنسبة 20% على استخراج الموارد الطبيعية، وحساب الخُمس المستحق الدفع الخاص بها ومجموعتها الضريبية، ووضعاً ضريبياً لشمال اليمن، وكلها تُدمج في دليل الحسابات وقت التحميل عبر آلية القوالب في Odoo.
لماذا هذه الوحدة
منظومة صنعاء، على جانب دليل الحسابات
تُطبّق سلطة صنعاء منظومة ضريبية مختلفة جوهرياً عن عدن. تضيف هذه الطبقة الإضافية فروقات جانب دليل الحسابات فقط: ضريبة الخُمس، وحسابها المستحق الدفع ومجموعتها الضريبية، ووضعاً ضريبياً لشمال اليمن. وهي تُبنى فوق دليل الحسابات اليمني الأساسي بدلاً من أن تحلّ محله.
مصدر واحد لكل نسبة
لا تُكرَّر هنا ضريبة دخل صنعاء بنسبة 35% ولا نسبة الزكاة. فهما موجودتان في وحدة ضريبة الدخل اليمنية، ويتم اختيارهما حسب المنطقة عند التشغيل، حتى لا تُعرَّف نسبة في موضعين قد يتباعدان.
التركيب بالدمج، لا بالبرمجة النصية
تُسجَّل الإضافات على هيئة دوال @template('ye', ...)، لذا عند تحميل دليل الحسابات اليمني مع تثبيت هذه الطبقة، يدمج Odoo حساب الخُمس ومجموعته الضريبية والضريبة والوضع الضريبي في دليل الحسابات تلقائياً. لا شيء يُدخَل يدوياً.
يوم في حياة المستخدم
تحميل دليل الحسابات اليمني مع تفعيل الطبقة الإضافية
تُثبّت eh_l10n_ye_north إلى جانب وحدة اليمن الأساسية، ثم تنشئ شركة وتحمّل دليل الحسابات اليمني. يظهر الدليل بالحسابات اليمنية القياسية إضافةً إلى حساب الخُمس المستحق الدفع (202050)، وضريبة مبيعات Khums 20% (Extraction) تحسب 20% وتُرحّلها إلى ذلك الحساب المستحق الدفع، ووضع ضريبي لشمال اليمن (صنعاء) جاهز للاختيار. وفي عملية بيع استخراجية تطبّق ضريبة الخُمس فيستقر المبلغ في حساب الخُمس المستحق الدفع، سواء للفاتورة أو لأي مبلغ مُسترد لاحقاً.
حالات خاصة تتعامل معها الوحدة
تحمل ضريبة الخُمس سطور توزيع للأساس وللضريبة لكلٍّ من نوعي مستند الفاتورة والمبلغ المسترد، فيعكس إشعار الدائن نسبة 20% خارج حساب الخُمس المستحق الدفع بالطريقة نفسها التي قيّدتها بها الفاتورة.
لأن الإضافات تُسجَّل عبر آلية قوالب دليل الحسابات، فإنها تُسهم فقط عند تحميل دليل الحسابات اليمني فعلياً مع تثبيت الطبقة الإضافية، مما يبقيها مرتبطة بذلك الدليل بدلاً من حقنها كسجلات مستقلة.
تُمنح مجموعة الخُمس 20% حساب ضريبة مستحقة القبض (103030) وحساب ضريبة مستحقة الدفع (202050) معاً، فتكتمل المجموعة لأغراض الإقفال الضريبي بدلاً من أن تقتصر على الجانب المستحق الدفع.
ماذا يوجد بالداخل
- حساب الخُمس المستحق الدفع (202050): حساب من نوع liability_current باسم Khums Payable، يُضاف إلى دليل الحسابات اليمني لاستقبال ضريبة 20% بمعزل عن سائر الالتزامات الضريبية.
- مجموعة الخُمس 20% الضريبية: مجموعة ضريبية مخصصة باسم Khums 20%، موصولة بحساب مستحق القبض 103030 وحساب مستحق الدفع 202050، لإبقاء الضريبة معزولة في دليل الحسابات وفي التقارير.
- ضريبة الخُمس 20% (الاستخراج): ضريبة مبيعات نسبتها 20%، يُرحّل توزيعها الضريبي المبلغ إلى 202050 لكلٍّ من الفاتورة والمبلغ المسترد، وموصوفة بأنها ضريبة سلطة صنعاء على استخراج الموارد الطبيعية.
- الوضع الضريبي لشمال اليمن (صنعاء): وضع ضريبي على اليمن باسم North Yemen (Sana'a)، مع إيقاف auto_apply، لتختاره صراحةً الشركات العاملة على جانبي خط التقسيم.
- دوال الطبقة الإضافية للقوالب: أربع دوال @template('ye', ...) على account.chart.template تُسهم بالحساب والمجموعة الضريبية والضريبة والوضع الضريبي عند تحميل دليل الحسابات اليمني.
ما لا تقوم به الوحدة
- لا تأتي بدليل حسابات يمني كامل بمفردها. فهي تتطلّب eh_l10n_ye وتوسّعه، لذا يجب تثبيت وحدة اليمن الأساسية وتحميل دليلها.
- لا تحسب ضريبة دخل صنعاء بنسبة 35% ولا نسبة الزكاة. فهاتان تتولّاهما وحدة ضريبة الدخل اليمنية باختيار منطقة صنعاء.
- لا تنشئ عملة ثانية للريال الصنعاني المتباين. فهذه تُعالَج بوصفها مسألة منطقة سعر صرف، عبر عملة وظيفية أو سعر يدوي للريال اليمني (YER) لكل شركة.
- لا تطبّق ضريبة الخُمس تلقائياً على المعاملات. فالضريبة والوضع الضريبي يُتاحان لك لتختارهما حيث تنطبق الضريبة.
- لا تضيف تقارير أو معالجات أو واجهة مستخدم. فهي تُسهم بسجلات دليل الحسابات فقط (حساب، ومجموعة ضريبية، وضريبة، ووضع ضريبي).
- لا تعدّل دليل حسابات محمّلاً مسبقاً عند التثبيت. فالإضافات تُدمج عند تحميل دليل الحسابات اليمني مع وجود الطبقة الإضافية.
Modules teams pair with this one.
Premium ERP Heritage modules that extend the same stack, each built to the same engineering bar.
Sync attendance clock events from the Employment Hero people platform into the stock Odoo Attendances app, keyed...
The Singapore country pack for the ERP Heritage Employment Hero integration
The complete ERP Heritage Employment Hero integration in one install
Sync timesheet entries from the Employment Hero people and payroll platform into the standard Odoo Timesheets app...
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Invoicing (account)
• Discuss (mail) |
| Community Apps Dependencies | Show |
| Lines of code | 457 |
| Technical Name |
eh_l10n_ye_north |
| License | LGPL-3 |
| Website | https://www.erpheritage.com.au |
Please log in to comment on this module