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',