From 6feabe5049ebf145b3e71fbdc6bcb398ce529025 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Thu, 2 Jun 2016 13:27:18 +0200
Subject: [PATCH] ChangeLog of 4.0 is ready

---
 ChangeLog                | 142 ++++++++++++++++++++++++++++++---------
 build/makepack-howto.txt |   3 +-
 2 files changed, 111 insertions(+), 34 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 46cc2cba089..4fdf052c096 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -14,57 +14,132 @@ make a Dolibarr upgrade.
 
 ***** ChangeLog for 4.0 compared to 3.9.* *****
 For users:
-NEW: #3510 : Standardize module
-NEW: #3510 : Working
-NEW: #3767 Allow changing multiple prices of a product at once
-NEW: #4972 Translated Charges sociales (type 0) and Charges sociales (type 1) in reports page
-NEW: Accountancy Add a way to initialize chart of accounts
-NEW: Accountancy - Add category to manage the display of the income statement and the balance sheet
-NEW: Accountancy - Add Result page & review
-NEW: Accountancy - Drop old table not used (Informations are already presents in llx_accounting_bookkeeping)
-NEW: Accountancy - Prepare multiple journals
-NEW: Accountancy Use clean_account to remove 0 at the right when we create an account in chart of accounts
-NEW: Add a filter field to restrict list of member when doing a LDAP list request. Use also this filter into ldap command line script making sync from ldap to dolibarr.
+
+NEW: Add reccuring invoice feature and automatic generation of invoices.
+NEW: Add module "Loan" as stable.
+NEW: Add module "Supplier commercial proposal" (price request) is set to stable status.
+NEW: Experimental module Accountancy Expert
+NEW: Experimental module Multicurency
+NEW: Show into badge on tab head the number of dedicated contacts for all objects.
+NEW: Add a checkbox to select/unselect all lines on page that support mass actions (like invoice list page)
 NEW: Add a new method for margin calculation. Added margin on "cost price" to margin on WAP price and margin on "best supplier price".
-NEW: Add a new widget $form->selectArrayAjax() to use combo list with content coming from an Ajax URL.
 NEW: Add an explanation message on shipment page to explain you can't make shipment if order is not validated
-NEW: Add a parameter on graph function to show a generic graph when no data are available.
-NEW: Add a refresh button on page list of direct print jobs.
-NEW: Add a tool for developers to purge database with no loose of setup
-NEW: Add cancel button on thirdparty create page
-NEW: Add css on column of detail lines to allow module to easily manipulate fields.
 NEW: Add date_rum into table of thirdparty bank account.
+NEW: The probability of lead/opportunity can be defined per lead.
 NEW: Added Malta VAT into migration script
-NEW: Add expense report into accountancy report
+NEW: #4972 Translated Charges sociales (type 0) and Charges sociales (type 1) in reports page
+NEW: Add Expense report into accountancy report
 NEW: Add Expense report to approve into workboard 
-NEW: Selection of boxes is moved on top of page
-NEW: Add fields into llx_cronjobs to be able to use job table to queue one shot jobs.
+NEW: Selection of boxes is move on top of home page
 NEW: Add filter on a keyword, status and nature into list of modules
-NEW: Add filter on status on shipments
 NEW: Add hidden option BANK_DISABLE_CHECK_DEPOSIT to disable check deposit feature.
-NEW: Add hook pdf_build_address 
 NEW: Add option MAIN_PUBLIC_NOTE_IN_ADDRESS
-NEW: add $ID$ into extrafields management to allow use current object id on filter for select list from table and checkbox list from table
+NEW: add html id/class to locate value in the DOM html
 NEW: Add index on invoice status 
 NEW: Add constant MAIN_LOGTOHTML to 0 into other setup by default to save time when we need to make debug on hosted instance.
-NEW: add info page on product card
-NEW: Add into about page, a sample text to use to promote new version release (visible only if version is last stable)
 NEW: Add list of billed
-NEW: Add Malta VAT into 3.9
 NEW: Add minimum stock and desired stock into import/export profiles. 
 NEW: Add state into thirdparty export fields
 NEW: Add more trackable events (create, submit and receive supplier order).
-NEW: add multicurency on customer order (module experimental)
-NEW: Add $object in parameter of pdf_build_address so we could include hook into the function.
 NEW: Add option MAIN_PROPAGATE_CONTACTS_FROM_ORIGIN
