Procédure de calcul de l'irg (impôt sur le revenu global) je ne sais pas si c'est international ou pas, celle-là s'applique

Soyez le premier à donner votre avis sur cette source.

Snippet vu 74 524 fois - Téléchargée 38 fois

Contenu du snippet

elle calcul le salaire imposable, le mettre à l'echelle ,calcul l'impot mensuel, calcul l'abattement selon marié divorcé ou célibataire et enfin l'IRG

Source / Exemple :


{c'est juste la partie essentielle de mon logiciel de gestion de paie}
Sal_Imp:=Gain - DM1.DataSMain.DataSet.FieldByName('RET_SS').AsCurrency;

                  {La mise à l'échelle du salaire imposable}

                  Sal_Imp := Sal_Imp * 12;

                  if ((Sal_Imp >= 0) and (Sal_Imp <=120000)) then begin
                                                                       Taux := 0;
                                                                       Impan := 0;
                                                                       Trs :=  120000;
                                                                       end;
                  if ((Sal_Imp > 120000) and (Sal_Imp <=360000)) then begin
                                                                       Taux := 20;
                                                                       Impan := 48000;
                                                                       Trs :=  360000;
                                                                       end;
                  if ((Sal_Imp > 360000) and (Sal_Imp <=1440000)) then begin
                                                                       Taux := 30;
                                                                       Impan := 48000;
                                                                       Trs :=  360000;
                                                                       end;
                  if ((Sal_Imp > 1440000)and (Sal_Imp <=9999999)) then begin
                                                                       Taux := 35;
                                                                       Impan := 372000;
                                                                       Trs := 1440000
                                                                       end;
                  if Sal_Imp > 9999999 then begin
                                            Taux := 35;
                                            Impan := 3367999.65;
                                            Trs := 9999999;
                                            end;

                  Impota := ((Sal_Imp - Trs)*Taux/100)+ Impan;

                  Impm := Impota / 12;

                  Abtt := (40*Impm/100);
                  if Abtt < 1000 then Abtt := 1000;
                  if Abtt > 1500 then Abtt := 1500;

                  IRG := Impm - Abtt;
                  if IRG < 0 then IRG := 0;

                  IRG := (IRG*10)+0.0001;
                  IRG := Trunc(IRG);
                  IRG := IRG / 10;
                  IRG := Trunc(IRG);

Conclusion :


laissez un commentaire pour de plus amples information.

A voir également

Ajouter un commentaire Commentaires
Messages postés
1
Date d'inscription
jeudi 11 octobre 2012
Statut
Membre
Dernière intervention
18 mars 2013

merci mais moi aussi j'ai une procedure qui marche bien
>
Messages postés
1
Date d'inscription
jeudi 11 octobre 2012
Statut
Membre
Dernière intervention
18 mars 2013

Function IRG( Sal_Imp:Currency):Currency;

var Taux,Impan,Trs,Impota,Impm,Abtt :Currency;

begin
Sal_Imp :=10* Trunc(Sal_Imp /10);
Sal_Imp := Sal_Imp * 12;

if ((Sal_Imp >= 0) and (Sal_Imp <=120000)) then begin
Taux := 0;
Impan := 0;
Trs := 120000;
end;
if ((Sal_Imp > 120000) and (Sal_Imp <=360000)) then begin
Taux := 20;
Impan := 48000;
Trs := 360000;
end;
if ((Sal_Imp > 360000) and (Sal_Imp <=1440000)) then begin
Taux := 30;
Impan := 48000;
Trs := 360000;
end;
if ((Sal_Imp > 1440000)and (Sal_Imp <=9999999)) then begin
Taux := 35;
Impan := 372000;
Trs := 1440000
end;
if Sal_Imp > 9999999 then begin
Taux := 35;
Impan := 3367999.65;
Trs := 9999999;
end;

Impota := ((Sal_Imp - Trs)*Taux/100)+ Impan;

Impm := Impota / 12;

Abtt := (40*Impm/100);
if Abtt < 1000 then Abtt := 1000;
if Abtt > 1500 then Abtt := 1500;

IRG := Impm - Abtt;
if IRG(Sal_Imp) < 0 then
IRG := 0;
IRG := (IRG(Sal_Imp)*10)+0.0001;
IRG := Trunc (IRG(Sal_Imp));
IRG := IRG(Sal_Imp) / 10;
IRG := Trunc (IRG(Sal_Imp));
end;

mais lorsque j'exécute le message de l'exception EInvalidOp operation en virgule flottente
svp aide moi
Messages postés
1
Date d'inscription
jeudi 2 novembre 2006
Statut
Membre
Dernière intervention
22 octobre 2010

la fonction irg en delphi
Function irg(sal_imp:Currency):Currency;
begin If sal_imp <15000 Then irg 0 Else If sal_imp <22500 Then irg (sal_imp - 15000) * 0.2 Else If sal_imp <28750 Then irg 1500 + (sal_imp - 22500 + Trunc((sal_imp - 22500)/5)) / 10 Else If sal_imp <30000 Then irg 2250 + (sal_imp - 28750) * 0.2
Else irg = 2500 + (sal_imp - 30000) * 0.3;
End;
Messages postés
3
Date d'inscription
samedi 6 décembre 2008
Statut
Membre
Dernière intervention
24 juin 2010

Bonsoir j'aimerais vous poser une question sur la précision des nombres real en delphi parceque mon application de la paie dans les résultats il ya une différence des centimes ou de dinars. s'il vous plait si vous avez une aider
aide moi. et merci
Messages postés
3
Date d'inscription
samedi 6 décembre 2008
Statut
Membre
Dernière intervention
24 juin 2010

Merci beaucoup pour ton aide c'est bon travail qui donne des bonnes résultats.
MERCI.
Afficher les 22 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.