نظام تخطيط موارد للتوزيع بعلامة بيضاء
كل المشاريع

نظام تخطيط موارد للتوزيع بعلامة بيضاء

Electronics Distribution

2026 - الآن

5
وحدات وظيفية
Sage
نظام قديم مستبدل
2
طرق تقييم المخزون

عن المشروع

نظام تخطيط موارد يغطي المالية والبيع والشراء والمخزون وهيكل الشركة، مبني على القواعد التي يعمل بها التوزيع في تونس فعلًا. نُشر أولًا ليحل محل تركيبة Sage لم تعد تكفي، دون توقف النشاط اليومي.

دوري: محلّل وظيفي ومطوّر full stack. كتبت كرّاس الشروط لكل وحدة قبل بنائها، ثم قدت الترحيل من النظام القديم.

بنيت هذا النظام ليحل محل تركيبة Sage لم تعد تتسع لدى موزّع إلكترونيات تونسي. تمارس الشركة التوزيع والبيع بالتجزئة والتركيب في آن واحد، وقد تحوّل كل التفاف على النظام القديم، من جداول لمتابعة رصيد العملاء، ومطابقة بنكية يدوية، وجرد مخزون منفصل، إلى كلفة يومية. وكتبت كرّاس الشروط لكل وحدة قبل بنائها، ولهذا يطبّق النظام القواعد التي يعمل بها المجال فعلًا لا تلك التي تفترضها حزمة جاهزة.

يغطي النظام خمسة مجالات وظيفية. تتولى المالية الفواتير والمقبوضات والمدفوعات والمطابقة والشيكات والكمبيالات والخصم من المنبع ومصاريف الموظفين والتسوية البنكية وحجب الائتمان. ويدير البيع سلسلة كاملة من عرض السعر إلى الطلب إلى سند التسليم إلى الفاتورة، مع إشعارات الدائن وقواعد التسعير ومسار علاقات العملاء. ويضيف الشراء المطابقة الثلاثية بين أمر الشراء والاستلام وفاتورة المورّد. ويحمل المخزون مستودعات متعددة وتتبّع الدفعات وتواريخ الصلاحية وتقييم المتوسط المرجّح وFIFO والحجوزات وقوائم المكوّنات.

هذه القواعد تخصّ قطاع التوزيع في تونس لا شركة بعينها: فالخصم من المنبع والمطابقة والمطابقة الثلاثية والتقييم المزدوج للمخزون هي نفسها أينما عمل القطاع، وهو ما يجعل الأساس جديرًا بإعادة النشر لا بإعادة الكتابة. وتقوم البنية على React وTypeScript مع Vite، وواجهة برمجية على Firebase Functions، وPostgreSQL على Cloud SQL. وأوليت عملية التحوّل عناية توازي عناية الوظائف: تحليل فجوة مقابل النظام القديم، وخطة ترحيل، ودليل تحوّل تتيح مغادرة Sage دون فقدان السجل. كما يستقبل النظام طلبات متجر إلكتروني، فيتقاسم الموقع والمكتب الخلفي مخزونًا واحدًا وبطاقة عميل واحدة.

أهم الميزات

  • 💰 وحدة المالية: الفواتير والمقبوضات والمدفوعات والمطابقة والشيكات والكمبيالات والخصم من المنبع والتسوية البنكية في دفتر واحد.
  • 🧾 سلسلة من العرض إلى الفاتورة: يتسلسل عرض السعر والطلب وسند التسليم والفاتورة، مع معالجة الإشعارات والمرتجعات كاملة.
  • 🔍 شراء بمطابقة ثلاثية: تُطابق أوامر الشراء والاستلام وفواتير المورّدين قبل صرف أي دفعة.
  • 📦 تقييم مزدوج للمخزون: يعمل المتوسط المرجّح وFIFO جنبًا إلى جنب، مع تتبّع الدفعات وتواريخ الصلاحية والحجوزات والتحويلات بين المستودعات.
  • 🏗️ قوائم المكوّنات: تستهلك المنتجات المركّبة مكوّناتها، فتبقى أطقم التركيب مطابقة للمخزون الفعلي.
  • 🚦 مراقبة ائتمان آلية: تحجب سقوف العملاء الطلبات تلقائيًا، بديلًا عن الجدول الذي يحدّثه الفريق يدويًا.
  • 🔁 عدّة ترحيل من Sage: تحليل فجوة وخطة ترحيل ودليل تحوّل تتيح مغادرة النظام القديم دون فقدان السجل.
  • 🌐 استقبال طلبات الويب: تصل طلبات المتجر الإلكتروني مباشرة إلى النظام، بمخزون واحد وبطاقة عميل واحدة.
  • 🔐 مصفوفة الحالات والصلاحيات: تحدّد كل وحدة من يملك التصديق أو التعديل أو الاطلاع فقط على كل نوع مستند.
  • 🚦 الحالة اليوم: يشغّله موزّع واحد في الإنتاج. والأساس الوظيفي يخصّ القطاع لا شركة بعينها، فيكون النشر الثاني عملية تأطير لدليل الحسابات وقواعد التسعير، لا إعادة بناء.

مشكلات وحلول

المشكلة: ينتهي موزّع يعمل على تركيبة Sage قديمة محاطًا بجداول بيانات. فمراقبة الائتمان والتسوية البنكية وجرد المخزون خارج النظام، حتى صار الرقم الواحد موجودًا في ثلاثة مواضع لا يتطابق أي منها.

الحل: كتبت كرّاس الشروط لكل وحدة قبل كتابة أي كود، ثم بنيت النظام حول قواعد العمل الحقيقية. صارت سقوف الائتمان والمطابقة والتقييم تجري داخل النظام، وينقل دليل تحوّل موثّق الشركةَ بعيدًا عن Sage دون فقدان السجل.

المشكلة: تُبنى حزم تخطيط الموارد العامة على قواعد لا تطابق التوزيع في تونس، فيُضاف الخصم من المنبع والمطابقة والتقييم المزدوج محليًا حتى تصير الإضافات هي النظام الفعلي. والانطلاق من الصفر في كل مرة هو ما يجعل كل موزّع يدفع ثمن الوحدات نفسها مرتين.

الحل: تشفّر الوحدات قواعد القطاع لا عادات شركة واحدة، وهو ما يتيح للأساس نفسه خدمة موزّع آخر. أما ما يبقى خاصًا بكل نشر فهو دليل الحسابات وقواعد التسعير وبيانات النظام القديم، وتُؤطَّر لكل مشروع بدل أن تُعاد كتابتها.

الحزمة التقنية

React
TypeScript
PostgreSQL
Firebase
Node.js
Tailwind CSS
REST APIs