اذهب الي المحتوي
أوفيسنا

الردود الموصى بها

قام بنشر

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

الزبون او العميل مشترك في هذه الخدمة شهريا يجدد الاشتراك كل شهر

في يوم ما ومع بداية الشهر وبعد ان سدد الزبون الاشتراك حصل لديه ظرف سفر طارىء لمدة نصف شهر

ويريد التوقف المؤقت .. بمعنى ان لا يتم احتساب ايام سفره

يقول صاحبي : برنامجي يظهر اسماء الزبائن الذين اقترب موعد انتهاء اشتراكهم ( يقارن التاريخ الحالي بتاريخ يوم الاشتراك)

حيث اني عملت طريقة في برنامجي وهي اني اضيف الايام  التي سيتغيب فيها .. الى سجل الاشتراك فلا يظهر الاشعار

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

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

بحيث الزبون يسافر او ينقطع ماء شاء شهر او شهرين او سنة ..

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

يقول : واريد ان اجمع بين الطريقتين اختار منهما ما يناسب الزبون

اخواني واحبتي ..

احببت ان تشاركوني بافكاركم

 

 

قام بنشر

أهلاً وسهلاً بشيخنا الجليل و والدنا الحبيب :wub: ..

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

:signthankspin:

قام بنشر

أسعد الله أوقاتك حبيبنا @ابوخليل 🙂 

الفكرة اللي في بالي هي عمل جدول فرعي تضاف فيه فترة الغياب ويكون فيه حقلين تاريخ [من] - [إلى] .. 

ومن هذين الحقلين يتم احتساب المدة بالأيام ثم تضيفها لعدد الأيام المتبقية .. ويمكن منها استخراج الكثير من البيانات حسب الحاجة 🙂 

 

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

 

وهذه الفكرة قريبة من فكرة كوبونات الخصم أو الأرصدة الإضافية للإجازات أو العروض التجارية التي لها تاريخ بداية ونهاية ... وهكذا والله أعلم 🙂 

قام بنشر
8 ساعات مضت, Foksh said:

أهلاً وسهلاً بشيخنا الجليل و والدنا الحبيب :wub: ..

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

:signthankspin:

شكرا لك .. لا ارغب في تعبك .. يكفيني شرح الفكرة

2 ساعات مضت, Moosak said:

أسعد الله أوقاتك حبيبنا @ابوخليل 🙂 

الفكرة اللي في بالي هي عمل جدول فرعي تضاف فيه فترة الغياب ويكون فيه حقلين تاريخ [من] - [إلى] .. 

ومن هذين الحقلين يتم احتساب المدة بالأيام ثم تضيفها لعدد الأيام المتبقية .. ويمكن منها استخراج الكثير من البيانات حسب الحاجة 🙂 

 

هذه ينوب عنها  اضافة عدد ابام التوقف مسبقا مباشرة  في حقل بجانب تاريخ الاشتراك  ( على اعتبار انها معروفة أو انها هي التي اقرها النظام حسب نوع الاشتراك)

3 ساعات مضت, Moosak said:

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

 

افكر .. كيف يتوقف الزمن .. هل هذا ممكن ؟

يتوقف لفترة محددة لمن فترتهم محددة  .. اما الفترة المفتوحة فيحددها عودة الزبون

جاءتني فكرة وانا اكتب الآن : ( وهي حصر عدد الايام الفعلية لمدة الاشتراك بدلا من المقارنة بين تاريخين)

ما رأيكم ان نجعل الاشتراك انواع : عادي . ممتاز . vip

وبما ان عدد ايام الاشتراك معلومة مسبقا سواء كانت شهرا او سنة .. يكون الاحتساب بعدد توقيعات الحضور ( مع الاخذ بالاعتبار حذف ايام العطل من العدد حيث تكون محسوبة افتراضيا ).. 

هذا بالنسبة للاشتراك الممتاز المفتوح .

بقي الاشتراك العادي .. كيف اتعامل معه .. على فرضية تطبيق الفكرة على الجميع .. حيث ان المشترك العادي توقفه مبني على موافقة المالك

 

قام بنشر
2 ساعات مضت, ابوخليل said:

