From 5bed70b04e69e756bb6386610ab7028c973f7c10 Mon Sep 17 00:00:00 2001 From: aspangaro Date: Sun, 22 Nov 2015 21:31:05 +0100 Subject: [PATCH] New: Donation complete cerfa 11580*03 Fr - Thanks Benoit21 --- htdocs/core/modules/dons/html_cerfafr.html | 466 +++++++++++------- .../modules/dons/html_cerfafr.modules.php | 190 ++++++- htdocs/don/admin/donation.php | 34 +- 3 files changed, 491 insertions(+), 199 deletions(-) diff --git a/htdocs/core/modules/dons/html_cerfafr.html b/htdocs/core/modules/dons/html_cerfafr.html index ca3f3510eee..ea9dbee01e3 100644 --- a/htdocs/core/modules/dons/html_cerfafr.html +++ b/htdocs/core/modules/dons/html_cerfafr.html @@ -1,185 +1,299 @@ - - - __DonationTitle__ - - + + + Reçu au titre des dons à certains organismes d’intérêt général + + +
+ + + + + + +
+
+ N° 11580*03
+ DGFIP +
+
+ Reçu au titre des dons
+ à certains organismes d’intérêt général

+ Articles 200, 238 bis et 885-0 V bis A du code général des impôts (CGI) +
+ Numéro d'ordre du reçu
+ __REF__ +
-
+ + + + +
+ + + + +
+ + Bénéficiaire des versements + +
- - +
+ + + + + + +
+ Nom ou dénomination :
+ __MAIN_INFO_SOCIETE_NOM__
+ Adresse :
+ __MAIN_INFO_SOCIETE_ADDRESS__
+ Code postal __MAIN_INFO_SOCIETE_ZIP__ Commune __MAIN_INFO_SOCIETE_TOWN__
+ Objet:
+ __MAIN_INFO_SOCIETE_OBJECT__ +
+
+ Cochez la case concernée (1) :
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Association ou fondation reconnue d'utilité publique par décret en date du ........./ ..... /........... publié au Journal + officiel du ......./ ....../ .......... . ou association située dans le département de la Moselle, du Bas-Rhin ou + du Haut-Rhin dont la mission a été reconnue d'utilité publique par arrêté préfectoral en date du …./.…/……..
Fondation universitaire ou fondation partenariale mentionnées respectivement aux articles L. 719-12 et + L. 719-13 du code de l'éducation
Fondation d'entreprise
Oeuvre ou organisme d'intérêt général
Musée de France
Établissement d'enseignement supérieur ou d’enseignement artistique public ou privé, d’intérêt général, à but + non lucratif
Organisme ayant pour objet exclusif de participer financièrement à la création d'entreprises
Association cultuelle ou de bienfaisance et établissement public des cultes reconnus d'Alsace-Moselle
Organisme ayant pour activité principale l'organisation de festivals
Association fournissant gratuitement une aide alimentaire ou des soins médicaux à des personnes en difficulté ou + favorisant leur logement
Fondation du patrimoine ou fondation ou association qui affecte irrévocablement les dons à la Fondation du + patrimoine, en vue de subventionner les travaux prévus par les conventions conclues entre la Fondation du + patrimoine et les propriétaires des immeubles (article L. 143-2-1 du code du patrimoine)
Établissement de recherche public ou privé, d’intérêt général, à but non lucratif
Entreprise d’insertion ou entreprise de travail temporaire d’insertion (articles L. 5132-5 et L. 5132-6 du code du + travail).
Associations intermédiaires (article L. 5132-7 du code du travail)
Ateliers et chantiers d’insertion (article L. 5132-15 du code du travail)
Entreprises adaptées (article L. 5213-13 du code du travail)
Agence nationale de la recherche (ANR)
Société ou organisme agréé de recherche scientifique ou technique (2)
Autre organisme : ………………………………………………………………………………………………
+
+
+ + (1) ou n'indiquez que les renseignements concernant l'organisme +
+ (2) dons effectués par les entreprises +
+ +
+ + + + +
+ + + + +
+ + Donateur + +
+ + + + + + + + +
+ Nom :
+ __DONATOR_SOCIETE____DONATOR_LASTNAME__ +
+ Prénoms :
+ __DONATOR_FIRSTNAME__ +
+ Adresse :
+ __DONATOR_ADDRESS__
+ Code postal __DONATOR_ZIP__ Commune __DONATOR_TOWN__ +
+
- Cerfa N° 11580*03 +
- - __DonationReceipt__
- __FrenchArticle__ - + + + + +
+ + + + +
+ Le bénéficiaire reconnaît avoir reçu au titre des dons et versements ouvrant droit à réduction d'impôt, la somme de :
+ + + + +
+ __AMOUNT__ euros +
+
+ Somme en toutes lettres : __AMOUNTLETTERS__ +
+
+ Date du versement ou du don : __DATE__ +
+
+ Le bénéficiaire certifie sur l’honneur que les dons et versements qu’il reçoit ouvrent droit à la réduction d'impôt prévue à l’article (3) :
+ + + __CodeDon__ + +
+
+ Forme du don :
+ + + + +
Acte authentique Acte sous seing privé Déclaration de don manuel Autres
+
+ Nature du don :
+ + + + +
Numéraire Titres de sociétés cotés Autres (4)
+
+ En cas de don en numéraire, mode de versement du don : + + + __ModePaiement__ + +
+
+
+ + + + + + + + + + +
(3) + L’organisme bénéficiaire peut cocher une ou plusieurs cases.
+ L’organisme bénéficiaire peut, en application de l’article L. 80 C du livre des procédures fiscales, demander à l’administration s’il relève + de l’une des catégories d’organismes mentionnées aux articles 200 et 238 bis du code général des impôts.
+ Il est rappelé que la délivrance irrégulière de reçus fiscaux par l’organisme bénéficiaire est susceptible de donner lieu, en application des + dispositions de l'article 1740 A du code général des impôts, à une amende fiscale égale à 25 % des sommes indûment mentionnées sur + ces documents. +
(4) + Notamment : abandon de revenus ou de produits ; frais engagés par les bénévoles, dont ils renoncent expressément au remboursement
+
+
+ +
+
- - __DonationRef__ - - - - -
- - - - -
__REF__
-
- - - - - - - - - -
- - - - -
- - __DonationRecipient__ - -
-
- - - - - -
- - - - -
- __Name__ :
- __MAIN_INFO_SOCIETE_NOM__
- __Address__ :
- __MAIN_INFO_SOCIETE_ADDRESS__
- __Zip__ : __MAIN_INFO_SOCIETE_ZIP__
- __Town__ : __MAIN_INFO_SOCIETE_TOWN__
-
-
- -
-
- - - - - -
- - - - -
- - __Donor__ - -
-
- - - - - -
- - - - -
- __Name__ :
- __DONATOR_FIRSTNAME__ __DONATOR_LASTNAME__
- __Address__ :
- __DONATOR_ADDRESS__
- __Zip__ : __DONATOR_ZIP__
- __Town__ : __DONATOR_TOWN__
-
-
- -
-
- - - - - - -
- - - - - - - -
- __IConfirmDonationReception__ :
- - - - -
- - __AMOUNT__ __CURRENCY__ - -
- __DonationDatePayment__ : __DATE__
- __PaymentMode__ : __PAYMENTMODE_LIB__
- - - - - -
-
- __Message__ : - __DonationMessage__
-
- - - - - - - - - -
- __FrenchEligibility__
- __ARTICLE200__ __ARTICLE238__ __ARTICLE885__ -
- - - - -
- - - - -
-
__Date__ & __Signature__
-
__NOW__
-
-
-
- -
-
- - + + + + + +
+ + + +
Date et signature

