Fix: Better error management. Use functions of drivers to edit tables.
This commit is contained in:
parent
01c102f66a
commit
4f13506668
@ -77,51 +77,41 @@ class AdherentOptions
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Add a new attribute
|
* Add a new optionnal attribute
|
||||||
* \param attrname nom de l'atribut
|
* @param attrname code of attribute
|
||||||
* \param type type de l'attribut
|
* @param type Type of attribute ('int', 'text', 'varchar', 'date', 'datehour')
|
||||||
* \param length longuer de l'attribut
|
* @param length Size/length of attribute
|
||||||
* \remarks Ceci correspond a un alter de la table et pas a un insert
|
|
||||||
*/
|
*/
|
||||||
function create($attrname,$type='varchar',$length=255) {
|
function create($attrname,$type='varchar',$length=255) {
|
||||||
|
|
||||||
if (isset($attrname) && $attrname != '' && preg_match("/^\w[a-zA-Z0-9-_]*$/",$attrname))
|
if (isset($attrname) && $attrname != '' && preg_match("/^\w[a-zA-Z0-9-_]*$/",$attrname))
|
||||||
{
|
{
|
||||||
$sql = "ALTER TABLE ".MAIN_DB_PREFIX."adherent_options ";
|
$field_desc = array('type'=>$type, 'value'=>$length);
|
||||||
switch ($type){
|
$result=$this->db->DDLAddField(MAIN_DB_PREFIX.'adherent_options', $attrname, $field_desc);
|
||||||
case 'varchar' :
|
if ($result > 0)
|
||||||
case 'interger' :
|
|
||||||
$sql .= " ADD $attrname $type($length)";
|
|
||||||
break;
|
|
||||||
case 'text' :
|
|
||||||
case 'date' :
|
|
||||||
case 'datetime' :
|
|
||||||
$sql .= " ADD $attrname $type";
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
$sql .= " ADD $attrname $type";
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
dol_syslog("AdherentOptions::create sql=".$sql, LOG_DEBUG);
|
|
||||||
if ($this->db->query($sql))
|
|
||||||
{
|
{
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
dol_print_error($this->db);
|
$this->error=$this->db->lasterror();
|
||||||
return 0;
|
return -1;
|
||||||
}
|
}
|
||||||
}else{
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Fonction qui cree un label
|
* Add description of a new optionnal attribute
|
||||||
* \param attrname nom de l'atribut
|
* @param attrname code of attribute
|
||||||
* \param label nom du label
|
* @param label label of attribute
|
||||||
|
* @param type Type of attribute ('int', 'text', 'varchar', 'date', 'datehour')
|
||||||
|
* @param pos Position of attribute
|
||||||
|
* @param size Size/length of attribute
|
||||||
|
* @return int <=0 if KO, >0 if OK
|
||||||
*/
|
*/
|
||||||
function create_label($attrname,$label='',$type='',$pos=0,$size=0)
|
function create_label($attrname,$label='',$type='',$pos=0,$size=0)
|
||||||
{
|
{
|
||||||
@ -156,9 +146,9 @@ class AdherentOptions
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fonction qui supprime un attribut
|
* Delete an optionnal attribute
|
||||||
* @param $attrname nom de l'atribut
|
* @param attrname Code of attribute to delete
|
||||||
* TODO pouvoir gerer les entités
|
* TODO This does not work with multicompany module
|
||||||
*/
|
*/
|
||||||
function delete($attrname)
|
function delete($attrname)
|
||||||
{
|
{
|
||||||
@ -183,8 +173,8 @@ class AdherentOptions
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Fonction qui supprime un label
|
* Delete description of an optionnal attribute
|
||||||
* \param attrname nom du label
|
* @param attrname Code of attribute to delete
|
||||||
*/
|
*/
|
||||||
function delete_label($attrname)
|
function delete_label($attrname)
|
||||||
{
|
{
|
||||||
@ -215,43 +205,27 @@ class AdherentOptions
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Fonction qui modifie le type d'un attribut optionnel
|
* Modify type of a personalized attribute
|
||||||
* \param attrname nom de l'atribut
|
* @param attrname name of attribute
|
||||||
* \param type type de l'attribut
|
* @param type type of attribute
|
||||||
* \param length longuer de l'attribut
|
* @param length length of attribute
|
||||||
* \return int >0 if OK, <=0 if error
|
* @return int >0 if OK, <=0 if KO
|
||||||
* \TODO pouvoir gerer les entités
|
* TODO This does not works with mutlicompany module
|
||||||
*/
|
*/
|
||||||
function update($attrname,$type='varchar',$length=255)
|
function update($attrname,$type='varchar',$length=255)
|
||||||
{
|
{
|
||||||
if (isset($attrname) && $attrname != '' && preg_match("/^\w[a-zA-Z0-9-_]*$/",$attrname))
|
if (isset($attrname) && $attrname != '' && preg_match("/^\w[a-zA-Z0-9-_]*$/",$attrname))
|
||||||
{
|
{
|
||||||
$sql = "ALTER TABLE ".MAIN_DB_PREFIX."adherent_options";
|
$field_desc = array('type'=>$type, 'value'=>$length);
|
||||||
switch ($type){
|
$result=$this->db->DDLUpdateField(MAIN_DB_PREFIX.'adherent_options', $attrname, $field_desc);
|
||||||
case 'varchar' :
|
if ($result > 0)
|
||||||
case 'interger' :
|
|
||||||
$sql .= " MODIFY COLUMN $attrname $type($length)";
|
|
||||||
break;
|
|
||||||
case 'text' :
|
|
||||||
case 'date' :
|
|
||||||
case 'datetime' :
|
|
||||||
$sql .= " MODIFY COLUMN $attrname $type";
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
$sql .= " MODIFY COLUMN $attrname $type";
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
//$sql .= "MODIFY COLUMN $attrname $type($length)";
|
|
||||||
|
|
||||||
dol_syslog("AdherentOptions::update sql=".$sql);
|
|
||||||
if ( $this->db->query($sql) )
|
|
||||||
{
|
{
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
print dol_print_error($this->db);
|
$this->error=$this->db->lasterror();
|
||||||
return 0;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -262,11 +236,11 @@ class AdherentOptions
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Modify an optionnal attribute
|
* Modify description of an optionnal attribute
|
||||||
* \param attrname nom de l'atribut
|
* @param attrname nom de l'atribut
|
||||||
* \param label nom du label
|
* @param label nom du label
|
||||||
* \param type type
|
* @param type type
|
||||||
* \param size size
|
* @param size size
|
||||||
*/
|
*/
|
||||||
function update_label($attrname,$label,$type,$size)
|
function update_label($attrname,$label,$type,$size)
|
||||||
{
|
{
|
||||||
@ -284,7 +258,7 @@ class AdherentOptions
|
|||||||
$resql1=$this->db->query($sql_del);
|
$resql1=$this->db->query($sql_del);
|
||||||
|
|
||||||
$sql = "INSERT INTO ".MAIN_DB_PREFIX."adherent_options_label(";
|
$sql = "INSERT INTO ".MAIN_DB_PREFIX."adherent_options_label(";
|
||||||
$sql.= " name,";
|
$sql.= " name,"; // This is code
|
||||||
$sql.= " entity,";
|
$sql.= " entity,";
|
||||||
$sql.= " label,";
|
$sql.= " label,";
|
||||||
$sql.= " type,";
|
$sql.= " type,";
|
||||||
|
|||||||
@ -920,7 +920,7 @@ class DoliDb
|
|||||||
*/
|
*/
|
||||||
function DDLUpdateField($table,$field_name,$field_desc)
|
function DDLUpdateField($table,$field_name,$field_desc)
|
||||||
{
|
{
|
||||||
$sql = "ALTER TABLE ".MAIN_DB_PREFIX.$table;
|
$sql = "ALTER TABLE ".$table;
|
||||||
$sql .= " MODIFY COLUMN ".$field_name." ".$field_desc['type'];
|
$sql .= " MODIFY COLUMN ".$field_name." ".$field_desc['type'];
|
||||||
if ($field_desc['type'] == 'int' || $field_desc['type'] == 'varchar') $sql.="(".$field_desc['value'].")";
|
if ($field_desc['type'] == 'int' || $field_desc['type'] == 'varchar') $sql.="(".$field_desc['value'].")";
|
||||||
|
|
||||||
|
|||||||
@ -983,7 +983,7 @@ class DoliDb
|
|||||||
*/
|
*/
|
||||||
function DDLUpdateField($table,$field_name,$field_desc)
|
function DDLUpdateField($table,$field_name,$field_desc)
|
||||||
{
|
{
|
||||||
$sql = "ALTER TABLE ".MAIN_DB_PREFIX.$table;
|
$sql = "ALTER TABLE ".$table;
|
||||||
$sql .= " MODIFY COLUMN ".$field_name." ".$field_desc['type'];
|
$sql .= " MODIFY COLUMN ".$field_name." ".$field_desc['type'];
|
||||||
if ($field_desc['type'] == 'int' || $field_desc['type'] == 'varchar') $sql.="(".$field_desc['value'].")";
|
if ($field_desc['type'] == 'int' || $field_desc['type'] == 'varchar') $sql.="(".$field_desc['value'].")";
|
||||||
|
|
||||||
|
|||||||
@ -995,7 +995,7 @@ class DoliDb
|
|||||||
*/
|
*/
|
||||||
function DDLUpdateField($table,$field_name,$field_desc)
|
function DDLUpdateField($table,$field_name,$field_desc)
|
||||||
{
|
{
|
||||||
$sql = "ALTER TABLE ".MAIN_DB_PREFIX.$table;
|
$sql = "ALTER TABLE ".$table;
|
||||||
$sql .= " MODIFY COLUMN ".$field_name." ".$field_desc['type'];
|
$sql .= " MODIFY COLUMN ".$field_name." ".$field_desc['type'];
|
||||||
if ($field_desc['type'] == 'int' || $field_desc['type'] == 'varchar') $sql.="(".$field_desc['value'].")";
|
if ($field_desc['type'] == 'int' || $field_desc['type'] == 'varchar') $sql.="(".$field_desc['value'].")";
|
||||||
|
|
||||||
|
|||||||
@ -1125,7 +1125,7 @@ class DoliDb
|
|||||||
*/
|
*/
|
||||||
function DDLUpdateField($table,$field_name,$field_desc)
|
function DDLUpdateField($table,$field_name,$field_desc)
|
||||||
{
|
{
|
||||||
$sql = "ALTER TABLE ".MAIN_DB_PREFIX.$table;
|
$sql = "ALTER TABLE ".$table;
|
||||||
$sql .= " MODIFY COLUMN ".$field_name." ".$field_desc['type'];
|
$sql .= " MODIFY COLUMN ".$field_name." ".$field_desc['type'];
|
||||||
if ($field_desc['type'] == 'int' || $field_desc['type'] == 'varchar') $sql.="(".$field_desc['value'].")";
|
if ($field_desc['type'] == 'int' || $field_desc['type'] == 'varchar') $sql.="(".$field_desc['value'].")";
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user