استيراد وتجارة جملة للمواد الغذائية — السوق المحلي · منشور وشغّال
زاد الخير
نظام ويب عربي كامل يتتبّع الشحنة المستوردة من لحظة الطلب حتى تحصيل ثمنها، ويربط مديونية التجّار بالذهب بدل الجنيه فلا يأكلها التضخّم.
- نوع النظام
- نظام تشغيل داخلي (استيراد · مخزون · مبيعات آجلة · خزائن · تقارير)
- دورنا
- بناء كامل — فهم التشغيل ثم التنفيذ ثم النشر

نظام تشغيل داخلي يغطّي الاستيراد والمخزون والمبيعات الآجلة والخزائن والتقارير في سلسلة واحدة: كل مصروف تخليص يُقيَّد فترتفع تكلفة الوحدة النهائية لحظيًا، والبضاعة تُباع من دفعة مخزون بعينها، والفاتورة تُقاس بالذهب يوم إصدارها وتُسدَّد بسعر يوم كل دفعة. الواجهة عربية من اليمين لليسار في بنيتها، وتعمل بنفس القدرات على الكمبيوتر والهاتف.
- 18
- شاشة
- 21
- جدولًا في قاعدة البيانات
- 44
- إجراء خادم
- 39
- فهرسًا وقيد تفرّد
- 11
- قيد CHECK على القاعدة
- 27
- اختبارًا آليًا كلها ناجحة
- 12,318
- سطر شيفرة
- المجال
- استيراد وتجارة جملة للمواد الغذائية — السوق المحلي
- نوع النظام
- نظام تشغيل داخلي (استيراد · مخزون · مبيعات آجلة · خزائن · تقارير)
- التغطية
- ١٨ شاشة، ٧ مسارات خدمة، ٢١ جدولًا
- المستخدمون
- دوران: مالك (كل الصلاحيات) وموظّف (تشغيل يومي)
- اللغة والاتجاه
- عربية كاملة من اليمين لليسار (RTL) — لا طبقة ترجمة فوق واجهة إنجليزية
- الأجهزة
- كمبيوتر المكتب والهاتف — نفس النظام بلا نسخة مبتورة
- العملة والتوقيت
- العملة المحلية · التوقيت المحلي · تواريخ ميلادية DD/MM/YYYY
المشكلة قبل النظام
التاجر يستورد ١٨ صنفًا من الفول والأرز والزيوت والبهارات والملح، من موردين خارجيين ومن موردين محليين. المشكلة ليست في البيع، بل في ثلاث فجوات كانت تكلّفه مالًا حقيقيًا.
اقرأ التفاصيلإخفاء التفاصيل3 نقطة
- تكلفة الشحنة الحقيقية كانت مجهولة حتى تنتهي.
- — الشحنة الواحدة تمرّ بالجمارك ورصيف الميناء والغرفة التجارية وجهاز رقابة الأغذية والنقل — كل مصروف يُدفع في يوم مختلف ويُقيَّد في ورقة أو ملف إكسل مختلف. سعر الكيلو الحقيقي لا يظهر إلا بعد أن تُجمع الأوراق يدويًا، وغالبًا بعد أن تكون البضاعة قد بيعت بسعرٍ حُدِّد بالتخمين.
- الحسابات كانت موزّعة على دفاتر وملفات إكسل متفرقة.
- — دفتر للعملاء، وملف للشحنات، وملف للمصاريف — والأرقام تنتقل بينها بالنقل اليدوي. كل نقل فرصة لخطأ، ولا توجد نسخة واحدة صادقة من الحقيقة.
- البيع بالأجل كان يخسر قيمته بصمت.
- — التاجر يبيع بمهلة ٣٠ إلى ٩٠ يومًا. حين يتحرّك سعر الصرف والتضخّم خلال المهلة، يعود المبلغ نفسه بقوة شرائية أقل. الحلّ الذي كان يتّبعه: تحويل الفاتورة إلى ما يعادلها ذهبًا على الآلة الحاسبة، وكتابة الرقم على هامش الدفتر، وإعادة الحساب يدويًا مع كل دفعة جزئية. عمليةٌ صحيحة الفكرة، لكنها بطيئة وعرضة للخطأ، ولا أحد يستطيع مراجعتها لاحقًا.
المدخل: فهم التجارة قبل كتابة الكود
اقرأ التفاصيلإخفاء التفاصيل
بدأنا من سؤال واحد: ما الذي يجعل هذا النشاط يربح أو يخسر؟ الإجابة كانت رقمين: تكلفة الوحدة النهائية بعد كل المصاريف، وقيمة المديونية وقت تحصيلها لا وقت إصدارها.
فبنينا النظام حول هذين الرقمين لا حول شاشات الإدخال. كل قرار في البنية يخدم أحدهما: مصاريف الشحنة قيود مالية حقيقية مرتبطة بالشحنة (فتظهر في التكلفة والدفتر معًا بلا ازدواج)، وكل تحويل ذهبي يُخزَّن بسعره لحظة حدوثه (فلا يتغيّر أثرٌ ماضٍ بتغيّر سعر اليوم).
النظام ليس مجموعة شاشات مستقلة، بل سلسلة واحدة كل حلقة فيها تغذّي التالية: طلب الشحنة ← الميناء/التخليص ← خروج من الميناء ← دخول المخزن، وكل مصروف تخليص يُقيَّد ويُضاف للتكلفة. تكلفة الوحدة النهائية = (سعر الشراء + كل المصاريف) ÷ الكمية، فتصير دفعة مخزون بتكلفتها. ثم بيع من دفعة محدّدة ← خصم فوري من المخزون، وتُقاس الفاتورة بالذهب لحظة إصدارها: جرامات الفاتورة = الإجمالي ÷ سعر جرام عيار ٢٤ يوم الإصدار. وكل دفعة بسعر يومها: الجرامات المسدّدة = المبلغ المدفوع ÷ سعر الجرام يوم السداد ← المتبقّي بالجرامات، وقيمته بالجنيه بسعر اليوم.
النتيجة العملية: الفاتورة قد تُسدَّد بجنيهات أكثر مما صدرت به، وهذا هو الصواب. في البيانات المعروضة فاتورة صدرت بـ ٢٩٧٬٥٠٠ ج.م وسُدِّدت بدفعتين مجموعهما ٣٠٥٬٨٠٠ ج.م — الفارق ليس زيادة على العميل، بل هو نفس وزن الذهب الذي أخذه يوم الشراء، محسوبًا بسعر يوم السداد.
قرارات هندسية صنعت الفرق
القواعد التي تفرضها النواة، والقرارات المترتّبة عليها.
اقرأ التفاصيلإخفاء التفاصيل11 نقطة
- 01
لا بيع من العدم
كل سطر بيع مربوط بدفعة مخزون حقيقية، والكمية تُخصم لحظة إصدار الفاتورة وتعود كاملة لو أُلغيت.
- 02
السعر المستخدم يُخزَّن ولا يُعاد حسابه
سعر الذهب يوم إصدار الفاتورة، وسعره يوم كل دفعة — كلاهما سجلّ ثابت. تغيّر سعر اليوم لا يمسّ حرفًا في الماضي.
- 03
المبالغ لا تُحسب بأرقام عشرية عائمة أبدًا
كل المال والجرامات بحساب Decimal دقيق — المال بخانتين والجرامات بثلاث.
- 04
فاتورة عليها دفعات لا تُحذف
الحذف متاح فقط لما لم يُمسّ بعد، حمايةً من محو أثرٍ ماليّ قائم.
- 05
مصروف الشحنة قيد واحد
يظهر في صفحة الشحنة وفي الدفتر معًا — لا سجلّان يفترقان، ولا ازدواج في الإجماليات.
- 06
سداد المورد لا يدخل في تكلفة الاستيراد
لأن سعر الشراء مُسجَّل أصلًا على الشحنة — قرارٌ يمنع احتساب نفس المال مرتين.
- 07
الوحدات لها بُعد فيزيائي
الكتلة (كجم/طن) والحجم (لتر) لا يختلطان أبدًا؛ وحدة مجهولة تُرجع «لا قياس» بدل افتراض الكيلو — الرقم الغائب أأمن من رقم خاطئ يبدو صحيحًا.
- 08
الوزن يُعرض بالطن إن تجاوز الطن وبالكيلو إن قلّ
لغة التاجر لا لغة قاعدة البيانات.
- 09
سعر الذهب من السوق المحلي مباشرة
مع رجوع تلقائي للسعر العالمي إن تعطّل المصدر، ثم لآخر سعر معروف — الخدمة لا توقف إصدار فاتورة أبدًا.
- 10
صمّام القفزة المفاجئة
أي قراءة سعر تبعد أكثر من ١٥٪ عن آخر سعر معروف تُرفض تلقائيًا — يحمي من كشطٍ خاطئ يبدو معقولًا بعد تغيّر بنية المصدر.
- 11
مؤشر «مباشر» صادق
لا يُضيء أخضر إلا إذا كان السعر محليًّا وحديثًا فعلًا، ويصارح المستخدم إن كان عالميًا أو قديمًا.
ضمانات على مستوى المنصّة
الحماية في الطبقة التي لا يمكن تجاوزها، لا في الواجهة وحدها.
اقرأ التفاصيلإخفاء التفاصيل7 نقطة
قيود على مستوى قاعدة البيانات
١١ قيد CHECK تمنع الكميات والمبالغ السالبة.
مفاتيح عدم التكرار
تمنع إنشاء فاتورة أو شحنة مرتين عند الضغط المزدوج أو ضعف الشبكة.
إبطال الجلسات من الجذر
رقم إصدار للجلسة في قاعدة البيانات، وزيادته تُسقط كل الرموز المُصدَرة سابقًا على كل الأجهزة فورًا.
حدّ لمحاولات الدخول
بنافذة زمنية على المُدخَل وعلى عنوان الشبكة معًا.
فهرسة مبنيّة على الاستعلام الفعلي
٣٩ فهرسًا وقيد تفرّد على الأعمدة التي يُبحث ويُفرز بها فعلًا، ورقم مسلسل دائم للدفتر يُعرض بلا إعادة حساب مكلفة مع كل عرض.
نسخ احتياطي تلقائي يومي
إلى التخزين السحابي مع الاحتفاظ بآخر ٦٠ نسخة، واسترجاع من داخل النظام، وتصدير كامل بضغطة زر.
سجلّ تدقيق
يقيّد من نفّذ أي عملية حسّاسة ومتى وعلى أي كيان — بأفضل جهد، فلا يُعطّل فشلُ التقييد العمليةَ نفسها.
العربية والاستجابة
الواجهة عربية بالكامل واتجاهها من اليمين لليسار في بنيتها، لا بانعكاس بصري — والنظام يعمل على الهاتف بنفس القدرات.
اقرأ التفاصيلإخفاء التفاصيل4 نقطة
- التنقّل والجداول والنماذج والمستندات المطبوعة كلها مبنية على dir="rtl" وخصائص منطقية (padding-inline-start بدل padding-left).
- الأرقام والتواريخ والأكواد مُجبَرة على الاتجاه اللاتيني داخل النص العربي حتى لا تنقلب.
- الجداول العريضة تنزلق داخل حاويتها بدل أن تكسر الصفحة، والتنقّل يصير قائمة جانبية منزلقة.
- وضع ليلي (الافتراضي) ونهاري مبنيّان على متغيّرات لونية، ويُحفظ الاختيار للمستخدم.
المبيعات على الموبايل
الحوكمة وإمكان التتبّع
اقرأ التفاصيلإخفاء التفاصيل
دوران بصلاحيات مختلفة: المالك يملك الحذف والاسترجاع وإدارة المستخدمين والتحويل بين الخزائن؛ الموظّف يشغّل اليوم (بيع، تحصيل، شحنات، مصروفات) ولا يملك شيئًا من ذلك. نفس الرابط يعطي واجهتين مختلفتين — الصلاحية تحكم ما يُعرض لا ما يُخفى بصريًا فقط.
سجلّ العمليات يعرض الوقت والمستخدم ونوع العملية وبيانًا مختصرًا.
كل رقم قابل للتتبّع لمصدره: من المديونية إلى الفاتورة، ومن الفاتورة إلى دفعة المخزون، ومن الدفعة إلى الشحنة، ومن الشحنة إلى مصاريف تخليصها.
الشاشات
32 شاشةالبرنامج حقيقي، والبيانات الظاهرة فيه ليست كذلك. كل الأسماء والأرقام في هذه الصور بيانات تجريبية مُولَّدة: الموردون والعملاء والمخازن والحسابات البنكية وأرقام الهاتف والأرقام الضريبية والمبالغ وأسعار الذهب — كلها متخيّلة، وقد أُنشئت على قاعدة بيانات محلية معزولة تمامًا لا صلة لها بقاعدة الإنتاج، ولم تُقرأ قاعدة الإنتاج ولا مرة. ما هو حقيقي: البرنامج نفسه (بناء إنتاجي فعلي بشاشاته وحساباته وسلوكه كما هي)، واسم النشاط وشعاره، وأسماء الأصناف المأخوذة من كتالوج النشاط الحقيقي، وأرقام حجم النظام المقيسة من المستودع، ونتيجة الاختبارات.
الدورة الكاملة — من الطلب إلى التحصيل
الاستيراد والشحنات
البيع المربوط بالذهب
العملاء والموردون
الدفتر والخزائن
الحوكمة والصلاحيات
المستندات المطبوعة
الدخول
الوضع النهاري
الأثر
| قبل | بعد |
|---|---|
| تكلفة الشحنة تُجمع يدويًا بعد انتهائها | التكلفة النهائية للوحدة تظهر لحظيًا مع كل مصروف يُقيَّد |
| ربط الفاتورة بالذهب على الآلة الحاسبة وإعادة الحساب مع كل دفعة | التحويل والسداد يحدثان تلقائيًا، وكل سعر مستخدم محفوظ كسجلّ ثابت |
| بيانات موزّعة على دفاتر وملفات إكسل متفرقة | نسخة واحدة صادقة: ٢١ جدولًا مترابطًا خلف ١٨ شاشة |
| معرفة المتأخرين تحتاج مراجعة الدفتر | المتأخرون يُبرزون تلقائيًا بعدد أيام التأخير ويُرتَّبون أولًا |
| رصيد الخزنة تقدير ذهني | رصيد مشتقّ من الحركات نفسها مع كشف حساب متسلسل يُراجَع سطرًا سطرًا |
| نسخة احتياطية عند التذكّر | نسخة تلقائية كل فجر مع الاحتفاظ بآخر ٦٠ |
هذا الجدول يصف تغيّر القدرة (ما صار النظام قادرًا عليه) لا مكاسب مقيسة. لا يوجد قياس قبليّ/بعديّ موثّق لتوفير الوقت أو تقليل الأخطاء، فلم نذكر أي نسبة.
الأرقام
حجم النظام
- شاشات
- 18
- مسارات خدمة (API)
- 7
- جداول قاعدة البيانات
- 21
- هجرات مطبَّقة
- 8
- فهارس وقيود تفرّد
- 39
- قيود CHECK على القاعدة
- 11
- إجراءات خادم (في ١٠ ملفات)
- 44
- مكوّنات واجهة
- 19
- أسطر شيفرة التطبيق
- 12,318
- أسطر نموذج البيانات
- 424
- نصوص عربية فريدة بالواجهة
- 898
- اختبارات آلية ناجحة (في ٤ ملفات)
- 27
مقيسة من المستودع بأوامر قابلة لإعادة التنفيذ، لا مُقدَّرة. تاريخ القياس: ٣٠ يوليو ٢٠٢٦.
نتيجة تشغيل الاختبارات
- goldProvider
- 5
- goldSettlement
- 7
- landedCost
- 9
- formatQty
- 6
- مدة التشغيل
- 679 ms
npx vitest run، ٣٠ يوليو ٢٠٢٦: ٤ ملفات ناجحة و٢٧ اختبارًا ناجحًا. ما تغطّيه الاختبارات: محرّك تكلفة الاستيراد، ومحرّك الربط بالذهب والسداد، ومزوّد سعر الذهب، وتنسيق الكميات.
أحجام مجموعة البيانات التجريبية
- موردون
- 6
- عملاء
- 14
- مخازن
- 3
- خزائن (نقدية وبنكية)
- 3
- شحنات
- 14
- دفعات مخزون
- 10
- حركات مخزون
- 53
- فواتير موردين
- 14
- فواتير بيع
- 28
- سطور بيع
- 41
- دفعات عملاء
- 30
- قيود الدفتر
- 127
- أيام أسعار ذهب
- 151
- قيود سجلّ التدقيق
- 20
- تصنيفات
- 25
ليست أرقام تشغيل حقيقية — هي حجم البيانات المُولَّدة التي تظهر في الصور، ومذكورة هنا للشفافية فقط، ومقيسة بـ SELECT count(*) على قاعدة العرض المحلية.
التالي




