diff --git a/ChangeLog b/ChangeLog
index 18e2b1cdc72..3c92aa71c1d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -32,6 +32,48 @@ Following changes may create regressions for some external modules, but were nec
* Tables llx_prelevement_facture and llx_prelevement_facture_demande have been renamed into llx_prelevement and llx_prelevement_demande.
+
+***** ChangeLog for 16.0.2 compared to 16.0.1 *****
+
+FIX: 16.0 - computed extrafields are not displayed if the object has no other extrafields
+FIX: #22538
+FIX: Accountancy - Review of Winfic - eWinfic - Winsis compta export format
+FIX: add loadRoleMode on getlinearray
+FIX: Autosearch on takepos was broken
+FIX: avoid access forbidden with numeric ref
+FIX: avoid error, check of product fetch is already check before
+FIX: avoid error, fetch of product is mandatory (by id or by ref)
+FIX: avoid unnecessary multiple calculation (#22637)
+FIX: bug on selected value for select_bom() function
+FIX: can not set prospect status "Do not contact"
+FIX: change in the communication status of the prospect
+FIX: check $id, already checked before
+FIX: closed warehouse for shipping
+FIX: extrafields_add tpl for stock movement
+FIX: the request SQL for transversal user, the join on usergroup table must be with getEntity('usergroup')
+FIX: Import of contact when there is duplicate thirdparties
+FIX: Import of socialnetwork field
+FIX: input selector is wrong with PRODUCT_LOAD_EXTRAFIELD_INTO_OBJECTLINES usage
+FIX: install wizard error management
+FIX: just add integer
+FIX: Missing $object for online signature link build
+FIX: missing quote
+FIX: only modify hidden checkbox/multislected extrafields on update if they are provided in request
+FIX: php doc
+FIX: private message ticket become public if edit action
+FIX: remove > 0 and -1
+FIX: remove db object to avoid error with postgresql
+FIX: Search ambigous field on MO list
+FIX: Search on social networks
+FIX: Subscription must be stopped when max of attendees reached.
+FIX: supplier price update: missing error reporting
+FIX: travis & stickler feedbacks
+FIX: we must be able to select only bom of a specific product + several fixes on select_bom() function
+FIX: wrong perm check
+FIX: wrong typo, remove quote
+FIX: wrong var typo
+
+
***** ChangeLog for 16.0.1 compared to 16.0.0 *****
FIX: #16476 on massaction the pdf generation is not using the t…
diff --git a/htdocs/accountancy/index.php b/htdocs/accountancy/index.php
index bd7d6273848..628dceafd12 100644
--- a/htdocs/accountancy/index.php
+++ b/htdocs/accountancy/index.php
@@ -113,15 +113,17 @@ if (!empty($conf->global->INVOICE_USE_SITUATION) && $conf->global->INVOICE_USE_S
';
}
-
print load_fiche_titre($langs->trans("AccountancyArea"), $resultboxes['selectboxlist'], 'accountancy', 0, '', '', $showtutorial);
+ if (!empty($conf->global->INVOICE_USE_SITUATION) && $conf->global->INVOICE_USE_SITUATION == 1) {
+ print info_admin($langs->trans("SorryThisModuleIsNotCompatibleWithTheExperimentalFeatureOfSituationInvoices"));
+ print "
";
+ }
+
print '
'; // hideobject is to start hidden
print "
\n";
print ''.$langs->trans("AccountancyAreaDescIntro")."
\n";
if ($user->hasRight('accounting', 'chartofaccount')) {
- print "
\n"; print "
\n";
-
print load_fiche_titre(' '.$langs->trans("AccountancyAreaDescActionOnce"), '', '')."\n";
print '
';
print "
\n";
diff --git a/htdocs/core/class/utils.class.php b/htdocs/core/class/utils.class.php
index c0dcc67378d..ab64d0c052a 100644
--- a/htdocs/core/class/utils.class.php
+++ b/htdocs/core/class/utils.class.php
@@ -173,6 +173,7 @@ class Utils
}
if ($count > 0) {
+ $langs->load("admin");
$this->output = $langs->trans("PurgeNDirectoriesDeleted", $countdeleted);
if ($count > $countdeleted) {
$this->output .= '
'.$langs->trans("PurgeNDirectoriesFailed", ($count - $countdeleted));
diff --git a/htdocs/core/lib/signature.lib.php b/htdocs/core/lib/signature.lib.php
index 9cc8f1f03a9..d26b20219ff 100644
--- a/htdocs/core/lib/signature.lib.php
+++ b/htdocs/core/lib/signature.lib.php
@@ -59,7 +59,7 @@ function showOnlineSignatureUrl($type, $ref)
*/
function getOnlineSignatureUrl($mode, $type, $ref = '', $localorexternal = 1)
{
- global $conf, $db, $langs, $dolibarr_main_url_root;
+ global $conf, $object, $dolibarr_main_url_root;
$ref = str_replace(' ', '', $ref);
$out = '';
diff --git a/htdocs/filefunc.inc.php b/htdocs/filefunc.inc.php
index 3a7eebbffac..910b56ddae4 100644
--- a/htdocs/filefunc.inc.php
+++ b/htdocs/filefunc.inc.php
@@ -34,7 +34,7 @@ if (!defined('DOL_APPLICATION_TITLE')) {
define('DOL_APPLICATION_TITLE', 'Dolibarr');
}
if (!defined('DOL_VERSION')) {
- define('DOL_VERSION', '17.0.0-alpha'); // a.b.c-alpha, a.b.c-beta, a.b.c-rcX or a.b.c
+ define('DOL_VERSION', '17.0.0-beta'); // a.b.c-alpha, a.b.c-beta, a.b.c-rcX or a.b.c
}
if (!defined('EURO')) {
diff --git a/htdocs/public/eventorganization/attendee_new.php b/htdocs/public/eventorganization/attendee_new.php
index 8d7e4503c6b..b4f6ee14217 100644
--- a/htdocs/public/eventorganization/attendee_new.php
+++ b/htdocs/public/eventorganization/attendee_new.php
@@ -104,14 +104,16 @@ if ($type == 'global') {
$errmsg .= $project->error;
$errors = array_merge($errors, $project->errors);
} else {
- $sql = "SELECT COUNT(*) as nb FROM ".MAIN_DB_PREFIX."projet";
- $sql .= " WHERE ".MAIN_DB_PREFIX."eventorganization_conferenceorboothattendee = ".((int) $project->id);
+ $sql = "SELECT COUNT(*) as nb FROM ".MAIN_DB_PREFIX."eventorganization_conferenceorboothattendee";
+ $sql .= " WHERE fk_project = ".((int) $project->id);
- $resql = $db->query($resql);
+ $resql = $db->query($sql);
if ($resql) {
$obj = $db->fetch_object($resql);
if ($obj) {
$currentnbofattendees = $obj->nb;
+ } else {
+ dol_print_error($db);
}
}
}
diff --git a/htdocs/public/ticket/create_ticket.php b/htdocs/public/ticket/create_ticket.php
index 862f50d88a9..43c2e7bbd78 100644
--- a/htdocs/public/ticket/create_ticket.php
+++ b/htdocs/public/ticket/create_ticket.php
@@ -163,8 +163,17 @@ if (empty($reshook)) {
// Le premier contact trouvé est utilisé pour déterminer le contact suivi
$contacts = $object->searchContactByEmail($origin_email);
+ // Ensure that contact is active and select first active contact
+ $cid = -1;
+ foreach ($contacts as $key => $contact) {
+ if ((int) $contact->statut == 1) {
+ $cid = $key;
+ break;
+ }
+ }
+
// Option to require email exists to create ticket
- if (!empty($conf->global->TICKET_EMAIL_MUST_EXISTS) && !$contacts[0]->socid) {
+ if (!empty($conf->global->TICKET_EMAIL_MUST_EXISTS) && ($cid < 0 || empty($contacts[$cid]->socid))) {
$error++;
array_push($object->errors, $langs->trans("ErrorEmailMustExistToCreateTicket"));
$action = '';
@@ -314,9 +323,9 @@ if (empty($reshook)) {
$object->fk_soc = $searched_companies[0]->id;
}
- if (is_array($contacts) && count($contacts) > 0) {
- $object->fk_soc = $contacts[0]->socid;
- $usertoassign = $contacts[0]->id;
+ if (is_array($contacts) && count($contacts) > 0 && $cid >= 0) {
+ $object->fk_soc = $contacts[$cid]->socid;
+ $usertoassign = $contacts[$cid]->id;
}
$ret = $extrafields->setOptionalsFromPost(null, $object);
diff --git a/htdocs/user/class/user.class.php b/htdocs/user/class/user.class.php
index 6e21c91d810..d49f810f915 100644
--- a/htdocs/user/class/user.class.php
+++ b/htdocs/user/class/user.class.php
@@ -717,6 +717,7 @@ class User extends CommonObject
'shipping' => 'expedition',
'task' => 'task@projet',
'fichinter' => 'ficheinter',
+ 'propale' => 'propal',
'inventory' => 'stock',
'invoice' => 'facture',
'invoice_supplier' => 'fournisseur',