Changeset 59760 in spip-zone


Ignore:
Timestamp:
Mar 26, 2012, 5:10:58 PM (7 years ago)
Author:
gildas.cotomale@…
Message:

revue de l'exportation des comptes de résultats (ensemble encore perfectible et modulable)

Location:
_plugins_/Association/Associaspip
Files:
2 added
1 deleted
9 edited

Legend:

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

    r59723 r59760  
    5656                $var = serialize(array($id_exercice, $join, $sel, $where, $having, $order)); //!\ les cles numeriques peuvent poser probleme... <http://www.mail-archive.com/php-bugs@lists.php.net/msg100262.html> mais il semble qu'ici le souci vient de l'absence d'encodage lorsqu'on passe $var par URL...
    5757//              $var = serialize(array('id'=>$id_exercice, '1'=>$join, '2'=>$sel, '3'=>$where, '4'=>$having, '5'=>$order));
    58                 if($plan){ // on peut exporter : pdf, csv, xml, ...
     58                if(autoriser('associer', 'export_compte_resultats') && $plan){ // on peut exporter : pdf, csv, xml, ...
    5959                        echo debut_cadre_enfonce('',true);
    6060                        echo '<h3>'. _T('asso:cpte_resultat_mode_exportation') .'</h3>';
    6161                        if (test_plugin_actif('FPDF')) { // impression en PDF : _T('asso:bouton_impression')
    62                                 echo icone1_association('PDF', generer_url_ecrire('export_compteresultats_pdf').'&var='.rawurlencode($var), 'print-24.png', 'print-24.png'); //!\ generer_url_ecrire() utilise url_enconde() or il est preferable avec les grosses variables serialisees d'utiliser rawurlencode()
     62                                echo icone1_association('PDF', generer_url_ecrire('export_compteresultats_pdf').'&var='.rawurlencode($var), 'print-24.png'); //!\ generer_url_ecrire() utilise url_enconde() or il est preferable avec les grosses variables serialisees d'utiliser rawurlencode()
    6363                        }
    6464                        foreach(array('csv','ctx','tex','tsv','xml','yaml') as $type) { // autres exports (donnees brutes) possibles
    65                                 echo icone1_association(strtoupper($type), generer_url_ecrire("export_compteresultats_$type").'&var='.rawurlencode($var), "export-$type.png"); //!\ generer_url_ecrire($exec, $param) equivaut a generer_url_ecrire($exec).'&'.urlencode($param) or il faut utiliser rawurlencode($param) ici...
     65                                echo icone1_association(strtoupper($type), generer_url_ecrire("export_compteresultats_$type").'&var='.rawurlencode($var), 'export-24.png'); //!\ generer_url_ecrire($exec, $param) equivaut a generer_url_ecrire($exec).'&'.urlencode($param) or il faut utiliser rawurlencode($param) ici...
    6666                        }
    6767                        echo fin_cadre_enfonce(true);
    6868                }
    69                 debut_cadre_association('finances-24.png', 'cpte_resultat_titre_general', $exercice_data['intitule']);
     69                debut_cadre_association('finances-24.jpg', 'cpte_resultat_titre_general', $exercice_data['intitule']);
    7070                $depenses = compte_resultat_charges_produits($var, intval($GLOBALS['association_metas']['classe_charges']));
    7171                $recettes = compte_resultat_charges_produits($var, intval($GLOBALS['association_metas']['classe_produits']));
     
    7373                compte_resultat_benevolat($var, intval($GLOBALS['association_metas']['classe_contributions_volontaires']));
    7474/*
    75                 if($plan){ // on peut exporter : pdf, csv, xml, ...
     75                if(autoriser('associer', 'export_compte_resultats') && $plan){ // on peut exporter : pdf, csv, xml, ...
    7676                        echo "<br /><table width='100%' class='asso_tablo' cellspacing='6' id='asso_tablo_exports'>\n";
    7777                        echo '<tbody><tr>';
     
    202202}
    203203
     204        include_spip('inc/charsets');
     205        include_spip('inc/association_plan_comptable');
     206
     207// Brique commune aux classes d'exportation des donnees du compte de resultat
     208class ExportCompteResultats {
     209
     210        var $exercice;
     211        var $join;
     212        var $sel;
     213        var $where;
     214        var $having;
     215        var $order;
     216        var $out;
     217
     218        function  __construct($var) {
     219                $tableau = unserialize(rawurldecode($var));
     220                $this->exercice = $tableau[0];
     221                $this->join = $tableau[1];
     222                $this->sel = $tableau[2];
     223                $this->where = $tableau[3];
     224                $this->having = $tableau[4];
     225                $this->order = $tableau[5];
     226                $this->out = '';
     227        }
     228
     229        // de type CSV,INI,TSV, etc.
     230        function LignesSimplesEntete($champsSeparateur, $lignesSeparateur, $echappements=array(), $champDebut='', $champFin='') {
     231                $this->out .= $champDebut. str_replace(array_keys($echappements), array_values($echappements), utf8_decode(html_entity_decode(_T('asso:entete_code')))) .$champFin.$champsSeparateur;
     232                $this->out .= $champDebut. str_replace(array_keys($echappements), array_values($echappements), utf8_decode(html_entity_decode(_T('asso:entete_intitule')))) .$champFin.$champsSeparateur;
     233                $this->out .= $champDebut. str_replace(array_keys($echappements), array_values($echappements), utf8_decode(html_entity_decode(_T('asso:entete_montant')))) .$champFin.$lignesSeparateur;
     234        }
     235
     236        // de type CSV,INI,TSV, etc.
     237        function LignesSimplesCorps($key, $champsSeparateur, $lignesSeparateur, $echappements=array(), $champDebut='', $champFin='') {
     238                switch ($key) {
     239                        case 'charges' :
     240                                $quoi = "SUM(depense) AS valeurs";
     241                                break;
     242                        case 'produits' :
     243                                $quoi = "SUM(recette) AS valeurs";
     244                                break;
     245                        case 'contributions_volontaires' :
     246                                $quoi = "SUM(depense) AS charge_evaluee, SUM(recette) AS produit_evalue";
     247                                break;
     248                }
     249                $query = sql_select(
     250                        "imputation, $quoi, DATE_FORMAT(date, '%Y') AS annee".$this->sel, // select
     251                        'spip_asso_comptes '.$this->join, // from
     252                        $this->where, // where
     253                        $this->order, // group by
     254                        $this->order, // order by
     255                        '', // limit
     256                        $this->having .$GLOBALS['association_metas']['classe_'.$key] // having
     257                );
     258                $chapitre = '';
     259                $i = 0;
     260                while ($data = sql_fetch($query)) {
     261                        if ($key==='contributions_volontaires') {
     262                                if ($data['charge_evaluee']>0) {
     263                                        $valeurs = $data['charge_evaluee'];
     264                                } else {
     265                                        $valeurs = $data['produit_evalue'];
     266                                }
     267                        } else {
     268                                $valeurs = $data['valeurs'];
     269                        }
     270                        $new_chapitre = substr($data['code'], 0, 2);
     271                        if ($chapitre!=$new_chapitre) {
     272                                $this->out .= $champDebut. str_replace(array_keys($echappements), array_values($echappements), $new_chapitre) .$champFin.$champsSeparateur;
     273                                $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;
     274                                $this->out .= $champsSeparateur.' '.$champsSeparateur;
     275                                $this->out .= $lignesSeparateur;
     276                                $chapitre = $new_chapitre;
     277                        }
     278                        $this->out .= $champDebut. str_replace(array_keys($echappements), array_values($echappements), $data['code']) .$champFin.$champsSeparateur;
     279                        $this->out .= $champDebut. str_replace(array_keys($echappements), array_values($echappements), $data['intitule']) .$champFin.$champsSeparateur;
     280                        $this->out .= $champDebut.$valeurs.$champFin.$lignesSeparateur;
     281                }
     282        }
     283
     284        function leFichier($ext) {
     285                $fichier = _DIR_RACINE.'/'._NOM_TEMPORAIRES_ACCESSIBLES.'compte_resultats_'.$this->exercice.".$ext";
     286                $f = fopen($fichier, 'w');
     287                fputs($f, $this->out);
     288                fclose($f);
     289                header('Content-type: application/'.$ext);
     290                header('Content-Disposition: attachment; filename="'.$fichier.'"');
     291                readfile($fichier);
     292        }
     293
     294}
     295
    204296?>
  • _plugins_/Association/Associaspip/exec/export_compteresultats_csv.php

    r59668 r59760  
    1515        return;
    1616
    17 // Export du Compte de Resultat au format .csv
     17include_spip('exec/compte_resultat'); // c'est pour la definition de classe ExportCompteResultats
     18
     19// Export du Compte de Resultat au format CSV
     20// http://fr.wikipedia.org/wiki/Comma-separated_values
     21// (forme commune de base : champs separes par une virgule et point decimal !)
    1822function exec_export_compteresultats_csv() {
    19         if (!autoriser('associer', 'export_compteresultats_csv')) {
     23        if (!autoriser('associer', 'export_compteresultats')) {
    2024                include_spip('inc/minipres');
    2125                echo minipres();
    2226        } else {
    23                 include_spip('inc/charsets');
    24                 include_spip('inc/association_plan_comptable');
    25                 $var = _request('var');
    26                 $csv = new CSV($var);
    27                 $csv->EnTete();
     27                $csv = new ExportCompteResultats(_request('var'));
     28                $csv->LignesSimplesEntete(',', "\n", array('"'=>'""'), '"', '"');
    2829                foreach (array('charges', 'produits', 'contributions_volontaires') as $key) {
    29                         $csv->LesEcritures($key);
     30                        $csv->LignesSimplesCorps($key, ',', "\n", array('"'=>'""'), '"', '"');
    3031                }
    31                 $csv->Enregistre();
     32                $csv->leFichier('csv');
    3233        }
    3334}
    3435
    35 /**
    36  *  Utilisation d'une classe tres tres tres simple !!!
    37  */
    38 class CSV {
    39 
    40         var $exercice;
    41         var $join;
    42         var $sel;
    43         var $where;
    44         var $having;
    45         var $order;
    46         var $out;
    47 
    48         function  __construct($var) {
    49                 $tableau = unserialize(rawurldecode($var));
    50                 $this->exercice = $tableau[0];
    51                 $this->join = $tableau[1];
    52                 $this->sel = $tableau[2];
    53                 $this->where = $tableau[3];
    54                 $this->having = $tableau[4];
    55                 $this->order = $tableau[5];
    56                 $this->out = '';
    57         }
    58 
    59         function EnTete() {
    60 /* dans le standard (certe de facto), la premiere ligne est (optionnellement) celle des noms des colonnes.
    61                 $this->out .= '"'. html_entity_decode(_T('asso:cpte_resultat_titre_general')) .'",';
    62                 $this->out .= '"'. html_entity_decode(_T('Association') .' : '. $GLOBALS['association_metas']['nom']) .'",';
    63                 $this->out .= '"'. html_entity_decode(_T('Exercice') .' : '. sql_asso1champ('exercice', $this->exercice, 'intitule') ) .'",';
    64                 $this->out .= "\n";
    65 */
    66                 $this->out .= '"'. str_replace('"', '""', utf8_decode(html_entity_decode(_T('asso:entete_code')))) .'",';
    67                 $this->out .= '"'. str_replace('"', '""', utf8_decode(html_entity_decode(_T('asso:entete_intitule')))) .'",';
    68                 $this->out .= '"'. str_replace('"', '""', utf8_decode(html_entity_decode(_T('asso:entete_montant')))) .'"';
    69                 $this->out .= "\n";
    70         }
    71 
    72         function LesEcritures($key) {
    73                 switch ($key) {
    74                         case 'charges' :
    75                                 $quoi = "SUM(depense) AS valeurs";
    76                                 break;
    77                         case 'produits' :
    78                                 $quoi = "SUM(recette) AS valeurs";
    79                                 break;
    80                         case 'contributions_volontaires' :
    81                                 $quoi = "SUM(depense) AS charge_evaluee, SUM(recette) AS produit_evalue";
    82                                 break;
    83                 }
    84                 $query = sql_select(
    85                         "imputation, $quoi, DATE_FORMAT(date, '%Y') AS annee".$this->sel, // select
    86                         'spip_asso_comptes '.$this->join, // from
    87                         $this->where, // where
    88                         $this->order, // group by
    89                         $this->order, // order by
    90                         '', // limit
    91                         $this->having .$GLOBALS['association_metas']['classe_'.$key] // having
    92                 );
    93                 $chapitre = '';
    94                 $i = 0;
    95                 while ($data = sql_fetch($query)) {
    96                         if ($key==='contributions_volontaires') {
    97                                 if ($data['charge_evaluee']>0) {
    98                                         $valeurs = $data['charge_evaluee'];
    99                                 } else {
    100                                         $valeurs = $data['produit_evalue'];
    101                                 }
    102                         } else {
    103                                 $valeurs = $data['valeurs'];
    104                         }
    105                         $new_chapitre = substr($data['code'], 0, 2);
    106                         if ($chapitre!=$new_chapitre) {
    107                                 $this->out .= '"'. str_replace('"', '""', $new_chapitre) .'",';
    108                                 $this->out .= '"'. str_replace('"', '""', ($GLOBALS['association_metas']['plan_comptable_prerenseigne']?association_plan_comptable_complet($new_chapitre):sql_getfetsel('intitule','spip_asso_plan',"code='$new_chapitre'"))) .'",';
    109                                 $this->out .= '" "';
    110                                 $this->out .= "\n";
    111                                 $chapitre = $new_chapitre;
    112                         }
    113                         $this->out .= '"'. str_replace('"', '""', $data['code']) .'",';
    114                         $this->out .= '"'. str_replace('"', '""', $data['intitule']) .'",';
    115                         $this->out .= '"'.$valeurs.'"';
    116                         $this->out .= "\n";
    117                 }
    118         }
    119 
    120         function Enregistre() {
    121                 $fichier = _DIR_RACINE.'/'._NOM_TEMPORAIRES_ACCESSIBLES.'compte_resultats_'.$this->exercice.'.csv';
    122                 $f = fopen($fichier, 'w');
    123                 fputs($f, $this->out);
    124                 fclose($f);
    125                 header('Content-type: application/csv');
    126                 header('Content-Disposition: attachment; filename="'.$fichier.'"');
    127                 readfile($fichier);
    128         }
    129 
    130 }
    131 
    13236?>
  • _plugins_/Association/Associaspip/exec/export_compteresultats_ctx.php

    r59668 r59760  
    1515        return;
    1616
    17 // Export du Compte de Resultat en .ctx
     17include_spip('exec/compte_resultat'); // c'est pour la definition de classe ExportCompteResultats
     18
     19// Export du Compte de Resultat au format CTX
     20// http://www.creativyst.com/Doc/Std/ctx/ctx.htm
    1821function exec_export_compteresultats_ctx() {
    1922        if (!autoriser('associer', 'export_compteresultats')) {
     
    2124                echo minipres();
    2225        } else {
    23                 include_spip('inc/charsets');
    24                 include_spip('inc/association_plan_comptable');
    25                 $ctx = new CTX(_request('var'));
    26                 $ctx->EnTete();
     26                $ctx = new ExportCompteResultats(_request('var'));
     27                $ctx->LignesSimplesEntete('|', "\n", array("\r"=>'\r', "\n"=>'\n', "\\"=>'\i', '|'=>'\p'), '', '');
    2728                foreach (array('charges', 'produits', 'contributions_volontaires') as $key) {
    28                         $ctx->LesEcritures($key);
     29                        $ctx->LignesSimplesCorps($key, '|', "\n", array("\r"=>'\r', "\n"=>'\n', "\\"=>'\i', '|'=>'\p'), '', '')
    2930                }
    30                 $ctx->Enregistre();
     31                $ctx->leFichier('ctx');
    3132        }
    3233}
    3334
    34 /**
    35  *  Utilisation d'une classe tres tres tres simple !!!
    36  */
    37 class CTX {
    38 
    39         var $exercice;
    40         var $join;
    41         var $sel;
    42         var $where;
    43         var $having;
    44         var $order;
    45         var $out;
    46 
    47         function  __construct($var) {
    48                 $tableau = unserialize(rawurldecode($var));
    49                 $this->exercice = $tableau[0];
    50                 $this->join = $tableau[1];
    51                 $this->sel = $tableau[2];
    52                 $this->where = $tableau[3];
    53                 $this->having = $tableau[4];
    54                 $this->order = $tableau[5];
    55                 $this->out = '';
    56         }
    57 
    58         function EnTete() {
    59                 $this->out .= str_replace(array("\r", "\n", "\\", '|'), array('\r', '\n', '\i', '\p'), html_entity_decode(_T('asso:entete_code'))) .'|';
    60                 $this->out .= '"'. str_replace(array("\r", "\n", "\\", '|'), array('\r', '\n', '\i', '\p'), html_entity_decode(_T('asso:entete_intitule'))) .'|';
    61                 $this->out .= str_replace(array("\r", "\n", "\\", '|'), array('\r', '\n', '\i', '\p'), html_entity_decode(_T('asso:entete_montant'))) ."\n";
    62         }
    63 
    64         function LesEcritures($key) {
    65                 switch ($key) {
    66                         case 'charges' :
    67                                 $quoi = "SUM(depense) AS valeurs";
    68                                 break;
    69                         case 'produits' :
    70                                 $quoi = "SUM(recette) AS valeurs";
    71                                 break;
    72                         case 'contributions_volontaires' :
    73                                 $quoi = "SUM(depense) AS charge_evaluee, SUM(recette) AS produit_evalue";
    74                                 break;
    75                 }
    76                 $query = sql_select(
    77                         "imputation, $quoi, DATE_FORMAT(date, '%Y') AS annee".$this->sel, // select
    78                         'spip_asso_comptes '.$this->join, // from
    79                         $this->where, // where
    80                         $this->order, // group by
    81                         $this->order, // order by
    82                         '', // limit
    83                         $this->having .$GLOBALS['association_metas']['classe_'.$key] // having
    84                 );
    85                 $chapitre = '';
    86                 $i = 0;
    87                 while ($data = sql_fetch($query)) {
    88                         if ($key==='contributions_volontaires') {
    89                                 if ($data['charge_evaluee']>0) {
    90                                         $valeurs = $data['charge_evaluee'];
    91                                 } else {
    92                                         $valeurs = $data['produit_evalue'];
    93                                 }
    94                         } else {
    95                                 $valeurs = $data['valeurs'];
    96                         }
    97                         $new_chapitre = substr($data['code'], 0, 2);
    98                         if ($chapitre!=$new_chapitre) {
    99                                 $this->out .= str_replace(array("\r", "\n", "\\", '|'), array('\r', '\n', '\i', '\p'), $new_chapitre) .'|';
    100                                 $this->out .= '"'. str_replace(array("\r", "\n", "\\", '|'), array('\r', '\n', '\i', '\p'), ($GLOBALS['association_metas']['plan_comptable_prerenseigne']?association_plan_comptable_complet($new_chapitre):sql_getfetsel('intitule','spip_asso_plan',"code='$new_chapitre'"))) .'|';
    101                                 $this->out .= " | \n";
    102                                 $chapitre = $new_chapitre;
    103                         }
    104                         $this->out .= str_replace(array("\r", "\n", "\\", '|'), array('\r', '\n', '\i', '\p'), $data['code']) .'|';
    105                         $this->out .= str_replace(array("\r", "\n", "\\", '|'), array('\r', '\n', '\i', '\p'), $data['intitule']) .'|';
    106                         $this->out .= $valeurs ."\n";
    107                 }
    108         }
    109 
    110         function Enregistre() {
    111                 $fichier = _DIR_RACINE.'/'._NOM_TEMPORAIRES_ACCESSIBLES.'compte_resultats_'.$this->exercice.'.ctx';
    112                 $f = fopen($fichier, 'w');
    113                 fputs($f, $this->out);
    114                 fclose($f);
    115                 header('Content-type: application/ctx');
    116                 header('Content-Disposition: attachment; filename="'.$fichier.'"');
    117                 readfile($fichier);
    118         }
    119 
    120 }
    121 
    12235?>
  • _plugins_/Association/Associaspip/exec/export_compteresultats_pdf.php

    r59668 r59760  
    1818function exec_export_compteresultats_pdf()
    1919{
    20         if (!autoriser('associer', 'export_compte_resultat_pdf')) {
     20        if (!autoriser('associer', 'export_compte_resultats')) {
    2121                include_spip('inc/minipres');
    2222                echo minipres();
    2323        } else {
    2424                $var = _request('var');
    25                 include_spip('pdf/export');
    2625                $pdf = new EXPORT_PDF();
    2726                $pdf->SetFont('Arial', '', 12);
     
    3736}
    3837
     38define('FPDF_FONTPATH', 'font/');
     39include_spip('fpdf');
     40include_spip('inc/charsets');
     41include_spip('inc/association_plan_comptable');
     42
     43class EXPORT_PDF extends FPDF {
     44
     45        var $largeur = 210; // format A4
     46        var $hauteur = 297;
     47        var $xx = 0; // coin haut gauche 1ère boite
     48        var $yy = 0;
     49        var $marge_gauche = 10;
     50        var $marge_droite = 10;
     51        var $marge_haut = 10;
     52        var $marge_bas = 10;
     53        var $icone_h = 20;
     54        var $icone_v = 20;
     55        var $space_v = 2;
     56        var $space_h = 2;
     57        var $largeur_utile = 0; // largeur sans les marges droites et gauches
     58        var $largeur_pour_titre = 0; // largeur utile sans icone
     59        var $exercice;
     60        var $join;
     61        var $sel;
     62        var $where;
     63        var $having;
     64        var $order;
     65        var $total_charges;
     66        var $total_produits;
     67
     68        function init($var) {
     69                $tableau = unserialize(rawurldecode($var));
     70                $this->exercice = $tableau[0];
     71                $this->join = $tableau[1];
     72                $this->sel = $tableau[2];
     73                $this->where = $tableau[3];
     74                $this->having = $tableau[4];
     75                $this->order = $tableau[5];
     76
     77                $this->largeur_utile = $this->largeur-$this->marge_gauche-$this->marge_droite;
     78                $this->largeur_pour_titre = $this->largeur_utile-$this->icone_h-3*$this->space_h;
     79
     80                $this->xx = $this->marge_gauche;
     81                $this->yy = $this->marge_haut;
     82
     83                $this->total_charges = 0;
     84                $this->total_produits = 0;
     85
     86                $this->SetAuthor('Marcel BOLLA');
     87                $this->SetCreator('Associaspip & Fpdf');
     88                $this->SetTitle('Module Comptabilite de Associaspip');
     89                $this->SetSubject(_T('asso:cpte_resultat_titre_general'));
     90        }
     91
     92        function Footer() {
     93                //Positionnement a 2 fois la marge du bas
     94                $this->SetY(-2*$this->marge_bas);
     95                //Arial italique 8
     96                $this->SetFont('Arial', 'I', 8);
     97                //Couleur du texte en gris
     98                $this->SetTextColor(128);
     99                //Date et Numéro de page
     100                $this->Cell(0, 10, html_entity_decode(_T('asso:cpte_resultat_pied_page_export_pdf') .' -- '. affdate(date('Y-m-d')) .' -- '. _T('Page') .' '. $this->PageNo()), 0, 0, 'C');
     101        }
     102
     103        function enTete() {
     104                // Les coordonnees courantes
     105                $xc = $this->xx+$this->space_h;
     106                $yc = $this->yy+$this->space_v;
     107                $this->SetDrawColor(128);
     108
     109                // le logo du site
     110                $logo = find_in_path('IMG/siteon0.jpg');
     111//              $chercher_logo = charger_fonction('chercher_logo', 'inc');
     112//              $logo = $chercher_logo(0, 'id_site');
     113                if ($logo) {
     114                        include_spip('/inc/filtres_images_mini');
     115                        $this->Image(extraire_attribut(image_reduire($logo, $this->icone_h, $this->icone_v), 'src'), $xc, $yc, $this->icone_h);
     116//                      $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>
     117                }
     118                //Arial gras 22
     119                $this->SetFont('Arial', 'B', 22);
     120                //Couleurs du cadre, du fond et du texte
     121                $this->SetFillColor(235);
     122                $this->SetTextColor(0);
     123                //Titre centre
     124                $xc += $this->space_h+($logo?$this->icone_h:0);
     125                $this->SetXY($xc, $yc);
     126                $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);
     127                $yc += 12;
     128                //Saut de ligne
     129                $this->Ln($this->space_v);
     130                $yc += $this->space_v;
     131
     132                //Arial 12
     133                $this->SetFont('Arial', '', 12);
     134                //Couleur de fond
     135                $this->SetFillColor(235);
     136                //Sous titre Nom de l'association
     137                $this->SetXY($xc, $yc);
     138                $this->Cell($logo?$this->largeur_pour_titre:$this->largeur_pour_titre+$this->icone_h-$this->space_h, 6, utf8_decode(_T('Association').' : '. $GLOBALS['association_metas']['nom']), 0, 0, 'C', true);
     139                $yc += 6;
     140                //Saut de ligne
     141                $this->Ln($this->space_v/2);
     142                $yc += $this->space_v/2;
     143
     144                //Arial 12
     145                $this->SetFont('Arial', '', 12);
     146                //Couleur de fond
     147                $this->SetFillColor(235);
     148                //Sous titre Date début et fin de l'exercice
     149                $this->SetXY($xc, $yc);
     150                $this->Cell($logo?$this->largeur_pour_titre:$this->largeur_pour_titre+$this->icone_h-$this->space_h, 6, utf8_decode(_T('Exercice').' : ' . sql_getfetsel('intitule','spip_asso_exercices', 'id_exercice='.$this->exercice) ), 0, 0, 'C', true);
     151                $yc += 6;
     152                //Saut de ligne
     153                $this->Ln($this->space_v);
     154                $yc += $this->space_v;
     155
     156                // Rectangle tout autour de l'entete
     157                $this->Rect($this->xx, $this->yy, $this->largeur_utile, $yc-$this->marge_haut);
     158
     159                // on sauve la position du curseur dans la page
     160                $this->yy = $yc;
     161        }
     162
     163        function lesCharges($classe) {
     164                // Les coordonnees courantes
     165                $xc = $this->xx+$this->space_h;
     166                $y_orig = $this->yy+$this->space_v;
     167                $yc = $y_orig+$this->space_v;
     168
     169                //Arial gras 14
     170                $this->SetFont('Arial', 'B', 14);
     171
     172                //Couleurs du cadre, du fond et du texte
     173                $this->SetFillColor(235);
     174                $this->SetTextColor(0);
     175
     176                //Titre centre
     177                $this->SetXY($xc, $yc);
     178                $this->Cell($this->largeur_utile, 10, html_entity_decode(_T('asso:cpte_resultat_titre_charges')), 0, 0, 'C');
     179                $yc += 10;
     180
     181                //Saut de ligne
     182                $this->Ln($this->space_v);
     183                $yc += $this->space_v;
     184
     185                $query = sql_select(
     186                        "imputation, SUM(depense) AS valeurs, date_format(date, '%Y') AS annee".$this->sel, // select
     187                        'spip_asso_comptes '.$this->join, // from
     188                        $this->where, // where
     189                        $this->order, // group by
     190                        $this->order, // order by
     191                        '', // limit
     192                        $this->having.$classe // having
     193                );
     194                $chapitre = '';
     195                $i = 0;
     196
     197                //Arial 12
     198                $this->SetFont('Arial', '', 12);
     199
     200                while ($data = sql_fetch($query)) {
     201                        // positionne le curseur
     202                        $this->SetXY($xc, $yc);
     203
     204                        $new_chapitre = substr($data['code'], 0, 2);
     205                        if ($chapitre!=$new_chapitre) {
     206                                //Couleur de fond
     207                                $this->SetFillColor(225);
     208
     209                                $this->Cell(20, 6, utf8_decode($new_chapitre), 0, 0, 'L', true);
     210
     211                                $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);
     212
     213                                $chapitre = $new_chapitre;
     214
     215                                //Saut de ligne
     216                                $this->Ln();
     217                                $yc += 6;
     218                        }
     219
     220                        //Couleur de fond
     221                        $this->SetFillColor(245);
     222
     223                        // positionne le curseur
     224                        $this->SetXY($xc, $yc);
     225                        $this->Cell(20, 6, utf8_decode($data['code']), 0, 0, 'R', true);
     226
     227                        $this->Cell(($this->largeur_utile)-(2*$this->space_h+50), 6, utf8_decode($data['intitule']), 0, 0, 'L', true);
     228                        $this->Cell(30, 6, association_nbrefr($data['valeurs']), 0, 0, 'R', true);
     229
     230                        $this->total_charges += $data['valeurs'];
     231
     232                        //Saut de ligne
     233                        $this->Ln();
     234                        $yc += 6;
     235                }
     236                // positionne le curseur
     237                $this->SetXY($xc, $yc);
     238
     239                //Couleur de fond
     240                $this->SetFillColor(215);
     241
     242                $this->Cell(($this->largeur_utile)-(2*$this->space_h+30), 6, html_entity_decode(_T('asso:cpte_resultat_total_charges')), 1, 0, 'R', true);
     243                $this->Cell(30, 6, association_nbrefr($this->total_charges), 1, 0, 'R', true);
     244                $yc += 6;
     245
     246                //Saut de ligne
     247                $this->Ln($this->space_v);
     248                $yc += $this->space_v;
     249
     250                // Rectangle tout autour
     251                $this->Rect($this->xx, $y_orig, $this->largeur_utile, $yc-$y_orig);
     252
     253                // on sauve la position du curseur dans la page
     254                $this->yy = $yc;
     255        }
     256
     257        function lesProduits($classe) {
     258                // Les coordonnees courantes
     259                $xc = $this->xx+$this->space_h;
     260                $y_orig = $this->yy+$this->space_v;
     261                $yc = $y_orig+$this->space_v;
     262
     263                //Arial gras 14
     264                $this->SetFont('Arial', 'B', 14);
     265
     266                //Couleurs du cadre, du fond et du texte
     267                $this->SetFillColor(235);
     268                $this->SetTextColor(0);
     269
     270                //Titre centre
     271                $this->SetXY($xc, $yc);
     272                $this->Cell($this->largeur_utile, 10, html_entity_decode(_T('asso:cpte_resultat_titre_produits')), 0, 0, 'C');
     273                $yc += 10;
     274
     275                //Saut de ligne
     276                $this->Ln($this->space_v);
     277                $yc += $this->space_v;
     278
     279                $query = sql_select(
     280                        "imputation, SUM(recette) AS valeurs, date_format(date, '%Y') AS annee".$this->sel, // select
     281                        'spip_asso_comptes '.$this->join, // from
     282                        $this->where, // where
     283                        $this->order, // group by
     284                        $this->order, // order by
     285                        '', // limit
     286                        $this->having.$classe // having
     287                );
     288                $chapitre = '';
     289                $i = 0;
     290
     291                //Arial 12
     292                $this->SetFont('Arial', '', 12);
     293
     294                while ($data = sql_fetch($query)) {
     295                        // positionne le curseur
     296                        $this->SetXY($xc, $yc);
     297
     298                        $new_chapitre = substr($data['code'], 0, 2);
     299                        if ($chapitre!=$new_chapitre) {
     300                                //Couleur de fond
     301                                $this->SetFillColor(225);
     302
     303                                $this->Cell(20, 6, utf8_decode($new_chapitre), 0, 0, 'L', true);
     304
     305                                $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);
     306
     307                                $chapitre = $new_chapitre;
     308
     309                                //Saut de ligne
     310                                $this->Ln();
     311                                $yc += 6;
     312                        }
     313
     314                        //Couleur de fond
     315                        $this->SetFillColor(245);
     316
     317                        // positionne le curseur
     318                        $this->SetXY($xc, $yc);
     319                        $this->Cell(20, 6, utf8_decode($data['code']), 0, 0, 'R', true);
     320
     321                        $this->Cell(($this->largeur_utile)-(2*$this->space_h+50), 6, utf8_decode($data['intitule']), 0, 0, 'L', true);
     322                        $this->Cell(30, 6, association_nbrefr($data['valeurs']), 0, 0, 'R', true);
     323
     324                        $this->total_produits += $data['valeurs'];
     325
     326                        //Saut de ligne
     327                        $this->Ln();
     328                        $yc += 6;
     329                }
     330                // positionne le curseur
     331                $this->SetXY($xc, $yc);
     332
     333                //Couleur de fond
     334                $this->SetFillColor(215);
     335
     336                $this->Cell(($this->largeur_utile)-(2*$this->space_h+30), 6, html_entity_decode(_T('asso:cpte_resultat_total_produits')), 1, 0, 'R', true);
     337                $this->Cell(30, 6, association_nbrefr($this->total_produits), 1, 0, 'R', true);
     338                $yc += 6;
     339
     340                //Saut de ligne
     341                $this->Ln($this->space_v);
     342                $yc += $this->space_v;
     343
     344                // Rectangle tout autour
     345                $this->Rect($this->xx, $y_orig, $this->largeur_utile, $yc-$y_orig);
     346
     347                // on sauve la position du curseur dans la page
     348                $this->yy = $yc;
     349        }
     350
     351        function leResultat() {
     352                // Les coordonnees courantes
     353                $xc = $this->xx+$this->space_h;
     354                $y_orig = $this->yy+$this->space_v;
     355                $yc = $y_orig+$this->space_v;
     356
     357                //Arial gras 14
     358                $this->SetFont('Arial', 'B', 14);
     359
     360                //Couleurs du cadre, du fond et du texte
     361                $this->SetFillColor(235);
     362                $this->SetTextColor(0);
     363
     364                //Titre centre
     365                $this->SetXY($xc, $yc);
     366
     367                $this->Cell($this->largeur_utile, 10, html_entity_decode(_T('asso:cpte_resultat_titre_resultat')), 0, 0, 'C');
     368                $yc += 10;
     369
     370                //Saut de ligne
     371                $this->Ln($this->space_v);
     372                $yc += $this->space_v;
     373
     374                //Couleur de fond
     375                $this->SetFillColor(215);
     376
     377                $res = $this->total_produits-$this->total_charges;
     378                $this->SetXY($xc, $yc);
     379                if ($res<0) {
     380                        $this->Cell(($this->largeur_utile)-(2*$this->space_h+30), 6, html_entity_decode(_T('asso:cpte_resultat_perte')), 1, 0, 'R', true);
     381                } else {
     382                        $this->Cell(($this->largeur_utile)-(2*$this->space_h+30), 6, html_entity_decode(_T('asso:cpte_resultat_benefice')), 1, 0, 'R', true);
     383                }
     384                $this->Cell(30, 6, association_nbrefr($res), 1, 0, 'R', true);
     385                $yc += 6;
     386
     387                //Saut de ligne
     388                $this->Ln($this->space_v);
     389                $yc += $this->space_v;
     390
     391                // Rectangle tout autour
     392                $this->Rect($this->xx, $y_orig, $this->largeur_utile, $yc-$y_orig);
     393
     394                // on sauve la position du curseur dans la page
     395                $this->yy = $yc;
     396        }
     397
     398        function lesContributionsVolontaires($classe) {
     399                // Les coordonnees courantes
     400                $xc = $this->xx+$this->space_h;
     401                $y_orig = $this->yy+$this->space_v;
     402                $yc = $y_orig+$this->space_v;
     403
     404                //Arial gras 14
     405                $this->SetFont('Arial', 'B', 14);
     406
     407                //Couleurs du cadre, du fond et du texte
     408                $this->SetFillColor(235);
     409                $this->SetTextColor(0);
     410
     411                //Titre centre
     412                $this->SetXY($xc, $yc);
     413
     414                $this->Cell($this->largeur_utile, 10, html_entity_decode(_T('asso:cpte_resultat_titre_benevolat')), 0, 0, 'C');
     415                $yc += 10;
     416
     417                //Saut de ligne
     418                $this->Ln($this->space_v);
     419                $yc += $this->space_v;
     420
     421                $charges_evaluees = $produits_evalues = 0;
     422                $query = sql_select(
     423                        "imputation, SUM(depense) AS charge_evaluee, SUM(recette) AS produit_evalue, date_format(date, '%Y') AS annee".$this->sel, // select
     424                        'spip_asso_comptes '.$this->join, // from
     425                        $this->where, // where
     426                        $this->order, // group by
     427                        $this->order, // order by
     428                        '', // limit
     429                        $this->having.$classe // having
     430                );
     431                $chapitre = '';
     432                $i = 0;
     433
     434                //Arial 12
     435                $this->SetFont('Arial', '', 12);
     436
     437                while ($data = sql_fetch($query)) {
     438                        // positionne le curseur
     439                        $this->SetXY($xc, $yc);
     440
     441                        $new_chapitre = substr($data['code'], 0, 2);
     442                        if ($chapitre!=$new_chapitre) {
     443                                //Couleur de fond
     444                                $this->SetFillColor(225);
     445                                $this->Cell(20, 6, utf8_decode($new_chapitre), 0, 0, 'L', true);
     446                                $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);
     447                                $chapitre = $new_chapitre;
     448                                //Saut de ligne
     449                                $this->Ln();
     450                                $yc += 6;
     451                        }
     452
     453                        //Couleur de fond
     454                        $this->SetFillColor(245);
     455
     456                        // positionne le curseur
     457                        $this->SetXY($xc, $yc);
     458                        $this->Cell(20, 6, utf8_decode($data['code']), 0, 0, 'R', true);
     459                        $this->Cell(($this->largeur_utile)-(2*$this->space_h+50), 6, utf8_decode($data['intitule']), 0, 0, 'L', true);
     460                        if ($data['charge_evaluee']>0) {
     461                                $this->Cell(30, 6, association_nbrefr($data['charge_evaluee']), 0, 0, 'R', true);
     462                                $charges_evaluees += $data['charge_evaluee'];
     463                        } else {
     464                                $this->Cell(30, 6, association_nbrefr($data['produit_evalue']), 0, 0, 'R', true);
     465                                $produits_evalues += $data['produit_evalue'];
     466                        }
     467                        //Saut de ligne
     468                        $this->Ln();
     469                        $yc += 6;
     470                }
     471
     472                //Couleur de fond
     473                $this->SetFillColor(215);
     474
     475                // positionne le curseur
     476                $this->SetXY($xc, $yc);
     477
     478                $this->Cell(($this->largeur_utile)/2-(2*$this->space_h+30), 6, html_entity_decode(_T('asso:cpte_resultat_total_charges_evaluees')), 1, 0, 'R', true);
     479                $this->Cell(30, 6, association_nbrefr($charges_evaluees), 1, 0, 'R', true);
     480
     481                // positionne le curseur sur l'autre demi page
     482                $xc += ( $this->largeur_utile)/2;
     483                $this->SetXY($xc, $yc);
     484                $this->Cell(($this->largeur_utile)/2-(2*$this->space_h+30), 6, html_entity_decode(_T('asso:cpte_resultat_total_produits_evalues')), 1, 0, 'R', true);
     485                $this->Cell(30, 6, association_nbrefr($produits_evalues), 1, 0, 'R', true);
     486
     487                $yc += 6;
     488                //Saut de ligne
     489                $this->Ln($this->space_v);
     490                $yc += $this->space_v;
     491
     492                // Rectangle tout autour
     493                $this->Rect($this->xx, $y_orig, $this->largeur_utile, $yc-$y_orig);
     494
     495                // on sauve la position du curseur dans la page
     496                $this->yy = $yc;
     497        }
     498
     499        function leFichier() {
     500                $this->Output('compte_resultats_'.$this->exercice.'.pdf', 'I');
     501        }
     502
     503}
     504
     505
    39506?>
  • _plugins_/Association/Associaspip/exec/export_compteresultats_tab.php

    r59668 r59760  
    1717// Export du Compte de Resultat au format .tab
    1818function exec_export_compteresultats_tab() {
    19         if (!autoriser('associer', 'export_compteresultats_csv')) {
     19        if (!autoriser('associer', 'export_compteresultats')) {
    2020                include_spip('inc/minipres');
    2121                echo minipres();
  • _plugins_/Association/Associaspip/exec/export_compteresultats_tex.php

    r59668 r59760  
    1515        return;
    1616
     17include_spip('exec/compte_resultat'); // c'est pour la definition de classe ExportCompteResultats
     18
    1719// Export du Compte de Resultat au format LaTeX
     20// http://fr.wikipedia.org/wiki/LaTeX
    1821function exec_export_compteresultats_tex() {
    19         if (!autoriser('associer', 'export_compteresultats_xml')) {
     22        if (!autoriser('associer', 'export_compteresultats')) {
    2023                include_spip('inc/minipres');
    2124                echo minipres();
    2225        } else {
    23                 include_spip('inc/charsets');
    24                 include_spip('inc/association_plan_comptable');
    2526                $var = _request('var');
    2627                $latex = new LaTeX(_request('var'));
     
    3031                }
    3132                $latex->Pied();
    32                 $latex->Enregistre();
     33                $latex->leFichier('tex');
    3334        }
    3435}
     
    3738 *  Utilisation d'une classe tres tres tres simple !!!
    3839 */
    39 class LaTeX {
    40 
    41         var $exercice;
    42         var $join;
    43         var $sel;
    44         var $where;
    45         var $having;
    46         var $order;
    47         var $out;
    48 
    49         function __construct($var) {
    50                 $tableau = unserialize(rawurldecode($var));
    51                 $this->exercice = $tableau[0];
    52                 $this->join = $tableau[1];
    53                 $this->sel = $tableau[2];
    54                 $this->where = $tableau[3];
    55                 $this->having = $tableau[4];
    56                 $this->order = $tableau[5];
    57                 $this->out = '';
    58         }
     40class LaTeX extends ExportCompteResultats {
    5941
    6042        function EnTete() {
     
    123105        }
    124106
    125         function Enregistre() {
    126                 $fichier =_DIR_RACINE.'/'._NOM_TEMPORAIRES_ACCESSIBLES.'compte_resultats_'.$this->exercice.'.tex';
    127                 $f = fopen($fichier, 'w');
    128                 fputs($f, $this->out);
    129                 fclose($f);
    130                 header('Content-Type: text/tex');
    131                 header('Content-Type: application/tex');
    132                 header('Content-Disposition: attachment; filename="'.$fichier.'"');
    133                 readfile($fichier);
    134         }
    135107}
    136108
  • _plugins_/Association/Associaspip/exec/export_compteresultats_tsv.php

    r59668 r59760  
    1515        return;
    1616
    17 // Export du Compte de Resultat en .tsv ou .tab
     17include_spip('exec/compte_resultat'); // c'est pour la definition de classe ExportCompteResultats
     18
     19// Export du Compte de Resultat au format TSV
     20// http://fr.wikipedia.org/wiki/Format_TSV
    1821function exec_export_compteresultats_tsv() {
    1922        if (!autoriser('associer', 'export_compteresultats')) {
     
    2124                echo minipres();
    2225        } else {
    23                 include_spip('inc/charsets');
    24                 include_spip('inc/association_plan_comptable');
    25                 $tsv = new TSV(_request('var'));
    26                 $tsv->EnTete();
     26                $tsv = new ExportCompteResultats(_request('var'));
     27                $tsv->LignesSimplesEntete("\t", "\n", array("\t"=>'\t',"\n"=>'\n'), '"', '"');
    2728                foreach (array('charges', 'produits', 'contributions_volontaires') as $key) {
    28                         $tsv->LesEcritures($key);
     29                        $tsv->LignesSimplesCorps($key, ',', "\n", array("\t"=>'\t',"\n"=>'\n'), '"', '"');
    2930                }
    30                 $tsv->Enregistre();
     31                $tsv->leFichier('tab');
    3132        }
    3233}
     
    3536 *  Utilisation d'une classe tres tres tres simple !!!
    3637 */
    37 class TSV {
    38 
    39         var $exercice;
    40         var $join;
    41         var $sel;
    42         var $where;
    43         var $having;
    44         var $order;
    45         var $out;
    46 
    47         function  __construct($var) {
    48                 $tableau = unserialize(rawurldecode($var));
    49                 $this->exercice = $tableau[0];
    50                 $this->join = $tableau[1];
    51                 $this->sel = $tableau[2];
    52                 $this->where = $tableau[3];
    53                 $this->having = $tableau[4];
    54                 $this->order = $tableau[5];
    55                 $this->out = '';
    56         }
     38class TSV extends ExportCompteResultats {
    5739
    5840        function EnTete() {
     
    10789        }
    10890
    109         function Enregistre() {
    110                 $fichier = _DIR_RACINE.'/'._NOM_TEMPORAIRES_ACCESSIBLES.'compte_resultats_'.$this->exercice.'.tab';
    111                 $f = fopen($fichier, 'w');
    112                 fputs($f, $this->out);
    113                 fclose($f);
    114                 header('Content-type: application/tsv');
    115                 header('Content-Disposition: attachment; filename="'.$fichier.'"');
    116                 readfile($fichier);
    117         }
    118 
    11991}
    12092
  • _plugins_/Association/Associaspip/exec/export_compteresultats_xml.php

    r59668 r59760  
    1515        return;
    1616
    17 // Export du Compte de Resultat au format Xml
     17include_spip('exec/compte_resultat'); // c'est pour la definition de classe ExportCompteResultats
     18
     19// Export du Compte de Resultat au format XML
     20// http://fr.wikipedia.org/wiki/Extensible_Markup_Language
    1821function exec_export_compteresultats_xml() {
    19         if (!autoriser('associer', 'export_compteresultats_xml')) {
     22        if (!autoriser('associer', 'export_compteresultats')) {
    2023                include_spip('inc/minipres');
    2124                echo minipres();
     
    3033                }
    3134                $xml->Pied();
    32                 $xml->Enregistre();
     35                $xml->leFichier('xml');
    3336        }
    3437}
     
    3740 *  Utilisation d'une classe tres tres tres simple !!!
    3841 */
    39 class XML {
    40 
    41         var $exercice;
    42         var $join;
    43         var $sel;
    44         var $where;
    45         var $having;
    46         var $order;
    47         var $out;
    48 
    49         function __construct($var) {
    50                 $tableau = unserialize(rawurldecode($var));
    51                 $this->exercice = $tableau[0];
    52                 $this->join = $tableau[1];
    53                 $this->sel = $tableau[2];
    54                 $this->where = $tableau[3];
    55                 $this->having = $tableau[4];
    56                 $this->order = $tableau[5];
    57                 $this->out = '';
    58         }
     42class XML extends ExportCompteResultats {
    5943
    6044        function EnTete() {
     
    128112        }
    129113
    130         function Enregistre() {
    131                 $fichier =_DIR_RACINE.'/'._NOM_TEMPORAIRES_ACCESSIBLES.'compte_resultats_'.$this->exercice.'.xml';
    132                 $f = fopen($fichier, 'w');
    133                 fputs($f, $this->out);
    134                 fclose($f);
    135                 header('Content-Type: text/xml');
    136                 header('Content-Type: application/xml');
    137                 header('Content-Disposition: attachment; filename="'.$fichier.'"');
    138                 readfile($fichier);
    139         }
    140114}
    141115
  • _plugins_/Association/Associaspip/exec/export_compteresultats_yaml.php

    r59668 r59760  
    1515        return;
    1616
     17include_spip('exec/compte_resultat'); // c'est pour la definition de classe ExportCompteResultats
     18
    1719// Export du Compte de Resultat au format YAML
     20// http://fr.wikipedia.org/wiki/Yaml
    1821function exec_export_compteresultats_yaml() {
    19         if (!autoriser('associer', 'export_compteresultats_xml')) {
     22        if (!autoriser('associer', 'export_compteresultats')) {
    2023                include_spip('inc/minipres');
    2124                echo minipres();
     
    2932                        $yaml->LesEcritures($key);
    3033                }
    31                 $yaml->Enregistre();
     34                $yaml->leFichier('yaml');
    3235        }
    3336}
     
    3639 *  Utilisation d'une classe tres tres tres simple !!!
    3740 */
    38 class YAML {
    39 
    40         var $exercice;
    41         var $join;
    42         var $sel;
    43         var $where;
    44         var $having;
    45         var $order;
    46         var $out;
    47 
    48         function __construct($var) {
    49                 $tableau = unserialize(rawurldecode($var));
    50                 $this->exercice = $tableau[0];
    51                 $this->join = $tableau[1];
    52                 $this->sel = $tableau[2];
    53                 $this->where = $tableau[3];
    54                 $this->having = $tableau[4];
    55                 $this->order = $tableau[5];
    56                 $this->out = '';
    57         }
     41class YAML extends ExportCompteResultats {
    5842
    5943        function EnTete() {
     
    11296        }
    11397
    114         function Enregistre() {
    115                 $fichier =_DIR_RACINE.'/'._NOM_TEMPORAIRES_ACCESSIBLES.'compte_resultats_'.$this->exercice.'.yaml';
    116                 $f = fopen($fichier, 'w');
    117                 fputs($f, $this->out);
    118                 fclose($f);
    119                 header('Content-Type: text/yaml');
    120                 header('Content-Type: application/yaml');
    121                 header('Content-Disposition: attachment; filename="'.$fichier.'"');
    122                 readfile($fichier);
    123         }
    12498}
    12599
Note: See TracChangeset for help on using the changeset viewer.