+NEW: Add picto on module list to show warning and if module is an external module.
+NEW: add product type filter on turnover report
+NEW: Add state into list of fields available for personalized fields of thirdparties
+NEW: Add statistics for interventions module
+NEW: Add statistics on number of projets on home page
+NEW: Add stats and late records into dashboard for supplier proposals.
+NEW: Add the admin info on combo of type of contact
+NEW: Add the event BILL_PAYED to list of supported events for module notification.
+NEW: Add total weight and volume on PDF 
+NEW: Add hidden option to hide column qty ordered on shipments.
+NEW: Add view of virtual stock into product list (when appropriate)
+NEW: Add warning on tasks when they are late (add also the warning tolerance parameter)
+NEW: Add weight/volume for one product into shipment export
+NEW: Add width and height on product card
+NEW: allow a document to be linked to project from another customer on config
+NEW: allow project to be shared across entities (for multicompany module)
+NEW: All variant of ckeditor config can be tested into the setup page of module.
+NEW: Can change dynamically number of records visible into lists.
+NEW: Can change type of extrafields for some combinations.
+NEW: Can define number of first and last line into import wizard.
+NEW: Can edit next execution date of a cron job.
+NEW: Can edit value date of a vat payment after recording it.
+NEW: Can filter modules on publisher
+NEW: Can filter on employee status when building emailing from users
+NEW: Can reopen an closed shipment
+NEW: Can search on shipments into the quick search box
+NEW: Can select dynamicaly number of lines to show on page on product, shipment, contact, orders, thirdparties 
+NEW: Can select fields to show on supplier orders list.
+NEW: Can select fields to show on list also for list of customer orders, shipments and invoices.
+NEW: Can select fields to show on proposal lists.
+NEW: Can select language from combo list on page to overwrite a translation
+NEW: Can select number of lines on page list for projects and tasks.
+NEW: Can use ^ and $ (to say start with or end with like regex syntax) into search fields when search field is text. Bonus: ^$ can filter all lines with field not defined.
+NEW: Clean and enhance code for cron engine
+NEW: Can decrease stock on shipment closing/classifying (only if module lot is not enabled for the moment)
+NEW: Disabled users are striked.
+NEW: Enhance navigation of project module
+NEW: fichinter lines ordered by rang AND DATE
+NEW: hidden conf to use input file multiple from mail form
+NEW: hidden feature: SUPPLIERORDER_WITH_NOPRICEDEFINED allow supplier order even if no supplier price defined
+NEW: Hidden option MAIN_LANDING_PAGE to choose the first page to show after login works as a "global" option (llx_const) and as a "per user" option (llx_user_param).
+NEW: Holiday is a now a RH module. All RH module provides by default visilibity on users of its hierarchy.
+NEW: If error is reported during migration process, you can ignore it to avoid to be locked.
+NEW: if nb total of lines provided in print barre_liste, display in title
+NEW: If option to see non stable modules is on, add a filter into module list to filter on level (deprecated, experimental, development)
+NEW: Include number of linked files into badge counter of "Linked files" tab.
+NEW: Include sales representative into export of thirdparties
+NEW: Indicator on workboard are red/green if late or not.
+NEW: Into GED module, filename is truncated only if there is not enough space into table
+NEW: Introduce a predefined job to run database backup
+NEW: Introduce option MAIN_WEIGHT_DEFAULT_UNIT and MAIN_VOLUME_DEFAULT_UNIT to force output unit for weight and volume.
+NEW: Introduce position of records into dictionnary of type of contacts
+NEW: Link on user in leave context reach to leave tab.
+NEW: List of user in agenda view per user show photo thumb
+NEW: Margins module - Check/update buying price on invoice lines
+NEW: Merge all admin tools (system and module admin tools) into same entry "Admin tools", so now things are clear: All features restricted to an admin user is inside "setup" (for setup) or "admin tools" (for action tools) instead of 3 different entries.
+NEW: Merge all boxes "related objects" into one. This save a lot of room on most card and avoid often horizontal scoll.
+NEW: Moved code that deals with bank categories to BankCateg. Created BankCateg::fetchAll function
+NEW: Move Expense report menu from module to menu files
+NEW: Move HRM dictionary from module to core dictionaries
+NEW: Mutualize code to manage email substitution variables. Show available variables into page to edit email templates.
+NEW: Mutualize code: Use one call of function "addThumbs", when possible, to generate thumbs files instead of several call of "vignette" function.
+NEW: On translation admin page, admin can overwrite a translation value.
+NEW: Option MAIN_LIST_FILTER_ON_DAY is supported on proposal list
+NEW: Add reputation field for price supplier
+NEW: Rest API token is no more reset at each call. We can reset it with param reset=1 on login call.
+NEW: Selection of fields is available on member list.
+NEW: Show a badge with number of withdraw requests done on the withdraw tab of invoice.
+NEW: Add option to show detail per warehouse into reassort
+NEW: Show total number of modules into the module list
+NEW: Survey system has now a status like other objects. You can close or reopen a survey.
+NEW: The note on time spent can be entered when using the view per day.
+NEW: Use ellipsis truncation on too large left menu text
+NEW: When a new field to show into lists is selected, the form is automatically submited and field added.
+NEW: When creating a template invoice from a draft invoice, if there is link to contract on draft invoice, link is kept on template invoice.
+NEW: When emailing is not sent completely, show progression.
 
 For developers:
 
