menu
  Home  ==>  articles  ==>  admin  ==>  simulateur_impots_societes   

Simulateur Impôts sur les Sociétés - John COLIBRI.
Calcul IS

  • résumé : calculateur des impôts sur les sociétés. Tient compte des intérêts sur les comptes d'associés, des tranches d'IS
  • mots clé : impôt sur les sociétés, IS, intérêt, SARL, gérant majoritaire, 2020, intérêt sur les comptes d'associés
  • matériel utilisé : intel i3-8100, 3.6 gHz, 8GB memory, 128 G and 1 T hard disc
  • logiciel utilisé : Windows 10 pro 64 bit, Delphi 7
  • champ d'application : Delphi 1 à 7, 2006 à 2010, Xe_nnn, Seattle, Tokyo, Berlin, Delphi 10.3
  • niveau : développeur Delphi
  • plan :


1 - L'impôt sur les Sociétés

Nous sommes actuellement (depuis 1980 !) en SARL et nous nous rémunérions uniquement sous forme de rémunération (pas de dividendes, intérêt, loyer). Pour comparer avec d'autres formes juridiques, nous souhaitions examiner les diverses impôts et charges correspondant aux autres régimes et revenus possibles.

Nous avons déjà présenté les calculs des charges concernant les rémunérations du dirigeant (dirigeant majoritaire TNS ou directeur SAS assimilé salarié). Les rémunérations et les charges correspondantes sont donc des paramètres d'entrée de ce simulateur.

A présent nous examinons le traitement de l'impôt sur les sociétés, compte tenu du choix

  • des dividendes versés
  • des intérêts sur les comptes d'associé
  • des loyers versés au dirigeant



2 - Calcul de l'IS

2.1 - Les Paramètres

Nous avons placés les paramètres des charges dans un fichier .TXT. Ceci permet de faire les calculs sur des valeurs de taux différentes (si les règles de calcul ne changent pas trop)

 
          // --- IS 2020 (exercices ouverts après le 1er Janvier 2019)
tranche_is_1 38120,00 15,0 tranche_is_2 500000,00 28,0
taux_interet_moyen_pret 1,31 // _jan_2020



2.2 - Calculs

Quelques définitions
  • IS : Impôt sur les Sociétés, IR: Impôt sur les Revenus
  • la flat tax ou FPU Prélèvement Forfaitaire Unique (30 %) se décompose ainsi
    • 17.2 % sont prélevés au titre de la CSG
    • 12.8 % sont prélevés au niveau de l'Impôt personnel
  • SAS, directeur, assimilé salarié:
  • SARL, gérant majoritaire (TNS: travailleur non salarié)


