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

التعويض عن ساعات العمل الإضافي


Alsalim1

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

مرحبا شباب

معادلة إحتساب التعويض عن العمل الإضافي =

من الساعة 5 مساء إلى الساعة 9   مساء = الراتب الأساسي * 0.01 * عدد الساعات

من الساعة 9 مساء إلى الساعة 11 مساء = الراتب الأساسي * 0.02 * عدد الساعات

 

مثال 

الراتب الأساسي = 400 موظف عمل من الساعة 8 مساء إلى الساعة 11 مساء

التعويض عن العمل الإضافي =

عدد الساعات من 8 مساء إلى 9 مساء = 1 ساعة 

عدد الساعات من الساعة 9 مساء إلى الساعة 11 مساء = 2 ساعة

= (400 * 0.01 * 1) + (400 * 0.02 * 2) = 20  

برنامج التعويض عن العمل الإضافي.rar

رابط هذا التعليق
شارك

لا اعرف كيف تكتب الساعة ... هل تكتب ارقام عادية ام تكتب ساعة و دقائق
اذاً اذا تريد ان تكتب ارقام عادية اليك الكود الاسفل
واذا تريد ان تكتب ساعة مع الدقائق غير الارقام في الكود الى ساعة
 

Private Sub Command8_Click()
    Dim Mablax1 As Integer
        Dim Mablax2 As Integer
            If Me.Text2 >= 9 Then
                    Me.Text6 = Me.Text0 * 0.02 * (Me.Text4 - Me.Text2)
                ElseIf Me.Text2 < 9 Then
                    If Me.Text4 >= 9 Then
                            Mablax1 = Me.Text0 * 0.01 * (9 - Me.Text2)
                            Mablax2 = Me.Text0 * 0.02 * (Me.Text4 - 9)
                            Me.Text6 = Mablax1 + Mablax2
                        Else
                            Me.Text6 = Me.Text0 * 0.01 * (Me.Text4 - Me.Text2)
                    End If
            End If
End Sub

 

  • Like 1
رابط هذا التعليق
شارك

جداً رائع استاذ الارقام تكتب ساعة بنظام 24 ساعة مع الدقائق الاحتساب الذي كان في المشاركة الاولى عن ساعات العمل الاضافي في ايام العمل 

من فضلك بغيت اضيف ساعات العمل الاضافي في عطلة نهاية الاسبوع عملت مربع خيار يختار المستخدم من خلاله هل العمل الاضافي في ايام العمل أو في عطلة الاسبوع 

إحتساب ساعات العمل الاضافي في عطلة نهاية الاسبوع = الراتب الاساسي * 0.05 * عدد ساعات العمل

برنامج التعويض عن العمل الإضافي.rar

  • Like 1
رابط هذا التعليق
شارك

اتفضل

Private Sub Command8_Click()
If Me.Frame21 = 1 Then
    Dim Mablax1 As Integer
        Dim Mablax2 As Integer
            If Me.Text2 >= "21:00" Then
                    Me.Text6 = Me.Text0 * 0.02 * (Format(Me.Text4, "h") - Format(Me.Text2, "h"))
                ElseIf Me.Text2 < "21:00" Then
                    If Me.Text4 >= "21:00" Then
                            Mablax1 = Me.Text0 * 0.01 * ("21:00" - Format(Me.Text2, "h"))
                            Mablax2 = Me.Text0 * 0.02 * (Format(Me.Text4, "h") - "21:00")
                            Me.Text6 = Mablax1 + Mablax2
                        Else
                            Me.Text6 = Me.Text0 * 0.01 * (Format(Me.Text4, "h") - Format(Me.Text2, "h"))
                    End If
            End If
        Else
            Me.Text6 = Me.Text0 * 0.05 * (Format(Me.Text4, "h") - Format(Me.Text2, "h"))
End If
End Sub

Private Sub Frame21_AfterUpdate()
    Call Command8_Click