هذه ينوب عنها  اضافة عدد ابام التوقف مسبقا مباشرة  في حقل بجانب تاريخ الاشتراك  ( على اعتبار انها معروفة أو انها هي التي اقرها النظام حسب نوع الاشتراك)

ميزة الجدول الفرعي أنه يمكنك من تحديد أكثر من فترة إنقطاع حسب ضروف المشترك ..
ومن ثم تجمع عدد الأيام من أكثر من سجل (حسب عدد الإنقطاعات) خلال الفترة التي تحددها (شهريا مثلا) 🙂 

2 ساعات مضت, ابوخليل said:

بقي الاشتراك العادي .. كيف اتعامل معه .. على فرضية تطبيق الفكرة على الجميع .. حيث ان المشترك العادي توقفه مبني على موافقة المالك

أعيدك إلى فكرة الجدول الفرعي 😅

فمن خلالها يمكنك أن تحسب : عدد الأيام - عدد النقاط - عدد الأرصدة - .....   سمها ما شئت

ومن خلالها يمكنك إضافة حقل لتأكيد موافقة المالك أيضا .

قام بنشر

كانت فكرتي في برنامجي سابقاً ، انه يتم تسجيل الحضور من خلال رقم المشترك الغير متكرر . وعند طلب أحد المشتركين ايقاف اشتراكه بشكل مؤقت لأسباب كالسفر مثلاً ، كنت اقوم بتفعيل Pause كحقل موجود في جدول تفاصيل الإشتراك للمشترك ، بحيث انه لنفترض ان المشترك طلب ايقاف عضويته لمدة غير محددة . فمن خلال الزر المسؤول عن تحديث الحقل من No الى Yes لهذا المشترك يتم ايقاف العضوية بحيث لو تم ادخال رقم المشترك في لوحة تسجيل الحضور تظهر رسالة ان المشترك في فترة انقطاع ، وكان الأمر يعود للمسؤول بأنه عند ادخال رقم المشترك في نموذج عرض تفاصيل حساب مشترك ، يظهر له ان هذا الحساب متوقف مؤقتاً ، فيظهر زر إعادة تفعيل بحيث انه عند النقر عليه يتم إحتساب مدة الإنقطاع من تاريخ التوقيف ( وهي قيمة كان يحدثها زر إيقاف الإشتراك مؤقتاً ) الى تاريخ التفعيل ويتم اضافة هذه الايام الى مدة الاستراك + إعادة قيمة حقل الحالة من Yes  الى No مرة أخرى . أي أن الحساب غير مجمد أو موقوف .

هذه هي الفكرة الأفضل التي وجدتها أثناء العمل وهي احتساب عدد الأيام ولكن بشكل ديناميكي .

 

أي أنه لو اراد المشترك اعادة ايقاف الاشتراك مؤقتاً مرة أخرى فسيقوم الكود بتحديث حقل تاريخ الإيقاف المؤقت و حقل حالة الإشتراك من No  الى Yes مرة أخرى .

 

 

أتمنى أن أكون قد وُفقت في توضيح الفكرة :smile: .

قام بنشر
في 19‏/11‏/2024 at 13:45, Moosak said:

ميزة الجدول الفرعي أنه يمكنك من تحديد أكثر من فترة إنقطاع حسب ضروف المشترك ..
ومن ثم تجمع عدد الأيام من أكثر من سجل (حسب عدد الإنقطاعات) خلال الفترة التي تحددها (شهريا مثلا) 🙂 

أعيدك إلى فكرة الجدول الفرعي 😅

فمن خلالها يمكنك أن تحسب : عدد الأيام - عدد النقاط - عدد الأرصدة - .....   سمها ما شئت

ومن خلالها يمكنك إضافة حقل لتأكيد موافقة المالك أيضا .

بعد اجالة الفكر .. عدلت عن فكرة المالك او تدخل الموظف .. وافكر بطريقة تكون خفيفة وآلية

 

3 ساعات مضت, Foksh said:

