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

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

قام بنشر

 

السلام عليكم اساتذتي الكرام

لدي كود عند تعويض رقم 2 "النظارات الطبية للمنخرط أو زوجته او أحد أبنائه او من تحت كفالته لكل 02 سنة" في التعويضات الطبية  ولكن يعمل بشكل عفوي اتمنى ان تضع عليه لمسات وتصحح لي الاخطاء او تعيد صيغته من جديد  مثل صيغة منحة الحج

الشروط يعطي هذا التعويض للشخص الواحد مرة واحدة خلال كل 02 سنة 

البداية :

1- اختيار نوع ورقم  التعويضات الطبية ونختار رقم 2 

2- تثبيت تاريخ التعويض

3- اسم الشخص صاحب النظارات الطبية هنا يظهر MsgBox  في حالة نفس الشخص ولم يتم السنتين(02)

4- ادحال مبلغ الفاتورة ملاحظة " في حالة المبلغ اكبر من 70000.00دج يحسب على 70000.00 دج" اي هي المرجع 

5- النسبة تكون  : 40%

1084205022_.jpg.d53b190fbe375e5c993e5310b70ff467.jpg

 

20241210.rar

قام بنشر (معدل)
1 ساعه مضت, كريمو2 said:

- ادحال مبلغ الفاتورة ملاحظة " في حالة المبلغ اكبر من 70000.00دج يحسب على 70000.00 دج" اي هي المرجع 

5- النسبة تكون  : 40%

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

تم تعديل بواسطه ناقل
قام بنشر (معدل)
1 ساعه مضت, ناقل said:

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

شكرا استاذ نافل على الرد

بالنسبة للشرح 

 

اولا : الشرط يكون عند منح التعويض يكون مرة واحدة خلال سنتين لنفس الشخص

مثلا : كريمو 1 استفادة بتعويض رقم 2 (النظارات الطبية) بتاريخ 2023/12/01 هنا تقدم بطلب تعويض اخر يوم 2024/12/10

هنا نلاحظ انه لم يستوفي شرط السنتين عنا الكود يعلمني انه استفاد بتعويض النظارات الطبية بتاريخ 2023/12/01 ةلا يمكنه التعويض حاليا الا بعد مرور سنتين من تاريخ التعويض

وهنا الشرط يكون عند Nom_Beneficiaire في الفورم  FrmSanté_sub تعويض النظارات الطبية يمكن يكون المنخرط او الزوجة او الابن او المتكفل بهم 

ثانيا : مبلغ الفاتورة التي سيتم عليها التعويض لا يكون اكبر من 7 الاف دينار جزائري في كل حالات التعويضات الطبية

نفرض فاتورة بقيمة 9 الاف دج تحسب على اساس انها 7 الاف دج وتضرب في ness وهكذا 

اما الاقل فعادي فتأخذ قيمتها الحقيقية وتضرب في ness

ملاحظة الفرق بين التعويض رقم 2 وجميع التعويضات الاخري (1-3-4-5-6-9)

ان رقم 2 يعوض مرة واحدة خلال 02 سنة للسخص الواحد مثلا نوفل استفاد خلال سنة 2024

فلا يمكنه الاستفادة مرة اخرى الا بعد سنة 2026

اما الحالات الاخرى (1-3-4-5-6-9) فيتم التعويض كلما تم تقديم فاتورة

 

 

تم تعديل بواسطه كريمو2
قام بنشر
22 دقائق مضت, كريمو2 said:

ثانيا : مبلغ الفاتورة التي سيتم عليها التعويض لا يكون اكبر من 7 الاف دينار جزائري 

نفرض فاتورة بقيمة 9 الاف دج تحسب على اساس انها 7 الاف دج وتضرب في 40% وهكذا 

اما الاقل فعادي فتأخذ قيمتها الحقيقية وتضرب في 40%

طيب ماذا لو كان المبلغ أقل هل يحق له المنحة مرة أخرى في خلال سنتين .... يعنى لو استحق في المرة الأولى وكان المبلغ 2000 دينار وطلب منحة اخرى لعمل أيضا نظارة بمبلغ 5000 دينار هل يستحق ام لمرة واحدة فقط دون اعتبار مجموع المبالغ ب 7000 دينار

  • Like 1
قام بنشر (معدل)
10 دقائق مضت, ناقل said:

