diff --git a/ChangeLog b/ChangeLog index 7089658872e..a8c32a72670 100644 --- a/ChangeLog +++ b/ChangeLog @@ -405,6 +405,77 @@ Following changes may create regressions for some external modules, but were nec * The jquery plugin/dependency multiselect has been removed. It was not used by Dolibarr core. +***** ChangeLog for 10.0.7 compared to 10.0.6 ***** +FIX: 10.0 - missing translations for "orders" homepage "orders" box +FIX: 10.0 - status missing from last customer invoices box when using MAIN_STATUS_USES_CSS +FIX: 10.0 - translations for "orders" not loaded in the homepage box +FIX: #10309 +FIX: #12875 +FIX: #12932 +FIX: #12966 +FIX: #12973 +FIX: #13304 +FIX: advanced target emailing sql and ergonomy +FIX: an external user can not approved +FIX: Bad translation for productlot EatBy and SellBy +FIX: better check +FIX: better method to check user rights AND usergroup rights ! +FIX: CA by prod list filter +FIX: can be a string or integer +FIX: Check on unicity on prof id was not triggered sometimes +FIX: clone of purchase order +FIX: compatibility with multicompany (avoid duplicate data) +FIX: complex export model loading +FIX: date filter not used if no operator +FIX: date order was -1D and desc with label repetition +FIX: default lang selection when filter +FIX: dom and missing param +FIX: drafts are now implemented for stats +FIX: Error in log for email sending with smtps was not complete +FIX: Extrafield position in export field list must respect "pos" field +FIX: FEC export format +FIX: FEC export have specific name +FIX: fetching account on current entity +FIX: Filenames must not contains non ascii char or we will get non ascii +FIX: fk_type subscription list via api REST +FIX: Force FEC export to txt format +FIX: get remain to pay with rounding decimals +FIX: Invert isSellerInEEC and isBuyerInEEC +FIX: keep assigned users in session when loading projects and tasks +FIX: length, width and height units coherence in product table +FIX: links in products/services index +FIX: Mail smtps truncated if content has a line with single . +FIX: missing array option +FIX: missing global $conf +FIX: missing hook parameter +FIX: Missing Linked objects Fichinter Ref. in PDF formats +FIX: missing "statut" for getNomUrl() function +FIX: multicompany for discount +FIX: must be == and not = +FIX: Problem with column label in subscription list +FIX: regex for include or exclude categories in full arbo +FIX: Remove unexisting link +FIX: remove unused var, $usercancreate can be change by Multicompany +FIX: require category class in extrafield +FIX: round MT in accountancy books +FIX: search with '0' +FIX: send expense report mail in HTML format +FIX: SQL request and phpunit +FIX: substitute lines dates values on doc generator (ODT, ...) +FIX: test on 0 better than isset +FIX: The "automatic bind" was linked EEC to export accountancy code +FIX: thirdparty alias name desappeared if we change country with THIRDPARTY_SUGGEST_ALSO_ADDRESS_CREATION conf +FIX: timezone must be tzserver and not tzuser as well as on contract card +FIX: typo on ckeck method +FIX: use "usergroup" instead "user" +FIX: Visualization rights correction on last modified contacts box +FIX: Warning on admin/export_files +FIX: We want to be able to import data for extrafields of entity 0 too +FIX: when we filter a list on a view status, we want this filter to be on bookmark that we create +FIX: wrong test +FIX: XSS vulnerability in description of list of audit events. +FIX: z-index for moretabsList with constant MAIN_MAXTABS_IN_CARD + ***** ChangeLog for 10.0.6 compared to 10.0.5 ***** FIX Regression of 10.0.5 to create/edit proposals and orders. FIX: #12760 #12763 #12755 #12765 #12751 diff --git a/htdocs/adherents/list.php b/htdocs/adherents/list.php index aa487ad4174..cbbf434709b 100644 --- a/htdocs/adherents/list.php +++ b/htdocs/adherents/list.php @@ -52,6 +52,7 @@ $search_lastname = GETPOST("search_lastname", 'alpha'); $search_firstname = GETPOST("search_firstname", 'alpha'); $search_gender = GETPOST("search_gender", 'alpha'); $search_civility = GETPOST("search_civility", 'alpha'); +$search_company = GETPOST('search_company', 'alphanohtml'); $search_login = GETPOST("search_login", 'alpha'); $search_address = GETPOST("search_address", 'alpha'); $search_zip = GETPOST("search_zip", 'alpha'); @@ -254,6 +255,7 @@ $sql = "SELECT d.rowid, d.login, d.lastname, d.firstname, d.gender, d.societe as $sql .= " d.civility, d.datefin, d.address, d.zip, d.town, d.state_id, d.country,"; $sql .= " d.email, d.phone, d.phone_perso, d.phone_mobile, d.skype, d.birth, d.public, d.photo,"; $sql .= " d.fk_adherent_type as type_id, d.morphy, d.statut, d.datec as date_creation, d.tms as date_update,"; +$sql .= " s.nom,"; $sql .= " t.libelle as type, t.subscription,"; $sql .= " state.code_departement as state_code, state.nom as state_name,"; // Add fields from extrafields @@ -269,6 +271,7 @@ if (is_array($extrafields->attributes[$object->table_element]['label']) && count if (!empty($search_categ) || !empty($catid)) $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX."categorie_member as cm ON d.rowid = cm.fk_member"; // We need this table joined to the select in order to filter by categ $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_country as country on (country.rowid = d.country)"; $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_departements as state on (state.rowid = d.state_id)"; +$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s on (s.rowid = d.fk_soc)"; $sql .= ", ".MAIN_DB_PREFIX."adherent_type as t"; $sql .= " WHERE d.fk_adherent_type = t.rowid "; if ($catid > 0) $sql .= " AND cm.fk_categorie = ".$db->escape($catid); @@ -289,6 +292,7 @@ if ($search_firstname) $sql .= natural_search("d.firstname", $search_firstname); if ($search_lastname) $sql .= natural_search(array("d.firstname", "d.lastname", "d.societe"), $search_lastname); if ($search_gender != '' && $search_gender != '-1') $sql .= " AND d.gender = '".$search_gender."'"; if ($search_login) $sql .= natural_search("d.login", $search_login); +if ($search_company) $sql .= natural_search("s.nom", $search_company); if ($search_email) $sql .= natural_search("d.email", $search_email); if ($search_town) $sql .= natural_search("d.town", $search_town); if ($search_zip) $sql .= natural_search("d.zip", $search_zip); diff --git a/htdocs/commande/class/commande.class.php b/htdocs/commande/class/commande.class.php index b2d1c09bd25..a4b4cdbfd11 100644 --- a/htdocs/commande/class/commande.class.php +++ b/htdocs/commande/class/commande.class.php @@ -4420,7 +4420,7 @@ class OrderLine extends CommonOrderLine foreach ($this->errors as $errmsg) { - dol_syslog(get_class($this)."::delete ".$errmsg, LOG_ERR); + dol_syslog(get_class($this)."::insert ".$errmsg, LOG_ERR); $this->error .= ($this->error ? ', '.$errmsg : $errmsg); } $this->db->rollback(); diff --git a/htdocs/compta/facture/class/facture-rec.class.php b/htdocs/compta/facture/class/facture-rec.class.php index 524d553effd..e07f631efd4 100644 --- a/htdocs/compta/facture/class/facture-rec.class.php +++ b/htdocs/compta/facture/class/facture-rec.class.php @@ -325,6 +325,23 @@ class FactureRec extends CommonInvoice { $error++; } + else { + $objectline = new FactureLigneRec($this->db); + if ($objectline->fetch($result_insert)) + { + // Extrafields + if (empty($conf->global->MAIN_EXTRAFIELDS_DISABLED) && method_exists($facsrc->lines[$i], 'fetch_optionals')) { + $facsrc->lines[$i]->fetch_optionals($facsrc->lines[$i]->rowid); + $objectline->array_options = $facsrc->lines[$i]->array_options; + } + + $result = $objectline->insertExtraFields(); + if ($result < 0) + { + $error++; + } + } + } } if (!empty($this->linkedObjectsIds) && empty($this->linked_objects)) // To use new linkedObjectsIds instead of old linked_objects diff --git a/htdocs/compta/stats/index.php b/htdocs/compta/stats/index.php index 9be5607b62d..1f450289506 100644 --- a/htdocs/compta/stats/index.php +++ b/htdocs/compta/stats/index.php @@ -31,12 +31,12 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; // Load translation files required by the page $langs->loadLangs(array('compta', 'bills', 'donation', 'salaries')); -$date_startmonth = GETPOST('date_startmonth'); -$date_startday = GETPOST('date_startday'); -$date_startyear = GETPOST('date_startyear'); -$date_endmonth = GETPOST('date_endmonth'); -$date_endday = GETPOST('date_endday'); -$date_endyear = GETPOST('date_endyear'); +$date_startday = GETPOST('date_startday', 'int'); +$date_startmonth = GETPOST('date_startmonth', 'int'); +$date_startyear = GETPOST('date_startyear', 'int'); +$date_endday = GETPOST('date_endday', 'int'); +$date_endmonth = GETPOST('date_endmonth', 'int'); +$date_endyear = GETPOST('date_endyear', 'int'); $nbofyear = 4; @@ -193,15 +193,18 @@ elseif ($modecompta == "BOOKKEEPING") { $sql = "SELECT date_format(b.doc_date,'%Y-%m') as dm, sum(b.credit) as amount_ttc"; $sql .= " FROM ".MAIN_DB_PREFIX."accounting_bookkeeping as b, ".MAIN_DB_PREFIX."accounting_journal as aj"; - $sql .= " WHERE b.entity = ".$conf->entity; + $sql .= " WHERE b.entity = ".$conf->entity; // In module double party accounting, we never share entities $sql .= " AND aj.entity = ".$conf->entity; $sql .= " AND b.code_journal = aj.code AND aj.nature = 2"; // @todo currently count amount in sale journal, but we need to define a category group for turnover } $sql .= " GROUP BY dm"; $sql .= " ORDER BY dm"; +// TODO Add a filter on $date_start and $date_end to reduce quantity on data //print $sql; +$minyearmonth = $maxyearmonth = 0; + $result = $db->query($sql); if ($result) { @@ -214,7 +217,7 @@ if ($result) $cum[$obj->dm] = $obj->amount_ttc; if ($obj->amount_ttc) { - $minyearmonth = ($minyearmonth ?min($minyearmonth, $obj->dm) : $obj->dm); + $minyearmonth = ($minyearmonth ? min($minyearmonth, $obj->dm) : $obj->dm); $maxyearmonth = max($maxyearmonth, $obj->dm); } $i++; @@ -309,9 +312,17 @@ for ($mois = 1 + $nb_mois_decalage; $mois <= 12 + $nb_mois_decalage; $mois++) $mois_modulo = $mois; // ajout if ($mois > 12) {$mois_modulo = $mois - 12; } // ajout + if ($year_start == $year_end) { + if ($mois > $date_endmonth && $year_end >= $date_endyear) { + break; + } + } + print '