Changeset 61847 in spip-zone


Ignore:
Timestamp:
May 30, 2012, 9:34:27 AM (7 years ago)
Author:
gildas.cotomale@…
Message:

suite de réécriture des exports PDF avec prise en compte des destinations

Location:
_plugins_/Association/Associaspip
Files:
1 added
5 edited
1 moved

Legend:

Unmodified
Added
Removed
  • _plugins_/Association/Associaspip/exec/bilan.php

    r60892 r61847  
    9494                        echo "\n<fieldset>";
    9595                        echo '<legend><b>'. ($id_destination ? $intitule_destinations[$id_destination] : ($GLOBALS['association_metas']['destinations']?_T('asso:toutes_destination'):'') ). '</b></legend>';
    96                         $solde = association_liste_totaux_comptes_classes($classes, 'cpte_resultat', 0, $exercice, $id_destination);
     96                        $solde = association_liste_totaux_comptes_classes_html($classes, 'cpte_resultat', 0, $exercice, $id_destination);
    9797                        if(autoriser('associer', 'export_comptes') && !$id_destination){ // on peut exporter : pdf, csv, xml, ...
    9898                                echo "<br /><table width='100%' class='asso_tablo' cellspacing='6' id='asso_tablo_exports'>\n";
  • _plugins_/Association/Associaspip/exec/compte_bilan.php

    r61768 r61847  
    2727                include_spip('inc/association_comptabilite');
    2828                $ids = association_passe_parametres_comptables();
    29                 $plan = sql_countsel('spip_asso_plan','active=1');
    3029                $exercice_data = sql_asso1ligne('exercice', $ids['exercice']);
    3130// traitements
     
    4241#                       'annexe_titre_general' => array('finances-24.png', 'annexe', "exercice=$ids[exercice]".($ids['destination']?"&destination=$ids[destination]":'')),
    4342                ));
    44                 $var = association_passe_parametres_comptables();
    45 /*
    46                 if(autoriser('associer', 'export_comptes') && $plan){ // on peut exporter : pdf, csv, xml, ...
     43                if(autoriser('associer', 'export_comptes')){ // on peut exporter : pdf, csv, xml, ...
    4744                        echo debut_cadre_enfonce('',true);
    4845                        echo '<h3>'. _T('asso:cpte_bilan_mode_exportation') .'</h3>';
    49                         if (test_plugin_actif('FPDF')) { // impression en PDF : _T('asso:bouton_impression')
    50                                 echo icone1_association('PDF', generer_url_ecrire('export_comptebilans_pdf'), "exercice=$ids[exercice]".($ids['destination']?"&destination=$ids[destination]":'')), 'print-24.png');
     46                        if (test_plugin_actif('FPDF')) {  // impression en PDF : _T('asso:bouton_impression')
     47                                echo icone1_association('PDF', generer_url_ecrire('pdf_comptesbilan', "exercice=$ids[exercice]".($ids['destination']?"&destination=$ids[destination]":'')), 'print-24.png');
    5148                        }
     49/*
    5250                        foreach(array('csv','ctx','dbk','json','tex','tsv','xml','yaml') as $type) { // autres exports (donnees brutes) possibles
    5351                                echo icone1_association(strtoupper($type), generer_url_ecrire("export_comptebilans_$type").'&var='.rawurlencode($ids['url']), 'export-24.png'); //!\ generer_url_ecrire($exec, $param) equivaut a generer_url_ecrire($exec).'&'.urlencode($param) or il faut utiliser rawurlencode($param) ici...
    5452                        }
     53*/
    5554                        echo fin_cadre_enfonce(true);
    5655                }
    57 */
    5856                debut_cadre_association('finances-24.png', 'cpte_bilan_titre_general', $exercice_data['intitule']);
    5957                // Filtres
     
    7573                }
    7674                // liste des actifs (les dettes) cumulees par comptes
    77                 $actifs = association_liste_totaux_comptes_classes($classes_bilan, 'cpte_bilan', '-1', $ids['exercice'], $ids['destination']);
     75                $actifs = association_liste_totaux_comptes_classes_html($classes_bilan, 'cpte_bilan', '-1', $ids['exercice'], $ids['destination']);
    7876                // liste des passifs (le patrimoine/avoir) cumulees par comptes
    79                 $passifs = association_liste_totaux_comptes_classes($classes_bilan, 'cpte_bilan', '+1', $ids['exercice'], $ids['destination']);
     77                $passifs = association_liste_totaux_comptes_classes_html($classes_bilan, 'cpte_bilan', '+1', $ids['exercice'], $ids['destination']);
    8078                // resultat comptable courant : en comptabilite francaise, la somme les actifs et les passifs doivent s'egaler, ce qui se fait en incorporant le resultat comptable (perte en actif et benefice en passif)
    8179                association_liste_resultat_net($passifs, $actifs);
     
    8583}
    8684
    87 
    88 
    89         include_spip('inc/charsets');
    90         include_spip('inc/association_plan_comptable');
    91 
    92 // Brique commune aux classes d'exportation des donnees du compte de bilan
    93 class ExportCompteBilans {
    94 
    95         var $exercice;
    96         var $join;
    97         var $sel;
    98         var $where;
    99         var $having;
    100         var $order;
    101         var $out;
    102 
    103         function  __construct($var) {
    104                 $tableau = unserialize(rawurldecode($var));
    105                 $this->exercice = $tableau[0];
    106                 $this->join = $tableau[1];
    107                 $this->sel = $tableau[2];
    108                 $this->where = $tableau[3];
    109                 $this->having = $tableau[4];
    110                 $this->order = $tableau[5];
    111                 $this->out = '';
    112         }
    113 
    114         // de type CSV,INI,TSV, etc.
    115         function LignesSimplesEntete($champsSeparateur, $lignesSeparateur, $echappements=array(), $champDebut='', $champFin='') {
    116                 $this->out .= $champDebut. str_replace(array_keys($echappements), array_values($echappements), utf8_decode(html_entity_decode(_T('asso:entete_code')))) .$champFin.$champsSeparateur;
    117                 $this->out .= $champDebut. str_replace(array_keys($echappements), array_values($echappements), utf8_decode(html_entity_decode(_T('asso:entete_intitule')))) .$champFin.$champsSeparateur;
    118                 $this->out .= $champDebut. str_replace(array_keys($echappements), array_values($echappements), utf8_decode(html_entity_decode(_T('asso:entete_montant')))) .$champFin.$lignesSeparateur;
    119         }
    120 
    121         // de type CSV,INI,TSV, etc.
    122         function LignesSimplesCorps($key, $champsSeparateur, $lignesSeparateur, $echappements=array(), $champDebut='', $champFin='') {
    123                 switch ($key) {
    124                         case 'charges' :
    125                                 $quoi = "SUM(depense) AS valeurs";
    126                                 break;
    127                         case 'produits' :
    128                                 $quoi = "SUM(recette) AS valeurs";
    129                                 break;
    130                         case 'contributions_volontaires' :
    131                                 $quoi = "SUM(depense) AS charge_evaluee, SUM(recette) AS produit_evalue";
    132                                 break;
    133                 }
    134                 $query = sql_select(
    135                         "imputation, $quoi ".$this->sel, // select
    136                         'spip_asso_comptes '.$this->join, // from
    137                         $this->where, // where
    138                         $this->order, // group by
    139                         $this->order, // order by
    140                         '', // limit
    141                         $this->having .$GLOBALS['association_metas']['classe_'.$key] // having
    142                 );
    143                 $chapitre = '';
    144                 $i = 0;
    145                 while ($data = sql_fetch($query)) {
    146                         if ($key==='contributions_volontaires') {
    147                                 if ($data['charge_evaluee']>0) {
    148                                         $valeurs = $data['charge_evaluee'];
    149                                 } else {
    150                                         $valeurs = $data['produit_evalue'];
    151                                 }
    152                         } else {
    153                                 $valeurs = $data['valeurs'];
    154                         }
    155                         $new_chapitre = substr($data['code'], 0, 2);
    156                         if ($chapitre!=$new_chapitre) {
    157                                 $this->out .= $champDebut. str_replace(array_keys($echappements), array_values($echappements), $new_chapitre) .$champFin.$champsSeparateur;
    158                                 $this->out .= $champDebut. str_replace(array_keys($echappements), array_values($echappements), ($GLOBALS['association_metas']['plan_comptable_prerenseigne']?association_plan_comptable_complet($new_chapitre):sql_getfetsel('intitule','spip_asso_plan',"code='$new_chapitre'"))) .$champFin.$champsSeparateur;
    159                                 $this->out .= $champsSeparateur.' '.$champsSeparateur;
    160                                 $this->out .= $lignesSeparateur;
    161                                 $chapitre = $new_chapitre;
    162                         }
    163                         $this->out .= $champDebut. str_replace(array_keys($echappements), array_values($echappements), $data['code']) .$champFin.$champsSeparateur;
    164                         $this->out .= $champDebut. str_replace(array_keys($echappements), array_values($echappements), $data['intitule']) .$champFin.$champsSeparateur;
    165                         $this->out .= $champDebut.$valeurs.$champFin.$lignesSeparateur;
    166                 }
    167         }
    168 
    169         // export texte de type tableau (lignes*colonnes) simple : CSV,CTX,HTML*SPIP,INI*,TSV,etc.
    170         // de par la simplicite recherchee il n'y a pas de types ou autres : CSV et CTX dans une certaine mesure pouvant distinguer "nombres", "chaines alphanumeriques" et "chaine binaires encodees"
    171         function exportLignesUniques($champsSeparateur, $lignesSeparateur, $echappements=array(), $champDebut='', $champFin='', $entete=true) {
    172                 if ($entete) {
    173                         LignesSimplesEntete($champsSeparateur, $lignesSeparateur, $echappements=array(), $champDebut='', $champFin='');
    174                 }
    175                 foreach (array('charges', 'produits', 'contributions_volontaires') as $nomClasse) {
    176                         LignesSimplesCorps($nomClasse, $champsSeparateur, $lignesSeparateur, $echappements=array(), $champDebut='', $champFin='');
    177                 }
    178         }
    179 
    180         // export texte de type s-expression / properties-list / balisage (conteneurs*conteneurs*donnees) simple : JSON, XML (utilisable avec ASN.1), YAML, etc.
    181         // de par la simplicite recherchee il n'y a pas de types ou d'attributs : BSON, Bencode, JSON, pList, XML, etc.
    182         function exportLignesMultiples($balises, $echappements=array(), $champDebut='', $champFin='', $indent="\t", $entetesPerso='') {
    183                 $this->out .= "$balises[compteresultat1]\n";
    184                 if (!$entetesPerso) {
    185                         $this->out .= "$indent$balises[entete1]\n";
    186                         $this->out .= "$indent$indent$balises[titre1] $champDebut". utf8_decode(html_entity_decode(_T('asso:cpte_resultat_titre_general'))) ."$champFin $balises[titre0]\n";
    187                         $this->out .= "$indent$indent$balises[nom1] $champDebut". $GLOBALS['association_metas']['nom'] ."$champFin $balises[nom0]\n";
    188                         $this->out .= "$indent$indent$balises[exercice1] $champDebut". sql_asso1champ('exercice', $this->exercice, 'intitule') ."$champFin $balises[exercice0]\n";
    189                         $this->out .= "$indent$balises[entete0]\n";
    190                 }
    191                 foreach (array('charges', 'produits', 'contributions_volontaires') as $nomClasse) {
    192                         switch ($nomClasse) {
    193                                 case 'charges' :
    194                                         $quoi = "SUM(depense) AS valeurs";
    195                                         break;
    196                                 case 'produits' :
    197                                         $quoi = "SUM(recette) AS valeurs";
    198                                         break;
    199                                 case 'contributions_volontaires' :
    200                                         $quoi = "SUM(depense) AS charge_evaluee, SUM(recette) AS produit_evalue";
    201                                         break;
    202                         }
    203                         $baliseClasse = $nomClasse.'1';
    204                         $this->out .= "$indent$balises[$baliseClasse]\n";
    205                         $query = sql_select(
    206                                 "imputation, $quoi ".$this->sel, // select
    207                         'spip_asso_comptes'.$this->join, // from
    208                                 $this->where, // where
    209                                 $this->order, // group by
    210                                 $this->order, // order by
    211                         '', // limit
    212                                 $this->having .$GLOBALS['association_metas']['classe_'.$nomClasse] // having
    213                         );
    214                         $chapitre = '';
    215                         $i = 0;
    216                         while ($data = sql_fetch($query)) {
    217                                 if ($key==='contributions_volontaires') {
    218                                         if ($data['charge_evaluee']>0) {
    219                                                 $valeurs = $data['charge_evaluee'];
    220                                         } else {
    221                                                 $valeurs = $data['produit_evalue'];
    222                                         }
    223                                 } else {
    224                                         $valeurs = $data['valeurs'];
    225                                 }
    226                                 $new_chapitre = substr($data['code'], 0, 2);
    227                                 if ($chapitre!=$new_chapitre) {
    228                                         if ($chapitre!='') {
    229                                                 $this->out .= "$indent$indent$balises[chapitre0]\n";
    230                                         }
    231                                         $this->out .= "$indent$indent$balises[chapitre1]\n";
    232                                         $this->out .= "$indent$indent$indent$balises[code1] $champDebut". str_replace(array_keys($echappements), array_values($echappements), $new_chapitre) ."$champFin $balises[code0]\n";;
    233                                         $this->out .= "$indent$indent$indent$balises[libelle1] $champDebut". str_replace(array_keys($echappements), array_values($echappements), ($GLOBALS['association_metas']['plan_comptable_prerenseigne']?association_plan_comptable_complet($new_chapitre):sql_getfetsel('intitule','spip_asso_plan',"code='$new_chapitre'"))) ."$champFin $balises[libelle0]\n";
    234                                         $chapitre = $new_chapitre;
    235                                 }
    236                                 $this->out .= "$indent$indent$indent$balises[categorie1]\n";
    237                                 $this->out .= "$indent$indent$indent$indent$balises[code1] $champDebut". str_replace(array_keys($echappements), array_values($echappements), $data['code']) ."$champFin $balises[code0]\n";
    238                                 $this->out .= "$indent$indent$indent$indent$balises[intitule1] $champDebut". str_replace(array_keys($echappements), array_values($echappements), $data['intitule']) ."$champFin $balises[intitule0]\n";
    239                                 $this->out .= "$indent$indent$indent$indent$balises[montant1] $champDebut".$valeurs."$champFin $balises[montant0]\n";
    240                                 $this->out .= "$indent$indent$indent$balises[categorie0]\n";
    241                         }
    242                         if ($chapitre!='') {
    243                                 $this->out .= "$indent$indent$balises[chapitre0]\n";
    244                         }
    245                         $baliseClasse = $nomClasse.'0';
    246                         $this->out .= "$indent$balises[$baliseClasse]\n";
    247                 }
    248                 $this->out .= "$balises[compteresultat0]\n";
    249         }
    250 
    251         // fichier texte final a afficher/telecharger
    252         function leFichier($ext) {
    253                 $fichier = _DIR_RACINE.'/'._NOM_TEMPORAIRES_ACCESSIBLES.'compte_bilans_'.$this->exercice.".$ext"; // on essaye de creer le fichier dans le cache local/ http://www.spip.net/fr_article4637.html
    254                 $f = fopen($fichier, 'w');
    255                 fputs($f, $this->out);
    256                 fclose($f);
    257                 header('Content-type: application/'.$ext);
    258                 header('Content-Disposition: attachment; filename="'.$fichier.'"');
    259                 readfile($fichier);
    260         }
    261 
    262 }
    263 
    26485?>
  • _plugins_/Association/Associaspip/exec/compte_resultat.php

    r61768 r61847  
    4848                        echo '<h3>'. _T('asso:cpte_resultat_mode_exportation') .'</h3>';
    4949                        if (test_plugin_actif('FPDF')) { // impression en PDF : _T('asso:bouton_impression')
    50                                 echo icone1_association('PDF', generer_url_ecrire('export_compteresultats_pdf', "exercice=$ids[exercice]".($ids['destination']?"&destination=$ids[destination]":'')), 'print-24.png');
     50                                echo icone1_association('PDF', generer_url_ecrire('pdf_compteresultat', "exercice=$ids[exercice]".($ids['destination']?"&destination=$ids[destination]":'')), 'print-24.png');
    5151                        }
    5252                        foreach(array('csv','ctx','dbk','json','tex','tsv','xml','yaml') as $type) { // autres exports (donnees brutes) possibles
     
    6262                ), 'compte_resultat');
    6363                // liste des charges (depenses d'exploitation) cumulees par comptes
    64                 $charges = association_liste_totaux_comptes_classes($GLOBALS['association_metas']['classe_charges'], 'cpte_resultat', '-1', $ids['exercice'], $ids['destination']);
     64                $charges = association_liste_totaux_comptes_classes_html($GLOBALS['association_metas']['classe_charges'], 'cpte_resultat', '-1', $ids['exercice'], $ids['destination']);
    6565                // liste des produits (recettes d'exploitation) cumules par comptes
    66                 $produits = association_liste_totaux_comptes_classes($GLOBALS['association_metas']['classe_produits'], 'cpte_resultat', '+1', $ids['exercice'], $ids['destination']);
     66                $produits = association_liste_totaux_comptes_classes_html($GLOBALS['association_metas']['classe_produits'], 'cpte_resultat', '+1', $ids['exercice'], $ids['destination']);
    6767                // resultat comptable courant : c'est la difference entre les recettes et les depenses d'exploitation
    6868                association_liste_resultat_net($produits, $charges);
    6969                // liste des contributions volontaires (emplois et ressources) par comptes
    70                 $contributions = association_liste_totaux_comptes_classes($GLOBALS['association_metas']['classe_contributions_volontaires'], 'cpte_benevolat', 0, $ids['exercice'], $ids['destination']);
     70                $contributions = association_liste_totaux_comptes_classes_html($GLOBALS['association_metas']['classe_contributions_volontaires'], 'cpte_benevolat', 0, $ids['exercice'], $ids['destination']);
    7171                fin_page_association();
    7272        }
  • _plugins_/Association/Associaspip/exec/pdf_comptesresultat.php

    r61768 r61847  
    1616
    1717// Export du Compte de Resultat au format Pdf
    18 function exec_export_compteresultats_pdf()
     18function exec_pdf_comptesresultat()
    1919{
    2020        if (!autoriser('associer', 'export_comptes')) {
     
    2424                include_spip('inc/association_comptabilite');
    2525                $ids = association_passe_parametres_comptables();
    26                 $pdf = new EXPORT_PDF();
    27                 $pdf->SetFont('Arial', '', 12);
    28                 $pdf->AddPage();
     26                $pdf = new ExportComptesResultat();
    2927                $pdf->init($ids);
    30                 $pdf->enTete();
    31                 $pdf->lesCharges($GLOBALS['association_metas']['classe_charges']);
    32                 $pdf->lesProduits($GLOBALS['association_metas']['classe_produits']);
    33                 $pdf->leResultat();
    34                 $pdf->lesContributionsVolontaires($GLOBALS['association_metas']['classe_contributions_volontaires']);
    35                 $pdf->leFichier();
     28                $pdf->association_cartouche_pdf('cpte_resultat_titre_general');
     29                $lesProduits = $pdf->association_liste_totaux_comptes_classes_pdf($GLOBALS['association_metas']['classe_produits'], 'cpte_resultat', +1, $pdf_>exercice, $pdf->destination);
     30                $lesCharges = $pdf->association_liste_totaux_comptes_classes_pdf($GLOBALS['association_metas']['classe_charges'], 'cpte_resultat', -1, $pdf_>exercice, $pdf->destination);
     31                $pdf->leResultat($lesProduits, $lesCharges);
     32                $pdf->association_liste_totaux_comptes_classes_pdf($GLOBALS['association_metas']['classe_contributions_volontaires'], 'cpte_benevolat', 0, $pdf_>exercice, $pdf->destination);
     33                $pdf->File('comptes_resultats');
    3634        }
    3735}
    3836
    39 define('FPDF_FONTPATH', 'font/');
    40 include_spip('fpdf');
    41 include_spip('inc/charsets');
    42 include_spip('inc/association_plan_comptable');
     37include_spip('inc/association_comptabilite');
    4338
    44 class EXPORT_PDF extends FPDF {
     39class ExportComptesResultat extends ExportComptes_PDF {
    4540
    46         var $largeur = 210; // format A4
    47         var $hauteur = 297;
    48         var $xx = 0; // coin haut gauche 1ère boite
    49         var $yy = 0;
    50         var $marge_gauche = 10;
    51         var $marge_droite = 10;
    52         var $marge_haut = 10;
    53         var $marge_bas = 10;
    54         var $icone_h = 20;
    55         var $icone_v = 20;
    56         var $space_v = 2;
    57         var $space_h = 2;
    58         var $largeur_utile = 0; // largeur sans les marges droites et gauches
    59         var $largeur_pour_titre = 0; // largeur utile sans icone
    60         var $exercice;
    61         var $destination;
    62         var $total_charges;
    63         var $total_produits;
    64 
    65         function init($ids) {
    66                 $this->exercice = $ids['exercice'];
    67                 $this->destination = $ids['destination'];
    68 
    69                 $this->largeur_utile = $this->largeur-$this->marge_gauche-$this->marge_droite;
    70                 $this->largeur_pour_titre = $this->largeur_utile-$this->icone_h-3*$this->space_h;
    71 
    72                 $this->xx = $this->marge_gauche;
    73                 $this->yy = $this->marge_haut;
    74 
    75                 $this->total_charges = 0;
    76                 $this->total_produits = 0;
    77 
    78                 $this->SetAuthor('Marcel BOLLA');
    79                 $this->SetCreator('Associaspip & Fpdf');
    80                 $this->SetTitle('Module Comptabilite de Associaspip');
    81                 $this->SetSubject(_T('asso:cpte_resultat_titre_general'));
    82         }
    83 
    84         function Footer() {
    85                 //Positionnement a 2 fois la marge du bas
    86                 $this->SetY(-2*$this->marge_bas);
    87                 //Arial italique 8
    88                 $this->SetFont('Arial', 'I', 8);
    89                 //Couleur du texte en gris
    90                 $this->SetTextColor(128);
    91                 //Date et Numéro de page
    92                 $this->Cell(0, 10, html_entity_decode(_T('asso:cpte_resultat_pied_page_export_pdf') .' -- '. affdate(date('Y-m-d')) .' -- '. _T('asso:cpte_export_page', array('numero'=>$this->PageNo()) )), 0, 0, 'C');
    93         }
    94 
    95         function enTete() {
    96                 // Les coordonnees courantes
    97                 $xc = $this->xx+$this->space_h;
    98                 $yc = $this->yy+$this->space_v;
    99                 $this->SetDrawColor(128);
    100 
    101                 // le logo du site
    102                 $logo = find_in_path('IMG/siteon0.jpg');
    103 //              $chercher_logo = charger_fonction('chercher_logo', 'inc');
    104 //              $logo = $chercher_logo(0, 'id_site');
    105                 if ($logo) {
    106                         include_spip('/inc/filtres_images_mini');
    107                         $this->Image(extraire_attribut(image_reduire($logo, $this->icone_h, $this->icone_v), 'src'), $xc, $yc, $this->icone_h);
    108 //                      $this->Image(extraire_attribut(image_reduire($logo[0], $this->icone_h, $this->icone_v), $xc, $yc, $this->icone_h), 'src'); // attention : que JPeG <http://forum.virtuemart.net/index.php?topic=75616.0>
    109                 }
    110                 //Arial gras 22
    111                 $this->SetFont('Arial', 'B', 22);
    112                 //Couleurs du cadre, du fond et du texte
    113                 $this->SetFillColor(235);
    114                 $this->SetTextColor(0);
    115                 //Titre centre
    116                 $xc += $this->space_h+($logo?$this->icone_h:0);
    117                 $this->SetXY($xc, $yc);
    118                 $this->Cell($logo?($this->largeur_pour_titre):($this->largeur_pour_titre+$this->icone_h-$this->space_h), 12, html_entity_decode(_T('asso:cpte_resultat_titre_general')), 0, 0, 'C', true);
    119                 $yc += 12;
    120                 //Saut de ligne
    121                 $this->Ln($this->space_v);
    122                 $yc += $this->space_v;
    123 
    124                 //Arial 12
    125                 $this->SetFont('Arial', '', 12);
    126                 //Couleur de fond
    127                 $this->SetFillColor(235);
    128                 //Sous titre Nom de l'association
    129                 $this->SetXY($xc, $yc);
    130                 $this->Cell($logo?$this->largeur_pour_titre:$this->largeur_pour_titre+$this->icone_h-$this->space_h, 6, utf8_decode(_T('asso:cpte_export_association', array('nom'=>$GLOBALS['association_metas']['nom']) )), 0, 0, 'C', true);
    131                 $yc += 6;
    132                 //Saut de ligne
    133                 $this->Ln($this->space_v/2);
    134                 $yc += $this->space_v/2;
    135 
    136                 //Arial 12
    137                 $this->SetFont('Arial', '', 12);
    138                 //Couleur de fond
    139                 $this->SetFillColor(235);
    140                 //Sous titre Date début et fin de l'exercice
    141                 $this->SetXY($xc, $yc);
    142                 $this->Cell($logo?$this->largeur_pour_titre:$this->largeur_pour_titre+$this->icone_h-$this->space_h, 6, utf8_decode(_T('asso:cpte_export_exercice', array('titre'=>sql_getfetsel('intitule','spip_asso_exercices', 'id_exercice='.$this->exercice) ) )), 0, 0, 'C', true);
    143                 $yc += 6;
    144                 //Saut de ligne
    145                 $this->Ln($this->space_v);
    146                 $yc += $this->space_v;
    147 
    148                 // Rectangle tout autour de l'entete
    149                 $this->Rect($this->xx, $this->yy, $this->largeur_utile, $yc-$this->marge_haut);
    150 
    151                 // on sauve la position du curseur dans la page
    152                 $this->yy = $yc;
    153         }
    154 
    155         function lesCharges($classe) {
     41        function leResultat($lesProduits, $lesCharges) {
    15642                // Les coordonnees courantes
    15743                $xc = $this->xx+$this->space_h;
    15844                $y_orig = $this->yy+$this->space_v;
    15945                $yc = $y_orig+$this->space_v;
    160 
    161                 //Arial gras 14
    162                 $this->SetFont('Arial', 'B', 14);
    163 
    164                 //Couleurs du cadre, du fond et du texte
    165                 $this->SetFillColor(235);
    166                 $this->SetTextColor(0);
    167 
     46                // typo
     47                $this->SetFont('Arial', 'B', 14); // police : Arial gras 14px
     48                $this->SetFillColor(235); // Couleur du fond : gris-92.2%
     49                $this->SetTextColor(0); // Couleur du texte : noir
    16850                //Titre centre
    16951                $this->SetXY($xc, $yc);
    170                 $this->Cell($this->largeur_utile, 10, html_entity_decode(_T('asso:cpte_resultat_depenses')), 0, 0, 'C');
    171                 $yc += 10;
    172 
    173                 //Saut de ligne
    174                 $this->Ln($this->space_v);
    175                 $yc += $this->space_v;
    176 
    177                 $query = association_calcul_totaux_comptes_classe($GLOBALS['association_metas']['classe_charges'], $this->exercice, $this->destination, -1);
    178                 $chapitre = '';
    179                 $i = 0;
    180 
    181                 //Arial 12
    182                 $this->SetFont('Arial', '', 12);
    183 
    184                 while ($data = sql_fetch($query)) {
    185                         // positionne le curseur
    186                         $this->SetXY($xc, $yc);
    187 
    188                         $new_chapitre = substr($data['code'], 0, 2);
    189                         if ($chapitre!=$new_chapitre) {
    190                                 //Couleur de fond
    191                                 $this->SetFillColor(225);
    192 
    193                                 $this->Cell(20, 6, utf8_decode($new_chapitre), 0, 0, 'L', true);
    194 
    195                                 $this->Cell(($this->largeur_utile)-(2*$this->space_h+20), 6, utf8_decode(($GLOBALS['association_metas']['plan_comptable_prerenseigne']?association_plan_comptable_complet($new_chapitre):sql_getfetsel('intitule','spip_asso_plan',"code='$new_chapitre'"))), 0, 0, 'L', true);
    196 
    197                                 $chapitre = $new_chapitre;
    198 
    199                                 //Saut de ligne
    200                                 $this->Ln();
    201                                 $yc += 6;
    202                         }
    203 
    204                         //Couleur de fond
    205                         $this->SetFillColor(245);
    206 
    207                         // positionne le curseur
    208                         $this->SetXY($xc, $yc);
    209                         $this->Cell(20, 6, utf8_decode($data['code']), 0, 0, 'R', true);
    210 
    211                         $this->Cell(($this->largeur_utile)-(2*$this->space_h+50), 6, utf8_decode($data['intitule']), 0, 0, 'L', true);
    212                         $this->Cell(30, 6, association_nbrefr($data['valeurs']), 0, 0, 'R', true);
    213 
    214                         $this->total_charges += $data['valeurs'];
    215 
    216                         //Saut de ligne
    217                         $this->Ln();
    218                         $yc += 6;
    219                 }
    220                 // positionne le curseur
    221                 $this->SetXY($xc, $yc);
    222 
    223                 //Couleur de fond
    224                 $this->SetFillColor(215);
    225 
    226                 $this->Cell(($this->largeur_utile)-(2*$this->space_h+30), 6, html_entity_decode(_T('asso:cpte_resultat_total')), 1, 0, 'R', true);
    227                 $this->Cell(30, 6, association_nbrefr($this->total_charges), 1, 0, 'R', true);
    228                 $yc += 6;
    229 
    230                 //Saut de ligne
    231                 $this->Ln($this->space_v);
    232                 $yc += $this->space_v;
    233 
    234                 // Rectangle tout autour
    235                 $this->Rect($this->xx, $y_orig, $this->largeur_utile, $yc-$y_orig);
    236 
    237                 // on sauve la position du curseur dans la page
    238                 $this->yy = $yc;
    239         }
    240 
    241         function lesProduits($classe) {
    242                 // Les coordonnees courantes
    243                 $xc = $this->xx+$this->space_h;
    244                 $y_orig = $this->yy+$this->space_v;
    245                 $yc = $y_orig+$this->space_v;
    246 
    247                 //Arial gras 14
    248                 $this->SetFont('Arial', 'B', 14);
    249 
    250                 //Couleurs du cadre, du fond et du texte
    251                 $this->SetFillColor(235);
    252                 $this->SetTextColor(0);
    253 
    254                 //Titre centre
    255                 $this->SetXY($xc, $yc);
    256                 $this->Cell($this->largeur_utile, 10, html_entity_decode(_T('asso:cpte_resultat_recettes')), 0, 0, 'C');
    257                 $yc += 10;
    258 
    259                 //Saut de ligne
    260                 $this->Ln($this->space_v);
    261                 $yc += $this->space_v;
    262 
    263                 $query = association_calcul_totaux_comptes_classe($GLOBALS['association_metas']['classe_produits'], $this->exercice, $this->destination, +1);
    264                 $chapitre = '';
    265                 $i = 0;
    266 
    267                 //Arial 12
    268                 $this->SetFont('Arial', '', 12);
    269 
    270                 while ($data = sql_fetch($query)) {
    271                         // positionne le curseur
    272                         $this->SetXY($xc, $yc);
    273 
    274                         $new_chapitre = substr($data['code'], 0, 2);
    275                         if ($chapitre!=$new_chapitre) {
    276                                 //Couleur de fond
    277                                 $this->SetFillColor(225);
    278 
    279                                 $this->Cell(20, 6, utf8_decode($new_chapitre), 0, 0, 'L', true);
    280 
    281                                 $this->Cell(($this->largeur_utile)-(2*$this->space_h+20), 6, utf8_decode(($GLOBALS['association_metas']['plan_comptable_prerenseigne']?association_plan_comptable_complet($new_chapitre):sql_getfetsel('intitule','spip_asso_plan',"code='$new_chapitre'"))), 0, 0, 'L', true);
    282 
    283                                 $chapitre = $new_chapitre;
    284 
    285                                 //Saut de ligne
    286                                 $this->Ln();
    287                                 $yc += 6;
    288                         }
    289 
    290                         //Couleur de fond
    291                         $this->SetFillColor(245);
    292 
    293                         // positionne le curseur
    294                         $this->SetXY($xc, $yc);
    295                         $this->Cell(20, 6, utf8_decode($data['code']), 0, 0, 'R', true);
    296 
    297                         $this->Cell(($this->largeur_utile)-(2*$this->space_h+50), 6, utf8_decode($data['intitule']), 0, 0, 'L', true);
    298                         $this->Cell(30, 6, association_nbrefr($data['valeurs']), 0, 0, 'R', true);
    299 
    300                         $this->total_produits += $data['valeurs'];
    301 
    302                         //Saut de ligne
    303                         $this->Ln();
    304                         $yc += 6;
    305                 }
    306                 // positionne le curseur
    307                 $this->SetXY($xc, $yc);
    308 
    309                 //Couleur de fond
    310                 $this->SetFillColor(215);
    311 
    312                 $this->Cell(($this->largeur_utile)-(2*$this->space_h+30), 6, html_entity_decode(_T('asso:cpte_resultat_total')), 1, 0, 'R', true);
    313                 $this->Cell(30, 6, association_nbrefr($this->total_produits), 1, 0, 'R', true);
    314                 $yc += 6;
    315 
    316                 //Saut de ligne
    317                 $this->Ln($this->space_v);
    318                 $yc += $this->space_v;
    319 
    320                 // Rectangle tout autour
    321                 $this->Rect($this->xx, $y_orig, $this->largeur_utile, $yc-$y_orig);
    322 
    323                 // on sauve la position du curseur dans la page
    324                 $this->yy = $yc;
    325         }
    326 
    327         function leResultat() {
    328                 // Les coordonnees courantes
    329                 $xc = $this->xx+$this->space_h;
    330                 $y_orig = $this->yy+$this->space_v;
    331                 $yc = $y_orig+$this->space_v;
    332 
    333                 //Arial gras 14
    334                 $this->SetFont('Arial', 'B', 14);
    335 
    336                 //Couleurs du cadre, du fond et du texte
    337                 $this->SetFillColor(235);
    338                 $this->SetTextColor(0);
    339 
    340                 //Titre centre
    341                 $this->SetXY($xc, $yc);
    342 
    34352                $this->Cell($this->largeur_utile, 10, html_entity_decode(_T('asso:cpte_resultat_titre_resultat')), 0, 0, 'C');
    34453                $yc += 10;
    345 
    34654                //Saut de ligne
    34755                $this->Ln($this->space_v);
     
    35159                $this->SetFillColor(215);
    35260
    353                 $res = $this->total_produits-$this->total_charges;
     61                $res = $lesProduits-$lesCharges;
    35462                $this->SetXY($xc, $yc);
    35563                if ($res<0) {
     
    37280        }
    37381
    374         function lesContributionsVolontaires($classe) {
    375                 // Les coordonnees courantes
    376                 $xc = $this->xx+$this->space_h;
    377                 $y_orig = $this->yy+$this->space_v;
    378                 $yc = $y_orig+$this->space_v;
    379 
    380                 //Arial gras 14
    381                 $this->SetFont('Arial', 'B', 14);
    382 
    383                 //Couleurs du cadre, du fond et du texte
    384                 $this->SetFillColor(235);
    385                 $this->SetTextColor(0);
    386 
    387                 //Titre centre
    388                 $this->SetXY($xc, $yc);
    389 
    390                 $this->Cell($this->largeur_utile, 10, html_entity_decode(_T('asso:cpte_benevolat_soldes')), 0, 0, 'C');
    391                 $yc += 10;
    392 
    393                 //Saut de ligne
    394                 $this->Ln($this->space_v);
    395                 $yc += $this->space_v;
    396 
    397                 $charges_evaluees = $produits_evalues = 0;
    398                 $query = association_calcul_totaux_comptes_classe($GLOBALS['association_metas']['classe_contributions_volantaires'], $this->exercice, $this->destination, 0);
    399                 $chapitre = '';
    400                 $i = 0;
    401 
    402                 //Arial 12
    403                 $this->SetFont('Arial', '', 12);
    404 
    405                 while ($data = sql_fetch($query)) {
    406                         // positionne le curseur
    407                         $this->SetXY($xc, $yc);
    408 
    409                         $new_chapitre = substr($data['code'], 0, 2);
    410                         if ($chapitre!=$new_chapitre) {
    411                                 //Couleur de fond
    412                                 $this->SetFillColor(225);
    413                                 $this->Cell(20, 6, utf8_decode($new_chapitre), 0, 0, 'L', true);
    414                                 $this->Cell(($this->largeur_utile)-(2*$this->space_h+20), 6, utf8_decode(($GLOBALS['association_metas']['plan_comptable_prerenseigne']?association_plan_comptable_complet($new_chapitre):sql_getfetsel('intitule','spip_asso_plan',"code='$new_chapitre'"))), 0, 0, 'L', true);
    415                                 $chapitre = $new_chapitre;
    416                                 //Saut de ligne
    417                                 $this->Ln();
    418                                 $yc += 6;
    419                         }
    420 
    421                         //Couleur de fond
    422                         $this->SetFillColor(245);
    423 
    424                         // positionne le curseur
    425                         $this->SetXY($xc, $yc);
    426                         $this->Cell(20, 6, utf8_decode($data['code']), 0, 0, 'R', true);
    427                         $this->Cell(($this->largeur_utile)-(2*$this->space_h+50), 6, utf8_decode($data['intitule']), 0, 0, 'L', true);
    428                         if ($data['charge_evaluee']>0) {
    429                                 $this->Cell(30, 6, association_nbrefr($data['charge_evaluee']), 0, 0, 'R', true);
    430                                 $charges_evaluees += $data['charge_evaluee'];
    431                         } else {
    432                                 $this->Cell(30, 6, association_nbrefr($data['produit_evalue']), 0, 0, 'R', true);
    433                                 $produits_evalues += $data['produit_evalue'];
    434                         }
    435                         //Saut de ligne
    436                         $this->Ln();
    437                         $yc += 6;
    438                 }
    439 
    440                 //Couleur de fond
    441                 $this->SetFillColor(215);
    442 
    443                 // positionne le curseur
    444                 $this->SetXY($xc, $yc);
    445 
    446                 $this->Cell(($this->largeur_utile)/2-(2*$this->space_h+30), 6, html_entity_decode(_T('asso:cpte_benevolat_total_depenses')), 1, 0, 'R', true);
    447                 $this->Cell(30, 6, association_nbrefr($charges_evaluees), 1, 0, 'R', true);
    448 
    449                 // positionne le curseur sur l'autre demi page
    450                 $xc += ( $this->largeur_utile)/2;
    451                 $this->SetXY($xc, $yc);
    452                 $this->Cell(($this->largeur_utile)/2-(2*$this->space_h+30), 6, html_entity_decode(_T('asso:cpte_benevolat_total_recettes')), 1, 0, 'R', true);
    453                 $this->Cell(30, 6, association_nbrefr($produits_evalues), 1, 0, 'R', true);
    454 
    455                 $yc += 6;
    456                 //Saut de ligne
    457                 $this->Ln($this->space_v);
    458                 $yc += $this->space_v;
    459 
    460                 // Rectangle tout autour
    461                 $this->Rect($this->xx, $y_orig, $this->largeur_utile, $yc-$y_orig);
    462 
    463                 // on sauve la position du curseur dans la page
    464                 $this->yy = $yc;
    465         }
    466 
    467         function leFichier() {
    468                 $this->Output('comptes_resultats_'.$this->exercice.'_'.$this->destination.'.pdf', 'I');
    469         }
    470 
    47182}
    47283
  • _plugins_/Association/Associaspip/inc/association_comptabilite.php

    r61768 r61847  
    433433
    434434/* on affiche les totaux (recettes et depenses) d'un exercice des differents comptes de la classe specifiee */
    435 function association_liste_totaux_comptes_classes($classes, $prefixe='', $direction='-1', $exercice=0, $destination=0) {
     435function association_liste_totaux_comptes_classes_html($classes, $prefixe='', $direction='-1', $exercice=0, $destination=0) {
    436436    if( !is_array($classes) ) { // a priori une chaine ou un entier d'une unique classe
    437437        $liste_classes = array( $classes ) ; // transformer en tableau (puisqu'on va operer sur des tableaux);
     
    669669}
    670670
     671define('FPDF_FONTPATH', 'font/');
     672include_spip('fpdf');
     673include_spip('inc/charsets');
     674include_spip('inc/association_plan_comptable');
     675
     676class ExportComptes_PDF extends FPDF {
     677
     678    // variables de parametres de mise en page
     679    var $largeur = 210; // format A4
     680    var $hauteur = 297; // format A4
     681    var $marge_gauche = 10;
     682    var $marge_droite = 10;
     683    var $marge_haut = 10;
     684    var $marge_bas = 10;
     685    var $icone_h = 20;
     686    var $icone_v = 20;
     687    var $space_v = 2;
     688    var $space_h = 2;
     689
     690    // variables de mise en page calculees
     691    var $largeur_utile = 0; // largeur sans les marges droites et gauches
     692    var $largeur_pour_titre = 0; // largeur utile sans icone
     693
     694    // position du curseur
     695    var $xx = 0; // abscisse 1ere boite
     696    var $yy = 0; // ordonnee 1ere boite
     697
     698    // variables de fonctionnement passees en parametre
     699    var $annee;
     700    var $exercice;
     701    var $destination;
     702
     703    // Initialisations
     704    function init($ids) {
     705        // passer les parametres transmis aux variables de la classe
     706        $this->annee = $ids['annee'];
     707        $this->exercice = $ids['exercice'];
     708        $this->destination = $ids['destination'];
     709        // calculer les dimensions de mise en page
     710        $this->largeur_utile = $this->largeur-$this->marge_gauche-$this->marge_droite;
     711        $this->largeur_pour_titre = $this->largeur_utile-$this->icone_h-3*$this->space_h;
     712        // initialiser les variables de mise en page
     713        $this->xx = $this->marge_gauche;
     714        $this->yy = $this->marge_haut;
     715        // meta pour le fichier PDF
     716        $this->SetAuthor('Marcel BOLLA');
     717        $this->SetCreator('Associaspip & Fpdf');
     718        $this->SetTitle('Module Comptabilite');
     719        $this->SetSubject('Etats comptables');
     720        // typo par defaut
     721        $this->SetFont('Arial', '', 12);
     722        // engager la page
     723        $this->AddPage();
     724    }
     725
     726    // Pied de pages : redefinition de FPDF::Footer() qui est automatiquement appele par FPDF::AddPage() et FPDF::Close() !
     727    //@ http://www.id.uzh.ch/cl/zinfo/fpdf/doc/footer.htm
     728    //!\ Adapter la marge basse (et la hauteur utile) des pages en consequence
     729    function Footer() {
     730        // Positionnement a 2 fois la marge du bas
     731        $this->SetY(-2*$this->marge_bas);
     732        // typo
     733        $this->SetFont('Arial', 'I', 8); // police: Arial italique 8px
     734        $this->SetTextColor(128); // Couleur du texte : gris-50.2% (fond blanc)
     735        // Date et Numéro de page
     736        $this->Cell(0, 10, html_entity_decode(_T('asso:cpte_export_pied_notice') .' -- '. affdate(date('Y-m-d')) .' -- '. _T('asso:cpte_export_page', array('numero'=>$this->PageNo()) )), 0, 0, 'C');
     737    }
     738
     739    // Haut de pages : redefinition de FPDF qui est directement appele par FPDF::AddPage()
     740    //@ http://www.id.uzh.ch/cl/zinfo/fpdf/doc/header.htm
     741    //!\ Adapter la marge haute (et la hauteur utile) des pages en consequence
     742    function Header() {
     743        // nop
     744    }
     745
     746    // cartouche au debut de la 1ere page (contrairement au Header ceci fait partir du contenu/flux et n'est pas repete sur toutes les pages, et peut accepter des parametres)
     747    function association_cartouche_pdf($titre='') {
     748        // Les coordonnees courantes
     749        $xc = $this->xx+$this->space_h;
     750        $yc = $this->yy+$this->space_v;
     751        $this->SetDrawColor(128); // La couleur du trace : gris 50.2% (sur fond blanc)
     752        // Le logo du site
     753#       $chercher_logo = charger_fonction('chercher_logo', 'inc');
     754#       $logo = $chercher_logo(0, 'id_site');
     755        $logo = find_in_path('IMG/siteon0.jpg'); // Probleme FPDF et images non JPEG :-/ http://forum.virtuemart.net/index.php?topic=75616.0
     756        if ($logo) {
     757            include_spip('/inc/filtres_images_mini');
     758            $this->Image(extraire_attribut(image_reduire($logo, $this->icone_h, $this->icone_v), 'src'), $xc, $yc, $this->icone_h);
     759        }
     760        // typo
     761        $this->SetFont('Arial', 'B', 22); // police : Arial gras 22px
     762        $this->SetFillColor(235); // Couleur du cadre, du fond du cadre : gris-92,2%
     763        $this->SetTextColor(0); // Couleur du texte : noir
     764        // Titre centre
     765        $xc += $this->space_h+($logo?$this->icone_h:0);
     766        $this->SetXY($xc, $yc);
     767        $this->Cell($logo?($this->largeur_pour_titre):($this->largeur_pour_titre+$this->icone_h-$this->space_h), 12, html_entity_decode(_T("asso:$titre")), 0, 0, 'C', true);
     768        $yc += 12;
     769        $this->Ln($this->space_v); // Saut de ligne
     770        $yc += $this->space_v;
     771        // typo
     772        $this->SetFont('Arial', '', 12); // police : Arial 12px
     773        $this->SetFillColor(235); // Couleur de remplissage : gris-92.2%
     774        // Sous titre Nom de l'association
     775        $this->SetXY($xc, $yc);
     776        $this->Cell($logo?$this->largeur_pour_titre:$this->largeur_pour_titre+$this->icone_h-$this->space_h, 6, utf8_decode(_T('asso:cpte_export_association', array('nom'=>$GLOBALS['association_metas']['nom']) )), 0, 0, 'C', true);
     777        $yc += 6;
     778        $this->Ln($this->space_v/2); // Saut de ligne
     779        $yc += $this->space_v/2;
     780        // typo
     781        $this->SetFont('Arial', '', 12); // police : Arial 12px
     782        $this->SetFillColor(235); // Couleur de fond : gris-92.2%
     783        //Sous titre Intitule de l'exercice
     784        $this->SetXY($xc, $yc);
     785        $this->Cell($logo?$this->largeur_pour_titre:$this->largeur_pour_titre+$this->icone_h-$this->space_h, 6, utf8_decode(_T('asso:cpte_export_exercice', array('titre'=>sql_getfetsel('intitule','spip_asso_exercices', 'id_exercice='.$this->exercice) ) )), 0, 0, 'C', true);
     786        $yc += 6;
     787        $this->Ln($this->space_v); // Saut de ligne
     788        $yc += $this->space_v;
     789        $this->Rect($this->xx, $this->yy, $this->largeur_utile, $yc-$this->marge_haut); // Rectangle tout autour de l'entete
     790        $this->yy = $yc; // on sauve la position du curseur dans la page
     791    }
     792
     793    // Fichier final envoye
     794    function File($titre='etat_comptes') {
     795        $this->Output($titre.'_'.($this->exercice?$this->exercice:$this->annee).'_'.$this->destination.'.pdf', 'I');
     796    }
     797
     798    // on affiche les totaux (recettes et depenses) d'un exercice des differents comptes de la classe specifiee
     799    function association_liste_totaux_comptes_classes_pdf($classes, $prefixe='', $direction='-1', $exercice=0, $destination=0) {
     800        if( !is_array($classes) ) { // a priori une chaine ou un entier d'une unique classe
     801            $liste_classes = array( $classes ) ; // transformer en tableau (puisqu'on va operer sur des tableaux);
     802        } else { // c'est un tableau de plusieurs classes
     803            $liste_classes = $classes;
     804        }
     805        // Les coordonnees courantes
     806        $xc = $this->xx+$this->space_h;
     807        $y_orig = $this->yy+$this->space_v;
     808        $yc = $y_orig+$this->space_v;
     809        // typo
     810        $this->SetFont('Arial', 'B', 14); // police: Arial gras 14px
     811        $this->SetFillColor(235); // Couleursdu fond du cadre de titre : gris-92.2%
     812        $this->SetTextColor(0); // Couleurs du texte du cadre de titre
     813        // Titre centre
     814        $titre = $prefixe.'_'. ( ($direction) ? (($direction<0)?'depenses':'recettes') : 'soldes' );
     815        $this->SetXY($xc, $yc);
     816        $this->Cell($this->largeur_utile, 10, html_entity_decode(_T("asso:$titre")), 0, 0, 'C');
     817        $yc += 10;
     818        $this->Ln($this->space_v); // Saut de ligne
     819        $yc += $this->space_v;
     820        // initialisation du calcul+affichage des comptes
     821        $total_valeurs = $total_recettes = $total_depenses = 0;
     822        $chapitre = '';
     823        $i = 0;
     824        foreach ( $liste_classes as $rang => $classe ) { // calcul+affichage par classe
     825            $query = association_calcul_totaux_comptes_classe($classe, $this->exercice, $this->destination, $direction );
     826            $this->SetFont('Arial', '', 12); // police : Arial 12px
     827            while ($data = sql_fetch($query)) {
     828                $this->SetXY($xc, $yc); // positionne le curseur
     829                $new_chapitre = substr($data['code'], 0, 2);
     830                if ($chapitre!=$new_chapitre) { // debut de categorie
     831                    $this->SetFillColor(225); // Couleur de fond de la ligne : gris-92.2%
     832                    $this->Cell(20, 6, utf8_decode($new_chapitre), 0, 0, 'L', true);
     833                    $this->Cell(($this->largeur_utile)-(2*$this->space_h+20), 6, utf8_decode(($GLOBALS['association_metas']['plan_comptable_prerenseigne']?association_plan_comptable_complet($new_chapitre):sql_getfetsel('intitule','spip_asso_plan',"code='$new_chapitre'"))), 0, 0, 'L', true);
     834                    $chapitre = $new_chapitre;
     835                    $this->Ln(); // Saut de ligne
     836                    $yc += 6;
     837                }
     838                $this->SetFillColor(245); // Couleur de fond du total : gris-96.1%
     839                $this->SetXY($xc, $yc); // positionne le curseur
     840#               if ( floatval($data['valeurs']) || floatval($data['recettes']) || floatval($data['depenses']) ) { // non-zero...
     841                    $this->Cell(20, 6, utf8_decode($data['code']), 0, 0, 'R', true);
     842                    $this->Cell(($this->largeur_utile)-(2*$this->space_h+50), 6, utf8_decode($data['intitule']), 0, 0, 'L', true);
     843                    $this->Cell(30, 6, association_nbrefr($data['valeurs']), 0, 0, 'R', true);
     844                    if ($direction) { // mode liste comptable
     845                        $this->Cell(30, 6, association_nbrefr($data['valeurs']), 0, 0, 'R', true);
     846                        $total_valeurs += $data['valeurs'];
     847                    } else { // mode liste standard
     848                        $this->Cell(30, 6, association_nbrefr($data['depenses']>0?$data['depenses']:$data['recettes']), 0, 0, 'R', true);
     849                        $total_recettes += $data['recettes'];
     850                        $total_depenses += $data['depenses'];
     851                        $total_valeurs += $data['soldes'];
     852                    }
     853                    $this->Ln(); // Saut de ligne
     854                    $yc += 6;
     855#               }
     856            }
     857        }
     858        $this->SetXY($xc, $yc); // positionne le curseur
     859        $this->SetFillColor(215); // Couleur de fond : 84.3%
     860        if ($direction) { // mode liste comptable : charge, produit, actifs, passifs
     861            $this->Cell(($this->largeur_utile)-(2*$this->space_h+30), 6, html_entity_decode(_T("asso:$prefixe".'_total')), 1, 0, 'R', true);
     862            $this->Cell(30, 6, association_nbrefr($total_valeurs), 1, 0, 'R', true);
     863        } else { // mode liste standard : contributions volontaires et autres
     864            $this->Cell(($this->largeur_utile)/2-(2*$this->space_h+30), 6, html_entity_decode(_T("asso:$prefixe".'_total_depenses')), 1, 0, 'R', true);
     865            $this->Cell(30, 6, association_nbrefr($total_depenses), 1, 0, 'R', true);
     866            $xc += ( $this->largeur_utile)/2;
     867            $this->SetXY($xc, $yc); // positionne le curseur sur l'autre demi page
     868            $this->Cell(($this->largeur_utile)/2-(2*$this->space_h+30), 6, html_entity_decode(_T("asso:$prefixe".'_total_recettes')), 1, 0, 'R', true);
     869            $this->Cell(30, 6, association_nbrefr($total_recettes), 1, 0, 'R', true);
     870        }
     871        $yc += 6;
     872        $this->Ln($this->space_v); // Saut de ligne
     873        $yc += $this->space_v;
     874        $this->Rect($this->xx, $y_orig, $this->largeur_utile, $yc-$y_orig); // Rectangle tout autour
     875        $this->yy = $yc; // on sauve la position du curseur dans la page
     876        return $total_valeurs;
     877    }
     878
     879}
    671880
    672881?>
  • _plugins_/Association/Associaspip/lang/asso_fr.php

    r61705 r61847  
    737737        'cpte_bilan_total_depenses' => 'Total des Actifs',
    738738        'cpte_bilan_total_recettes' => 'Total des Passifs',
    739         'cpte_resultat_pied_page_export_pdf' => "Associaspip - Gestion d'une association sous licence GPL",
     739        'cpte_export_pied_notice' => "Associaspip - Gestion d'une association sous licence GPL",
    740740        'cpte_export_association' => 'Association : @nom@',
    741741        'cpte_export_exercice' => 'Exercice : @titre@',
Note: See TracChangeset for help on using the changeset viewer.