[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Noalyss-commit] [noalyss] 73/151: Export en PDF d'operation
From: |
Dany De Bontridder |
Subject: |
[Noalyss-commit] [noalyss] 73/151: Export en PDF d'operation |
Date: |
Sat, 4 Feb 2017 17:14:29 +0000 (UTC) |
sparkyx pushed a commit to branch master
in repository noalyss.
commit 9e50f8f70b415658867674d788634bb53aef7d08
Author: Dany De Bontridder <address@hidden>
Date: Sat Nov 26 20:49:42 2016 +0100
Export en PDF d'operation
---
include/class/class_acc_operation.php | 2 +-
include/class/class_pdf_operation.php | 439 +++++++++++++++++++++++++++++++++
2 files changed, 440 insertions(+), 1 deletion(-)
diff --git a/include/class/class_acc_operation.php
b/include/class/class_acc_operation.php
index 4612f0f..f922376 100644
--- a/include/class/class_acc_operation.php
+++ b/include/class/class_acc_operation.php
@@ -677,7 +677,7 @@ class Acc_Misc extends Acc_Detail
parent::get();
$sql="SELECT j_id, j_date, j_montant, j_poste, j_grpt, j_rapt,
j_jrn_def,
j_debit, j_text, j_centralized, j_internal, j_tech_user,
j_tech_date,
- j_tech_per, j_qcode
+ j_tech_per, j_qcode,f_id
FROM jrnx where j_grpt = $1 order by j_debit desc,j_poste";
$this->det->array=$this->db->get_array($sql,array($this->det->jr_grpt_id));
}
diff --git a/include/class/class_pdf_operation.php
b/include/class/class_pdf_operation.php
new file mode 100644
index 0000000..54cb8f3
--- /dev/null
+++ b/include/class/class_pdf_operation.php
@@ -0,0 +1,439 @@
+<?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(2003-2016)
+
+/* * *
+ * @file
+ * Detail Operation ACC + ANC , it will use Acc_Operation and Anc_Operation
+ *
+ */
+require_once NOALYSS_INCLUDE . '/lib/class_pdf.php';
+require_once NOALYSS_INCLUDE . '/class/class_acc_operation.php';
+require_once NOALYSS_INCLUDE . '/class/class_acc_ledger.php';
+require_once NOALYSS_INCLUDE . '/class/class_acc_operation.php';
+require_once NOALYSS_INCLUDE . '/class/class_anc_operation.php';
+require_once NOALYSS_INCLUDE . '/database/class_jrn_sql.php';
+
+class PDF_Operation extends PDF {
+
+ private $acc_detail; //!< Acc_Operation object
+ private $jr_id; //!< jrn.jr_id operation
+// private $pdf;
+
+ function __construct($p_cn, $pjr_id) {
+ $this->cn = $p_cn;
+ $this->jr_id = $pjr_id;
+ $this->pdf = null;
+ $acc_detail= new Acc_Operation($p_cn,$pjr_id);
+ $acc_detail->set_id($pjr_id);
+ $this->acc_detail=$acc_detail->get_quant();
+ }
+ /*!
+ * @brief return the name of the ledger of the operation
+ */
+ private function print_ledger_name() {
+ $ledger = new Jrn_Def_sql($this->cn,
$this->acc_detail->det->jr_def_id);
+ return $ledger->jrn_def_name;
+ }
+
+ /**
+ * @brief Write basic information about the operation : date , ledger ,
+ * receipt , comment , document name if any
+ */
+ private function print_operation_info() {
+ $this->pdf->SetFont('DejaVu', '', 6);
+ $this->pdf->write_cell(50, 6, _('Journal'));
+ $this->pdf->write_cell(100, 6, $this->print_ledger_name());
+ $this->pdf->line_new(4);
+
+
+ $this->pdf->write_cell(50, 6, _("Date"));
+ $this->pdf->write_cell(100, 6, $this->acc_detail->det->jr_date);
+ $this->pdf->line_new(4);
+ $this->pdf->write_cell(50, 6, _("Echéance"));
+ $this->pdf->write_cell(100, 6, $this->acc_detail->det->jr_ech);
+ $this->pdf->line_new(4);
+ $this->pdf->write_cell(50, 6, _("Paiement"));
+ $this->pdf->write_cell(100, 6, $this->acc_detail->det->jr_date_paid);
+ $this->pdf->line_new(4);
+ $this->pdf->write_cell(50, 6, _("Numéro interne"));
+ $this->pdf->write_cell(100, 6, $this->acc_detail->det->jr_internal);
+ $this->pdf->line_new(4);
+ $this->pdf->write_cell(50, 6, _("Pièce"));
+ $this->pdf->write_cell(100, 6, $this->acc_detail->det->jr_pj_number);
+ $this->pdf->line_new(4);
+ $this->pdf->write_cell(50, 6, _("Commentaire"));
+ $this->pdf->write_cell(100, 6, $this->acc_detail->det->jr_comment);
+ $this->pdf->line_new(4);
+ $this->pdf->write_cell(50, 6, _("Nom document"));
+ $this->pdf->write_cell(100, 6, $this->acc_detail->det->jr_pj_name);
+ $this->pdf->line_new(8);
+ }
+ /**
+ * @brief For SALE and PURCHASE , print the customer or supplier and calls
+ * a function for the detail (VAT , quantity ...)
+ * @return type
+ */
+ private function print_operation_quant() {
+ if ( $this->acc_detail->signature=='FIN' ||
+ $this->acc_detail->signature=="ODS") {
+ return;
+ }
+ if ($this->acc_detail->signature=="ACH") {
+ $tiers=_("Fournisseur");
+ $tiers_id=$this->acc_detail->det->array[0]['qp_supplier'];
+ } else {
+ $tiers=_("Client");
+ $tiers_id=$this->acc_detail->det->array[0]['qs_client'];
+ }
+ $this->pdf->SetFont('DejaVu', 'B', 10);
+ $this->pdf->write_cell(60,8,_("Résumé"),"1");
+ $this->pdf->line_new(8);
+ $fiche=new Fiche($this->cn,$tiers_id);
+
+ $this->pdf->SetFont('DejaVu', 'B', 6);
+ $this->pdf->write_cell(50, 6, $tiers);
+ $this->pdf->write_cell(140, 6, $fiche->getName().
+ " ".$fiche->get_quick_code());
+ $this->pdf->line_new(4);
+ if ($this->acc_detail->signature=="ACH") {
+ $this->print_purchase();
+ } else {
+ $this->print_sale();
+ }
+
+
+ }
+ /**
+ * @brief returns a string with info about tva
+ * @see print_sale print_purchase
+ * @param integer $p_tva_id id of TVA_RATE (tva_rate.tva_id)
+ * @return type
+ */
+ private function str_vat($p_tva_id) {
+ $tva=new Acc_Tva($this->cn, $p_tva_id);
+ $tva->load();
+ $auto="";
+ if ( $tva->tva_both_side==1) {
+ $auto="(=0.0)";
+ }
+ $ret=sprintf("%d %s %s",$p_tva_id,$tva->tva_label,$auto);
+ return $ret;
+
+ }
+ private function print_sale() {
+ // quick_code , label , montant hors tva,code tva,montant tva
+ $nb=count($this->acc_detail->det->array);
+ $width=array(10,30,50,25,25,25,25);
+ $sum_amount=0;
+ $sum_vat=0;
+ bcscale(4);
+ $this->pdf->SetFont('DejaVu', 'B', 6);
+ $this->pdf->write_cell($width[0],6,_("n°"),"B");
+ $this->pdf->write_cell($width[1],6,_("code"),"B");
+ $this->pdf->write_cell($width[2],6,_("Libellé"),"B");
+ $this->pdf->write_cell($width[3],6,_("Montant HTVA"),"B",0,"R");
+ $this->pdf->write_cell($width[4],6,_("TVA"),"B");
+ $this->pdf->write_cell($width[5],6,_("Montant TVA"),"B",0,"R");
+ $this->pdf->write_cell($width[6],6,_("Total"),"B",0,"R");
+ $this->pdf->line_new(6);
+ $this->pdf->SetFont('DejaVu', '', 6);
+ for ( $i=0;$i<$nb;$i++) {
+ $row=$this->acc_detail->det->array[$i];
+ $fiche_id=$row['qs_fiche'];
+ $fiche=new Fiche($this->cn,$fiche_id);
+ $this->pdf->write_cell($width[0],6,$i+1);
+ $this->pdf->write_cell($width[1],6,$fiche->get_quick_code());
+ $this->pdf->LongLine($width[2],6,$row['j_text']);
+ $this->pdf->write_cell($width[3],6,$row["qs_price"],"",0,"R");
+ $str=$this->str_vat($row["qs_vat_code"]);
+ $this->pdf->write_cell($width[4],6,$str);
+ $this->pdf->write_cell($width[5],6,$row["qs_vat"],"",0,"R");
+
$this->pdf->write_cell($width[6],6,bcadd($row["qs_price"],$row["qs_vat"]),"",0,"R");
+ $this->pdf->line_new(6);
+
+ $sum_amount=bcadd($sum_amount,$row["qs_price"]);
+ $sum_vat=bcadd($sum_vat,$row["qs_vat"]);
+ }
+ $this->pdf->SetFont('DejaVu', 'B', 6);
+ $this->pdf->write_cell($width[0],6,"");
+ $this->pdf->write_cell($width[1],6,"");
+ $this->pdf->write_cell($width[2],6,"");
+ $this->pdf->write_cell($width[3],6,$sum_amount,"",0,"R");
+ $this->pdf->write_cell($width[4],6,"");
+ $this->pdf->write_cell($width[5],6,$sum_vat,"",0,"R");
+
$this->pdf->write_cell($width[6],6,bcadd($sum_amount,$sum_vat),"",0,"R");
+ $this->pdf->line_new(4);
+
+ }
+ private function print_purchase(){
+ // quick_code , label , montant hors tva,code tva,montant tva
+ $nb=count($this->acc_detail->det->array);
+ $width=array(10,30,50,25,25,25,25);
+ $sum_amount=0;
+ $sum_vat=0;
+ bcscale(4);
+ $this->pdf->SetFont('DejaVu', 'B', 6);
+ $this->pdf->write_cell($width[0],6,_("n°"),"B");
+ $this->pdf->write_cell($width[1],6,_("code"),"B");
+ $this->pdf->write_cell($width[2],6,_("Libellé"),"B");
+ $this->pdf->write_cell($width[3],6,_("Montant HTVA"),"B",0,"R");
+ $this->pdf->write_cell($width[4],6,_("TVA"),"B");
+ $this->pdf->write_cell($width[5],6,_("Montant TVA"),"B",0,"R");
+ $this->pdf->write_cell($width[6],6,_("Total"),"B",0,"R");
+ $this->pdf->line_new(6);
+ $this->pdf->SetFont('DejaVu', '', 6);
+ for ( $i=0;$i<$nb;$i++) {
+ $row=$this->acc_detail->det->array[$i];
+ $fiche_id=$row['qp_fiche'];
+ $fiche=new Fiche($this->cn,$fiche_id);
+ $this->pdf->write_cell($width[0],6,$i+1);
+ $this->pdf->write_cell($width[1],6,$fiche->get_quick_code());
+ $this->pdf->LongLine($width[2],6,$row['j_text']);
+ $this->pdf->write_cell($width[3],6,$row["qp_price"],"",0,"R");
+ $str=$this->str_vat($row["qp_vat_code"]);
+ $this->pdf->write_cell($width[4],6,$str);
+ $this->pdf->write_cell($width[5],6,$row["qp_vat"],"",0,"R");
+
$this->pdf->write_cell($width[6],6,bcadd($row["qp_price"],$row["qp_vat"]),"",0,"R");
+ $this->pdf->line_new(6);
+
+ $sum_amount=bcadd($sum_amount,$row["qp_price"]);
+ $sum_vat=bcadd($sum_vat,$row["qp_vat"]);
+ }
+ $this->pdf->SetFont('DejaVu', 'B', 6);
+ $this->pdf->write_cell($width[0],6,"");
+ $this->pdf->write_cell($width[1],6,"");
+ $this->pdf->write_cell($width[2],6,"");
+ $this->pdf->write_cell($width[3],6,$sum_amount,"",0,"R");
+ $this->pdf->write_cell($width[4],6,"");
+ $this->pdf->write_cell($width[5],6,$sum_vat,"",0,"R");
+
$this->pdf->write_cell($width[6],6,bcadd($sum_amount,$sum_vat),"",0,"R");
+ $this->pdf->line_new(10);
+
+ }
+ private function print_acc_writing(){
+ $obj1=new Acc_Operation($this->cn);
+ $obj1->set_id($this->jr_id);
+ $obj=$obj1->get();
+ $nb=count($obj->det->array);
+ $this->pdf->SetFont('DejaVu', 'B', 10);
+ $this->pdf->write_cell(60,8,_("Ecriture comptable"),"1");
+ $this->pdf->line_new(8);
+
+ bcscale(4);
+ $width=array(10,40,40,50,30,10);
+ $this->pdf->SetFont('DejaVu', 'B', 6);
+ $this->pdf->write_cell($width[0],6,_("n°"),"B");
+ $this->pdf->write_cell($width[1],6,_("Poste comptable"),"B");
+ $this->pdf->write_cell($width[2],6,_("code"),"B");
+ $this->pdf->write_cell($width[3],6,_("Libellé"),"B");
+ $this->pdf->write_cell($width[4],6,_("Montant"),"B",0,"R");
+ $this->pdf->write_cell($width[5],6,_("D/C"),"B");
+ $this->pdf->line_new(6);
+ $this->pdf->SetFont('DejaVu', '', 6);
+ for ($i=0;$i<$nb;$i++){
+ $row=$obj->det->array[$i];
+ $this->pdf->write_cell($width[0],6,$row['j_id']);
+ $this->pdf->write_cell($width[1],6,$row['j_poste']);
+ $this->pdf->write_cell($width[2],6,$row["j_qcode"]);
+ $str=$row["j_text"];
+ if (trim($str)==""){
+ if (trim($row["j_qcode"])=="") {
+ $str=$this->cn->get_value("select pcm_lib from tmp_pcmn
where pcm_val=$1",
+ array($row["j_poste"]));
+ } else {
+ $str=$this->cn->get_value("select ad_value from
fiche_detail where ad_id=1 and f_id=$1",
+ array($row["f_id"]));
+ }
+ }
+ $this->pdf->write_cell($width[3],6,$str);
+ $this->pdf->write_cell($width[4],6,$row["j_montant"],"",0,"R");
+ $deb=($row["j_debit"]=="t")?"D":"C";
+ $this->pdf->write_cell($width[5],6,$deb);
+ $this->pdf->line_new(6);
+ }
+ }
+ private function print_anc_header($pa_plan) {
+ $nb=count($pa_plan);
+ $this->pdf->SetFont('DejaVu', 'B', 8);
+ $width=25;
+ $this->pdf->SetFillColor(220,221,255);
+ for ($i = 0; $i<$nb; $i++) {
+ $this->pdf->write_cell($width,8,$pa_plan[$i]['pa_name'],1,"C",1);
+ }
+ $this->pdf->write_cell($width,8,_('ANC'),1,"C",1);
+ $this->pdf->SetFillColor(0,0,0);
+ $this->pdf->line_new(8);
+ }
+ private function print_anc_detail($p_j_id, $pa_plan) {
+ // get info from jrnx
+ $row_jrnx = $this->cn->get_row("select j_text ,
j_montant,j_qcode,j_poste from public.jrnx where j_id=$1", array($p_j_id));
+
+ // print row
+ $this->pdf->SetFont('DejaVu', 'B', 7);
+ $this->pdf->write_cell(25, 8,$p_j_id);
+ $this->pdf->write_cell(40, 8,$row_jrnx["j_poste"]);
+ $this->pdf->write_cell(40, 8,$row_jrnx["j_qcode"]);
+ $this->pdf->write_cell(40, 8,$row_jrnx["j_montant"]);
+ $this->pdf->line_new(8);
+ // . Display a table with the plan (axis) name in the header
+ $this->print_anc_header($pa_plan);
+
+ // get all the rows from operation_analytique for this jrnx.j_id
+ $a_operation_analytique = $this->cn->get_array(
+ "select oa_row,oa_positive,po_name,pa_id,po_id,oa_debit,
+ case when oa_positive='N' then oa_amount*(-1)
+ else oa_amount end as signed_amount
+ from OPeration_analytique
+ left join public.poste_analytique using(po_id)
+ left join public.plan_analytique using (pa_id)
+ where
+ j_id =$1
+ order by oa_row,pa_id
+ ", array($p_j_id));
+ $this->pdf->SetFont('DejaVu', '', 6);
+ $width = 25;
+ // For each row print the result for each plan (=col)
+ $old_row = null;
+ $nb_operation = count($a_operation_analytique);
+ $idx_plan = 0;
+ $cnt_plan = count($pa_plan);
+ bcscale(4);
+ $tot_anc=0;
+ for ($i = 0; $i<$nb_operation; $i++) {
+ $current_row = $a_operation_analytique[$i];
+ if ($old_row==null)
+ $old_row = $current_row;
+ if ($old_row['oa_row']!=$current_row['oa_row']) {
+ if($idx_plan!=0) {
+ for ($e = $idx_plan; $e<$cnt_plan; $e++)
+ $this->pdf->write_cell($width, 8, "", 1, "C", 0);
+ }
+ // print last column
+ $this->pdf->write_cell($width, 8, $old_row["signed_amount"],
1, "R", 0);
+ // Add to total
+ $tot_anc= bcadd($tot_anc, $old_row["signed_amount"]);
+ // we start a new line
+ $this->pdf->line_new(8);
+ // reset plan
+ $idx_plan = 0;
+ }
+ if ($current_row['pa_id']==$pa_plan[$idx_plan]['pa_id']) {
+ $this->pdf->write_cell($width, 8, $current_row['po_name'],
1, "L", 0);
+ } else {
+ // print the post code in the right column
+ for ($e = $idx_plan; $e<$cnt_plan; $e++) {
+ if ($current_row['pa_id']==$pa_plan[$e]['pa_id']) {
+ $this->pdf->write_cell($width, 8,
$current_row['po_name'], 1, "L", 0);
+ $idx_plan=$e;
+ // $idx_plan--;
+ break;
+ } else {
+ $this->pdf->write_cell($width, 8, "", 1, "C", 0);
+ }
+ }
+ }
+ $idx_plan++;
+ if ($idx_plan == $cnt_plan ) $idx_plan=0;
+ $old_row = $current_row;
+ }
+ // End
+ // print last column
+ if($idx_plan!=0) {
+ $this->pdf->write_cell($width, 8, "", 1, "C", 0);
+ }
+ $this->pdf->write_cell($width, 8, $old_row["signed_amount"], 1, "R",
0);
+ $this->pdf->line_new(8);
+
+ // Add to total
+ $tot_anc= bcadd($tot_anc, $old_row["signed_amount"]);
+
+ // Total
+ $this->pdf->write_cell(40, 6,_("Comptabilité"));
+ $this->pdf->write_cell(40, 6,$row_jrnx["j_montant"],"","R",0);
+ $this->pdf->line_new();
+ $this->pdf->write_cell(40, 6,_("Analytique"));
+ $this->pdf->write_cell(40, 6,$tot_anc,"","R",0);
+ $this->pdf->line_new();
+
+ $this->pdf->write_cell(40, 6,_("Diff"));
+ $this->pdf->write_cell(40, 6, bcsub($row_jrnx['j_montant'],
$tot_anc),0,"R",0);
+ $this->pdf->line_new();
+ }
+
+ private function print_anc_writing() {
+ // . Get all the existing plans and store them in an array
+ $a_plan=$this->cn->get_array("select pa_id,pa_name
+ from public.plan_analytique order by pa_id");
+
+
+
+ // . Take all the j_id of the concern operation
+ $a_jrnxId=$this->cn->get_array(
+ "select j_id from jrnx join jrn on (jr_grpt_id=j_grpt)
+ where
+ jr_id=$1",array($this->jr_id));
+
+ // . For each j_id print all the concerned rows ordered by plan
+ $nb=count($a_jrnxId);
+ for ($index = 0; $index<$nb; $index++) {
+ $count_ana=$this->cn->get_value("select count(*)
+ from public.operation_analytique
+ where j_id=$1
+ ",array($a_jrnxId[$index]["j_id"]));
+ if ($count_ana == 0 ) continue;
+ $this->print_anc_detail($a_jrnxId[$index]["j_id"],$a_plan);
+ }
+
+
+ }
+ /**
+ * @brief export operation into a PDF
+ *
+ * @param type $p_option String containing EXTEND ACC ANC or a combination
+ */
+
+ function export_pdf($p_option) {
+ // create a PDF
+ $this->pdf = new PDF($this->cn);
+ $this->pdf->Setdossierinfo(_("Détail opération"));
+ $this->pdf->setTitle(_("Détail opération"), true);
+ $this->pdf->SetAuthor('NOALYSS');
+ $this->pdf->AliasNbPages();
+ $this->pdf->AddPage();
+
+ //write date + ledger + detail items + total
+ $this->print_operation_info();
+
+ // Write only for Sale or purchase summary (QCode, label,amount,tva...)
+ $this->print_operation_quant();
+
+ // if option contains ACC export ACC (accountancy writings
+ $this->print_acc_writing();
+
+ // ANC only if exists
+ $this->print_anc_writing();
+
+ // if option contains EXTEND add document name + comment + action name
+ // if options contains ANC export ANC plan table
+ }
+
+}
- [Noalyss-commit] [noalyss] 115/151: Correct doxygen, (continued)
- [Noalyss-commit] [noalyss] 115/151: Correct doxygen, Dany De Bontridder, 2017/02/04
- [Noalyss-commit] [noalyss] 109/151: Add a class to manage the Param table (CRUD), Dany De Bontridder, 2017/02/04
- [Noalyss-commit] [noalyss] 113/151: Correct doxygen doc, Dany De Bontridder, 2017/02/04
- [Noalyss-commit] [noalyss] 131/151: Doxygen, Dany De Bontridder, 2017/02/04
- [Noalyss-commit] [noalyss] 120/151: Add managetable.js to the script to load, Dany De Bontridder, 2017/02/04
- [Noalyss-commit] [noalyss] 128/151: Security : add security, Dany De Bontridder, 2017/02/04
- [Noalyss-commit] [noalyss] 130/151: #1380 : change the name of the function Acc_Ledger::button_copy_operation, Dany De Bontridder, 2017/02/04
- [Noalyss-commit] [noalyss] 132/151: Correct Doxygen documentation, Dany De Bontridder, 2017/02/04
- [Noalyss-commit] [noalyss] 96/151: Documentation and clean code, Dany De Bontridder, 2017/02/04
- [Noalyss-commit] [noalyss] 112/151: Improve Doxygen doc, Dany De Bontridder, 2017/02/04
- [Noalyss-commit] [noalyss] 73/151: Export en PDF d'operation,
Dany De Bontridder <=
- [Noalyss-commit] [noalyss] 143/151: Fix : when exporting files for creating a PDF in ANC , the filename can be a problem if he contains some char., Dany De Bontridder, 2017/02/04
- [Noalyss-commit] [noalyss] 116/151: Manage_Table , the js and php code are been splitted in 2 files , the ajax calls are nearly done , doxygen for these files is correct, Dany De Bontridder, 2017/02/04
- [Noalyss-commit] [noalyss] 101/151: Deprecated HtmlInput::make_object must be replace by json_encode, Dany De Bontridder, 2017/02/04
- [Noalyss-commit] [noalyss] 99/151: Improve Sorttable, Dany De Bontridder, 2017/02/04
- [Noalyss-commit] [noalyss] 110/151: Add property in Manage_Table VISIBLE UPDATABLE, Dany De Bontridder, 2017/02/04
- [Noalyss-commit] [noalyss] 125/151: Test ManageTable ; fix parseXML function, Dany De Bontridder, 2017/02/04
- [Noalyss-commit] [noalyss] 144/151: Merge branch 'master' of ns3:/srv/git/noalyss, Dany De Bontridder, 2017/02/04
- [Noalyss-commit] [noalyss] 09/151: Experiment less, Dany De Bontridder, 2017/02/04
- [Noalyss-commit] [noalyss] 123/151: Test ManageTable ; fix parseXML function, Dany De Bontridder, 2017/02/04
- [Noalyss-commit] [noalyss] 126/151: Correct js : this of the object is not callable from a nested function, Dany De Bontridder, 2017/02/04