كانت فكرتي في برنامجي سابقاً ، انه يتم تسجيل الحضور من خلال رقم المشترك الغير متكرر . وعند طلب أحد المشتركين ايقاف اشتراكه بشكل مؤقت لأسباب كالسفر مثلاً ، كنت اقوم بتفعيل Pause كحقل موجود في جدول تفاصيل الإشتراك للمشترك ، بحيث انه لنفترض ان المشترك طلب ايقاف عضويته لمدة غير محددة . فمن خلال الزر المسؤول عن تحديث الحقل من No الى Yes لهذا المشترك يتم ايقاف العضوية بحيث لو تم ادخال رقم المشترك في لوحة تسجيل الحضور تظهر رسالة ان المشترك في فترة انقطاع ، وكان الأمر يعود للمسؤول بأنه عند ادخال رقم المشترك في نموذج عرض تفاصيل حساب مشترك ، يظهر له ان هذا الحساب متوقف مؤقتاً ، فيظهر زر إعادة تفعيل بحيث انه عند النقر عليه يتم إحتساب مدة الإنقطاع من تاريخ التوقيف ( وهي قيمة كان يحدثها زر إيقاف الإشتراك مؤقتاً ) الى تاريخ التفعيل ويتم اضافة هذه الايام الى مدة الاستراك + إعادة قيمة حقل الحالة من Yes  الى No مرة أخرى . أي أن الحساب غير مجمد أو موقوف .

هذه هي الفكرة الأفضل التي وجدتها أثناء العمل وهي احتساب عدد الأيام ولكن بشكل ديناميكي .

أي أنه لو اراد المشترك اعادة ايقاف الاشتراك مؤقتاً مرة أخرى فسيقوم الكود بتحديث حقل تاريخ الإيقاف المؤقت و حقل حالة الإشتراك من No  الى Yes مرة أخرى .

أتمنى أن أكون قد وُفقت في توضيح الفكرة :smile: .

ما لون بالاحمر هو ما كنت افكر به عند طرحي للموضوع :

في 18‏/11‏/2024 at 23:29, ابوخليل said:

 

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

 

ولكن كما ذكرت صرفت النظر عن التدخل البشري .. واريد ان يتم الأمر آليا  عن طريق الزبون

الفكرة لم تتبلور بعد

------------------------------------------------------------------------------------------

قبل ان ابدأ بتنفيذ الفكرة سوف اطرح الخطوات لأستنير بآرائكم وأنهل من علمكم

قام بنشر
في 19‏/11‏/2024 at 12:32, عمر ضاحى said:

متابع 🙂 لغرض التعلم

شكرا لك .. على تواضعك .. ولن نعدم خيرا من متابعتك

7 ساعات مضت, ولد جدة1 said:

متابع

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

فالفكر سابق ،،،

  • Like 1
قام بنشر (معدل)
20 ساعات مضت, ابوخليل said:

ما لون بالاحمر هو ما كنت افكر به عند طرحي للموضوع

أيضاً كفكرة تحويل الاشتراك الزمني الى نقاط ، يتم تحويل الاشتراك ولنفترض الذي مدته شهر أي بمعدل زيارة أو جلسة كل يوم أي بمعدل 30 زيارة بحيث يتم احتساب الزيارات التي استخدمها المشترك ولنفترض استخدم من مدة الاشتراك اسبوع أي بمعدل 7 زيارات فيتبقى له 23 زيارة ، وهنا عند تسجيله الدخول والخروج سيتم خصم 1 من عدد الـ 23 فيتبقى له 22 زيارة وهنا سيكون الإشعارات لديك نوعان :-

- الإشتراكات المحدودة أو الزمنية يتم التنبيه قبل اسبوع مثلاً.

- الإشتراكات الغير محدودة أو الرصيدية يتم التنبيه قبل 7 زيارات مثلاً متبقية في رصيد المشترك.

وهنا لو غاب المشترك شهرين فإن رصيده لن يتأثر بمدة الإنقطاع .

🔹 طبعاً هنا نستطيع الإستفادة من فكرة تحويل أو تحديث الإشتراك من زمني أو محدود إلى الغير محدود من ناحية مادية ( لصالح صاحب المنشئة )

