الثلاثاء، 19 أغسطس 2014

كيفية حساب الزكاة - خاص بالمبرمجين (فقه برمجية

بسم الله الرحمن الرحيم

كيفية حساب الزكاة - خاص بالمبرمجين (فقه برمجية)
إعداد وشرح : شحادة بشير

السلام عليكم ورحمة الله وبركاته وأفضل الصلاة وأتم التسليم على سيدنا محمد وعلى آله وصحبه أجمعين ، وبعد :
{وَأَقِيمُوا الصَّلَاةَ وَآتُوا الزَّكَاةَ وَمَا تُقَدِّمُوا لِأَنْفُسِكُمْ مِنْ خَيْرٍ تَجِدُوهُ عِنْدَ اللَّهِ إِنَّ اللَّهَ بِمَا تَعْمَلُونَ بَصِيرٌ} [البقرة : 110]

أقدم لكم اليوم درساً فريداً أشرح من خلاله فقهياً وبرمجياً كيفية صياغة خوارزميات حساب الزكاة للأموال التي تجب فيها الزكاة في الشريعة الإسلامية ، وقد أطلقت على هذه السلسلة مصطلح (فقه برمجية) ربطاً مني للفقه بالبرمجة وإن شاء الله يكون هذا نافذةً لدروسٍ أخرى سواءً لي أو لغيري من الإخوة المبرمجين في المجال ذاته.


بداية هنالك نقاطٌ لا بد من أخذها بعين الاعتبار ، وهي :
1- يجب أن يكون لديك إلمامٌ بسيط بإحدى لغات البرمجة ، علماً أنني سأشرح الخوارزميات بلغة الفيجوال بيسك.
2- خلافات الفقهاء سنحاول صياغتها برمجياً بطريقةٍ علميةٍ ذكيةٍ بحيث يفهم البرنامج النقاط التي يتفق فيها الفقهاء والنقاط التي يختلفون فيها ، فيجمع آراء المتفقين ويفرّق بين آراء المختلفين كما سنشاهد إن شاء الله تعالى في زكاة النقدين وزكاة حساب المال وغيرهما.
3- سنستخدم إن شاء الله مصطلحاتٍ معاصرةٍ يفهمها الفقيه والمبرمج وبالتالي يسهل على الاثنين فهم الخوارزميات والآراء.
4- النِّصاب : هو مقدار المال الذي لا تجب الزكاة في أقلٍ منه ، وهو يختلف باختلاف أجناس الأموال الزكوية كما سيمر معنا إن شاء الله.


الأموال التي تجب فيها الزكاة :
زكاة بهيمة الأنعام : الإبل – البقر – الغنم
زكاة النقدين (الذهب والفضة) : زكاة الذهب – زكاة الفضة
زكاة الأموال وعُرُوض التجارة : حسب الذهب – حسب الفضة – حسب أقل النصابين
زكاة الزروع والثمار : زكاة العسل
زكاة الكنز والرِّكَاز


أولاً : زكاة بهيمة الأنعام :
بهيمة الأنعام هي : الإبل والبقر والغنم. والأنعام التي تجب فيها الزكاة هي :
الأول – الإبل :
نصاب الإبل : اختلف العلماء في نصاب الإبل على رأيين :
# مذهب الجمهور (الشافيعة والحنابلة والمالكية) :
من 1 - 4 لا شيء فيها.
كود الـ PHP :
If Trim(TxtAnimal.Text) < 5 Then
   LblResultAnimal
.Caption "لا يتوجب عليك إخراج شيءٍ ، فالحد الأدنى لنصاب زكاة الإبل هو : 5 رؤوس"
   
TxtExplicationlAnimal.Text "اتفق جمهور العلماء على أن الحد الأدنى لزكاة الإبل في الشريعة الإسلامية هو 5 رؤوس ، وعدد رؤوس إبلك لم يبلغ ذلك الحد ، لذا لا يتوجب عليك إخراج أي شيءٍ."
   
Exit Sub
End 
If  
TxtAnimal.Text ترمز للمربع الذي وضعت فيه عدد رؤوس الإبل التي تمتلكها.
LblResultAnimal.Caption يرمز لمربع النتيجة التي ستخرج.
TxtExplicationlAnimal.Text يرمز لمربع شرح النتيجة.

من 5 - 9 فيها شاةٌ واحدةٌ.
كود الـ PHP :
If TxtAnimal.Text 10 And TxtAnimal.Text 4 Then
   LblResultAnimal
.Caption "يتوجب عليك إخراج : " "شاة واحدة"
   
TxtExplicationlAnimal.Text "اتفق جمهور العلماء على أن رؤوس الإبل إذا كانت ما بين 5 إلى 9 فتجب فيها شاة واحدة فقط." End If  
من 10 - 14 فيها شاتان.
نفس الكود السابق مع تعديل الأرقام فقط.
من 15 - 19 فيها 3 شياهٍ.
نفس الكود السابق مع تعديل الأرقام فقط.
من 20 - 24 فيها 4 شياهٍ.
نفس الكود السابق مع تعديل الأرقام فقط.
من 25 - 35 فيها بنتُ مخاضٍ (أي لها سنةٌ ودخلت في الثانية ، سميت بذلك لأن أمها غالباً تكون مَخاضاً أي حاملاً).
نفس الكود السابق مع تعديل الأرقام فقط.
من 36 - 45 فيها بنتُ لبونٍ (أي أتمت سنتين ودخلت في الثالثة ، سميت بذلك لأن أمها آن لها أن تلد فتصير لبوناً أي ذات لبنٍ لأخرى غالباً).
نفس الكود السابق مع تعديل الأرقام فقط.
من 46 - 60 فيها حِقّةٌ (أي أتمت ثلاث سنواتٍ ودخلت في الرابعة ، سميت بذلك لأنها استحقت أن تُركَب ويُحمَل عليها ويطرقها الفحل).
نفس الكود السابق مع تعديل الأرقام فقط.
من 61 - 75 فيها جَذَعةٌ (أي أتمت أربع سنواتٍ ودخلت في الخامسة).
نفس الكود السابق مع تعديل الأرقام فقط.
من 76 - 90 فيها بنتا لبون.
نفس الكود السابق مع تعديل الأرقام فقط.
من 91 - 120 فيها حِقّتان.
نفس الكود السابق مع تعديل الأرقام فقط.
إذن إلى هنا الأمر سهلٌ برمجياً كما شاهدنا ، ولكن قال الجمهور : إذا زاد الرقم عن ذلك ففي كل 40 بنت لبونٍ ، وفي كل 50 حِقّةٌ ، وهنا بيت القصيد :
يجب أن نأخذ الرقم وهذا الرقم يجب أن نعرف كم 40 يوجد فيه أو كم 50 يوجد فيه أو كم 50 وكم 40 يوجد فيه ؟! إذن هنالك عدة احتمالات.
وهنا يجب أن نصيغ خوارزمية تقوم بعمليتين ، هما :
1- جعل الرقم قابلاً للقسمة على عشرة ؛ لأن العلماء تسامحوا في الوقص ، والوقص : هو الرقم الموجود بين فريضتين ؛ مثلاً : الرقم 235 موجود بين 230 و 240 فيأخذ حكم الرقم 230 ، وبما أن الجمهور قالوا : إذا زاد الرقم عن ذلك ففي كل 40 بنت لبونٍ ، وفي كل 50 حِقّةٌ فمنطقياً يجب أن يكون قابلاً للقسمة على عشرة.

كود الـ PHP :
'تعريف متغير لوضع عدد رؤوس الإبل فيه بعد جعلها قابلة للقسمة على عشرة
Dim LeftOver As String
LblResultAnimal.Caption = ""
LeftOver = (TxtAnimal.Text Mod 10)
LeftOver = TxtAnimal.Text - LeftOver  

2- هذه الخوارزمية يجب أن تكون فيها احتمالات ، وهي :
- إذا كان عدد الرؤوس يقبل القسمة على 40 دون باقٍ أو على 50 دون باقٍ فنحن مخيرون بما نخرجه ؛ مثلاً : شخصٌ عنده 200 رأس من الإبل ، كما نلاحظ فإن العدد 200 يقبل القسمة على 40 ويقبل كذلك القسمة على 50 ، فنقول له : عليك أن تخرج 5 بنات لبون أو 4 حِقاق.

كود الـ PHP :
If LeftOver Mod 40 And LeftOver Mod 50 0 Then
   LblResultAnimal 
"يتوجب عليك إخراج : " LeftOver 40 " بنت لبون" " أو " LeftOver 50 " حِقّة"
   
TxtExplicationlAnimal.Text "تجري مذاهب الجمهور في زكاة الإبل حسب حالتك هذه : في كل 40 منها يتوجب عليك إخراج بنت لبون ، وفي كل 50 منها يتوجب عليك إخراج حِقّة ، وعدد رؤوس البقر عندك تنطبق عليه الحالتان." vbNewLine _
   
"# بنت لبون : أي أتمت سنتين ودخلت في الثالثة ، سميت بذلك لأن أمها آن لها أن تلد فتصير لبوناً أي ذات لبنٍ لأخرى غالباً." vbNewLine _
   
"# حِقّة : أي أتمت ثلاث سنواتٍ ودخلت في الرابعة ، سميت بذلك لأنها استحقت أن تُركَب ويُحمَل عليها ويطرقها الفحل." End If  

- إذا كان عدد الرؤوس يقبل القسمة على 40 فقط دون باقٍ ، فالخارج يجب أن يكون من بنات لبون ؛ مثلاً : شخصٌ عنده 160 رأساً من الإبل ، كما نلاحظ فإن العدد 160 يقبل القسمة على 40 ولا يقبل القسمة على 50 ، في هذه الحالة نقول له : عليك أن تخرج 4 بنات لبون.

كود الـ PHP :
If LeftOver Mod 40 0 Then
   LblResultAnimal 
"يتوجب عليك إخراج : " Int(LeftOver 40) & " بنت لبون"
   
TxtExplicationlAnimal.Text "تجري مذاهب الفقهاء في زكاة الإبل حسب حالتك هذه : في كل 40 منها يتوجب عليك إخراج بنت لبون." vbNewLine _
   
"# بنت لبون : أي أتمت سنتين ودخلت في الثالثة ، سميت بذلك لأن أمها آن لها أن تلد فتصير لبوناً أي ذات لبنٍ لأخرى غالباً." End If  
- إذا كان عدد الرؤوس يقبل القسمة على 50 فقط دون باقٍ ، فالخارج يجب أن يكون من حِقاق ؛ مثلاً : شخصٌ عنده 150 رأساً من الإبل ، كما نلاحظ فإن العدد 150 يقبل القسمة على 50 ولا يقبل القسمة على 40 ، في هذه الحالة نقول له : عليك أن تخرج 3 حِقاق.
كود الـ PHP :
If LeftOver Mod 50 0 Then
   LblResultAnimal 
"يتوجب عليك إخراج : " Int(LeftOver 50) & " حِقّة"
   
TxtExplicationlAnimal.Text "تجري مذاهب الفقهاء في زكاة الإبل حسب حالتك هذه : في كل 50 منها يتوجب عليك إخراج حِقّة." vbNewLine _
   
"# حِقّة : أي أتمت ثلاث سنواتٍ ودخلت في الرابعة ، سميت بذلك لأنها استحقت أن تُركَب ويُحمَل عليها ويطرقها الفحل." End If  
- إذا كان عدد الرؤوس لا يقبل القسمة لا على 40 ولا على 50 ولكن مجموعه يحتوي على أربعين واحدة وخمسين واحدة أو على أربعين واحدة وعدة خمسينات أو بالعكس أي يحتوي على خمسين واحدة وعدة أربعينات ، أو يحوي عدة أربعينات وعدة خمسينات ، وهنا يجب أن نقوم ببرمجة حلقة نضع فيها متغير تزداد قيمته في كل دورة. ولنأخذ مثالاً افتراضياً :
شخصٌ عنده عدد رؤوس من الإبل تبلغ 270 رأساً ، كم زكاة إبله ؟
الجواب هو : 3 بنات لبونٍ و 3 حِقاقٍ ، ولكن كيف عرفنا ؟ الجواب : عن طريق حلقةٍ برمجيةٍ تقوم بالآتي :

كود الـ PHP :
'متغير يمثل عدد مرات دوران الحلقة
  Dim s As Integer
  '
قيمة المتغير البدائية صفر
  s 
0
  
Do
     
'في كل دورة سنضيف للمتغير واحداً
     s = s + 1
     '
نأخذ عدد الرؤوس ثم نطرح منه 40 مضروبة بالمتغير الذي ستكون قيمته واحداً أول دورة
     
'الناتج نقسمه على 50 فإن كان الباقي صفراً نعطيه النتيجة وإلا ننزل للشرط الثاني
     If (LeftOver - (40 * s)) Mod 50 = 0 Then
        LblResultAnimal = "يتوجب عليك إخراج : " & s & " بنت لبون" & " و " & Int((LeftOver - (40 * s)) / 50) & " حِقّة"
        Exit Do
     '
الشرط الثاني نأخذ عدد الرؤوس ثم نطرح منه 50 مضروبة بالمتغير الذي ستكون قيمته واحداً أول دورة
     
'الناتج نقسمه على 40 فإن كان الباقي صفراً نعطيه النتيجة وإلا سندور دورة ثانية
     '
وفي الدورة الثانية ستصبح قيمة المتغير اثنان وهكذا
     
ElseIf (LeftOver - (50 s)) Mod 40 0 Then
        LblResultAnimal 
"يتوجب عليك إخراج : " Int((LeftOver - (50 s)) / 40) & " بنت لبون" " و " " حِقّة"
        
Exit Do
     
End If
  
Loop Until LblResultAnimal <> ""
  
TxtExplicationlAnimal.Text "تجري مذاهب الفقهاء في زكاة الإبل حسب حالتك هذه : في كل 40 منها يتوجب عليك إخراج بنت لبون ، وفي كل 50 منها يتوجب عليك إخراج حِقّة." vbNewLine _
  
"# بنت لبون : أي أتمت سنتين ودخلت في الثالثة ، سميت بذلك لأن أمها آن لها أن تلد فتصير لبوناً أي ذات لبنٍ لأخرى غالباً." vbNewLine _
  
"# حِقّة : أي أتمت ثلاث سنواتٍ ودخلت في الرابعة ، سميت بذلك لأنها استحقت أن تُركَب ويُحمَل عليها ويطرقها الفحل."  
وهذا هو الكود النهائي والكامل لزكاة الإبل حسب مذهب الجمهور :
كود الـ PHP :
'زكاة الإبل عند الجمهور
Dim LeftOver As String
LblResultAnimal.Caption = ""
LeftOver = (TxtAnimal.Text Mod 10)
LeftOver = TxtAnimal.Text - LeftOver
'
إِذَا زَادَتْ عَلَى عِشْرِينَ وَمِائَةٍ فَفِي كُل أَرْبَعِينَ بِنْتُ لَبُونٍ ، وَفِي كُل خَمْسِينَ حِقَّةٌ 'بنت مخاض: لها سنة ودخلت في الثانية
'
بنت لبونأتمت سنتين ودخلت في الثالثة 'حِقّة: أتمت ثلاث سنين ودخلت في الرابعة
'
جَذَعة:  أتمت أربع سنين ودخلت في الخامسة If Trim(TxtAnimal.Text) < 5 Then
   LblResultAnimal
.Caption "لا يتوجب عليك إخراج شيءٍ ، فالحد الأدنى لنصاب زكاة الإبل هو : 5 رؤوس"
   
TxtExplicationlAnimal.Text "اتفق جمهور العلماء على أن الحد الأدنى لزكاة الإبل في الشريعة الإسلامية هو 5 رؤوس ، وعدد رؤوس إبلك لم يبلغ ذلك الحد ، لذا لا يتوجب عليك إخراج أي شيءٍ."
   
Exit Sub
End 
If

If 
TxtAnimal.Text 10 And TxtAnimal.Text 4 Then
   LblResultAnimal
.Caption "يتوجب عليك إخراج : " "شاة واحدة"
   
TxtExplicationlAnimal.Text "اتفق جمهور العلماء على أن رؤوس الإبل إذا كانت ما بين 5 إلى 9 فتجب فيها شاة واحدة فقط." ElseIf TxtAnimal.Text >= 10 And TxtAnimal.Text 15 Then
   LblResultAnimal
.Caption "يتوجب عليك إخراج : " "شاتين"
   
TxtExplicationlAnimal.Text "اتفق جمهور العلماء على أن رؤوس الإبل إذا كانت ما بين 10 إلى 14 فتجب فيها شاتان فقط." ElseIf TxtAnimal.Text >= 15 And TxtAnimal.Text 20 Then
   LblResultAnimal
.Caption "يتوجب عليك إخراج : " "ثلاث شياه"
   
TxtExplicationlAnimal.Text "اتفق جمهور العلماء على أن رؤوس الإبل إذا كانت ما بين 15 إلى 19 فتجب فيها ثلاث شياهٍ فقط." ElseIf TxtAnimal.Text >= 20 And TxtAnimal.Text 25 Then
   LblResultAnimal
.Caption "يتوجب عليك إخراج : " "أربع شياه"
   
TxtExplicationlAnimal.Text "اتفق جمهور العلماء على أن رؤوس الإبل إذا كانت ما بين 20 إلى 24 فتجب فيها أربع شياهٍ فقط." ElseIf TxtAnimal.Text >= 25 And TxtAnimal.Text 36 Then
   LblResultAnimal
.Caption "يتوجب عليك إخراج : " "بنت مخاض"
   
TxtExplicationlAnimal.Text "اتفق جمهور العلماء على أن رؤوس الإبل إذا كانت ما بين 25 إلى 35 فتجب فيها بنت مخاض." vbNewLine _
   
"# بنت مخاض : أي لها سنة ودخلت في الثانية ، سميت بذلك لأن أمها غالباً تكون مَخاضاً أي حاملاً." ElseIf TxtAnimal.Text >= 36 And TxtAnimal.Text 46 Then
   LblResultAnimal
.Caption "يتوجب عليك إخراج : " "بنت لبون "
   
TxtExplicationlAnimal.Text "اتفق جمهور العلماء على أن رؤوس الإبل إذا كانت ما بين 36 إلى 45 فتجب فيها بنت لبون." vbNewLine _
   
"# بنت لبون : أي أتمت سنتين ودخلت في الثالثة ، سميت بذلك لأن أمها آن لها أن تلد فتصير لبوناً أي ذات لبنٍ لأخرى غالباً." ElseIf TxtAnimal.Text >= 46 And TxtAnimal.Text 61 Then
   LblResultAnimal
.Caption "يتوجب عليك إخراج : " "حِقّة"
   
TxtExplicationlAnimal.Text "اتفق جمهور العلماء على أن رؤوس الإبل إذا كانت ما بين 46 إلى 60 فتجب فيها حِقّة." vbNewLine _
   
"# حِقّة : أي أتمت ثلاث سنواتٍ ودخلت في الرابعة ، سميت بذلك لأنها استحقت أن تُركَب ويُحمَل عليها ويطرقها الفحل." ElseIf TxtAnimal.Text >= 61 And TxtAnimal.Text 76 Then
   LblResultAnimal
.Caption "يتوجب عليك إخراج : " "جَذَعة"
   
TxtExplicationlAnimal.Text "اتفق جمهور العلماء على أن رؤوس الإبل إذا كانت ما بين 61 إلى 75 فتجب فيها جَذَعة." vbNewLine _
   
"# جَذَعة : أي أتمت أربع سنواتٍ ودخلت في الخامسة." ElseIf TxtAnimal.Text >= 76 And TxtAnimal.Text 91 Then
   LblResultAnimal
.Caption "يتوجب عليك إخراج : " "بنتا لبون"
   
TxtExplicationlAnimal.Text "اتفق جمهور العلماء على أن رؤوس الإبل إذا كانت ما بين 76 إلى 90 فتجب فيها بنتا لبون." vbNewLine _
   
"# بنت لبون : أي أتمت سنتين ودخلت في الثالثة ، سميت بذلك لأن أمها آن لها أن تلد فتصير لبوناً أي ذات لبنٍ لأخرى غالباً." ElseIf TxtAnimal.Text >= 91 And TxtAnimal.Text 121 Then
   LblResultAnimal
.Caption "يتوجب عليك إخراج : " "حِقتان"
   
TxtExplicationlAnimal.Text "اتفق جمهور العلماء على أن رؤوس الإبل إذا كانت ما بين 91 إلى 120 فتجب فيها حِقتان." vbNewLine _
   
"# حِقّة : أي أتمت ثلاث سنواتٍ ودخلت في الرابعة ، سميت بذلك لأنها استحقت أن تُركَب ويُحمَل عليها ويطرقها الفحل." ElseIf LeftOver Mod 40 And LeftOver Mod 50 0 Then
   LblResultAnimal 
"يتوجب عليك إخراج : " LeftOver 40 " بنت لبون" " أو " LeftOver 50 " حِقّة"
   
TxtExplicationlAnimal.Text "تجري مذاهب الجمهور في زكاة الإبل حسب حالتك هذه : في كل 40 منها يتوجب عليك إخراج بنت لبون ، وفي كل 50 منها يتوجب عليك إخراج حِقّة ، وعدد رؤوس البقر عندك تنطبق عليه الحالتان." vbNewLine _
   
"# بنت لبون : أي أتمت سنتين ودخلت في الثالثة ، سميت بذلك لأن أمها آن لها أن تلد فتصير لبوناً أي ذات لبنٍ لأخرى غالباً." vbNewLine _
   
"# حِقّة : أي أتمت ثلاث سنواتٍ ودخلت في الرابعة ، سميت بذلك لأنها استحقت أن تُركَب ويُحمَل عليها ويطرقها الفحل." ElseIf LeftOver Mod 40 0 Then
   LblResultAnimal 
"يتوجب عليك إخراج : " Int(LeftOver 40) & " بنت لبون"
   
TxtExplicationlAnimal.Text "تجري مذاهب الفقهاء في زكاة الإبل حسب حالتك هذه : في كل 40 منها يتوجب عليك إخراج بنت لبون." vbNewLine _
   
"# بنت لبون : أي أتمت سنتين ودخلت في الثالثة ، سميت بذلك لأن أمها آن لها أن تلد فتصير لبوناً أي ذات لبنٍ لأخرى غالباً." ElseIf LeftOver Mod 50 0 Then
   LblResultAnimal 
"يتوجب عليك إخراج : " Int(LeftOver 50) & " حِقّة"
   
TxtExplicationlAnimal.Text "تجري مذاهب الفقهاء في زكاة الإبل حسب حالتك هذه : في كل 50 منها يتوجب عليك إخراج حِقّة." vbNewLine _
   
"# حِقّة : أي أتمت ثلاث سنواتٍ ودخلت في الرابعة ، سميت بذلك لأنها استحقت أن تُركَب ويُحمَل عليها ويطرقها الفحل." Else
  
'متغير يمثل عدد مرات دوران الحلقة
  Dim s As Integer
  '
قيمة المتغير البدائية صفر
  s 
0
  
Do
     
'في كل دورة سنضيف للمتغير واحداً
     s = s + 1
     '
نأخذ عدد الرؤوس ثم نطرح منه 40 مضروبة بالمتغير الذي ستكون قيمته واحداً أول دورة
     
'الناتج نقسمه على 50 فإن كان الباقي صفراً نعطيه النتيجة وإلا ننزل للشرط الثاني
     If (LeftOver - (40 * s)) Mod 50 = 0 Then
        LblResultAnimal = "يتوجب عليك إخراج : " & s & " بنت لبون" & " و " & Int((LeftOver - (40 * s)) / 50) & " حِقّة"
        Exit Do
     '
الشرط الثاني نأخذ عدد الرؤوس ثم نطرح منه 50 مضروبة بالمتغير الذي ستكون قيمته واحداً أول دورة
     
'الناتج نقسمه على 40 فإن كان الباقي صفراً نعطيه النتيجة وإلا سندور دورة ثانية
     '
وفي الدورة الثانية ستصبح قيمة المتغير اثنان وهكذا
     
ElseIf (LeftOver - (50 s)) Mod 40 0 Then
        LblResultAnimal 
"يتوجب عليك إخراج : " Int((LeftOver - (50 s)) / 40) & " بنت لبون" " و " " حِقّة"
        
Exit Do
     
End If
  
Loop Until LblResultAnimal <> ""
  
TxtExplicationlAnimal.Text "تجري مذاهب الفقهاء في زكاة الإبل حسب حالتك هذه : في كل 40 منها يتوجب عليك إخراج بنت لبون ، وفي كل 50 منها يتوجب عليك إخراج حِقّة." vbNewLine _
  
"# بنت لبون : أي أتمت سنتين ودخلت في الثالثة ، سميت بذلك لأن أمها آن لها أن تلد فتصير لبوناً أي ذات لبنٍ لأخرى غالباً." vbNewLine _
  
"# حِقّة : أي أتمت ثلاث سنواتٍ ودخلت في الرابعة ، سميت بذلك لأنها استحقت أن تُركَب ويُحمَل عليها ويطرقها الفحل." End If  
# مذهب الحنفية :
الحنفية اتفقوا مع الجمهور في النصاب من أوله إلى 120 رأساً ، ولكنهم اختلفوا معهم فيما بعد 120 رأساً.
وقد رأينا سابقاً مذهب الجمهور بأنه إذا زاد الرقم عن ذلك ففي كل 40 بنت لبونٍ ، وفي كل 50 حِقّةٌ.
أما الحنفية فذهبوا إلى أن الفريضة تستأنف بعد 120 ، ففي كل خمسٍ مما زاد عليها شاةٌ بالإضافة إلى الحِقّتين ، فإن بلغ الزّائد ما فيه بنتُ مخاضٍ أو بنتُ لبونٍ وجبت إلى أن يبلغ الزائد ما فيه حِقّةٌ فتجب.
قد يقول قائل : هذا الكلام الفقهي غير واضحٍ وخاصةً بالنسبة للمبرمج !!.. هذا صحيحٌ ، لذا دعوني أشرح لكم قول الحنفية من الناحية العلمية والبرمجية :
الحنفية قصدوا بأن عدد رؤوس الإبل إذا كان أكثر من 120 فإننا نأخذ عن كل خمسين حِقّةٌ ، ثم ننظر إلى الباقي إن كان هنالك باقٍ :
- فإذا كان أقل من 25 فتجب في كل 5 رؤوس شاة وفي 10 رؤوس شاتان وفي 15 رأساً ثلاث شياهٍ وفي 20 رأساً أربع شياهٍ ، طبعاً هذا بالإضافة للحِقاق المتوجبة عليك.
- وإذا كان أكبر من 24 وأصغر من 36 فتجب فيه بنت مخاضٍ ، طبعاً هذا بالإضافة للحِقاق المتوجبة عليك.
- وإذا كان أكبر من 35 وأصغر من 46 فتجب فيه بنت لبونٍ ، طبعاً هذا بالإضافة للحِقاق المتوجبة عليك.
- وإذا كان أكبر من 45 وأصغر من 50 فتجب فيه حِقّة تضاف للحِقاق المتوجبة عليك.
وإليك بعض الأمثلة حسب رأي الحنفية فيما زاد على 120 رأساً :
^ شخصٌ عنده 220 رأساً من الإبل : زكاته هي : أربع حِقاقٍ وأربع شياهٍ. (220 / 50 = 4 حِقاقٍ. الباقي من القسمة 20 فيها أربعة شياهٍ).
^ شخصٌ عنده 325 رأساً من الإبل : زكاته هي : ست حِقاقٍ وبنت مخاضٍ. (325 / 50 = 6 حِقاقٍ. الباقي من القسمة 25 فيه بنت مخاضٍ.)
^ شخصٌ عنده 295 رأساً من الإبل : زكاته هي : خمس حِقاقٍ وبنت لبونٍ. (295 / 50 = 5 حِقاقٍ. الباقي من القسمة 45 فيه بنت لبونٍ).
^ شخصٌ عنده 296 رأساً من الإبل : زكاته هي : ست حِقاقٍ. (296 / 50 = 5 حِقاقٍ. الباقي من القسمة 46 وفيه حِقّةٌ. أصبح المجموع ست حِقاقٍ).
^ شخصٌ عنده 500 رأسٍ من الإبل : زكاته هي : عشر حِقاقٍ. (500 / 50 = 10 حِقاقٍ. ولا يتوجب عليه شيءٌ آخر لأن الباقي من القسمة صفر).
الأمر أظنه أصبح سهلاً من الناحية البرمجيّة ، وإليك الكود النهائي لزكاة الإبل حسب مذهب الحنفية :

كود الـ PHP :
'زكاة الإبل عند الحنفية
LblResultAnimal.Caption = ""
If Trim(TxtAnimal.Text) < 5 Then
   LblResultAnimal.Caption = "لا يتوجب عليك إخراج شيءٍ ، فالحد الأدنى لنصاب زكاة الإبل هو : 5 رؤوس"
   TxtExplicationlAnimal.Text = "اتفق جمهور العلماء على أن الحد الأدنى لزكاة الإبل في الشريعة الإسلامية هو 5 رؤوس ، وعدد رؤوس إبلك لم يبلغ ذلك الحد ، لذا لا يتوجب عليك إخراج أي شيءٍ."
   Exit Sub
End If

If TxtAnimal.Text < 10 And TxtAnimal.Text > 4 Then
   LblResultAnimal.Caption = "يتوجب عليك إخراج : " & "شاة واحدة"
   TxtExplicationlAnimal.Text = "اتفق جمهور العلماء على أن رؤوس الإبل إذا كانت ما بين 5 إلى 9 فتجب فيها شاة واحدة فقط."
ElseIf TxtAnimal.Text >= 10 And TxtAnimal.Text < 15 Then
   LblResultAnimal.Caption = "يتوجب عليك إخراج : " & "شاتان"
   TxtExplicationlAnimal.Text = "اتفق جمهور العلماء على أن رؤوس الإبل إذا كانت ما بين 10 إلى 14 فتجب فيها شاتان فقط."
ElseIf TxtAnimal.Text >= 15 And TxtAnimal.Text < 20 Then
   LblResultAnimal.Caption = "يتوجب عليك إخراج : " & "ثلاث شياه"
   TxtExplicationlAnimal.Text = "اتفق جمهور العلماء على أن رؤوس الإبل إذا كانت ما بين 15 إلى 19 فتجب فيها ثلاث شياهٍ فقط."
ElseIf TxtAnimal.Text >= 20 And TxtAnimal.Text < 25 Then
   LblResultAnimal.Caption = "يتوجب عليك إخراج : " & "أربع شياه"
   TxtExplicationlAnimal.Text = "اتفق جمهور العلماء على أن رؤوس الإبل إذا كانت ما بين 20 إلى 24 فتجب فيها أربع شياهٍ فقط."
ElseIf TxtAnimal.Text >= 25 And TxtAnimal.Text < 36 Then
   LblResultAnimal.Caption = "يتوجب عليك إخراج : " & "بنت مخاض"
   TxtExplicationlAnimal.Text = "اتفق جمهور العلماء على أن رؤوس الإبل إذا كانت ما بين 25 إلى 35 فتجب فيها بنت مخاض." & vbNewLine & _
   "# بنت مخاض : أي لها سنة ودخلت في الثانية ، سميت بذلك لأن أمها غالباً تكون مَخاضاً أي حاملاً."
ElseIf TxtAnimal.Text >= 36 And TxtAnimal.Text < 46 Then
   LblResultAnimal.Caption = "يتوجب عليك إخراج : " & "بنت لبون"
   TxtExplicationlAnimal.Text = "اتفق جمهور العلماء على أن رؤوس الإبل إذا كانت ما بين 36 إلى 45 فتجب فيها بنت لبون." & vbNewLine & _
   "# بنت لبون : أي أتمت سنتين ودخلت في الثالثة ، سميت بذلك لأن أمها آن لها أن تلد فتصير لبوناً أي ذات لبنٍ لأخرى غالباً."
ElseIf TxtAnimal.Text >= 46 And TxtAnimal.Text < 61 Then
   LblResultAnimal.Caption = "يتوجب عليك إخراج : " & "حِقّة"
   TxtExplicationlAnimal.Text = "اتفق جمهور العلماء على أن رؤوس الإبل إذا كانت ما بين 46 إلى 60 فتجب فيها حِقّة." & vbNewLine & _
   "# حِقّة : أي أتمت ثلاث سنواتٍ ودخلت في الرابعة ، سميت بذلك لأنها استحقت أن تُركَب ويُحمَل عليها ويطرقها الفحل."
ElseIf TxtAnimal.Text >= 61 And TxtAnimal.Text < 76 Then
   LblResultAnimal.Caption = "يتوجب عليك إخراج : " & "جَذَعة"
   TxtExplicationlAnimal.Text = "اتفق جمهور العلماء على أن رؤوس الإبل إذا كانت ما بين 61 إلى 75 فتجب فيها جَذَعة." & vbNewLine & _
   "# جَذَعة : أي أتمت أربع سنواتٍ ودخلت في الخامسة."
ElseIf TxtAnimal.Text >= 76 And TxtAnimal.Text < 91 Then
   LblResultAnimal.Caption = "يتوجب عليك إخراج : " & "بنتا لبون"
   TxtExplicationlAnimal.Text = "اتفق جمهور العلماء على أن رؤوس الإبل إذا كانت ما بين 76 إلى 90 فتجب فيها بنتا لبون." & vbNewLine & _
   "# بنت لبون : أي أتمت سنتين ودخلت في الثالثة ، سميت بذلك لأن أمها آن لها أن تلد فتصير لبوناً أي ذات لبنٍ لأخرى غالباً."
ElseIf TxtAnimal.Text >= 91 And TxtAnimal.Text < 125 Then
   LblResultAnimal.Caption = "يتوجب عليك إخراج : " & "حِقتان"
   TxtExplicationlAnimal.Text = "ذهب الحنفية إلى أن رؤوس الإبل إذا كانت ما بين 91 إلى 124 فتجب فيها حِقتان." & vbNewLine & _
   "# حِقّة : أي أتمت ثلاث سنواتٍ ودخلت في الرابعة ، سميت بذلك لأنها استحقت أن تُركَب ويُحمَل عليها ويطرقها الفحل."
ElseIf TxtAnimal.Text >= 125 And TxtAnimal.Text < 130 Then
   LblResultAnimal.Caption = "يتوجب عليك إخراج : " & "حِقتان وشاة"
   TxtExplicationlAnimal.Text = "ذهب الحنفية إلى أن رؤوس الإبل إذا كانت ما بين 125 إلى 129 فتجب فيها حِقتان وشاة." & vbNewLine & _
   "# حِقّة : أي أتمت ثلاث سنواتٍ ودخلت في الرابعة ، سميت بذلك لأنها استحقت أن تُركَب ويُحمَل عليها ويطرقها الفحل."
ElseIf TxtAnimal.Text >= 130 And TxtAnimal.Text < 135 Then
   LblResultAnimal.Caption = "يتوجب عليك إخراج : " & "حِقتان وشاتان"
   TxtExplicationlAnimal.Text = "ذهب الحنفية إلى أن رؤوس الإبل إذا كانت ما بين 130 إلى 134 فتجب فيها حِقتان وشاتان." & vbNewLine & _
   "# حِقّة : أي أتمت ثلاث سنواتٍ ودخلت في الرابعة ، سميت بذلك لأنها استحقت أن تُركَب ويُحمَل عليها ويطرقها الفحل."
ElseIf TxtAnimal.Text >= 135 And TxtAnimal.Text < 140 Then
   LblResultAnimal.Caption = "يتوجب عليك إخراج : " & "حِقتان و3 شياه"
   TxtExplicationlAnimal.Text = "ذهب الحنفية إلى أن رؤوس الإبل إذا كانت ما بين 135 إلى 139 فتجب فيها حِقتان و3 شياه." & vbNewLine & _
   "# حِقّة : أي أتمت ثلاث سنواتٍ ودخلت في الرابعة ، سميت بذلك لأنها استحقت أن تُركَب ويُحمَل عليها ويطرقها الفحل."
ElseIf TxtAnimal.Text >= 140 And TxtAnimal.Text < 145 Then
   LblResultAnimal.Caption = "يتوجب عليك إخراج : " & "حِقتان و4 شياه"
   TxtExplicationlAnimal.Text = "ذهب الحنفية إلى أن رؤوس الإبل إذا كانت ما بين 140 إلى 144 فتجب فيها حِقتان و4 شياه." & vbNewLine & _
   "# حِقّة : أي أتمت ثلاث سنواتٍ ودخلت في الرابعة ، سميت بذلك لأنها استحقت أن تُركَب ويُحمَل عليها ويطرقها الفحل."
ElseIf TxtAnimal.Text >= 145 And TxtAnimal.Text < 150 Then
   LblResultAnimal.Caption = "يتوجب عليك إخراج : " & "حِقتان وبنت مخاض"
   TxtExplicationlAnimal.Text = "ذهب الحنفية إلى أن رؤوس الإبل إذا كانت ما بين 145 إلى 149 فتجب فيها حِقتان وبنت مخاض." & vbNewLine & _
   "# حِقّة : أي أتمت ثلاث سنواتٍ ودخلت في الرابعة ، سميت بذلك لأنها استحقت أن تُركَب ويُحمَل عليها ويطرقها الفحل." & vbNewLine & _
   "# بنت مخاض : أي لها سنة ودخلت في الثانية ، سميت بذلك لأن أمها غالباً تكون مَخاضاً أي حاملاً."
ElseIf TxtAnimal.Text >= 150 And TxtAnimal.Text < 155 Then
   LblResultAnimal.Caption = "يتوجب عليك إخراج : " & "ثلاث حِقاق"
   TxtExplicationlAnimal.Text = "ذهب الحنفية إلى أن رؤوس الإبل إذا كانت ما بين 150 إلى 154 فتجب فيها ثلاث حِقاق." & vbNewLine & _
   "# حِقّة : أي أتمت ثلاث سنواتٍ ودخلت في الرابعة ، سميت بذلك لأنها استحقت أن تُركَب ويُحمَل عليها ويطرقها الفحل."
Else
   LblResultAnimal.Caption = Int(TxtAnimal.Text / 50) & " حِقّة"
   If TxtAnimal.Text Mod 50 < 25 And TxtAnimal.Text Mod 50 > 4 Then
      LblResultAnimal.Caption = "يتوجب عليك إخراج : " & LblResultAnimal.Caption & " و " & Int((TxtAnimal.Text Mod 50) / 5) & " شاة"
      TxtExplicationlAnimal.Text = "عند الحنفية تستأنف الفريضة في الإبل فبالإضافة للحِقّة التي تجب في كل 50 رأساً من الإبل ، ننظر للباقي فإذا كان أقل من 25 فتجب في كل 5 رؤوس شاة وفي 10 رؤوس شاتان وفي 15 رأساً ثلاث شياهٍ وفي 20 رأساً أربع شياهٍ ، طبعاً هذا بالإضافة للحِقاق المتوجبة عليك." & vbNewLine & _
      "# حِقّة : أي أتمت ثلاث سنواتٍ ودخلت في الرابعة ، سميت بذلك لأنها استحقت أن تُركَب ويُحمَل عليها ويطرقها الفحل."
   ElseIf TxtAnimal.Text Mod 50 >= 25 And TxtAnimal.Text Mod 50 < 36 Then
      LblResultAnimal.Caption = "يتوجب عليك إخراج : " & LblResultAnimal.Caption & " و " & "بنت مخاض"
      TxtExplicationlAnimal.Text = "عند الحنفية تستأنف الفريضة في الإبل فبالإضافة للحِقّة التي تجب في كل 50 رأساً من الإبل ، ننظر للباقي فإذا كان أكبر من 24 وأصغر من 36 فتجب فيه بنت مخاض ، طبعاً هذا بالإضافة للحِقاق المتوجبة عليك." & vbNewLine & _
      "# حِقّة : أي أتمت ثلاث سنواتٍ ودخلت في الرابعة ، سميت بذلك لأنها استحقت أن تُركَب ويُحمَل عليها ويطرقها الفحل." & vbNewLine & _
      "# بنت مخاض : أي لها سنة ودخلت في الثانية ، سميت بذلك لأن أمها غالباً تكون مَخاضاً أي حاملاً."
   ElseIf TxtAnimal.Text Mod 50 >= 36 And TxtAnimal.Text Mod 50 < 46 Then
      LblResultAnimal.Caption = "يتوجب عليك إخراج : " & LblResultAnimal.Caption & " و " & "بنت لبون"
      TxtExplicationlAnimal.Text = "عند الحنفية تستأنف الفريضة في الإبل فبالإضافة للحِقّة التي تجب في كل 50 رأساً من الإبل ، ننظر للباقي فإذا كان أكبر من 35 وأصغر من 46 فتجب فيه بنت لبون ، طبعاً هذا بالإضافة للحِقاق المتوجبة عليك." & vbNewLine & _
      "# حِقّة : أي أتمت ثلاث سنواتٍ ودخلت في الرابعة ، سميت بذلك لأنها استحقت أن تُركَب ويُحمَل عليها ويطرقها الفحل." & vbNewLine & _
      "# بنت لبون : أي أتمت سنتين ودخلت في الثالثة ، سميت بذلك لأن أمها آن لها أن تلد فتصير لبوناً أي ذات لبنٍ لأخرى غالباً."
   ElseIf TxtAnimal.Text Mod 50 >= 46 And TxtAnimal.Text Mod 50 < 50 Then
      LblResultAnimal.Caption = "يتوجب عليك إخراج : " & Int(TxtAnimal.Text / 50) + 1 & " حِقّة"
      TxtExplicationlAnimal.Text = "عند الحنفية تستأنف الفريضة في الإبل فبالإضافة للحِقّة التي تجب في كل 50 رأساً من الإبل ، ننظر للباقي فإذا كان أكبر من 45 وأصغر من 50 فتجب فيه حِقّة تضاف للحِقاق المتوجبة عليك." & vbNewLine & _
      "# حِقّة : أي أتمت ثلاث سنواتٍ ودخلت في الرابعة ، سميت بذلك لأنها استحقت أن تُركَب ويُحمَل عليها ويطرقها الفحل."
   Else
      LblResultAnimal.Caption = "يتوجب عليك إخراج : " & Int(TxtAnimal.Text / 50) & " حِقّة"
      TxtExplicationlAnimal.Text = "تجري مذاهب الفقهاء في زكاة الإبل حسب حالتك هذه : في كل 50 منها يتوجب عليك إخراج حِقّة." & vbNewLine & _
     "# حِقّة : أي أتمت ثلاث سنواتٍ ودخلت في الرابعة ، سميت بذلك لأنها استحقت أن تُركَب ويُحمَل عليها ويطرقها الفحل."
   End If
End If  
الثاني – البقر :
نصاب البقر : نصابها محلُ اتفاقٍ بين العلماء ، وإذا فهمت نصاب زكاة الإبل حسب رأي الجمهور من الناحية البرمجية فسيسهل عليك فهم نصاب زكاة البقر ، وإليك التفصيل :
من 1 - 29 لا شيء فيها.
من 30 - 39 فيها تبيعٌ أو تبيعةٌ (عند الجمهور : هو ما أتم السنة ودخل في الثانية. وأما عند المالكية : فهو ما أتم السنتين ودخل في الثالثة).
من 40 - 59 فيها مسنّةٌ (عند الجمهور : هي ما أتمت السنتين ودخلت في الثالثة. وأما عند المالكية : فهي ما أتمت ثلاث سنوات ودخلت في الرابعة).
من 60 - 69 فيها تبيعان.
من 70 - 79 فيها تبيعٌ ومسنّةٌ.
من 80 - 89 فيها مسنّتان.
من 90 - 99 فيها 3 أتبعةٍ.
من 100 - 109 فيها تبيعان ومسنّةٌ.
من 110 - 119 فيها تبيعٌ ومسنّتان.
من 120 - 129 فيها 4 أتبعةٍ أو 3 مسنّاتٍ.
وهكذا في كل ثلاثين تبيعٌ أو تبيعةٌ ، وفي كل أربعين مسنّةٌ.
كما تشاهد فكرة الكود لا تختلف أبداً عن نصاب زكاة الإبل عند الجمهور اللهم إلا التعديل في الأرقام ، وإليك كود حساب زكاة البقر :

كود الـ PHP :
'زكاة البقر
LblResultAnimal.Caption = ""
If Trim(TxtAnimal.Text) < 30 Then
   LblResultAnimal.Caption = "لا يتوجب عليك إخراج شيءٍ ، فالحد الأدنى لنصاب زكاة البقر هو : 30 بقرة"
   TxtExplicationlAnimal.Text = "اتفق جمهور العلماء على أن الحد الأدنى لزكاة البقر في الشريعة الإسلامية هو 30 بقرة وعدد رؤوس البقر عندك لم يبلغ ذلك الحد ، لذا لا يتوجب عليك إخراج أي شيءٍ."
   Exit Sub
End If
Dim LeftOver As String
LeftOver = (TxtAnimal.Text Mod 10)
LeftOver = TxtAnimal.Text - LeftOver

If LeftOver Mod 30 = 0 And LeftOver Mod 40 = 0 Then
   LblResultAnimal.Caption = "يتوجب عليك إخراج : " & LeftOver / 30 & " تبيع" & " أو " & LeftOver / 40 & " مسنة"
   TxtExplicationlAnimal.Text = "تجري مذاهب الفقهاء في زكاة البقر حسب حالتك هذه : في كل 30 بقرة يتوجب عليك إخراج تبيع أو تبيعة ، وفي كل 40 بقرة يتوجب عليك إخراج مُسِنَّة ، وعدد رؤوس البقر عندك تنطبق عليه الحالتان." & vbNewLine & _
   "# والتبيع أو التبيعة : عند الجمهور : هو ما أتم السنة ودخل في الثانية. وأما عند المالكية : فهو ما أتم السنتين ودخل في الثالثة." & vbNewLine & _
   "# والمسنة : عند الجمهور : هي ما أتمت السنتين ودخلت في الثالثة. وأما عند المالكية : فهي ما أتمت ثلاث سنوات ودخلت في الرابعة."
ElseIf LeftOver Mod 30 = 0 Then
   LblResultAnimal.Caption = "يتوجب عليك إخراج : " & Int(LeftOver / 30) & " تبيع"
   TxtExplicationlAnimal.Text = "تجري مذاهب الفقهاء في زكاة البقر حسب حالتك هذه : في كل 30 بقرة يتوجب عليك إخراج تبيع أو تبيعة." & vbNewLine & _
   "# والتبيع أو التبيعة : عند الجمهور : هو ما أتم السنة ودخل في الثانية. وأما عند المالكية : فهو ما أتم السنتين ودخل في الثالثة."
ElseIf LeftOver Mod 40 = 0 Then
   LblResultAnimal.Caption = "يتوجب عليك إخراج : " & Int(LeftOver / 40) & " مسنة"
   TxtExplicationlAnimal.Text = "تجري مذاهب الفقهاء في زكاة البقر حسب حالتك هذه : في كل 40 بقرة يتوجب عليك إخراج مُسِنَّة." & vbNewLine & _
   "# والمسنة : عند الجمهور : هي ما أتمت السنتين ودخلت في الثالثة. وأما عند المالكية : فهي ما أتمت ثلاث سنوات ودخلت في الرابعة."
Else
  Dim s As Integer
  s = 0
  Do
     s = s + 1
     If (LeftOver - (30 * s)) Mod 40 = 0 Then
        LblResultAnimal.Caption = "يتوجب عليك إخراج : " & s & " تبيع" & " و " & Int((LeftOver - (30 * s)) / 40) & " مسنة"
        Exit Do
     ElseIf (LeftOver - (40 * s)) Mod 30 = 0 Then
        LblResultAnimal.Caption = "يتوجب عليك إخراج : " & Int((LeftOver - (40 * s)) / 30) & " تبيع" & " و " & s & " مسنة"
        Exit Do
     End If
  Loop Until LblResultAnimal.Caption <> ""
  TxtExplicationlAnimal.Text = "تجري مذاهب الفقهاء في زكاة البقر حسب حالتك هذه : في كل 30 بقرة يتوجب عليك إخراج تبيع أو تبيعة ، وفي كل 40 بقرة يتوجب عليك إخراج مُسِنَّة." & vbNewLine & _
  "# والتبيع أو التبيعة : عند الجمهور : هو ما أتم السنة ودخل في الثانية. وأما عند المالكية : فهو ما أتم السنتين ودخل في الثالثة." & vbNewLine & _
  "# والمسنة : عند الجمهور : هي ما أتمت السنتين ودخلت في الثالثة. وأما عند المالكية : فهي ما أتمت ثلاث سنوات ودخلت في الرابعة."
End If  
الثالث – الغنم :
نصاب الغنم : نصابها محلُ اتفاقٍ بين العلماء ، وهو سهلٌ للغاية ، وإليك التفصيل :
من 1 - 39 لا شيء فيها.
من 40 - 120 فيها شاةٌ.
من 121 - 200 فيها شاتان.
من 201 - 399 فيها 3 شياهٍ.
من 400 - 499 فيها 4 شياهٍ.
من 500 - 599 فيها 5 شياهٍ.
وهكذا ما زاد عن ذلك في كل مائة شاةٍ شاةٌ.
أظن أن أي مبرمجٍ مهما كان مستواه يستطيع كتابة كود زكاة الغنم ، وإليكم كود حساب زكاة الغنم :

كود الـ PHP :
'زكاة الغنم
If Trim(TxtAnimal.Text) < 40 Then
   LblResultAnimal.Caption = "لا يتوجب عليك إخراج شيءٍ ، فالحد الأدنى لنصاب زكاة الغنم هو : 40 شاة"
   TxtExplicationlAnimal.Text = "اتفق جمهور العلماء على أن الحد الأدنى لزكاة الغنم في الشريعة الإسلامية هو 40 شاة وعدد رؤوس أغنامك لم يبلغ ذلك الحد ، لذا لا يتوجب عليك إخراج أي شيءٍ."
   Exit Sub
End If

If TxtAnimal.Text < 121 Then
   LblResultAnimal.Caption = "يتوجب عليك إخراج : شاة واحدة كزكاة لأغنامك"
   TxtExplicationlAnimal.Text = "اتفق جمهور العلماء على أن رؤوس الأغنام إذا كانت ما بين 40 إلى 120 فتجب فيها شاة واحدة فقط."
ElseIf TxtAnimal.Text >= 121 And TxtAnimal.Text < 201 Then
   LblResultAnimal.Caption = "يتوجب عليك إخراج : شاتين كزكاة لأغنامك"
   TxtExplicationlAnimal.Text = "اتفق جمهور العلماء على أن رؤوس الأغنام إذا كانت ما بين 121 إلى 200 فتجب فيها شاتان فقط."
ElseIf TxtAnimal.Text >= 201 And TxtAnimal.Text < 400 Then
   LblResultAnimal.Caption = "يتوجب عليك إخراج : ثلاث شياه كزكاة لأغنامك"
   TxtExplicationlAnimal.Text = "اتفق جمهور العلماء على أن رؤوس الأغنام إذا كانت ما بين 201 إلى 399 فتجب فيها ثلاث شياهٍ فقط."
ElseIf TxtAnimal.Text >= 400 Then
   LblResultAnimal.Caption = "يتوجب عليك إخراج : " & Int(TxtAnimal.Text / 100) & " من رؤوس الغنم كزكاة لأغنامك"
   TxtExplicationlAnimal.Text = "اتفق جمهور العلماء على أن رؤوس الأغنام إذا كانت أكثر من 399 فتجب فيها عندئذٍ عن كل مئة رأسٍ من الغنم شاة واحدة."
End If  

ثانياً : زكاة النقدين (الذهب والفضة) :
النقدان : هما الذهب والفضة.
نصاب الذهب والفضة :
نصاب الذهب : عشرون (20) مثقالاً ، وتساوي (85) غراماً.
نصاب الفضة : مائتي (200) درهمٍ ، وهو ما يعادل (595) غراماً تقريباً.
فإن بلغا النصاب أخذ منهما ربع العشر أي 2.5%.
بداية أريد أن أوضح جزئية هامةً تتعلق بالذهب والفضة ، وهي مسألة عيار الذهب أو عيار الفضة ، فمثلاً للذهب عيارات عدةٌ ، منها : عيار 24 وعيار 21 وعيار 18 وغيرهم. وللفضة كذلك عيارات عدةٌ ، منها عيار 1000 وعيار 950 وعيار 925 وغيرهم.
العيار يقصد به نسبة الذهب أو الفضة الموجودة في القطعة التي تمتلكها ؛ فمثلاً الذهب الذي يعتبر عياره 24 قيراطاً يعتبر ذهباً خالصاً غير مخلوطٍ بشيءٍ ، والذهب الذي عياره 21 قيراطاً لا يعتبر ذهباً خالصاً بل يعتبر في اصطلاح الفقهاء ذهباً مغشوشاً أو مخلوطاً بغيره ؛ لأنه ليس بذهبٍ خالصٍ ، بل هو ذهبٌ مسبوكٌ معه غيره من المعادن كالنحاس والفضة والقصدير.
والعلماء عندما اعتبروا أن نصاب الذهب 85 غراماً قصدوا الذهب الخالص ولم يقصدوا الذهب المخلوط مع غيره ، وما يقال عن الذهب يقال عن الفضة أيضاً ؛ لذا اختلف العلماء في النصاب في المغشوش والمخلوط من الذهب والفضة :
المغشوش من الذهب أو الفضة : هو المسبوك مع غيره ، أي عياره أقل من 24 بالنسبة للذهب ، وأقل من 1000 بالنسبة للفضة.
قال الحنفية : إن كان الغالب على الورق المضروب الفضة فهو في حكم الفضة ، فتجب فيه الزكاة كأنه كله فضةٌ ، ولا تزكى زكاة العُرُوض ، ولو كان قد أعدها للتجارة ، قالوا : لأن الدراهم لا تخلو من قليل الغش ؛ لأنها لا تنطبع إلا به ، والغلبة أن تزيد الفضة على النصف.
أما إن كان الغش غالباً فلا يكون لها حكم الفضة بل حكم العُرُوض ، فلا زكاة فيها إلا إن نواها للتجارة وبلغت نصاباً بالقيمة ، فإن لم ينوها للتجارة فإن كانت بحيث يخلّص منها فضةً تبلغ نصاباً وجبت زكاتها ، وإلا فلا .
وقال المالكية : إن كانت الدراهم والدنانير المغشوشة رائجةً كرواج غير المغشوشة فإنها تعامل مثل الكاملة سواء ، فتكون فيها الزكاة إن بلغ وزنها بما فيها من الغش نصاباً ، وأما إن كانت غير رائجةٍ فالعبرة بما فيها من الذهب أو الفضة الخالصين على تقدير التصفية ، فإن بلغ نصاباً زُكّي وإلا فلا.
وقال الشافعية والحنابلة : لاشيء في المغشوش حتى يبلغ خالصه نصاباً كاملاً ، فمن ملك ذهباً أو فضةً مغشوشةً أو مختلطاً بغيره ، فلا زكاة فيه حتى يبلغ قدر الذهب والفضة نصاباً ، وهذا هو الرأي الراجح والموافق لظاهر النصوص.

باختصارٍ :
الحنفية : ذهبوا إلى أن العيار إن كان يساوي النصف أو أكثر فإنه يعامل معاملة الخالص وإلا على تقدير التصفية.
المالكية : إن كان العيار رائجاً في البلد فيعتبر بمثابة الخالص وإلا على تقدير التصفية.
الشافعية والحنابلة : على تقدير التصفية ، وهو الراجح كما أسلفنا.
وبناءً على ذلك عندما تريد حساب زكاة الذهب أو الفضة فيجب أن تأخذ بعين الاعتبار النقاط الآتية :
1- مقدار الذهب أو الفضة.
2- كم هو عيار الذهب أو الفضة ؟
3- هل العيار الذي اخترته هو العيار الرائج في بلدك أم لا ؟
4- سعر الغرام اليوم إن كنت تريد إخراج القيمة.

قبل أن نكتب الكود ما رأيكم أن نصيغ آراء الفقهاء بطريقةٍ علميّةٍ بحيث يستنتج البرنامج آلياً الحالات التي يتفق فيها العلماء والحالات التي يختلفون فيها ، وعندها سنكون أمام عدة حالاتٍ ، هي :
# وجوب إخراج الزكاة باتفاق جمهور العلماء ، وذلك في حالتين :
الأولى : عندما يكون العيار الذي اختاره الشخص هو 24 أو عيار الفضة 1000 ؛ لأنه في هذه الحالة يكون قد اختار العيار الخالص ولا خلاف هنا.
الثانية : عندما تكون كمية الذهب أو الفضة الموجودة أكبر أو تساوي نصاب عيار الذهب أو الفضة المختار بعد تصفيته ؛ مثلاً هنالك شخصٌ عنده 100 غ من الذهب عيار 21 ، كم هي زكاته ؟ الجواب باتفاق جمهور العلماء تجب عليه الزكاة ومقدارها 2.5 غ ، ولكن كيف باتفاق العلماء ؟ دعوني أوضح لكم :
الحنفية : اعتبروا كل ما هو أكبر أو يساوي العيار 12 يعامل معاملة العيار 24 ونصاب العيار 24 هو 85 غ كما أسلفنا ، إذن الزكاة في الحالة السابقة واجبة عندهم.
المالكية : أيضاً متفقون ؛ لأن العيار إن كان رائجاً فسيعتبر بمثابة العيار 24 ونصابه 85 غ وما يملكه الشخص أكثر من ذلك ، وإن كان العيار غير رائجٍ فعلى تقدير تصفيته يكون نصابه 97.14 غ تقريباً وهو أقل من المقدار الذي يملكه الشخص.
الشافعية والحنابلة : أيضاً متفقون لأن العيار 21 بعد تصفيته سيكون نصابه 97.14 تقريباً وهو أقل من المقدار الذي يملكه الشخص.
ملاحظة : معادلة التصفية هي : 85 / (21 / 24) ؛ حيث 85 هي نصاب الذهب الخالص ، 21 هو العيار الذي اخترناه ، 24 هو عيار الذهب الخالص.

# وجوب إخراج الزكاة باتفاق الحنفية والمالكية فقط ، وذلك في حالةٍ واحدةٍ :
عندما تكون كمية الذهب أكبر من أو تساوي 85 غ أو كمية الفضة أكبر من أو تساوي 595 غ وفي الوقت نفسه تكون أقل من نصاب الذهب أو الفضة بعد التصفية ويكون العيار المختار أكبر أو يساوي 12 ويكون هو العيار الرائج في البلد.
مثلاً : هنالك شخصٌ عنده 90 غ من الذهب عيار 21 وهو العيار الرائج في بلده ، كم هي زكاته ؟
الجواب : زكاته 2.25 غ باتفاق الحنفية والمالكية ، ولا زكاة عليه باتفاق الشافعية والحنابلة ، كيف ذلك ؟
بالنسبة للحنفية : فهم يعتبرون أن عيار الذهب إذا ما كان أكبر من العيار 12 أو يساويه فإنه يعامل عندئذٍ معاملة الذهب الخالص الذي عياره 24 ، فمتى ما وصل الذهب إلى 85 غ فأكثر وجبت فيه الزكاة حسب هذه الحالة.
أما المالكية : فالعبرة عندهم الرواج ، والعيار الذي اخترته هو العيار الرائج في بلدك حسب اختيارك ، وبالتالي تجب فيه الزكاة متى ما كان ما تملكه أكثر من 85 غ من الذهب.
أما عند الشافعية والحنابلة : فيعتبرون هذا العيار الذي اخترته مختلطاً بغيره كونه ليس بذهبٍ خالصٍ ، وبالتالي لا تجب فيه الزكاة حتى تبلغ نسبة الذهب الموجودة في هذا العيار نصاب الزكاة ، وهي حوالي 97.14 غ تقريباً ، وما يملكه الشخص أقل من ذلك لذا لا يتوجب عليك إخراج الزكاة عندهم.

# وجوب إخراج الزكاة حسب رأي الحنفية فقط ، وذلك في حالةٍ واحدةٍ :
عندما تكون كمية الذهب أكبر من أو تساوي 85 غ أو كمية الفضة أكبر من أو تساوي 595 غ وفي الوقت نفسه تكون أقل من نصاب الذهب أو الفضة بعد التصفية ويكون العيار المختار أكبر أو يساوي 12 ولا يكون هو العيار الرائج في البلد.
مثلاً : هنالك شخصٌ عنده 90 غ من الذهب عيار 21 وهذا العيار ليس هو العيار الرائج في بلده ، كم هي زكاته ؟
الجواب : زكاته 2.25 غ حسب رأي الحنفية ، ولا زكاة عليه باتفاق المالكية والشافعية والحنابلة ، كيف ذلك ؟
بالنسبة للحنفية : فهم يعتبرون أن عيار الذهب إذا ما كان أكبر من العيار 12 أو يساويه فإنه يعامل عندئذٍ معاملة الذهب الخالص الذي عياره 24 ، فمتى ما وصل الذهب إلى 85 غ فأكثر وجبت فيه الزكاة حسب هذه الحالة.
أما المالكية والشافعية والحنابلة : فلا يوجبون عليه الزكاة ؛ لأن عياره عند المالكية غير رائج وبعد تصفيته سيكون نصابه 97.14 غ وما يملكه الشخص أقل من النصاب ، وكذلك الحال بالنسبة للشافعية والحنابلة ؛ فبعد تصفيته ستكون الكمية الموجودة عند الشخص أقل من النصاب المتوجب شرعاً وهو 97.14 غ كما أسلفنا.

# وجوب إخراج الزكاة حسب رأي المالكية فقط ، وذلك في حالةٍ واحدةٍ :
عندما تكون كمية الذهب أكبر من أو تساوي 85 غ أو كمية الفضة أكبر من أو تساوي 595 غ وفي الوقت نفسه تكون أقل من نصاب الذهب أو الفضة بعد التصفية ويكون العيار المختار أصغر من 12 ويكون هو العيار الرائج في البلد.
مثلاً : هنالك شخصٌ عنده 90 غ من الذهب عيار 10 وهو العيار الرائج في بلده ، كم هي زكاته ؟
الجواب : زكاته 2.25 غ حسب رأي المالكية ، ولا زكاة عليه باتفاق الحنفية والشافعية والحنابلة ، كيف ذلك ؟
بالنسبة للمالكية : فقد أوجبوا الزكاة في هذه الحالة ؛ لأن العبرة عندهم في عيار الذهب هو الرواج ، فمتى ما راج عيار الذهب اعتبر مثله مثل الذهب الذي عياره 24 ، وبالتالي تجب فيه الزكاة عندما يكون أكثر من 85 غ ، وهذا ينطبق على هذه الحالة.
أما الحنفية والشافعية والحنابلة : فلا يوجبون عليه الزكاة ؛ لأن عياره عند الحنفية أقل من 12 وبعد تصفيته سيكون نصابه 204 غ (معادلة التصفية هي : 85 / (10 / 24) = 204 ) وما يملكه الشخص أقل من النصاب ، وكذلك الحال بالنسبة للشافعية والحنابلة ؛ فبعد تصفيته ستكون الكمية الموجودة عند الشخص أقل من النصاب المتوجب شرعاً وهو 204 غ.

# ما عدا هذه الحالات لا يتوجب عليك إخراج شيءٍ ، وذلك باتفاق الجمهور.
وبعد هذا الشرح المستفيض إليكم كود حساب زكاة الذهب :

كود الـ PHP :
 'جميع المذاهب متفقة
If TxtGoldGram.Text >= (85 / (CmbGold.Text / 24)) Then
   If Val(CmbGold.Text) = 24 Then
     LblResultGold.Caption = LblResultGold & "باتفاق الجمهور (الشافعية والحنابلة والحنفية والمالكية) يتوجب عليك إخراج : " & (TxtGoldGram.Text * (2.5 / 100)) & " غرام من الذهب عيار " & CmbGold.Text
     LblPriceGold.Caption = "القيمة بالنقود لما يتوجب عليك إخراجه لذهب عياره " & CmbGold.Text & " هي : " & (TxtGoldGram.Text * (2.5 / 100)) * TxtGoldMoney.Text & " " & LblGoldYourMoney.Caption
     TxtExplicationGold.Text = "لا يوجد خلاف بين جمهور العلماء حول نصاب الذهب عيار 24 كونه يعتبر عندهم ذهباً خالصاً غير مخلوطٍ بشيءٍ ، وبالتالي متى ما كان ما تملكه أكثر من 85 غ من الذهب أو يساويه وجبت عليك فيه الزكاة باتفاق العلماء."
   Else
     LblResultGold.Caption = LblResultGold & "باتفاق الجمهور (الشافعية والحنابلة والحنفية والمالكية) يتوجب عليك إخراج : " & (TxtGoldGram.Text * (2.5 / 100)) & " غرام من الذهب عيار " & CmbGold.Text & " أي ما يعادل " & (TxtGoldGram.Text * (2.5 / 100)) * (CmbGold.Text / 24) & " غ من الذهب الخالص عيار 24"
     LblPriceGold.Caption = "القيمة بالنقود لما يتوجب عليك إخراجه لذهب عياره " & CmbGold.Text & " هي : " & (TxtGoldGram.Text * (2.5 / 100)) * TxtGoldMoney.Text & " " & LblGoldYourMoney.Caption & vbNewLine & "أي ما يعادل " & TxtGoldMoney.Text * ((TxtGoldGram.Text * (2.5 / 100)) * (CmbGold.Text / 24)) & " " & LblGoldYourMoney.Caption & " من الذهب الخالص عيار 24"
     TxtExplicationGold.Text = "مقدار ما تملكه من الذهب لا يدخل ضمن خلاف الفقهاء حول تقدير نصاب الذهب المعتبر ، وبالتالي يتوجب عليك إخراج الزكاة باتفاق جمهور العلماء."
   End If
ElseIf TxtGoldGram.Text >= 85 And TxtGoldGram.Text < (85 / (CmbGold.Text / 24)) And Val(CmbGold.Text) >= 12 Then
      '
الحنفية فقط
      
If OptWidespreadGold.Value False Then
        LblResultGold
.Caption "حسب مذهب الحنفية يتوجب عليك إخراج : " & (TxtGoldGram.Text * (2.5 100)) & " غرام من الذهب عيار " CmbGold.Text
        LblResultGold
.Caption LblResultGold.Caption vbNewLine "أما عند الجمهور (الشافعية والحنابلة والمالكية) فلم يبلغ ذهبك نصاب الزكاة بعد فنصاب الذهب عيار " CmbGold.Text " عندهم هو : " & (85 / (CmbGold.Text 24)) & " غ"
        
LblPriceGold.Caption "القيمة بالنقود لما يتوجب عليك إخراجه حسب مذهب الحنفية لذهب عياره " CmbGold.Text " هي : " & (TxtGoldGram.Text * (2.5 100)) * TxtGoldMoney.Text " " LblGoldYourMoney.Caption
        TxtExplicationGold
.Text "# بالنسبة للحنفية : فهم يعتبرون أن عيار الذهب إذا ما كان أكبر من العيار 12 أو يساويه فإنه يعامل عندئذٍ معاملة الذهب الخالص الذي عياره 24 ، فمتى ما وصل الذهب إلى 85 غ فأكثر وجبت فيه الزكاة حسب هذه الحالة." vbNewLine _
        
"# أما المالكية : فالعبرة عندهم الرواج ، والعيار الذي اخترته غير رائج في بلدك حسب اختيارك ، وبالتالي لا تجب فيه الزكاة كونه لم يبلغ النصاب عندهم ، فنصاب الذهب غير الرائج عندهم يعتبر متى ما بلغ خالص العيار من الذهب بعد التصفية النصاب." vbNewLine _
        
"# أما الشافعية والحنابلة : فيعتبرون هذا العيار الذي اخترته مختلطاً بغيره كونه ليس بذهبٍ خالصٍ ، وبالتالي لا تجب فيه الزكاة حتى تبلغ نسبة الذهب الموجودة في هذا العيار نصاب الزكاة ، وفي هذه النقطة اتفقوا مع مذهب المالكية كما وضحنا سابقاً ، وهذا هو الرأي الراجح والموافق لظاهر النصوص ، والله أعلم."
      
Else
        
'الحنفية والمالكية
        LblResultGold.Caption = "حسب مذهب الحنفية والمالكية يتوجب عليك إخراج : " & (TxtGoldGram.Text * (2.5 / 100)) & " غرام من الذهب عيار " & CmbGold.Text
        LblResultGold.Caption = LblResultGold.Caption & vbNewLine & "أما عند الشافعية والحنابلة فلم يبلغ ذهبك نصاب الزكاة بعد فنصاب الذهب عيار " & CmbGold.Text & " عندهم هو : " & (85 / (CmbGold.Text / 24)) & " غ"
        LblPriceGold.Caption = "القيمة بالنقود لما يتوجب عليك إخراجه حسب مذهب الحنفية والمالكية لذهب عياره " & CmbGold.Text & " هي : " & (TxtGoldGram.Text * (2.5 / 100)) * TxtGoldMoney.Text & " " & LblGoldYourMoney.Caption
        TxtExplicationGold.Text = "# بالنسبة للحنفية : فهم يعتبرون أن عيار الذهب إذا ما كان أكبر من العيار 12 أو يساويه فإنه يعامل عندئذٍ معاملة الذهب الخالص الذي عياره 24 ، فمتى ما وصل الذهب إلى 85 غ فأكثر وجبت فيه الزكاة حسب هذه الحالة." & vbNewLine & _
        "# أما المالكية : فالعبرة عندهم الرواج ، والعيار الذي اخترته هو العيار الرائج في بلدك حسب اختيارك ، وبالتالي تجب فيه الزكاة متى ما كان ما تملكه أكثر من 85 غ من الذهب." & vbNewLine & _
        "# أما الشافعية والحنابلة : فيعتبرون هذا العيار الذي اخترته مختلطاً بغيره كونه ليس بذهبٍ خالصٍ ، وبالتالي لا تجب فيه الزكاة حتى تبلغ نسبة الذهب الموجودة في هذا العيار نصاب الزكاة ، وبالتالي لا يتوجب عليك إخراج الزكاة عندهم ، وهذا هو الرأي الراجح والموافق لظاهر النصوص ، والله أعلم."
      End If
'
المالكية فقط ElseIf TxtGoldGram.Text >= 85 And TxtGoldGram.Text < (85 / (CmbGold.Text 24)) And Val(CmbGold.Text) < 12 And OptWidespreadGold.Value True Then
      LblResultGold
.Caption "حسب مذهب المالكية يتوجب عليك إخراج : " & (TxtGoldGram.Text * (2.5 100)) & " غرام من الذهب عيار " CmbGold.Text
      LblResultGold
.Caption LblResultGold.Caption vbNewLine "أما عند الجمهور (الشافعية والحنابلة والحنفية) فلم يبلغ ذهبك نصاب الزكاة بعد فنصاب الذهب عيار " CmbGold.Text " عندهم هو : " & (85 / (CmbGold.Text 24)) & " غ"
      
LblPriceGold.Caption "القيمة بالنقود لما يتوجب عليك إخراجه حسب مذهب المالكية لذهب عياره " CmbGold.Text " هي : " & (TxtGoldGram.Text * (2.5 100)) * TxtGoldMoney.Text " " LblGoldYourMoney.Caption
      TxtExplicationGold
.Text "# بالنسبة لمذهب المالكية : فقد أوجبوا الزكاة في هذه الحالة لأن العبرة عندهم في عيار الذهب هو الرواج ، فمتى ما راج عيار الذهب اعتبر مثله مثل الذهب الذي عياره 24 ، وبالتالي تجب فيه الزكاة عندما يكون أكثر من 85 غ ، وهذا ينطبق على حالتك هذه." vbNewLine _
      
"# أما الحنفية : فهم يعتبرون أن عيار الذهب إذا كان أقل من 12 فلا تجب فيه الزكاة حتى يبلغ خالص العيار من الذهب بعد التصفية النصاب." vbNewLine _
      
"# أما الشافعية والحنابلة : فيعتبرون هذا العيار الذي اخترته مختلطاً بغيره كونه ليس بذهبٍ خالصٍ ، وبالتالي لا تجب فيه الزكاة حتى تبلغ نسبة الذهب الموجودة في هذا العيار نصاب الزكاة ، وبالتالي لا يتوجب عليك إخراج الزكاة عندهم ، وفي هذه النقطة اتفقوا مع مذهب الحنفية كما وضحنا سابقاً ، وهذا هو الرأي الراجح والموافق لظاهر النصوص ، والله أعلم." Else
   If 
Val(CmbGold.Text) = 24 Then
      LblResultGold
.Caption "باتفاق الجمهور (الشافعية والحنابلة والحنفية والمالكية) لم يبلغ ذهبك نصاب الزكاة بعد" vbNewLine "ونصاب الذهب عيار " CmbGold.Text " عند الجمهور هو : 85 غ"
      
TxtExplicationGold.Text "لا يوجد خلاف بين جمهور العلماء حول نصاب الذهب عيار 24 كونه يعتبر عندهم ذهباً خالصاً غير مخلوطٍ بشيءٍ ، وبالتالي متى ما كان ما تملكه من الذهب أقل من 85 غ فلا يتوجب عليك إخراج شيءٍ منه بالاتفاق."
   
ElseIf Val(CmbGold.Text) >= 12 And Val(CmbGold.Text) < 24 Then
      
If OptWidespreadGold.Value False Then
         LblResultGold
.Caption "لم يبلغ ذهبك نصاب الزكاة بعد ونصاب الذهب عيار " CmbGold.Text " عند الحنفية هو : 85 غ"
         
LblResultGold.Caption LblResultGold vbNewLine " أما عند الجمهور (الشافعية والحنابلة والمالكية) فهو : " & (85 / (CmbGold.Text 24)) & " غ"
         
TxtExplicationGold.Text "باتفاق جمهور العلماء لا يتوجب عليك إخراج الزكاة ، ولكن سنوضح لك سبب اختلاف النصاب بين مذهب الحنفية ومذهب الجمهور :" vbNewLine _
         
"# بالنسبة للحنفية : فهم يعتبرون أن عيار الذهب إذا ما كان أكبر من العيار 12 أو يساويه فإنه يعامل عندئذٍ معاملة الذهب الخالص الذي عياره 24 ، فمتى ما وصل الذهب إلى 85 غ فأكثر وجبت فيه الزكاة حسب هذه الحالة." vbNewLine _
         
"# أما المالكية : فالعبرة عندهم الرواج ، والعيار الذي اخترته غير رائج في بلدك حسب اختيارك ، وبالتالي لا تجب فيه الزكاة كونه لم يبلغ النصاب عندهم ، فنصاب الذهب غير الرائج عندهم يعتبر متى ما بلغ خالص العيار من الذهب بعد التصفية النصاب." vbNewLine _
         
"# أما الشافعية والحنابلة : فيعتبرون هذا العيار الذي اخترته مختلطاً بغيره كونه ليس بذهبٍ خالصٍ ، وبالتالي لا تجب فيه الزكاة حتى تبلغ نسبة الذهب الموجودة في هذا العيار نصاب الزكاة ، وبالتالي لا يتوجب عليك إخراج الزكاة عندهم ، وفي هذه النقطة اتفقوا مع مذهب المالكية كما وضحنا سابقاً."
      
Else
         
LblResultGold.Caption "لم يبلغ ذهبك نصاب الزكاة بعد ونصاب الذهب عيار " CmbGold.Text " عند الحنفية والمالكية هو : 85 غ"
         
LblResultGold.Caption LblResultGold vbNewLine " أما عند الشافعية والحنابلة فهو : " & (85 / (CmbGold.Text 24)) & " غ"
         
TxtExplicationGold.Text "باتفاق جمهور العلماء لا يتوجب عليك إخراج الزكاة ، ولكن سنوضح لك سبب اختلاف النصاب بين مذهب الحنفية والمالكية من جهة ومذهب الشافعية والحنابلة من جهة أخرى :" vbNewLine _
         
"# بالنسبة للحنفية : فهم يعتبرون أن عيار الذهب إذا ما كان أكبر من العيار 12 أو يساويه فإنه يعامل عندئذٍ معاملة الذهب الخالص الذي عياره 24 ، فمتى ما وصل الذهب إلى 85 غ فأكثر وجبت فيه الزكاة ، ولكن حسب حالتك لم يصل ما تملكه إلى 85 غ ، ولذلك لم يتوجب عليك إخراج الزكاة عندهم." vbNewLine _
         
"# أما المالكية : فالعبرة عندهم الرواج ، والعيار الذي اخترته بالرغم من أنه هو العيار الرائج في بلدك حسب اختيارك ، لكن لم تجب فيه الزكاة لأن ما تملكه أقل من 85 غ من الذهب." vbNewLine _
         
"# أما الشافعية والحنابلة : فيعتبرون هذا العيار الذي اخترته مختلطاً بغيره كونه ليس بذهبٍ خالصٍ ، وبالتالي لا تجب فيه الزكاة حتى تبلغ نسبة الذهب الموجودة في هذا العيار نصاب الزكاة ، وبالتالي لا يتوجب عليك إخراج الزكاة عندهم."
      
End If
   ElseIf 
Val(CmbGold.Text) < 12 Then
      
If OptWidespreadGold.Value True Then
         LblResultGold
.Caption "لم يبلغ ذهبك نصاب الزكاة بعد ونصاب الذهب عيار " CmbGold.Text " عند المالكية هو : 85 غ"
         
LblResultGold.Caption LblResultGold vbNewLine " أما عند الجمهور (الشافعية والحنابلة والحنفية) فهو : " & (85 / (CmbGold.Text 24)) & " غ"
         
TxtExplicationGold.Text "باتفاق جمهور العلماء لا يتوجب عليك إخراج الزكاة ، ولكن سنوضح لك سبب اختلاف النصاب بين مذهب المالكية ومذهب الجمهور :" vbNewLine _
         
"# بالنسبة للمالكية : فالعبرة عندهم الرواج ، والعيار الذي اخترته بالرغم من أنه هو العيار الرائج في بلدك حسب اختيارك ، لكن لم تجب فيه الزكاة لأن ما تملكه أقل من 85 غ من الذهب." vbNewLine _
         
"# أما الحنفية : فهم يعتبرون أن عيار الذهب إذا كان أقل من 12 فلا تجب فيه الزكاة حتى يبلغ خالص العيار من الذهب بعد التصفية النصاب ، وحسب حالتك لم يبلغ ما تملكه من الذهب النصاب عندهم." vbNewLine _
         
"# أما الشافعية والحنابلة : فيعتبرون هذا العيار الذي اخترته مختلطاً بغيره كونه ليس بذهبٍ خالصٍ ، وبالتالي لا تجب فيه الزكاة حتى تبلغ نسبة الذهب الموجودة في هذا العيار نصاب الزكاة ، وبالتالي لا يتوجب عليك إخراج الزكاة عندهم ، وفي هذه النقطة اتفقوا مع مذهب الحنفية كما وضحنا سابقاً."
      
Else
         
LblResultGold.Caption "لم يبلغ ذهبك نصاب الزكاة بعد" vbNewLine "ونصاب الذهب عيار " CmbGold.Text " عند الجمهور (الشافعية والحنابلة والحنفية والمالكية) هو : " & (85 / (CmbGold.Text 24)) & " غ"
         
TxtExplicationGold.Text "# بالنسبة للحنفية : خالص ما تملكه من الذهب حسب العيار الذي اخترته لم يبلغ نصاب الزكاة." vbNewLine _
          
"# وبالنسبة للمالكية : فخالص ما تملكه من الذهب حسب العيار الغير رائج في بلدك والذي اخترته لم يبلغ نصاب الزكاة عندهم." vbNewLine _
         
"# أما الشافعية والحنابلة : فيعتبرون هذا العيار الذي اخترته مختلطاً بغيره كونه ليس بذهبٍ خالصٍ ، وبالتالي لا تجب فيه الزكاة حتى تبلغ نسبة الذهب الموجودة في هذا العيار نصاب الزكاة ، وبالتالي لا يتوجب عليك إخراج الزكاة عندهم ؛ لأنه لم يبلغ ما تملكه من الذهب نصاب الزكاة."
      
End If
   
End If
   
LblPriceGold.Caption "لا يتوجب عليك إخراج أي قيمة بسبب عدم بلوغ ذهبك نصاب الزكاة" End If  
TxtGoldGram.Text ترمز للمربع الذي وضعت فيه مقدار الذهب الذي تملكه.
TxtGoldMoney.Tex يرمز لمربع قيمة غرام الذهب.
CmbGold.Text يرمز لمربع سرد يحوي عيارات الذهب (العيارات هي : 24 – 22 -21 – 20 - 18 -15 – 14 – 12 – 10 – 09 – 08).
OptWidespreadGold.Value يرمز لمربع اختيار يدل على أن العيار المختار هو العيار الرائج.
OptNoWidespreadGold.Value يرمز لمربع اختيار يدل على أن العيار المختار هو العيار الغير رائج.
LblResultGold.Caption يرمز لمربع النتيجة.
LblPriceGold.Caption يرمز لمربع القيمة بالنقود لما يتوجب عليك إخراجه.
TxtExplicationGold.Text يرمز لمربع شرح النتيجة.

وإليكم كود حساب زكاة الفضة :

كود الـ PHP :
 'جميع المذاهب متفقة
If TxtSilverGram.Text >= (595 / (CmbSilver.Text / 1000)) Then
   If Val(CmbSilver.Text) = 1000 Then
     LblResultSilver.Caption = LblResultSilver & "باتفاق الجمهور (الشافعية والحنابلة والحنفية والمالكية) يتوجب عليك إخراج : " & (TxtSilverGram.Text * (2.5 / 100)) & " غرام من الفضة عيار " & CmbSilver.Text
     LblPriceSilver.Caption = "القيمة بالنقود لما يتوجب عليك إخراجه لفضة عيارها " & CmbSilver.Text & " هي : " & (TxtSilverGram.Text * (2.5 / 100)) * TxtSilverMoney.Text & " " & LblSilverYourMoney.Caption
     TxtExplicationSilver.Text = "لا يوجد خلاف بين جمهور العلماء حول نصاب الفضة عيار 1000 كونه يعتبر عندهم فضةً خالصةً غير مخلوطةٍ بشيءٍ ، وبالتالي متى ما كان ما تملكه أكثر من 595 غ من الفضة أو يساويه وجبت عليك فيه الزكاة باتفاق العلماء."
   Else
     LblResultSilver.Caption = LblResultSilver & "باتفاق الجمهور (الشافعية والحنابلة والحنفية والمالكية) يتوجب عليك إخراج : " & (TxtSilverGram.Text * (2.5 / 100)) & " غرام من الفضة عيار " & CmbSilver.Text & " أي ما يعادل " & (TxtSilverGram.Text * (2.5 / 100)) * (CmbSilver.Text / 1000) & " غ من الفضة الخالصة عيار 1000"
     LblPriceSilver.Caption = "القيمة بالنقود لما يتوجب عليك إخراجه لفضة عيارها " & CmbSilver.Text & " هي : " & (TxtSilverGram.Text * (2.5 / 100)) * TxtSilverMoney.Text & " " & LblSilverYourMoney.Caption & vbNewLine & "أي ما يعادل " & TxtSilverMoney.Text * ((TxtSilverGram.Text * (2.5 / 100)) * (CmbSilver.Text / 1000)) & " " & LblSilverYourMoney.Caption & " من الفضة الخالصة عيار 1000"
     TxtExplicationSilver.Text = "مقدار ما تملكه من الفضة لا يدخل ضمن خلاف الفقهاء حول تقدير نصاب الفضة المعتبر ، وبالتالي يتوجب عليك إخراج الزكاة باتفاق جمهور العلماء."
   End If
ElseIf TxtSilverGram.Text >= 595 And TxtSilverGram.Text < (595 / (CmbSilver.Text / 1000)) And Val(CmbSilver.Text) >= 500 Then
      '
الحنفية فقط
      
If OptWidespreadSilver.Value False Then
        LblResultSilver
.Caption "حسب مذهب الحنفية يتوجب عليك إخراج : " & (TxtSilverGram.Text * (2.5 100)) & " غرام من الفضة عيار " CmbSilver.Text
        LblResultSilver
.Caption LblResultSilver.Caption vbNewLine "أما عند الجمهور (الشافعية والحنابلة والمالكية) فلم تبلغ فضتك نصاب الزكاة بعد فنصاب الفضة عيار " CmbSilver.Text " عندهم هو : " & (595 / (CmbSilver.Text 1000)) & " غ"
        
LblPriceSilver.Caption "القيمة بالنقود لما يتوجب عليك إخراجه حسب مذهب الحنفية لفضة عيارها " CmbSilver.Text " هي : " & (TxtSilverGram.Text * (2.5 100)) * TxtSilverMoney.Text " " LblSilverYourMoney.Caption
        TxtExplicationSilver
.Text "# بالنسبة للحنفية : فهم يعتبرون أن عيار الفضة إذا ما كان أكبر من العيار 500 أو يساويه فإنه يعامل عندئذٍ معاملة الفضة الخالصة التي عيارها 1000 ، فمتى ما وصل الفضة إلى 595 غ فأكثر وجبت فيه الزكاة حسب هذه الحالة." vbNewLine _
        
"# أما المالكية : فالعبرة عندهم الرواج ، والعيار الذي اخترته غير رائج في بلدك حسب اختيارك ، وبالتالي لا تجب فيه الزكاة كونه لم يبلغ النصاب عندهم ، فنصاب الفضة غير الرائجة عندهم يعتبر متى ما بلغ خالص العيار من الفضة بعد التصفية النصاب." vbNewLine _
        
"# أما الشافعية والحنابلة : فيعتبرون هذا العيار الذي اخترته مختلطاً بغيره كونه ليس بفضةٍ خالصةٍ ، وبالتالي لا تجب فيه الزكاة حتى تبلغ نسبة الفضة الموجودة في هذا العيار نصاب الزكاة ، وفي هذه النقطة اتفقوا مع مذهب المالكية كما وضحنا سابقاً ، وهذا هو الرأي الراجح والموافق لظاهر النصوص ، والله أعلم."
      
Else
        
'الحنفية والمالكية
        LblResultSilver.Caption = "حسب مذهب الحنفية والمالكية يتوجب عليك إخراج : " & (TxtSilverGram.Text * (2.5 / 100)) & " غرام من الفضة عيار " & CmbSilver.Text
        LblResultSilver.Caption = LblResultSilver.Caption & vbNewLine & "أما عند الشافعية والحنابلة فلم تبلغ فضتك نصاب الزكاة بعد فنصاب الفضة عيار " & CmbSilver.Text & " عندهم هو : " & (595 / (CmbSilver.Text / 1000)) & " غ"
        LblPriceSilver.Caption = "القيمة بالنقود لما يتوجب عليك إخراجه حسب مذهب الحنفية والمالكية لفضة عيارها " & CmbSilver.Text & " هي : " & (TxtSilverGram.Text * (2.5 / 100)) * TxtSilverMoney.Text & " " & LblSilverYourMoney.Caption
        TxtExplicationSilver.Text = "# بالنسبة للحنفية : فهم يعتبرون أن عيار الفضة إذا ما كان أكبر من العيار 500 أو يساويه فإنه يعامل عندئذٍ معاملة الفضة الخالصة التي عيارها 1000 ، فمتى ما وصل الفضة إلى 595 غ فأكثر وجبت فيه الزكاة حسب هذه الحالة." & vbNewLine & _
        "# أما المالكية : فالعبرة عندهم الرواج ، والعيار الذي اخترته هو العيار الرائج في بلدك حسب اختيارك ، وبالتالي تجب فيه الزكاة متى ما كان ما تملكه أكثر من 595 غ من الفضة." & vbNewLine & _
        "# أما الشافعية والحنابلة : فيعتبرون هذا العيار الذي اخترته مختلطاً بغيره كونه ليس بفضةٍٍ خالصةٍ ، وبالتالي لا تجب فيه الزكاة حتى تبلغ نسبة الفضة الموجودة في هذا العيار نصاب الزكاة ، وبالتالي لا يتوجب عليك إخراج الزكاة عندهم ، وهذا هو الرأي الراجح والموافق لظاهر النصوص ، والله أعلم."
      End If
'
المالكية فقط ElseIf TxtSilverGram.Text >= 595 And TxtSilverGram.Text < (595 / (CmbSilver.Text 1000)) And Val(CmbSilver.Text) < 500 And OptWidespreadSilver.Value True Then
      LblResultSilver
.Caption "حسب مذهب المالكية يتوجب عليك إخراج : " & (TxtSilverGram.Text * (2.5 100)) & " غرام من الفضة عيار " CmbSilver.Text
      LblResultSilver
.Caption LblResultSilver.Caption vbNewLine "أما عند الجمهور (الشافعية والحنابلة والحنفية) فلم تبلغ فضتك نصاب الزكاة بعد فنصاب الفضة عيار " CmbSilver.Text " عندهم هو : " & (595 / (CmbSilver.Text 1000)) & " غ"
      
LblPriceSilver.Caption "القيمة بالنقود لما يتوجب عليك إخراجه حسب مذهب المالكية لفضة عيارها " CmbSilver.Text " هي : " & (TxtSilverGram.Text * (2.5 100)) * TxtSilverMoney.Text " " LblSilverYourMoney.Caption
      TxtExplicationSilver
.Text "# بالنسبة لمذهب المالكية : فقد أوجبوا الزكاة في هذه الحالة لأن العبرة عندهم في عيار الفضة هو الرواج ، فمتى ما راج عيار الفضة اعتبر مثله مثل الفضة التي عيارها 1000 ، وبالتالي تجب فيه الزكاة عندما يكون أكثر من 595 غ ، وهذا ينطبق على حالتك هذه." vbNewLine _
      
"# أما الحنفية : فهم يعتبرون أن عيار الفضة إذا كان أقل من 500 فلا تجب فيه الزكاة حتى يبلغ خالص العيار من الفضة بعد التصفية النصاب." vbNewLine _
      
"# أما الشافعية والحنابلة : فيعتبرون هذا العيار الذي اخترته مختلطاً بغيره كونه ليس بفضةٍ خالصةٍ ، وبالتالي لا تجب فيه الزكاة حتى تبلغ نسبة الفضة الموجودة في هذا العيار نصاب الزكاة ، وبالتالي لا يتوجب عليك إخراج الزكاة عندهم ، وفي هذه النقطة اتفقوا مع مذهب الحنفية كما وضحنا سابقاً ، وهذا هو الرأي الراجح والموافق لظاهر النصوص ، والله أعلم." Else
   If 
Val(CmbSilver.Text) = 1000 Then
      LblResultSilver
.Caption "باتفاق الجمهور (الشافعية والحنابلة والحنفية والمالكية) لم تبلغ فضتك نصاب الزكاة بعد" vbNewLine "ونصاب الفضة عيار " CmbSilver.Text " عند الجمهور هو : 595 غ"
      
TxtExplicationSilver.Text "لا يوجد خلاف بين جمهور العلماء حول نصاب الفضة عيار 1000 كونه يعتبر عندهم فضةً خالصةً غير مخلوطةٍ بشيءٍ ، وبالتالي متى ما كان ما تملكه من الفضة أقل من 595 غ فلا يتوجب عليك إخراج شيءٍ منه بالاتفاق."
   
ElseIf Val(CmbSilver.Text) >= 500 And Val(CmbSilver.Text) < 1000 Then
      
If OptWidespreadSilver.Value False Then
         LblResultSilver
.Caption "لم تبلغ فضتك نصاب الزكاة بعد ونصاب الفضة عيار " CmbSilver.Text " عند الحنفية هو : 595 غ"
         
LblResultSilver.Caption LblResultSilver vbNewLine " أما عند الجمهور (الشافعية والحنابلة والمالكية) فهو : " & (595 / (CmbSilver.Text 1000)) & " غ"
         
TxtExplicationSilver.Text "باتفاق جمهور العلماء لا يتوجب عليك إخراج الزكاة ، ولكن سنوضح لك سبب اختلاف النصاب بين مذهب الحنفية ومذهب الجمهور :" vbNewLine _
         
"# بالنسبة للحنفية : فهم يعتبرون أن عيار الفضة إذا ما كان أكبر من العيار 500 أو يساويه فإنه يعامل عندئذٍ معاملة الفضة الخالصة التي عيارها 1000 ، فمتى ما وصل الفضة إلى 595 غ فأكثر وجبت فيه الزكاة حسب هذه الحالة." vbNewLine _
         
"# أما المالكية : فالعبرة عندهم الرواج ، والعيار الذي اخترته غير رائج في بلدك حسب اختيارك ، وبالتالي لا تجب فيه الزكاة كونه لم يبلغ النصاب عندهم ، فنصاب الفضة غير الرائجة عندهم يعتبر متى ما بلغ خالص العيار من الفضة بعد التصفية النصاب." vbNewLine _
         
"# أما الشافعية والحنابلة : فيعتبرون هذا العيار الذي اخترته مختلطاً بغيره كونه ليس بفضةٍ خالصةٍ ، وبالتالي لا تجب فيه الزكاة حتى تبلغ نسبة الفضة الموجودة في هذا العيار نصاب الزكاة ، وبالتالي لا يتوجب عليك إخراج الزكاة عندهم ، وفي هذه النقطة اتفقوا مع مذهب المالكية كما وضحنا سابقاً."
      
Else
         
LblResultSilver.Caption "لم تبلغ فضتك نصاب الزكاة بعد ونصاب الفضة عيار " CmbSilver.Text " عند الحنفية والمالكية هو : 595 غ"
         
LblResultSilver.Caption LblResultSilver vbNewLine " أما عند الشافعية والحنابلة فهو : " & (595 / (CmbSilver.Text 1000)) & " غ"
         
TxtExplicationSilver.Text "باتفاق جمهور العلماء لا يتوجب عليك إخراج الزكاة ، ولكن سنوضح لك سبب اختلاف النصاب بين مذهب الحنفية والمالكية من جهة ومذهب الشافعية والحنابلة من جهة أخرى :" vbNewLine _
         
"# بالنسبة للحنفية : فهم يعتبرون أن عيار الفضة إذا ما كان أكبر من العيار 500 أو يساويه فإنه يعامل عندئذٍ معاملة الفضة الخالصة التي عيارها 1000 ، فمتى ما وصل الفضة إلى 595 غ فأكثر وجبت فيه الزكاة ، ولكن حسب حالتك لم يصل ما تملكه إلى 595 غ ، ولذلك لم يتوجب عليك إخراج الزكاة عندهم." vbNewLine _
         
"# أما المالكية : فالعبرة عندهم الرواج ، والعيار الذي اخترته بالرغم من أنه هو العيار الرائج في بلدك حسب اختيارك ، لكن لم تجب فيه الزكاة لأن ما تملكه أقل من 595 غ من الفضة." vbNewLine _
         
"# أما الشافعية والحنابلة : فيعتبرون هذا العيار الذي اخترته مختلطاً بغيره كونه ليس بفضةٍ خالصةٍ ، وبالتالي لا تجب فيه الزكاة حتى تبلغ نسبة الفضة الموجودة في هذا العيار نصاب الزكاة ، وبالتالي لا يتوجب عليك إخراج الزكاة عندهم."
      
End If
   ElseIf 
Val(CmbSilver.Text) < 500 Then
      
If OptWidespreadSilver.Value True Then
         LblResultSilver
.Caption "لم تبلغ فضتك نصاب الزكاة بعد ونصاب الفضة عيار " CmbSilver.Text " عند المالكية هو : 595 غ"
         
LblResultSilver.Caption LblResultSilver vbNewLine " أما عند الجمهور (الشافعية والحنابلة والحنفية) فهو : " & (595 / (CmbSilver.Text 1000)) & " غ"
         
TxtExplicationSilver.Text "باتفاق جمهور العلماء لا يتوجب عليك إخراج الزكاة ، ولكن سنوضح لك سبب اختلاف النصاب بين مذهب المالكية ومذهب الجمهور :" vbNewLine _
         
"# بالنسبة للمالكية : فالعبرة عندهم الرواج ، والعيار الذي اخترته بالرغم من أنه هو العيار الرائج في بلدك حسب اختيارك ، لكن لم تجب فيه الزكاة لأن ما تملكه أقل من 595 غ من الفضة." vbNewLine _
         
"# أما الحنفية : فهم يعتبرون أن عيار الفضة إذا كان أقل من 500 فلا تجب فيه الزكاة حتى يبلغ خالص العيار من الفضة بعد التصفية النصاب ، وحسب حالتك لم يبلغ ما تملكه من الفضة النصاب عندهم." vbNewLine _
         
"# أما الشافعية والحنابلة : فيعتبرون هذا العيار الذي اخترته مختلطاً بغيره كونه ليس بفضةٍ خالصةٍ ، وبالتالي لا تجب فيه الزكاة حتى تبلغ نسبة الفضة الموجودة في هذا العيار نصاب الزكاة ، وبالتالي لا يتوجب عليك إخراج الزكاة عندهم ، وفي هذه النقطة اتفقوا مع مذهب الحنفية كما وضحنا سابقاً."
      
Else
         
LblResultSilver.Caption "لم تبلغ فضتك نصاب الزكاة بعد" vbNewLine "ونصاب الفضة عيار " CmbSilver.Text " عند الجمهور (الشافعية والحنابلة والحنفية والمالكية) هو : " & (595 / (CmbSilver.Text 1000)) & " غ"
         
TxtExplicationSilver.Text "# بالنسبة للحنفية : خالص ما تملكه من الفضة حسب العيار الذي اخترته لم يبلغ نصاب الزكاة." vbNewLine _
          
"# وبالنسبة للمالكية : فخالص ما تملكه من الفضة حسب العيار الغير رائج في بلدك والذي اخترته لم يبلغ نصاب الزكاة عندهم." vbNewLine _
         
"# أما الشافعية والحنابلة : فيعتبرون هذا العيار الذي اخترته مختلطاً بغيره كونه ليس بفضةٍ خالصةٍ ، وبالتالي لا تجب فيه الزكاة حتى تبلغ نسبة الفضة الموجودة في هذا العيار نصاب الزكاة ، وبالتالي لا يتوجب عليك إخراج الزكاة عندهم ؛ لأنه لم يبلغ ما تملكه من الفضة نصاب الزكاة."
      
End If
   
End If
   
LblPriceSilver.Caption "لا يتوجب عليك إخراج أي قيمة بسبب عدم بلوغ فضتك نصاب الزكاة" End If  
TxtSilverGram.Text ترمز للمربع الذي وضعت فيه مقدار الفضة التي تملكها.
TxtSilverMoney.Tex يرمز لمربع قيمة غرام الفضة.
CmbSilver.Text يرمز لمربع سرد يحوي عيارات الفضة (العيارات هي : 1000 – 980 -958 – 950 - 925 – 900 – 835 – 833 – 830 – 800).
OptWidespreadSilver.Value يرمز لمربع اختيار يدل على أن العيار المختار هو العيار الرائج.
OptNoWidespreadSilver.Value يرمز لمربع اختيار يدل على أن العيار المختار هو العيار الغير رائج.
LblResultSilver.Caption يرمز لمربع النتيجة.
LblPriceSilver.Caption يرمز لمربع القيمة بالنقود لما يتوجب عليك إخراجه.
TxtExplicationSilver.Text يرمز لمربع شرح النتيجة.

ثالثاً : زكاة الأموال وعُرُوض التجارة :
عروض التجارة : وهي كل ما أعد للبيع والشراء لأجل الربح.
نصاب زكاة المال وعُرُوض التجارة :
تُقوّم بأحد النقدين الذهب أو الفضة ، فإذا بلغت القيمة نصاباً وجب فيها ربع العشر أي 2.5%. ويرى كثيرٌ من علماء العصر أن النقود تُقدّر بسعر الفضة احتياطاً لمصلحة الفقراء ، لأن ذلك أنفع لهم.
إذن نحن أمام ثلاث حالاتٍ ، هي :
الحالة الأولى : حساب زكاة المال حسب نصاب الذهب :
وهنا يجب أن نأخذ بعين الاعتبار أن العلماء قصدوا الذهب الخالص الذي عياره 24 قيراطاً كما ذكرنا في زكاة النقدين وفصّلنا ذلك ووضّحنا أن نصابه هو 85 غ ، وحساب زكاة المال حسب نصاب الذهب أمر سهل للغاية ، وعند حساب زكاة المال يجب أن تأخذ بعين الاعتبار النقاط الآتية :
1- سعر غرام الذهب اليوم.
2- عيار الذهب الذي وضعت سعر غرامه اليوم.
3- مقدار المال الذي يملكه الشخص.
كما قلنا حساب زكاة المال قياساً على الذهب سهل جداً ، فإذا كان المبلغ المالي الذي يملكه الشخص أكبر من أو يساوي سعر غرام الذهب اليوم * (85 / (عيار الذهب / 24)) فعندئذٍ تتوجب عليه الزكاة وإلا فلا ، وإليك الكود :

كود الـ PHP :

If TxtGoldSum.Text >= TxtGoldGramMoney.Text * (85 / (CmbGoldMoney.Text 24)) Then
   LblPriceGoldMoney
.Caption TxtGoldSum.Text * (2.5 100) & " " LblGoldMoneyGram.Caption
   LblPriceGoldMoney
.Caption "المبلغ الذي يتوجب عليك إخراجه : " LblPriceGoldMoney.Caption
   LblResultGoldMoney
.Caption "نصاب زكاة المال حسب سعر غرام الذهب عيار " CmbGoldMoney.Text " هو : " TxtGoldGramMoney.Text * (85 / (CmbGoldMoney.Text 24)) & " " LblGoldMoneyGram.Caption
   TxtExplicationGoldMoney
.Text "المبلغ الذي تملكه داخل ضمن النصاب الواجب شرعاً كما ترى ، لذلك يتوجب عليك إخراج زكاته كما هو موضح في الأعلى." Else
   
LblPriceGoldMoney.Caption "لا يتوجب عليك دفع الزكاة فالمبلغ الذي تملكه أقل من النصاب الواجب شرعاً"
   
LblResultGoldMoney.Caption "نصاب زكاة المال حسب سعر غرام الذهب عيار " CmbGoldMoney.Text " هو : " TxtGoldGramMoney.Text * (85 / (CmbGoldMoney.Text 24)) & " " LblGoldMoneyGram.Caption
   TxtExplicationGoldMoney
.Text "لم يبلغ ما تملكه من المال النصاب الشرعي حسب سعر الذهب للعيار الذي اخترته ، فالمبلغ الذي تملكه كما ترى أقل من النصاب الواجب شرعاً حسب نصاب الذهب ، واحتياطاً لمصلحة الفقراء يُفضّل أن تقوم بحساب زكاة مالك ( حسب أقل النصابين ) من الذهب أو الفضة ، فقد يكون ذلك الأنفع والأحظ للفقراء." End If  
TxtGoldGramMoney.Text ترمز للمربع الذي وضعت فيه سعر غرام الذهب اليوم.
CmbGoldMoney.Tex يرمز لمربع سرد يحوي عيارات الذهب (العيارات هي : 24 – 22 -21 – 20 - 18 -15 – 14 – 12 – 10 – 09 – 08).
TxtGoldSum.Tex يرمز لمربع المبلغ المالي الذي تملكه.
LblResultGoldMoney.Caption يرمز لمربع النتيجة.
LblPriceGoldMoney.Caption يرمز لمربع القيمة بالنقود لما يتوجب عليك إخراجه.
TxtExplicationGoldMoney.Text يرمز لمربع شرح النتيجة.

الحالة الثانية : حساب زكاة المال حسب نصاب الفضة :
وهنا كذلك يجب أن نأخذ بعين الاعتبار أن العلماء قصدوا الفضة الخالصة والتي عيارها 1000 كما ذكرنا في زكاة النقدين وفصّلنا ذلك ووضّحنا أن نصابها هو 595 غ ، وحساب زكاة المال حسب نصاب الفضة أمر سهل للغاية ، وعند حساب زكاة المال يجب أن تأخذ بعين الاعتبار النقاط الآتية :
1- سعر غرام الفضة اليوم.
2- عيار الفضة الذي وضعت سعر غرامه اليوم.
3- مقدار المال الذي يملكه الشخص.
كما قلنا حساب زكاة المال قياساً على الفضة سهل جداً ، فإذا كان المبلغ المالي الذي يملكه الشخص أكبر من أو يساوي سعر غرام الفضة اليوم * (595 / (عيار الذهب / 24)) فعندئذٍ تتوجب عليه الزكاة وإلا فلا ، وإليك الكود :

كود الـ PHP :
If TxtSilverSum.Text >= TxtSilverGramMoney.Text * (595 / (CmbSilverMoney.Text 1000)) Then
   LblPriceSilverMoney
.Caption TxtSilverSum.Text * (2.5 100) & " " LblSilverMoneyGram.Caption
   LblPriceSilverMoney
.Caption "المبلغ الذي يتوجب عليك إخراجه : " LblPriceSilverMoney.Caption
   LblResultSilverMoney
.Caption "نصاب زكاة المال حسب سعر غرام الفضة عيار " CmbSilverMoney.Text " هو : " TxtSilverGramMoney.Text * (595 / (CmbSilverMoney.Text 1000)) & " " LblSilverMoneyGram.Caption
   TxtExplicationSilverMoney
.Text "المبلغ الذي تملكه داخل ضمن النصاب الواجب شرعاً كما ترى ، لذلك يتوجب عليك إخراج زكاته كما هو موضح في الأعلى." Else
   
LblPriceSilverMoney.Caption "لا يتوجب عليك دفع الزكاة فالمبلغ الذي تملكه أقل من النصاب الواجب شرعاً"
   
LblResultSilverMoney.Caption "نصاب زكاة المال حسب سعر غرام الفضة عيار " CmbSilverMoney.Text " هو : " TxtSilverGramMoney.Text * (595 / (CmbSilverMoney.Text 1000)) & " " LblSilverMoneyGram.Caption
   TxtExplicationSilverMoney
.Text "لم يبلغ ما تملكه من المال النصاب الشرعي حسب سعر الفضة للعيار الذي اخترته ، فالمبلغ الذي تملكه كما ترى أقل من النصاب الواجب شرعاً حسب نصاب الفضة ، واحتياطاً لمصلحة الفقراء يُفضّل أن تقوم بحساب زكاة مالك ( حسب أقل النصابين ) من الذهب أو الفضة ، فقد يكون ذلك الأنفع والأحظ للفقراء." End If  
TxtSilverGramMoney.Text ترمز للمربع الذي وضعت فيه سعر غرام الفضة اليوم.
CmbSilverMoney.Tex يرمز لمربع سرد يحوي عيارات الفضة (العيارات : 1000 – 980 -958 – 950 - 925 – 900 – 835 – 833 – 830 – 800).
TxtSilverSum.Tex يرمز لمربع المبلغ المالي الذي تملكه.
LblResultSilverMoney.Caption يرمز لمربع النتيجة.
LblPriceSilverMoney.Caption يرمز لمربع القيمة بالنقود لما يتوجب عليك إخراجه.
TxtExplicationSilverMoney.Text يرمز لمربع شرح النتيجة.

الحالة الثالثة : حساب زكاة المال حسب أقل النصابين من الذهب والفضة :
هذه الحالة مهمة بل هي أهم الحالات ؛ لأنها أنفع للفقراء ، وسأوضح ذلك بمثال تطبيقيٍ :
نفرض أن هنالك شخصٌ يمتلك 500.000 ليرةٍ سوريةٍ يريد إخراج زكاتها ، فهل تجب عليه الزكاة ؟ وكم هو المقدار الواجب عليه إخراجه ؟
لو حسبنا زكاة ماله حسب الذهب فلن يكون عليه زكاة ، لماذا ؟ سأوضح لك :
سعر غرام الذهب اليوم في سورية هو 6000 ليرةٍ سوريةٍ للذهب الذي عياره 21 قيراطاً ، وبعد أن عرفنا سعر غرام الذهب اليوم دعونا نستخرج النصاب عبر المعادلة الآتية :
6000 * (85 / (21 / 24)) = 582857.14 ليرة سورية تقريباً ، وهذا المبلغ هو نصاب المال حسب سعر غرام الذهب ، ولكن ما يملكه الشخص أصغر من ذلك فهو يملك 500.000 ليرةٍ سوريةٍ ؛ لذا لا يتوجب عليه إخراج الزكاة ؛ لأن ماله لم يبلغ النصاب حسب سعر غرام الذهب.
ولكن لو حسبنا زكاة ماله حسب الفضة فسيكون عليه زكاة ، لماذا ؟ سأوضح لك :
سعر غرام الفضة اليوم في سورية هو 300 ليرةٍ سوريةٍ للفضة التي عيارها 925 ، وبعد أن عرفنا سعر غرام الفضة اليوم دعونا نستخرج النصاب عبر المعادلة الآتية :
300 * (595 / (925 / 1000)) = 192972.972 ليرة سورية تقريباً ، وهذا المبلغ هو نصاب زكاة المال حسب سعر غرام الفضة اليوم ، وهو أصغر من المبلغ الذي يملكه الشخص فهو يملك 500.000 ليرةٍ سوريةٍ ، لذا يتوجب عليه إخراج الزكاة ، وزكاته هي :
500000 * (2.5 /100) = 12500 ليرةٍ سوريةٍ
إذن الأنفع والأفضل للفقراء أن نحسب زكاة المال في هذه الحالة حسب الفضة ، وهذا ما ذهب إليه الكثير من العلماء ؛ لذلك عندما تريد حساب زكاة المال فإن الأفضل أن تأخذ بعين الاعتبار النقاط الآتية :
1- سعر غرام الذهب اليوم.
2- عيار الذهب الذي وضعت سعر غرامه اليوم.
3- سعر غرام الفضة اليوم.
4- عيار الفضة الذي وضعت سعر غرامه اليوم.
5- مقدار المال الذي يملكه الشخص.
ثم تضع متغيرين تحسب في الأول زكاة المال حسب الفضة وفي الثاني زكاة المال حسب الذهب ، ثم تجري مقارنةً بين هذين المتغيرين من جهةٍ وبين المبلغ الذي يمتلكه الشخص من جهةٍ أخرى :
- فإن كان المبلغ الذي يملكه الشخص أكبر من المتغير الذي يحسب الزكاة حسب الذهب والمتغير الذي يحسب الزكاة حسب الفضة ، فعندئذٍ تجب عليه الزكاة حسب النصابين.
- وإن كان المبلغ الذي يملكه الشخص أكبر من المتغير الذي يحسب الزكاة حسب الذهب فقط ، فعندئذٍ تجب عليه الزكاة حسب نصاب الذهب فقط ؛ لأنه الأفضل للفقراء.
- وإن كان المبلغ الذي يملكه الشخص أكبر من المتغير الذي يحسب الزكاة حسب الفضة فقط ، فعندئذٍ تجب عليه الزكاة حسب نصاب الفضة فقط ؛ لأنه الأفضل للفقراء.
- وإن كان المبلغ الذي يملكه الشخص أصغر من المتغير الذي يحسب الزكاة حسب الذهب والمتغير الذي يحسب الزكاة حسب الفضة ، فعندئذٍ لا تجب عليه الزكاة حسب النصابين.
وإليك الكود :

كود الـ PHP :
Dim TxtGoldTxtSilver As String 'حسب الذهب
TxtGold = TxtGoldSilverGramMoneyG.Text * (85 / (CmbGoldSilverMoneyG.Text / 24))
'
حسب الفضة
TxtSilver 
TxtGoldSilverGramMoneyS.Text * (595 / (CmbGoldSilverMoneyS.Text 1000))
'يتوجب عليك دفع الزكاة حسب نصاب الذهب والفضة
If TxtGoldSilverSum >= Val(TxtGold) And TxtGoldSilverSum >= Val(TxtSilver) Then
   LblPriceGoldSilverMoney.Caption = TxtGoldSilverSum.Text * (2.5 / 100) & " " & LblGoldSilverMoneyGramG.Caption
   LblPriceGoldSilverMoney.Caption = "المبلغ الذي يتوجب عليك إخراجه : " & LblPriceGoldSilverMoney.Caption
   LblResultGoldSilverMoney.Caption = "ونصاب زكاة المال حسب سعر غرام الفضة عيار " & CmbGoldSilverMoneyS.Text & " هو : " & TxtGoldSilverGramMoneyS.Text * (595 / (CmbGoldSilverMoneyS.Text / 1000)) & " " & LblGoldSilverMoneyGramS.Caption
   LblResultGoldSilverMoney.Caption = _
   "نصاب زكاة المال حسب سعر غرام الذهب عيار " & CmbGoldSilverMoneyG.Text & " هو : " & TxtGoldSilverGramMoneyG.Text * (85 / (CmbGoldSilverMoneyG.Text / 24)) & " " & LblGoldSilverMoneyGramG.Caption & vbNewLine & LblResultGoldSilverMoney.Caption
   TxtExplicationGoldSilverMoney.Text = "كما تشاهد يتوجب عليك دفع الزكاة حسب النصاب الشرعي للذهب والفضة ، فالمبلغ الذي تملكه يتجاوز النصاب الشرعي لكل من الذهب والفضة."
'
يتوجب عليك دفع الزكاة حسب نصاب الفضة فقط ElseIf TxtGoldSilverSum >= Val(TxtSilverThen
   LblPriceGoldSilverMoney
.Caption TxtGoldSilverSum.Text * (2.5 100) & " " LblGoldSilverMoneyGramS.Caption
   LblPriceGoldSilverMoney
.Caption "المبلغ الذي يتوجب عليك إخراجه : " LblPriceGoldSilverMoney.Caption
   LblResultGoldSilverMoney
.Caption "الأحظ والأنفع للفقراء نصاب الفضة ، ونصاب زكاة المال حسب سعر غرام الفضة عيار " CmbGoldSilverMoneyS.Text " هو : " TxtGoldSilverGramMoneyS.Text * (595 / (CmbGoldSilverMoneyS.Text 1000)) & " " LblGoldSilverMoneyGramS.Caption
   TxtExplicationGoldSilverMoney
.Text "الأحظ والأنفع للفقراء أن نحسب نصاب زكاة المال حسب سعر غرام الفضة ، فلم يبلغ ما تملكه من المال النصاب الشرعي حسب سعر غرام الذهب للعيار الذي اخترته ، لأن نصاب زكاة المال حسب سعر غرام الذهب عيار " _
   CmbGoldSilverMoneyG
.Text " هو : " TxtGoldSilverGramMoneyG.Text * (85 / (CmbGoldSilverMoneyG.Text 24)) & " " LblGoldSilverMoneyGramG.Caption _
   
" لذا فالأحظ والأنفع للفقراء أن تحسب زكاة مالك حسب سعر غرام الفضة وتزكي بالمبلغ المذكور في الأعلى ، وهذا ما ذهب إليه الكثير من العلماء."
'يتوجب عليك دفع الزكاة حسب نصاب الذهب فقط
ElseIf TxtGoldSilverSum >= Val(TxtGold) Then
   LblPriceGoldSilverMoney.Caption = TxtGoldSilverSum.Text * (2.5 / 100) & " " & LblGoldSilverMoneyGramG.Caption
   LblPriceGoldSilverMoney.Caption = "المبلغ الذي يتوجب عليك إخراجه : " & LblPriceGoldSilverMoney.Caption
   LblResultGoldSilverMoney.Caption = "الأحظ والأنفع للفقراء نصاب الذهب ، ونصاب زكاة المال حسب سعر غرام الذهب عيار " & CmbGoldSilverMoneyG.Text & " هو : " & TxtGoldSilverGramMoneyG.Text * (85 / (CmbGoldSilverMoneyG.Text / 24)) & " " & LblGoldSilverMoneyGramG.Caption
   TxtExplicationGoldSilverMoney.Text = "الأحظ والأنفع للفقراء أن نحسب نصاب زكاة المال حسب سعر غرام الذهب ، فلم يبلغ ما تملكه من المال النصاب الشرعي حسب سعر غرام الفضة للعيار الذي اخترته ، لأن نصاب زكاة المال حسب سعر غرام الفضة عيار " & _
   CmbGoldSilverMoneyS.Text & " هو : " & TxtGoldSilverGramMoneyS.Text * (595 / (CmbGoldSilverMoneyS.Text / 1000)) & " " & LblGoldSilverMoneyGramS.Caption & _
   " لذا فالأحظ والأنفع للفقراء أن تحسب زكاة مالك حسب سعر غرام الذهب وتزكي بالمبلغ المذكور في الأعلى ، وهذا ما ذهب إليه الكثير من العلماء."
'
لا يتوجب عليك دفع الزكاة Else
   
LblPriceGoldSilverMoney.Caption "لا يتوجب عليك دفع الزكاة فالمبلغ الذي تملكه أقل من النصاب الواجب شرعاً للذهب والفضة"
   
LblResultGoldSilverMoney.Caption "ونصاب زكاة المال حسب سعر غرام الفضة عيار " CmbGoldSilverMoneyS.Text " هو : " TxtGoldSilverGramMoneyS.Text * (595 / (CmbGoldSilverMoneyS.Text 1000)) & " " LblGoldSilverMoneyGramS.Caption
   LblResultGoldSilverMoney
.Caption _
   
"نصاب زكاة المال حسب سعر غرام الذهب عيار " CmbGoldSilverMoneyG.Text " هو : " TxtGoldSilverGramMoneyG.Text * (85 / (CmbGoldSilverMoneyG.Text 24)) & " " LblGoldSilverMoneyGramG.Caption vbNewLine LblResultGoldSilverMoney.Caption
   TxtExplicationGoldSilverMoney
.Text "كما تشاهد لايتوجب عليك دفع الزكاة حسب النصاب الشرعي للذهب والفضة ، فالمبلغ الذي تملكه لايتجاوز النصاب الشرعي لكل من الذهب والفضة." End If End Sub  
TxtGoldSilverGramMoneyG.Text ترمز للمربع الذي وضعت فيه سعر غرام الذهب اليوم.
CmbGoldSilverMoneyG.Tex يرمز لمربع سرد يحوي عيارات الذهب (العيارات هي : 24 – 22 -21 – 20 - 18 -15 – 14 – 12 – 10 – 09 – 08).
TxtGoldSilverGramMoneyS.Text ترمز للمربع الذي وضعت فيه سعر غرام الفضة اليوم.
CmbGoldSilverMoneyS.Tex يرمز لمربع سرد يحوي عيارات الفضة (وهي: 1000 – 980 -958 – 950 - 925 – 900 – 835 – 833 – 830 – 800).
TxtGoldSilverSum.Tex يرمز لمربع المبلغ المالي الذي تملكه.
LblResultGoldSilverMoney.Caption يرمز لمربع النتيجة.
LblPriceGoldSilverMoney.Caption يرمز لمربع القيمة بالنقود لما يتوجب عليك إخراجه.
TxtExplicationGoldSilverMoney.Text يرمز لمربع شرح النتيجة.

رابعاً : زكاة الزروع والثمار :
الواجب في زكاة الزروع والثمار :
# العُشر (10%) : فيما سُقي بلا كلفة ، كأن يكون قد سُقي بماء المطر.
# نصف العُشر (5%) : فيما سُقي بكلفةٍ.
نصاب زكاة الزروع والثمار :
قال أبو حنيفة : النصاب ليس بشرطٍ لوجوب العشر ، بل هي واجبةٌ في القليل والكثير ما لم يكن أقل من نصف صاعٍ (حوالي : 1.088 كغ).
وقال الصاحبان وجمهور الفقهاء : النصاب شرطٌ ، فلا تجب الزكاة في شيءٍ من الزروع والثمار حتى تبلغ خمسة أوسقٍ وهي (653 كغ) ؛ لقوله صلى الله عليه وسلم : "لَيْسَ فِيمَا دُونَ خَمْسَةِ أَوْسُقٍ صَدَقَةٌ" أخرجه البخاري ومسلم.
قبل أن نكتب الكود ما رأيكم أن نصيغ آراء الفقهاء بطريقةٍ علميّةٍ بحيث يستنتج البرنامج آلياً الحالات التي يتفق فيها العلماء والحالات التي يختلفون فيها ، وعندها سنكون أمام عدة حالاتٍ ، هي :
# وجوب إخراج الزكاة باتفاق جمهور العلماء ، وذلك في حالةٍ واحدةٍ :
إذا كان مقدار الخارج من الأرض أكثر من أو يساوي 653 كغ.
# وجوب إخراج الزكاة حسب رأي أبي حنيفة فقط ، وذلك في حالةٍ واحدةٍ :
إذا كان مقدار الخارج من الأرض أكثر من 1.088 كغ وأقل من 653 كغ.
# عدم وجوب إخراج الزكاة باتفاق جمهور العلماء ، وذلك في حالةٍ واحدةٍ :
إذا كان مقدار الخارج من الأرض أقل من 1.088 كغ.
وبعد ذلك نأخذ بعين الاعتبار النقاط الآتية :
1- وزن الزرع بالكيلو غرام.
2- هل سُقي الزرع بكلفةٍ أم سُقي بغير كلفةٍ ؟
وإليك الكود :

كود الـ PHP :
'باتفاق الكل مع أبي حنيفة تجب عليه الزكاة
If Trim(TxtPlant.Text) >= 653 Then
   If OptDiscomfortOk.Value = True Then
      LblResultPlant.Caption = TxtPlant.Text * (5 / 100) & " كغ"
      TxtExplicationlPlant.Text = "# بالنسبة للإمام أبي حنيفة : فالنصاب ليس بشرطٍ لوجوب الزكاة في الزروع والثمار ، فتجب الزكاة في كثير الخارج وقليله ما لم يكن أقل من نصف صاع ، أي 1.088 كغ." & vbNewLine & _
      "# أما عند الجمهور : فالنصاب شرط لوجوب الزكاة في الزروع والثمار ، فلا تجب الزكاة في شيءٍ منها حتى تبلغ خمسة أوسق ، أي 653 كغ ومرزوعاتك بلغت هذا النصاب عندهم ، لذا يتوجب عليك إخراج الزكاة حسب رأيهم." & vbNewLine & _
      "# المقصود بقولنا ^^ سقي بكلفة ^^ : أي أنك أنفقت وتكلفت مادياً من أجل وصول الماء إليه ، والواجب عليك في هذه الحالة هو : نصف العُشر ، أي : 5%."
   Else
      LblResultPlant.Caption = TxtPlant.Text * (10 / 100) & " كغ"
      TxtExplicationlPlant.Text = "# بالنسبة للإمام أبي حنيفة : فالنصاب ليس بشرطٍ لوجوب الزكاة في الزروع والثمار ، فتجب الزكاة في كثير الخارج وقليله ما لم يكن أقل من نصف صاع ، أي 1.088 كغ." & vbNewLine & _
      "# أما عند الجمهور : فالنصاب شرط لوجوب الزكاة في الزروع والثمار ، فلا تجب الزكاة في شيءٍ منها حتى تبلغ خمسة أوسق ، أي 653 كغ ومرزوعاتك بلغت هذا النصاب عندهم ، لذا يتوجب عليك إخراج الزكاة حسب رأيهم." & vbNewLine & _
      "# المقصود بقولنا ^^ سقي بغير بكلفة ^^ : أي أنك لم تنفق ولم تتكلف مادياً من أجل وصول الماء إليه ، إنما سقي بماء المطر ونحوه ، والواجب عليك في هذه الحالة هو : العُشر ، أي : 10%."
   End If
   LblResultPlant.Caption = "باتفاق جميع العلماء تجب عليك الزكاة ، ومقدار الواجب عليك إخراجه هو : " & vbNewLine & LblResultPlant.Caption & " من وزن المزروعات"
'
فقط عند أبي حنيفة تجب عليه الزكاة ElseIf Trim(TxtPlant.Text) >= 1.088 Then
   
If OptDiscomfortOk.Value True Then
      LblResultPlant
.Caption TxtPlant.Text * (100) & " كغ"
      
LblResultPlant.Caption "فقط عند الإمام أبي حنيفة تجب عليك الزكاة ، ومقدار الواجب عليك إخراجه هو : " vbNewLine LblResultPlant.Caption " من وزن المزروعات"
      
TxtExplicationlPlant.Text "# بالنسبة للإمام أبي حنيفة : فالنصاب ليس بشرطٍ لوجوب الزكاة في الزروع والثمار ، فتجب الزكاة في كثير الخارج وقليله ما لم يكن أقل من نصف صاع ، أي 1.088 كغ." vbNewLine _
      
"# أما عند الجمهور : فالنصاب شرط لوجوب الزكاة في الزروع والثمار ، فلا تجب الزكاة في شيءٍ منها حتى تبلغ خمسة أوسق ، أي 653 كغ ومرزوعاتك لم تبلغ هذا النصاب عندهم ، لذا لا يتوجب عليك إخراج الزكاة حسب رأيهم." vbNewLine _
      
"# المقصود بقولنا ^^ سقي بكلفة ^^ : أي أنك أنفقت وتكلفت مادياً من أجل وصول الماء إليه ، والواجب عليك في هذه الحالة هو : نصف العُشر ، أي : 5%."
   
Else
      
LblResultPlant.Caption TxtPlant.Text * (10 100) & " كغ"
      
LblResultPlant.Caption "فقط عند الإمام أبي حنيفة تجب عليك الزكاة ، ومقدار الواجب عليك إخراجه هو : " vbNewLine LblResultPlant.Caption " من وزن المزروعات"
      
TxtExplicationlPlant.Text "# بالنسبة للإمام أبي حنيفة : فالنصاب ليس بشرطٍ لوجوب الزكاة في الزروع والثمار ، فتجب الزكاة في كثير الخارج وقليله ما لم يكن أقل من نصف صاع ، أي 1.088 كغ." vbNewLine _
      
"# أما عند الجمهور : فالنصاب شرط لوجوب الزكاة في الزروع والثمار ، فلا تجب الزكاة في شيءٍ منها حتى تبلغ خمسة أوسق ، أي 653 كغ ومرزوعاتك لم تبلغ هذا النصاب عندهم ، لذا لا يتوجب عليك إخراج الزكاة حسب رأيهم." vbNewLine _
      
"# المقصود بقولنا ^^ سقي بغير بكلفة ^^ : أي أنك لم تنفق ولم تتكلف مادياً من أجل وصول الماء إليه ، إنما سقي بماء المطر ونحوه ، والواجب عليك في هذه الحالة هو : العُشر ، أي : 10%."
   
End If
Else
   If 
OptDiscomfortOk.Value True Then
      TxtExplicationlPlant
.Text "# بالنسبة للإمام أبي حنيفة : فالنصاب ليس بشرطٍ لوجوب الزكاة في الزروع والثمار ، فتجب الزكاة في كثير الخارج وقليله ما لم يكن أقل من نصف صاع ، أي 1.088 كغ ومرزوعاتك لم تبلغ هذا النصاب عنده." vbNewLine _
      
"# أما عند الجمهور : فالنصاب شرط لوجوب الزكاة في الزروع والثمار ، فلا تجب الزكاة في شيءٍ منها حتى تبلغ خمسة أوسق ، أي 653 كغ ومرزوعاتك لم تبلغ هذا النصاب عندهم ، لذا لا يتوجب عليك إخراج الزكاة حسب رأيهم." vbNewLine _
      
"# المقصود بقولنا ^^ سقي بكلفة ^^ : أي أنك أنفقت وتكلفت مادياً من أجل وصول الماء إليه ، والواجب عليك في هذه الحالة هو : نصف العُشر ، أي : 5%."
   
Else
      
TxtExplicationlPlant.Text "# بالنسبة للإمام أبي حنيفة : فالنصاب ليس بشرطٍ لوجوب الزكاة في الزروع والثمار ، فتجب الزكاة في كثير الخارج وقليله ما لم يكن أقل من نصف صاع ، أي 1.088 كغ ومرزوعاتك لم تبلغ هذا النصاب عنده." vbNewLine _
      
"# أما عند الجمهور : فالنصاب شرط لوجوب الزكاة في الزروع والثمار ، فلا تجب الزكاة في شيءٍ منها حتى تبلغ خمسة أوسق ، أي 653 كغ ومرزوعاتك لم تبلغ هذا النصاب عندهم ، لذا لا يتوجب عليك إخراج الزكاة حسب رأيهم." vbNewLine _
      
"# المقصود بقولنا ^^ سقي بغير بكلفة ^^ : أي أنك لم تنفق ولم تتكلف مادياً من أجل وصول الماء إليه ، إنما سقي بماء المطر ونحوه ، والواجب عليك في هذه الحالة هو : العُشر ، أي : 10%."
    
End If
   
LblResultPlant.Caption "لا يتوجب عليك إخراج أي شيءٍ ، فلم تبلغ مزروعاتك نصاب الزكاة بعد" End If  
TxtPlant.Text ترمز للمربع الذي وضعت فيه كمية الزروع التي تمتلكها بالكيلو غرام.
OptDiscomfortOk.Value يرمز لمربع اختيار يدل على أن الزرع سُقي بكلفةٍ.
OptDiscomfortNo.Value يرمز لمربع اختيار يدل على أن الزرع سُقي بغير كلفةٍ.
LblResultGoldSilverMoney.Caption يرمز لمربع النتيجة.
TxtExplicationGoldSilverMoney.Text يرمز لمربع شرح النتيجة.

يتفرع عن زكاة الرزوع والثمار (زكاة العسل) :
آراء العلماء في زكاة العسل :
# بالنسبة للشافعية والمالكية : فلا زكاة عندهم في العسل ، فحسب رأيهم لم يثبت نصٌّ في ذلك.
# أما الحنفية والحنابلة : فقد اعتبروا أن للعسل زكاةٌ يجب أن يؤديها مالكه ، ثم اختلفوا في نصاب العسل :
- فقال الحنابلة : نصاب زكاة العسل : عشر قِرَب أي 62 كيلو غرام.
- وقال الحنفية : تجب الزكاة في قليله وكثيره دون تحديد نصابٍ له.
قبل أن نكتب الكود ما رأيكم أن نصيغ آراء الفقهاء بطريقةٍ علميّةٍ بحيث يستنتج البرنامج آلياً الحالات التي يتفق فيها العلماء والحالات التي يختلفون فيها ، وعندها سنكون أمام عدة حالاتٍ ، هي :
# وجوب إخراج الزكاة باتفاق الحنفية والحنابلة ، وذلك في حالةٍ واحدةٍ :
إذا كان مقدار العسل أكثر من أو يساوي 62 كغ.
# وجوب إخراج الزكاة حسب رأي الحنفية فقط ، وذلك في حالةٍ واحدةٍ :
إذا كان مقدار العسل أكثر من 0 كغ وأقل من 62 كغ.
وبعد ذلك نأخذ بعين الاعتبار النقطة الآتية ، وهي : مقدار وكمية العسل ، وإليك الكود :

كود الـ PHP :
If TxtHoney.Text >= 62 Then
   LblResultHoney
.Caption "حسب مذهب الحنفية والحنابلة يتوجب عليك إخراج : " vbNewLine TxtHoney.Text * (10 100) & " كيلو غرام من العسل" Else
   
Dim TxtHoneyWeight As String
   TxtHoneyWeight 
TxtHoney.Text * (10 100)
   If 
TxtHoneyWeight 1 Then
      TxtHoneyWeight 
TxtHoney.Text * (10 100) * 1000 " غرام من العسل"
   
Else
      
TxtHoneyWeight TxtHoney.Text * (10 100) & " كيلو غرام من العسل"
   
End If
   
LblResultHoney.Caption "حسب مذهب الحنفية يتوجب عليك إخراج : " TxtHoneyWeight vbNewLine _
   
"أما عند الحنابلة فلم يبلغ عسلك نصاب الزكاة بعد ، لأن نصاب زكاة العسل عندهم : عشر قِرَب أي 62 كيلو غرام" End If TxtExplicationlHoney.Text "# بالنسبة للشافعية والمالكية : فلا زكاة عندهم في العسل ، فحسب رأيهم لم يثبت نص في ذلك." vbNewLine "# أما الحنفية والحنابلة : فقد اعتبروا أن للعسل زكاة يجب أن يؤديها مالكه ، ثم اختلفوا في نصاب العسل :" vbNewLine "- فقال الحنابلة : نصاب زكاة العسل : عشر قِرَب أي 62 كيلو غرام." vbNewLine "- وقال الحنفية : تجب الزكاة في قليله وكثيره دون تحديد نصاب له."  
TxtHoney.Text ترمز للمربع الذي وضعت فيه كمية العسل التي تمتلكها بالكيلو غرام.
LblResultHoney.Caption يرمز لمربع النتيجة.
TxtExplicationlHoney.Text يرمز لمربع شرح النتيجة.

خامساً : زكاة الكنز والرِّكَاز :
تعريف الرِّكَاز :
- لغة : بمعنى المركوز وهو من الرَّكْزِ أي الإثبات ، وهو المدفون في الأرض إذا خفي ، وَالرِّكْزُ بكسر الراء هو الصوت الخفي.
- وفي الاصطلاح عند الجمهور : هو دفين الجاهلية من ذهبٍ أو فضةٍ أو غيرهما.

الواجب في زكاة الكنز والرِّكَاز :
والزكاة الواجبة في الكنز أو الرِّكَاز : الخمس ، أي : خمس الكمية التي وجدتها أي 20%. لعموم قوله صلى الله عليه وسلم : "وَفِي الرِّكَازِ الْخُمُسُ" أخرجه البخاري ومسلم.
وليس له أي نصابٍ ، فمهما كان مقداره يجب إخراج الخمس منه أي 20%.
خوارزميته سهلة جداً ، وإليك الكود :

كود الـ PHP :
LblResultCache.Caption "يتوجب عليك إخراج : " TxtCache.Text * (20 100) & " من إجمالي الكنز" TxtExplicationlCache.Text "# الرِّكَازُ : " vbNewLine "- لغة : بمعنى المركوز وهو من الرَّكْزِ أي الإثبات ، وهو المدفون في الأرض إذا خفي ، وَالرِّكْزُ بكسر الراء هو الصوت الخفي." vbNewLine "- وفي الاصطلاح عند الجمهور : هو دفين الجاهلية من ذهب أو فضة أو غيرهما." vbNewLine "# والزكاة الواجبة في الكنز أو الرِّكَاز : الخمس ، أي : خمس الكمية التي وجدتها."  
TxtCache.Text ترمز للمربع الذي وضعت فيه كمية الكنز الذي وجدته.
LblResultCache.Caption يرمز لمربع النتيجة.
TxtExplicationlCache.Text يرمز لمربع شرح النتيجة.

ليست هناك تعليقات:

إرسال تعليق