طيب ماذا لو كان المبلغ أقل هل يحق له المنحة مرة أخرى في خلال سنتين .... يعنى لو استحق في المرة الأولى وكان المبلغ 2000 دينار وطلب منحة اخرى لعمل أيضا نظارة بمبلغ 5000 دينار هل يستحق ام لمرة واحدة فقط 

لا يا استاذ في النظارات الطبية مرة واحدة فقط في كل المبالغ الا بعد مرور عامين

دون اعتبار مجموع المبالغ ب 7000 دينار

اما هذا ليس مجموع المبالغ استاذ بل غند تقديم فاتورة جديدة بقيمة اكبر من 7000 دينار

يتم حساب التعويض  على 7000 دينار

مثلا فاتورة بقيمة 9000 دينار او اكثر تحسب على اساس انها 7000 دينار

ويتم التعويض على

7000 × 30 %  خاص برقم 1-3-4-5-6-9

7000  × 40 % خاص برقم 2

تم تعديل بواسطه كريمو2
  • Thanks 1
قام بنشر
16 ساعات مضت, ناقل said:

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

 

15 ساعات مضت, كريمو2 said:

لا يا استاذ في النظارات الطبية مرة واحدة فقط في كل المبالغ الا بعد مرور عامين

دون اعتبار مجموع المبالغ ب 7000 دينار

اما هذا ليس مجموع المبالغ استاذ بل غند تقديم فاتورة جديدة بقيمة اكبر من 7000 دينار

يتم حساب التعويض  على 7000 دينار

مثلا فاتورة بقيمة 9000 دينار او اكثر تحسب على اساس انها 7000 دينار

ويتم التعويض على

7000 × 30 %  خاص برقم 1-3-4-5-6-9

7000  × 40 % خاص برقم 2

اشكرك اخي @ناقل على الاسئلة التي شرحت لنا ما يريده اخانا @كريمو2

هل هذا التصور المطلوب ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

 

2024-12-11_15-13-26.gif

  • Thanks 1
قام بنشر
27 دقائق مضت, ناقل said:

ما شاء الله تبارك الله ... كفيت و وفيت ... وننتظر صاحب الموضوع

شكرا لمروركم الطيب اساتذة

لاحظ الصورة استاذ Barna

1.png.fa2a288a45a37a27df12e840fa264fdb.png

 

قام بنشر

هل شاهدت ما رسالة اخي محمد من صورة. gif

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

 

قصدك لكل واحد منهم فرصة واحدة خلال سنتين 

يعني الاب فرصة

والزوجة فرصة

والابن فرصة

قام بنشر
منذ ساعه, ناقل said:

هل شاهدت ما رسالة اخي محمد من صورة. gif

4 ساعات مضت, Barna said:

نعم لاحظته ووجدت  المشكل كما أشرت بالصورة

منذ ساعه, ناقل said:

قصدك لكل واحد منهم فرصة واحدة خلال سنتين 

يعني الاب فرصة

والزوجة فرصة

والابن فرصة

فعلا هذا هو المطلوب استاذ نافل بالاسم 

  • Like 1
قام بنشر
15 دقائق مضت, كريمو2 said:

فعلا هذا هو المطلوب استاذ نافل بالاسم 

ولكن لاحظ اخي @كريمو2 ان المستخدم هو من يقوم بكتابة الاسم .... فلو اخطأ في مسافة او حرف الكمبيوتر ذكي لدرجة الغباء ... يعني يقبلها دون تردد .... فلعلاج ذلك المفترض يتم اختيار الاسم من خلال قائمة منسدلة وليس تسجيل المستخدم ,,, اليس كذلك ؟؟؟؟؟؟

 

1.jpg

  • Like 1
قام بنشر
13 دقائق مضت, Barna said:

ولكن لاحظ اخي @كريمو2 ان المستخدم هو من يقوم بكتابة الاسم .... فلو اخطأ في مسافة او حرف الكمبيوتر ذكي لدرجة الغباء ... يعني يقبلها دون تردد .... فلعلاج ذلك المفترض يتم اختيار الاسم من خلال قائمة منسدلة وليس تسجيل المستخدم ,,, اليس كذلك ؟؟؟؟؟؟

صح فكرتك استاذ

تمام

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

اما اذا كان احد من افراد عائلته فيكتب اسمه ولقبه 