+ + +
+ + + + +
+ __NOW__ +
+
+
+
+
+ diff --git a/htdocs/core/modules/dons/html_cerfafr.modules.php b/htdocs/core/modules/dons/html_cerfafr.modules.php index ee8951864c0..7861f089cc7 100644 --- a/htdocs/core/modules/dons/html_cerfafr.modules.php +++ b/htdocs/core/modules/dons/html_cerfafr.modules.php @@ -3,7 +3,8 @@ * Copyright (C) 2005-2006 Laurent Destailleur * Copyright (C) 2012 Regis Houssin * Copyright (C) 2012 Marcos García - * Copyright (C) 2014-2015 Alexandre Spangaro + * Copyright (C) 2014-2015 Alexandre Spangaro + * Copyright (C) 2015 Benoit Bruchard * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -45,7 +46,7 @@ class html_cerfafr extends ModeleDon $this->db = $db; $this->name = "cerfafr"; - $this->description = $langs->trans('DonationsReceiptModel').' - fr_FR - Cerfa 11580*03'; + $this->description = 'Modèles de reçu de dons - fr_FR - Cerfa 11580*03'; // Dimension page for size A4 $this->type = 'html'; @@ -130,7 +131,30 @@ class html_cerfafr extends ModeleDon $paymentmode = $formclass->cache_types_paiements[$don->modepaiementid]['label']; } else $paymentmode = ''; - + + if ($don->modepaiementid==7){ + $ModePaiement = ' Remise d\'espèces Chèque Virement, prélèvement, carte bancaire'; + } + else if ($don->modepaiementid==4){ + $ModePaiement = ' Remise d\'espèces Chèque Virement, prélèvement, carte bancaire'; + } + else if ($don->modepaiementid==2 OR $don->modepaiementid==3 OR $don->modepaiementid==6){ + $ModePaiement = ' Remise d\'espèces Chèque Virement, prélèvement, carte bancaire'; + } + else + { + $ModePaiement = ' Remise d\'espèces Chèque Virement, prélèvement, carte bancaire'; + } + + if (empty($don->societe)) + { + $CodeDon = ' 200 du CGI 238 bis du CGI 885-0 V bis A du CGI'; + } + else + { + $CodeDon = ' 200 du CGI 238 bis du CGI 885-0 V bis A du CGI'; + } + // Define contents $donmodel=DOL_DOCUMENT_ROOT ."/core/modules/dons/html_cerfafr.html"; $form = implode('', file($donmodel)); @@ -138,18 +162,23 @@ class html_cerfafr extends ModeleDon $form = str_replace('__DATE__',dol_print_date($don->date,'day',false,$outputlangs),$form); //$form = str_replace('__IP__',$user->ip,$form); // TODO $user->ip not exist $form = str_replace('__AMOUNT__',$don->amount,$form); + $form = str_replace('__AMOUNTLETTERS__',chiffre_en_lettre($don->amount),$form); $form = str_replace('__CURRENCY__',$outputlangs->transnoentitiesnoconv("Currency".$conf->currency),$form); $form = str_replace('__CURRENCYCODE__',$conf->currency,$form); $form = str_replace('__MAIN_INFO_SOCIETE_NOM__',$mysoc->name,$form); $form = str_replace('__MAIN_INFO_SOCIETE_ADDRESS__',$mysoc->address,$form); $form = str_replace('__MAIN_INFO_SOCIETE_ZIP__',$mysoc->zip,$form); $form = str_replace('__MAIN_INFO_SOCIETE_TOWN__',$mysoc->town,$form); + $form = str_replace('__MAIN_INFO_SOCIETE_OBJECT__',$mysoc->object,$form); $form = str_replace('__DONATOR_FIRSTNAME__',$don->firstname,$form); $form = str_replace('__DONATOR_LASTNAME__',$don->lastname,$form); + $form = str_replace('__DONATOR_SOCIETE__',$don->societe,$form); + $form = str_replace('__DONATOR_STATUT__',$don->statut,$form); $form = str_replace('__DONATOR_ADDRESS__',$don->address,$form); $form = str_replace('__DONATOR_ZIP__',$don->zip,$form); $form = str_replace('__DONATOR_TOWN__',$don->town,$form); $form = str_replace('__PAYMENTMODE_LIB__ ', $paymentmode,$form); + $form = str_replace('__ModePaiement__', $ModePaiement,$form); $form = str_replace('__NOW__',dol_print_date($now,'day',false,$outputlangs),$form); $form = str_replace('__DonationRef__',$outputlangs->trans("DonationRef"),$form); $form = str_replace('__DonationTitle__',$outputlangs->trans("DonationTitle"),$form); @@ -157,6 +186,7 @@ class html_cerfafr extends ModeleDon $form = str_replace('__DonationRecipient__',$outputlangs->trans("DonationRecipient"),$form); $form = str_replace('__DonationDatePayment__',$outputlangs->trans("DonationDatePayment"),$form); $form = str_replace('__PaymentMode__',$outputlangs->trans("PaymentMode"),$form); + $form = str_replace('__CodeDon__',$CodeDon,$form); $form = str_replace('__Name__',$outputlangs->trans("Name"),$form); $form = str_replace('__Address__',$outputlangs->trans("Address"),$form); $form = str_replace('__Zip__',$outputlangs->trans("Zip"),$form); @@ -181,7 +211,7 @@ class html_cerfafr extends ModeleDon if (preg_match('/fr/i',$outputlangs->defaultlang)) { if ($conf->global->DONATION_ART200 >= 1) { - $art200='200 du CGI'; + $art200='200 du CGI'; } else { @@ -194,7 +224,7 @@ class html_cerfafr extends ModeleDon if (preg_match('/fr/i',$outputlangs->defaultlang)) { if ($conf->global->DONATION_ART238 >= 1) { - $art238='238 bis du CGI'; + $art238='238 bis du CGI'; } else { @@ -207,7 +237,7 @@ class html_cerfafr extends ModeleDon if (preg_match('/fr/i',$outputlangs->defaultlang)) { if ($conf->global->DONATION_ART885 >= 1) { - $art885='885-0 V bis du CGI'; + $art885='885-0 V bis du CGI'; } else { @@ -242,3 +272,151 @@ class html_cerfafr extends ModeleDon } } +function chiffre_en_lettre($montant, $devise1='', $devise2='') +{ + if(empty($devise1)) $dev1='euros'; + else $dev1=$devise1; + if(empty($devise2)) $dev2='centimes'; + else $dev2=$devise2; + $valeur_entiere=intval($montant); + $valeur_decimal=intval(round($montant-intval($montant), 2)*100); + $dix_c=intval($valeur_decimal%100/10); + $cent_c=intval($valeur_decimal%1000/100); + $unite[1]=$valeur_entiere%10; + $dix[1]=intval($valeur_entiere%100/10); + $cent[1]=intval($valeur_entiere%1000/100); + $unite[2]=intval($valeur_entiere%10000/1000); + $dix[2]=intval($valeur_entiere%100000/10000); + $cent[2]=intval($valeur_entiere%1000000/100000); + $unite[3]=intval($valeur_entiere%10000000/1000000); + $dix[3]=intval($valeur_entiere%100000000/10000000); + $cent[3]=intval($valeur_entiere%1000000000/100000000); + $chif=array('', 'un', 'deux', 'trois', 'quatre', 'cinq', 'six', 'sept', 'huit', 'neuf', 'dix', 'onze', 'douze', 'treize', 'quatorze', 'quinze', 'seize', 'dix sept', 'dix huit', 'dix neuf'); + $secon_c=''; + $trio_c=''; + for($i=1; $i<=3; $i++){ + $prim[$i]=''; + $secon[$i]=''; + $trio[$i]=''; + if($dix[$i]==0){ + $secon[$i]=''; + $prim[$i]=$chif[$unite[$i]]; + } + else if($dix[$i]==1){ + $secon[$i]=''; + $prim[$i]=$chif[($unite[$i]+10)]; + } + else if($dix[$i]==2){ + if($unite[$i]==1){ + $secon[$i]='vingt et'; + $prim[$i]=$chif[$unite[$i]]; + } + else { + $secon[$i]='vingt'; + $prim[$i]=$chif[$unite[$i]]; + } + } + else if($dix[$i]==3){ + if($unite[$i]==1){ + $secon[$i]='trente et'; + $prim[$i]=$chif[$unite[$i]]; + } + else { + $secon[$i]='trente'; + $prim[$i]=$chif[$unite[$i]]; + } + } + else if($dix[$i]==4){ + if($unite[$i]==1){ + $secon[$i]='quarante et'; + $prim[$i]=$chif[$unite[$i]]; + } + else { + $secon[$i]='quarante'; + $prim[$i]=$chif[$unite[$i]]; + } + } + else if($dix[$i]==5){ + if($unite[$i]==1){ + $secon[$i]='cinquante et'; + $prim[$i]=$chif[$unite[$i]]; + } + else { + $secon[$i]='cinquante'; + $prim[$i]=$chif[$unite[$i]]; + } + } + else if($dix[$i]==6){ + if($unite[$i]==1){ + $secon[$i]='soixante et'; + $prim[$i]=$chif[$unite[$i]]; + } + else { + $secon[$i]='soixante'; + $prim[$i]=$chif[$unite[$i]]; + } + } + else if($dix[$i]==7){ + if($unite[$i]==1){ + $secon[$i]='soixante et'; + $prim[$i]=$chif[$unite[$i]+10]; + } + else { + $secon[$i]='soixante'; + $prim[$i]=$chif[$unite[$i]+10]; + } + } + else if($dix[$i]==8){ + if($unite[$i]==1){ + $secon[$i]='quatre-vingts et'; + $prim[$i]=$chif[$unite[$i]]; + } + else { + $secon[$i]='quatre-vingt'; + $prim[$i]=$chif[$unite[$i]]; + } + } + else if($dix[$i]==9){ + if($unite[$i]==1){ + $secon[$i]='quatre-vingts et'; + $prim[$i]=$chif[$unite[$i]+10]; + } + else { + $secon[$i]='quatre-vingts'; + $prim[$i]=$chif[$unite[$i]+10]; + } + } + if($cent[$i]==1) $trio[$i]='cent'; + else if($cent[$i]!=0 || $cent[$i]!='') $trio[$i]=$chif[$cent[$i]] .' cents'; + } + + +$chif2=array('', 'dix', 'vingt', 'trente', 'quarante', 'cinquante', 'soixante', 'soixante-dix', 'quatre-vingts', 'quatre-vingts dix'); + $secon_c=$chif2[$dix_c]; + if($cent_c==1) $trio_c='cent'; + else if($cent_c!=0 || $cent_c!='') $trio_c=$chif[$cent_c] .' cents'; + + if(($cent[3]==0 || $cent[3]=='') && ($dix[3]==0 || $dix[3]=='') && ($unite[3]==1)) + $somme = $trio[3]. ' ' .$secon[3]. ' ' . $prim[3]. ' million '; + else if(($cent[3]!=0 && $cent[3]!='') || ($dix[3]!=0 && $dix[3]!='') || ($unite[3]!=0 && $unite[3]!='')) + $somme = $trio[3]. ' ' .$secon[3]. ' ' . $prim[3]. ' millions '; + else + $somme = $trio[3]. ' ' .$secon[3]. ' ' . $prim[3]; + + if(($cent[2]==0 || $cent[2]=='') && ($dix[2]==0 || $dix[2]=='') && ($unite[2]==1)) + $somme = $somme.' mille '; + else if(($cent[2]!=0 && $cent[2]!='') || ($dix[2]!=0 && $dix[2]!='') || ($unite[2]!=0 && $unite[2]!='')) + $somme = $somme. $trio[2]. ' ' .$secon[2]. ' ' . $prim[2]. ' milles '; + else + $somme = $somme. $trio[2]. ' ' .$secon[2]. ' ' . $prim[2]; + + $somme = $somme. $trio[1]. ' ' .$secon[1]. ' ' . $prim[1]; + + $somme = $somme. ' '. $dev1 .' ' ; + + if(($cent_c=='0' || $cent_c=='') && ($dix_c=='0' || $dix_c=='')) + return $somme. ' et zéro '. $dev2; + else + return $somme. $trio_c. ' ' .$secon_c. ' ' . $dev2; + +} diff --git a/htdocs/don/admin/donation.php b/htdocs/don/admin/donation.php index 2250c27ff7c..4719bd6855a 100644 --- a/htdocs/don/admin/donation.php +++ b/htdocs/don/admin/donation.php @@ -3,6 +3,7 @@ * Copyright (C) 2012-2015 Juanjo Menent * Copyright (C) 2013-2015 Philippe Grand * Copyright (C) 2015 Alexandre Spangaro + * Copyright (C) 2015 Benoit Bruchard * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -39,6 +40,7 @@ if (!$user->admin) accessforbidden(); $typeconst=array('yesno','texte','chaine'); $action = GETPOST('action','alpha'); +$value = GETPOST('value'); $type='donation'; @@ -377,18 +379,18 @@ if (is_resource($handle)) // Active if (in_array($name, $def)) { - print "\n"; if ($conf->global->DON_ADDON_MODEL == $name) { - print img_picto($langs->trans("Enabled"),'switch_on'); - } + print "\n"; + print img_picto($langs->trans("Enabled"),'switch_on'); + print ''; + } else { - print ' '; - print ''; + print "\n"; print 'scandir.'&label='.urlencode($module->name).'">'.img_picto($langs->trans("Enabled"),'switch_on').''; - } - print ''; + print ''; + } } else { @@ -398,16 +400,18 @@ if (is_resource($handle)) } // Defaut - print ""; if ($conf->global->DON_ADDON_MODEL == "$name") { - print img_picto($langs->trans("Default"),'on'); + print ""; + print img_picto($langs->trans("Default"),'on'); + print ''; } else { - print 'scandir.'&label='.urlencode($module->name).'" alt="'.$langs->trans("Default").'">'.img_picto($langs->trans("Disabled"),'off').''; - } - print ''; + print ""; + print 'scandir.'&label='.urlencode($module->name).'" alt="'.$langs->trans("Default").'">'.img_picto($langs->trans("Disabled"),'off').''; + print ''; + } // Info $htmltooltip = ''.$langs->trans("Name").': '.$module->name; @@ -437,10 +441,6 @@ if (is_resource($handle)) print ''; - -print "
"; - +llxFooter(); $db->close(); - -llxFooter();