العودة للأرشيف
دراسة حالةأنظمة خلفية

نظام مطاحن شاكرين لإدارة عمليات تصفية الذهب

منصة تشغيلية ومالية مركزية بُنيت لرقمنة دورة العمل الكاملة في مطاحن وتصفية الذهب — من الزبائن وجلسات الطحن إلى المخزون والأجور والتحصيلات والمحاسبة وصافي الربح النهائي.

الدور
بناء البنية الخلفية وتطوير النظام بالكامل
الجدول الزمني
نظام فعلي
الصناعة
عمليات طحن وتصفية الذهب
الحالة
يعمل في الإنتاج
shakirin-mills-gold-refining-system
نظام مطاحن شاكرين لإدارة عمليات تصفية الذهب
01نظرة عامة

ما هذا النظام

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

02المشكلة

ما الذي احتجنا حله

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

03الحل

كيف أطلقناه

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

04المعمارية

كيف يُوصل النظام

النظام مبني على Laravel كواجهة REST خلفية مع عميل متصفح خفيف، والقواعد المالية تعيش في طبقة أعمال مستقلة لا داخل الـControllers. الدورة التشغيلية أدناه هي العمود الفقري للمنتج: كل مرحلة تكتب في نفس المصدر المالي، ولهذا لا يمكن أن يختلف رقم بين لوحة التحكم والتقرير الإداري وتقرير المحاسب والدفتر المالي.

تدفق البيانات
01
الزبون والطحن

سجل الزبون يفتح جلسة طحن على ماكينة محددة، بعدد الزكائب وحساب الطحن الخاص بتلك الجلسة.

02
الذهب والتصفية

يُسجَّل الذهب الناتج بالجرام، ويُحسب منه حساب التصفية، ويُطبَّق خصم الزبون للوصول إلى صافي العميل.

03
استيعاب التكلفة

تُحمَّل المصروفات التشغيلية المباشرة واستهلاك المخزون والصيانة على الجلسة ليعكس ربحها التكلفة الحقيقية.

04
الأجور والتحصيلات

تُستحق الرواتب خلال الشهر وتُسحب تحصيلات الشركة من ربح متاح مُتحقق منه، وكلاهما ينزل في نفس الدفتر.

05
المحاسبة والربح

الدفتر المالي وتقرير المحاسب والتقرير الإداري تصل جميعها إلى صافي ربح واحد للشركة عن الفترة المحددة.

05المنصة التقنية

اختيارات هندسية

Frontend
HTML5CSS3Vanilla JavaScript
Backend
Laravel 12PHPMySQLREST APILaravel SanctumPoliciesForm RequestsAPI ResourcesServicesActionsاختبارات آلية
تكاملات
مصادقة عبر جلسة Sanctumتصدير CSVدعم العربية والإنجليزية والفرنسية
البنية التحتية
VPSNginxPHP-FPM socket مخصصقاعدة بيانات MySQL مخصصةHTTPS / SSLGitHub Actions
06المعرض

في الواقع

لوحة التحكم الرئيسية — تشغيل الطحن وحساب الخدمة ونتائج الشركة خلال الفترة المحددة
دورة الطحن — سجل الجلسات بالذهب والحسابات والخصم والمصروفات وصافي الربح
إدارة الزبائن — سجل عملاء قابل للبحث مع إحصاءات كل عميل
سجل آلات الطحن — الحالة ووضع الصيانة وسبب التعطيل المذكور
التقرير الإداري — اختيار الفترة والحركات المالية الشاملة وتصدير CSV
الدفتر المالي الموحد — كل حركة بمصدرها والمنفذ والدور والأثر الصافي
تقرير المحاسب — جدول لكل زبون بالذهب والتصفية والخصم وبيانات المجهر والملاحظات
الأجور — الراتب الشهري واليومي وأيام العمل والمستحق وحالة الدفع
الإعدادات المالية — سعر الزكيبة وسعر التصفية وقواعد الخصم والبنود الإضافية
سجل الصيانة — تكاليف صيانة مستقلة مصنفة حسب النوع
المخزون — قائمة الأصناف بالكميات والحد الأدنى وتكلفة الوحدة وقيمة المخزون
إدارة المستخدمين — الحسابات والأدوار والحالة وآخر دخول
إضافة مستخدم — الدور والحالة وسياسة كلمة المرور المفروضة عند الإنشاء
الإعدادات — اسم المطحن والمظهر ومصدر البيانات عبر Laravel API وجلسة Sanctum
سجل التدقيق — سجل للعرض فقط للعمليات مع المنفذ والنوع والعنوان
01 / 15
08أنظمة Backend