موضوع تحويل نوع الإشتراك أمر يسير بلا شك ، واحتساب الرصيد المتبقي أمر أيسر إن شاء الله عليكم 😇 .

 

هي مجرد أفكار بصوت عالٍ 🤗 .

تم تعديل بواسطه Foksh
إضافة النقطة 🔹
قام بنشر

تمام  عليك اخي فادي .. حول فكرتك نلف وندور

سأقوم  بشرح الخطوات :

لدينا ثلاثة انواع من الاشتراكات :

النوع الأول ذهبي ( مفتوح) بمعنى يتم حساب ايام الحضور فقط  .. 

النوع الثاني فضي (جزئي ) اي يعوض عن جزء من ايام الغياب .. لنتفق على 3 ايام  عن كل شهر

النوع الثالث برونزي ( مغلق ) اي يحسب اشتراكه حسب التاريخ  حيث لا يوجد تعويض

ثلاثة اصدقاء اشتركوا في يوم واحد لمدة شهر .. وكل واحد منهم اشترك بنوع من هذه الانواع .. وسنمنحهم اسماء بنوع اشتراكاتهم

الاصدقاء الثلاثة حضروا العشر الأيام الأولى ثم قرروا ان يقوموا برحلة صيد او رحلة بحرية لمدة 10 أيام .. يعني غابوا 10 ايام

في اليوم 21 حضروا جميعا واستمروا بالحضور الى نهاية الشهر .

العضو الذهبي سيتبقى له 10 ايام كرصيد  .. حسابه يتم حسب ايام الحضور . ولم يحضر الا 20 يوما

العضو البرونزي انتهى اشتراكه .. حسابه يتم حسب التاريخ : من/ الى  ..

نأتي الى العضو الفضي وهو محل النقاش .. 

الآن يستحق ثلاثة ايام  كتعويض ..

ولكن لنفترض ان شخصا ما غاب يوما واحدا فقط خلال الشهر .. هل سيتم منحه 3 ايام  طبعا لا .. سيعوض عن يوم واحد فقط

والعملية تتم بمقارنة ((( الحصة المعتمد في التعويض ) + الايام التي حضرها ..))) من جهة .. مع ايام الاشتراك المستحقة (شهر)

بعملية حسابية وشرط عدم تجاوز عدد ايام الشهر يتم تعويضه

فعندما نقول انه غاب يوما واحدا فستتم الحسبة على النحو التالي :

عدد ايام التعويض النظامية = 3 ايام

عدد ايام الحضور =29   عدد ايام الشهر 30 يوما

3 +29 = 32 ..  .. الدالة سوف ترجع النتيجة الى 30

ولكن 30 -29 = 1  اذا يتم تعويضه يوما واحدا

-----------------------------------

لو حسبناها على الصديق البرونزي فسوف تتم هكذا :

ايام التعويض=3

ايام الحضور = 20  عدد ايام الشهر=30

3+20=23  

ولكن 30-23 = 7  النتيجة اكبر من التعويض اذا يستحق كامل التعويض

لا نستغني عن المقترحات والافكار منكم احبتي واخواني

قام بنشر (معدل)
50 دقائق مضت, ابوخليل said:

العضو الذهبي سيتبقى له 10 ايام كرصيد  .. حسابه يتم حسب ايام الحضور . ولم يحضر الا 20 يوما

:blink:  المفترض أنه عضو ذهبي أي يتم احتساب ايام الحضور فقط وهذا يعني أنه غير مقترن بتاريخ من / إلى

50 دقائق مضت, ابوخليل said:

الآن يستحق ثلاثة ايام  كتعويض ..

ولكن لنفترض ان شخصا ما غاب يوما واحدا فقط خلال الشهر .. هل سيتم منحه 3 ايام  طبعا لا .. سيعوض عن يوم واحد فقط

هذه النقطة لها سلوكان ، الأول أن تكون مدة التعويض اختيارية حسب قرار الإدارة . أو الثاني وهو احتساب ايام التعويض ثلث مدة الإجازة ويجبر الكسر لأقرب عدد صحيح أو من خلال معادلة :-

من 1 الى 3 = تعويض 1 يوم

من 4 الى 6 = تعويض 2 يوم