وهنا يتم الفلترة

 

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

صح فكرتك استاذ

تمام

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

اما اذا كان احد من افراد عائلته فيكتب اسمه ولقبه 

وهنا يتم الفلترة

طيب اذا كنت مصر على طريقتك .... هل هذا هو المطلوب
 

2024-12-12_17-19-49.gif

قام بنشر
منذ ساعه, Barna said:

طيب اذا كنت مصر على طريقتك .... هل هذا هو المطلوب

نعم استاذ ولكن طريقتنا في العمل الإختيار "نوع ورقم التعويضات "هو الاول

وانت حسب الصورة بدات ب "الاسم ولقب المستفيد" ثم "نوع القرابة" وبعدين "الاختيار "ومن ثمة يظهر الميساج

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

نعم استاذ ولكن طريقتنا في العمل الإختيار "نوع ورقم التعويضات "هو الاول

وانت حسب الصورة بدات ب "الاسم ولقب المستفيد" ثم "نوع القرابة" وبعدين "الاختيار "ومن ثمة يظهر الميساج

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

قام بنشر

نعم استاذي العزيز  وياريت تذكر اسم المستفيد  سابقا في الميساج

قام بنشر
42 دقائق مضت, كريمو2 said:

نعم استاذي العزيز  وياريت تذكر اسم المستفيد  سابقا في الميساج

طيب ....

قم بنقل الكود كما في الصورة من مربع القائمة الخاصة بالنوع الى مربع القائمة الخاص بنوعية القرابة ثم انسخ الفانك بدل الفانك الموجود لديك ,,,,,,

Public Function CheckInkhirat(ByRef ID As Integer) As String
    On Error GoTo err_CheckInkhirat

    Dim yearNow As Integer
    Dim totalPaid As Currency
    Dim totalPaidLastYear As Currency
    Dim paymentMarch As Boolean
    Dim paymentJuly As Boolean
    Dim t, t2 As Integer
    Dim result_haj As Variant
    Dim latestDate As Variant
    Dim todayDate As Date
    Dim yearsDifference As Long
    t1 = 2
    ' تحديد السنة
    If Month(Date) < 3 Then
        yearNow = Year(Date) - 1
         t = 1
    Else
        yearNow = Year(Date)
         t = 2
    End If

  ' الحصول على تاريخ اليوم
     todayDate = Date
    'إجمالي المبلغ المدفوع
    totalPaid = Nz(DSum("Payment_Made", "tbl_Loans", "EmployeeID = " & ID & " AND Year(Auto_Date) = " & yearNow & " AND Loan_ID = 0"), 0)
    
If [Forms]![FrmMenah]![Etar] = "المنح العائلية" Then
    'التحقق من منحة الحج والنظارات الطبية
    result_haj = DLookup("[Menha_Date]", "[Mena7]", "[EmployeeID] =" & ID & " And [Menha_ID] =" & [Forms]![FrmMenah]![Frm_sub].[Form]![CmdMenha] & "  And [Menha_ID] =11 ")
ElseIf [Forms]![FrmMenah]![Etar] = "التعويضات الطبية" And [Forms]![FrmMenah]![Frm_sub].[Form]![cmdSanitaire] = 2 Then
    If IsNull(DMax("[Sanitaire_Date]", "[Sanitaire]", "[EmployeeID] =" & [Forms]![FrmMenah]![EmployeeID] & " And [Nom_Beneficiaire] ='" & [Forms]![FrmMenah]![Frm_sub].[Form]![Nom_Beneficiaire] & "'")) Then
        
        latestDate = #10/1/2000#
        yearsDifference = DateDiff("yyyy", latestDate, todayDate)
    Else
        latestDate = DMax("[Sanitaire_Date]", "[Sanitaire]", "[EmployeeID] =" & [Forms]![FrmMenah]![EmployeeID] & " And [Nom_Beneficiaire] ='" & [Forms]![FrmMenah]![Frm_sub].[Form]![Nom_Beneficiaire] & "'")
        yearsDifference = DateDiff("yyyy", latestDate, todayDate)
    End If
    If yearsDifference < 2 Then
        result_haj = Null
        t1 = 1
    Else
        result_haj = Null
        t1 = 2
    End If
    Else
        result_haj = Null