الخدمات والبيانات

المحرك المالي الموحد

طبقة مالية مركزية بدل حسابات موزعة داخل الـControllers والواجهة. تحسب إيراد الطحن، وقيمة التصفية، والخدمات، والخصومات، وصافي مستحق العميل، والمصروفات التشغيلية، وتكلفة المخزون، والصيانة، والأجور، والتعديلات اليدوية، وتحصيلات الشركة، وربح الطحن، وصافي ربح الشركة النهائي — فتقرأ كل لوحة وكل تقرير نفس الحساب.

إدارة عمليات الطحن

دورة حياة الجلسة تشمل الزبون، وماكينة الطحن، وعدد الزكائب، وكمية الذهب، وتكلفة الطحن، وتكلفة التصفية، وخصم الزبون، والمصروفات التشغيلية، واستهلاك المخزون، وصافي العميل، وربح الجلسة.

خدمة الأجور

العاملون، والراتب الشهري، وتاريخ بداية العمل، والأجر اليومي المشتق، وعدد أيام العمل، والراتب المستحق، وحالة الدفع أو التعليق. الاستحقاق يُحسب ولا يُدخل يدويًا.

تحصيلات الشركة

يُتحقق من التحصيل مقابل ربح الشركة المتاح قبل تسجيله، ويُحفظ مع المستخدم المنفذ والتاريخ والوقت والربح قبل وبعد. ويبقى منفصلاً عن المصروفات التشغيلية.

خدمة المخزون

قائمة الأصناف، والكميات الحالية، والحد الأدنى، وحركات المخزون. الاستهلاك يُحسب على الجلسة ليعكس الربح المواد المستخدمة فعليًا.

الصيانة

تكاليف صيانة مستقلة مصنفة حسب النوع — طارئة ودورية وإصلاح — تُتابع بمعزل عن مصروفات الجلسة لكنها تنزل في نفس الدفتر.

سجل التدقيق

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

التحكم في الصلاحيات

صلاحيات مبنية على الأدوار — مدير عام، ومدير، ومحاسب، ومشرف، ومساعد مشرف — مطبقة عبر Policies في لارافيل بحيث يصل كل مستخدم إلى ما يسمح به دوره فقط.

09APIs والتكاملات

الواجهات الخارجية

تكامل
واجهة REST

عميل المتصفح يتعامل مع النظام حصريًا عبر Laravel REST API، مع API Resources تشكّل كل استجابة بحيث لا يعتمد العميل على بنية قاعدة البيانات.

تكامل
مصادقة Sanctum

المصادقة تعمل عبر جلسة Sanctum، مع فرض سياسة كلمة مرور عند إنشاء الحساب وتسجيل أحداث الجلسة في سجل التدقيق.

تكامل
Form Requests وPolicies

التحقق من المدخلات داخل Form Requests والصلاحيات داخل Policies، حتى لا يقبل أي Controller بيانات غير صحيحة أو يعرض سجلاً لا يملك الدور حق الوصول إليه.

تكامل
تصدير CSV

التقرير الإداري وتقرير المحاسب يصدّران بيانات الفترة إلى CSV للأرشفة وللتسليم إلى المحاسبة الخارجية.

10هيكل لوحة التحكم

ما يتحكم به المسؤولون

01
الزبون