أكثر من 7 = تعويض 3 أيام ... إلخ.

سأجعل الموضوع أكثر وضوحاً بمرفق بسيط وبيانات مختصرة وهمية ..

مجرد اقتراحات 😇 .

تم تعديل بواسطه Foksh
قام بنشر

لما عرضت مقترح الاشتراك المفتوح .. حسب الحضور  على صاحبي

قال لي : يمكن يحصل تلاعب  .. وهو ان المشترك لا يسجل حضور .. وبكذا اشتراكه يبقى كما هو لا ينقص :blink:

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

ومشروعه في الهواء الطلق .. لا يوجد ابواب

قام بنشر (معدل)
16 دقائق مضت, ابوخليل said:

يمكن يحصل تلاعب  .. وهو ان المشترك لا يسجل حضور .. وبكذا اشتراكه يبقى كما هو لا ينقص

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

تم تعديل بواسطه Foksh
قام بنشر

1. هيكلة قاعدة البيانات

أضف الحقول والجداول التالية لتمكين النظام من دعم كلا الطريقتين:

أ. جدول الاشتراكات (tblSubscriptions)

CustomerID: معرّف الزبون.

StartDate: تاريخ بداية الاشتراك.

SubscriptionType: نوع الاشتراك (شهري/سنوي/رصيد).

DurationDays: عدد الأيام إذا كان الاشتراك محددًا (مثل 30 يومًا).

BalanceDays: عدد الأيام المتبقية في حال كان الاشتراك بالرّصيد.

ب. جدول الإيقافات (tblPauses)

لإدارة فترات التوقف للزبائن:

PauseID: معرّف التوقف.

CustomerID: معرّف الزبون.

PauseStartDate: تاريخ بداية التوقف.

PauseEndDate: تاريخ نهاية التوقف.

PauseDays: عدد أيام التوقف المحسوبة (للاحتساب السريع).

2. آلية العمل حسب نوع الاشتراك

أ. الاشتراك الشهري أو السنوي

يتم التعامل معه وفق النظام الحالي (إضافة الأيام المؤقتة إلى مدة الاشتراك عند التوقف المؤقت).

ب. الاشتراك بالرصيد

عند إنشاء اشتراك جديد، يتم إدخال عدد أيام الخدمة في BalanceDays.

عند كل توقف، يتم طرح أيام التوقف من BalanceDays.

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

3. واجهة المستخدم

أ. اختيار نوع الاشتراك

أضف خيارًا جديدًا في النموذج لتحديد نوع الاشتراك: شهري/سنوي/رصيد.

ب. إدارة التوقفات

أضف نموذجًا فرعيًا لإدارة فترات التوقف ضمن شاشة الاشتراكات:

إدخال تاريخ بداية التوقف وتاريخ النهاية.

تحديث BalanceDays أو DurationDays حسب نوع الاشتراك.

ج. عرض تفاصيل الاشتراك

عند عرض بيانات الزبون، أظهر:

عدد الأيام المتبقية في الاشتراك (لجميع الأنواع).

تواريخ التوقفات إن وجدت.

4. تحديث الإشعارات

عند الاشتراك الشهري/السنوي: احسب تاريخ انتهاء الاشتراك بعد إضافة فترات التوقف.

عند الاشتراك بالرصيد: اعرض الإشعار فقط إذا كان الرصيد (BalanceDays) صفرًا.

5. التقارير

أنشئ تقريرًا يعرض:

جميع الاشتراكات المنتهية أو التي على وشك الانتهاء.

عدد الأيام المتبقية لكل زبون.

فترات التوقف للزبائن.

مثال عملي

زبون بالاشتراك الشهري:

يبدأ الاشتراك في 1 نوفمبر لمدة 30 يومًا.

توقف مؤقتًا لمدة 7 أيام.

تاريخ انتهاء الاشتراك يصبح: 7 ديسمبر.

زبون بالاشتراك بالرّصيد:

يبدأ برصيد 365 يومًا.

استهلك 90 يومًا وسافر لمدة 30 يومًا.

الرصيد المتبقي: 275 يومًا.

  • Like 1

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information