-NEW: Add doActions hook method call in contract card
-NEW: Added doActions hooks to user cards
-NEW: #3876 Renamed Product::isservice and Product::isproduct to match PSR-2
-NEW: #3898 Remove deprecated Product::hidden property
-NEW: Add a checkbox to select/unselect all lines on page that support mass actions (like invoice list page)
+NEW: TimeZone can be supplied to mktime
+NEW: hook in shipment card
+NEW: Deprecated Societe::set_prospect_level, Societe::set_commnucation_level, Societe::set_OutstandingBill functions
+NEW: A module can add, into its import profiles, a sql request to execute at end of import. This allow to update dernormalized data after import.
+NEW: Add hook pdf_build_address 
+NEW: Add a parameter on graph function to show a generic graph when no data are available.
+NEW: Add $object in parameter of pdf_build_address so we could include hook into the function.
+NEW: Add a tool for developers to purge database with no loose of setup
+NEW: Can disable a module by renaming dir of module into module.disabled (this save time for maintenance when working with FTP).
+NEW: Created AccountLine::insert function and started using it for transaction creation
+NEW: Created Account::__toString, Account::getFieldsToShow and Account::getAccountNumberOrder to refactor the way account number was shown
+NEW: Created FormBank::getIBANLabel function to get the label of "IBAN" depending on bank account country
+NEW: prepare for additional warehouse statuses
+NEW: project sharing in select_projetcs_list function
+NEW: Removed deprecated CommonObject::client property. Please use CommonObject::thirdparty instead
+NEW: Removed unused FormOrder::selectSourcesCommande function
+NEW: Renamed ActionComm::add function to ActionComm::create
+NEW: Rename Form::select_date to Form::selectDate and Form::form_date to Form::formDate
+NEW: Rename path for generic medias files into '/medias' instead of fckeditor. Add location of medias into title of media browser of ckeditor. Work on website module
 
 
 WARNING: 
@@ -84,6 +159,7 @@ So if you included it into your module, change your code like this to be compati
   if (! $res) include_once DOL_DOCUMENT_ROOT . '/core/tpl/document_actions_pre_headers.tpl.php';
 
 
+
 ***** ChangeLog for 3.9.1 compared to 3.9.* *****
 FIX: #3815 Call to undefined function local_by_date()
 FIX: #4424 Missing email of user popup in supplier orders area
diff --git a/build/makepack-howto.txt b/build/makepack-howto.txt
index 420a8a76bf3..792eb010331 100644
--- a/build/makepack-howto.txt
+++ b/build/makepack-howto.txt
@@ -9,7 +9,8 @@ beta version of Dolibarr, step by step.
 
 - Check all files are commited.
 - Update version/info in ChangeLog. 
-To generate a changelog of a major new version x.y.0, you can do "cd ~/git/dolibarr_x.y; git log `git rev-list --boundary x.y..origin/develop | grep ^- | cut -c2- | head -n 1`.. --no-merges --pretty=short --oneline | sed -e "s/^[0-9a-z]* //" | grep -e '^FIX\|NEW' | sort -u | sed 's/FIXED:/FIX:/g' | sed 's/FIXED :/FIX:/g' | sed 's/FIX :/FIX:/g' | sed 's/FIX /FIX: /g' | sed 's/NEW :/NEW:/g' | sed 's/NEW /NEW: /g' > /tmp/aaa"
+To generate a changelog of a major new version x.y.0 (from develop repo), you can do "cd ~/git/dolibarr; git log `diff -u <(git rev-list --first-parent x.(y-1).0)  <(git rev-list --first-parent develop) | sed -ne 's/^ //p' | head -1`.. --no-merges --pretty=short --oneline | sed -e "s/^[0-9a-z]* //" | grep -e '^FIX\|NEW' | sort -u | sed 's/FIXED:/FIX:/g' | sed 's/FIXED :/FIX:/g' | sed 's/FIX :/FIX:/g' | sed 's/FIX /FIX: /g' | sed 's/NEW :/NEW:/g' | sed 's/NEW /NEW: /g' > /tmp/aaa"
+To generate a changelog of a major new version x.y.0 (from x.y repo), you can do "cd ~/git/dolibarr_x.y; git log `diff -u <(git rev-list --first-parent x.(y-1).0)  <(git rev-list --first-parent x.y.0) | sed -ne 's/^ //p' | head -1`.. --no-merges --pretty=short --oneline | sed -e "s/^[0-9a-z]* //" | grep -e '^FIX\|NEW' | sort -u | sed 's/FIXED:/FIX:/g' | sed 's/FIXED :/FIX:/g' | sed 's/FIX :/FIX:/g' | sed 's/FIX /FIX: /g' | sed 's/NEW :/NEW:/g' | sed 's/NEW /NEW: /g' > /tmp/aaa"
 To generate a changelog of a maintenance version x.y.z, you can do "cd ~/git/dolibarr_x.y; git log x.y.z-1.. --no-merges --pretty=short --oneline | sed -e "s/^[0-9a-z]* //" | grep -e '^FIX\|NEW' | sort -u | sed 's/FIXED:/FIX:/g' | sed 's/FIXED :/FIX:/g' | sed 's/FIX :/FIX:/g' | sed 's/FIX /FIX: /g' | sed 's/NEW :/NEW:/g' | sed 's/NEW /NEW: /g' > /tmp/aaa"
 - Update version number with x.y.z-w in htdocs/filefunc.inc.php
 - Commit all changes.
-- 
GitLab