delphi4arab منتديات دلفي للعرب
كيف ترجمة هذا الماكرو الى الديلفي - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : كيف ترجمة هذا الماكرو الى الديلفي (/showthread.php?tid=7931)



كيف ترجمة هذا الماكرو الى الديلفي - bouh25 - 13-06-2016

كيف ترجمة هذا الماكرو الى الديلفي
كود :
Function IRG(SOUMIS)     Dim BRTS, TAX, TB, IMPAN, IMPOTA, IMPM, ABAT, RET, RTS1, ABAT1 As Single         SOUMIS = SOUMIS / 10         SOUMIS = Fix(SOUMIS)         SOUMIS = SOUMIS * 10                 BRTS = SOUMIS * 12         If BRTS >= 0 And BRTS < 120000 Then             TAX = 0             IMPAN = 0             TB = 0         ElseIf BRTS >= 120000 And BRTS < 360000 Then             TAX = 20             IMPAN = 0             TB = 120000         ElseIf BRTS >= 360000 And BRTS < 1440000 Then             TAX = 30             IMPAN = 48000             TB = 360000         ElseIf BRTS >= 1440000 And BRTS < 9999999 Then             TAX = 35             IMPAN = 372000             TB = 1440000         ElseIf BRTS >= 9999999 Then             TAX = 0             IMPAN = 3367999.65             TB = 9999999         End If         IMPOTA = ((BRTS - TB) * TAX / 100) + IMPAN         IMPM = IMPOTA / 12         ABAT = ((40 * IMPM) / 100)         ABAT1 = ABAT         If ABAT < 1000 Then             ABAT = 1000         ElseIf ABAT > 1500 Then             ABAT = 1500         ElseIf ABAT >= 1000 And ABAT <= 1500 Then             ABAT = ABAT         End If         RET = IMPM - ABAT         If RET < 0 Then             RET = 0         ElseIf RET >= 0 Then             RET = RET         End If IRG = RET End Function Sub CalculeIRG() End Sub



RE: كيف ترجمة هذا الماكرو الى الديلفي - bouh25 - 21-06-2016

اشكر كل من اطلع على الكود و لم يرد
البرنامج عبارة عن قيمية الضريبة على الدخل في الاجر - الجزائر -
لقد وجدت الحل
------------------------------------------------------------------------------
function IRG(SOUMIS: Single): Single;
var
BRTS, TAX, TB, IMPAN, IMPOTA, IMPM, ABAT, RET: Single;
begin
SOUMIS := SOUMIS / 10;
SOUMIS := Sign(SOUMIS) * Int(Abs(SOUMIS));
SOUMIS := SOUMIS * 10;
BRTS := SOUMIS * 12;
if (BRTS >= 0) and (BRTS < 120000) then
begin
TAX := 0;
IMPAN := 0;
TB := 0;
end
else
if (BRTS >= 120000) and (BRTS < 360000) then
begin
TAX := 20;
IMPAN := 0;
TB := 120000;
end
else
if (BRTS >= 360000) and (BRTS < 1440000) then
begin
TAX := 30;
IMPAN := 48000;
TB := 360000;
end
else
if (BRTS >= 1440000) and (BRTS < 9999999) then
begin
TAX := 35;
IMPAN := 372000;
TB := 1440000;
end
else
begin
TAX := 0;
IMPAN := 3367999.65;
TB := 9999999;
end;
IMPOTA := ((BRTS - TB) * TAX / 100) + IMPAN;
IMPM := IMPOTA / 12;
ABAT := ((40 * IMPM) / 100);
if ABAT < 1000 then
ABAT := 1000
else
if ABAT > 1500 then
ABAT := 1500;
RET := IMPM - ABAT;
if RET < 0 then
RET := 0;
Result := RET;
end;


RE: كيف ترجمة هذا الماكرو الى الديلفي - Mr.DOS - 22-06-2016

السلام عليكم - رمضان كريم

تأكد من السطر رفم 6
(Sign(SOUMIS
 

كود :
SOUMIS := Sign(SOUMIS) * Int(Abs(SOUMIS));



RE: كيف ترجمة هذا الماكرو الى الديلفي - bouh25 - 22-06-2016

قمت بتجربته و الدالة تعمل 10/10 تقوم باضاعة المكتبة Uses Math