توثيق إخفاء تكلفة المنتج والهوامش عن مندوبي المبيعات لأودو 19
دليل إخفاء تكلفة المنتج والهوامش عن مندوبي المبيعات: ما الذي يختفي ومن يظل يراها وكيف تُحمى واجهة API وما لا تغطيه الوحدة.
يشرح الإصدار 1.0.0حُدّث في 22 أكتوبر 2026
ابدأ من هنا
ببساطة: يعرض أودو تكلفة المنتج وهامش الطلب لكل مستخدم داخلي. هذا مقبول للمدير، لكن مندوب المبيعات الذي يرى أنك تشتري كرسيًا بـ55 وتبيعه بـ70 يفاوض بطريقة مختلفة وقد يخبر العميل. تسحب هذه الوحدة التكلفة والهامش ممن تختار، في كل مكان: في الشاشات وفي التقارير وفي واجهة API.
| مندوب المبيعات | مدير المبيعات والمحاسب والمدير | |
|---|---|---|
| نموذج المنتج وقائمته | بلا التكلفة | تظهر التكلفة |
| سطور الطلب | بلا أعمدة التكلفة والهامش والهامش % | أعمدة اختيارية متاحة |
| إجماليات الطلب | بلا سطر الهامش | الهامش والنسبة |
| تحليل المبيعات والفواتير | بلا مقياس الهامش | الهامش متاح |
| JSON-RPC / XML-RPC / التصدير | الوصول مرفوض | مسموح |
نصيحة: يواصل مندوبو المبيعات العمل تمامًا كما قبل: يعرضون الأسعار ويؤكدون ويسلّمون ويفوترون. ويحسب أودو الهامش في الخلفية لمن يحق لهم رؤيته.
ما الذي يُخفى
| النموذج | الحقل | أين تراه عادةً |
|---|---|---|
| المنتج / قالب المنتج | التكلفة (standard_price) | نموذج المنتج وقائمة المنتجات وقائمة المتغيرات |
| سطر أمر البيع | التكلفة (purchase_price) والهامش والهامش % | سطور الطلب (النموذج والقائمة) والمحور والرسم |
| أمر البيع | الهامش والهامش % | إجماليات الطلب وقائمة الطلبات والمحور والرسم |
| تقرير تحليل المبيعات | الهامش | المبيعات ← التقارير ← المبيعات |
| تقرير تحليل الفواتير | الهامش وقيمة المخزون | الفوترة ← التقارير ← الفواتير |
ببساطة: هذه هي الحقول التي يستخدمها أودو نفسه لعرض التكلفة والهامش أو حسابهما. لا تخفي الوحدة شيئًا آخر: تبقى الأسعار والخصومات والضرائب والإجماليات ظاهرة.
المتطلبات
| البند | التفاصيل |
|---|---|
| أودو | 19.0 (Community أو Enterprise) |
| التطبيقات المطلوبة | المبيعات مع وحدة الهوامش في أوامر البيع (sale_margin) والفوترة والمخزون. تُثبَّت تلقائيًا. |
| الرخصة | OPL-1 (رخصة أودو الخاصة v1.0) |
التثبيت
- فُكّ ضغط الحزمة. بداخلها
taqnix_hide_cost_margin.zip؛ فُكّه لتحصل على المجلدtaqnix_hide_cost_margin. - انسخ المجلد إلى أحد مجلدات
addons_pathفي خادم أودو وأعد تشغيل أودو. - سجّل الدخول كمدير وفعّل وضع المطوّر ثم افتح التطبيقات واضغط تحديث قائمة التطبيقات.
- أزل مرشح «التطبيقات» وابحث عن Hide Product Cost واضغط تثبيت.
# أو من سطر الأوامر ./odoo-bin -c odoo.conf -d YOUR_DATABASE -i taqnix_hide_cost_margin --stop-after-init
مهم: التثبيت يخفي التكلفة والهامش عن كل من ليس في المجموعة الموضحة أدناه. راجع الفصل 5 قبل التثبيت على نظام حي كي لا يفقدها من يحتاجها.
من يظل يرى التكلفة والهامش
ببساطة: تقرر ذلك مجموعة واحدة: رؤية تكلفة المنتج والهوامش. وتُمنح تلقائيًا، عبر الأدوار الموجودة أصلًا في أودو، لمن يعمل بالتكاليف عادةً.
| الدور في أودو | هل يرى التكلفة والهامش؟ |
|---|---|
| المبيعات ← مدير (مدير المبيعات) | نعم |
| المحاسبة ← محاسب ومستشار | نعم |
| المخزون ← مدير | نعم |
| المشتريات ← مستخدم ومدير | نعم |
| الإعدادات ← مدير | نعم |
| المبيعات ← مستخدم: مستنداته فقط | لا |
| المبيعات ← مستخدم: كل المستندات | لا |
| المحاسبة ← الفوترة فقط | لا |
- افتح الإعدادات ← المستخدمون والشركات ← المستخدمون وافتح المستخدم.
- لمنح رؤية التكلفة أضف المجموعة رؤية تكلفة المنتج والهوامش في حقوق وصول المستخدم، أو امنحه أحد الأدوار أعلاه.
- لسحبها أزل الدور الذي يمنحها. ومن لا يملك أي دور كهذا يتوقف ببساطة عن رؤية الأرقام.
نصيحة: لأن المجموعة تأتي من الأدوار فلا حاجة لتعديل كل شخص على حدة: يبقى المديرون والمحاسبون الحاليون يرون كل شيء لحظة التثبيت، ويفقدها مندوبو المبيعات.
في المنتج
ببساطة: نموذج المنتج أول مكان ينظر إليه الناس. المنتج نفسه كما يراه مندوب مبيعات ومدير:
ببساطة: تفقد قائمة المنتجات وقائمة المتغيرات عمود التكلفة أيضًا.
في أوامر البيع
ببساطة: في الطلب تزيل الوحدة أعمدة التكلفة والهامش والهامش % وسطر الهامش تحت الإجماليات وخيارات الأعمدة الاختيارية.
ببساطة: يستطيع مندوبو المبيعات تغيير الكميات والأسعار والخصومات. وإن تغيّر سعر يُحدَّث الهامش في الخلفية، ولا يراه إلا من في المجموعة.
في التقارير
ببساطة: التقارير هي المكان الذي يتسرب منه الهامش عادةً. تزيل الوحدة مقياس الهامش من تحليل المبيعات، ومقياسي الهامش وقيمة المخزون من تحليل الفواتير، لمن هم خارج المجموعة.
ببساطة: وينطبق الشيء نفسه على المرشحات والتجميع والتصدير: حقل لا يمكن قراءته لا يمكن وضعه في مرشح أو تجميع أو تصدير إلى Excel.
ليس الشاشة فقط: واجهة API
ببساطة: لا يكفي إخفاء حقل في عرض. لأودو واجهة API مفتوحة، ويستطيع موظف فضولي بضعة أسطر من Python أن يطلب من الخادم مباشرةً تكلفة كل منتج. تعمل هذه الوحدة على النموذج نفسه فيرفض الخادم.
import xmlrpc.client
common = xmlrpc.client.ServerProxy('https://erp.example.com/xmlrpc/2/common')
uid = common.authenticate('db', 'sally', 'her-password', {})
m = xmlrpc.client.ServerProxy('https://erp.example.com/xmlrpc/2/object')
m.execute_kw('db', uid, 'her-password', 'product.template', 'read', [[3], ['name']])
# [{'id': 3, 'name': 'Virtual Interior Design'}]
m.execute_kw('db', uid, 'her-password', 'product.template', 'read', [[3], ['standard_price']])
# xmlrpc.client.Fault: AccessError: You do not have enough rights to access the field "standard_price"| استدعاء من مندوب مبيعات | النتيجة |
|---|---|
read مع الحقل المخفي | خطأ وصول |
read دون قائمة حقول | يعمل لكن الحقول المخفية ليست في الجواب |
search / search_read بنطاق على حقل مخفي | خطأ وصول (لا يمكن تخمين التكلفة بالترشيح) |
read_group على حقل مخفي | خطأ وصول |
write للتكلفة | خطأ وصول |
fields_get | لا تُعلَن الحقول المخفية |
ما لا تخفيه
ببساطة: لنكن واضحين بشأن الحدود كي لا تحدث مفاجآت.
| غير مشمول | ما العمل |
|---|---|
| أسعار الموردين في تبويب الشراء للمنتج وأوامر الشراء | تحتاج تطبيق المشتريات. لا تمنحه لمندوبي المبيعات. |
| تقييم المخزون وتقارير قيمة المخزون | تحتاج صلاحيات المخزون. لا تمنحها لمندوبي المبيعات. |
| تكلفة التصنيع (قوائم المواد ومراكز العمل) | تحتاج صلاحيات التصنيع. |
| تقارير هامش نقاط البيع | لنقاط البيع تقاريرها الخاصة. اقصرها على المديرين. |
| وحدات مخصصة تقرأ التكلفة لمندوب مبيعات | سيحصلون على خطأ وصول. راجع الفصل 12 للحل. |
| سعر البيع والخصومات | ليست أسرارًا: يحتاجها مندوبو المبيعات للبيع. |
مهم: إن كان لمندوب مبيعات أيضًا صلاحيات مدير في المشتريات أو المخزون أو نقاط البيع فستعرض تلك التطبيقات التكاليف عبر شاشاتها. راجع أدوار فريق مبيعاتك.
جرّبها بنفسك
- أنشئ مستخدمًا تجريبيًا بدور المبيعات ← مستخدم: كل المستندات فقط (مع الفوترة إن كان سيفوتر).
- افتح نافذة متصفح خاصة وسجّل الدخول بهذا المستخدم.
- افتح منتجًا وطلبًا والمبيعات ← التقارير. لا ينبغي أن تجد تكلفة ولا هامشًا.
- أنشئ عرض سعر وأكّده وأنشئ فاتورة. كل شيء يعمل كما قبل.
- سجّل الدخول كمدير وتحقق من هامش ذلك الطلب: موجود وصحيح.
ببساطة: تأتي الوحدة مع اختبارات آلية تفعل هذا بالضبط، بما فيها استدعاءات API الموضحة في الفصل 9.
للمطورين
ببساطة: تجاوز هذا الفصل إن كنت تستخدم الوحدة فقط.
| البند | التفاصيل |
|---|---|
| المجموعة | taqnix_hide_cost_margin.group_see_cost |
| كيف تُحمى الحقول | يُعاد تعريف الحقول مع groups. فيرفض أودو قراءتها والبحث بها وتجميعها وكتابتها وتصديرها لغير المخوَّلين، ويزيلها من كل عرض. |
| شيفرتك أنت | اقرأ الحقول المحمية بـ.sudo() عندما تحتاجها شيفرتك لأي مستخدم. |
| سطور الطلب | تعمل _add_precomputed_values بصلاحيات المدير الأعلى كي تُحسب التكلفة مسبقًا عندما ينشئ مندوب مبيعات سطرًا. |
# احمِ حقلًا آخر بالطريقة نفسها
from odoo import fields, models
class ProductTemplate(models.Model):
_inherit = 'product.template'
my_secret_price = fields.Float(groups='taqnix_hide_cost_margin.group_see_cost')
# شيفرتك التي تحتاج التكلفة لأي مستخدم
cost = line.product_id.sudo().standard_priceاستكشاف الأخطاء
| المشكلة | ما العمل |
|---|---|
| ما زال مندوب مبيعات يرى التكلفة | لديه دور يمنح المجموعة (مثل مدير المبيعات أو مستخدم المشتريات). افحص أدواره وأزل الدور الزائد. |
| لم يعد المدير يرى الهامش | تنقص المدير المجموعة. امنحه دور مدير المبيعات أو أضف المجموعة مباشرةً. |
| يفشل تقرير أو وحدة مخصصة بخطأ وصول لمندوبي المبيعات | تقرأ التكلفة بصلاحيات ذلك المستخدم. اجعلها تستخدم .sudo() للتكلفة أو امنح المستخدم المجموعة. |
| ما زال عمود التكلفة في قائمتي بعد التثبيت | أعد تحميل الصفحة بـCtrl+Shift+R. |
| الهوامش مفقودة في الطلبات القديمة | لم يضع شيء: هي مخزّنة. لكن لا يقرؤها إلا من في المجموعة. |
التحديث والإزالة
استبدل المجلد بالإصدار الجديد وأعد تشغيل أودو ونفّذ -u taqnix_hide_cost_margin. للإزالة ألغِ التثبيت من التطبيقات: تعود التكلفة والهامش ظاهرين لكل المستخدمين الداخليين كما في أودو القياسي. لا يتغير شيء من البيانات ولا يُفقد.
الدعم
المساعدة في التثبيت وإصلاح الأخطاء مشمولان لمدة 6 أشهر مع تحديثات مدى الحياة. تواصل معنا عبر صفحة السوق التي اشتريت منها الوحدة أو راسل support@taqnix.com مع إصدار أودو ولقطة شاشة.