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

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

Associaspip Nettoyage de code: suppressions des traces de l'interface avec Inscription2 + Correction d'un bug dans le lien page de membre -> livre de comptes dans le cas d'un don.

File size: 3.9 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                if (!$montants)
47                  {echo "Versement en $annee pour l'adherent de mail $mail: $montants";}
48                else {
49                  $nom=$data['prenom'].' '.$data['nom_famille']; 
50                  $adresse=$data['adresse'];
51                  $cp=$data['code_postal'];
52                  $ville=$data['ville'];
53
54                  if (isset($_GET['var_profile']))
55                    erreur_squelette();
56                  else build_pdf($montants, $nom, $adresse, $cp, $annee, $ville, "$annee-$id_auteur");
57                }
58  }
59}
60
61function build_pdf($montants, $nom, $adresse, $cp, $annee, $ville, $code)
62{
63$pdf =& new FPDI();
64
65$lettre=new ChiffreEnLettre();
66$nombre=$lettre->Conversion($montants);
67$pdf->setSourceFile(RECU_FISCAL);
68
69$pdf->addPage();
70$pdf->useTemplate($pdf->importPage(1, '/MediaBox'), 0, 0, 210);
71
72$pdf->SetFont('Arial'); 
73$pdf->SetFontSize(9); 
74$pdf->SetTextColor(0,0,0); 
75$pdf->SetXY(160, 25); 
76$pdf->Write(0, $code);
77#$pdf->SetXY(20, 55);
78#$pdf->Write(0, $GLOBALS['association_metas']['nom']);
79#$pdf->SetXY(20, 64);
80#$pdf->Write(0, $GLOBALS['association_metas']['rue']);
81#$pdf->SetXY(40, 69);
82#$pdf->Write(0, $GLOBALS['association_metas']['cp']);
83#$pdf->SetXY(70, 69);
84#$pdf->Write(0, $GLOBALS['association_metas']['ville']);
85$pdf->SetXY(25, 178); 
86$pdf->Write(0, $nom);
87$pdf->SetXY(45, 186); 
88$pdf->Write(0, $adresse);
89$pdf->SetXY(40, 191); 
90$pdf->Write(0, $cp);
91$pdf->SetXY(80, 191); 
92$pdf->Write(0, $ville);
93$pdf->SetXY(132, 209); 
94$pdf->SetFontSize(12); 
95$pdf->Write(0, $montants);
96$pdf->SetFontSize(9); 
97$pdf->SetXY(75, 223); 
98$pdf->Write(0, $nombre);
99if (SIGNATURE_PRES) $pdf->Image(SIGNATURE_PRES,160,247);
100$pdf->SetFillColor(255,255,255);
101$pdf->Rect(68,228,12,2,'F');
102$pdf->Rect(135,247,25,4,'F');
103$pdf->SetXY(68, 229); 
104$pdf->Write(0, $annee);
105$pdf->SetXY(135, 248); 
106$pdf->Write(0, date('d/m/Y'));
107
108
109// A finir: page 2.
110#$pdf->addPage();
111#$pdf->useTemplate($pdf->importPage(2, '/MediaBox'), 0, 0, 210);
112
113$pdf->Output('test.pdf', 'I');
114}
115?>
Note: See TracBrowser for help on using the repository browser.