From 7236e2828940fc13b4bd9faf1a7ba926b29ccaaa Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 30 Apr 2010 18:39:21 +0000 Subject: [PATCH] Fix: DDL changes must be on install, upgrade or module activation. --- htdocs/admin/produit.php | 77 +++++++++------------------------------- 1 file changed, 17 insertions(+), 60 deletions(-) diff --git a/htdocs/admin/produit.php b/htdocs/admin/produit.php index d656ba42144..5efb0fe5a8d 100644 --- a/htdocs/admin/produit.php +++ b/htdocs/admin/produit.php @@ -50,55 +50,12 @@ else if ($_POST["action"] == 'multiprix_num') } if ($_POST["action"] == 'multiprix') { - $res=$db->DDLDescTable(MAIN_DB_PREFIX."societe","price_level"); - if(! $db->fetch_row($res)) - { - $field_desc = array('type'=>'TINYINT','value'=>'4','default'=>'1'); - if ($_POST["activate_multiprix"]) - { - // on ajoute le champ price_level dans la table societe - if ($db->DDLAddField(MAIN_DB_PREFIX."societe","price_level",$field_desc) < 0) - { - dol_print_error($db); - exit; - } - } - dolibarr_set_const($db, "PRODUIT_MULTIPRICES", $_POST["activate_multiprix"],'chaine',0,'',$conf->entity); - dolibarr_set_const($db, "PRODUIT_MULTIPRICES_LIMIT", "5",'chaine',0,'',$conf->entity); - } - else - { - dol_syslog("Table definition for ".MAIN_DB_PREFIX."societe already ok"); - dolibarr_set_const($db, "PRODUIT_MULTIPRICES", $_POST["activate_multiprix"],'chaine',0,'',$conf->entity); - dolibarr_set_const($db, "PRODUIT_MULTIPRICES_LIMIT", "5",'chaine',0,'',$conf->entity); - } + dolibarr_set_const($db, "PRODUIT_MULTIPRICES", $_POST["activate_multiprix"],'chaine',0,'',$conf->entity); + dolibarr_set_const($db, "PRODUIT_MULTIPRICES_LIMIT", "5",'chaine',0,'',$conf->entity); } else if ($_POST["action"] == 'sousproduits') { - $res=$db->DDLDescTable(MAIN_DB_PREFIX."product_association"); - if(! $db->fetch_row($res)) - { - $table = MAIN_DB_PREFIX."product_association"; - $fields['fk_product_pere'] = array('type'=>'int','value'=>'11','null'=> 'not null','default'=> '0'); - $fields['fk_product_fils'] = array('type'=>'int','value'=>'11','null'=> 'not null','default'=> '0'); - $fields['qty'] = array('type'=>'double','default'=> 'null'); - $keys['idx_product_association_fk_product_pere'] = "fk_product_pere" ; - $keys['idx_product_association_fk_product_fils'] = "fk_product_fils" ; - if ($db->DDLCreateTable($table,$fields,"","InnoDB","","",$keys) < 0) - { - dol_print_error($db); - exit; - } - else - { - dolibarr_set_const($db, "PRODUIT_SOUSPRODUITS", $_POST["activate_sousproduits"],'chaine',0,'',$conf->entity); - } - } - else - { - dol_syslog("Table definition already ok"); - dolibarr_set_const($db, "PRODUIT_SOUSPRODUITS", $_POST["activate_sousproduits"],'chaine',0,'',$conf->entity); - } + dolibarr_set_const($db, "PRODUIT_SOUSPRODUITS", $_POST["activate_sousproduits"],'chaine',0,'',$conf->entity); } else if ($_POST["action"] == 'viewProdDescInForm') { @@ -279,41 +236,41 @@ if ($conf->global->PRODUCT_CANVAS_ABILITY) // Add canvas feature $dir = DOL_DOCUMENT_ROOT . "/product/canvas/"; $var = false; - + print ''; print ''.$langs->trans("ProductSpecial").''."\n"; print ''.$langs->trans("Value").''."\n"; print ' '."\n"; - + if (is_dir($dir)) { require_once(DOL_DOCUMENT_ROOT . "/product/class/product.class.php"); - + $handle=opendir($dir); - + while (($file = readdir($handle))!==false) { if (file_exists($dir.$file.'/product.'.$file.'.class.php')) { $classfile = $dir.$file.'/product.'.$file.'.class.php'; $classname = 'Product'.ucfirst($file); - + require_once($classfile); $object = new $classname(); - + $module = $object->module; - + if ($conf->$module->enabled) { $var=!$var; print ""; - + print $object->description; - + print ''; - + $const = "PRODUCT_SPECIAL_".strtoupper($file); - + if ($conf->global->$const) { print img_tick(); @@ -325,19 +282,19 @@ if ($conf->global->PRODUCT_CANVAS_ABILITY) print ' '; print ''.$langs->trans("Activate").''; } - + print ''; } } } - + closedir($handle); } else { print "ERROR: $dir is not a directory !\n"; } - + print ''; }