[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Noalyss-commit] [noalyss] 165/219: Task #1476 : add an new column to TM
From: |
Dany De Bontridder |
Subject: |
[Noalyss-commit] [noalyss] 165/219: Task #1476 : add an new column to TMP_PCMN Adapt the add and update for CFGPCMN Code cleaning : rewrite of Acc_Account + PhpUnit test |
Date: |
Mon, 18 Dec 2017 13:22:57 -0500 (EST) |
sparkyx pushed a commit to branch master
in repository noalyss.
commit 19633eb0bf043255cc53635fb3a964f6d2e72e06
Author: Dany De Bontridder <address@hidden>
Date: Sun Nov 26 13:47:48 2017 +0100
Task #1476 : add an new column to TMP_PCMN
Adapt the add and update for CFGPCMN
Code cleaning : rewrite of Acc_Account + PhpUnit test
---
include/class/acc_account.class.php | 218 +++++++---------------
include/class/acc_plan_mtable.class.php | 4 +-
include/database/acc_plan_sql.class.php | 11 +-
include/database/tmp_pcmn_sql.class.php | 8 +-
sql/upgrade.sql | 8 +
unit-test/include/class/acc_account.classTest.php | 148 +++++++++++++++
6 files changed, 241 insertions(+), 156 deletions(-)
diff --git a/include/class/acc_account.class.php
b/include/class/acc_account.class.php
index 798333a..b3b8057 100644
--- a/include/class/acc_account.class.php
+++ b/include/class/acc_account.class.php
@@ -26,18 +26,12 @@
require_once NOALYSS_INCLUDE.'/lib/iselect.class.php';
require_once NOALYSS_INCLUDE.'/lib/database.class.php';
require_once NOALYSS_INCLUDE.'/class/dossier.class.php';
+require_once NOALYSS_INCLUDE.'/database/tmp_pcmn_sql.class.php';
class Acc_Account
{
var $db; /*!< $db database connection */
- static private $variable = array("value"=>'pcm_val',
- 'type'=>'pcm_type',
- 'parent'=>'pcm_val_parent',
- 'libelle'=>'pcm_lib');
- private $pcm_val;
- private $pcm_type;
- private $pcm_parent;
- private $pcm_lib;
+ private $data_sql ;//< Tmp_Pcmn_SQL
static public $type=array(
array('label'=>'Actif','value'=>'ACT'),
array('label'=>'Passif','value'=>'PAS'),
@@ -47,35 +41,32 @@ class Acc_Account
array('label'=>'Produit
Inverse','value'=>'PROINV'),
array('label'=>'Charge','value'=>'CHA'),
array('label'=>'Charge Inverse','value'=>'CHAINV'),
- array('label'=>'Non defini','value'=>'CON')
+ array('label'=>'Contexte','value'=>'CON')
);
-
- function __construct ($p_cn,$p_id=0)
+ /**
+ *
+ * @param type $p_cn Database connection
+ * @param type $pcm_val Accounting tmp_pcmn.pcm_val
+ */
+ function __construct (Database $p_cn,$pcm_val="")
{
$this->db=$p_cn;
- $this->pcm_val=$p_id;
+ $id=-1;
+ if ( trim($pcm_val) != "" ) {
+ $id=$p_cn->get_value("select id from tmp_pcmn where
pcm_val=$1",[$pcm_val]);
+ }
+ if ( $id == "") { $id=-1;}
+ $this->data_sql=new Tmp_Pcmn_SQL($p_cn, $id);
+ $this->data_sql->pcm_val=$pcm_val;
}
public function get_parameter($p_string)
{
- if ( array_key_exists($p_string,self::$variable) )
- {
- $idx=self::$variable[$p_string];
- return $this->$idx;
- }
- else
- throw new Exception (__FILE__.":".__LINE__._('Erreur attribut
inexistant'));
+ return $this->data_sql->getp($p_string);
}
function set_parameter($p_string,$p_value)
{
- if ( array_key_exists($p_string,self::$variable) )
- {
- $idx=self::$variable[$p_string];
- if ($this->check($idx,$p_value) == true )
$this->$idx=$p_value;
- }
- else
- throw new Exception (__FILE__.":".__LINE__._('Erreur attribut
inexistant'));
-
+ return $this->data_sql->setp($p_string,$p_value);
}
/*!\brief Return the name of a account
@@ -84,60 +75,19 @@ class Acc_Account
*/
function get_lib()
{
- $ret=$this->db->exec_sql(
- "select pcm_lib from tmp_pcmn where
- pcm_val=$1",array($this->pcm_val));
- if ( Database::num_row($ret) != 0)
+ $ret=$this->data_sql->getp('pcm_lib');
+ if ( $ret !="")
{
- $r=Database::fetch_array($ret);
- $this->pcm_lib=$r['pcm_lib'];
+ return $ret;
}
else
{
- $this->pcm_lib=_("Poste inconnu");
+ return _("Poste inconnu");
}
- return $this->pcm_lib;
}
- /*!\brief Check that the value are valid
- *\return true if all value are valid otherwise false
- */
- function check ($p_member='',$p_value='')
- {
- // if there is no argument we check all the member
- if ($p_member == '' && $p_value== '' )
- {
- foreach (self::$variable as $l=>$k)
- {
- $this->check($k,$this->$k);
- }
- }
- else
- {
- // otherwise we check only the value
- if ( strcmp ($p_member,'pcm_val') == 0 )
- {
- return true;
- }
- else if ( strcmp ($p_member,'pcm_val_parent') == 0 )
- {
- return true;
- }
- else if ( strcmp ($p_member,'pcm_lib') == 0 )
- {
- return true;
- }
- else if ( strcmp ($p_member,'pcm_type') == 0 )
- {
- foreach (self::$type as $l=>$k)
- {
- if ( strcmp ($k['value'],$p_value) == 0 ) return true;
-
- }
- throw new Exception(_('type de compte incorrect ').$p_value);
- }
- throw new Exception (_('Donnee member inconnue ').$p_member);
- }
-
+ function searchValue($p_value) {
+
+
}
/*!\brief Get all the value for this object from the database
* the data member are set
@@ -145,88 +95,56 @@ class Acc_Account
*/
function load()
{
- $ret=$this->db->exec_sql("select pcm_lib,pcm_val_parent,pcm_type from
- tmp_pcmn where
pcm_val=$1",array($this->pcm_val));
- $r=Database::fetch_all($ret);
-
- if ( ! $r ) return false;
- $this->pcm_lib=$r[0]['pcm_lib'];
- $this->pcm_val_parent=$r[0]['pcm_val_parent'];
- $this->pcm_type=$r[0]['pcm_type'];
- return true;
-
- }
- function form($p_table=true)
- {
- $wType=new ISelect();
- $wType->name='p_type';
- $wType->value=self::$type;
-
- if ( ! $p_table )
- {
- $ret=' <TR>
- <TD>
- <INPUT TYPE="TEXT" NAME="p_val" SIZE=7>
- </TD>
- <TD>
- <INPUT TYPE="TEXT" NAME="p_lib" size=50>
- </TD>
- <TD>
- <INPUT TYPE="TEXT" NAME="p_parent" size=5>
- </TD>
- <TD>';
-
- $ret.=$wType->input().'</TD>';
- return $ret;
- }
- else
- {
- $ret='<TABLE><TR>';
- $ret.=sprintf ('<TD>'._('Numéro de classe').' </TD><TD><INPUT
TYPE="TEXT" name="p_val" value="%s"></TD>',$this->pcm_val);
- $ret.="</TR><TR>";
- $ret.=sprintf('<TD>'._('Libellé').' </TD><TD><INPUT TYPE="TEXT"
size="70" NAME="p_lib" value="%s"></TD>',h($this->pcm_lib));
- $ret.= "</TR><TR>";
- $ret.=sprintf ('<TD>'._('Classe Parent').'</TD><TD><INPUT
TYPE="TEXT" name="p_parent" value="%s"></TD>',$this->pcm_val_parent);
- $ret.='</tr><tr>';
- $wType->selected=$this->pcm_type;
- $ret.="<td> Type de poste </td>";
- $ret.= '<td>'.$wType->input().'</td>';
- $ret.="</TR> </TABLE>";
- $ret.=dossier::hidden();
-
- return $ret;
- }
+ $this->data_sql->load();
}
+
function count($p_value)
{
$sql="select count(*) from tmp_pcmn where pcm_val=$1";
return $this->db->get_value($sql,array($p_value));
}
- /*!\brief for developper only during test */
- static function test_me()
- {
-
- }
/**
- address@hidden update an accounting, but you can update pcm_val only if
- * this accounting has never been used before */
- function update($p_old)
- {
- if (strcmp(trim($p_old), trim($this->pcm_val)) !=0 )
+ * Check before inserting or updating
+ */
+ function verify() {
+ // check for Duplicate key, parent ... see Acc_Plan_MTable
+ $count=$this->data_sql->count(" where pcm_val =$1 and id <> $2",
+ [$this->data_sql->pcm_val,$this->data_sql->id]);
+ if ( $count > 0)
+ throw new Exception (_("Poste en double"),EXC_DUPLICATE);
+ if (trim($this->data_sql->pcm_lib)=="")
+ throw new Exception (_("Libellé vide"),EXC_PARAM_VALUE);
+ if ( $this->data_sql->count(" where pcm_val = $1 and pcm_val <> $2",
+ [$this->data_sql->pcm_val_parent,$this->data_sql->pcm_val])
== 0)
+ throw new Exception (_("Parent n'existe pas"),EXC_PARAM_VALUE);
+ if ( $this->data_sql->pcm_direct_use != 'N' &&
$this->data_sql->pcm_direct_use != 'Y')
+ throw new Exception (_("Paramètre incorrect"),EXC_PARAM_VALUE);
+ if (
trim($this->data_sql->pcm_val)==""||trim($this->data_sql->pcm_val_parent)=="")
+ throw new Exception (_("Paramètre incorrect"),EXC_PARAM_VALUE);
+
+ }
+ function update() {
+ // check for Duplicate key, parent ... see Acc_Plan_MTable
+ $this->verify();
+ $this->data_sql->update();
+ }
+ function insert() {
+ // check for Duplicate key, parent ... see Acc_Plan_MTable
+ $this->verify();
+ $this->data_sql->insert();
+ }
+ function delete() {
+ // if already use cannot be deleted
+ if ( $this->data_sql->count("where pcm_val in (select j_poste from
jrnx where j_poste=$1) or pcm_val_parent=$1",
+ [$this->data_sql->pcm_val]) > 0)
{
- $count=$this->db->get_value('select count(*) from jrnx where
j_poste=$1',
- array($p_old)
- );
- if ($count != 0)
- throw new Exception(_('Impossible de changer la valeur: poste
déjà utilisé'));
+ throw new Exception(_("Poste utilisé : effacement
interdit"),EXC_PARAM_VALUE);
}
- $this->pcm_lib=mb_substr($this->pcm_lib,0,150);
- $this->check();
- $sql="update tmp_pcmn set pcm_val=$1,
pcm_lib=$2,pcm_val_parent=$3,pcm_type=$4 where pcm_val=$5";
- $Ret=$this->db->exec_sql($sql,array($this->pcm_val,
- $this->pcm_lib,
- $this->pcm_val_parent,
- $this->pcm_type,
- $p_old));
+ $this->data_sql->delete();
+
+ }
+ function save() {
+ $this->verify();
+ $this->data_sql->save();
}
-}
+ }
diff --git a/include/class/acc_plan_mtable.class.php
b/include/class/acc_plan_mtable.class.php
index fae6345..43fcdf3 100644
--- a/include/class/acc_plan_mtable.class.php
+++ b/include/class/acc_plan_mtable.class.php
@@ -41,6 +41,7 @@ class Acc_Plan_MTable extends Manage_Table_SQL
$this->set_col_label("pcm_lib", _("Libellé"));
$this->set_col_label("parent_accounting", _("Dépend"));
$this->set_col_label("fiche_qcode", _("Fiche"));
+ $this->set_col_label("pcm_direct_use", _("Utilisation directe"));
//--------------------------------------------------------------
$this->set_property_visible("id", FALSE);
$this->set_property_updatable("fiche_qcode", FALSE);
@@ -55,7 +56,8 @@ class Acc_Plan_MTable extends Manage_Table_SQL
["label"=>_("Produit inversé"),"value"=>"PROINV"],
["label"=>_("Contexte"),"value"=>"CON"]
]);
-
$this->a_order=["pcm_val","pcm_lib","parent_accounting","pcm_type","fiche_qcode"];
+ $this->set_col_type("pcm_direct_use",
"select",array(["label"=>_("Oui"),"value"=>"Y"],["label"=>"Non","value"=>"N"]));
+
$this->a_order=["pcm_val","pcm_lib","parent_accounting","pcm_direct_use","pcm_type","fiche_qcode"];
$this->set_icon_mod("first");
}
/**
diff --git a/include/database/acc_plan_sql.class.php
b/include/database/acc_plan_sql.class.php
index ddf8dc5..213b54a 100644
--- a/include/database/acc_plan_sql.class.php
+++ b/include/database/acc_plan_sql.class.php
@@ -42,7 +42,8 @@ class Acc_Plan_SQL extends Data_SQL
"parent_accounting"=>"parent_accounting",
"pcm_lib"=>"pcm_lib",
"pcm_type"=>"pcm_type",
- "fiche_qcode"=>"fiche_qcode"
+ "fiche_qcode"=>"fiche_qcode",
+ "pcm_direct_use"=>"pcm_direct_use"
);
$this->type = array(
@@ -51,7 +52,8 @@ class Acc_Plan_SQL extends Data_SQL
"parent_accounting" => "text",
"pcm_lib" => "text",
"pcm_type" => "text",
- "fiche_qcode"=>"string"
+ "fiche_qcode"=>"string",
+ "pcm_direct_use"=>"text"
);
$this->default = array(
@@ -64,6 +66,7 @@ class Acc_Plan_SQL extends Data_SQL
pcm_val_parent as parent_accounting,
pcm_type,
id,
+ pcm_direct_use,
(select string_agg(m.fiche_qcode,' , ')
from (select a.ad_value as fiche_qcode
from fiche_detail as a
@@ -108,6 +111,7 @@ class Acc_Plan_SQL extends Data_SQL
$obj->set("pcm_lib",$this->pcm_lib);
$obj->set("pcm_type",$this->pcm_type);
$obj->set("pcm_val_parent",$this->parent_accounting);
+ $obj->set("pcm_direct_use",$this->pcm_direct_use);
$obj->insert();
$this->id=$obj->id;
}
@@ -158,6 +162,8 @@ class Acc_Plan_SQL extends Data_SQL
$obj->set("pcm_lib",$this->pcm_lib);
$obj->set("pcm_type",$this->pcm_type);
$obj->set("pcm_val_parent",$this->parent_accounting);
+ $obj->set("pcm_direct_use",$this->pcm_direct_use);
+
$obj->update();
}
public function get_limit_fiche_qcode()
@@ -169,5 +175,6 @@ class Acc_Plan_SQL extends Data_SQL
{
$this->limit_fiche_qcode=$limit_fiche_qcode;
}
+
}
\ No newline at end of file
diff --git a/include/database/tmp_pcmn_sql.class.php
b/include/database/tmp_pcmn_sql.class.php
index 183886d..ed77c7f 100644
--- a/include/database/tmp_pcmn_sql.class.php
+++ b/include/database/tmp_pcmn_sql.class.php
@@ -31,7 +31,7 @@ class Tmp_Pcmn_SQL extends Noalyss_SQL
/**
* @brief manage table key_distribution_detail
*/
- function __construct(&$p_cn, $p_id=-1)
+ function __construct($p_cn, $p_id=-1)
{
$this->table="public.tmp_pcmn";
@@ -42,7 +42,8 @@ class Tmp_Pcmn_SQL extends Noalyss_SQL
"pcm_val"=>"pcm_val",
"pcm_type"=>"pcm_type",
"pcm_val_parent"=>"pcm_val_parent",
- "pcm_lib"=>"pcm_lib"
+ "pcm_lib"=>"pcm_lib",
+ "pcm_direct_use"=>"pcm_direct_use"
);
$this->type=array(
@@ -50,7 +51,8 @@ class Tmp_Pcmn_SQL extends Noalyss_SQL
"pcm_val"=>"text",
"pcm_type"=>"text",
"pcm_val_parent"=>"text",
- "pcm_lib"=>"text"
+ "pcm_lib"=>"text",
+ "pcm_direct_use"=>"text"
);
$this->default=array(
diff --git a/sql/upgrade.sql b/sql/upgrade.sql
index 5aeecfe..859f932 100644
--- a/sql/upgrade.sql
+++ b/sql/upgrade.sql
@@ -10,6 +10,14 @@ ALTER TABLE tmp_pcmn ALTER COLUMN id SET DEFAULT
nextval('tmp_pcmn_id_seq'::regc
ALTER TABLE tmp_pcmn ADD CONSTRAINT id_ux UNIQUE(id);
COMMENT ON COLUMN tmp_pcmn.id IS 'allow to identify the row, it is unique and
not null (pseudo pk)';
+-- set search_path to public,comptaproc;
+alter table tmp_pcmn add column pcm_direct_use varchar(1);
+COMMENT ON COLUMN tmp_pcmn.pcm_direct_use IS 'Value are N or Y , N cannot be
used directly , not even through a card';
+ALTER TABLE tmp_pcmn ALTER COLUMN pcm_direct_use SET DEFAULT 'Y';
+update tmp_pcmn set pcm_direct_use='Y';
+update tmp_pcmn set pcm_direct_use='N' where length(pcm_val) < 3 and not
exists (select j_poste from jrnx where j_poste=pcm_val);
+ALTER TABLE tmp_pcmn ALTER COLUMN pcm_direct_use SET NOT NULL;
+alter table tmp_pcmn add constraint pcm_direct_use_ck check (pcm_direct_use in
('Y','N'));
insert into bilan (b_name,b_file_template,b_file_form,b_type) values
('ASBL','document/fr_be/bnb-asbl.rtf','document/fr_be/bnb-asbl.form','RTF');
diff --git a/unit-test/include/class/acc_account.classTest.php
b/unit-test/include/class/acc_account.classTest.php
new file mode 100644
index 0000000..e4ea195
--- /dev/null
+++ b/unit-test/include/class/acc_account.classTest.php
@@ -0,0 +1,148 @@
+<?php
+
+/**
+ * Generated by PHPUnit_SkeletonGenerator on 2017-11-26 at 11:24:04.
+ */
+class Acc_AccountTest extends PHPUnit_Framework_TestCase
+{
+
+ /**
+ * @var Acc_Account
+ */
+ protected $object;
+
+ /**
+ * Sets up the fixture, for example, opens a network connection.
+ * This method is called before a test is executed.
+ */
+ protected function setUp()
+ {
+ global $g_connection, $g_parameter, $g_user;
+ $_REQUEST['gDossier']=DOSSIER;
+ $g_connection=new Database(DOSSIER);
+ $g_parameter=new Own($g_connection);
+ $g_user=new User($g_connection);
+ $cn=Dossier::connect();
+ $this->object=new Acc_Account($cn, '400');
+ }
+
+ /**
+ * Tears down the fixture, for example, closes a network connection.
+ * This method is called after a test is executed.
+ */
+ protected function tearDown()
+ {
+
+ }
+
+ /**
+ * @covers Acc_Account::get_parameter
+ */
+ public function testGet_parameter()
+ {
+
+ $this->assertEquals($this->object->get_parameter("pcm_lib"),
'Clients');
+ }
+
+ /**
+ * @covers Acc_Account::set_parameter
+ */
+ public function testSet_parameter()
+ {
+ $this->object->set_parameter("pcm_direct_use", "N");
+ }
+
+ /**
+ * @covers Acc_Account::get_lib
+ */
+ public function testGet_lib()
+ {
+ $this->assertEquals($this->object->get_lib(), 'Clients');
+ }
+
+ /**
+ * @covers Acc_Account::load
+ */
+ public function testLoad()
+ {
+ $this->object->load();
+ }
+
+ /**
+ * @covers Acc_Account::count
+ */
+ public function testCount()
+ {
+
+ $this->assertEquals($this->object->count("400"), 1);
+ }
+
+ /**
+ * @covers Acc_Account::verify
+ */
+ public function testVerify()
+ {
+ $this->object->verify();
+ }
+
+ /**
+ * @covers Acc_Account::update
+ */
+ public function testUpdate()
+ {
+ $this->object->update();
+ }
+
+ /**
+ * @covers Acc_Account::insert
+ */
+ public function testInsert()
+ {
+ $cn=Dossier::connect();
+ $new=new Acc_Account($cn);
+ $new->set_parameter("pcm_val", '400A');
+ $new->set_parameter("pcm_val_parent", "400");
+ $new->set_parameter("pcm_direct_use", "Y");
+ // expect libelle vide
+ try
+ {
+ // exception must be thrown from insert
+ $new->insert();
+ $this->assertFalse(true);
+ }
+ catch (Exception $e)
+ {
+ $this->assertEquals($e->getCode(), EXC_PARAM_VALUE);
+ }
+
+ $new->set_parameter("pcm_lib", "Insertion test");
+ $new->insert();
+ $new->delete();
+ }
+
+ /**
+ * @covers Acc_Account::delete
+ */
+ public function testDelete()
+ {
+ try
+ {
+ $this->object->delete();
+ $this->assertFalse(true);
+ }
+ catch (Exception $e)
+ {
+ echo $e->getTraceAsString();
+ $this->assertEquals($e->getCode(), EXC_PARAM_VALUE);
+ }
+ }
+
+ /**
+ * @covers Acc_Account::save
+ */
+ public function testSave()
+ {
+ $this->object->save();
+ }
+
+}
- [Noalyss-commit] [noalyss] 208/219: Fix search for reconcile, (continued)
- [Noalyss-commit] [noalyss] 208/219: Fix search for reconcile, Dany De Bontridder, 2017/12/18
- [Noalyss-commit] [noalyss] 157/219: Fix issue with open_basedir, sometime set in the server config, Dany De Bontridder, 2017/12/18
- [Noalyss-commit] [noalyss] 196/219: Task #001381 : favori de filtre , table pour sauvegarder, Dany De Bontridder, 2017/12/18
- [Noalyss-commit] [noalyss] 109/219: Add button to pin the box, Dany De Bontridder, 2017/12/18
- [Noalyss-commit] [noalyss] 134/219: #0001414: LETTRAGE - montants différents non indiqués Apparation d'une bulle d'info avec la différence, Dany De Bontridder, 2017/12/18
- [Noalyss-commit] [noalyss] 147/219: ANC : ANC_TABLE replace PGPLSQL procedure by Php functions : Anc_Table:create_temp_account Anc_Table:create_temp_card, Dany De Bontridder, 2017/12/18
- [Noalyss-commit] [noalyss] 20/219: Add new theme and modify tmp_pcmn, Dany De Bontridder, 2017/12/18
- [Noalyss-commit] [noalyss] 180/219: Fix ID problem, Dany De Bontridder, 2017/12/18
- [Noalyss-commit] [noalyss] 89/219: Cosmetic : cache certaines colonnes pour petit écran, Dany De Bontridder, 2017/12/18
- [Noalyss-commit] [noalyss] 22/219: Esthetic change icon edit, Dany De Bontridder, 2017/12/18
- [Noalyss-commit] [noalyss] 165/219: Task #1476 : add an new column to TMP_PCMN Adapt the add and update for CFGPCMN Code cleaning : rewrite of Acc_Account + PhpUnit test,
Dany De Bontridder <=
- [Noalyss-commit] [noalyss] 177/219: Repository add unique constraint for jnt_use_doc, Dany De Bontridder, 2017/12/18
- [Noalyss-commit] [noalyss] 159/219: INSTALL : check PHP version minimum 5.5, Dany De Bontridder, 2017/12/18
- [Noalyss-commit] [noalyss] 151/219: HttpInput: Exception if the type is not known, correct the use of numeric instead of number, Dany De Bontridder, 2017/12/18
- [Noalyss-commit] [noalyss] 218/219: Task #1506 : improve error message when adding a card, Dany De Bontridder, 2017/12/18
- [Noalyss-commit] [noalyss] 214/219: Esthetic CSS : add cursor pointer, Dany De Bontridder, 2017/12/18
- [Noalyss-commit] [noalyss] 210/219: Task #1381 Favori de filtre dans recherche, Dany De Bontridder, 2017/12/18
- [Noalyss-commit] [noalyss] 205/219: Accounting : error message if accounting is too large # Conflicts: # html/js/card.js, Dany De Bontridder, 2017/12/18
- [Noalyss-commit] [noalyss] 194/219: Select_box : fix position, Dany De Bontridder, 2017/12/18
- [Noalyss-commit] [noalyss] 176/219: Change autocomplete and adapt Icard setWidth is false + indicator icon for ICard, Dany De Bontridder, 2017/12/18
- [Noalyss-commit] [noalyss] 202/219: ManageTable.js : change Manage.delete by Manage.remove, because delete is a reserved keyword, Dany De Bontridder, 2017/12/18