Files changed (1) hide show
  1. README.md +348 -0
README.md ADDED
@@ -0,0 +1,348 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ أريد إنشاء تطبيق محاسبي احترافي يعمل على الهاتف، متعدد المستخدمين، باللغة العربية، ويدعم صلاحيات مختلفة للمستخدمين، ويكون مناسبًا للعمل على Android مبدئيًا مع إمكانية دعم iPhone لاحقًا.
2
+
3
+ المطلوب بناء نظام كامل يتضمن:
4
+ - تطبيق هاتف
5
+ - قاعدة بيانات احترافية
6
+ - تسجيل دخول
7
+ - صلاحيات مستخدمين
8
+ - شاشات إدخال
9
+ - تقارير
10
+ - حسابات تلقائية
11
+ - ربط بين الجداول
12
+ - دعم إدخال 100 سطر في الصفحة الواحدة
13
+
14
+ ## أولًا: متطلبات عامة
15
+ 1. التطبيق باللغة العربية بالكامل.
16
+ 2. التصميم من اليمين إلى اليسار.
17
+ 3. يدعم أكثر من مستخدم.
18
+ 4. يوجد نظام تسجيل دخول باسم مستخدم وكلمة مرور.
19
+ 5. يوجد صلاحيات للمستخدمين:
20
+ - مدير النظام
21
+ - محاسب
22
+ - مدخل بيانات
23
+ - مستخدم عرض فقط
24
+ 6. يجب تسجيل اسم المستخدم الذي أضاف أو عدل السجلات.
25
+ 7. يجب تسجيل تاريخ ووقت الإضافة والتعديل.
26
+ 8. التطبيق يعمل على الهاتف.
27
+ 9. يجب أن تكون الواجهة سهلة وواضحة وتناسب شاشات الجوال.
28
+
29
+ ## ثانيًا: القوائم الرئيسية المطلوبة
30
+ النظام يجب أن يحتوي على 10 قوائم رئيسية:
31
+ 1. المبيعات
32
+ 2. المنصرفات
33
+ 3. المستلم
34
+ 4. قائمة الرعية
35
+ 5. قائمة المشتريين
36
+ 6. لوحة التحكم
37
+ 7. التقارير اليومية
38
+ 8. التقارير الشهرية
39
+ 9. كشف حساب الرعوي
40
+ 10. الإعدادات
41
+
42
+ ---
43
+
44
+ ## ثالثًا: شاشة المبيعات
45
+ يجب إنشاء شاشة مبيعات تدعم إدخال 100 سطر في العملية الواحدة.
46
+
47
+ ### أعمدة الإدخال:
48
+ 1. العدد
49
+ 2. السعر
50
+ 3. المشتري
51
+ 4. الرعوي
52
+ 5. التاريخ
53
+
54
+ ### أعمدة محسوبة تلقائيًا:
55
+ 6. الجملة = العدد × السعر
56
+ 7. الرعوي بدون تكرار لنفس تاريخ الإدخال
57
+ 8. إجمالي المبلغ الذي له لنفس تاريخ الإدخال
58
+ 9. الدلالة = إجمالي المبلغ الذي له × .05
59
+ 10. يتم تقريب الدلالة إلى أقرب 100
60
+ 11. الباقي = إجمالي المبلغ الذي له - الدلالة
61
+ 12. الواصل = مجموع المنصرفات من نوع "واصل" إذا كان:
62
+ - المنصرف له = اسم الرعوي
63
+ - التاريخ في المنصرفات = تاريخ البيع
64
+ 13. الصافي = الباقي - الواصل
65
+ 14. المشتري بدون تكرار لنفس تاريخ الإدخال
66
+ 15. إجمالي المبلغ الذي عليه لنفس التاريخ
67
+ 16. الدلالة على المشتري = إجمالي المبلغ الذي عليه × .031
68
+ 17. يتم تقريبها إلى أقرب 100
69
+ 18. إجمالي الذي عليه مع الدلالة = إجمالي المبلغ الذي عليه + الدلالة على المشتري
70
+
71
+ ### شروط شاشة المبيعات:
72
+ - لا يسمح بحفظ صف بدون عدد
73
+ - لا يسمح بحفظ صف بدون سعر
74
+ - لا يسمح بحفظ صف بدون مشتري
75
+ - لا يسمح بحفظ صف بدون رعوي
76
+ - لا يسمح بحفظ صف بدون تاريخ
77
+ - الجملة تحسب تلقائيًا
78
+ - العدد والسعر أرقام موجبة فقط
79
+
80
+ ---
81
+
82
+ ## رابعًا: شاشة المنصرفات
83
+ يجب إنشاء شاشة المنصرفات وتدعم إدخال 100 سطر في العملية الواحدة.
84
+
85
+ ### الأعمدة:
86
+ 1. المبلغ
87
+ 2. المنصرف له
88
+ 3. نوع المنصرف
89
+ 4. التفاصيل
90
+ 5. التاريخ
91
+
92
+ ### نوع المنصرف يكون قائمة منسدلة تحتوي على:
93
+ - واصل
94
+ - نقد
95
+ - حساب
96
+ - واصل بدون
97
+ - دين
98
+
99
+ ### شروط شاشة المنصرفات:
100
+ - المبلغ إجباري
101
+ - المنصرف له إجباري
102
+ - نوع المنصرف إجباري
103
+ - التاريخ إجباري
104
+
105
+ ---
106
+
107
+ ## خامسًا: شاشة المستلم
108
+ يجب إنشاء شاشة المستلم بالأعمدة التالية:
109
+ 1. المبلغ
110
+ 2. المستلم منه
111
+ 3. التفاصيل
112
+ 4. تاريخ الشراء
113
+ 5. تاريخ الاستلام
114
+ 6. ملاحظة
115
+
116
+ ### شروط شاشة المستلم:
117
+ - المبلغ إجباري
118
+ - المستلم منه إجباري
119
+ - تاريخ الشراء إجباري
120
+ - تاريخ الاستلام إجباري
121
+
122
+ ### الربط:
123
+ يتم ربط المستلم مع المبيعات بواسطة:
124
+ - اسم المشتري
125
+ - تاريخ الشراء = تاريخ البيع
126
+
127
+ ---
128
+
129
+ ## سادسًا: قائمة الرعية
130
+ يجب إنشاء شاشة أو تقرير باسم "قائمة الرعية".
131
+
132
+ ### تحتوي على:
133
+ - حقل اسم الرعوي
134
+ - حقل تاريخ بداية البحث
135
+
136
+ ### تعرض النتائج من تاريخ البداية إلى تاريخ اليوم
137
+
138
+ ### الأعمدة:
139
+ 1. الباقي من صفحة المبيعات
140
+ 2. الواصل من المنصرفات لنفس الرعوي ونفس التاريخ ونوع المنصرف = واصل
141
+ 3. الصافي = الباقي - الواصل
142
+ 4. الذي مع الرعوي = مجموع المنصرفات من الأنواع:
143
+ - واصل بدون
144
+ - حساب
145
+ - دين
146
+ 5. تاريخ المنصرف
147
+ 6. التفاصيل
148
+
149
+ ### صافي الحساب أعلى الصفحة:
150
+ صافي الحساب = مجموع الباقي - مجموع الواصل - مجموع الذي مع الرعوي
151
+
152
+ ---
153
+
154
+ ## سابعًا: قائمة المشتريين
155
+ يجب إنشاء قائمة بالمشتريين تحتوي على الأعمدة التالية:
156
+ 1. المشتري
157
+ 2. المبلغ
158
+ 3. التاريخ
159
+ 4. المبلغ المسلم
160
+ 5. الباقي
161
+
162
+ ### مصدر البيانات:
163
+ - المشتري من قائمة المبيعات بدون تكرار
164
+ - المبلغ = إجمالي الذي عليه مع الدلالة من صفحة المبيعات
165
+ - التاريخ = تاريخ البيع
166
+ - المبلغ المسلم = مجموع المبالغ من شاشة المستلم إذا كان:
167
+ - المستلم منه = اسم المشتري
168
+ - تاريخ الشراء = تاريخ البيع
169
+ - الباقي = المبلغ - المبلغ المسلم
170
+
171
+ ---
172
+
173
+ ## ثامنًا: لوحة التحكم
174
+ يجب إنشاء لوحة تحكم تعرض:
175
+ - إجمالي المبيعات اليوم
176
+ - إجمالي المنصرفات اليوم
177
+ - إجمالي المستلم اليوم
178
+ - صافي اليوم
179
+ - عدد عمليات البيع
180
+ - عدد عمليات المنصرفات
181
+ - عدد عمليات الاستلام
182
+ - عدد المستخدمين النشطين
183
+
184
+ ---
185
+
186
+ ## تاسعًا: التقارير اليومية
187
+ إنشاء تقارير يومية تشمل:
188
+ - تقرير المبيعات اليومية
189
+ - تقرير المنصرفات اليومية
190
+ - تقرير المستلم اليومي
191
+ - تقرير صافي اليوم
192
+ - إمكانية الطباعة
193
+ - إمكانية التصدير إلى PDF
194
+ - إمكانية التصدير إلى Excel
195
+
196
+ ---
197
+
198
+ ## عاشرًا: التقارير الشهرية
199
+ إنشاء تقارير شهرية تشمل:
200
+ - إجمالي المبيعات الشهرية
201
+ - إجمالي الدلالة
202
+ - إجمالي الباقي
203
+ - إجمالي الواصل
204
+ - إجمالي المستلم
205
+ - صافي الشهر
206
+ - مقارنة بين الأشهر
207
+
208
+ ---
209
+
210
+ ## حادي عشر: كشف حساب الرعوي
211
+ إنشاء كشف حساب تفصيلي للرعوي يحتوي على:
212
+ - اسم الرعوي
213
+ - من تاريخ
214
+ - إلى تاريخ
215
+ - إجمالي المبيعات
216
+ - إجمالي الدلالة
217
+ - إجمالي الباقي
218
+ - إجمالي الواصل
219
+ - إجمالي الذي مع الرعوي
220
+ - صافي الحساب
221
+ - تفاصيل الحركات
222
+
223
+ ---
224
+
225
+ ## ثاني عشر: الإعدادات
226
+ إنشاء شاشة إعدادات تحتوي على:
227
+ - إدارة المستخدمين
228
+ - تغيير كلمة المرور
229
+ - تحديد نسبة دلالة الرعوي
230
+ - تحديد نسبة دلالة المشتري
231
+ - تحديد قيمة التقريب
232
+ - تغيير اسم النشاط
233
+ - النسخ الاحتياطي
234
+ - استرجاع النسخة الاحتياطية
235
+
236
+ ### القيم الافتراضية:
237
+ - نسبة دلالة الرعوي = .05
238
+ - نسبة دلالة المشتري = .031
239
+ - التقريب = أقرب 100
240
+
241
+ ---
242
+
243
+ ## ثالث عشر: قاعدة البيانات
244
+ أريد قاعدة بيانات احترافية قابلة للتوسع، وتعتمد على الجداول التالية:
245
+
246
+ ### الجداول الأساسية:
247
+ 1. users
248
+ 2. sales_batches
249
+ 3. sales_items
250
+ 4. expenses
251
+ 5. receipts
252
+ 6. settings
253
+ 7. activity_logs
254
+
255
+ ### الجداول الإضافية الاحترافية:
256
+ 8. buyers
257
+ 9. raawis
258
+
259
+ ### متطلبات قاعدة البيانات:
260
+ - استخدام مفاتيح أساسية Primary Keys
261
+ - استخدام Foreign Keys
262
+ - إنشاء العلاقات بين الجداول
263
+ - استخدام فهارس Indexes لتحسين الأداء
264
+ - تخزين كلمات المرور بشكل مشفر
265
+ - حفظ created_at و updated_at
266
+ - تصميم القاعدة بحيث تكون قابلة للتوسع
267
+
268
+ ### العلاقات:
269
+ - sales_batches ترتبط مع users
270
+ - sales_items ترتبط مع sales_batches
271
+ - sales_items ترتبط مع users
272
+ - expenses ترتبط مع users
273
+ - receipts ترتبط مع users
274
+ - activity_logs ترتبط مع users
275
+ - يفضل استخدام buyers و raawis لتوحيد الأسماء بدل الاعتماد على النصوص الحرة
276
+
277
+ ---
278
+
279
+ ## رابع عشر: القواعد الحسابية الرسمية
280
+ 1. الجملة = العدد × السعر
281
+ 2. إجمالي المبلغ الذي له = مجموع الجملة لنفس الرعوي ولنفس التاريخ
282
+ 3. دلالة الرعوي = إجمالي المبلغ الذي له × .05
283
+ 4. يتم تقريب الدلالة إلى أقرب 100
284
+ 5. الباقي = إجمالي المبلغ الذي له - الدلالة
285
+ 6. الواصل = مجموع المنصرفات من نوع "واصل" لنفس الرعوي ولنفس التاريخ
286
+ 7. الصافي = الباقي - الواصل
287
+ 8. إجمالي المبلغ الذي عليه = مجموع الجملة لنفس المشتري ولنفس التاريخ
288
+ 9. دلالة المشتري = إجمالي المبلغ الذي عليه × .031
289
+ 10. يتم تقريبها إلى أقرب 100
290
+ 11. إجمالي الذي عليه مع الدلالة = إجمالي المبلغ الذي عليه + دلالة المشتري
291
+ 12. المبلغ المسلم = مجموع المستلم لنفس المشتري ولنفس تاريخ الشراء
292
+ 13. الباقي للمشتري = المبلغ - المبلغ المسلم
293
+ 14. صافي حساب الرعوي = مجموع الباقي - مجموع الواصل - مجموع الذي مع الرعوي
294
+
295
+ ---
296
+
297
+ ## خامس عشر: قواعد التقريب
298
+ اعتمد التقريب الرياضي إلى أقرب 100:
299
+ - 149 تصبح 100
300
+ - 150 تصبح 200
301
+ - 251 تصبح 300
302
+
303
+ ---
304
+
305
+ ## سادس عشر: متطلبات الواجهة
306
+ - واجهات عربية حديثة وواضحة
307
+ - دعم الاتجاه من اليمين إلى اليسار
308
+ - جداول سهلة الاستخدام على الهاتف
309
+ - أزرار كبيرة ومناسبة للمس
310
+ - دعم البحث والتصفية
311
+ - دعم إدخال 100 سطر بسهولة
312
+ - إظهار رسائل خطأ وتنبيه واضحة
313
+
314
+ ---
315
+
316
+ ## سابع عشر: متطلبات الأمان
317
+ - تسجيل دخول آمن
318
+ - كلمات مرور مشفرة
319
+ - صلاحيات حسب نوع المستخدم
320
+ - منع الوصول غير المصرح
321
+ - تسجيل العمليات في activity_logs
322
+ - نسخ احتياطي واسترجاع
323
+
324
+ ---
325
+
326
+ ## ثامن عشر: المطلوب من التنفيذ
327
+ أريد إخراج المشروع بالشكل التالي:
328
+ 1. تحليل النظام
329
+ 2. تصميم قاعدة البيانات
330
+ 3. SQL كامل للجداول والعلاقات
331
+ 4. Views أو Queries للتقارير
332
+ 5. API إذا لزم
333
+ 6. تصميم واجهات التطبيق شاشة بشاشة
334
+ 7. بناء التطبيق باستخدام Flutter
335
+ 8. backend احترافي باستخدام Laravel API + MySQL
336
+ 9. كود منظم وقابل للتوسع
337
+ 10. شرح طريقة التشغيل
338
+
339
+ ---
340
+
341
+ ## تاسع عشر: ملاحظات مهمة
342
+ - المقصود بعدم التكرار هو عدم التكرار في العرض والتقرير، وليس منع الإدخال
343
+ - يجب أن يكون النظام مرنًا وقابلًا للتعديل لاحقًا
344
+ - يجب الحفاظ على الدقة المحاسبية
345
+ - يجب أن تكون جميع النتائج المحسوبة دقيقة ومحدثة عند أي تعديل أو حذف
346
+ - أريد النظام بصيغة احترافية قابلة للتسليم والتنفيذ مباشرة
347
+
348
+ أنشئ النظام بالكامل بناءً على هذه المواصفات، وابدأ أولًا بتصميم قاعدة البيانات والجداول والعلاقات، ثم انتقل إلى الواجهات والمنطق الحسابي.