diff --git a/ChangeLog b/ChangeLog index a0988a8e5c1..b4f470fbf52 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1019,6 +1019,7 @@ FIX: when qty is not an integer, apply price() (#31138) FIX: Wrong default PDF model when creating the second situation invoice (#30843) FIX: wrong subprice if price base type is TTC (#30887) + ***** ChangeLog for 19.0.3 compared to 19.0.2 ***** FIX: #29403 HRM - Unable to delete a skill in a job Profile (#29779) FIX: #29439 incomplete API return (#29796) @@ -1583,7 +1584,39 @@ The following changes may create regressions for some external modules, but were * The load of hook context productdao has been removed before calling loadvirtualstock. Modules must use the context of main parent page or 'all' for all cases. +***** ChangeLog for 18.0.8 compared to 18.0.7 ***** +35 files changed, 647 insertions(+), 298 deletions(-) + +FIX: #34746 - More complete fix for CVE-2024-40137 +FIX: Correct the calculation of the amount of the current period between the period provided (#35083) +FIX: Add security test for show terminal selection if no terminal selected when invoice.php is call (#34717) +FIX: Add security test for show terminal selection if no terminal selected when invoice.php is call +FIX: missing quick edit for extrafields (baclport commit 4fc66c6) (#35160) +FIX: Missing sentence part (#35144) +FIX: set global mysoc and load langs in API access (#35041) +FIX: set global mysoc and load langs in API access +FIX: reset mysoc and langs only if entity of API has changed +FIX: accountancy general ledger: bad handling of hook return (#34029) +FIX: accountancy general ledger: bad handling of hook return +FIX: accountancy balance: bad handling of hook return +FIX: - Fix missing token for disable custom group category for compta report (page /htdocs/accountancy/admin/categories_list.php) (#35084) +FIX: The combo of custom groups has disappeared (backport v19) (#35016) +FIX: #34893 (#34897) +FIX: #34893 +FIX: change error code to USERNOTALLOWEDTOCHANGEPASS +FIX: asset: could not select invoice in disposal pop-in (#34725) +FIX: 17.0 SQL syntax error and/or constraint error when calling Facture::update() after a clone (e.g. in a trigger) (#34778) +FIX: 17.0: when you clone an invoice that was created from a template invoice, the clone should not be linked to the template invoice (#34777) +FIX: pre-send mail mass action: keep __EMAIL__ substitution (#34522) +FIX: pre-send mail mass action: keep __EMAIL__ substitution +FIX: comment +FIX: massaction email tpl: keep preset +FIX: loop interrupt if an error occurs in sendEmailsRemindersOnInvoiceDueDate (#34657) +FIX: #34654 + ***** ChangeLog for 18.0.7 compared to 18.0.6 ***** +138 files changed, 1622 insertions(+), 530 deletions(-) + FIX: 17.0 API endpoints "PUT": prevent overwriting all extrafields if only some are supplied in the request cf. PR #29237 FIX: 17.0 - collisions in cache for dol_getIdFromCode FIX: 17.0 - missing error handling for FactureRec::fetch in card-rec.php diff --git a/build/generate_filelist_xml.php b/build/generate_filelist_xml.php index c97194efa18..a5dfff8a970 100755 --- a/build/generate_filelist_xml.php +++ b/build/generate_filelist_xml.php @@ -173,7 +173,7 @@ $files = new RegexIterator($iterator1, '#^(?:[A-Z]:)?(?:/(?!(?:'.($includecustom */ // Define qualified files (must be same than into generate_filelist_xml.php and in api_setup.class.php) $regextoinclude = '\.(php|php3|php4|php5|phtml|phps|phar|inc|css|scss|html|xml|js|json|tpl|jpg|jpeg|png|gif|ico|sql|lang|txt|yml|bak|md|mp3|mp4|wav|mkv|z|gz|zip|rar|tar|less|svg|eot|woff|woff2|ttf|manifest)$'; -$regextoexclude = '('.($includecustom ? '' : 'custom|').'documents|conf|install|dejavu-fonts-ttf-.*|public\/test|sabre\/sabre\/.*\/tests|Shared\/PCLZip|nusoap\/lib\/Mail|php\/example|php\/test|geoip\/sample.*\.php|ckeditor\/samples|ckeditor\/adapters)$'; // Exclude dirs +$regextoexclude = '('.($includecustom ? '' : 'custom|').'documents|escpos-php\/doc|conf|install|dejavu-fonts-ttf-.*|public\/test|sabre\/sabre\/.*\/tests|Shared\/PCLZip|nusoap\/lib\/Mail|php\/example|php\/test|geoip\/sample.*\.php|ckeditor\/samples|ckeditor\/adapters)$'; // Exclude dirs $files = dol_dir_list(DOL_DOCUMENT_ROOT, 'files', 1, $regextoinclude, $regextoexclude, 'fullname'); $dir = ''; diff --git a/htdocs/api/class/api_setup.class.php b/htdocs/api/class/api_setup.class.php index 6636f7b82b1..0374442c092 100644 --- a/htdocs/api/class/api_setup.class.php +++ b/htdocs/api/class/api_setup.class.php @@ -2547,7 +2547,7 @@ class Setup extends DolibarrApi // Define qualified files (must be same than into generate_filelist_xml.php and in api_setup.class.php) $regextoinclude = '\.(php|php3|php4|php5|phtml|phps|phar|inc|css|scss|html|xml|js|json|tpl|jpg|jpeg|png|gif|ico|sql|lang|txt|yml|bak|md|mp3|mp4|wav|mkv|z|gz|zip|rar|tar|less|svg|eot|woff|woff2|ttf|manifest)$'; - $regextoexclude = '('.($includecustom ? '' : 'custom|').'documents|conf|install|dejavu-fonts-ttf-.*|public\/test|sabre\/sabre\/.*\/tests|Shared\/PCLZip|nusoap\/lib\/Mail|php\/example|php\/test|geoip\/sample.*\.php|ckeditor\/samples|ckeditor\/adapters)$'; // Exclude dirs + $regextoexclude = '('.($includecustom ? '' : 'custom|').'documents|escpos-php\/doc|conf|install|dejavu-fonts-ttf-.*|public\/test|sabre\/sabre\/.*\/tests|Shared\/PCLZip|nusoap\/lib\/Mail|php\/example|php\/test|geoip\/sample.*\.php|ckeditor\/samples|ckeditor\/adapters)$'; // Exclude dirs $scanfiles = dol_dir_list(DOL_DOCUMENT_ROOT, 'files', 1, $regextoinclude, $regextoexclude); // Fill file_list with files in signature, new files, modified files diff --git a/htdocs/product/stock/class/productlot.class.php b/htdocs/product/stock/class/productlot.class.php index 1c7d90d763c..a3ac3204942 100644 --- a/htdocs/product/stock/class/productlot.class.php +++ b/htdocs/product/stock/class/productlot.class.php @@ -935,6 +935,7 @@ class Productlot extends CommonObject } $sql .= " WHERE cf.entity IN (".getEntity('expedition').")"; $sql .= " AND cfdi.batch = '".($this->db->escape($this->batch))."'"; + $sql .= " AND cfdi.fk_product = " . (int) $this->fk_product; if (!$user->hasRight('societe', 'client', 'voir')) { $sql .= " AND cf.fk_soc = sc.fk_soc AND sc.fk_user = ".((int) $user->id); } diff --git a/htdocs/product/stock/stats/commande_fournisseur.php b/htdocs/product/stock/stats/commande_fournisseur.php index ce07ee4a3de..cd03daeb4d6 100644 --- a/htdocs/product/stock/stats/commande_fournisseur.php +++ b/htdocs/product/stock/stats/commande_fournisseur.php @@ -240,6 +240,7 @@ if ($id > 0 || !empty($ref)) { } $sql .= " WHERE cf.entity IN (".getEntity('product').")"; $sql .= " AND cfdi.batch = '".($db->escape($object->batch))."'"; + $sql .= " AND cfdi.fk_product = " . (int) $object->fk_product; if (!empty($search_month)) { $sql .= ' AND MONTH(cf.date_commande) IN ('.$db->sanitize($search_month).')'; } diff --git a/htdocs/societe/class/societe.class.php b/htdocs/societe/class/societe.class.php index 376ac87b836..75c48472322 100644 --- a/htdocs/societe/class/societe.class.php +++ b/htdocs/societe/class/societe.class.php @@ -5014,10 +5014,12 @@ class Societe extends CommonObject $alreadypayed=price2num($paiement + $creditnotes + $deposits,'MT'); $remaintopay=price2num($invoice->total_ttc - $paiement - $creditnotes - $deposits,'MT'); */ + $today = dol_get_first_hour(dol_now('tzuser')); // Returns today at 00:00 in the user's time zone + $sql = "SELECT rowid, ref, total_ht, total_ttc, paye, type, fk_statut as status, close_code FROM ".MAIN_DB_PREFIX.$table." as f"; $sql .= " WHERE fk_soc = ".((int) $this->id); if (!empty($late)) { - $sql .= " AND date_lim_reglement < '".$this->db->idate(dol_now())."'"; + $sql .= " AND date_lim_reglement < '".$this->db->idate($today)."'"; } if ($mode == 'supplier') { $sql .= " AND entity IN (".getEntity('facture_fourn').")";