End If
    ' التحقق من دفع المبلغ في مارس ويوليو للسنة الحالية
    paymentMarch = Nz(DLookup("Payment_Made", "tbl_Loans", "EmployeeID = " & ID & " AND Year(Auto_Date) = " & yearNow & " AND Month(Auto_Date) = 3"), 0) = 1500
    paymentJuly = Nz(DLookup("Payment_Made", "tbl_Loans", "EmployeeID = " & ID & " AND Year(Auto_Date) = " & yearNow & " AND Month(Auto_Date) = 7"), 0) = 1500

    ' التحقق من الشروط
    If t1 = 2 And t = 2 And totalPaid = 3000 And paymentMarch = False And paymentJuly = False And IsNull(result_haj) Then
        CheckInkhirat = "عزيزي المنخرط(ة)، يمكنك الاستفادة من جميع الامتيازات لأنك دفعت مبلغ الانخراط كاملاً."
    ElseIf t1 = 2 And t = 2 And totalPaid = 3000 And paymentMarch = True And paymentJuly = True And IsNull(result_haj) Then
        CheckInkhirat = "عزيزي المنخرط(ة)، يمكنك الاستفادة من جميع الامتيازات لأنك دفعت مبلغ الانخراط كاملاً على دفعتين."
    ElseIf t1 = 2 And t = 1 And totalPaid = 3000 Then
        CheckInkhirat = "عزيزي المنخرط(ة)، يمكنك الاستفادة من الامتيازات لأنك دفعت مبلغ الانخراط الخاص بالسنة الماضية كاملاً."
    'التحقق من رسائل الحج
    ElseIf t1 = 2 And t = 1 And totalPaid = 3000 And Not IsNull(result_haj) Then
        CheckInkhirat = "عزيزي المنخرط(ة)، يمكنك الاستفادة من الامتيازات لأنك دفعت مبلغ الانخراط الخاص بالسنة الماضية كاملاً." & vbNewLine & "ولكن قد استفت من منحة الحج لعام" & vbNewLine & result_haj
    ElseIf t1 = 2 And t = 2 And totalPaid = 3000 And paymentMarch = False And paymentJuly = False And Not IsNull(result_haj) Then
        CheckInkhirat = "عزيزي المنخرط(ة)، يمكنك الاستفادة من جميع الامتيازات لأنك دفعت مبلغ الانخراط كاملاً." & vbNewLine & "ولكن قد استفت من منحة الحج لعام" & vbNewLine & result_haj
    ElseIf t1 = 2 And t = 2 And totalPaid = 3000 And paymentMarch = True And paymentJuly = True And Not IsNull(result_haj) Then
        CheckInkhirat = "عزيزي المنخرط(ة)، يمكنك الاستفادة من جميع الامتيازات لأنك دفعت مبلغ الانخراط كاملاً على دفعتين." & vbNewLine & "ولكن قد استفت من منحة الحج لعام" & vbNewLine & result_haj
    
   'التحقق من رسائل النظارات الطبية
    ElseIf t1 = 1 And t = 1 And totalPaid = 3000 And IsNull(result_haj) Then
        CheckInkhirat = "عزيزي المنخرط(ة)، يمكنك الاستفادة من الامتيازات لأنك دفعت مبلغ الانخراط الخاص بالسنة الماضية كاملاً." & vbNewLine & "ولكن قد استفت من منحةالنظارات الطبية بتاريخ" & vbNewLine & latestDate
    ElseIf t1 = 1 And t = 2 And totalPaid = 3000 And paymentMarch = False And paymentJuly = False And IsNull(result_haj) Then
        CheckInkhirat = "عزيزي المنخرط(ة)، يمكنك الاستفادة من جميع الامتيازات لأنك دفعت مبلغ الانخراط كاملاً." & vbNewLine & "ولكن قد استفت من منحةالنظارات الطبية بتاريخ" & vbNewLine & latestDate
    ElseIf t1 = 1 And t = 2 And totalPaid = 3000 And paymentMarch = True And paymentJuly = True And IsNull(result_haj) Then
        CheckInkhirat = "عزيزي المنخرط(ة)، يمكنك الاستفادة من جميع الامتيازات لأنك دفعت مبلغ الانخراط كاملاً على دفعتين." & vbNewLine & "ولكن قد استفت من منحةالنظارات الطبية بتاريخ" & vbNewLine & latestDate
    
    Else
    
        CheckInkhirat = "عزيزي المنخرط(ة)، لا يمكنك الاستفادة من الامتيازات لأنك لم تدفع مبلغ الانخراط."
    End If
    Exit Function