End Sub

 

برنامج التعويض عن العمل الإضافي (1).rar

  • Like 1
رابط هذا التعليق
شارك

رائع جداً استاذ آخر طلب أحياناً الموظف يعمل من الساعة 7 المساء إلى الساعة 10 المساء 

أريد البرنامج يحسب التعويض عن الساعات الواقعة بين الساعة  5 المساء إلى الساعة 9 المساء

ثم يحسب التعويض عن الساعات الواقعة بين الساعة 9  المساء إلى الساعة 11  المساء ثم يجمع الناتجين

في هذا المثال عدد الساعات الواقعة بين 5 و 9 = ساعتين

وعدد الساعات الواقعة بين 9 إلى 11 = ساعة واحدة

الاحتساب إذا فرضنا الراتب الاساسي 400

(400*0.01*2)+(400*0.02*1) = 16

 

رابط هذا التعليق
شارك

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

شباب ما  زلت أنتظر للأهمية

عدم ردي على هذا الموضوع يرجع لعدم فهم السؤال جيدا
اشرح لي ما هو طلبك النهائي
اي بعد اعمل تعديلات عليه لكي لا نرجع علموضوع مجددا
اعطيني فهم عملك ماذا تريد بالضبط نقطة نقطة لكي اعطيك كود المناسب
تحياتي

  • Like 1
رابط هذا التعليق
شارك

استاذ

1- حط في البرنامج من الساعة التاسعة مساء وحتى الساعة الحادية عشر يحسب 0.01 وليس 0.02

2- حط في البرنامج من الساعة الخامسة مساء وحتى الساعة الحادية عشر لا يجمع الفترتين وهي الفترة الاولى من الساعة الخامسة وحتى الساعة التاسعة حسابها 0.01 ومن الساعة التاسعة وحتى الساعة الحادية عشر حسابها 0.02

رابط هذا التعليق
شارك

58 دقائق مضت, Alsalim1 said:

استاذ شوف المثال المرفق في الصورة من المفترض الناتج =

400 * 0.01 * 2 = 8

400 * 0.02 * 1 = 8

8 + 8 = 16 

استخدم هذا الكود
 

Private Sub Command8_Click()
If Me.Frame21 = 1 Then
    Dim Mablax1 As Integer
        Dim Mablax2 As Integer
            If Me.Text2 >= #9:00:00 PM# Then
                    Me.Text6 = Me.Text0 * 0.02 * (Format(Me.Text4, "h") - Format(Me.Text2, "h"))
                ElseIf Me.Text2 < #9:00:00 PM# Then
                    If Me.Text4 >= #9:00:00 PM# Then
                            Mablax1 = (Me.Text0 * 0.01) * (21 - Format(Me.Text2, "h"))
                            Mablax2 = (Me.Text0 * 0.02) * (Format(Me.Text4, "h") - 21)
                            Me.Text6 = Mablax1 + Mablax2
                        Else
                            Me.Text6 = Me.Text0 * 0.01 * (Format(Me.Text4, "h") - Format(Me.Text2, "h"))
                    End If
            End If
        Else
            Me.Text6 = Me.Text0 * 0.05 * (Format(Me.Text4, "h") - Format(Me.Text2, "h"))
End If
End Sub

اليك المرفق

 

برنامج التعويض عن العمل الإضافي (1) (1).rar

  • Like 1
رابط هذا التعليق
شارك

  • 2 weeks later...

شكرا للاستاذ شيفان على ما يقدمه من جهد ووقت وفائدة

وشكرا  لاخونا السالم على حسن خلقه  وعلى وصبره

تم تنقيح الموضوع وحذف المشاركات الزائدة

تفضل اخونا هذه محاولة

جعلت عملياتك وحسب فهمي في وحدة نمطية عامة 

