";
diff --git a/htdocs/core/class/interfaces.class.php b/htdocs/core/class/interfaces.class.php
index 655969d73f6..e6325df8836 100644
--- a/htdocs/core/class/interfaces.class.php
+++ b/htdocs/core/class/interfaces.class.php
@@ -33,7 +33,11 @@ class Interfaces
{
var $db;
var $dir; // Directory with all core and external triggers files
- var $errors = array(); // Array for errors
+ /**
+ *
+ * @var string[] Error codes (or messages)
+ */
+ public $errors = array ();
/**
* Constructor
diff --git a/htdocs/core/class/notify.class.php b/htdocs/core/class/notify.class.php
index 1cd676fe70b..c9d04b93dde 100644
--- a/htdocs/core/class/notify.class.php
+++ b/htdocs/core/class/notify.class.php
@@ -33,7 +33,11 @@ class Notify
var $id;
var $db;
var $error;
- var $errors=array();
+ /**
+ *
+ * @var string[] Error codes (or messages)
+ */
+ public $errors = array ();
var $author;
var $ref;
diff --git a/htdocs/core/class/workboardresponse.class.php b/htdocs/core/class/workboardresponse.class.php
index 13de74281ff..62d84e11186 100644
--- a/htdocs/core/class/workboardresponse.class.php
+++ b/htdocs/core/class/workboardresponse.class.php
@@ -1,6 +1,7 @@
+ * Copyright (C) 2018 Charlene Benke
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -66,4 +67,10 @@ class WorkboardResponse
*/
public $nbtodolate = 0;
-}
\ No newline at end of file
+ /**
+ * total price of items
+ * @var int
+ */
+ public $total = 0;
+
+}
diff --git a/htdocs/core/lib/admin.lib.php b/htdocs/core/lib/admin.lib.php
index 0e7203ba748..884dbaa120c 100644
--- a/htdocs/core/lib/admin.lib.php
+++ b/htdocs/core/lib/admin.lib.php
@@ -108,27 +108,36 @@ function versiondolibarrarray()
/**
- * Launch a sql file. Function used by:
+ * Launch a sql file. Function is used by:
* - Migrate process (dolibarr-xyz-abc.sql)
* - Loading sql menus (auguria)
* - Running specific Sql by a module init
+ * - Loading sql file of website import package
* Install process however does not use it.
- * Note that Sql files must have all comments at start of line.
+ * Note that Sql files must have all comments at start of line. Also this function take ';' as the char to detect end of sql request
*
- * @param string $sqlfile Full path to sql file
- * @param int $silent 1=Do not output anything, 0=Output line for update page
- * @param int $entity Entity targeted for multicompany module
- * @param int $usesavepoint 1=Run a savepoint before each request and a rollback to savepoint if error (this allow to have some request with errors inside global transactions).
- * @param string $handler Handler targeted for menu
- * @param string $okerror Family of errors we accept ('default', 'none')
- * @return int <=0 if KO, >0 if OK
+ * @param string $sqlfile Full path to sql file
+ * @param int $silent 1=Do not output anything, 0=Output line for update page
+ * @param int $entity Entity targeted for multicompany module
+ * @param int $usesavepoint 1=Run a savepoint before each request and a rollback to savepoint if error (this allow to have some request with errors inside global transactions).
+ * @param string $handler Handler targeted for menu (replace __HANDLER__ with this value)
+ * @param string $okerror Family of errors we accept ('default', 'none')
+ * @param int $linelengthlimit Limit for length of each line (Use 0 if unknown, may be faster if defined)
+ * @param int $nocommentremoval Do no try to remove comments (in such a case, we consider that each line is a request, so use also $linelengthlimit=0)
+ * @return int <=0 if KO, >0 if OK
*/
-function run_sql($sqlfile,$silent=1,$entity='',$usesavepoint=1,$handler='',$okerror='default')
+function run_sql($sqlfile, $silent=1, $entity='', $usesavepoint=1, $handler='', $okerror='default', $linelengthlimit=32768, $nocommentremoval=0)
{
global $db, $conf, $langs, $user;
dol_syslog("Admin.lib::run_sql run sql file ".$sqlfile." silent=".$silent." entity=".$entity." usesavepoint=".$usesavepoint." handler=".$handler." okerror=".$okerror, LOG_DEBUG);
+ if (! is_numeric($linelengthlimit))
+ {
+ dol_syslog("Admin.lib::run_sql param linelengthlimit is not a numeric", LOG_ERR);
+ return -1;
+ }
+
$ok=0;
$error=0;
$i=0;
@@ -143,7 +152,9 @@ function run_sql($sqlfile,$silent=1,$entity='',$usesavepoint=1,$handler='',$oker
{
while (! feof($fp))
{
- $buf = fgets($fp, 32768);
+ // Warning fgets with second parameter that is null or 0 hang.
+ if ($linelengthlimit > 0) $buf = fgets($fp, $linelengthlimit);
+ else $buf = fgets($fp);
// Test if request must be ran only for particular database or version (if yes, we must remove the -- comment)
if (preg_match('/^--\sV(MYSQL|PGSQL)([^\s]*)/i',$buf,$reg))
@@ -191,13 +202,13 @@ function run_sql($sqlfile,$silent=1,$entity='',$usesavepoint=1,$handler='',$oker
}
// Add line buf to buffer if not a comment
- if (! preg_match('/^\s*--/',$buf))
+ if ($nocommentremoval || ! preg_match('/^\s*--/',$buf))
{
- $buf=preg_replace('/([,;ERLT\)])\s*--.*$/i','\1',$buf); //remove comment from a line that not start with -- before add it to the buffer
+ if (empty($nocommentremoval)) $buf=preg_replace('/([,;ERLT\)])\s*--.*$/i','\1',$buf); //remove comment from a line that not start with -- before add it to the buffer
$buffer .= trim($buf);
}
- // print $buf.' ';
+ //print $buf.' ';exit;
if (preg_match('/;/',$buffer)) // If string contains ';', it's end of a request string, we save it in arraysql.
{
@@ -229,7 +240,7 @@ function run_sql($sqlfile,$silent=1,$entity='',$usesavepoint=1,$handler='',$oker
if (! isset($listofmaxrowid[$table]))
{
//var_dump($db);
- $sqlgetrowid='SELECT MAX(rowid) as max from '.$table;
+ $sqlgetrowid='SELECT MAX(rowid) as max from '.preg_replace('/^llx_/', MAIN_DB_PREFIX, $table);
$resql=$db->query($sqlgetrowid);
if ($resql)
{
@@ -246,9 +257,10 @@ function run_sql($sqlfile,$silent=1,$entity='',$usesavepoint=1,$handler='',$oker
break;
}
}
+ // Replace __+MAX_llx_table__ with +999
$from='__+MAX_'.$table.'__';
$to='+'.$listofmaxrowid[$table];
- $newsql=str_replace($from,$to,$newsql);
+ $newsql=str_replace($from, $to, $newsql);
dol_syslog('Admin.lib::run_sql New Request '.($i+1).' (replacing '.$from.' to '.$to.')', LOG_DEBUG);
$arraysql[$i]=$newsql;
diff --git a/htdocs/core/lib/files.lib.php b/htdocs/core/lib/files.lib.php
index 15e8c003417..a7001d357b8 100644
--- a/htdocs/core/lib/files.lib.php
+++ b/htdocs/core/lib/files.lib.php
@@ -574,7 +574,7 @@ function dol_filemtime($pathoffile)
* @param array $arrayreplacement Array with strings to replace. Example: array('valuebefore'=>'valueafter', ...)
* @param string $destfile Destination file (can't be a directory). If empty, will be same than source file.
* @param int $newmask Mask for new file (0 by default means $conf->global->MAIN_UMASK). Example: '0666'
- * @param int $indexdatabase Index new file into database.
+ * @param int $indexdatabase 1=index new file into database.
* @return int <0 if error, 0 if nothing done (dest file already exists), >0 if OK
* @see dol_copy dolReplaceRegExInFile
*/
@@ -611,7 +611,7 @@ function dolReplaceInFile($srcfile, $arrayreplacement, $destfile='', $newmask=0,
dol_delete_file($tmpdestfile);
// Create $newpathoftmpdestfile from $newpathofsrcfile
- $content=file_get_contents($newpathofsrcfile, 'r');
+ $content = file_get_contents($newpathofsrcfile, 'r');
$content = make_substitutions($content, $arrayreplacement, null);
@@ -1509,7 +1509,7 @@ function dol_init_file_process($pathtoscan='', $trackid='')
*
* @param string $upload_dir Directory where to store uploaded file (note: used to forge $destpath = $upload_dir + filename)
* @param int $allowoverwrite 1=Allow overwrite existing file
- * @param int $donotupdatesession 1=Do no edit _SESSION variable but update database index. 0=Update _SESSION and not database index.
+ * @param int $donotupdatesession 1=Do no edit _SESSION variable but update database index. 0=Update _SESSION and not database index. -1=Do not update SESSION neither db.
* @param string $varfiles _FILES var name
* @param string $savingdocmask Mask to use to define output filename. For example 'XXXXX-__YYYYMMDD__-__file__'
* @param string $link Link to add (to add a link instead of a file)
@@ -1591,7 +1591,7 @@ function dol_add_file_process($upload_dir, $allowoverwrite=0, $donotupdatesessio
}
// Update table of files
- if ($donotupdatesession)
+ if ($donotupdatesession == 1)
{
$result = addFileIntoDatabaseIndex($upload_dir, basename($destfile), $TFile['name'][$i], 'uploaded', 0);
if ($result < 0)
@@ -1656,7 +1656,7 @@ function dol_add_file_process($upload_dir, $allowoverwrite=0, $donotupdatesessio
* All information used are in db, conf, langs, user and _FILES.
*
* @param int $filenb File nb to delete
- * @param int $donotupdatesession 1=Do not edit _SESSION variable
+ * @param int $donotupdatesession -1 or 1 = Do not update _SESSION variable
* @param int $donotdeletefile 1=Do not delete physically file
* @param string $trackid Track id (used to prefix name of session vars to avoid conflict)
* @return void
diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php
index 226619b90e1..92cab65b7b2 100644
--- a/htdocs/core/lib/functions.lib.php
+++ b/htdocs/core/lib/functions.lib.php
@@ -3125,8 +3125,8 @@ function dol_trunc($string,$size=40,$trunc='right',$stringencoding='UTF-8',$nodo
* @param boolean|int $pictoisfullpath If true or 1, image path is a full path
* @param int $srconly Return only content of the src attribute of img.
* @param int $notitle 1=Disable tag title. Use it if you add js tooltip, to avoid duplicate tooltip.
- * @param string $alt Force alt for bind peoplae
- * @param string $morecss Add more class css on img tag (For example 'myclascss')
+ * @param string $alt Force alt for bind people
+ * @param string $morecss Add more class css on img tag (For example 'myclascss'). Work only if $moreatt is empty.
* @return string Return img tag
* @see #img_object, #img_picto_common
*/
@@ -3282,7 +3282,7 @@ function img_picto($titlealt, $picto, $moreatt = '', $pictoisfullpath = false, $
//$title=$tmparray[0];
//$alt=empty($tmparray[1])?'':$tmparray[1];
$title = $titlealt;
- return ''; // Alt is used for accessibility, title for popup
+ return ''; // Alt is used for accessibility, title for popup
}
}
diff --git a/htdocs/core/lib/propal.lib.php b/htdocs/core/lib/propal.lib.php
index c50661de831..5f207999cd8 100644
--- a/htdocs/core/lib/propal.lib.php
+++ b/htdocs/core/lib/propal.lib.php
@@ -48,6 +48,7 @@ function propal_prepare_head($object)
|| (! empty($conf->livraison_bon->enabled) && $user->rights->expedition->livraison->lire))))
{
$langs->load("sendings");
+ $text = '';
$head[$h][0] = DOL_URL_ROOT.'/expedition/propal.php?id='.$object->id;
if ($conf->expedition_bon->enabled) $text=$langs->trans("Shipment");
if ($conf->livraison_bon->enabled) $text.='/'.$langs->trans("Receivings");
diff --git a/htdocs/core/modules/action/modules_action.php b/htdocs/core/modules/action/modules_action.php
index 2971b6f59ee..d4c55ce6bdc 100644
--- a/htdocs/core/modules/action/modules_action.php
+++ b/htdocs/core/modules/action/modules_action.php
@@ -28,7 +28,10 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/commondocgenerator.class.php';
*/
abstract class ModeleAction extends CommonDocGenerator
{
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
/**
* Return list of active generation modules
diff --git a/htdocs/core/modules/bank/modules_bank.php b/htdocs/core/modules/bank/modules_bank.php
index b0a121d7dc5..703f61cda10 100644
--- a/htdocs/core/modules/bank/modules_bank.php
+++ b/htdocs/core/modules/bank/modules_bank.php
@@ -31,7 +31,10 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/commondocgenerator.class.php';
*/
abstract class ModeleBankAccountDoc extends CommonDocGenerator
{
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
/**
diff --git a/htdocs/core/modules/barcode/doc/phpbarcode.modules.php b/htdocs/core/modules/barcode/doc/phpbarcode.modules.php
index a76fa073118..17a98d9cd77 100644
--- a/htdocs/core/modules/barcode/doc/phpbarcode.modules.php
+++ b/htdocs/core/modules/barcode/doc/phpbarcode.modules.php
@@ -33,7 +33,11 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/barcode.lib.php'; // This is to inc
class modPhpbarcode extends ModeleBarCode
{
var $version='dolibarr'; // 'development', 'experimental', 'dolibarr'
- var $error='';
+
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
/**
diff --git a/htdocs/core/modules/barcode/doc/tcpdfbarcode.modules.php b/htdocs/core/modules/barcode/doc/tcpdfbarcode.modules.php
index 9d064ec267c..fcf01131f46 100644
--- a/htdocs/core/modules/barcode/doc/tcpdfbarcode.modules.php
+++ b/htdocs/core/modules/barcode/doc/tcpdfbarcode.modules.php
@@ -32,7 +32,12 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/barcode.lib.php'; // This is to inc
class modTcpdfbarcode extends ModeleBarCode
{
var $version='dolibarr'; // 'development', 'experimental', 'dolibarr'
- var $error='';
+
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
+
var $is2d = false;
/**
diff --git a/htdocs/core/modules/barcode/modules_barcode.class.php b/htdocs/core/modules/barcode/modules_barcode.class.php
index 4720ffb1341..279a5f0abf8 100644
--- a/htdocs/core/modules/barcode/modules_barcode.class.php
+++ b/htdocs/core/modules/barcode/modules_barcode.class.php
@@ -29,7 +29,10 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/functions.lib.php';
*/
abstract class ModeleBarCode
{
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
/**
@@ -50,7 +53,10 @@ abstract class ModeleBarCode
*/
abstract class ModeleNumRefBarCode
{
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
/** Return default description of numbering model
*
diff --git a/htdocs/core/modules/cheque/mod_chequereceipt_mint.php b/htdocs/core/modules/cheque/mod_chequereceipt_mint.php
index 680357ce9bb..8906bdcc14f 100644
--- a/htdocs/core/modules/cheque/mod_chequereceipt_mint.php
+++ b/htdocs/core/modules/cheque/mod_chequereceipt_mint.php
@@ -31,7 +31,10 @@ class mod_chequereceipt_mint extends ModeleNumRefChequeReceipts
{
var $version='dolibarr'; // 'development', 'experimental', 'dolibarr'
var $prefix='CHK';
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
var $name='Mint';
diff --git a/htdocs/core/modules/cheque/modules_chequereceipts.php b/htdocs/core/modules/cheque/modules_chequereceipts.php
index 9ba039a6487..f4dad0b4a26 100644
--- a/htdocs/core/modules/cheque/modules_chequereceipts.php
+++ b/htdocs/core/modules/cheque/modules_chequereceipts.php
@@ -36,7 +36,10 @@ require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; // Requ
*/
abstract class ModeleNumRefChequeReceipts
{
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
/**
* Return if a module can be used or not
@@ -119,7 +122,10 @@ abstract class ModeleNumRefChequeReceipts
*/
abstract class ModeleChequeReceipts extends CommonDocGenerator
{
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
/**
* Return list of active generation modules
diff --git a/htdocs/core/modules/commande/mod_commande_marbre.php b/htdocs/core/modules/commande/mod_commande_marbre.php
index 9941811006b..69c25f73d68 100644
--- a/htdocs/core/modules/commande/mod_commande_marbre.php
+++ b/htdocs/core/modules/commande/mod_commande_marbre.php
@@ -31,7 +31,10 @@ class mod_commande_marbre extends ModeleNumRefCommandes
{
var $version='dolibarr'; // 'development', 'experimental', 'dolibarr'
var $prefix='CO';
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
var $nom='Marbre';
diff --git a/htdocs/core/modules/commande/modules_commande.php b/htdocs/core/modules/commande/modules_commande.php
index aa6da728f56..1e58104c9ca 100644
--- a/htdocs/core/modules/commande/modules_commande.php
+++ b/htdocs/core/modules/commande/modules_commande.php
@@ -39,7 +39,10 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/discount.class.php';
*/
abstract class ModelePDFCommandes extends CommonDocGenerator
{
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
/**
* Return list of active generation modules
@@ -71,7 +74,10 @@ abstract class ModelePDFCommandes extends CommonDocGenerator
abstract class ModeleNumRefCommandes
{
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
/**
* Return if a module can be used or not
diff --git a/htdocs/core/modules/contract/mod_contract_serpis.php b/htdocs/core/modules/contract/mod_contract_serpis.php
index 5dcb8a72baa..1f85e4d57fc 100644
--- a/htdocs/core/modules/contract/mod_contract_serpis.php
+++ b/htdocs/core/modules/contract/mod_contract_serpis.php
@@ -30,7 +30,10 @@ class mod_contract_serpis extends ModelNumRefContracts
{
var $version='dolibarr';
var $prefix='CT';
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
var $nom='Serpis';
var $code_auto=1;
diff --git a/htdocs/core/modules/contract/modules_contract.php b/htdocs/core/modules/contract/modules_contract.php
index 47a882b7b56..f0af2e7f78a 100644
--- a/htdocs/core/modules/contract/modules_contract.php
+++ b/htdocs/core/modules/contract/modules_contract.php
@@ -37,7 +37,10 @@
*/
abstract class ModelePDFContract extends CommonDocGenerator
{
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
/**
@@ -67,7 +70,10 @@ abstract class ModelePDFContract extends CommonDocGenerator
*/
class ModelNumRefContracts
{
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
/**
* Return if a module can be used or not
diff --git a/htdocs/core/modules/dons/modules_don.php b/htdocs/core/modules/dons/modules_don.php
index 4949cce94e1..f2cba175a60 100644
--- a/htdocs/core/modules/dons/modules_don.php
+++ b/htdocs/core/modules/dons/modules_don.php
@@ -34,7 +34,10 @@ require_once DOL_DOCUMENT_ROOT.'/don/class/don.class.php';
*/
abstract class ModeleDon extends CommonDocGenerator
{
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
/**
* Return list of active generation modules
@@ -63,7 +66,10 @@ abstract class ModeleDon extends CommonDocGenerator
*/
abstract class ModeleNumRefDons
{
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
/**
* Return if a module can be used or not
diff --git a/htdocs/core/modules/expedition/mod_expedition_safor.php b/htdocs/core/modules/expedition/mod_expedition_safor.php
index 826ba6665c4..e9e0adc7e39 100644
--- a/htdocs/core/modules/expedition/mod_expedition_safor.php
+++ b/htdocs/core/modules/expedition/mod_expedition_safor.php
@@ -30,7 +30,10 @@ class mod_expedition_safor extends ModelNumRefExpedition
{
var $version='dolibarr';
var $prefix='SH';
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
var $nom='Safor';
diff --git a/htdocs/core/modules/expedition/modules_expedition.php b/htdocs/core/modules/expedition/modules_expedition.php
index f46fa33c5f1..0fc12428d62 100644
--- a/htdocs/core/modules/expedition/modules_expedition.php
+++ b/htdocs/core/modules/expedition/modules_expedition.php
@@ -36,7 +36,10 @@
*/
abstract class ModelePdfExpedition extends CommonDocGenerator
{
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
/**
@@ -66,7 +69,10 @@ abstract class ModelePdfExpedition extends CommonDocGenerator
*/
abstract class ModelNumRefExpedition
{
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
/** Return if a model can be used or not
*
diff --git a/htdocs/core/modules/expensereport/mod_expensereport_jade.php b/htdocs/core/modules/expensereport/mod_expensereport_jade.php
index c6153d422eb..b1e01d40bb9 100644
--- a/htdocs/core/modules/expensereport/mod_expensereport_jade.php
+++ b/htdocs/core/modules/expensereport/mod_expensereport_jade.php
@@ -30,7 +30,10 @@ class mod_expensereport_jade extends ModeleNumRefExpenseReport
{
var $version='dolibarr'; // 'development', 'experimental', 'dolibarr'
var $prefix='ER';
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
var $nom='Jade';
diff --git a/htdocs/core/modules/expensereport/modules_expensereport.php b/htdocs/core/modules/expensereport/modules_expensereport.php
index e97766b38f6..f60899eee0a 100644
--- a/htdocs/core/modules/expensereport/modules_expensereport.php
+++ b/htdocs/core/modules/expensereport/modules_expensereport.php
@@ -23,7 +23,10 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/commondocgenerator.class.php';
*/
abstract class ModeleExpenseReport extends CommonDocGenerator
{
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
/**
@@ -73,7 +76,10 @@ function expensereport_pdf_create(DoliDB $db, ExpenseReport $object, $message, $
abstract class ModeleNumRefExpenseReport
{
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
/**
* Return if a module can be used or not
diff --git a/htdocs/core/modules/export/modules_export.php b/htdocs/core/modules/export/modules_export.php
index 5d7e0ecac84..c154420f554 100644
--- a/htdocs/core/modules/export/modules_export.php
+++ b/htdocs/core/modules/export/modules_export.php
@@ -30,7 +30,10 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/commondocgenerator.class.php';
*/
class ModeleExports extends CommonDocGenerator // This class can't be abstract as there is instance propreties loaded by liste_modeles
{
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
var $driverlabel=array();
var $driverversion=array();
diff --git a/htdocs/core/modules/facture/mod_facture_mars.php b/htdocs/core/modules/facture/mod_facture_mars.php
index 831dce5d3e4..c6bba0a6232 100644
--- a/htdocs/core/modules/facture/mod_facture_mars.php
+++ b/htdocs/core/modules/facture/mod_facture_mars.php
@@ -35,7 +35,10 @@ class mod_facture_mars extends ModeleNumRefFactures
var $prefixreplacement='FR';
var $prefixdeposit='AC';
var $prefixcreditnote='AV';
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
/**
diff --git a/htdocs/core/modules/facture/mod_facture_terre.php b/htdocs/core/modules/facture/mod_facture_terre.php
index 174d8314784..53ae127b734 100644
--- a/htdocs/core/modules/facture/mod_facture_terre.php
+++ b/htdocs/core/modules/facture/mod_facture_terre.php
@@ -33,7 +33,10 @@ class mod_facture_terre extends ModeleNumRefFactures
var $prefixinvoice='FA';
var $prefixcreditnote='AV';
var $prefixdeposit='AC';
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
/**
diff --git a/htdocs/core/modules/facture/modules_facture.php b/htdocs/core/modules/facture/modules_facture.php
index b5d9a2397cc..47b4506bdb4 100644
--- a/htdocs/core/modules/facture/modules_facture.php
+++ b/htdocs/core/modules/facture/modules_facture.php
@@ -37,7 +37,10 @@ require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; // Requ
*/
abstract class ModelePDFFactures extends CommonDocGenerator
{
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
/**
* Return list of active generation modules
@@ -65,7 +68,10 @@ abstract class ModelePDFFactures extends CommonDocGenerator
*/
abstract class ModeleNumRefFactures
{
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
/**
* Return if a module can be used or not
diff --git a/htdocs/core/modules/fichinter/mod_pacific.php b/htdocs/core/modules/fichinter/mod_pacific.php
index 7e60a6aed4b..2461d8a074d 100644
--- a/htdocs/core/modules/fichinter/mod_pacific.php
+++ b/htdocs/core/modules/fichinter/mod_pacific.php
@@ -32,7 +32,10 @@ class mod_pacific extends ModeleNumRefFicheinter
{
var $version='dolibarr'; // 'development', 'experimental', 'dolibarr'
var $prefix='FI';
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
var $nom = 'pacific';
diff --git a/htdocs/core/modules/fichinter/modules_fichinter.php b/htdocs/core/modules/fichinter/modules_fichinter.php
index 8bcb2990bdb..619f2b888bc 100644
--- a/htdocs/core/modules/fichinter/modules_fichinter.php
+++ b/htdocs/core/modules/fichinter/modules_fichinter.php
@@ -34,7 +34,10 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/commondocgenerator.class.php';
*/
abstract class ModelePDFFicheinter extends CommonDocGenerator
{
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
/**
@@ -64,7 +67,10 @@ abstract class ModelePDFFicheinter extends CommonDocGenerator
*/
abstract class ModeleNumRefFicheinter
{
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
/**
* Return if a module can be used or not
diff --git a/htdocs/core/modules/holiday/mod_holiday_madonna.php b/htdocs/core/modules/holiday/mod_holiday_madonna.php
index 3b77230f77f..9031c31036d 100644
--- a/htdocs/core/modules/holiday/mod_holiday_madonna.php
+++ b/htdocs/core/modules/holiday/mod_holiday_madonna.php
@@ -31,7 +31,10 @@ class mod_holiday_madonna extends ModelNumRefHolidays
{
var $version='dolibarr';
var $prefix='HL';
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
var $nom='Madonna';
var $code_auto=1;
diff --git a/htdocs/core/modules/holiday/modules_holiday.php b/htdocs/core/modules/holiday/modules_holiday.php
index 901a7531cbe..6449f48d96f 100644
--- a/htdocs/core/modules/holiday/modules_holiday.php
+++ b/htdocs/core/modules/holiday/modules_holiday.php
@@ -38,7 +38,10 @@
*/
abstract class ModelePDFHoliday extends CommonDocGenerator
{
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
/**
@@ -68,7 +71,10 @@ abstract class ModelePDFHoliday extends CommonDocGenerator
*/
class ModelNumRefHolidays
{
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
/**
* Return if a module can be used or not
diff --git a/htdocs/core/modules/import/import_csv.modules.php b/htdocs/core/modules/import/import_csv.modules.php
index f6d94e08e97..23034c436bf 100644
--- a/htdocs/core/modules/import/import_csv.modules.php
+++ b/htdocs/core/modules/import/import_csv.modules.php
@@ -36,8 +36,16 @@ class ImportCsv extends ModeleImports
var $db;
var $datatoimport;
- var $error='';
- var $errors=array();
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
+
+ /**
+ *
+ * @var string[] Error codes (or messages)
+ */
+ public $errors = array ();
var $id; // Id of driver
var $label; // Label of driver
diff --git a/htdocs/core/modules/import/import_xlsx.modules.php b/htdocs/core/modules/import/import_xlsx.modules.php
index 545fb8d4466..0b2af5fe021 100644
--- a/htdocs/core/modules/import/import_xlsx.modules.php
+++ b/htdocs/core/modules/import/import_xlsx.modules.php
@@ -36,8 +36,16 @@ class ImportXlsx extends ModeleImports
var $db;
var $datatoimport;
- var $error='';
- var $errors=array();
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
+
+ /**
+ *
+ * @var string[] Error codes (or messages)
+ */
+ public $errors = array ();
var $id; // Id of driver
var $label; // Label of driver
diff --git a/htdocs/core/modules/livraison/modules_livraison.php b/htdocs/core/modules/livraison/modules_livraison.php
index a433f42930d..13d83939afb 100644
--- a/htdocs/core/modules/livraison/modules_livraison.php
+++ b/htdocs/core/modules/livraison/modules_livraison.php
@@ -36,7 +36,10 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/commondocgenerator.class.php';
*/
abstract class ModelePDFDeliveryOrder extends CommonDocGenerator
{
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
/**
* Return list of active generation modules
@@ -67,7 +70,10 @@ abstract class ModelePDFDeliveryOrder extends CommonDocGenerator
*/
abstract class ModeleNumRefDeliveryOrder
{
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
/**
* Return if a module can be used or not
diff --git a/htdocs/core/modules/member/modules_cards.php b/htdocs/core/modules/member/modules_cards.php
index f7ef8b94590..4e3e1a2dac4 100644
--- a/htdocs/core/modules/member/modules_cards.php
+++ b/htdocs/core/modules/member/modules_cards.php
@@ -34,7 +34,10 @@ require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php';
*/
class ModelePDFCards
{
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
/**
diff --git a/htdocs/core/modules/modDav.class.php b/htdocs/core/modules/modDav.class.php
index 77c3f8feef7..f6c34f030a0 100644
--- a/htdocs/core/modules/modDav.class.php
+++ b/htdocs/core/modules/modDav.class.php
@@ -68,7 +68,7 @@ class modDav extends DolibarrModules
$this->descriptionlong = "davDescription";
// Possible values for version are: 'development', 'experimental', 'dolibarr', 'dolibarr_deprecated' or a version string like 'x.y.z'
- $this->version = 'experimental';
+ $this->version = 'dolibarr';
// Key used in llx_const table to save module status enabled/disabled (where DAV is value of property name of module in uppercase)
$this->const_name = 'MAIN_MODULE_'.strtoupper($this->name);
// Name of image file used for this module.
diff --git a/htdocs/core/modules/modWebsite.class.php b/htdocs/core/modules/modWebsite.class.php
index f684985917a..7d0b0540ed2 100644
--- a/htdocs/core/modules/modWebsite.class.php
+++ b/htdocs/core/modules/modWebsite.class.php
@@ -51,7 +51,7 @@ class modWebsite extends DolibarrModules
$this->name = preg_replace('/^mod/i','',get_class($this));
$this->description = "Enable to build and serve public web sites with CMS features";
// Possible values for version are: 'development', 'experimental', 'dolibarr' or version
- $this->version = 'experimental';
+ $this->version = 'dolibarr';
// Key used in llx_const table to save module status enabled/disabled (where MYMODULE is value of property name of module in uppercase)
$this->const_name = 'MAIN_MODULE_'.strtoupper($this->name);
// Name of image file used for this module.
diff --git a/htdocs/core/modules/payment/mod_payment_cicada.php b/htdocs/core/modules/payment/mod_payment_cicada.php
index 8fc05b6cdd8..5111d0fc9be 100644
--- a/htdocs/core/modules/payment/mod_payment_cicada.php
+++ b/htdocs/core/modules/payment/mod_payment_cicada.php
@@ -31,7 +31,10 @@ class mod_payment_cicada extends ModeleNumRefPayments
{
var $version='dolibarr'; // 'development', 'experimental', 'dolibarr'
var $prefix='PAY';
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
var $nom='Cicada';
diff --git a/htdocs/core/modules/payment/modules_payment.php b/htdocs/core/modules/payment/modules_payment.php
index c9023a9fc65..d9cf9b1260f 100644
--- a/htdocs/core/modules/payment/modules_payment.php
+++ b/htdocs/core/modules/payment/modules_payment.php
@@ -23,7 +23,10 @@
abstract class ModeleNumRefPayments
{
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
/**
* Return if a module can be used or not
diff --git a/htdocs/core/modules/printing/printgcp.modules.php b/htdocs/core/modules/printing/printgcp.modules.php
index 7cda95174c2..8e4eafeb7b8 100644
--- a/htdocs/core/modules/printing/printgcp.modules.php
+++ b/htdocs/core/modules/printing/printgcp.modules.php
@@ -43,7 +43,12 @@ class printing_printgcp extends PrintingDriver
var $google_id = '';
var $google_secret = '';
var $error;
- var $errors = array();
+ /**
+ *
+ * @var string[] Error codes (or messages)
+ */
+ public $errors = array ();
+
var $db;
private $OAUTH_SERVICENAME_GOOGLE = 'Google';
diff --git a/htdocs/core/modules/printing/printipp.modules.php b/htdocs/core/modules/printing/printipp.modules.php
index 94d14426b55..168c411ec29 100644
--- a/htdocs/core/modules/printing/printipp.modules.php
+++ b/htdocs/core/modules/printing/printipp.modules.php
@@ -41,7 +41,12 @@ class printing_printipp extends PrintingDriver
var $user;
var $password;
var $error;
- var $errors = array();
+ /**
+ *
+ * @var string[] Error codes (or messages)
+ */
+ public $errors = array ();
+
var $db;
diff --git a/htdocs/core/modules/printsheet/modules_labels.php b/htdocs/core/modules/printsheet/modules_labels.php
index bac32ec45d2..047d7aeed76 100644
--- a/htdocs/core/modules/printsheet/modules_labels.php
+++ b/htdocs/core/modules/printsheet/modules_labels.php
@@ -34,7 +34,10 @@ require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php';
*/
class ModelePDFLabels
{
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
/**
diff --git a/htdocs/core/modules/product/modules_product.class.php b/htdocs/core/modules/product/modules_product.class.php
index 83fc444f258..3b0324a8460 100644
--- a/htdocs/core/modules/product/modules_product.class.php
+++ b/htdocs/core/modules/product/modules_product.class.php
@@ -33,7 +33,10 @@
*/
abstract class ModelePDFProduct extends CommonDocGenerator
{
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
/**
@@ -58,7 +61,10 @@ abstract class ModelePDFProduct extends CommonDocGenerator
abstract class ModeleProductCode
{
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
/** Renvoi la description par defaut du modele de numerotation
*
diff --git a/htdocs/core/modules/product_batch/modules_product_batch.class.php b/htdocs/core/modules/product_batch/modules_product_batch.class.php
index 94818d17531..df94c98871f 100644
--- a/htdocs/core/modules/product_batch/modules_product_batch.class.php
+++ b/htdocs/core/modules/product_batch/modules_product_batch.class.php
@@ -38,7 +38,10 @@
*/
abstract class ModelePDFProductBatch extends CommonDocGenerator
{
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
/**
diff --git a/htdocs/core/modules/project/doc/doc_generic_project_odt.modules.php b/htdocs/core/modules/project/doc/doc_generic_project_odt.modules.php
index d936c01139f..62898fc40a3 100644
--- a/htdocs/core/modules/project/doc/doc_generic_project_odt.modules.php
+++ b/htdocs/core/modules/project/doc/doc_generic_project_odt.modules.php
@@ -160,6 +160,7 @@ class doc_generic_project_odt extends ModelePDFProjects
'task_description'=>$task->description,
'task_fk_parent'=>$task->fk_parent,
'task_duration'=>$task->duration,
+ 'task_duration_hour'=>convertSecondToTime($task->duration,'all'),
'task_progress'=>$task->progress,
'task_public'=>$task->public,
'task_date_start'=>dol_print_date($task->date_start,'day'),
@@ -317,7 +318,10 @@ class doc_generic_project_odt extends ModelePDFProjects
'tasktime_fk_user'=>$tasktime['fk_user'],
'tasktime_user_name'=>$tasktime['name'],
'tasktime_user_first'=>$tasktime['firstname'],
- 'tasktime_fullcivname'=>$tasktime['fullcivname']
+ 'tasktime_fullcivname'=>$tasktime['fullcivname'],
+ 'tasktime_amountht'=>$tasktime['amountht'],
+ 'tasktime_amountttc'=>$tasktime['amountttc'],
+ 'tasktime_thm'=>$tasktime['thm'],
);
}
@@ -698,7 +702,7 @@ class doc_generic_project_odt extends ModelePDFProjects
//Time ressources
$sql = "SELECT t.rowid, t.task_date, t.task_duration, t.fk_user, t.note";
- $sql.= ", u.lastname, u.firstname";
+ $sql.= ", u.lastname, u.firstname, t.thm";
$sql .= " FROM ".MAIN_DB_PREFIX."projet_task_time as t";
$sql .= " , ".MAIN_DB_PREFIX."user as u";
$sql .= " WHERE t.fk_task =".$task->id;
@@ -712,6 +716,35 @@ class doc_generic_project_odt extends ModelePDFProjects
$i = 0;
$tasks = array();
$listlinestasktime = $listlines->__get('taskstimes');
+ if (empty($num)) {
+ $row['rowid']='';
+ $row['task_date']='';
+ $row['task_duration']='';
+ $row['$tasktime']='';
+ $row['note']='';
+ $row['fk_user']='';
+ $row['name']='';
+ $row['firstname']='';
+ $row['fullcivname']='';
+ $row['amountht']='';
+ $row['amountttc']='';
+ $row['thm']='';
+ $tmparray=$this->get_substitutionarray_taskstime($row,$outputlangs);
+ foreach($tmparray as $key => $val)
+ {
+ try
+ {
+ $listlinestasktime->setVars($key, $val, true, 'UTF-8');
+ }
+ catch(OdfException $e)
+ {
+ }
+ catch(SegmentException $e)
+ {
+ }
+ }
+ $listlinestasktime->merge();
+ }
while ($i < $num)
{
$row = $this->db->fetch_array($resql);
@@ -723,6 +756,16 @@ class doc_generic_project_odt extends ModelePDFProjects
$row['fullcivname']='';
}
+ if (!empty($row['thm'])) {
+ $row['amountht']=($row['task_duration'] / 3600) * $row['thm'];
+ $defaultvat = get_default_tva($mysoc, $mysoc);
+ $row['amountttc']=price2num($row['amountht'] * (1 + ($defaultvat / 100)),'MT');;
+ } else {
+ $row['amountht']=0;
+ $row['amountttc']=0;
+ $row['thm']=0;
+ }
+
$tmparray=$this->get_substitutionarray_taskstime($row,$outputlangs);
foreach($tmparray as $key => $val)
@@ -884,60 +927,114 @@ class doc_generic_project_odt extends ModelePDFProjects
//List of referent
- $listofreferent=array(
- 'propal'=>array(
- 'title'=>"ListProposalsAssociatedProject",
- 'class'=>'Propal',
- 'table'=>'propal',
- 'test'=>$conf->propal->enabled && $user->rights->propale->lire),
- 'order'=>array(
- 'title'=>"ListOrdersAssociatedProject",
- 'class'=>'Commande',
- 'table'=>'commande',
- 'test'=>$conf->commande->enabled && $user->rights->commande->lire),
- 'invoice'=>array(
- 'title'=>"ListInvoicesAssociatedProject",
- 'class'=>'Facture',
- 'table'=>'facture',
- 'test'=>$conf->facture->enabled && $user->rights->facture->lire),
- 'invoice_predefined'=>array(
- 'title'=>"ListPredefinedInvoicesAssociatedProject",
- 'class'=>'FactureRec',
- 'table'=>'facture_rec',
- 'test'=>$conf->facture->enabled && $user->rights->facture->lire),
- 'order_supplier'=>array(
- 'title'=>"ListSupplierOrdersAssociatedProject",
- 'table'=>'commande_fournisseur',
- 'class'=>'CommandeFournisseur',
- 'test'=>$conf->fournisseur->enabled && $user->rights->fournisseur->commande->lire),
- 'invoice_supplier'=>array(
- 'title'=>"ListSupplierInvoicesAssociatedProject",
- 'table'=>'facture_fourn',
- 'class'=>'FactureFournisseur',
- 'test'=>$conf->fournisseur->enabled && $user->rights->fournisseur->facture->lire),
- 'contract'=>array(
- 'title'=>"ListContractAssociatedProject",
- 'class'=>'Contrat',
- 'table'=>'contrat',
- 'test'=>$conf->contrat->enabled && $user->rights->contrat->lire),
- 'intervention'=>array(
- 'title'=>"ListFichinterAssociatedProject",
- 'class'=>'Fichinter',
- 'table'=>'fichinter',
- 'disableamount'=>1,
- 'test'=>$conf->ficheinter->enabled && $user->rights->ficheinter->lire),
- 'trip'=>array(
- 'title'=>"ListTripAssociatedProject",
- 'class'=>'Deplacement',
- 'table'=>'deplacement',
- 'disableamount'=>1,
- 'test'=>$conf->deplacement->enabled && $user->rights->deplacement->lire),
- 'agenda'=>array(
- 'title'=>"ListActionsAssociatedProject",
- 'class'=>'ActionComm',
- 'table'=>'actioncomm',
- 'disableamount'=>1,
- 'test'=>$conf->agenda->enabled && $user->rights->agenda->allactions->lire)
+ $listofreferent = array(
+ 'propal' => array(
+ 'title' => "ListProposalsAssociatedProject",
+ 'class' => 'Propal',
+ 'table' => 'propal',
+ 'test' => $conf->propal->enabled && $user->rights->propale->lire
+ ),
+ 'order' => array(
+ 'title' => "ListOrdersAssociatedProject",
+ 'class' => 'Commande',
+ 'table' => 'commande',
+ 'test' => $conf->commande->enabled && $user->rights->commande->lire
+ ),
+ 'invoice' => array(
+ 'title' => "ListInvoicesAssociatedProject",
+ 'class' => 'Facture',
+ 'table' => 'facture',
+ 'test' => $conf->facture->enabled && $user->rights->facture->lire
+ ),
+ 'invoice_predefined' => array(
+ 'title' => "ListPredefinedInvoicesAssociatedProject",
+ 'class' => 'FactureRec',
+ 'table' => 'facture_rec',
+ 'test' => $conf->facture->enabled && $user->rights->facture->lire
+ ),
+ 'proposal_supplier' => array(
+ 'title' => "ListSupplierProposalsAssociatedProject",
+ 'class' => 'SupplierProposal',
+ 'table' => 'supplier_proposal',
+ 'test' => $conf->supplier_proposal->enabled && $user->rights->supplier_proposal->lire
+ ),
+ 'order_supplier' => array(
+ 'title' => "ListSupplierOrdersAssociatedProject",
+ 'table' => 'commande_fournisseur',
+ 'class' => 'CommandeFournisseur',
+ 'test' => $conf->fournisseur->enabled && $user->rights->fournisseur->commande->lire
+ ),
+ 'invoice_supplier' => array(
+ 'title' => "ListSupplierInvoicesAssociatedProject",
+ 'table' => 'facture_fourn',
+ 'class' => 'FactureFournisseur',
+ 'test' => $conf->fournisseur->enabled && $user->rights->fournisseur->facture->lire
+ ),
+ 'contract' => array(
+ 'title' => "ListContractAssociatedProject",
+ 'class' => 'Contrat',
+ 'table' => 'contrat',
+ 'test' => $conf->contrat->enabled && $user->rights->contrat->lire
+ ),
+ 'intervention' => array(
+ 'title' => "ListFichinterAssociatedProject",
+ 'class' => 'Fichinter',
+ 'table' => 'fichinter',
+ 'disableamount' => 1,
+ 'test' => $conf->ficheinter->enabled && $user->rights->ficheinter->lire
+ ),
+ 'shipping' => array(
+ 'title' => "ListShippingAssociatedProject",
+ 'class' => 'Expedition',
+ 'table' => 'expedition',
+ 'disableamount' => 1,
+ 'test' => $conf->expedition->enabled && $user->rights->expedition->lire
+ ),
+ 'trip' => array(
+ 'title' => "ListTripAssociatedProject",
+ 'class' => 'Deplacement',
+ 'table' => 'deplacement',
+ 'disableamount' => 1,
+ 'test' => $conf->deplacement->enabled && $user->rights->deplacement->lire
+ ),
+ 'expensereport' => array(
+ 'title' => "ListExpenseReportsAssociatedProject",
+ 'class' => 'ExpenseReportLine',
+ 'table' => 'expensereport_det',
+ 'test' => $conf->expensereport->enabled && $user->rights->expensereport->lire
+ ),
+ 'donation' => array(
+ 'title' => "ListDonationsAssociatedProject",
+ 'class' => 'Don',
+ 'table' => 'don',
+ 'test' => $conf->don->enabled && $user->rights->don->lire
+ ),
+ 'loan' => array(
+ 'title' => "ListLoanAssociatedProject",
+ 'class' => 'Loan',
+ 'table' => 'loan',
+ 'test' => $conf->loan->enabled && $user->rights->loan->read
+ ),
+ 'chargesociales' => array(
+ 'title' => "ListSocialContributionAssociatedProject",
+ 'class' => 'ChargeSociales',
+ 'table' => 'chargesociales',
+ 'urlnew' => DOL_URL_ROOT . '/compta/sociales/card.php?action=create&projectid=' . $id,
+ 'test' => $conf->tax->enabled && $user->rights->tax->charges->lire
+ ),
+ 'stock_mouvement' => array(
+ 'title' => "ListMouvementStockProject",
+ 'class' => 'MouvementStock',
+ 'table' => 'stock_mouvement',
+ 'test' => ($conf->stock->enabled && $user->rights->stock->mouvement->lire && ! empty($conf->global->STOCK_MOVEMENT_INTO_PROJECT_OVERVIEW))
+ ),
+ 'agenda' => array(
+ 'title' => "ListActionsAssociatedProject",
+ 'class' => 'ActionComm',
+ 'table' => 'actioncomm',
+ 'disableamount' => 1,
+ 'test' => $conf->agenda->enabled && $user->rights->agenda->allactions->lire
+ )
);
//Insert reference
diff --git a/htdocs/core/modules/project/mod_project_simple.php b/htdocs/core/modules/project/mod_project_simple.php
index 05256a3e61f..ccf4de57d5a 100644
--- a/htdocs/core/modules/project/mod_project_simple.php
+++ b/htdocs/core/modules/project/mod_project_simple.php
@@ -33,7 +33,10 @@ class mod_project_simple extends ModeleNumRefProjects
{
var $version='dolibarr'; // 'development', 'experimental', 'dolibarr'
var $prefix='PJ';
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
var $nom = "Simple";
var $name = "Simple";
diff --git a/htdocs/core/modules/project/modules_project.php b/htdocs/core/modules/project/modules_project.php
index 5f7ef3d5756..898cb202744 100644
--- a/htdocs/core/modules/project/modules_project.php
+++ b/htdocs/core/modules/project/modules_project.php
@@ -31,7 +31,10 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/commondocgenerator.class.php';
*/
abstract class ModelePDFProjects extends CommonDocGenerator
{
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
/**
@@ -62,7 +65,10 @@ abstract class ModelePDFProjects extends CommonDocGenerator
*/
abstract class ModeleNumRefProjects
{
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
/**
* Return if a module can be used or not
diff --git a/htdocs/core/modules/project/task/mod_task_simple.php b/htdocs/core/modules/project/task/mod_task_simple.php
index 1a0aa3e3445..55ecf2db518 100644
--- a/htdocs/core/modules/project/task/mod_task_simple.php
+++ b/htdocs/core/modules/project/task/mod_task_simple.php
@@ -33,7 +33,10 @@ class mod_task_simple extends ModeleNumRefTask
{
var $version='dolibarr'; // 'development', 'experimental', 'dolibarr'
var $prefix='TK';
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
var $nom = "Simple";
var $name = "Simple";
diff --git a/htdocs/core/modules/project/task/modules_task.php b/htdocs/core/modules/project/task/modules_task.php
index 7d14ae12a3e..11fa9b38326 100644
--- a/htdocs/core/modules/project/task/modules_task.php
+++ b/htdocs/core/modules/project/task/modules_task.php
@@ -32,7 +32,10 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/commondocgenerator.class.php';
*/
abstract class ModelePDFTask extends CommonDocGenerator
{
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
/**
@@ -63,7 +66,10 @@ abstract class ModelePDFTask extends CommonDocGenerator
*/
abstract class ModeleNumRefTask
{
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
/**
* Return if a module can be used or not
diff --git a/htdocs/core/modules/propale/mod_propale_marbre.php b/htdocs/core/modules/propale/mod_propale_marbre.php
index 0e1700da500..cac76d47b5a 100644
--- a/htdocs/core/modules/propale/mod_propale_marbre.php
+++ b/htdocs/core/modules/propale/mod_propale_marbre.php
@@ -33,7 +33,10 @@ class mod_propale_marbre extends ModeleNumRefPropales
{
var $version='dolibarr'; // 'development', 'experimental', 'dolibarr'
var $prefix='PR';
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
var $nom = "Marbre";
diff --git a/htdocs/core/modules/propale/modules_propale.php b/htdocs/core/modules/propale/modules_propale.php
index c2d52923e4f..55f7a028e23 100644
--- a/htdocs/core/modules/propale/modules_propale.php
+++ b/htdocs/core/modules/propale/modules_propale.php
@@ -36,7 +36,10 @@ require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; // Requ
*/
abstract class ModelePDFPropales extends CommonDocGenerator
{
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
/**
@@ -66,7 +69,10 @@ abstract class ModelePDFPropales extends CommonDocGenerator
*/
abstract class ModeleNumRefPropales
{
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
/**
* Return if a module can be used or not
diff --git a/htdocs/core/modules/security/generate/modules_genpassword.php b/htdocs/core/modules/security/generate/modules_genpassword.php
index 3129a341926..60378cf03a4 100644
--- a/htdocs/core/modules/security/generate/modules_genpassword.php
+++ b/htdocs/core/modules/security/generate/modules_genpassword.php
@@ -30,7 +30,10 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/functions.lib.php';
*/
abstract class ModeleGenPassword
{
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
/**
* Return if a module can be used or not
diff --git a/htdocs/core/modules/societe/modules_societe.class.php b/htdocs/core/modules/societe/modules_societe.class.php
index 0ed5eace2e2..c5a1901635b 100644
--- a/htdocs/core/modules/societe/modules_societe.class.php
+++ b/htdocs/core/modules/societe/modules_societe.class.php
@@ -33,7 +33,10 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/commondocgenerator.class.php';
*/
abstract class ModeleThirdPartyDoc extends CommonDocGenerator
{
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
/**
* Return list of active generation modules
@@ -63,7 +66,10 @@ abstract class ModeleThirdPartyDoc extends CommonDocGenerator
*/
abstract class ModeleThirdPartyCode
{
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
/** Renvoi la description par defaut du modele de numerotation
*
@@ -255,7 +261,10 @@ abstract class ModeleThirdPartyCode
*/
abstract class ModeleAccountancyCode
{
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
/** Return description of module
diff --git a/htdocs/core/modules/stock/modules_movement.php b/htdocs/core/modules/stock/modules_movement.php
index 806f500dab7..4009d235b59 100644
--- a/htdocs/core/modules/stock/modules_movement.php
+++ b/htdocs/core/modules/stock/modules_movement.php
@@ -30,7 +30,10 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/commondocgenerator.class.php';
*/
abstract class ModelePDFMovement extends CommonDocGenerator
{
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
/**
diff --git a/htdocs/core/modules/stock/modules_stock.php b/htdocs/core/modules/stock/modules_stock.php
index a0740b50f54..a5e0c2e5d7f 100644
--- a/htdocs/core/modules/stock/modules_stock.php
+++ b/htdocs/core/modules/stock/modules_stock.php
@@ -23,7 +23,10 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/commondocgenerator.class.php';
*/
abstract class ModelePDFStock extends CommonDocGenerator
{
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
/**
diff --git a/htdocs/core/modules/supplier_invoice/modules_facturefournisseur.php b/htdocs/core/modules/supplier_invoice/modules_facturefournisseur.php
index 7762d8ce6a5..edc3f3c7428 100644
--- a/htdocs/core/modules/supplier_invoice/modules_facturefournisseur.php
+++ b/htdocs/core/modules/supplier_invoice/modules_facturefournisseur.php
@@ -34,7 +34,10 @@ require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; // requir
*/
abstract class ModelePDFSuppliersInvoices extends CommonDocGenerator
{
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
/**
@@ -64,7 +67,10 @@ abstract class ModelePDFSuppliersInvoices extends CommonDocGenerator
*/
abstract class ModeleNumRefSuppliersInvoices
{
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
/** Return if a model can be used or not
*
diff --git a/htdocs/core/modules/supplier_order/modules_commandefournisseur.php b/htdocs/core/modules/supplier_order/modules_commandefournisseur.php
index 4bd262d67fb..d20229fd650 100644
--- a/htdocs/core/modules/supplier_order/modules_commandefournisseur.php
+++ b/htdocs/core/modules/supplier_order/modules_commandefournisseur.php
@@ -37,7 +37,10 @@ require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; // requir
*/
abstract class ModelePDFSuppliersOrders extends CommonDocGenerator
{
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
/**
@@ -69,7 +72,10 @@ abstract class ModelePDFSuppliersOrders extends CommonDocGenerator
*/
abstract class ModeleNumRefSuppliersOrders
{
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
/** Return if a model can be used or not
*
diff --git a/htdocs/core/modules/supplier_payment/mod_supplier_payment_bronan.php b/htdocs/core/modules/supplier_payment/mod_supplier_payment_bronan.php
index 9b0012ec089..94521f99c5e 100644
--- a/htdocs/core/modules/supplier_payment/mod_supplier_payment_bronan.php
+++ b/htdocs/core/modules/supplier_payment/mod_supplier_payment_bronan.php
@@ -31,7 +31,10 @@ class mod_supplier_payment_bronan extends ModeleNumRefSupplierPayments
{
var $version='dolibarr'; // 'development', 'experimental', 'dolibarr'
var $prefix='SPAY';
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
var $nom='Bronan';
diff --git a/htdocs/core/modules/supplier_payment/modules_supplier_payment.php b/htdocs/core/modules/supplier_payment/modules_supplier_payment.php
index 56c5bd94ae0..7a6e26e770b 100644
--- a/htdocs/core/modules/supplier_payment/modules_supplier_payment.php
+++ b/htdocs/core/modules/supplier_payment/modules_supplier_payment.php
@@ -22,7 +22,10 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/commondocgenerator.class.php';
*/
abstract class ModelePDFSuppliersPayments extends CommonDocGenerator
{
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
/**
@@ -54,7 +57,10 @@ abstract class ModelePDFSuppliersPayments extends CommonDocGenerator
abstract class ModeleNumRefSupplierPayments
{
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
/**
* Return if a module can be used or not
diff --git a/htdocs/core/modules/supplier_proposal/mod_supplier_proposal_marbre.php b/htdocs/core/modules/supplier_proposal/mod_supplier_proposal_marbre.php
index fa8cf6c6460..372b3189292 100644
--- a/htdocs/core/modules/supplier_proposal/mod_supplier_proposal_marbre.php
+++ b/htdocs/core/modules/supplier_proposal/mod_supplier_proposal_marbre.php
@@ -33,7 +33,10 @@ class mod_supplier_proposal_marbre extends ModeleNumRefSupplierProposal
{
var $version='dolibarr'; // 'development', 'experimental', 'dolibarr'
var $prefix='RQ'; // RQ = Request for quotation
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
var $nom = "Marbre";
diff --git a/htdocs/core/modules/supplier_proposal/modules_supplier_proposal.php b/htdocs/core/modules/supplier_proposal/modules_supplier_proposal.php
index b324a1b03a8..13ca149fde8 100644
--- a/htdocs/core/modules/supplier_proposal/modules_supplier_proposal.php
+++ b/htdocs/core/modules/supplier_proposal/modules_supplier_proposal.php
@@ -36,7 +36,10 @@ require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; // Requ
*/
abstract class ModelePDFSupplierProposal extends CommonDocGenerator
{
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
/**
@@ -66,7 +69,10 @@ abstract class ModelePDFSupplierProposal extends CommonDocGenerator
*/
abstract class ModeleNumRefSupplierProposal
{
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
/**
* Return if a module can be used or not
diff --git a/htdocs/core/modules/user/modules_user.class.php b/htdocs/core/modules/user/modules_user.class.php
index 3e94ece9372..33844eb938c 100644
--- a/htdocs/core/modules/user/modules_user.class.php
+++ b/htdocs/core/modules/user/modules_user.class.php
@@ -38,7 +38,10 @@
*/
abstract class ModelePDFUser extends CommonDocGenerator
{
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
/**
diff --git a/htdocs/core/modules/usergroup/modules_usergroup.class.php b/htdocs/core/modules/usergroup/modules_usergroup.class.php
index 26edb08d57c..d6735de5cad 100644
--- a/htdocs/core/modules/usergroup/modules_usergroup.class.php
+++ b/htdocs/core/modules/usergroup/modules_usergroup.class.php
@@ -38,7 +38,10 @@
*/
abstract class ModelePDFUserGroup extends CommonDocGenerator
{
- var $error='';
+ /**
+ * @var string Error code (or message)
+ */
+ public $error='';
/**
diff --git a/htdocs/fichinter/class/fichinter.class.php b/htdocs/fichinter/class/fichinter.class.php
index d14419f49b0..789a351c776 100644
--- a/htdocs/fichinter/class/fichinter.class.php
+++ b/htdocs/fichinter/class/fichinter.class.php
@@ -278,6 +278,7 @@ class Fichinter extends CommonObject
*/
function update($user, $notrigger=0)
{
+ global $conf;
if (! is_numeric($this->duration)) {
$this->duration = 0;
}
diff --git a/htdocs/imports/class/import.class.php b/htdocs/imports/class/import.class.php
index f8754193515..bc4873770fd 100644
--- a/htdocs/imports/class/import.class.php
+++ b/htdocs/imports/class/import.class.php
@@ -44,7 +44,11 @@ class Import
var $array_import_run_sql_after;
var $error;
- var $errors;
+ /**
+ *
+ * @var string[] Error codes (or messages)
+ */
+ public $errors = array ();
/**
diff --git a/htdocs/index.php b/htdocs/index.php
index 902ea6882a6..df1c18176e7 100644
--- a/htdocs/index.php
+++ b/htdocs/index.php
@@ -565,6 +565,10 @@ if (! empty($valid_dashboardlines))
$sep=($conf->dol_use_jmobile?' ':' ');
$boxwork .= ''.$board->img.' '.$board->label.' ';
$boxwork .= ''.$board->nbtodo.'';
+ if ($board->total > 0 && ! empty($conf->global->MAIN_WORKBOARD_SHOW_TOTAL_WO_TAX))
+ {
+ $boxwork .= ' / '.price($board->total) .'';
+ }
$boxwork .= '';
if ($board->nbtodolate > 0)
{
diff --git a/htdocs/install/doctemplates/projects/template_project.odt b/htdocs/install/doctemplates/projects/template_project.odt
index fca796a26dd..b6fd0349ea4 100644
Binary files a/htdocs/install/doctemplates/projects/template_project.odt and b/htdocs/install/doctemplates/projects/template_project.odt differ
diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang
index 41554cfd45d..16ca7cc7201 100644
--- a/htdocs/langs/en_US/admin.lang
+++ b/htdocs/langs/en_US/admin.lang
@@ -477,6 +477,8 @@ davDescription=Add a component to be a DAV server
DAVSetup=Setup of module DAV
DAV_ALLOW_PUBLIC_DIR=Enable the public directory (WebDav directory with no login required)
DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access to (in read and write mode), with no need to have/use an existing login/password account.
+DAV_ALLOW_ECM_DIR=Enable the root directy of DMS/ECM module (login required)
+DAV_ALLOW_ECM_DIRTooltip=The root directory where all files are manually uploaded when using the DMS/ECM module. Like for the feature from the web interface, you will need a valid login/password with granted permissions to access it.
# Modules
Module0Name=Users & Groups
Module0Desc=Users / Employees and Groups management
diff --git a/htdocs/langs/en_US/companies.lang b/htdocs/langs/en_US/companies.lang
index 8a720bd422b..6e4de1188a6 100644
--- a/htdocs/langs/en_US/companies.lang
+++ b/htdocs/langs/en_US/companies.lang
@@ -5,10 +5,10 @@ SelectThirdParty=Select a third party
ConfirmDeleteCompany=Are you sure you want to delete this company and all inherited information?
DeleteContact=Delete a contact/address
ConfirmDeleteContact=Are you sure you want to delete this contact and all inherited information?
-MenuNewThirdParty=new Third Party
-MenuNewCustomer=new Customer
-MenuNewProspect=new Prospect
-MenuNewSupplier=new Vendor
+MenuNewThirdParty=New Third Party
+MenuNewCustomer=New Customer
+MenuNewProspect=Nnew Prospect
+MenuNewSupplier=New Vendor
MenuNewPrivateIndividual=New private individual
NewCompany=New company (prospect, customer, vendor)
NewThirdParty=New Third Party (prospect, customer, vendor)
@@ -333,7 +333,7 @@ NoContactForAnyProposal=This contact is not a contact for any commercial proposa
NoContactForAnyContract=This contact is not a contact for any contract
NoContactForAnyInvoice=This contact is not a contact for any invoice
NewContact=New contact
-NewContactAddress=new Contact/Address
+NewContactAddress=New Contact/Address
MyContacts=My contacts
Capital=Capital
CapitalOf=Capital of %s
diff --git a/htdocs/langs/en_US/errors.lang b/htdocs/langs/en_US/errors.lang
index 5b5382480a1..cf88cf65cc9 100644
--- a/htdocs/langs/en_US/errors.lang
+++ b/htdocs/langs/en_US/errors.lang
@@ -209,6 +209,7 @@ ErrorFileNotFoundWithSharedLink=File was not found. May be the share key was mod
ErrorProductBarCodeAlreadyExists=The product barcode %s already exists on another product reference.
ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Note also that using virtual product to have auto increase/decrease of subproducts is not possible when at least one subproduct (or subproduct of subproducts) needs a serial/lot number.
ErrorDescRequiredForFreeProductLines=Description is mandatory for lines with free product
+ErrorAPageWithThisNameOrAliasAlreadyExists=The page/container %s has the same name or alternative alias that the one your try to use
# Warnings
WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
@@ -231,4 +232,4 @@ WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while
WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action.
WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language
WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to %s when using the mass actions on lists
-WarningDateOfLineMustBeInExpenseReportRange=Warning, the date of line is not in the range of the expense report
\ No newline at end of file
+WarningDateOfLineMustBeInExpenseReportRange=Warning, the date of line is not in the range of the expense report
diff --git a/htdocs/langs/en_US/projects.lang b/htdocs/langs/en_US/projects.lang
index 9ab397f190c..c87bac6bab1 100644
--- a/htdocs/langs/en_US/projects.lang
+++ b/htdocs/langs/en_US/projects.lang
@@ -168,8 +168,9 @@ TypeContact_project_task_external_TASKCONTRIBUTOR=Contributor
SelectElement=Select element
AddElement=Link to element
# Documents models
-DocumentModelBeluga=Project template for linked objects overview
-DocumentModelBaleine=Project report template for tasks
+DocumentModelBeluga=Project document template for linked objects overview
+DocumentModelBaleine=Project document template for tasks
+DocumentModelTimeSpent=Project report template for time spent
PlannedWorkload=Planned workload
PlannedWorkloadShort=Workload
ProjectReferers=Related items
@@ -229,3 +230,4 @@ DontHavePermissionForCloseProject=You do not have permissions to close the proje
DontHaveTheValidateStatus=The project %s must be open to be closed
RecordsClosed=%s project(s) closed
SendProjectRef=Information project %s
+ModuleSalaryToDefineHourlyRateMustBeEnabled=Module 'Payment of employee wages' must be enabled to define employee hourly rate to have time spent valorized
diff --git a/htdocs/langs/en_US/website.lang b/htdocs/langs/en_US/website.lang
index fe3a4b7cf92..ef2b70b685a 100644
--- a/htdocs/langs/en_US/website.lang
+++ b/htdocs/langs/en_US/website.lang
@@ -47,6 +47,7 @@ PreviewSiteServedByWebServer=Preview %s in a new tab.
The %s will
PreviewSiteServedByDolibarr=Preview %s in a new tab.
The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed. The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr. URL served by Dolibarr: %s
To use your own external web server to serve this web site, create a virtual host on your web server that point on directory %s then enter the name of this virtual server and click on the other preview button.
VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
NoPageYet=No pages yet
+YouCanCreatePageOrImportTemplate=You can create a new page or import a full website template
SyntaxHelp=Help on specific syntax tips
YouCanEditHtmlSourceckeditor=You can edit HTML source code using the "Source" button in editor.
YouCanEditHtmlSource= You can include PHP code into this source using tags <?php ?>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.
You can also include content of another Page/Container with the following syntax: <?php includeContainer('alias_of_container_to_include'); ?>
You can make a redirect to another Page/Container with the following syntax: <?php redirectToContainer('alias_of_container_to_redirect_to'); ?>
To include a link to download a file stored into the documents directory, use the document.php wrapper: Example, for a file into documents/ecm (need to be logged), syntax is: <a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"> For a file into documents/medias (open directory for public access), syntax is: <a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"> For a file shared with a share link (open access using the sharing hash key of file), syntax is: <a href="/document.php?hashp=publicsharekeyoffile">
To include an image stored into the documents directory, use the viewimage.php wrapper: Example, for an image into documents/medias (open access), syntax is: <a href="/viewimage.php?modulepart=medias&file=[relative_dir/]filename.ext">
diff --git a/htdocs/main.inc.php b/htdocs/main.inc.php
index acb04734234..26dcb94a0ba 100644
--- a/htdocs/main.inc.php
+++ b/htdocs/main.inc.php
@@ -1170,12 +1170,15 @@ function top_htmlhead($head, $title='', $disablejs=0, $disablehead=0, $arrayofjs
$ext='layout='.$conf->browser->layout.'&version='.urlencode(DOL_VERSION);
print "\n";
+
if (GETPOST('dol_basehref','alpha')) print ''."\n";
+
// Displays meta
print ''."\n";
print ''."\n"; // Do not index
print ''."\n"; // Scale for mobile device
print ''."\n";
+
// Favicon
$favicon=dol_buildpath('/theme/'.$conf->theme.'/img/favicon.ico',1);
if (! empty($conf->global->MAIN_FAVICON_URL)) $favicon=$conf->global->MAIN_FAVICON_URL;
@@ -1184,6 +1187,9 @@ function top_htmlhead($head, $title='', $disablejs=0, $disablehead=0, $arrayofjs
//if (empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) print ''."\n";
//if (empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) print ''."\n";
+ // Auto refresh page
+ if (GETPOST('autorefresh','int') > 0) print '';
+
// Displays title
$appli=constant('DOL_APPLICATION_TITLE');
if (!empty($conf->global->MAIN_APPLICATION_TITLE)) $appli=$conf->global->MAIN_APPLICATION_TITLE;
diff --git a/htdocs/product/dynamic_price/class/price_expression.class.php b/htdocs/product/dynamic_price/class/price_expression.class.php
index 5ce3068c144..c5bf6808fac 100644
--- a/htdocs/product/dynamic_price/class/price_expression.class.php
+++ b/htdocs/product/dynamic_price/class/price_expression.class.php
@@ -31,7 +31,12 @@ class PriceExpression
{
var $db; //!< To store db handler
var $error; //!< To return error code (or message)
- var $errors=array(); //!< To return several error codes (or messages)
+ /**
+ *
+ * @var string[] Error codes (or messages)
+ */
+ public $errors = array ();
+
var $id;
var $title;
var $expression;
diff --git a/htdocs/product/dynamic_price/class/price_global_variable.class.php b/htdocs/product/dynamic_price/class/price_global_variable.class.php
index 97a3ee1f4e6..1432afcfdeb 100644
--- a/htdocs/product/dynamic_price/class/price_global_variable.class.php
+++ b/htdocs/product/dynamic_price/class/price_global_variable.class.php
@@ -31,7 +31,12 @@ class PriceGlobalVariable
{
var $db; //!< To store db handler
var $error; //!< To return error code (or message)
- var $errors=array(); //!< To return several error codes (or messages)
+ /**
+ *
+ * @var string[] Error codes (or messages)
+ */
+ public $errors = array ();
+
var $id;
var $code;
var $description;
diff --git a/htdocs/product/dynamic_price/class/price_global_variable_updater.class.php b/htdocs/product/dynamic_price/class/price_global_variable_updater.class.php
index f4595062098..37a3e116683 100644
--- a/htdocs/product/dynamic_price/class/price_global_variable_updater.class.php
+++ b/htdocs/product/dynamic_price/class/price_global_variable_updater.class.php
@@ -31,7 +31,12 @@ class PriceGlobalVariableUpdater
{
var $db; //!< To store db handler
var $error; //!< To return error code (or message)
- var $errors=array(); //!< To return several error codes (or messages)
+ /**
+ *
+ * @var string[] Error codes (or messages)
+ */
+ public $errors = array ();
+
var $types=array(0, 1); //!< Updater types
var $update_min = 5; //!< Minimal update rate
var $id;
diff --git a/htdocs/product/list.php b/htdocs/product/list.php
index 593711290d3..9b26eecc426 100644
--- a/htdocs/product/list.php
+++ b/htdocs/product/list.php
@@ -744,22 +744,34 @@ if ($resql)
if (! $i) $totalarray['nbfield']++;
}
- // Duration
- if (! empty($arrayfields['p.duration']['checked']))
- {
- print '
\n";
@@ -1845,7 +1845,7 @@ else
if ($caneditgroup)
{
print '';
- print img_delete($langs->trans("RemoveFromGroup"));
+ print img_picto($langs->trans("RemoveFromGroup"), 'unlink');
print '';
}
else
diff --git a/htdocs/variants/admin/admin.php b/htdocs/variants/admin/admin.php
index c21049a5c76..0110d9db789 100644
--- a/htdocs/variants/admin/admin.php
+++ b/htdocs/variants/admin/admin.php
@@ -1,6 +1,6 @@
+/* Copyright (C) 2016 Marcos García
+ * Copyright (C) 2018 Frédéric France
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -62,9 +62,9 @@ print '