Les règles sont les suivantes
  • pour les intérêts sur le capital et les comptes courants d'associés, déductible dans le calcul de l'IS la partie calculé avec un "taux moyenne des taux effectifs moyens pratiqués par les établissements de crédit pour les prêts à taux variable aux entreprises d'une durée initiale supérieure à deux ans"
    Ces intérêts sont
    • déduits comme des charges pour la portion dont le taux est inférieur au taux moyen etc
    • taxés au taux flat tax au niveau de l'IR

  • loyers : déduits des charges, taxés comme des revenus immobiliers au niveau de l'IR

  • dividendes :
    • directeur SAS : dividendes déduit comme des charges, taxé au taux flat tax au niveau de l'IR
    • gérant majoritaire SARL (ne joue que sur les charges, pas l'IS)
      • le montant inférieur à 10 % du capital social plus compte courant d'associé : flat tax
      • le montant supérieur à 10 %: charges comme les rémunérations



3 - Le Projet Delphi de calcul de l'IS

3.1 - La classe de calcul

Voici la définition de la classe de calcul:

Type c_calcul_is=
         Class(c_basic_object)
           m_titleString;
           m_tranche_is_countinteger;
           m_seuil_is_arraym_taux_is_arrayArray Of Double;

           m_c_detail_result_listtStrings;

           m_c_key_listm_c_value_listtStringList;

           m_capitalm_pourcent_capitalDouble;
           m_resultat_moins_salairesDouble;
           m_micro_foncier_brutDouble;
           m_taux_interets_compte_associem_interets_compte_associeDouble;

           m_dividendesDouble;
           m_revenu_sas_IRDouble;

           m_ISm_taux_is_moyenDouble;

           m_benefice_avant_ism_benefice_netm_reserveDouble;

           m_benefice_net_precedentDouble;

           Constructor create_calcul_is(p_nameString);

           Procedure load_is_parameters_from_file(p_pathp_file_nameString);
           Function f_amount(p_keyString): Double;
           Function f_rate(p_keyString): Double;
           Procedure display_is_parameters;

           Procedure calcule_is_sur_revenu_imposable;

           Destructor DestroyOverride;
         End// c_calcul_is



Comme pour le calcul des charges TNS, nous avons chargé les paramètres dans deux "tStringList parallèles"



3.2 - Les calculs

Les calculs de l'IS sont les suivants

Procedure c_calcul_is.calcule_is_sur_revenu_imposable;
  Var l_c_save_display_stringstStrings;

      l_taux_deductiblel_interets_associes_deductibles,
          l_interets_associes_non_deductiblesDouble;

      l_tranche_isInteger;
      l_basel_taux_trancheDouble;
      l_is_trancheDouble;
      l_displayString;
  Begin
    If m_benefice_avant_is> 0
      Then Begin
          display_line;

          m_interets_compte_associe:= m_taux_interets_compte_associem_capital;

          l_taux_deductible:= Min(m_taux_interets_compte_associe,
                f_rate('taux_interet_moyen_pret')/ 100);
          l_interets_associes_deductibles:= l_taux_deductiblem_capital;
          l_interets_associes_non_deductibles:= Max(0,
               m_interets_compte_associel_interets_associes_deductibles);

          If l_interets_associes_non_deductibles> 0
            Then Begin
                display(f_display('interets_associé_deduct'  ,
                    l_interets_associes_deductibles));
                display(f_display('interets_non_deduc'       ,
                    l_interets_associes_non_deductibles));
                display_line;
              End;

          display(f_display('resu_moins_salaires'     , m_benefice_avant_is));
          display_line;

          display(f_display(' - micro_foncier'           , m_micro_foncier_brut));
          display(f_display(' - interets_associé_déduct' , l_interets_associes_deductibles));
          display(f_display(' = benef_soumis_a_is'       , m_benefice_avant_is));

          display(f_display('imposable_a_IS'             , m_benefice_avant_is));
          display_line;

          m_IS:= 0;
          For l_tranche_is:= 1 To m_tranche_is_count- 1 Do
          Begin
            l_base:= m_benefice_avant_ism_seuil_is_array[l_tranche_is- 1];
            If l_base> 0
              Then Begin
                  l_base:= Min(m_benefice_avant_ism_seuil_is_array[l_tranche_is]);
                  l_base:= l_basem_seuil_is_array[l_tranche_is- 1];

                  l_taux_tranche:= m_taux_is_array[l_tranche_is] ;
                  l_is_tranche:= l_basel_taux_tranche / 100;
                  display(Format('is_1 %10.2f %10.2f  %5.2f   %10.2f',
                      [m_seuil_is_array[l_tranche_is], l_basel_taux_tranchel_is_tranche]));

                  m_IS:= m_ISl_is_tranche;
                End;
          End// for l_tranche_is

          display_line;
          display(Format('total_is      %s %10.2f  %5.2f %%  ',
              [f_spaces(21), m_ISm_ISm_benefice_avant_is]));
          m_benefice_net:= m_benefice_avant_ism_IS;
          display('--- <');
          display_line;

          l_display:= f_display('benefices_net',   m_benefice_net);
          display(l_display);

          initialize_display(l_c_save_display_strings);

          display_line;
          display(f_display('is',                  m_IS));
          display_line;
        End
      Else Begin
          display(f_display('*** revenu_avant_is< 0 %10.2'm_benefice_avant_is));
        End;
  End// calcule_is_sur_revenu_imposable




4 - Mini How To

Voici l'image de l'application

calcul_impot_societes

Donc

  • initialisez le fichier des paramètres. Le fichier pour 2020 est fourni dans le .ZIP
  • sélectionnez le fichier de paramètres dans la tFileListBox
  • entrez le salaire et les charges. Pour calculer les charges à partir du salaire net, vous pouvez utiliser les simulateurs SARL et SAS publiés précédemment
  • cliquez "compute_"
Nous avons utilisé comme exemple une valeur permettant de calculer deux tranches d'IS




5 - Améliorations

Nous n'avons pas présenté ici
  • les calculs de salaires et charges en amont. C'est l'objet des articles précédents
  • les calculs d'impôts sur le revenu en aval. Ce sera, vous l'avez deviné, l'objet de l'article qui suit



6 - Liens




7 - Télécharger le code source Delphi

Vous pouvez télécharger: Ce .ZIP qui comprend:
  • le .DPR, la forme principale, les formes annexes eventuelles
  • les fichiers de paramètres (le schéma et le batch de création)
  • dans chaque .ZIP, toutes les librairies nécessaires à chaque projet (chaque .ZIP est autonome)
Ces .ZIP, pour les projets en Delphi 6, contiennent des chemins RELATIFS. Par conséquent:
  • créez un répertoire n'importe où sur votre machine
  • placez le .ZIP dans ce répertoire
  • dézippez et les sous-répertoires nécessaires seront créés
  • compilez et exécutez
Ces .ZIP ne modifient pas votre PC (pas de changement de la Base de Registre, de DLL ou autre). Pour supprimer le projet, effacez le répertoire.

La notation utilisée est la notation alsacienne qui consiste à préfixer les identificateurs par la zone de compilation: K_onstant, T_ype, G_lobal, L_ocal, P_arametre, F_unction, C_lasse. Elle est présentée plus en détail dans l'article La Notation Alsacienne



Comme d'habitude:

  • nous vous remercions de nous signaler toute erreur, inexactitude ou problème de téléchargement en envoyant un e-mail à jcolibri@jcolibri.com. Les corrections qui en résulteront pourront aider les prochains lecteurs
  • tous vos commentaires, remarques, questions, critiques, suggestion d'article, ou mentions d'autres sources sur le même sujet seront de même les bienvenus à jcolibri@jcolibri.com.
  • plus simplement, vous pouvez taper (anonymement ou en fournissant votre e-mail pour une réponse) vos commentaires ci-dessus et nous les envoyer en cliquant "envoyer" :
    Nom :
    E-mail :
    Commentaires * :
     

  • et si vous avez apprécié cet article, faites connaître notre site, ajoutez un lien dans vos listes de liens ou citez-nous dans vos blogs ou réponses sur les messageries. C'est très simple: plus nous aurons de visiteurs et de références Google, plus nous écrirons d'articles.



8 - L'auteur

John COLIBRI est passionné par le développement Delphi et les applications de Bases de Données. Il a écrit de nombreux livres et articles, et partage son temps entre le développement de projets (nouveaux projets, maintenance, audit, migration BDE, migration Xe_n, refactoring) pour ses clients, le conseil (composants, architecture, test) et la formation. Son site contient des articles avec code source, ainsi que le programme et le calendrier des stages de formation Delphi, base de données, programmation objet, Services Web, Tcp/Ip et UML qu'il anime personellement tous les mois, à Paris, en province ou sur site client.
Created: jan-04. Last updated: mar-2020 - 250 articles, 620 .ZIP sources, 3303 figures
Contact : John COLIBRI - Tel: 01.42.83.69.36 / 06.87.88.23.91 - email:jcolibri@jcolibri.com
Copyright © J.Colibri   http://www.jcolibri.com - 2001 - 2020
Retour:  Home  Articles  Formations  Développement Delphi  Livres  Pascalissime  Liens  Download
l'Institut Pascal

John COLIBRI

+ Home
  + articles_avec_sources
    + bases_de_donnees
    + web_internet_sockets
    + services_web_
    + prog_objet_composants
    + office_com_automation
    + colibri_utilities
    + uml_design_patterns
    + graphique
    + delphi
    + outils
    + firemonkey
    + vcl_rtl
    + colibri_helpers
    + colibri_skelettons
    + admin
      – simul_charges_tns
      – simul_charges_salarie
      – simul_impots_societes
      – simul_impots_revenu
      – choix_salaire_divid
      – calcul_salaire_divid
  + formations
  + developpement_delphi
  + présentations
  + pascalissime
  + livres
  + entre_nous
  – télécharger

contacts
plan_du_site
– chercher :

RSS feed  
Blog