Public Function wrWagt(time1 As Date, time2 As Date, rateb As Double, fram1 As Byte)
Dim wrHour1, wrHour2, wrHour3, wrHour4 As Integer
Dim tawed1, tawed2, tawed3, tawed4 As Double
If time2 <= "21:00" Then
wrHour1 = DateDiff("h", time1, time2)
tawed1 = 0.01
ElseIf time2 > "21:00" And time2 <= "23:00" Then
wrHour1 = DateDiff("h", time1, "21:00")
tawed1 = 0.01
wrHour2 = DateDiff("h", "21:01", time2)
tawed1 = 0.02
ElseIf time2 > "23:00" And time2 <= "23:59" Then
wrHour1 = DateDiff("h", time1, "21:00")
tawed1 = 0.01
wrHour2 = DateDiff("h", "21:01", "23:00")
tawed2 = 0.02
wrHour3 = DateDiff("h", "23:01", time2)
tawed3 = 0.01
ElseIf time2 > "00:01" And time2 <= "12:00" Then
wrHour1 = DateDiff("h", time1, "21:00")
tawed1 = 0.01
wrHour2 = DateDiff("h", "21:01", "23:00")
tawed2 = 0.02
wrHour3 = DateDiff("h", "23:01", "23:59")
tawed3 = 0.01
wrHour4 = DateDiff("h", "00:01", time2)
tawed3 = 0.01
End If
If fram1 = 1 Then
wrWagt = rateb * tawed1 * wrHour1 + rateb * tawed2 * wrHour2 + rateb * tawed3 * wrHour3 + rateb * tawed4 * wrHour4
Else
wrWagt = rateb * 0.05 * wrHour1 + rateb * 0.05 * wrHour2 + rateb * 0.05 * wrHour3 + rateb * tawed4 * 0.05
End If
End Function

 

التعويض عن العمل الإضافي2.rar

  • Like 2
رابط هذا التعليق
شارك

جداً رائع استاذ ممكن تغيير نظام التوقيت من نظام 24 ساعة إلى 12 ساعة وفق القواعد التالية

أيام العمل

1- من الساعة الخامسة صباحاً إلى الساعة التاسعة مساءً 

التعويض = (الراتب الأساسي * 12 * 1.25) / (52*45) * عدد الساعات

2- من الساعة التاسعة مساءً إلى الساعة الخامسة صباحاً 

التعويض =  (الراتب الأساسي * 12 * 1.5) / (52*45) * عدد الساعات

عطلة الأسبوع  

التعويض =  (الراتب الأساسي * 12 * 2) / (52*45) * عدد الساعات

مقدر مجهودك المبذول حيث تستحق الشكر والثناء

 

رابط هذا التعليق
شارك

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

  • Like 1
رابط هذا التعليق
شارك

20 ساعات مضت, Alsalim1 said:

جداً رائع استاذ ممكن تغيير نظام التوقيت من نظام 24 ساعة إلى 12 ساعة وفق القواعد التالية

أيام العمل

1- من الساعة الخامسة صباحاً إلى الساعة التاسعة مساءً 

التعويض = (الراتب الأساسي * 12 * 1.25) / (52*45) * عدد الساعات

2- من الساعة التاسعة مساءً إلى الساعة الخامسة صباحاً 

التعويض =  (الراتب الأساسي * 12 * 1.5) / (52*45) * عدد الساعات

عطلة الأسبوع  

التعويض =  (الراتب الأساسي * 12 * 2) / (52*45) * عدد الساعات

مقدر مجهودك المبذول حيث تستحق الشكر والثناء

 

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

رابط هذا التعليق
شارك

في ٢١‏/١١‏/٢٠١٧ at 11:43, Alsalim1 said:

جداً رائع استاذ ممكن تغيير نظام التوقيت من نظام 24 ساعة إلى 12 ساعة وفق القواعد التالية

أيام العمل

1- من الساعة الخامسة صباحاً إلى الساعة التاسعة مساءً 

التعويض = (الراتب الأساسي * 12 * 1.25) / (52*45) * عدد الساعات

