FIX adapt develop

This commit is contained in:
atm-quentin 2018-10-23 14:31:58 +02:00
parent 8442b405b2
commit 96d0bb8f2e
12 changed files with 125 additions and 338 deletions

View File

@ -28,7 +28,7 @@ require '../main.inc.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
// Load translation files required by the page
$langs->loadLangs(array("admin","workflow","propal","workflow","orders","supplier_proposals"));
$langs->loadLangs(array("admin","workflow","propal","workflow","orders","supplier_proposals","receptions"));
if (! $user->admin) accessforbidden();
@ -87,7 +87,7 @@ $workflowcodes=array(
// Automatic classification supplier order
'WORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER'=>array('family'=>'classify_supplier_order', 'position'=>62, 'enabled'=>'! empty($conf->fournisseur->enabled)', 'picto'=>'order','warning'=>''),
//Automatic classification reception
'WORKFLOW_BILL_ON_RECEPTION'=>array('family'=>'classify', 'position'=>30, 'enabled'=>'! empty($conf->reception->enabled) && ! empty($conf->fournisseur->enabled)', 'picto'=>'bill'),
'WORKFLOW_BILL_ON_RECEPTION'=>array('family'=>'classify_reception', 'position'=>30, 'enabled'=>'! empty($conf->reception->enabled) && ! empty($conf->fournisseur->enabled)', 'picto'=>'bill'),
);
if (! empty($conf->modules_parts['workflow']) && is_array($conf->modules_parts['workflow']))
@ -140,6 +140,7 @@ foreach($workflowcodes as $key => $params)
if ($reg[1] == 'order') print ' - '.$langs->trans('Order');
if ($reg[1] == 'supplier_proposal') print ' - '.$langs->trans('SupplierProposal');
if ($reg[1] == 'supplier_order') print ' - '.$langs->trans('SupplierOrder');
if ($reg[1] == 'reception') print ' - '.$langs->trans('Reception');
}
else
{

View File

@ -4225,6 +4225,7 @@ abstract class CommonObject
}else {
$this->tpl['label'].= ($line->label ? ' '.$line->label : '');
}
// Dates
if ($line->product_type == 1 && ($date_start || $date_end))
{

View File

@ -44,14 +44,14 @@ class modReception extends DolibarrModules
$this->db = $db;
$this->numero = 104160;
$this->family = "crm";
$this->family = "srm";
$this->module_position = 40;
// Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module)
$this->name = preg_replace('/^mod/i','',get_class($this));
$this->description = "Gestion des réceptions fournisseurs";
// Possible values for version are: 'development', 'experimental', 'dolibarr' or version
$this->version = 'dolibarr';
$this->version = 'experimental';
$this->const_name = 'MAIN_MODULE_'.strtoupper($this->name);
$this->special = 0;

View File

@ -31,7 +31,7 @@
*/
if (! defined('DOL_APPLICATION_TITLE')) define('DOL_APPLICATION_TITLE','Dolibarr');
if (! defined('DOL_VERSION')) define('DOL_VERSION','9.0.0-alpha'); // a.b.c-alpha, a.b.c-beta, a.b.c-rcX or a.b.c
if (! defined('DOL_VERSION')) define('DOL_VERSION','9.0.1'); // a.b.c-alpha, a.b.c-beta, a.b.c-rcX or a.b.c
if (! defined('EURO')) define('EURO',chr(128));

View File

@ -25,6 +25,7 @@
// Put here all includes required by your class file
require_once DOL_DOCUMENT_ROOT."/core/class/commonobject.class.php";
require_once DOL_DOCUMENT_ROOT."/reception/class/reception.class.php";
//require_once DOL_DOCUMENT_ROOT."/societe/class/societe.class.php";
//require_once DOL_DOCUMENT_ROOT."/product/class/product.class.php";
@ -185,10 +186,10 @@ class CommandeFournisseurDispatch extends CommonObject
$sql.= " ".(! isset($this->status)?'NULL':"'".$this->db->escape($this->status)."'").",";
$sql.= " ".(! isset($this->batch)?'NULL':"'".$this->db->escape($this->batch)."'").",";
$sql.= " ".(! isset($this->eatby) || dol_strlen($this->eatby)==0?'NULL':"'".$this->db->idate($this->eatby)."'").",";
$sql.= " ".(! isset($this->sellby) || dol_strlen($this->sellby)==0?'NULL':"'".$this->db->idate($this->sellby)."'")."";
$sql.= " ".(! isset($this->sellby) || dol_strlen($this->sellby)==0?'NULL':"'".$this->db->idate($this->sellby)."'").",";
$sql.= " ".(! isset($this->fk_reception)?'NULL':"'".$this->fk_reception."'")."";
$sql.= ")";
$this->db->begin();
dol_syslog(__METHOD__, LOG_DEBUG);
@ -221,6 +222,7 @@ class CommandeFournisseurDispatch extends CommonObject
if (empty($conf->global->MAIN_EXTRAFIELDS_DISABLED)) // For avoid conflicts if trigger used
{
$result=$this->insertExtraFields();
if ($result < 0)
{
$error++;

View File

@ -889,8 +889,8 @@ if ($id > 0 || ! empty($ref)) {
}else if(!empty($conf->reception->enabled)){
print '<td align="right">';
if(!empty($reception->id)){
print $reception->getLibStatut(5);
}
}
print '</td>';
print '<td align="center">';

View File

@ -129,3 +129,89 @@ CREATE TABLE llx_takepos_floor_tables(
UPDATE llx_c_payment_term SET decalage = nbjour, nbjour = 0 where decalage IS NULL AND type_cdr = 2;
-- Reception
ALTER TABLE llx_commande_fournisseur_dispatch ADD COLUMN fk_reception integer DEFAULT NULL;
ALTER TABLE llx_commande_fournisseur_dispatch CHANGE comment comment TEXT;
insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('RECEPTION_VALIDATE','Reception validated','Executed when a reception is validated','reception',22);
insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('RECEPTION_SENTBYMAIL','Reception sent by mail','Executed when a reception is sent by mail','reception',22);
create table llx_commande_fournisseur_dispatch_extrafields
(
rowid integer AUTO_INCREMENT PRIMARY KEY,
tms timestamp,
fk_object integer NOT NULL, -- object id
import_key varchar(14) -- import key
)ENGINE=innodb;
ALTER TABLE llx_commande_fournisseur_dispatch_extrafields ADD INDEX idx_commande_fournisseur_dispatch_extrafields (fk_object);
create table llx_reception
(
rowid integer AUTO_INCREMENT PRIMARY KEY,
tms timestamp,
ref varchar(30) NOT NULL,
entity integer DEFAULT 1 NOT NULL, -- multi company id
fk_soc integer NOT NULL,
fk_projet integer DEFAULT NULL,
ref_ext varchar(30), -- reference into an external system (not used by dolibarr)
ref_int varchar(30), -- reference into an internal system (used by dolibarr to store extern id like paypal info)
ref_supplier varchar(30), -- customer number
date_creation datetime, -- date de creation
fk_user_author integer, -- author of creation
fk_user_modif integer, -- author of last change
date_valid datetime, -- date de validation
fk_user_valid integer, -- valideur
date_delivery datetime DEFAULT NULL, -- date planned of delivery
date_reception datetime,
fk_shipping_method integer,
tracking_number varchar(50),
fk_statut smallint DEFAULT 0, -- 0 = draft, 1 = validated, 2 = billed or closed depending on WORKFLOW_BILL_ON_SHIPMENT option
billed smallint DEFAULT 0,
height float, -- height
width float, -- with
size_units integer, -- unit of all sizes (height, width, depth)
size float, -- depth
weight_units integer, -- unit of weight
weight float, -- weight
note_private text,
note_public text,
model_pdf varchar(255),
fk_incoterms integer, -- for incoterms
location_incoterms varchar(255), -- for incoterms
import_key varchar(14),
extraparams varchar(255) -- for other parameters with json format
)ENGINE=innodb;
ALTER TABLE llx_reception ADD UNIQUE INDEX idx_reception_uk_ref (ref, entity);
ALTER TABLE llx_reception ADD INDEX idx_reception_fk_soc (fk_soc);
ALTER TABLE llx_reception ADD INDEX idx_reception_fk_user_author (fk_user_author);
ALTER TABLE llx_reception ADD INDEX idx_reception_fk_user_valid (fk_user_valid);
ALTER TABLE llx_reception ADD INDEX idx_reception_fk_shipping_method (fk_shipping_method);
ALTER TABLE llx_reception ADD CONSTRAINT fk_reception_fk_soc FOREIGN KEY (fk_soc) REFERENCES llx_societe (rowid);
ALTER TABLE llx_reception ADD CONSTRAINT fk_reception_fk_user_author FOREIGN KEY (fk_user_author) REFERENCES llx_user (rowid);
ALTER TABLE llx_reception ADD CONSTRAINT fk_reception_fk_user_valid FOREIGN KEY (fk_user_valid) REFERENCES llx_user (rowid);
ALTER TABLE llx_reception ADD CONSTRAINT fk_reception_fk_shipping_method FOREIGN KEY (fk_shipping_method) REFERENCES llx_c_shipment_mode (rowid);
create table llx_reception_extrafields
(
rowid integer AUTO_INCREMENT PRIMARY KEY,
tms timestamp,
fk_object integer NOT NULL,
import_key varchar(14) -- import key
) ENGINE=innodb;
ALTER TABLE llx_reception_extrafields ADD INDEX idx_reception_extrafields (fk_object);
ALTER TABLE llx_commande_fournisseur_dispatch ADD INDEX idx_commande_fournisseur_dispatch_fk_reception (fk_reception);
ALTER TABLE llx_commande_fournisseur_dispatch ADD CONSTRAINT fk_commande_fournisseur_dispatch_fk_reception FOREIGN KEY (fk_reception) REFERENCES llx_reception (rowid);

View File

@ -30,7 +30,7 @@ ReceptionsAndReceivingForSameOrder=Réceptions et réceptions pour cette command
ReceptionsToValidate=Réceptions à valider
StatusReceptionCanceled=Annulée
StatusReceptionDraft=Brouillon
StatusReceptionValidated=Validée (produits à envoyer ou envoyés)
StatusReceptionValidated=Validée
StatusReceptionProcessed=Traitée
StatusReceptionDraftShort=Brouillon
StatusReceptionValidatedShort=Validée

View File

@ -348,7 +348,7 @@ if (empty($reshook))
$sellbydate = str_replace('/','-',$sellby);
$ret = $object->addline($entrepot_id, GETPOST($idl, 'int'), GETPOST($qty, 'int'), $array_options[$i], GETPOST($comment, 'alpha'), strtotime($eatbydate),strtotime($sellbydate), GETPOST($batch, 'alpha'));
$ret = $object->addline($entrepot_id, GETPOST($idl, 'int'), GETPOST($qty, 'int'), $array_options[$i], GETPOST($comment, 'alpha'), strtotime($eatbydate),strtotime($sellbydate), GETPOST($batch, 'alpha'));
if ($ret < 0)
{
setEventMessages($object->error, $object->errors, 'errors');
@ -2248,7 +2248,7 @@ else if ($id || $ref)
$formmail->withdeliveryreceipt=1;
$formmail->withcancel=1;
// Tableau des substitutions
$formmail->setSubstitFromObject($object);
$formmail->setSubstitFromObject($object,$langs);
$formmail->substit['__RECEPTIONREF__']=$object->ref;
$formmail->substit['__RECEPTIONTRACKNUM__']=$object->tracking_number;
$formmail->substit['__RECEPTIONTRACKNUMURL__']=$object->tracking_url;

View File

@ -264,7 +264,7 @@ class Reception extends CommonObject
for ($i = 0; $i < $num; $i++)
{
$this->lines[$i]->fk_reception = $this->id;
if (! $this->lines[$i]->create($user) > 0)
{
$error++;
@ -1025,7 +1025,7 @@ class Reception extends CommonObject
}
}
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
/**
* Load lines
*
@ -1033,6 +1033,7 @@ class Reception extends CommonObject
*/
function fetch_lines()
{
// phpcs:enable
global $db;
dol_include_once('/fourn/class/fournisseur.commande.dispatch.class.php');
$sql = 'SELECT rowid FROM '.MAIN_DB_PREFIX.'commande_fournisseur_dispatch WHERE fk_reception='.$this->id;
@ -1056,9 +1057,8 @@ class Reception extends CommonObject
$line->subprice = $obj->subprice;
$line->multicurrency_subprice = $obj->multicurrency_subprice;
$line->remise_percent = $obj->remise_percent;
$line->label = $obj->label;
$line->label = !empty($obj->label)?$obj->label:$line->product->label;
$line->ref_supplier = $obj->ref;
}else {
$line->qty_asked = 0;
$line->description = '';
@ -1260,7 +1260,8 @@ class Reception extends CommonObject
}
}
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
/**
* Set the planned delivery date
*
@ -1270,6 +1271,7 @@ class Reception extends CommonObject
*/
function set_date_livraison($user, $date_livraison)
{
// phpcs:enable
if ($user->rights->reception->creer)
{
$sql = "UPDATE ".MAIN_DB_PREFIX."reception";
@ -1294,7 +1296,7 @@ class Reception extends CommonObject
return -2;
}
}
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
/**
* Fetch deliveries method and return an array. Load array this->meths(rowid=>label).
*
@ -1302,6 +1304,7 @@ class Reception extends CommonObject
*/
function fetch_delivery_methods()
{
// phpcs:enable
global $langs;
$this->meths = array();
@ -1320,7 +1323,7 @@ class Reception extends CommonObject
}
}
}
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
/**
* Fetch all deliveries method and return an array. Load array this->listmeths.
*
@ -1329,6 +1332,7 @@ class Reception extends CommonObject
*/
function list_delivery_methods($id='')
{
// phpcs:enable
global $langs;
$this->listmeths = array();
@ -1355,6 +1359,7 @@ class Reception extends CommonObject
}
}
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
/**
* Update/create delivery method.
*
@ -1364,6 +1369,7 @@ class Reception extends CommonObject
*/
function update_delivery_method($id='')
{
// phpcs:enable
if ($id=='')
{
$sql = "INSERT INTO ".MAIN_DB_PREFIX."c_shipment_mode (code, libelle, description, tracking)";
@ -1382,7 +1388,8 @@ class Reception extends CommonObject
}
if ($resql < 0) dol_print_error($this->db,'');
}
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
/**
* Activate delivery method.
*
@ -1392,13 +1399,15 @@ class Reception extends CommonObject
*/
function activ_delivery_method($id)
{
// phpcs:enable
$sql = 'UPDATE '.MAIN_DB_PREFIX.'c_shipment_mode SET active=1';
$sql.= ' WHERE rowid='.$id;
$resql = $this->db->query($sql);
}
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
/**
* DesActivate delivery method.
*
@ -1408,6 +1417,7 @@ class Reception extends CommonObject
*/
function disable_delivery_method($id)
{
// phpcs:enable
$sql = 'UPDATE '.MAIN_DB_PREFIX.'c_shipment_mode SET active=0';
$sql.= ' WHERE rowid='.$id;
@ -1598,7 +1608,7 @@ class Reception extends CommonObject
return -1;
}
}
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
/**
* Classify the reception as invoiced (used when WORKFLOW_BILL_ON_RECEPTION is on)
*
@ -1606,6 +1616,7 @@ class Reception extends CommonObject
*/
function set_billed()
{
// phpcs:enable
global $user;
$error=0;
@ -1768,6 +1779,7 @@ class Reception extends CommonObject
}
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
/**
* Set draft status
*
@ -1776,6 +1788,7 @@ class Reception extends CommonObject
*/
function set_draft($user)
{
// phpcs:enable
global $conf,$langs;
$error=0;

View File

@ -1,316 +0,0 @@
<?php
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
$sapi_type = php_sapi_name();
$script_file = basename(__FILE__);
$path = dirname(__FILE__).'/';
// Test if batch mode
if (substr($sapi_type, 0, 3) == 'cgi')
{
echo "Error: You are using PHP for CGI. To execute ".$script_file." from command line, you must use PHP for CLI mode.\n";
exit(-1);
}
require_once($path."../../htdocs/master.inc.php");
require_once(DOL_DOCUMENT_ROOT."/core/class/ldap.class.php");
require_once(DOL_DOCUMENT_ROOT."/user/class/usergroup.class.php");
// Global variables
$version = DOL_VERSION;
$error = 0;
/*
* Main
*/
@set_time_limit(0);
// We always choose in mysql directory (Conversion is done by driver to translate SQL syntax)
$dir = DOL_DOCUMENT_ROOT."/install/mysql/tables/";
$sql='ALTER TABLE '.MAIN_DB_PREFIX.'commande_fournisseur_dispatch ADD COLUMN fk_reception integer DEFAULT NULL;';
$resql = $db->query($sql);
if(empty($resql)){
var_dump($db->error);
}
$sql=" insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('RECEPTION_VALIDATE','Reception validated','Executed when a reception is validated','reception',22);";
$resql = $db->query($sql);
if(empty($resql)){
print '<pre>';
var_dump($db->error);
print '</pre>';
}
$sql="insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('RECEPTION_SENTBYMAIL','Reception sent by mail','Executed when a reception is sent by mail','reception',22); ";
$resql = $db->query($sql);
if(empty($resql)){
print '<pre>';
var_dump($db->error);
print '</pre>';
}
$sql=" ALTER TABLE ".MAIN_DB_PREFIX."commande_fournisseur_dispatch CHANGE comment comment TEXT;";
$resql = $db->query($sql);
if(empty($resql)){
var_dump($db->error);
}
$ok = 0;
$handle = opendir($dir);
$tablefound = 0;
$tabledata = array();
if (is_resource($handle))
{
while (($file = readdir($handle)) !== false)
{
if (preg_match('/\.sql$/i', $file) && preg_match('/^llx_/i', $file) && !preg_match('/\.key\.sql$/i', $file))
{
if (strpos($file, 'reception') !== false || strpos($file, 'commande_fournisseur_dispatch') !== false){
$tablefound++;
$tabledata[] = $file;
}
}
}
closedir($handle);
}
// Sort list of sql files on alphabetical order (load order is important)
sort($tabledata);
foreach ($tabledata as $file)
{
$name = substr($file, 0, dol_strlen($file) - 4);
$buffer = '';
$fp = fopen($dir.$file, "r");
if ($fp)
{
while (!feof($fp))
{
$buf = fgets($fp, 4096);
if (substr($buf, 0, 2) <> '--')
{
$buf = preg_replace('/--(.+)*/', '', $buf);
$buffer .= $buf;
}
}
fclose($fp);
$buffer = trim($buffer);
if ($conf->db->type == 'mysql' || $conf->db->type == 'mysqli') // For Mysql 5.5+, we must replace type=innodb with ENGINE=innodb
{
$buffer = preg_replace('/type=innodb/i', 'ENGINE=innodb', $buffer);
}
else if ($conf->db->type == 'mssql')
{
$buffer = preg_replace('/type=innodb/i', '', $buffer);
$buffer = preg_replace('/ENGINE=innodb/i', '', $buffer);
}
// Replace the prefix tables
if ($dolibarr_main_db_prefix != 'llx_')
{
$buffer = preg_replace('/llx_/i', $dolibarr_main_db_prefix, $buffer);
}
//print "<tr><td>Creation de la table $name/td>";
$requestnb++;
$resql = $db->query($buffer, 0, 'dml');
if ($resql)
{
// print "<td>OK requete ==== $buffer</td></tr>";
$db->free($resql);
}
else
{
if ($db->errno() == 'DB_ERROR_TABLE_ALREADY_EXISTS' ||
$db->errno() == 'DB_ERROR_TABLE_OR_KEY_ALREADY_EXISTS')
{
//print "<td>Deja existante</td></tr>";
}
else
{
print "<tr><td>".$langs->trans("CreateTableAndPrimaryKey", $name);
print "<br>\n".$langs->trans("Request").' '.$requestnb.' : '.$buffer.' <br>Executed query : '.$db->lastquery;
print "\n</td>";
print '<td><font class="error">'.$langs->trans("ErrorSQL")." ".$db->errno()." ".$db->error().'</font></td></tr>';
$error++;
}
}
}
else
{
print "<tr><td>".$langs->trans("CreateTableAndPrimaryKey", $name);
print "</td>";
print '<td><font class="error">'.$langs->trans("Error").' Failed to open file '.$dir.$file.'</td></tr>';
$error++;
}
}
if ($tablefound)
{
if ($error == 0)
{
print '<tr><td>';
print $langs->trans("TablesAndPrimaryKeysCreation").'</td><td><img src="../theme/eldy/img/tick.png" alt="Ok"></td></tr>';
$ok = 1;
}
}
else
{
print '<tr><td>'.$langs->trans("ErrorFailedToFindSomeFiles", $dir).'</td><td><img src="../theme/eldy/img/error.png" alt="Error"></td></tr>';
}
// We always choose in mysql directory (Conversion is done by driver to translate SQL syntax)
$okkeys = 0;
$handle = opendir($dir);
$tablefound = 0;
$tabledata = array();
if (is_resource($handle))
{
while (($file = readdir($handle)) !== false)
{
if (preg_match('/\.sql$/i', $file) && preg_match('/^llx_/i', $file) && preg_match('/\.key\.sql$/i', $file))
{
if (strpos($file, 'reception') !== false || strpos($file, 'commande_fournisseur_dispatch') !== false){
$tablefound++;
$tabledata[] = $file;
}
}
}
closedir($handle);
}
// Sort list of sql files on alphabetical order (load order is important)
sort($tabledata);
foreach ($tabledata as $file)
{
$name = substr($file, 0, dol_strlen($file) - 4);
//print "<tr><td>Creation de la table $name</td>";
$buffer = '';
$fp = fopen($dir.$file, "r");
if ($fp)
{
while (!feof($fp))
{
$buf = fgets($fp, 4096);
// Cas special de lignes autorisees pour certaines versions uniquement
if ($choix == 1 && preg_match('/^--\sV([0-9\.]+)/i', $buf, $reg))
{
$versioncommande = explode('.', $reg[1]);
//print var_dump($versioncommande);
//print var_dump($versionarray);
if (count($versioncommande) && count($versionarray) && versioncompare($versioncommande, $versionarray) <= 0)
{
// Version qualified, delete SQL comments
$buf = preg_replace('/^--\sV([0-9\.]+)/i', '', $buf);
//print "Ligne $i qualifiee par version: ".$buf.'<br>';
}
}
if ($choix == 2 && preg_match('/^--\sPOSTGRESQL\sV([0-9\.]+)/i', $buf, $reg))
{
$versioncommande = explode('.', $reg[1]);
//print var_dump($versioncommande);
//print var_dump($versionarray);
if (count($versioncommande) && count($versionarray) && versioncompare($versioncommande, $versionarray) <= 0)
{
// Version qualified, delete SQL comments
$buf = preg_replace('/^--\sPOSTGRESQL\sV([0-9\.]+)/i', '', $buf);
//print "Ligne $i qualifiee par version: ".$buf.'<br>';
}
}
// Ajout ligne si non commentaire
if (!preg_match('/^--/i', $buf))
$buffer .= $buf;
}
fclose($fp);
// Si plusieurs requetes, on boucle sur chaque
$listesql = explode(';', $buffer);
foreach ($listesql as $req)
{
$buffer = trim($req);
if ($buffer)
{
// Replace the prefix tables
if ($dolibarr_main_db_prefix != 'llx_')
{
$buffer = preg_replace('/llx_/i', $dolibarr_main_db_prefix, $buffer);
}
//print "<tr><td>Creation des cles et index de la table $name: '$buffer'</td>";
$requestnb++;
$resql = $db->query($buffer, 0, 'dml');
if ($resql)
{
//print "<td>OK requete ==== $buffer</td></tr>";
$db->free($resql);
}
else
{
if ($db->errno() == 'DB_ERROR_KEY_NAME_ALREADY_EXISTS' ||
$db->errno() == 'DB_ERROR_CANNOT_CREATE' ||
$db->errno() == 'DB_ERROR_PRIMARY_KEY_ALREADY_EXISTS' ||
$db->errno() == 'DB_ERROR_TABLE_OR_KEY_ALREADY_EXISTS' ||
preg_match('/duplicate key name/i', $db->error()))
{
//print "<td>Deja existante</td></tr>";
$key_exists = 1;
}
else
{
print "<tr><td>".$langs->trans("CreateOtherKeysForTable", $name);
print "<br>\n".$langs->trans("Request").' '.$requestnb.' : '.$db->lastqueryerror();
print "\n</td>";
print '<td><font class="error">'.$langs->trans("ErrorSQL")." ".$db->errno()." ".$db->error().'</font></td></tr>';
$error++;
}
}
}
}
}
else
{
print "<tr><td>".$langs->trans("CreateOtherKeysForTable", $name);
print "</td>";
print '<td><font class="error">'.$langs->trans("Error")." Failed to open file ".$dir.$file."</font></td></tr>";
$error++;
}
}
if ($tablefound && $error == 0)
{
print '<tr><td>';
print $langs->trans("OtherKeysCreation").'</td><td><img src="../theme/eldy/img/tick.png" alt="Ok"></td></tr>';
$okkeys = 1;
}

View File

@ -54,7 +54,7 @@ foreach($linkedObjectBlock as $key => $objectlink)
// For now, receptions must stay linked to order, so link is not deletable
if($object->element != 'order_supplier') {
?>
<a href="<?php echo $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=dellink&dellinkid='.$key; ?>"><?php echo img_delete($langs->transnoentitiesnoconv("RemoveLink")); ?></a></td>
<a href="<?php echo $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=dellink&dellinkid='.$key; ?>"><?php echo img_picto($langs->transnoentitiesnoconv("RemoveLink"), 'unlink'); ?></a></td>
<?php
}
?>