الزبون المسجل الذي تنتمي إليه الجلسة، بسجله وإحصاءاته الخاصة.

02
الطحن

جلسة تُفتح على ماكينة، تحمل عدد الزكائب وحساب الطحن.

03
الذهب

الذهب الناتج عن الجلسة مسجلاً بالجرام، أو بلا ذهب إطلاقًا إذا لم تنتج العملية شيئًا.

04
التصفية

حساب التصفية المحسوب من الذهب، ثم مخصومًا منه خصم الزبون إن وُجد.

05
المصروفات

مصروفات تشغيلية مباشرة مرتبطة بالجلسة نفسها بدل تجميعها في نهاية الشهر.

06
المخزون

المواد وقطع الغيار المستهلكة في الجلسة، محسوبة عليها من دفتر حركات المخزون.

07
الأجور

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

08
التحصيلات

تحصيلات الشركة المسحوبة من الربح المتاح، بعد التحقق منها قبل السماح بتسجيلها.

09
المحاسبة

الدفتر المالي وتقرير المحاسب والتقرير الإداري خلال الفترة المختارة.

10
ربح الشركة

الرقم الصافي النهائي للفترة، مشتق من نفس المحرك الذي تقرأ منه كل الشاشات.

11تحديات تم حلها

مشاكل صعبة، تم التعامل معها

الأثر
التحدي 01

تعديل إعداد مالي كان يغيّر العمليات التاريخية وكل تقرير مبني عليها بأثر رجعي.

الحل

تُحفظ الأسعار كلقطة داخل العملية وقت إنشائها، فتُطبَّق تغييرات الإعدادات على المستقبل فقط وتبقى التقارير التاريخية قابلة لإعادة الإنتاج.

الأثر
التحدي 02

نفس الرقم كان معرضًا لأن يُحسب بشكل مختلف في لوحة التحكم والتقرير والدفتر.

الحل

نُقلت كل الحسابات المالية خلف طبقة خدمات واحدة يستدعيها كل مستهلك، فانتفت إمكانية اختلاف شاشتين.

الأثر
التحدي 03

المصروفات التشغيلية واستهلاك المخزون كان من السهل احتسابهما مرتين بين الجلسة والتقرير الشهري.

الحل

تُربط المصروفات والاستهلاك بالجلسة التي تسببت بهما وتتصاعد منها إلى تقارير الفترة، فتُحتسب كل تكلفة مرة واحدة بالضبط.

الأثر
التحدي 04

كان بالإمكان سحب تحصيلات من ربح غير موجود.

الحل

التحصيلات تحسب الربح المتاح أولاً، وترفض أي طلب أكبر منه، وتحفظ الربح قبل وبعد مع المستخدم المنفذ والتوقيت.

12الأداء

مبني ليظل سريعاً

الإجماليات المالية تُحسب في الخادم فيعرض العميل أرقامًا جاهزة بدل حسابها.
فهارس على أعمدة التاريخ والعميل والجلسة التي تُبنى عليها الفلاتر والتقارير.
سجلات مقسمة إلى صفحات وقابلة للفلترة بدل تحميل التاريخ كاملاً في المتصفح.
عميل بلا اعتماديات لا يشحن أي إطار عمل وقت التشغيل.
13UI / UX

التصميم والتفاعل

واجهة مؤسسية بلون الغرافيت والأسود مع لمسة ذهبية واحدة.
وضع ليلي ونهاري قابل للتبديل من الشريط العلوي.
العربية باتجاه RTL إلى جانب الإنجليزية والفرنسية باتجاه LTR، مع حفظ الاختيار لكل مستخدم.
جداول كثيفة البيانات بفلاتر ونوافذ ونماذج متجاوبة منسجمة.
الحالة المالية يحملها اللون والنص معًا — ربح، خسارة، مدفوع، معلق — لا اللون وحده.
14جاهزية الإنتاج

جاهز للإطلاق والتشغيل