2- من الساعة التاسعة مساءً إلى الساعة الخامسة صباحاً 

التعويض =  (الراتب الأساسي * 12 * 1.5) / (52*45) * عدد الساعات

عطلة الأسبوع  

التعويض =  (الراتب الأساسي * 12 * 2) / (52*45) * عدد الساعات

مقدر مجهودك المبذول حيث تستحق الشكر والثناء

 

اتفضل استخدمت هذا الكود 
بها كتير من الاحتمالات انا فكرت بنفسي عن الاحتمالات .. كان يجب ان تعطيني كل الاحتمالات لكي اعطيك الكود المناسب حسب احتمالاتك

Private Sub Command8_Click()
    Dim Mablax1 As Integer
        Dim Mablax2 As Integer
            Dim Mablax3 As Integer
    If Me.Frame21 = 1 Then
                If Me.Time1 >= #5:00:00 AM# And Me.Time1 <= #9:00:00 PM# Then
                            If Me.Time2 > #9:00:00 PM# Then
                                        Mablax1 = ((Me.Ratib * 12 * 1.25) / (52 * 45)) * (Format(#9:00:00 PM#, "h") - Format(Me.Time1, "h"))
                                        Mablax2 = ((Me.Ratib * 12 * 1.5) / (52 * 45)) * (Format(Me.Time2, "h") - Format(#9:00:00 PM#, "h"))
                                        Me.Netica = Mablax1 + Mablax2
                                ElseIf Me.Time2 = #12:00:00 AM# Then
                                        Mablax1 = ((Me.Ratib * 12 * 1.25) / (52 * 45)) * (Format(#9:00:00 PM#, "h") - Format(Me.Time1, "h"))
                                        Mablax2 = ((Me.Ratib * 12 * 1.5) / (52 * 45)) * (3)
                                        Me.Netica = Mablax1 + Mablax2
                                ElseIf Me.Time2 > #12:00:00 AM# And Me.Time2 <= #5:00:00 AM# Then
                                        Mablax1 = ((Me.Ratib * 12 * 1.25) / (52 * 45)) * (Format(#9:00:00 PM#, "h") - Format(Me.Time1, "h"))
                                        Mablax2 = ((Me.Ratib * 12 * 1.5) / (52 * 45)) * (3)
                                        Mablax3 = ((Me.Ratib * 12 * 1.5) / (52 * 45)) * (Format(Me.Time2, "h"))
                                        Me.Netica = Mablax1 + Mablax2 + Mablax3
                                ElseIf Me.Time2 >= #5:00:00 AM# And Me.Time2 <= #9:00:00 PM# Then
                                        Me.Netica = ((Me.Ratib * 12 * 1.25) / (52 * 45)) * (Format(Me.Time2, "h") - Format(Me.Time1, "h"))
                            End If
                    Else
                            If Me.Time2 = #12:00:00 AM# Then
                                        Me.Netica = ((Me.Ratib * 12 * 1.5) / (52 * 45)) * (24 - Format(Me.Time1, "h"))
                                ElseIf Me.Time2 > #9:00:00 PM# Then
                                        Me.Netica = ((Me.Ratib * 12 * 1.5) / (52 * 45)) * (Format(Me.Time2, "h") - Format(Me.Time1, "h"))
                                ElseIf Me.Time2 <= #5:00:00 AM# Then
                                        If Me.Time1 <= #5:00:00 AM# And Me.Time1 <= #12:00:00 AM# Then
                                                Me.Netica = ((Me.Ratib * 12 * 1.5) / (52 * 45)) * (Format(#5:00:00 AM#, "h") - Format(Me.Time1, "h"))
                                            ElseIf Me.Time1 >= #12:00:00 AM# Then
                                                Mablax1 = ((Me.Ratib * 12 * 1.5) / (52 * 45)) * (Format(Me.Time2, "h"))
                                                Mablax2 = ((Me.Ratib * 12 * 1.5) / (52 * 45)) * (24 - Format(Me.Time1, "h"))
                                                Me.Netica = Mablax1 + Mablax2
                                        End If
                                ElseIf Me.Time2 >= #5:00:00 AM# Then
                                        If Me.Time1 <= #5:00:00 AM# And Me.Time1 <= #12:00:00 AM# Then
                                                Mablax1 = ((Me.Ratib * 12 * 1.5) / (52 * 45)) * (Format(#5:00:00 AM#, "h") - Format(Me.Time1, "h"))
                                                Mablax2 = ((Me.Ratib * 12 * 1.25) / (52 * 45)) * (Format(Me.Time2, "h") - Format(#5:00:00 AM#, "h"))
                                                Me.Netica = Mablax1 + Mablax2
                                            ElseIf Me.Time1 >= #12:00:00 AM# And Me.Time2 > #12:00:00 PM# Then
                                                Mablax1 = ((Me.Ratib * 12 * 1.5) / (52 * 45)) * (24 - Format(Me.Time1, "h"))
                                                Mablax2 = ((Me.Ratib * 12 * 1.5) / (52 * 45)) * (Format(#5:00:00 AM#, "h") - Format(Me.Time1, "h"))
                                                Mablax3 = ((Me.Ratib * 12 * 1.25) / (52 * 45)) * (Format(Me.Time2, "h") - Format(#5:00:00 AM#, "h"))
                                                Me.Netica = Mablax1 + Mablax2 + Mablax3
                                        End If
                            End If
                End If
        ElseIf Me.Frame21 = 2 Then
                If Me.Time1 >= #5:00:00 AM# And Me.Time1 <= #9:00:00 PM# Then
                            If Me.Time2 > #9:00:00 PM# Then
                                        Mablax1 = ((Me.Ratib * 12 * 2) / (52 * 45)) * (Format(#9:00:00 PM#, "h") - Format(Me.Time1, "h"))
                                        Mablax2 = ((Me.Ratib * 12 * 2) / (52 * 45)) * (Format(Me.Time2, "h") - Format(#9:00:00 PM#, "h"))
                                        Me.Netica = Mablax1 + Mablax2
                                ElseIf Me.Time2 = #12:00:00 AM# Then
                                        Mablax1 = ((Me.Ratib * 12 * 2) / (52 * 45)) * (Format(#9:00:00 PM#, "h") - Format(Me.Time1, "h"))
                                        Mablax2 = ((Me.Ratib * 12 * 2) / (52 * 45)) * (3)
                                        Me.Netica = Mablax1 + Mablax2
                                ElseIf Me.Time2 > #12:00:00 AM# And Me.Time2 <= #5:00:00 AM# Then
                                        Mablax1 = ((Me.Ratib * 12 * 2) / (52 * 45)) * (Format(#9:00:00 PM#, "h") - Format(Me.Time1, "h"))
                                        Mablax2 = ((Me.Ratib * 12 * 2) / (52 * 45)) * (3)
                                        Mablax3 = ((Me.Ratib * 12 * 2) / (52 * 45)) * (Format(Me.Time2, "h"))
                                        Me.Netica = Mablax1 + Mablax2 + Mablax3
                                ElseIf Me.Time2 >= #5:00:00 AM# And Me.Time2 <= #9:00:00 PM# Then
                                        Me.Netica = ((Me.Ratib * 12 * 2) / (52 * 45)) * (Format(Me.Time2, "h") - Format(Me.Time1, "h"))
                            End If
                    Else
                            If Me.Time2 = #12:00:00 AM# Then
                                        Me.Netica = ((Me.Ratib * 12 * 2) / (52 * 45)) * (24 - Format(Me.Time1, "h"))
                                ElseIf Me.Time2 > #9:00:00 PM# Then
                                        Me.Netica = ((Me.Ratib * 12 * 2) / (52 * 45)) * (Format(Me.Time2, "h") - Format(Me.Time1, "h"))
                                ElseIf Me.Time2 <= #5:00:00 AM# Then
                                        If Me.Time1 <= #5:00:00 AM# And Me.Time1 <= #12:00:00 AM# Then
                                                Me.Netica = ((Me.Ratib * 12 * 2) / (52 * 45)) * (Format(#5:00:00 AM#, "h") - Format(Me.Time1, "h"))
                                            ElseIf Me.Time1 >= #12:00:00 AM# Then
                                                Mablax1 = ((Me.Ratib * 12 * 2) / (52 * 45)) * (Format(Me.Time2, "h"))
                                                Mablax2 = ((Me.Ratib * 12 * 2) / (52 * 45)) * (24 - Format(Me.Time1, "h"))
                                                Me.Netica = Mablax1 + Mablax2
                                        End If
                                ElseIf Me.Time2 >= #5:00:00 AM# Then
                                        If Me.Time1 <= #5:00:00 AM# And Me.Time1 <= #12:00:00 AM# Then
                                                Mablax1 = ((Me.Ratib * 12 * 2) / (52 * 45)) * (Format(#5:00:00 AM#, "h") - Format(Me.Time1, "h"))
                                                Mablax2 = ((Me.Ratib * 12 * 2) / (52 * 45)) * (Format(Me.Time2, "h") - Format(#5:00:00 AM#, "h"))
                                                Me.Netica = Mablax1 + Mablax2
                                            ElseIf Me.Time1 >= #12:00:00 AM# And Me.Time2 > #12:00:00 PM# Then
                                                Mablax1 = ((Me.Ratib * 12 * 2) / (52 * 45)) * (24 - Format(Me.Time1, "h"))
                                                Mablax2 = ((Me.Ratib * 12 * 2) / (52 * 45)) * (Format(#5:00:00 AM#, "h") - Format(Me.Time1, "h"))
                                                Mablax3 = ((Me.Ratib * 12 * 2) / (52 * 45)) * (Format(Me.Time2, "h") - Format(#5:00:00 AM#, "h"))
                                                Me.Netica = Mablax1 + Mablax2 + Mablax3
                                        End If
                            End If
                End If
    End If
End Sub

 

برنامج التعويض عن العمل الإضافي (1) (1).rar

  • Like 1
رابط هذا التعليق
شارك

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

رابط هذا التعليق
شارك

عطلة الاسبوع والساعات النهارية من الساعة 5 الصباح إلى الساعة 9 مساء يحسب بشكل صحيح ما عدا الساعات الليلية على سبيل المثال 

الراتب = 200 

العمل من الساعة 9 مساء إلى الساعة 10 مساء 

التعويض عن العمل الإضافي = (الراتب الأساسي * 12 * 1.5) / (52*45) * عدد الساعات

                                    = (200 * 12 * 1.5) / (52 * 45) * 1 

                                    = 1.538

بينما ناتج البرنامج = 2

يرجى ملاحظة المرفق

Untitled2.png

رابط هذا التعليق
شارك

33 دقائق مضت, Alsalim1 said:

التعويض عن العمل الإضافي = (الراتب الأساسي * 12 * 1.5) / (52*45) * عدد الساعات

                                    = (200 * 12 * 1.5) / (52 * 45) * 1 

                                    = 1.538

بينما ناتج البرنامج = 2

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

    Dim Mablax1 As Integer
        Dim Mablax2 As Integer
            Dim Mablax3 As Integer

بهذا

    Dim Mablax1 As Double
        Dim Mablax2 As Double
            Dim Mablax3 As Double

 

  • Like 2
رابط هذا التعليق
شارك

كثير أشكرك استاذ على جهدك الثمين وإسمح لي في البداية مثل ما وضحت لك أريد أعطي الفكرة في المنتدى وأنا أكمل البرنامج بس فشلت هذه المرة عموماً ما قصرت وكثر الله تعالى من أمثالك

  • 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