Compare commits
60 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
97aaff7395 | ||
|
|
a602309e04 | ||
|
|
f51935a258 | ||
|
|
7cf1a97673 | ||
|
|
cf57e7e88b | ||
|
|
a186e16568 | ||
|
|
6eddee9a78 | ||
|
|
52138372ce | ||
|
|
a27538f582 | ||
|
|
a621032643 | ||
|
|
32646cb7f4 | ||
|
|
74b67eb6c6 | ||
|
|
c1889afd7b | ||
|
|
644f365455 | ||
|
|
667890247c | ||
|
|
c727bbb530 | ||
|
|
adf9fcb290 | ||
|
|
46dc264654 | ||
|
|
23e39cb8b3 | ||
|
|
40329db2b2 | ||
|
|
887d0a5d01 | ||
|
|
e2b5315e23 | ||
|
|
51574768f4 | ||
|
|
2462daf1ed | ||
|
|
9c7381601f | ||
|
|
35a25599e5 | ||
|
|
9bfeb5e424 | ||
|
|
42590d8274 | ||
|
|
48a2fd3c61 | ||
|
|
5001cc6de5 | ||
|
|
bbca5118b7 | ||
|
|
383fc27618 | ||
|
|
fe7c71d1c2 | ||
|
|
973a2ede97 | ||
|
|
b0c2ccafcd | ||
|
|
d3fc152001 | ||
|
|
e8fd551043 | ||
|
|
34b3113bb7 | ||
|
|
90854dc2bf | ||
|
|
b44ddaa696 | ||
|
|
a5fe2ab0e5 | ||
|
|
dccaf116a2 | ||
|
|
c61e4b0e25 | ||
|
|
d432620708 | ||
|
|
316838afb3 | ||
|
|
3477930db2 | ||
|
|
bdd48c38b0 | ||
|
|
d10f277bba | ||
|
|
03a9daa3e6 | ||
|
|
e5193f16cc | ||
|
|
9abde6c057 | ||
|
|
5060d2c4f0 | ||
|
|
7475d4aaa2 | ||
|
|
8e2d2ac70f | ||
|
|
66f1696a9b | ||
|
|
6a878d9c13 | ||
|
|
5af17195b7 | ||
|
|
a52ae607ba | ||
|
|
6aa8ba8935 | ||
|
|
0a8ebb7dc4 |
@@ -54,9 +54,12 @@ if (empty($argv[1])) {
|
|||||||
parse_str($argv[1]);
|
parse_str($argv[1]);
|
||||||
|
|
||||||
$i=0;
|
$i=0;
|
||||||
|
$result = array();
|
||||||
while ($i < $argc) {
|
while ($i < $argc) {
|
||||||
if (! empty($argv[$i])) parse_str($argv[$i]);
|
if (!empty($argv[$i])) {
|
||||||
if (preg_match('/includeconstant=/', $argv[$i])) {
|
parse_str($argv[$i], $result); // set all params $release, $includecustom, $includeconstant, $buildzip ...
|
||||||
|
}
|
||||||
|
if (preg_match('/includeconstant=/', $argv[$i])) {
|
||||||
$tmp=explode(':', $includeconstant, 3); // $includeconstant has been set with previous parse_str()
|
$tmp=explode(':', $includeconstant, 3); // $includeconstant has been set with previous parse_str()
|
||||||
if (count($tmp) != 3) {
|
if (count($tmp) != 3) {
|
||||||
print "Error: Bad parameter includeconstant=".$includeconstant."\n";
|
print "Error: Bad parameter includeconstant=".$includeconstant."\n";
|
||||||
|
|||||||
@@ -102,7 +102,7 @@ with
|
|||||||
* Replace in tcpdf.php
|
* Replace in tcpdf.php
|
||||||
|
|
||||||
if (!@TCPDF_STATIC::file_exists($file)) {
|
if (!@TCPDF_STATIC::file_exists($file)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
with
|
with
|
||||||
@@ -110,9 +110,9 @@ with
|
|||||||
if (!@TCPDF_STATIC::file_exists($file)) {
|
if (!@TCPDF_STATIC::file_exists($file)) {
|
||||||
// DOL CHANGE If we keep this, the image is not visible on pages after the first one.
|
// DOL CHANGE If we keep this, the image is not visible on pages after the first one.
|
||||||
//var_dump($file.' '.(!@TCPDF_STATIC::file_exists($file)));
|
//var_dump($file.' '.(!@TCPDF_STATIC::file_exists($file)));
|
||||||
//return false;
|
//return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
* Replace in tcpdf.php
|
* Replace in tcpdf.php
|
||||||
|
|
||||||
if (($imgsrc[0] === '/') AND !empty($_SERVER['DOCUMENT_ROOT']) AND ($_SERVER['DOCUMENT_ROOT'] != '/')) {
|
if (($imgsrc[0] === '/') AND !empty($_SERVER['DOCUMENT_ROOT']) AND ($_SERVER['DOCUMENT_ROOT'] != '/')) {
|
||||||
@@ -133,7 +133,7 @@ with
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
elseif (($imgsrc[0] === '/') AND !empty($_SERVER['DOCUMENT_ROOT']) AND ($_SERVER['DOCUMENT_ROOT'] != '/')) {
|
elseif (($imgsrc[0] === '/') AND !empty($_SERVER['DOCUMENT_ROOT']) AND ($_SERVER['DOCUMENT_ROOT'] != '/')) {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
* In tecnickcom/tcpdf/include/tcpdf_static, in function fopenLocal, replace
|
* In tecnickcom/tcpdf/include/tcpdf_static, in function fopenLocal, replace
|
||||||
@@ -152,16 +152,16 @@ with
|
|||||||
elseif (strpos($filename, '://') === false)
|
elseif (strpos($filename, '://') === false)
|
||||||
|
|
||||||
* To avoid to have QRcode changed because generated with a random mask, replace
|
* To avoid to have QRcode changed because generated with a random mask, replace
|
||||||
define('QR_FIND_FROM_RANDOM', 2);
|
define('QR_FIND_FROM_RANDOM', 2);
|
||||||
with
|
with:
|
||||||
define('QR_FIND_FROM_RANDOM', false);
|
define('QR_FIND_FROM_RANDOM', false);
|
||||||
|
|
||||||
* Removed useless directories ("examples", "tools")
|
* Removed useless directories ("examples", "tools")
|
||||||
|
|
||||||
* Optionnaly, removed all fonts except
|
* Optionnaly, removed all fonts except
|
||||||
dejavusans* (used by greek, arab, persan, romanian, turkish),
|
dejavusans* (used by greek, arab, persan, romanian, turkish),
|
||||||
freemono* (russian),
|
freemono* (russian),
|
||||||
cid*+msungstdlight+stsongstdlight+uni2cid* (chinese),
|
cid*+msungstdlight+stsongstdlight+uni2cid* (chinese),
|
||||||
helvetica* (all other languages),
|
helvetica* (all other languages),
|
||||||
zapfdingbats.php (for special chars like form checkboxes)
|
zapfdingbats.php (for special chars like form checkboxes)
|
||||||
|
|
||||||
@@ -173,15 +173,15 @@ In htdocs/includes/tecnickcom/tcpdf/tcpdf.php
|
|||||||
* In tecnickcom/tcpdf/include/tcpdf_static, in function intToRoman, right at the beginning
|
* In tecnickcom/tcpdf/include/tcpdf_static, in function intToRoman, right at the beginning
|
||||||
of the function, replace:
|
of the function, replace:
|
||||||
|
|
||||||
$roman = '';
|
$roman = '';
|
||||||
|
|
||||||
with:
|
with:
|
||||||
|
|
||||||
$roman = '';
|
$roman = '';
|
||||||
if ($number >= 4000) {
|
if ($number >= 4000) {
|
||||||
// do not represent numbers above 4000 in Roman numerals
|
// do not represent numbers above 4000 in Roman numerals
|
||||||
return strval($number);
|
return strval($number);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -192,14 +192,14 @@ Add fpdf_tpl.php 1.2
|
|||||||
Add tcpdi.php
|
Add tcpdi.php
|
||||||
|
|
||||||
Add tcpdi_parser.php and replace:
|
Add tcpdi_parser.php and replace:
|
||||||
require_once(dirname(__FILE__).'/include/tcpdf_filters.php');
|
require_once(dirname(__FILE__).'/include/tcpdf_filters.php');
|
||||||
with:
|
with:
|
||||||
require_once(dirname(__FILE__).'/../tecnickcom/tcpdf/include/tcpdf_filters.php');
|
require_once(dirname(__FILE__).'/../tecnickcom/tcpdf/include/tcpdf_filters.php');
|
||||||
|
|
||||||
|
|
||||||
* Fix by replacing
|
* Fix by replacing
|
||||||
} elseif (($key == '/Index') AND ($v[0] == PDF_TYPE_ARRAY AND count($v[1] >= 2))) {
|
} elseif (($key == '/Index') AND ($v[0] == PDF_TYPE_ARRAY AND count($v[1] >= 2))) {
|
||||||
with
|
with
|
||||||
} elseif (($key == '/Index') AND ($v[0] == PDF_TYPE_ARRAY AND count($v[1]) >= 2)) {
|
} elseif (($key == '/Index') AND ($v[0] == PDF_TYPE_ARRAY AND count($v[1]) >= 2)) {
|
||||||
|
|
||||||
|
|
||||||
@@ -215,11 +215,11 @@ window.location.href=pRef
|
|||||||
|
|
||||||
* Replace
|
* Replace
|
||||||
vTmpDiv=this.newNode(vTmpCell, 'div', null, null, vTaskList[i].getResource());
|
vTmpDiv=this.newNode(vTmpCell, 'div', null, null, vTaskList[i].getResource());
|
||||||
with
|
with
|
||||||
var vTmpNode=this.newNode(vTmpCell, 'div', null, '');
|
var vTmpNode=this.newNode(vTmpCell, 'div', null, '');
|
||||||
vTmpNode=this.newNode(vTmpNode, 'a', null, '', vLangs[vLang]['moreinfo']);
|
vTmpNode=this.newNode(vTmpNode, 'a', null, '', vLangs[vLang]['moreinfo']);
|
||||||
vTmpNode.setAttribute('href',vTaskList[i].getLink());
|
vTmpNode.setAttribute('href',vTaskList[i].getLink());
|
||||||
|
|
||||||
* Replace '% Comp.' to have a smaller text column header
|
* Replace '% Comp.' to have a smaller text column header
|
||||||
'comp':'% Comp.'
|
'comp':'% Comp.'
|
||||||
with
|
with
|
||||||
@@ -262,6 +262,23 @@ Change content of file htdocs/includes/restler/framework/Luracast/Restler/explor
|
|||||||
// @CHANGE LDR
|
// @CHANGE LDR
|
||||||
if (!is_string($haystack)) return false;
|
if (!is_string($haystack)) return false;
|
||||||
|
|
||||||
|
* Add a test into AutoLoader.php to complete function loadThisLoader and test if property exists before calling it. For this replace code
|
||||||
|
|
||||||
|
if (false !== $file = $b::$loader[1]($className) && $this->exists($className, $b::$loader[1])) {
|
||||||
|
return $file;
|
||||||
|
}
|
||||||
|
|
||||||
|
with:
|
||||||
|
|
||||||
|
//avoid PHP Fatal error: Uncaught Error: Access to undeclared static property: Composer\\Autoload\\ClassLoader::$loader
|
||||||
|
//in case of multiple autoloader systems
|
||||||
|
if(property_exists($b, $loader[1])) {
|
||||||
|
if (false !== $file = $b::$loader[1]($className)
|
||||||
|
&& $this->exists($className, $b::$loader[1])) {
|
||||||
|
return $file;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
PARSEDOWN
|
PARSEDOWN
|
||||||
---------
|
---------
|
||||||
@@ -269,16 +286,15 @@ PARSEDOWN
|
|||||||
* Add support of css by adding in Parsedown.php:
|
* Add support of css by adding in Parsedown.php:
|
||||||
|
|
||||||
// @CHANGE LDR
|
// @CHANGE LDR
|
||||||
'class' => $Link['element']['attributes']['class']
|
'class' => $Link['element']['attributes']['class']
|
||||||
|
|
||||||
...
|
...
|
||||||
|
|
||||||
// @CHANGE LDR
|
// @CHANGE LDR
|
||||||
if (preg_match('/{([^}]+)}/', $remainder, $matches2))
|
if (preg_match('/{([^}]+)}/', $remainder, $matches2)) {
|
||||||
{
|
$Element['attributes']['class'] = $matches2[1];
|
||||||
$Element['attributes']['class'] = $matches2[1];
|
$remainder = preg_replace('/{'.preg_quote($matches2[1],'/').'}/', '', $remainder);
|
||||||
$remainder = preg_replace('/{'.preg_quote($matches2[1],'/').'}/', '', $remainder);
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// @CHANGE LDR
|
// @CHANGE LDR
|
||||||
@@ -311,7 +327,7 @@ Add into Class Google of file OAuth2/Service/Google:
|
|||||||
}
|
}
|
||||||
$this->approvalPrompt = $prompt;
|
$this->approvalPrompt = $prompt;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
JEDITABLE.JS
|
JEDITABLE.JS
|
||||||
|
|||||||
@@ -882,13 +882,13 @@ class AccountancyExport
|
|||||||
print $date_document . $separator;
|
print $date_document . $separator;
|
||||||
|
|
||||||
// FEC:CompteNum
|
// FEC:CompteNum
|
||||||
print $line->numero_compte . $separator;
|
print length_accountg($line->numero_compte) . $separator;
|
||||||
|
|
||||||
// FEC:CompteLib
|
// FEC:CompteLib
|
||||||
print dol_string_unaccent($line->label_compte) . $separator;
|
print dol_string_unaccent($line->label_compte) . $separator;
|
||||||
|
|
||||||
// FEC:CompAuxNum
|
// FEC:CompAuxNum
|
||||||
print $line->subledger_account . $separator;
|
print length_accounta($line->subledger_account) . $separator;
|
||||||
|
|
||||||
// FEC:CompAuxLib
|
// FEC:CompAuxLib
|
||||||
print dol_string_unaccent($line->subledger_label) . $separator;
|
print dol_string_unaccent($line->subledger_label) . $separator;
|
||||||
@@ -983,13 +983,13 @@ class AccountancyExport
|
|||||||
print $date_creation . $separator;
|
print $date_creation . $separator;
|
||||||
|
|
||||||
// FEC:CompteNum
|
// FEC:CompteNum
|
||||||
print $line->numero_compte . $separator;
|
print length_accountg($line->numero_compte) . $separator;
|
||||||
|
|
||||||
// FEC:CompteLib
|
// FEC:CompteLib
|
||||||
print dol_string_unaccent($line->label_compte) . $separator;
|
print dol_string_unaccent($line->label_compte) . $separator;
|
||||||
|
|
||||||
// FEC:CompAuxNum
|
// FEC:CompAuxNum
|
||||||
print $line->subledger_account . $separator;
|
print length_accounta($line->subledger_account) . $separator;
|
||||||
|
|
||||||
// FEC:CompAuxLib
|
// FEC:CompAuxLib
|
||||||
print dol_string_unaccent($line->subledger_label) . $separator;
|
print dol_string_unaccent($line->subledger_label) . $separator;
|
||||||
|
|||||||
@@ -478,6 +478,12 @@ $sql .= " ".MAIN_DB_PREFIX."bank as b";
|
|||||||
if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) $sql .= " LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element."_extrafields as ef on (b.rowid = ef.fk_object)";
|
if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) $sql .= " LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element."_extrafields as ef on (b.rowid = ef.fk_object)";
|
||||||
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."bank_url as bu ON bu.fk_bank = b.rowid AND type = 'company'";
|
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."bank_url as bu ON bu.fk_bank = b.rowid AND type = 'company'";
|
||||||
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON bu.url_id = s.rowid";
|
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON bu.url_id = s.rowid";
|
||||||
|
|
||||||
|
// Add fields from hooks
|
||||||
|
$parameters = array();
|
||||||
|
$reshook = $hookmanager->executeHooks('printFieldListJoin', $parameters); // Note that $action and $object may have been modified by hook
|
||||||
|
$sql .= $hookmanager->resPrint;
|
||||||
|
|
||||||
$sql .= " WHERE b.fk_account = ba.rowid";
|
$sql .= " WHERE b.fk_account = ba.rowid";
|
||||||
$sql .= " AND ba.entity IN (".getEntity('bank_account').")";
|
$sql .= " AND ba.entity IN (".getEntity('bank_account').")";
|
||||||
if ($search_account > 0) $sql .= " AND b.fk_account = ".$search_account;
|
if ($search_account > 0) $sql .= " AND b.fk_account = ".$search_account;
|
||||||
@@ -1473,6 +1479,11 @@ if ($resql)
|
|||||||
if (!$i) $totalarray['nbfield']++;
|
if (!$i) $totalarray['nbfield']++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Fields from hook
|
||||||
|
$parameters=array('arrayfields'=>$arrayfields, 'obj'=>$objp, 'i'=>$i, 'totalarray'=>&$totalarray);
|
||||||
|
$reshook=$hookmanager->executeHooks('printFieldListValue', $parameters, $objecttmp); // Note that $action and $objecttmpect may have been modified by hook
|
||||||
|
print $hookmanager->resPrint;
|
||||||
|
|
||||||
// Action edit/delete
|
// Action edit/delete
|
||||||
print '<td class="nowraponall" align="center">';
|
print '<td class="nowraponall" align="center">';
|
||||||
// Transaction reconciliated or edit link
|
// Transaction reconciliated or edit link
|
||||||
|
|||||||
@@ -522,11 +522,13 @@ class BonPrelevement extends CommonObject
|
|||||||
} else {
|
} else {
|
||||||
if ($this->type == 'bank-transfer') {
|
if ($this->type == 'bank-transfer') {
|
||||||
$modeforaddpayment = 'payment_supplier';
|
$modeforaddpayment = 'payment_supplier';
|
||||||
|
$labelforaddpayment = '(BankTransferPayment)';
|
||||||
} else {
|
} else {
|
||||||
$modeforaddpayment = 'payment';
|
$modeforaddpayment = 'payment';
|
||||||
|
$labelforaddpayment = '(WithdrawalPayment)';
|
||||||
}
|
}
|
||||||
|
|
||||||
$result = $paiement->addPaymentToBank($user, $modeforaddpayment, '(WithdrawalPayment)', $bankaccount, '', '');
|
$result = $paiement->addPaymentToBank($user, $modeforaddpayment, $labelforaddpayment, $bankaccount, '', '');
|
||||||
if ($result < 0)
|
if ($result < 0)
|
||||||
{
|
{
|
||||||
$error++;
|
$error++;
|
||||||
|
|||||||
@@ -414,7 +414,7 @@ if ($modecompta == 'CREANCES-DETTES')
|
|||||||
|
|
||||||
// Quantity
|
// Quantity
|
||||||
print '<td class="right">';
|
print '<td class="right">';
|
||||||
print $qty[$key];
|
print price($qty[$key], 1, $langs, 0, 0);
|
||||||
print '</td>';
|
print '</td>';
|
||||||
|
|
||||||
// Percent;
|
// Percent;
|
||||||
|
|||||||
@@ -339,7 +339,7 @@ if ($sql_select)
|
|||||||
|
|
||||||
$num = $db->num_rows($resql);
|
$num = $db->num_rows($resql);
|
||||||
|
|
||||||
$param = "&socid=".urlencode($socid)."&type_element=".urlencode($type_element);
|
$param = "&socid=".urlencode($socid)."&type_element=".urlencode($type_element)."&id=".urlencode($id);
|
||||||
if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param .= '&contextpage='.urlencode($contextpage);
|
if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param .= '&contextpage='.urlencode($contextpage);
|
||||||
if ($limit > 0 && $limit != $conf->liste_limit) $param .= '&limit='.urlencode($limit);
|
if ($limit > 0 && $limit != $conf->liste_limit) $param .= '&limit='.urlencode($limit);
|
||||||
if ($sprod_fulldescr) $param .= "&sprod_fulldescr=".urlencode($sprod_fulldescr);
|
if ($sprod_fulldescr) $param .= "&sprod_fulldescr=".urlencode($sprod_fulldescr);
|
||||||
|
|||||||
@@ -1891,7 +1891,9 @@ abstract class CommonObject
|
|||||||
$sql = "SELECT MAX(te.".$fieldid.")";
|
$sql = "SELECT MAX(te.".$fieldid.")";
|
||||||
$sql .= " FROM ".(empty($nodbprefix) ?MAIN_DB_PREFIX:'').$this->table_element." as te";
|
$sql .= " FROM ".(empty($nodbprefix) ?MAIN_DB_PREFIX:'').$this->table_element." as te";
|
||||||
if ($this->element == 'user' && !empty($conf->global->MULTICOMPANY_TRANSVERSE_MODE)) {
|
if ($this->element == 'user' && !empty($conf->global->MULTICOMPANY_TRANSVERSE_MODE)) {
|
||||||
$sql .= ",".MAIN_DB_PREFIX."usergroup_user as ug";
|
if (empty($user->admin) || !empty($user->entity) || $conf->entity != 1) {
|
||||||
|
$sql .= " INNER JOIN ".MAIN_DB_PREFIX."usergroup_user as ug ON ug.fk_user=te.rowid";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (isset($this->ismultientitymanaged) && !is_numeric($this->ismultientitymanaged)) {
|
if (isset($this->ismultientitymanaged) && !is_numeric($this->ismultientitymanaged)) {
|
||||||
$tmparray = explode('@', $this->ismultientitymanaged);
|
$tmparray = explode('@', $this->ismultientitymanaged);
|
||||||
@@ -1916,7 +1918,6 @@ abstract class CommonObject
|
|||||||
if (!empty($user->admin) && empty($user->entity) && $conf->entity == 1) {
|
if (!empty($user->admin) && empty($user->entity) && $conf->entity == 1) {
|
||||||
$sql .= " AND te.entity IS NOT NULL"; // Show all users
|
$sql .= " AND te.entity IS NOT NULL"; // Show all users
|
||||||
} else {
|
} else {
|
||||||
$sql .= " AND ug.fk_user = te.rowid";
|
|
||||||
$sql .= " AND ug.entity IN (".getEntity($this->element).")";
|
$sql .= " AND ug.entity IN (".getEntity($this->element).")";
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@@ -1944,7 +1945,9 @@ abstract class CommonObject
|
|||||||
$sql = "SELECT MIN(te.".$fieldid.")";
|
$sql = "SELECT MIN(te.".$fieldid.")";
|
||||||
$sql .= " FROM ".(empty($nodbprefix) ?MAIN_DB_PREFIX:'').$this->table_element." as te";
|
$sql .= " FROM ".(empty($nodbprefix) ?MAIN_DB_PREFIX:'').$this->table_element." as te";
|
||||||
if ($this->element == 'user' && !empty($conf->global->MULTICOMPANY_TRANSVERSE_MODE)) {
|
if ($this->element == 'user' && !empty($conf->global->MULTICOMPANY_TRANSVERSE_MODE)) {
|
||||||
$sql .= ",".MAIN_DB_PREFIX."usergroup_user as ug";
|
if (empty($user->admin) || !empty($user->entity) || $conf->entity != 1) {
|
||||||
|
$sql .= " INNER JOIN ".MAIN_DB_PREFIX."usergroup_user as ug ON ug.fk_user=te.rowid";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (isset($this->ismultientitymanaged) && !is_numeric($this->ismultientitymanaged)) {
|
if (isset($this->ismultientitymanaged) && !is_numeric($this->ismultientitymanaged)) {
|
||||||
$tmparray = explode('@', $this->ismultientitymanaged);
|
$tmparray = explode('@', $this->ismultientitymanaged);
|
||||||
@@ -1969,7 +1972,6 @@ abstract class CommonObject
|
|||||||
if (!empty($user->admin) && empty($user->entity) && $conf->entity == 1) {
|
if (!empty($user->admin) && empty($user->entity) && $conf->entity == 1) {
|
||||||
$sql .= " AND te.entity IS NOT NULL"; // Show all users
|
$sql .= " AND te.entity IS NOT NULL"; // Show all users
|
||||||
} else {
|
} else {
|
||||||
$sql .= " AND ug.fk_user = te.rowid";
|
|
||||||
$sql .= " AND ug.entity IN (".getEntity($this->element).")";
|
$sql .= " AND ug.entity IN (".getEntity($this->element).")";
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -383,7 +383,7 @@ class Utils
|
|||||||
if ($compression == 'none') fclose($handle);
|
if ($compression == 'none') fclose($handle);
|
||||||
if ($compression == 'gz') gzclose($handle);
|
if ($compression == 'gz') gzclose($handle);
|
||||||
if ($compression == 'bz') bzclose($handle);
|
if ($compression == 'bz') bzclose($handle);
|
||||||
if ($ok && preg_match('/^-- (MySql|MariaDB)/i', $errormsg)) { // No error
|
if ($ok && preg_match('/^-- (MySql|MariaDB)/i', $errormsg) || preg_match('/^\/\*M?!999999/', $errormsg)) { // Start of file is ok, NOT an error
|
||||||
$errormsg = '';
|
$errormsg = '';
|
||||||
} else {
|
} else {
|
||||||
// Renommer fichier sortie en fichier erreur
|
// Renommer fichier sortie en fichier erreur
|
||||||
|
|||||||
@@ -65,6 +65,17 @@ function getDolGlobalInt($key)
|
|||||||
return (int) (empty($conf->global->$key) ? 0 : $conf->global->$key);
|
return (int) (empty($conf->global->$key) ? 0 : $conf->global->$key);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Is Dolibarr module enabled
|
||||||
|
* @param string $module module name to check
|
||||||
|
* @return int
|
||||||
|
*/
|
||||||
|
function isModEnabled($module)
|
||||||
|
{
|
||||||
|
global $conf;
|
||||||
|
return !empty($conf->$module->enabled);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return a DoliDB instance (database handler).
|
* Return a DoliDB instance (database handler).
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -371,7 +371,7 @@ function show_stats_for_company($product, $socid)
|
|||||||
print '</td><td class="right">';
|
print '</td><td class="right">';
|
||||||
print $product->stats_propale['nb'];
|
print $product->stats_propale['nb'];
|
||||||
print '</td><td class="right">';
|
print '</td><td class="right">';
|
||||||
print $product->stats_propale['qty'];
|
print price($product->stats_propale['qty'], 1, $langs, 0, 0);
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
}
|
}
|
||||||
@@ -389,7 +389,7 @@ function show_stats_for_company($product, $socid)
|
|||||||
print '</td><td class="right">';
|
print '</td><td class="right">';
|
||||||
print $product->stats_proposal_supplier['nb'];
|
print $product->stats_proposal_supplier['nb'];
|
||||||
print '</td><td class="right">';
|
print '</td><td class="right">';
|
||||||
print $product->stats_proposal_supplier['qty'];
|
print price($product->stats_proposal_supplier['qty'], 1, $langs, 0, 0);
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
}
|
}
|
||||||
@@ -407,7 +407,7 @@ function show_stats_for_company($product, $socid)
|
|||||||
print '</td><td class="right">';
|
print '</td><td class="right">';
|
||||||
print $product->stats_commande['nb'];
|
print $product->stats_commande['nb'];
|
||||||
print '</td><td class="right">';
|
print '</td><td class="right">';
|
||||||
print $product->stats_commande['qty'];
|
print price($product->stats_commande['qty'], 1, $langs, 0, 0);
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
}
|
}
|
||||||
@@ -425,7 +425,7 @@ function show_stats_for_company($product, $socid)
|
|||||||
print '</td><td class="right">';
|
print '</td><td class="right">';
|
||||||
print $product->stats_commande_fournisseur['nb'];
|
print $product->stats_commande_fournisseur['nb'];
|
||||||
print '</td><td class="right">';
|
print '</td><td class="right">';
|
||||||
print $product->stats_commande_fournisseur['qty'];
|
print price($product->stats_commande_fournisseur['qty'], 1, $langs, 0, 0);
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
}
|
}
|
||||||
@@ -443,7 +443,7 @@ function show_stats_for_company($product, $socid)
|
|||||||
print '</td><td class="right">';
|
print '</td><td class="right">';
|
||||||
print $product->stats_facture['nb'];
|
print $product->stats_facture['nb'];
|
||||||
print '</td><td class="right">';
|
print '</td><td class="right">';
|
||||||
print $product->stats_facture['qty'];
|
print price($product->stats_facture['qty'], 1, $langs, 0, 0);
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
}
|
}
|
||||||
@@ -461,7 +461,7 @@ function show_stats_for_company($product, $socid)
|
|||||||
print '</td><td class="right">';
|
print '</td><td class="right">';
|
||||||
print $product->stats_facture_fournisseur['nb'];
|
print $product->stats_facture_fournisseur['nb'];
|
||||||
print '</td><td class="right">';
|
print '</td><td class="right">';
|
||||||
print $product->stats_facture_fournisseur['qty'];
|
print price($product->stats_facture_fournisseur['qty'], 1, $langs, 0, 0);
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
}
|
}
|
||||||
@@ -480,7 +480,7 @@ function show_stats_for_company($product, $socid)
|
|||||||
print '</td><td class="right">';
|
print '</td><td class="right">';
|
||||||
print $product->stats_contrat['nb'];
|
print $product->stats_contrat['nb'];
|
||||||
print '</td><td class="right">';
|
print '</td><td class="right">';
|
||||||
print $product->stats_contrat['qty'];
|
print price($product->stats_contrat['qty'], 1, $langs, 0, 0);
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1288,8 +1288,7 @@ class pdf_einstein extends ModelePDFCommandes
|
|||||||
{
|
{
|
||||||
$logodir = $conf->mycompany->dir_output;
|
$logodir = $conf->mycompany->dir_output;
|
||||||
if (!empty($conf->mycompany->multidir_output[$object->entity])) $logodir = $conf->mycompany->multidir_output[$object->entity];
|
if (!empty($conf->mycompany->multidir_output[$object->entity])) $logodir = $conf->mycompany->multidir_output[$object->entity];
|
||||||
if (empty($conf->global->MAIN_PDF_USE_LARGE_LOGO))
|
if (empty($conf->global->MAIN_PDF_USE_LARGE_LOGO)) {
|
||||||
{
|
|
||||||
$logo = $logodir.'/logos/thumbs/'.$this->emetteur->logo_small;
|
$logo = $logodir.'/logos/thumbs/'.$this->emetteur->logo_small;
|
||||||
} else {
|
} else {
|
||||||
$logo = $logodir.'/logos/'.$this->emetteur->logo;
|
$logo = $logodir.'/logos/'.$this->emetteur->logo;
|
||||||
|
|||||||
@@ -1631,8 +1631,7 @@ class pdf_crabe extends ModelePDFFactures
|
|||||||
{
|
{
|
||||||
$logodir = $conf->mycompany->dir_output;
|
$logodir = $conf->mycompany->dir_output;
|
||||||
if (!empty($conf->mycompany->multidir_output[$object->entity])) $logodir = $conf->mycompany->multidir_output[$object->entity];
|
if (!empty($conf->mycompany->multidir_output[$object->entity])) $logodir = $conf->mycompany->multidir_output[$object->entity];
|
||||||
if (empty($conf->global->MAIN_PDF_USE_LARGE_LOGO))
|
if (empty($conf->global->MAIN_PDF_USE_LARGE_LOGO)) {
|
||||||
{
|
|
||||||
$logo = $logodir.'/logos/thumbs/'.$this->emetteur->logo_small;
|
$logo = $logodir.'/logos/thumbs/'.$this->emetteur->logo_small;
|
||||||
} else {
|
} else {
|
||||||
$logo = $logodir.'/logos/'.$this->emetteur->logo;
|
$logo = $logodir.'/logos/'.$this->emetteur->logo;
|
||||||
|
|||||||
@@ -1455,8 +1455,7 @@ class pdf_azur extends ModelePDFPropales
|
|||||||
{
|
{
|
||||||
$logodir = $conf->mycompany->dir_output;
|
$logodir = $conf->mycompany->dir_output;
|
||||||
if (!empty($conf->mycompany->multidir_output[$object->entity])) $logodir = $conf->mycompany->multidir_output[$object->entity];
|
if (!empty($conf->mycompany->multidir_output[$object->entity])) $logodir = $conf->mycompany->multidir_output[$object->entity];
|
||||||
if (empty($conf->global->MAIN_PDF_USE_LARGE_LOGO))
|
if (empty($conf->global->MAIN_PDF_USE_LARGE_LOGO)) {
|
||||||
{
|
|
||||||
$logo = $logodir.'/logos/thumbs/'.$this->emetteur->logo_small;
|
$logo = $logodir.'/logos/thumbs/'.$this->emetteur->logo_small;
|
||||||
} else {
|
} else {
|
||||||
$logo = $logodir.'/logos/'.$this->emetteur->logo;
|
$logo = $logodir.'/logos/'.$this->emetteur->logo;
|
||||||
|
|||||||
@@ -1554,8 +1554,7 @@ class pdf_cyan extends ModelePDFPropales
|
|||||||
{
|
{
|
||||||
$logodir = $conf->mycompany->dir_output;
|
$logodir = $conf->mycompany->dir_output;
|
||||||
if (!empty($conf->mycompany->multidir_output[$object->entity])) $logodir = $conf->mycompany->multidir_output[$object->entity];
|
if (!empty($conf->mycompany->multidir_output[$object->entity])) $logodir = $conf->mycompany->multidir_output[$object->entity];
|
||||||
if (empty($conf->global->MAIN_PDF_USE_LARGE_LOGO))
|
if (empty($conf->global->MAIN_PDF_USE_LARGE_LOGO)) {
|
||||||
{
|
|
||||||
$logo = $logodir.'/logos/thumbs/'.$this->emetteur->logo_small;
|
$logo = $logodir.'/logos/thumbs/'.$this->emetteur->logo_small;
|
||||||
} else {
|
} else {
|
||||||
$logo = $logodir.'/logos/'.$this->emetteur->logo;
|
$logo = $logodir.'/logos/'.$this->emetteur->logo;
|
||||||
|
|||||||
@@ -290,10 +290,14 @@ class AutoLoader
|
|||||||
if (is_array($loader)
|
if (is_array($loader)
|
||||||
&& is_callable($loader)) {
|
&& is_callable($loader)) {
|
||||||
$b = new $loader[0];
|
$b = new $loader[0];
|
||||||
if (false !== $file = $b::$loader[1]($className)
|
//avoid PHP Fatal error: Uncaught Error: Access to undeclared static property: Composer\\Autoload\\ClassLoader::$loader
|
||||||
&& $this->exists($className, $b::$loader[1])) {
|
//in case of multiple autoloader systems
|
||||||
return $file;
|
if(property_exists($b, $loader[1])) {
|
||||||
}
|
if (false !== $file = $b::$loader[1]($className)
|
||||||
|
&& $this->exists($className, $b::$loader[1])) {
|
||||||
|
return $file;
|
||||||
|
}
|
||||||
|
}
|
||||||
} elseif (is_callable($loader)
|
} elseif (is_callable($loader)
|
||||||
&& false !== $file = $loader($className)
|
&& false !== $file = $loader($className)
|
||||||
&& $this->exists($className, $loader)) {
|
&& $this->exists($className, $loader)) {
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 1.0 MiB |
|
Before Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 4.9 KiB |
|
Before Width: | Height: | Size: 5.8 KiB |
|
Before Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 4.8 KiB |
|
Before Width: | Height: | Size: 1.0 MiB |
|
Before Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 4.8 KiB |
|
Before Width: | Height: | Size: 1.1 MiB |
|
Before Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 4.4 KiB |
@@ -70,6 +70,7 @@ ALTER TABLE llx_bom_bom ADD COLUMN bomtype integer DEFAULT 0;
|
|||||||
|
|
||||||
UPDATE llx_emailcollector_emailcollector SET ref = 'Collect_Ticket_Requests' WHERE ref = 'Collect_Ticket_Requets';
|
UPDATE llx_emailcollector_emailcollector SET ref = 'Collect_Ticket_Requests' WHERE ref = 'Collect_Ticket_Requets';
|
||||||
UPDATE llx_emailcollector_emailcollector SET ref = 'Collect_Responses_In' WHERE ref = 'Collect_Responses';
|
UPDATE llx_emailcollector_emailcollector SET ref = 'Collect_Responses_In' WHERE ref = 'Collect_Responses';
|
||||||
|
-- VMYSQL4.3 ALTER TABLE llx_emailcollector_emailcollector MODIFY COLUMN tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
|
||||||
|
|
||||||
UPDATE llx_document_model set nom = 'standard' where nom = 'Standard' and type ='stock';
|
UPDATE llx_document_model set nom = 'standard' where nom = 'Standard' and type ='stock';
|
||||||
@@ -332,6 +333,8 @@ ALTER TABLE llx_product_warehouse_properties MODIFY COLUMN desiredstock float;
|
|||||||
|
|
||||||
ALTER TABLE llx_product ADD COLUMN fk_state integer DEFAULT NULL AFTER fk_country;
|
ALTER TABLE llx_product ADD COLUMN fk_state integer DEFAULT NULL AFTER fk_country;
|
||||||
|
|
||||||
|
ALTER TABLE llx_product CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
|
||||||
ALTER TABLE llx_projet ADD COLUMN email_msgid varchar(255);
|
ALTER TABLE llx_projet ADD COLUMN email_msgid varchar(255);
|
||||||
ALTER TABLE llx_ticket ADD COLUMN email_msgid varchar(255);
|
ALTER TABLE llx_ticket ADD COLUMN email_msgid varchar(255);
|
||||||
ALTER TABLE llx_actioncomm ADD COLUMN reply_to varchar(255);
|
ALTER TABLE llx_actioncomm ADD COLUMN reply_to varchar(255);
|
||||||
@@ -592,3 +595,172 @@ insert into llx_c_actioncomm (id, code, type, libelle, module, active, position)
|
|||||||
|
|
||||||
ALTER TABLE llx_export_model MODIFY COLUMN type varchar(64);
|
ALTER TABLE llx_export_model MODIFY COLUMN type varchar(64);
|
||||||
|
|
||||||
|
|
||||||
|
-- ALL tms thanks to regis (commit 111f73bd863c7120a9c13a8fc9ae227a02079cb0)
|
||||||
|
|
||||||
|
ALTER TABLE llx_accounting_account CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_accounting_bookkeeping CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_accounting_bookkeeping_tmp CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_accounting_fiscalyear CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_actioncomm_extrafields CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_actioncomm CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_adherent_extrafields CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_adherent CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_adherent_type_extrafields CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_adherent_type CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_advtargetemailing CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_asset_extrafields CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_asset CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_asset_type_extrafields CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_asset_type CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_bank_account_extrafields CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_bank_account CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_bank CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_blockedlog_authority CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_blockedlog CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_bom_bom_extrafields CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_bom_bomline_extrafields CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_bom_bom CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_bordereau_cheque CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_boxes_def CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_budget_lines CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_budget CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_categories_extrafields CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_categorie CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_c_email_senderprofile CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_c_email_templates CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_c_field_list CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_chargesociales CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_commandedet_extrafields CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_commande_extrafields CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_commande_fournisseurdet_extrafields CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_commande_fournisseur_dispatch_extrafields CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_commande_fournisseur_dispatch CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_commande_fournisseur_extrafields CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_commande_fournisseur_log CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_commande_fournisseur CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_commande CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_comment CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_const CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_contratdet_extrafields CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_contratdet_log CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_contratdet CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_contrat_extrafields CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_contrat CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_cronjob CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_c_shipment_mode CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_deplacement CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_don_extrafields CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_don CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_element_resources CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_emailcollector_emailcollectoraction CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_emailcollector_emailcollectorfilter CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_emailcollector_emailcollector CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_entrepot_extrafields CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_entrepot CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_establishment CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_events CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_expeditiondet_extrafields CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_expedition_extrafields CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_expedition CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_expensereport_extrafields CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_expensereport_ik CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_expensereport_rules CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_expensereport CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_extrafields CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_facturedet_extrafields CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_facturedet_rec_extrafields CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_facture_extrafields CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_facture_fourn_det_extrafields CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_facture_fourn_extrafields CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_facture_fourn CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_facture_rec_extrafields CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_facture_rec CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_facture CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_fichinterdet_extrafields CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_fichinter_extrafields CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_fichinter CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_holiday_extrafields CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_holiday CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_inventorydet CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_inventorydet CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_inventory CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_inventory CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_loan_schedule CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_loan CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_localtax CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_mailing_cibles CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_mailing CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_mailing_unsubscribe CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_menu CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_mrp_mo_extrafields CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_mrp_mo CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_mrp_production CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_notify_def CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_notify CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_online_signatures CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_opensurvey_comments CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_opensurvey_user_studs CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_paiementcharge CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_paiementfourn CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_paiement CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_payment_donation CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_payment_expensereport CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_payment_loan CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_payment_salary_extrafields CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_payment_salary CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_payment_various CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_pos_cash_fence CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_printing CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_product_batch CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_product_customer_price CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_product_extrafields CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_product_fournisseur_price_extrafields CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_product_fournisseur_price CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_product_lot_extrafields CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_product_lot CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_product_price_by_qty CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_product_price CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_product_stock_entrepot CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_product_stock CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_projet_extrafields CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_projet CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_projet_task_extrafields CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_projet_task CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_propaldet_extrafields CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_propal_extrafields CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_propal_merge_pdf_product CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_propal CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_reception_extrafields CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_reception CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_resource_extrafields CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_resource CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_societe_account CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_societe_address CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_societe_contacts CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_societe_extrafields CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_societe_prices CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_societe_remise CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_societe_remise_supplier CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_societe_rib CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_societe CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_socpeople_extrafields CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_socpeople CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_stock_mouvement CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_subscription CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_supplier_proposaldet_extrafields CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_supplier_proposal_extrafields CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_supplier_proposal CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_ticket_extrafields CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_ticket CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_tva CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_user_employment CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_user_extrafields CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_usergroup_extrafields CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_usergroup CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_user_rib CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_user CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_website_extrafields CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_website_page CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_website CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
ALTER TABLE llx_zapier_hook CHANGE COLUMN tms tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
|
||||||
|
|||||||
@@ -43,6 +43,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
|
|||||||
require_once DOL_DOCUMENT_ROOT.'/product/class/html.formproduct.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/product/class/html.formproduct.class.php';
|
||||||
if (!empty($conf->categorie->enabled))
|
if (!empty($conf->categorie->enabled))
|
||||||
require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php';
|
||||||
|
|
||||||
// Load translation files required by the page
|
// Load translation files required by the page
|
||||||
$langs->loadLangs(array('products', 'stocks', 'suppliers', 'companies', 'margins'));
|
$langs->loadLangs(array('products', 'stocks', 'suppliers', 'companies', 'margins'));
|
||||||
@@ -346,10 +347,14 @@ if (!empty($extrafields->attributes[$object->table_element]['label'])) {
|
|||||||
$parameters = array();
|
$parameters = array();
|
||||||
$reshook = $hookmanager->executeHooks('printFieldListSelect', $parameters); // Note that $action and $object may have been modified by hook
|
$reshook = $hookmanager->executeHooks('printFieldListSelect', $parameters); // Note that $action and $object may have been modified by hook
|
||||||
$sql .= $hookmanager->resPrint;
|
$sql .= $hookmanager->resPrint;
|
||||||
|
|
||||||
|
$sqlfields = $sql; // $sql fields to remove for count total
|
||||||
|
|
||||||
$sql .= ' FROM '.MAIN_DB_PREFIX.'product as p';
|
$sql .= ' FROM '.MAIN_DB_PREFIX.'product as p';
|
||||||
if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."product_extrafields as ef on (p.rowid = ef.fk_object)";
|
if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."product_extrafields as ef on (p.rowid = ef.fk_object)";
|
||||||
if (!empty($searchCategoryProductList) || !empty($catid)) $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX."categorie_product as cp ON p.rowid = cp.fk_product"; // We'll need this table joined to the select in order to filter by categ
|
if (!empty($searchCategoryProductList) || !empty($catid)) $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX."categorie_product as cp ON p.rowid = cp.fk_product"; // We'll need this table joined to the select in order to filter by categ
|
||||||
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."product_fournisseur_price as pfp ON p.rowid = pfp.fk_product";
|
$linktopfp = " LEFT JOIN ".MAIN_DB_PREFIX."product_fournisseur_price as pfp ON p.rowid = pfp.fk_product";
|
||||||
|
$sql .= $linktopfp;
|
||||||
// multilang
|
// multilang
|
||||||
if (!empty($conf->global->MAIN_MULTILANGS)) $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."product_lang as pl ON pl.fk_product = p.rowid AND pl.lang = '".$db->escape($langs->getDefaultLang())."'";
|
if (!empty($conf->global->MAIN_MULTILANGS)) $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."product_lang as pl ON pl.fk_product = p.rowid AND pl.lang = '".$db->escape($langs->getDefaultLang())."'";
|
||||||
|
|
||||||
@@ -410,12 +415,12 @@ if ($fourn_id > 0) $sql .= " AND pfp.fk_soc = ".((int) $fourn_id);
|
|||||||
if ($search_country) $sql .= " AND p.fk_country = ".$search_country;
|
if ($search_country) $sql .= " AND p.fk_country = ".$search_country;
|
||||||
if ($search_state) $sql .= " AND p.fk_state = ".$search_state;
|
if ($search_state) $sql .= " AND p.fk_state = ".$search_state;
|
||||||
if ($search_finished >= 0 && $search_finished !== '') $sql .= " AND p.finished = ".$search_finished;
|
if ($search_finished >= 0 && $search_finished !== '') $sql .= " AND p.finished = ".$search_finished;
|
||||||
if ($search_accountancy_code_sell) $sql .= natural_search('p.accountancy_code_sell', $search_accountancy_code_sell);
|
if ($search_accountancy_code_sell) $sql .= natural_search('p.accountancy_code_sell', clean_account($search_accountancy_code_sell));
|
||||||
if ($search_accountancy_code_sell_intra) $sql .= natural_search('p.accountancy_code_sell_intra', $search_accountancy_code_sell_intra);
|
if ($search_accountancy_code_sell_intra) $sql .= natural_search('p.accountancy_code_sell_intra', clean_account($search_accountancy_code_sell_intra));
|
||||||
if ($search_accountancy_code_sell_export) $sql .= natural_search('p.accountancy_code_sell_export', $search_accountancy_code_sell_export);
|
if ($search_accountancy_code_sell_export) $sql .= natural_search('p.accountancy_code_sell_export', clean_account($search_accountancy_code_sell_export));
|
||||||
if ($search_accountancy_code_buy) $sql .= natural_search('p.accountancy_code_buy', $search_accountancy_code_buy);
|
if ($search_accountancy_code_buy) $sql .= natural_search('p.accountancy_code_buy', clean_account($search_accountancy_code_buy));
|
||||||
if ($search_accountancy_code_buy_intra) $sql .= natural_search('p.accountancy_code_buy_intra', $search_accountancy_code_buy_intra);
|
if ($search_accountancy_code_buy_intra) $sql .= natural_search('p.accountancy_code_buy_intra', clean_account($search_accountancy_code_buy_intra));
|
||||||
if ($search_accountancy_code_buy_export) $sql .= natural_search('p.accountancy_code_buy_export', $search_accountancy_code_buy_export);
|
if ($search_accountancy_code_buy_export) $sql .= natural_search('p.accountancy_code_buy_export', clean_account($search_accountancy_code_buy_export));
|
||||||
|
|
||||||
// Add where from extra fields
|
// Add where from extra fields
|
||||||
include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_sql.tpl.php';
|
include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_sql.tpl.php';
|
||||||
@@ -447,8 +452,24 @@ $sql .= $db->order($sortfield, $sortorder);
|
|||||||
$nbtotalofrecords = '';
|
$nbtotalofrecords = '';
|
||||||
if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST))
|
if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST))
|
||||||
{
|
{
|
||||||
|
/* The fast and low memory method to get and count full list converts the sql into a sql count */
|
||||||
|
$sqlforcount = preg_replace('/^'.preg_quote($sqlfields, '/').'/', 'SELECT COUNT(*) as nbtotalofrecords', $sql);
|
||||||
|
$sqlforcount = preg_replace('/'.preg_quote($linktopfp, '/').'/', '', $sqlforcount);
|
||||||
|
$sqlforcount = preg_replace('/GROUP BY .*$/', '', $sqlforcount);
|
||||||
|
|
||||||
|
$resql = $db->query($sqlforcount);
|
||||||
|
if ($resql) {
|
||||||
|
$objforcount = $db->fetch_object($resql);
|
||||||
|
$nbtotalofrecords = $objforcount->nbtotalofrecords;
|
||||||
|
} else {
|
||||||
|
dol_print_error($db);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
$result = $db->query($sql);
|
$result = $db->query($sql);
|
||||||
$nbtotalofrecords = $db->num_rows($result);
|
$nbtotalofrecords = $db->num_rows($result);
|
||||||
|
*/
|
||||||
|
|
||||||
if (($page * $limit) > $nbtotalofrecords) // if total resultset is smaller then paging size (filtering), goto and load page 0
|
if (($page * $limit) > $nbtotalofrecords) // if total resultset is smaller then paging size (filtering), goto and load page 0
|
||||||
{
|
{
|
||||||
$page = 0;
|
$page = 0;
|
||||||
@@ -1481,33 +1502,33 @@ if ($resql)
|
|||||||
// Accountancy code sell
|
// Accountancy code sell
|
||||||
if (!empty($arrayfields['p.accountancy_code_sell']['checked']))
|
if (!empty($arrayfields['p.accountancy_code_sell']['checked']))
|
||||||
{
|
{
|
||||||
print '<td>'.$obj->accountancy_code_sell.'</td>';
|
print '<td>'.length_accountg($obj->accountancy_code_sell).'</td>';
|
||||||
if (!$i) $totalarray['nbfield']++;
|
if (!$i) $totalarray['nbfield']++;
|
||||||
}
|
}
|
||||||
if (!empty($arrayfields['p.accountancy_code_sell_intra']['checked']))
|
if (!empty($arrayfields['p.accountancy_code_sell_intra']['checked']))
|
||||||
{
|
{
|
||||||
print '<td>'.$obj->accountancy_code_sell_intra.'</td>';
|
print '<td>'.length_accountg($obj->accountancy_code_sell_intra).'</td>';
|
||||||
if (!$i) $totalarray['nbfield']++;
|
if (!$i) $totalarray['nbfield']++;
|
||||||
}
|
}
|
||||||
if (!empty($arrayfields['p.accountancy_code_sell_export']['checked']))
|
if (!empty($arrayfields['p.accountancy_code_sell_export']['checked']))
|
||||||
{
|
{
|
||||||
print '<td>'.$obj->accountancy_code_sell_export.'</td>';
|
print '<td>'.length_accountg($obj->accountancy_code_sell_export).'</td>';
|
||||||
if (!$i) $totalarray['nbfield']++;
|
if (!$i) $totalarray['nbfield']++;
|
||||||
}
|
}
|
||||||
// Accountancy code buy
|
// Accountancy code buy
|
||||||
if (!empty($arrayfields['p.accountancy_code_buy']['checked']))
|
if (!empty($arrayfields['p.accountancy_code_buy']['checked']))
|
||||||
{
|
{
|
||||||
print '<td>'.$obj->accountancy_code_buy.'</td>';
|
print '<td>'.length_accountg($obj->accountancy_code_buy).'</td>';
|
||||||
if (!$i) $totalarray['nbfield']++;
|
if (!$i) $totalarray['nbfield']++;
|
||||||
}
|
}
|
||||||
if (!empty($arrayfields['p.accountancy_code_buy_intra']['checked']))
|
if (!empty($arrayfields['p.accountancy_code_buy_intra']['checked']))
|
||||||
{
|
{
|
||||||
print '<td>'.$obj->accountancy_code_buy_intra.'</td>';
|
print '<td>'.length_accountg($obj->accountancy_code_buy_intra).'</td>';
|
||||||
if (!$i) $totalarray['nbfield']++;
|
if (!$i) $totalarray['nbfield']++;
|
||||||
}
|
}
|
||||||
if (!empty($arrayfields['p.accountancy_code_buy_export']['checked']))
|
if (!empty($arrayfields['p.accountancy_code_buy_export']['checked']))
|
||||||
{
|
{
|
||||||
print '<td>'.$obj->accountancy_code_buy_export.'</td>';
|
print '<td>'.length_accountg($obj->accountancy_code_buy_export).'</td>';
|
||||||
if (!$i) $totalarray['nbfield']++;
|
if (!$i) $totalarray['nbfield']++;
|
||||||
}
|
}
|
||||||
// Extra fields
|
// Extra fields
|
||||||
|
|||||||
@@ -1940,7 +1940,7 @@ if ($action == 'create' || $action == 'adduserldap')
|
|||||||
$exclude = array();
|
$exclude = array();
|
||||||
|
|
||||||
$usergroup = new UserGroup($db);
|
$usergroup = new UserGroup($db);
|
||||||
$groupslist = $usergroup->listGroupsForUser($object->id);
|
$groupslist = $usergroup->listGroupsForUser($object->id, false);
|
||||||
|
|
||||||
if (!empty($groupslist))
|
if (!empty($groupslist))
|
||||||
{
|
{
|
||||||
|
|||||||