منشور على VPS داخل مجلد إنتاج مستقل، معزول عن باقي التطبيقات على نفس الخادم.
قاعدة بيانات MySQL مخصصة وسوكيت PHP-FPM مخصص للتطبيق.
Nginx في المقدمة مع HTTPS / SSL.
نشر آلي من GitHub عبر GitHub Actions.
نسخ احتياطية قبل العمليات الحساسة مع التحقق من سلامة النسخة لا افتراضها.
حمايات على قاعدة بيانات الإنتاج تمنع إعادة الضبط بالخطأ وتحافظ على البيانات الأساسية.
اختبارات آلية تغطي المسارات المالية التي تعتمد عليها التقارير.
15ميزات النظام

ما الذي يفعله

إدارة عمليات الطحن

كل جلسة تسجل الزبون، والماكينة، والزكائب، وكمية الذهب، وتكلفة الطحن، وتكلفة التصفية، وخصم الزبون، والمصروفات التشغيلية، واستهلاك المخزون، وصافي العميل، وربحها الخاص — معروضة في سجل قابل للبحث والفلترة مع تفاصيل كل جلسة.

تقرير المحاسب

واجهة مخصصة للمحاسب تعرض لكل زبون: الطحن، ووزن الذهب، وحساب التصفية، والخصم، والإجمالي، وبيانات المجهر، والملاحظات، يوميًا أو شهريًا، مع ملخص للفترة وتصدير CSV.

الدفتر المالي الموحد

كل حركة مالية تظهر في سجل واحد مع مصدرها — طحن، أو مصروف، أو صيانة، أو أجر، أو تعديل مالي، أو تحصيل شركة — ومع المنفذ والدور والداخل والمصروف والأثر الصافي والمرجع، فيمكن تتبع أي رقم إلى مصدره.

التقارير الإدارية

تقارير يومية وشهرية وسنوية ونطاق تاريخ مخصص تعرض صافي العملاء، والمصروفات التشغيلية، وأرباح الجلسات، والأجور، والصيانة، والتحصيلات، وصافي ربح الشركة النهائي، مع تصدير CSV.

إدارة الأجور

العاملون براتب شهري وتاريخ بداية عمل وأجر يومي مشتق وعدد أيام عمل وراتب مستحق وحالة مدفوع أو معلق، مع ملخص للإجمالي والمدفوع والمتبقي.

إدارة المخزون

قائمة أصناف بالمورد والفئة والوحدة والكمية الحالية والحد الأدنى وتكلفة الوحدة وقيمة المخزون، مع سجل الحركات ومؤشرات النقص ونفاد الرصيد.

إدارة آلات الطحن

تُسجَّل الطواحين برقم وعنوان، ولكل منها حالة — متاحة أو تحت الصيانة أو غير نشطة مع ذكر السبب — وكل جلسة مرتبطة بالماكينة التي نفذتها.

الإعدادات المالية الديناميكية

سعر الزكيبة، وسعر جرام الذهب، وسعر التصفية، وخصومات العملاء، والبنود المالية الإضافية كلها قابلة للتعديل من الإدارة دون تعديل الكود. ويمكن إنشاء البنود وإعادة تسميتها وتسعيرها وتعطيلها.

صلاحيات حسب الدور

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

سجل التدقيق

سجل عمليات للعرض فقط يوثق من نفّذ ومتى ومن أي عنوان وما الذي تغيّر — يغطي الدخول والخروج والأجور والمخزون ونشاط الفترات المحاسبية.

واجهة متعددة اللغات

العربية والإنجليزية والفرنسية، مع اتجاه RTL للعربية وLTR للإنجليزية والفرنسية. واللغة المختارة تُحفظ للمستخدم بدل إعادة ضبطها كل زيارة.

الوضع الليلي والنهاري

واجهة مؤسسية بلون الغرافيت والأسود مع لمسة ذهبية، في وضعين ليلي ونهاري، مبنية على جداول احترافية وبطاقات ونماذج متجاوبة ونوافذ منسجمة.

