source: spip-zone/_plugins_/Association/Associaspip/exec/pdf_fiscal.php @ 48096

Last change on this file since 48096 was 48096, checked in by esj@…, 10 years ago

Associaspip Dans le reçu fiscal, compter aussi les dons, pas seulement les cotisations.

File size: 4.2 KB
Line 
1<?php
2/***************************************************************************\
3 *  Associaspip, extension de SPIP pour gestion d'associations             *
4 *                                                                         *
5 *  Copyright (c) 2007 Bernard Blazin & François de Montlivault (V1)       *
6 *  Copyright (c) 2010-2011 Emmanuel Saint-James & Jeannot Lapin (V2)       *
7 *                                                                         *
8 *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
9 *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
10\***************************************************************************/
11
12if (!defined("_ECRIRE_INC_VERSION")) return;
13
14// Production du recu fiscal a partir du formulaire standard
15// "Recu Dons aux oeuvres", article 200-5 du Code General des Impots)
16
17// Nouvelle version a prendre en compte:
18//http://www.impots.gouv.fr/portal/deploiement/p1/fichedescriptiveformulaire_5184/fichedescriptiveformulaire_5184.pdf
19
20if (!defined("_ECRIRE_INC_VERSION")) return;
21
22define('RECU_FISCAL', find_in_path('recu_fiscal.pdf'));
23if (!defined('SIGNATURE_PRES')) define('SIGNATURE_PRES', '');
24
25include_spip('pdf/fpdi_pdf_parser');
26include_spip('pdf/fpdf');
27include_spip('pdf/fpdf_tpl');
28include_spip('pdf/fpdi');
29include_spip('pdf/chiffreEnLettre');
30
31function exec_pdf_fiscal()
32{
33  $annee = intval(_request('annee'));
34  $id_auteur = intval(_request('id'));
35
36  $full = autoriser('associer', 'adherents');
37  if (!$full AND ($id_auteur != $GLOBALS['visiteur_session']['id_auteur'])) {
38                include_spip('inc/minipres');
39                echo minipres();
40  } elseif (!$data = sql_fetsel("*",'spip_asso_membres', "id_auteur=$id_auteur")) {
41                include_spip('inc/minipres');
42                echo minipres(_T('public:aucun_auteur'));
43  } else {
44                if (!preg_match('/^\d{4}$/', $annee)) $annee = date('Y') - 1;
45                $montants = sql_getfetsel('SUM(recette) AS montant', "spip_asso_comptes", "id_journal=$id_auteur AND vu AND date_format( date, '%Y' ) = $annee AND imputation=" . sql_quote($GLOBALS['association_metas']['pc_cotisations']));
46
47                $montants += sql_getfetsel('sum(D.argent) AS montant',
48                                      "spip_asso_dons AS D LEFT JOIN spip_asso_comptes AS C ON C.id_journal=D.id_don",
49                                      'C.imputation=' . sql_quote($GLOBALS['association_metas']['pc_dons']) . " AND C.vu AND date_format( D.date_don, '%Y' ) = $annee AND id_adherent=$id_auteur");
50
51                if (!$montants)
52                  {echo "Versement en $annee pour l'adherent de mail $mail: $montants";}
53                else {
54                  $nom=$data['prenom'].' '.$data['nom_famille']; 
55                  $adresse=$data['adresse'];
56                  $cp=$data['code_postal'];
57                  $ville=$data['ville'];
58
59                  if (isset($_GET['var_profile']))
60                    erreur_squelette();
61                  else build_pdf($montants, $nom, $adresse, $cp, $annee, $ville, "$annee-$id_auteur");
62                }
63  }
64}
65
66function build_pdf($montants, $nom, $adresse, $cp, $annee, $ville, $code)
67{
68$pdf =& new FPDI();
69
70$lettre=new ChiffreEnLettre();
71$nombre=$lettre->Conversion($montants);
72$pdf->setSourceFile(RECU_FISCAL);
73
74$pdf->addPage();
75$pdf->useTemplate($pdf->importPage(1, '/MediaBox'), 0, 0, 210);
76
77$pdf->SetFont('Arial'); 
78$pdf->SetFontSize(9); 
79$pdf->SetTextColor(0,0,0); 
80$pdf->SetXY(160, 25); 
81$pdf->Write(0, $code);
82#$pdf->SetXY(20, 55);
83#$pdf->Write(0, $GLOBALS['association_metas']['nom']);
84#$pdf->SetXY(20, 64);
85#$pdf->Write(0, $GLOBALS['association_metas']['rue']);
86#$pdf->SetXY(40, 69);
87#$pdf->Write(0, $GLOBALS['association_metas']['cp']);
88#$pdf->SetXY(70, 69);
89#$pdf->Write(0, $GLOBALS['association_metas']['ville']);
90$pdf->SetXY(25, 178); 
91$pdf->Write(0, $nom);
92$pdf->SetXY(45, 186); 
93$pdf->Write(0, $adresse);
94$pdf->SetXY(40, 191); 
95$pdf->Write(0, $cp);
96$pdf->SetXY(80, 191); 
97$pdf->Write(0, $ville);
98$pdf->SetXY(132, 209); 
99$pdf->SetFontSize(12); 
100$pdf->Write(0, $montants);
101$pdf->SetFontSize(9); 
102$pdf->SetXY(75, 223); 
103$pdf->Write(0, $nombre);
104if (SIGNATURE_PRES) $pdf->Image(SIGNATURE_PRES,160,247);
105$pdf->SetFillColor(255,255,255);
106$pdf->Rect(68,228,12,2,'F');
107$pdf->Rect(135,247,25,4,'F');
108$pdf->SetXY(68, 229); 
109$pdf->Write(0, $annee);
110$pdf->SetXY(135, 248); 
111$pdf->Write(0, date('d/m/Y'));
112
113
114// A finir: page 2.
115#$pdf->addPage();
116#$pdf->useTemplate($pdf->importPage(2, '/MediaBox'), 0, 0, 210);
117
118$pdf->Output('test.pdf', 'I');
119}
120?>
Note: See TracBrowser for help on using the repository browser.