err_CheckInkhirat:
    MsgBox "خطأ رقم " & Err.Number & ": " & Err.Description, vbCritical, "خطأ"
    CheckInkhirat = "حدث خطأ أثناء التحقق من بيانات الانخراط."
End Function

 

1.jpg

قام بنشر (معدل)

شكرا استاذ

 

1 ساعه مضت, Barna said:

قم بنقل الكود كما في الصورة من مربع القائمة الخاصة بالنوع الى مربع القائمة الخاص بنوعية القرابة

اولا : تم النقل والنسح كما اشرت

ثانيا 

لازم زيادة شرط عند الضفط على موافق في هذا الميساج لا يضاف سجل جديد

الميساج رقم 01

2024-12-13_21-39-00.jpg.20b1fc82cd5b9e21fa8e51e60f0f4075.jpg

وعند ظهور  الميساج رقم 01  لا يظهر الميساج رقم 02 

778151331_.jpg.9199d0f6054f259d6fc85e2b004d8477.jpg 

الميساج رقم 02

2024-12-13_21-33-07.rar

تم تعديل بواسطه كريمو2
قام بنشر
20 دقائق مضت, كريمو2 said:

اولا : الصورة مافهمت كيف انقل الكود من والي

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

20 دقائق مضت, كريمو2 said:

ثانيا ولما نسخت الفانك ظهرت الكتابة بالعربية الي علامات استفهام مالحل 

قبل النسخ حول لوحة المفاتيح إلى عربي 

قام بنشر

عذرا استاذي  Barna على تغيير الرد 

اولا : تم النقل والنسح كما اشرت

ثانيا 

لازم زيادة شرط عند الضفط على موافق في هذا الميساج لا يضاف سجل جديد

الميساج رقم 01

2024-12-13_21-39-00.jpg.20b1fc82cd5b9e21fa8e51e60f0f4075.jpg

وعند ظهور  الميساج رقم 01  لا يظهر الميساج رقم 02 

778151331_.jpg.9199d0f6054f259d6fc85e2b004d8477.jpg 

الميساج رقم 02

  • أفضل إجابة
قام بنشر (معدل)
12 دقائق مضت, كريمو2 said:

عذرا استاذي  Barna على تغيير الرد 

اولا : تم النقل والنسح كما اشرت

ثانيا 

لازم زيادة شرط عند الضفط على موافق في هذا الميساج لا يضاف سجل جديد

الميساج رقم 01

 

 استخدم هذا الكود بدل الموجود لديك ..................

Dim result As String
Dim userResponse As VbMsgBoxResult
Dim emp As Integer
emp = EmployeeID
' استدعاء الدالة للتحقق من الانخراط
result = CheckInkhirat(emp)

' عرض النتيجة في رسالة
userResponse = MsgBox(result, vbOKOnly + vbInformation, "نتيجة التحقق")

' التحقق من استحقاق الامتياز قبل المتابعة
If (result Like "*كاملا*" And Not result Like "*النظارات*") Then
    ' طلب تأكيد تثبيت المنحة
    If MsgBox("هل تريد تثبيت تاريخ التعويض الطبي؟", vbYesNo + vbQuestion, "تأكيد") = vbYes Then
        ' إذا وافق المستخدم، يتم تثبيت التاريخ وإكمال العملية
        Me.Sanitaire_Date = Date
        ''Me.Obsérvation = Nom_Moss
        ''Me.Sanitaire_Value = Me.Montent
   
    Else
        ' إذا رفض المستخدم، يتم التراجع عن أي تغييرات
        Me.Undo
    End If
Else
    ' إذا لم يتم استيفاء شروط الانخراط، لا يمكن تثبيت المنحة
    MsgBox "لا يمكنك تثبيت التعويض الطبي لأن شروط الانخراط غير مستوفاة.", vbExclamation, "تنبيه"
    Me.Undo
End If

 

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

شكر استاذ Barna على الصبر والتحمل و المساعدة  وربي يجعلها في ميزان حسناتك

تم تعديل بواسطه كريمو2
  • Thanks 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