16قرارات تقنية

لماذا اخترنا ما اخترناه

قرار 01

حفظ لقطة سعرية تاريخية داخل كل عملية.

عند إنشاء جلسة بسعر زكيبة أو سعر ذهب أو سعر تصفية معين، تُحفظ هذه القيم داخل العملية نفسها. وإذا غيّرت الإدارة السعر لاحقًا لا تتغير العملية القديمة، ولا يتغير أي تقرير مبني عليها. بدون ذلك كان تعديل إعداد مالي واحد سيعيد كتابة أشهر من التاريخ بصمت.

قرار 02

محرك مالي مركزي واحد بدل الحساب داخل كل شاشة.

أُبقيت المنطق المالي خارج الـControllers وخارج الواجهة عمدًا. كل مستهلك — لوحة التحكم، والتقرير الإداري، وتقرير المحاسب، والدفتر — يستدعي نفس الخدمات، وهذه هي الطريقة الوحيدة لضمان ألا تختلف شاشتان على رقم.

قرار 03

حسابات مالية بنظام Decimal.

النظام يحسب المال مقابل أوزان الذهب، حيث يتراكم خطأ التقريب في تمثيل الفاصلة العائمة عبر سلسلة من عمليات الضرب والطرح. الحساب بنظام Decimal في الخلفية يحافظ على استقرار الإجماليات عبر سلسلة الطحن والتصفية والخصم والمصروفات.

قرار 04

استحقاق الأجور محسوب لا مُدخل.

يُحسب الراتب المستحق بمعادلة: الراتب الشهري ÷ عدد أيام الشهر × أيام العمل الفعلية، وهو ما يتعامل مع اختلاف أطوال الشهور والسنوات الكبيسة دون حالات خاصة. وبمجرد دفع الراتب تُجمَّد القيمة المستحقة تاريخيًا حتى لا يغيّر شهر لاحق سجلاً مُقفلاً.

قرار 05

التحقق من التحصيلات مقابل الربح المتاح.

يُفحص تحصيل الشركة مقابل الربح المتاح المحسوب قبل السماح بتسجيله، ويُحفظ مع الربح قبل وبعد. هذا يمنع سحب أكثر مما رُبح فعلاً، ويبقي التحصيلات منفصلة عن المصروفات التشغيلية في كل تقرير.

قرار 06

تعطيل البنود المستخدمة بدل حذفها.

لا يمكن حذف بند مالي إلا إذا لم يُستخدم تاريخيًا. وأي بند مرتبط بعملية قائمة يُعطَّل بدلاً من ذلك، حتى تظل السجلات التاريخية قادرة على قراءة بنودها وتبقى التقارير قابلة لإعادة الإنتاج.

قرار 07

العمليات بلا ذهب مدعومة أصلاً.

بعض الجلسات لا ينتج عنها ذهب فعلاً. وبدل إدخال كمية وهمية لإرضاء بنية البيانات، يتعامل النظام مع هذه الحالة مباشرة، فلا تتلوث التقارير بأوزان مخترعة.

قرار 08

JavaScript خالص في الواجهة بدل إطار عمل.

الواجهة عبارة عن جداول ونماذج ونوافذ كثيفة البيانات تعمل عبر REST API. الاعتماد على HTML5 وCSS3 وJavaScript خالص يبقيها خفيفة وبلا اعتماديات؛ وإضافة إطار عمل أمامي كانت ستُدخل خط بناء ووزنًا وقت التشغيل لا يحتاجهما هذا المنتج.

17النتيجة

النتائج

يعمل في الإنتاج
الحالة
العربية · الإنجليزية · الفرنسية
لغات الواجهة
٥
أدوار الصلاحيات
محرك موحد واحد
المصدر المالي
تابع الاستكشاف

دراسات حالة أخرى

تبني شيئاً مشابهاً؟

هيا نحدد نطاق منصتك — لوحة تحكم وتطبيقات موبايل و APIs والمنصة كاملة.

واتساب