منتديات الشروق أونلاين

منتديات الشروق أونلاين (http://montada.echoroukonline.com/index.php)
-   منتدى الحاسوب والبرامج (http://montada.echoroukonline.com/forumdisplay.php?f=23)
-   -   طريقة حساب Irg مرفق بدالة Vba لمن يهمه الأمر (http://montada.echoroukonline.com/showthread.php?t=28051)

laaziri1963 08-06-2008 05:32 PM

طريقة حساب Irg مرفق بدالة Vba لمن يهمه الأمر
 
بسم الله الرحمان الرحيم









إخواني لم أنتبه إلى أهمية هذه الدالة إلا بعد أن و جدت بالصدفة أحد الإخوان يريد أن يحول ملف بينات قاعدية (base de données) من نوع معين إلى نوع أخر و السبب هو أنه لا يريد إعادة حجز كل الدليل المعروف لدينا في الجزائر ب (le Bareme de l'I.R.G) لأنه يريد أن يستعمله في برنامج لحساب الأجرة سواءا بواسطة أحد لغات البرمجة أو في ورقة أكسيل تصورو إخواني أن هذا الدليل يحتوي على أكثر من 700 صفحة و تقريبا 15000 سطر و حوالي 45000 رقما إلا أن الأمر لا يتطلب كل ذلك و حجز مثل كل هذه المعلومات سيأدي حتما إلى ثقل البرنامج الناتج و الطريقة الصحيحة هي تعويض ذلك الدليل بدالة صغيرة جدا وفق اللغة المراد إستعمالها مثلا ها هو نص الدالة بلغة ال VBA المستعملة بال MSOffice أي بالإكسيل و الوورد إلخ... و ما على من أراد إستعمالها بلغة أخرى إلا أن يترجمها من ال VBA إلى اللغة المراد إستعمالها.


كود:


Function IRG2008(soumis)
soumis = (Int(soumis / 10)) * 10
Dim TRS(5) As Variant
TRS(1) = 0
TRS(2) = 120000
TRS(3) = 360000
TRS(4) = 1440000
TRS(5) = 9999999
Dim Tax(5) As Variant
Tax(1) = 0
Tax(2) = 0
Tax(3) = 20
Tax(4) = 30
Tax(5) = 35
Dim Impan(5) As Variant
Impan(1) = 0#
Impan(2) = 0#
Impan(3) = 48000#
Impan(4) = 372000#
Impan(5) = 3367999.65

brts = soumis * 12
ill = 1
Do While ill <= 5
If brts <= TRS(ill) Then Exit Do
ill = ill + 1
Loop
taux = Tax(ill)
ill = ill - 1
tb = TRS(ill)
td = Impan(ill)
n = brts - tb
impota = (n * taux / 100) + td
impm = impota / 12
abat = (40 * impm / 100)
If abat < 1000 Then abat = 1000
If abat > 1500 Then abat = 1500
ret = impm - abat
If ret < 0 Then ret = 0
RTS1 = (ret * 10)
RTS1 = Int(RTS1)
RTS1 = RTS1 / 10
IRG2008 = RTS1
End Function



و هذا هو الشرح لطريقة حساب ال IRG

و طريقة حساب ال IRG و أقصد هنا بكلمة طريقة (la Formule de l'IRG) هي كالتالي :
أصبح يعتمد حساب هذه الضريبة على عنصر واحد فقط
وهو - المبلغ الخاضع للضريبة أي (le salaire soumis à IRG)

طريقة الحساب :
سأدرج مع الطريقة مثال لتبسيطها و ليكن حساب الضريبة لمبلغ 50000 دج سواءا كان أعزب أو متزوج
1- تحديد المبلغ الخام كالتالي: le Montant Brut = salaire soumis à IRG x 12
المثال : 50000 * 12 = 600000
2- يجب تحديد المجال الذي يقع فيه هذا المبلغ و ذلك و فق الجدول التالي :






و المجال هو الذي يكون مبلغه الأدنى أقل من المبلغ الخام و مبلغه الأعلى أكبر من المبلغ الخام لنأخذ منه نسبة الضريبة التي سنطبقها على الباقي
و من ثم نحدد المبلغ الثابت للضريبة و ذلك بتحديد مبلغ الضريبة المقابل للمجال الذي يسبق مجال مبلغنا الخام
المثال : 600000 تقع في مجال السطر الثالث و بالتالي فالنسبة هي : 30
أما المبلغ الثابت للضريبة فهو 48000 دج و ذلك لكونه يقابل المجال الموجود في السطر الثاني ( وهو السطر الذي يسبق سطر المجال الموجود به مبلغنا )
( و معنى هذا أن ضريبة 360000دج الأولى من مبلغنا الخام الذي هو 600000 دج ) = 48000 دج
أما الباقي فتحسب ضريبته بالضرب في النسبة التي تحصلنا عليها من السطر الثالث
أي المثال : ( 600000 دج - 360000 دج ) = 240000 دج و من ثم نقول أن الضريبة المتبقية هي :
240000 * 30 / 100 = 72000 دج
ثم نجمع الضريبتين :
المثال : 48000 دج + 72000 دج = 120000 دج، طبعا هذه هي الضريبة السنوية لأننا ضربنا في بداية العملية الخاضع في 12 و معنى هذا
أنه يجب علينا أن نقسم المبلغ على 12 لنحصل على الضريبة الشهرية أي : 120000 دج / 12 = 10000 دج
و من ثم يجب أن نطبق التخفيض الذي هو موحد بالنسبة لأي مبلغ و قد أصبح 40 % على أن لا تكون أقل من 1000 دج و أن لا تكون أكثر من 1500 دج
المثال :
- 10000 دج * 40 / 100 = 4000 دج ( و هي ليست أقل من 1000 و لكنها أكبر من 1500 )
و بالتالي فالتفخفيض سيكون 1500 دج و بالتالي فإن الضريبة هي 10000 دج - 1500 دج = ( 8500 دج )



و بالتوفيق إن شاء الله

laaziri1963 13-07-2008 05:36 PM

رد: طريقة حساب Irg مرفق بدالة Vba لمن يهمه الأمر
 
مرفوع للإفادة


الساعة الآن 03:18 PM.

Powered by vBulletin
قوانين المنتدى