[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Noalyss-commit] [noalyss] 57/107: PDF_Core : code cleaning
From: |
Dany De Bontridder |
Subject: |
[Noalyss-commit] [noalyss] 57/107: PDF_Core : code cleaning |
Date: |
Mon, 26 Aug 2019 10:31:57 -0400 (EDT) |
sparkyx pushed a commit to branch master
in repository noalyss.
commit df6b32ae16dedcfe5b966fc8efb52dbb800b95cb
Author: Dany De Bontridder <address@hidden>
Date: Mon Jul 29 11:08:21 2019 +0200
PDF_Core : code cleaning
---
include/lib/pdf.class.php | 438 ----------------------------------------------
1 file changed, 438 deletions(-)
diff --git a/include/lib/pdf.class.php b/include/lib/pdf.class.php
deleted file mode 100644
index 42efcaa..0000000
--- a/include/lib/pdf.class.php
+++ /dev/null
@@ -1,438 +0,0 @@
-<?php
-/*
- * This file is part of NOALYSS.
- *
- * NOALYSS is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * NOALYSS is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with NOALYSS; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-*/
-
-// Copyright Author Dany De Bontridder address@hidden
-
-/*!\file
- * \brief API for creating PDF, unicode, based on tfpdf
- *@see TFPDF
- */
-
-require_once NOALYSS_INCLUDE.'/tfpdf/tfpdf.php';
-class Cellule {
- var $width;
- var $height;
- var $text;
- var $new_line;
- var $border;
- var $align;
- var $fill;
- var $link;
- var $type;
- function __construct($w,$h,$txt,$border,$ln,$align,$fill,$link,$type)
- {
- $this->width=$w ;
- $this->height=$h ;
- $this->text=$txt;
- $this->border=$border;
- $this->new_line=$ln;
- $this->align=$align;
- $this->fill=$fill;
- $this->link=$link;
- $this->type=$type;
- return $this;
- }
-}
-class PDF extends TFPDF
-{
-
- var $cn = null;
- var $own = null;
- var $soc = "";
- var $dossier = "n/a";
- var $date = "";
- private $cells=array();
-
- public function __construct ($p_cn = null, $orientation = 'P', $unit =
'mm', $format = 'A4')
- {
- $this->bigger=0;
- if($p_cn == null) die("No database connection. Abort.");
-
- parent::__construct($orientation, $unit, $format);
- $this->AddFont('DejaVu','','DejaVuSans.ttf',true);
- $this->AddFont('DejaVu','B','DejaVuSans-Bold.ttf',true);
- $this->AddFont('DejaVu','BI','DejaVuSans-BoldOblique.ttf',true);
- $this->AddFont('DejaVuCond','','DejaVuSansCondensed.ttf',true);
- $this->AddFont('DejaVuCond','B','DejaVuSansCondensed-Bold.ttf',true);
-
$this->AddFont('DejaVuCond','I','DejaVuSansCondensed-Oblique.ttf',true);
- date_default_timezone_set ('Europe/Paris');
-
- $this->cn = $p_cn;
- $this->own = new Noalyss_Parameter_Folder($this->cn);
- $this->soc = $this->own->MY_NAME;
- $this->date = date('d.m.Y');
- $this->cells=array();
- }
-
- function setDossierInfo($dossier = "n/a")
- {
- $this->dossier = dossier::name()." ".$dossier;
- }
-
- function Header()
- {
- //Arial bold 12
- $this->SetFont('DejaVu', 'B', 12);
- //Title
- parent::Cell(0,10,$this->dossier, 'B', 0, 'C');
- //Line break
- parent::Ln(20);
- }
- function Footer()
- {
- //Position at 2 cm from bottom
- $this->SetY(-20);
- //Arial italic 8
- $this->SetFont('Arial', '', 8);
- //Page number
- parent::Cell(0,8,'Date '.$this->date." - Page
".$this->PageNo().'/{nb}',0,0,'C');
- parent::Ln(3);
- // Created by NOALYSS
- parent::Cell(0,8,'Created by NOALYSS, online on
http://www.noalyss.eu',0,0,'C',false,'http://www.noalyss.eu');
- }
- /**
- * Count the number of rows a p_text will take for a multicell
- * @param $p_text String
- * @param $p_colSize size of the column in User Unit
- */
- private function count_nb_row($p_text,$p_colSize)
- {
- // If colSize is bigger than the size of the string then it takes 1
line
- if ( $this->GetStringWidth($p_text) <= $p_colSize) return 1;
- $nRow=0;
- $aWords=explode(' ',$p_text);
- $nb_words=count($aWords);
- $string="";
-
- for ($i=0;$i < $nb_words;$i++){
- // Concatenate String with current word + a space
- $string.=$aWords[$i];
-
- // if there is a word after add a space
- if ( $i+1 < $nb_words) $string.=" ";
-
- // Compute new size and compare to the colSize
- if ( $this->GetStringWidth($string) >= $p_colSize) {
- // If the size of the string if bigger than we add a row, the
current
- // word is the first word of the next line
- $nRow++;
- $string=$aWords[$i];
- }
- }
- $nRow++;
- return $nRow;
-
-
-
- }
- /**
- * Check if a page must be added due a MultiCell
- * @return boolean
- */
- private function check_page_add()
- {
- // break on page
- $size=count($this->cells);
- for ($i=0;$i < $size ; $i++)
- {
- if ($this->cells[$i]->type == 'M' )
- {
- /**
- * On doit calculer si le texte dépasse la texte et compter le
- * nombre de lignes que le texte prendrait. Ensuite il faut
- * faire un saut de page (renvoit true) si dépasse
- */
-
- $sizetext=$this->GetStringWidth($this->cells[$i]->text);
-
- // if text bigger than column width then check
-
- $y=$this->GetY();
- $nb_row=$this->count_nb_row($this->cells[$i]->text,
$this->cells[$i]->width);
- $height=$this->cells[$i]->height*$nb_row;
-
- // If the text is bigger than a sheet of paper then return
false
- if ($height >= $this->h) return false;
-
- if ( $y + $height > ($this->h - $this->bMargin -7 ))
- return true;
-
- }
- }
- return false;
- }
- private function print_row()
- {
- static $e=0;
- $e++;
- if ( $this->check_page_add() == true ) $this->AddPage ();
- $this->bigger=0;
- $size=count($this->cells);
- $cell=$this->cells;
- if ($size == 0 )return;
- for ($i=0;$i < $size ; $i++)
- {
- $a=$cell[$i];
- $a->text= str_replace("\\", "", $a->text);
- switch ($a->type)
- {
- case "M":
- $x_m=$this->GetX();
- $y_m=$this->GetY();
- parent::MultiCell(
- $a->width,
- $a->height,
- $a->text,
- $a->border,
- $a->align,
- $a->fill
- );
- $x_m=$x_m+$a->width;
- $tmp=$this->GetY()-$y_m;
- if ( $tmp > $this->bigger) $this->bigger=$tmp;
- $this->SetXY($x_m,$y_m);
- break;
-
- case "C":
-
- parent::Cell( $a->width,
- $a->height,
- $a->text,
- $a->border,
- $a->new_line,
- $a->align,
- $a->fill,
- $a->link);
- break;
-
- default:
- break;
- }
- }
- $this->cells=array();
- }
- private function add_cell(Cellule $Ce)
- {
- $size=count($this->cells);
- $this->cells[$size]=$Ce;
-
- }
- function write_cell ($w, $h=0, $txt='', $border=0, $ln=0, $align='',
$fill=false, $link='')
- {
- $this->add_cell(new
Cellule($w,$h,$txt,$border,$ln,$align,$fill,$link,'C'));
-
- }
- function LongLine($w,$h,$txt,$border=0,$align='',$fill=false)
- {
- $this->add_cell(new Cellule($w,$h,$txt,$border,0,$align,$fill,'','M'));
-
- }
- /**
- * Print all the cell stored and call Ln (new line)
- * @param int $p_step
- */
- function line_new($p_step=null){
- $this->print_row();
- if ( $this->bigger==0)
- parent::Ln($p_step);
- else
- parent::Ln($this->bigger);
- $this->bigger=0;
- }
- /**
- * If the step is even then return 1 and set the backgroup color to blue ,
otherwise
- * returns 0, and set the background color to white
- * It is use to compute alternated colored row , it the parameter fill in
write_cell and
- * cell
- * @see PDF:write_cell
- * @see TPDF:cell
- *
- */
- function is_fill($p_step)
- {
- if ($p_step % 2 == 0) {
- $pdf->SetFillColor(220, 221, 255);
- $fill = 1;
- } else {
- $pdf->SetFillColor(0, 0, 0);
- $fill = 0;
- }
- return $p_step;
- }
- /**
- *@brief retrieve the client name and quick_code
- *@param $p_jr_id jrn.jr_id
- *@param $p_jrn_type ledger type ACH VEN FIN
- *@return array (0=>qcode,1=>name) or for FIN 0=>customer qc 1=>customer
name 2=>bank qc 3=>bank name
- *@see class_print_ledger_simple, class_print_ledger_simple_without_vat
- */
- function get_tiers($p_jr_id,$p_jrn_type)
- {
- if ( $p_jrn_type=='ACH' )
- {
- $array=$this->cn->get_array('SELECT
- jrnx.j_grpt,
- quant_purchase.qp_supplier,
- quant_purchase.qp_internal,
- jrn.jr_internal
- FROM
- public.quant_purchase,
- public.jrnx,
- public.jrn
- WHERE
- quant_purchase.j_id = jrnx.j_id AND
- jrnx.j_grpt = jrn.jr_grpt_id and
jr_id=$1',array($p_jr_id));
- if (count($array)==0) return array("ERREUR $p_jr_id",'');
- $customer_id=$array[0]['qp_supplier'];
- $fiche=new Fiche($this->cn,$customer_id);
- $customer_qc=$fiche->get_quick_code($customer_id);
- $customer_name=$fiche->getName();
- return array($customer_qc,$customer_name);
- }
- if ( $p_jrn_type=='VEN' )
- {
- $array=$this->cn->get_array('SELECT
- quant_sold.qs_client
- FROM
- public.quant_sold,
- public.jrnx,
- public.jrn
- WHERE
- quant_sold.j_id = jrnx.j_id AND
- jrnx.j_grpt = jrn.jr_grpt_id and
jr_id=$1',array($p_jr_id));
- if (count($array)==0) return array("ERREUR $p_jr_id",'');
- $customer_id=$array[0]['qs_client'];
- $fiche=new Fiche($this->cn,$customer_id);
- $customer_qc=$fiche->get_quick_code($customer_id);
- $customer_name=$fiche->getName();
- return array($customer_qc,$customer_name);
- }
- if ( $p_jrn_type=='FIN' )
- {
- $array=$this->cn->get_array('SELECT
- qf_other,qf_bank
- FROM
- public.quant_fin
- WHERE
- quant_fin.jr_id =$1',array($p_jr_id));
- if (count($array)==0) return array("ERREUR $p_jr_id",'','','');
- $customer_id=$array[0]['qf_other'];
- $fiche=new Fiche($this->cn,$customer_id);
- $customer_qc=$fiche->get_quick_code($customer_id);
- $customer_name=$fiche->getName();
-
- $bank_id=$array[0]['qf_bank'];
- $fiche=new Fiche($this->cn,$bank_id);
- $bank_qc=$fiche->get_quick_code($bank_id);
- $bank_name=$fiche->getName();
-
- return array($customer_qc,$customer_name,$bank_qc,$bank_name);
- }
- }
-
-
-}
-
-class PDFLand extends PDF
-{
-
- public function __construct ($p_cn = null, $orientation = 'P', $unit =
'mm', $format = 'A4')
- {
-
- if($p_cn == null) die("No database connection. Abort.");
- $this->bigger=0;
-
- parent::__construct($p_cn,'L', $unit, $format);
- date_default_timezone_set ('Europe/Paris');
- $this->AddFont('DejaVu','','DejaVuSans.ttf',true);
- $this->AddFont('DejaVu','B','DejaVuSans-Bold.ttf',true);
- $this->AddFont('DejaVu','BI','DejaVuSans-BoldOblique.ttf',true);
- $this->AddFont('DejaVuCond','','DejaVuSansCondensed.ttf',true);
- $this->AddFont('DejaVuCond','B','DejaVuSansCondensed-Bold.ttf',true);
-
$this->AddFont('DejaVuCond','I','DejaVuSansCondensed-Oblique.ttf',true);
-
- $this->cn = $p_cn;
- $this->own = new Noalyss_Parameter_Folder($this->cn);
- $this->soc = $this->own->MY_NAME;
- $this->date = date('d.m.Y');
- }
- function Header()
- {
- //Arial bold 12
- $this->SetFont('DejaVu', 'B', 10);
- //Title
- $this->Cell(0,10,$this->dossier, 'B', 0, 'C');
- //Line break
- $this->Ln(20);
- }
- function Footer()
- {
- //Position at 2 cm from bottom
- $this->SetY(-20);
- //Arial italic 8
- $this->SetFont('DejaVuCond', 'I', 8);
- //Page number
- $this->Cell(0,8,'Date '.$this->date." - Page
".$this->PageNo().'/{nb}',0,0,'C');
- $this->Ln(3);
- // Created by NOALYSS
- $this->Cell(0,8,'Created by NOALYSS, online on
http://www.noalyss.eu',0,0,'C',false,'http://www.noalyss.eu');
-
- }
-}
-
-class PDFBalance_simple extends PDF
-{
- /**
- *@brief set_info(dossier,from poste,to poste, from periode, to periode)
- *@param $p_from_poste start = poste
- *@param $p_to_poste end = poste
- *@param $p_from periode start
- *@param $p_to periode end
- */
- function set_info($p_from_poste,$to_poste,$p_from,$p_to)
- {
- $this->dossier='Balance simple '.dossier::name();
- $this->from_poste=$p_from_poste;
- $this->to_poste=$to_poste;
- $this->from=$p_from;
- $this->to=$p_to;
- }
- function Header()
- {
- parent::Header();
- $this->SetFont('DejaVu','B',8);
- $titre=sprintf("Balance simple poste %s %s date %s %s",
- $this->from_poste,
- $this->to_poste,
- $this->from,
- $this->to);
- $this->Cell(0,7,$titre,1,0,'C');
-
- $this->Ln();
- $this->SetFont('DejaVu','',6);
-
- $this->Cell(110,7,'Poste Comptable','B');
- $this->Cell(20,7,'Débit','B',0,'L');
- $this->Cell(20,7,'Crédit','B',0,'L');
- $this->Cell(20,7,'Solde','B',0,'L');
- $this->Cell(20,7,'D/C','B',0,'L');
- $this->Ln();
-
- }
-}
- [Noalyss-commit] [noalyss] 59/107: #0001729: Preference : ne plus recharger la page, (continued)
- [Noalyss-commit] [noalyss] 59/107: #0001729: Preference : ne plus recharger la page, Dany De Bontridder, 2019/08/26
- [Noalyss-commit] [noalyss] 85/107: Cosmetic : Icon_Trash in Todo_List, Dany De Bontridder, 2019/08/26
- [Noalyss-commit] [noalyss] 80/107: translation, Dany De Bontridder, 2019/08/26
- [Noalyss-commit] [noalyss] 82/107: DatabaseCore fix silent when not debug, Dany De Bontridder, 2019/08/26
- [Noalyss-commit] [noalyss] 72/107: Improve message progress bar + translation, Dany De Bontridder, 2019/08/26
- [Noalyss-commit] [noalyss] 94/107: Bug : Database::fetch_all returns an array or FALSE, because of pg_fetch_all, the version PHP7 cannot use anymore a boolean with count()., Dany De Bontridder, 2019/08/26
- [Noalyss-commit] [noalyss] 63/107: remove background color, Dany De Bontridder, 2019/08/26
- [Noalyss-commit] [noalyss] 66/107: Code cleaning : rename table mod_payment to payment_method, Dany De Bontridder, 2019/08/26
- [Noalyss-commit] [noalyss] 53/107: Select_Box new Object, Dany De Bontridder, 2019/08/26
- [Noalyss-commit] [noalyss] 55/107: Merge branch 'master' of gitlab.noalyss.eu:noalyss/noalyss, Dany De Bontridder, 2019/08/26
- [Noalyss-commit] [noalyss] 57/107: PDF_Core : code cleaning,
Dany De Bontridder <=
- [Noalyss-commit] [noalyss] 71/107: Select_Box add a search, Dany De Bontridder, 2019/08/26
- [Noalyss-commit] [noalyss] 77/107: Security : replace direct use of $_GET, Dany De Bontridder, 2019/08/26
- [Noalyss-commit] [noalyss] 45/107: Replace PHPCOMPTA by NOALYSS, Dany De Bontridder, 2019/08/26
- [Noalyss-commit] [noalyss] 90/107: Cosmetic : add button close in history card & accounting, Dany De Bontridder, 2019/08/26
- [Noalyss-commit] [noalyss] 88/107: SQL : correct SQL script to take care of users who delete the profile no 2, Dany De Bontridder, 2019/08/26
- [Noalyss-commit] [noalyss] 104/107: 0001728: Aide à l'encodage - Journaux négatifs (note de crédit) Unit test, Dany De Bontridder, 2019/08/26
- [Noalyss-commit] [noalyss] 48/107: Doxygen does not allow to document javascript Remove tag for using with jsdoc, Dany De Bontridder, 2019/08/26
- [Noalyss-commit] [noalyss] 89/107: Task #1735: Détail opération utilisation icone poubelle, Dany De Bontridder, 2019/08/26
- [Noalyss-commit] [noalyss] 103/107: Fix 0001728: Aide à l'encodage - Journaux négatifs (note de crédit) SQL Scripts, Dany De Bontridder, 2019/08/26
- [Noalyss-commit] [noalyss] 97/107: New : InputSwitch, display a switch and change the value of a hidden variable, Dany De Bontridder, 2019/08/26