Changeset 96443 in spip-zone


Ignore:
Timestamp:
Apr 4, 2016, 10:42:07 AM (3 years ago)
Author:
erational@…
Message:

on remplit les pdfs à la volée

Location:
_plugins_/agessa
Files:
2 added
5 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/agessa/formulaires/agessa.php

    r96389 r96443  
    33if (!defined('_ECRIRE_INC_VERSION')) return;
    44
    5 
    65/**
    7  * Format un champs en latin pour le pdf
     6 * Formatte un champs en latin pour le pdf
    87 *
    98 * @param string $str
     
    1110**/
    1211function agessa_pdf_encode($str) {
    13         return iconv('UTF-8', 'windows-1252', $str);
     12        return iconv('UTF-8', 'windows-1252', strtoupper($str));
    1413}
    1514
     15/**
     16 * Ajouter des espaces a un champs pour attendre une longeur donnée
     17 *
     18 * @param string $str
     19 * @return string
     20**/
     21function agessa_pdf_white_space($str, $length = 7, $ajout_gauche = true) {
     22        $str = agessa_pdf_encode($str);
    1623
     24        for ($i = strlen($str); $i < $length; $i++) {
     25                $str = ($ajout_gauche) ? " " . $str : $str . " ";
     26        }
     27        return $str;
     28}
    1729
    1830
     
    2032// Charger
    2133//-------------------------
    22 function formulaires_agessa_charger_dist() { 
     34function formulaires_agessa_charger_dist() {
    2335        $valeurs = array();
    24         $valeurs['montant_da'] = ''; 
     36        $valeurs['montant_da'] = '';
    2537        return $valeurs;
    2638}
     39
    2740
    2841//-------------------------
     
    3144function formulaires_agessa_verifier_dist() {
    3245        $erreurs = array();
    33         if (intval(_request('montant_da') < 1)) 
    34         $erreur = _T("agessa:erreur_montant_da");
     46        if (intval(_request('montant_da') < 1))
     47                $erreur = _T('agessa:erreur_montant_da');
    3548        return $erreurs;
    3649}
     
    4558        $montant_da = intval(_request('montant_da'));
    4659        $montant_agessa = 0;
    47         $taux = array("taux_maladie", "taux_csg", "taux_rds", "taux_formation", "taux_diffuseur", "taux_diffuseur_formation");
     60        $taux = array('taux_maladie', 'taux_csg', 'taux_rds', 'taux_formation', 'taux_diffuseur', 'taux_diffuseur_formation');
    4861
    4962        foreach ($taux as $tau) {
    5063                $$tau = lire_config("agessa/$tau") * $montant_da;
    51                 $montant_agessa += $$tau;   // pour le total, on garde la precision
     64                $montant_agessa += $$tau; // pour le total, on garde la precision
    5265                $$tau = round($$tau);
    5366        }
    5467        $montant_agessa = round($montant_agessa);
    5568
     69        $coords = array('insee', 'sexe', 'nom', 'prenom', 'numero', 'rue', 'cp', 'ville', 'pays', 'activite');
     70        foreach ($coords as $coord)
     71                $$coord = lire_config("agessa/$coord");
     72
    5673        // etape 2: creation PDF
    5774        // doc: http://contrib.spip.net/Realiser-un-PDF-personnalise-avec-FPDF
    58         define('FPDF_FONTPATH','font/');
     75        define('FPDF_FONTPATH', 'font/');
    5976        include_spip('fpdf');
    6077        include_spip('fpdi');
     78        include_spip('lib/fpdf_cellfit');
    6179
    62         // On cree le pdf 
    63         $pdf = new FPDI('P','mm','A4');   
    64         $pdf->AddPage();   
     80        // On cree le pdf
     81        $pdf = new FPDFI_CellFit('P', 'mm', 'A4');
     82        $pdf->AddPage();
    6583        $pdf->SetMargins(0,0);
    66 
    67         // On importe le diplome vierge
    68         $pdf->setSourceFile(find_in_path("pdf/Bordereau_declaratif_2016_nb.pdf"));
    69         $tplIdx = $pdf->importPage(1);
    70         $pdf->useTemplate($tplIdx, 0, 0, 0, 0, true);
     84        $pdf->setSourceFile(find_in_path('pdf/Bordereau_declaratif_2016_nb.pdf'));
     85        $tplIdx = $pdf->importPage(1);
     86        $pdf->useTemplate($tplIdx, 0, 0, 0, 0, true);
    7187
    7288        // on ajouter le texte
    73         $pdf->SetFont('Arial','',10);
    74         $pdf->SetTextColor(80,80,170);
     89        $pdf->SetFont('Helvetica', '', 10);
     90        $pdf->SetTextColor(80, 80, 170);
    7591
    7692        // PAGE 1
    77         //----------------- 
    78         // page 1 > demandeur
    79         $pdf->SetXY(45,62);      $pdf->Cell(0,0, date("d / m / Y"));                      // date
     93        //-----------------
     94        $pdf->SetXY(68.8, 136.2);
     95        $pdf->CellFitSpaceForce(30, 0, agessa_pdf_white_space($montant_da), 0, 0, 'R');
    8096
    81         /*  $pdf->SetXY(130,62);     $pdf->Cell(0,0, pdf_encode($test));    // rpps
     97        $pdf->SetXY(157.5, 144.8);
     98        $pdf->CellFitSpaceForce(30, 0, agessa_pdf_white_space($taux_maladie), 0, 0, 'R');
     99        $pdf->SetXY(157.5, 150);
     100        $pdf->CellFitSpaceForce(30, 0, agessa_pdf_white_space($taux_csg), 0, 0, 'R');
     101        $pdf->SetXY(157.5, 156);
     102        $pdf->CellFitSpaceForce(30, 0, agessa_pdf_white_space($taux_rds), 0, 0, 'R');
     103        $pdf->SetXY(157.5, 161);
     104        $pdf->CellFitSpaceForce(30, 0, agessa_pdf_white_space($taux_formation), 0, 0, 'R');
    82105
    83         */
     106        $pdf->SetXY(157.5, 196.7);
     107        $pdf->CellFitSpaceForce(30, 0, agessa_pdf_white_space($taux_diffuseur), 0, 0, 'R');
     108        $pdf->SetXY(157.5, 202.5);
     109        $pdf->CellFitSpaceForce(30, 0, agessa_pdf_white_space($taux_diffuseur_formation), 0, 0, 'R');
     110
     111        $pdf->SetXY(153.6, 214.4);
     112        $pdf->CellFitSpaceForce(34, 0, agessa_pdf_white_space($montant_agessa, 8), 0, 0, 'R');
     113
    84114        // PAGE 2
    85115        //-----------------
    86116        $pdf->AddPage();
    87         $tplIdx = $pdf->importPage(2);     
    88         $pdf->useTemplate($tplIdx, 0, 0, 0, 0, true);
     117        $tplIdx = $pdf->importPage(2);
     118        $pdf->useTemplate($tplIdx, 0, 0, 0, 0, true);
     119
     120        // montant
     121        $pdf->SetXY(161.4, 63.8);
     122        $pdf->CellFitSpaceForce(25, 0, agessa_pdf_white_space($montant_da, 6), 0, 0, 'R');
     123
     124        $pdf->SetXY(13.1, 118);
     125        $pdf->CellFitSpaceForce(25, 0, agessa_pdf_white_space($taux_maladie, 6), 0, 0, 'R');
     126        $pdf->SetXY(44.7, 118);
     127        $pdf->CellFitSpaceForce(25, 0, agessa_pdf_white_space($taux_csg, 6), 0, 0, 'R');
     128        $pdf->SetXY(75.7, 118);
     129        $pdf->CellFitSpaceForce(25, 0, agessa_pdf_white_space($taux_rds, 6), 0, 0, 'R');
     130        $pdf->SetXY(107.2, 118);
     131        $pdf->CellFitSpaceForce(25, 0, agessa_pdf_white_space($taux_formation, 6), 0, 0, 'R');
     132        $pdf->SetXY(139.0, 118);
     133        $pdf->CellFitSpaceForce(25, 0, agessa_pdf_white_space($taux_diffuseur, 6), 0, 0, 'R');
     134        $pdf->SetXY(170.5, 118);
     135        $pdf->CellFitSpaceForce(25, 0, agessa_pdf_white_space($taux_diffuseur_formation, 6), 0, 0, 'R');
     136
     137        // coord auteur
     138        if ($sexe == "M") {
     139                $pdf->SetXY(14, 55.7);
     140                $pdf->Cell(0, 0, "X");
     141        } else if ($sexe == "Mme") {
     142                $pdf->SetXY(27, 55.7);
     143                $pdf->Cell(0, 0, "X");
     144        }
     145        $pdf->SetXY(63.2, 51.4);
     146        $pdf->CellFitSpaceForce(66, 0, agessa_pdf_white_space($insee, 15, false),0);
     147        $pdf->SetXY(27, 60);
     148        $pdf->CellFitSpaceForce(102, 0, agessa_pdf_white_space($nom, 23, false),0);
     149        $pdf->SetXY(27, 65);
     150        $pdf->CellFitSpaceForce(102, 0, agessa_pdf_white_space($prenom, 23, false),0);
     151        $pdf->SetXY(27, 70);
     152        $pdf->CellFitSpaceForce(17, 0, agessa_pdf_white_space($numero, 4, false),0);
     153        $pdf->SetXY(27, 75);
     154        $pdf->CellFitSpaceForce(102, 0, agessa_pdf_white_space($rue, 23, false),0);
     155        $pdf->SetXY(27, 80.4);
     156        $pdf->CellFitSpaceForce(22, 0, agessa_pdf_white_space($cp, 5, false),0);
     157        $pdf->SetXY(58.2, 80.4);
     158        $pdf->CellFitSpaceForce(70, 0, agessa_pdf_white_space($ville, 16, false),0);
     159        $pdf->SetXY(27, 85.6);
     160        $pdf->CellFitSpaceForce(102, 0, agessa_pdf_white_space($pays, 23, false),0);
     161        $pdf->SetXY(62.6, 93.1);
     162        $pdf->CellFitSpaceForce(133, 0, agessa_pdf_white_space($activite, 30, false),0);
    89163
    90164        // on sauve dans le repertoire dedie
    91         $pdf_nom = "agessa_".date("Ymd-Hi")."-".md5("ilovespip".time()).".pdf";
    92         $pdf_path = _DIR_IMG."pdf_agessa/".$pdf_nom; 
     165        $pdf_nom = 'agessa_' .date('Ymd-Hi') . "-" . md5('ilovespip' . time()) . '.pdf';
     166        $pdf_path = _DIR_IMG .'pdf_agessa/' . $pdf_nom;
    93167        $pdf->Output($pdf_path, 'F');
    94168
    95         // confirmer ok   
     169        // confirmer ok
    96170        return array(
    97171                'editable' => true,
    98                 'message_ok' => _T("agessa:pdf_cree",array("pdf_nom"=>$nom_pdf, "pdf_path"=>$pdf_path)),
     172                'message_ok' => _T('agessa:pdf_cree', array('pdf_nom' => $nom_pdf, 'pdf_path' => $pdf_path)),
    99173        );
    100174}
  • _plugins_/agessa/formulaires/configurer_agessa.html

    r96389 r96443  
    1818                                [(#SAISIE{input, taux_maladie,  label=<:agessa:cfg_taux_maladie:>,defaut=0.011})]
    1919                                [(#SAISIE{input, taux_csg,      label=<:agessa:cfg_taux_csg:>,defaut=0.0736875})]
    20                                 [(#SAISIE{input, taux_rds,      label=<:agessa:cfg_taux_rds:>,defaut=0.049125})]
     20                                [(#SAISIE{input, taux_rds,      label=<:agessa:cfg_taux_rds:>,defaut=0.0049125})]
    2121                                [(#SAISIE{input, taux_formation,        label=<:agessa:cfg_taux_formation:>,defaut=0.0035})]
    2222                                [(#SAISIE{input, taux_diffuseur,        label=<:agessa:cfg_taux_diffuseur:>,defaut=0.01})]
     
    3636                                [(#SAISIE{input, cp,    label=<:agessa:cfg_cp:>})]
    3737                                [(#SAISIE{input, ville, label=<:agessa:cfg_ville:>})]
     38                                [(#SAISIE{input, pays,  label=<:agessa:cfg_pays:>})]
    3839                                [(#SAISIE{input, activite,      label=<:agessa:cfg_activite:>})]
    3940                        </ul>
  • _plugins_/agessa/lang/agessa_fr.php

    r96389 r96443  
    2424        'cfg_cp' => 'CP',
    2525        'cfg_ville' => 'Ville',
    26         'cfg_pays' => 'Pays',     
     26        'cfg_pays' => 'Pays',
    2727        'cfg_activite' => 'Nature de l\'activité de l\'auteur',
    2828        'cfg_taux_diffuseur' => 'Contributeur diffuseur',
  • _plugins_/agessa/lang/paquet-agessa_fr.php

    r96389 r96443  
    77
    88        // A
    9         'agessa_description' => 'Pré-remplit le borderau déclaratif Agessa et génére le pdf.',
     9        'agessa_description' => 'Pré-remplit le bordereau déclaratif Agessa et génére le pdf.',
    1010        'agessa_nom' => 'Agessa',
    11         'agessa_slogan' => 'Pré-remplit le borderau déclaratif Agessa et génére le pdf.',
     11        'agessa_slogan' => 'Pré-remplit le bordereau déclaratif Agessa et génére le pdf.',
    1212);
  • _plugins_/agessa/paquet.xml

    r96389 r96443  
    22        prefix="agessa"
    33        categorie="divers"
    4         version="1.0.1"
     4        version="1.1.0"
    55        etat="test"
    66        compatibilite="[3.0.8;3.1.*]"
Note: See TracChangeset for help on using the changeset viewer.