Browse Source

Merge branch 'develop' into new_branch_29_08_2018

Philippe Grand 6 years ago
parent
commit
b3c84ac3bc
49 changed files with 2750 additions and 2692 deletions
  1. 1 1
      .travis.yml
  2. 1 1
      README.md
  3. 1 1
      htdocs/accountancy/class/accountancycategory.class.php
  4. 16 7
      htdocs/accountancy/class/accountingaccount.class.php
  5. 3 3
      htdocs/adherents/canvas/actions_adherentcard_common.class.php
  6. 5 5
      htdocs/adherents/class/adherent.class.php
  7. 7 2
      htdocs/comm/action/card.php
  8. 9 9
      htdocs/comm/mailing/class/advtargetemailing.class.php
  9. 5 5
      htdocs/comm/mailing/class/html.formadvtargetemailing.class.php
  10. 1 1
      htdocs/comm/propal/card.php
  11. 2467 2467
      htdocs/commande/class/commande.class.php
  12. 5 5
      htdocs/compta/localtax/class/localtax.class.php
  13. 0 2
      htdocs/compta/sociales/class/paymentsocialcontribution.class.php
  14. 19 2
      htdocs/core/class/comment.class.php
  15. 38 38
      htdocs/core/class/commonobject.class.php
  16. 5 5
      htdocs/core/class/events.class.php
  17. 9 10
      htdocs/core/class/menubase.class.php
  18. 1 0
      htdocs/core/lib/price.lib.php
  19. 4 0
      htdocs/core/triggers/interface_80_modStripe_Stripe.class.php
  20. 3 3
      htdocs/cron/class/cronjob.class.php
  21. 4 4
      htdocs/don/class/paymentdonation.class.php
  22. 7 7
      htdocs/expedition/class/expeditionbatch.class.php
  23. 3 3
      htdocs/expensereport/class/expensereport.class.php
  24. 6 6
      htdocs/fourn/class/fournisseur.commande.class.php
  25. 6 6
      htdocs/fourn/class/fournisseur.commande.dispatch.class.php
  26. 30 17
      htdocs/fourn/class/fournisseur.facture.class.php
  27. 3 2
      htdocs/fourn/facture/card.php
  28. 3 2
      htdocs/install/fileconf.php
  29. 1 1
      htdocs/install/inc.php
  30. 2 1
      htdocs/langs/en_US/install.lang
  31. 1 0
      htdocs/langs/en_US/other.lang
  32. 2 2
      htdocs/langs/en_US/ticket.lang
  33. 1 1
      htdocs/langs/fr_FR/agenda.lang
  34. 1 0
      htdocs/langs/fr_FR/other.lang
  35. 2 2
      htdocs/loan/class/loan.class.php
  36. 4 5
      htdocs/loan/class/loanschedule.class.php
  37. 2 2
      htdocs/loan/class/paymentloan.class.php
  38. 3 3
      htdocs/opensurvey/class/opensurveysondage.class.php
  39. 2 0
      htdocs/opensurvey/fonctions.php
  40. 2 2
      htdocs/product/class/productbatch.class.php
  41. 5 5
      htdocs/product/class/productcustomerprice.class.php
  42. 3 3
      htdocs/product/class/propalmergepdfproduct.class.php
  43. 15 9
      htdocs/product/fournisseurs.php
  44. 7 7
      htdocs/projet/class/project.class.php
  45. 9 9
      htdocs/projet/class/task.class.php
  46. 6 6
      htdocs/ticket/class/ticket.class.php
  47. 16 16
      htdocs/ticket/class/ticketlogs.class.php
  48. 3 3
      htdocs/user/document.php
  49. 1 1
      htdocs/viewimage.php

+ 1 - 1
.travis.yml

@@ -2,7 +2,7 @@
 # from Dolibarr GitHub repository.
 # For syntax, see http://about.travis-ci.org/docs/user/languages/php/
 
-# We use dist: precise to have php 5.3 available
+# We use dist: trusty to have php 5.4+ available 
 dist: trusty
 sudo: required
 

+ 1 - 1
README.md

@@ -1,6 +1,6 @@
 # DOLIBARR ERP & CRM
 
-![Build status](https://img.shields.io/travis/Dolibarr/dolibarr/develop.svg) ![Downloads per day](https://img.shields.io/sourceforge/dm/dolibarr.svg)
+![Build status](https://img.shields.io/travis/Dolibarr/dolibarr/8.0.svg) ![Downloads per day](https://img.shields.io/sourceforge/dm/dolibarr.svg)
 
 Dolibarr ERP & CRM is a modern software package to manage your organization's activity (contacts, suppliers, invoices, orders, stocks, agenda…).
 

+ 1 - 1
htdocs/accountancy/class/accountancycategory.class.php

@@ -30,7 +30,7 @@ require_once DOL_DOCUMENT_ROOT . '/core/lib/accounting.lib.php';
  */
 class AccountancyCategory 	// extends CommonObject
 {
-	/**
+    /**
      * @var DoliDB Database handler.
      */
     public $db;

+ 16 - 7
htdocs/accountancy/class/accountingaccount.class.php

@@ -80,15 +80,24 @@ class AccountingAccount extends CommonObject
 	var $account_parent;
 	var $account_category;
 
-	/**
-     * @var string proper name for given parameter
+    /**
+     * @var string Label of account
      */
     public $label;
 
-	var $fk_user_author;
-	var $fk_user_modif;
-	var $active;       // duplicate with status
-	var $status;
+    /**
+     * @var int ID
+     */
+    public $fk_user_author;
+
+    /**
+     * @var int ID
+     */
+    public $fk_user_modif;
+
+    var $active;       // duplicate with status
+
+	  var $status;
 
 
 	/**
@@ -422,7 +431,7 @@ class AccountingAccount extends CommonObject
 	 * @param	string  $moretitle					Add more text to title tooltip
 	 * @param	int  	$notooltip					1=Disable tooltip
      * @param	int     $save_lastsearch_value		-1=Auto, 0=No save of lastsearch_values when clicking, 1=Save lastsearch_values whenclicking
-	 * @return	string	String with URL
+	 * @return  string	String with URL
 	 */
 	function getNomUrl($withpicto = 0, $withlabel = 0, $nourl = 0, $moretitle='',$notooltip=0, $save_lastsearch_value=-1)
 	{

+ 3 - 3
htdocs/adherents/canvas/actions_adherentcard_common.class.php

@@ -31,7 +31,7 @@ abstract class ActionsAdherentCardCommon
      * @var DoliDB Database handler.
      */
     public $db;
-    
+
     var $dirmodule;
     var $targetmodule;
     var $canvas;
@@ -41,11 +41,11 @@ abstract class ActionsAdherentCardCommon
 	var $tpl = array();
 	//! Object container
 	var $object;
-	
+
 	/**
 	 * @var string Error code (or message)
 	 */
-	public $error='';	
+	public $error='';
 
 	/**
 	 * @var string[] Error codes (or messages)

+ 5 - 5
htdocs/adherents/class/adherent.class.php

@@ -45,12 +45,12 @@ class Adherent extends CommonObject
 	 * @var string ID to identify managed object
 	 */
 	public $element='member';
-	
+
 	/**
 	 * @var string Name of table without prefix where object is stored
 	 */
 	public $table_element='adherent';
-	
+
 	public $ismultientitymanaged = 1;  // 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
 
 	var $mesgs;
@@ -542,10 +542,10 @@ class Adherent extends CommonObject
 						$luser->birth=$this->birth;
                                                 $luser->address=$this->address;
                                                 $luser->zip=$this->zip;
-                                                $luser->town=$this->town; 
-                                                $luser->country_id=$this->country_id; 
+                                                $luser->town=$this->town;
+                                                $luser->country_id=$this->country_id;
                                                 $luser->state_id=$this->state_id;
-						
+
 						$luser->email=$this->email;
 						$luser->skype=$this->skype;
 						$luser->office_phone=$this->phone;

+ 7 - 2
htdocs/comm/action/card.php

@@ -1250,8 +1250,13 @@ if ($id > 0)
 		if (! empty($object->fk_element) && ! empty($object->elementtype))
 		{
 			include_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
-			print '<tr><td>'.$langs->trans("LinkedObject").'</td>';
-			print '<td>'.dolGetElementUrl($object->fk_element,$object->elementtype,1).'</td></tr>';
+            print '<tr>';
+			print '<td>'.$langs->trans("LinkedObject").'</td>';
+			print '<td>'.dolGetElementUrl($object->fk_element,$object->elementtype,1);
+			print '<input type="hidden" name="fk_element" value="'.$object->fk_element.'">';
+			print '<input type="hidden" name="elementtype" value="'.$object->elementtype.'">';
+			print '</td>';
+			print '</tr>';
 		}
 
         // Description

+ 9 - 9
htdocs/comm/mailing/class/advtargetemailing.class.php

@@ -28,30 +28,30 @@
  */
 class AdvanceTargetingMailing extends CommonObject
 {
-	/**
-         * @var DoliDB Database handler.
-         */
-        public $db;
-    
+    /**
+     * @var DoliDB Database handler.
+     */
+    public $db;
+
 	/**
 	 * @var string Error code (or message)
 	 */
-	public $error='';	
+	public $error='';
 
 	/**
 	 * @var string[] Error codes (or messages)
 	 */
 	public $errors = array();
-	
+
 	/**
 	 * @var string ID to identify managed object
 	 */
 	public $element='advtargetemailing';
-	
+
 	/**
 	 * @var string Name of table without prefix where object is stored
 	 */
-	public $table_element='advtargetemailing';	
+	public $table_element='advtargetemailing';
 
 	/**
 	 * @var int ID

+ 5 - 5
htdocs/comm/mailing/class/html.formadvtargetemailing.class.php

@@ -30,7 +30,7 @@ class FormAdvTargetEmailing extends Form
      * @var DoliDB Database handler.
      */
     public $db;
-    
+
 	/**
 	 * @var string Error code (or message)
 	 */
@@ -378,10 +378,10 @@ class FormAdvTargetEmailing extends Form
 	/**
 	 *  Return combo list of categories
 	 *
-	 *  @param  string	$htmlname   Name of categorie
-	 * 	@param	array	$selected_array	value selected
-	 * 	@param	int	$type	type
-	 *  @return	string HTML combo
+	 *  @param  string	$htmlname  		Name of categorie
+	 * 	@param	array	$selected_array	Value selected
+	 * 	@param	int		$type			Type
+	 *  @return	string 					HTML combo
 	 */
 	public function multiselectCategories($htmlname='',$selected_array = array(), $type=0)
 	{

+ 1 - 1
htdocs/comm/propal/card.php

@@ -1514,7 +1514,7 @@ if ($action == 'create')
 	// Bank Account
 	if (! empty($conf->global->BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL) && ! empty($conf->banque->enabled)) {
 		print '<tr><td>' . $langs->trans('BankAccount') . '</td><td>';
-		$form->select_comptes($fk_account, 'fk_account', 0, '', 1);
+		$form->select_comptes($soc->fk_account, 'fk_account', 0, '', 1);
 		print '</td></tr>';
 	}
 

File diff suppressed because it is too large
+ 2467 - 2467
htdocs/commande/class/commande.class.php


+ 5 - 5
htdocs/compta/localtax/class/localtax.class.php

@@ -32,13 +32,13 @@ class Localtax extends CommonObject
 	/**
 	 * @var string ID to identify managed object
 	 */
-	public $element='localtax';	
-	
+	public $element='localtax';
+
 	/**
 	 * @var string Name of table without prefix where object is stored
 	 */
 	public $table_element='localtax';
-	
+
 	public $picto='payment';
 
 	var $ltt;
@@ -46,12 +46,12 @@ class Localtax extends CommonObject
 	var $datep;
 	var $datev;
 	var $amount;
-	
+
 	/**
      * @var string proper name for given parameter
      */
     public $label;
-    
+
 	var $fk_bank;
 	var $fk_user_creat;
 	var $fk_user_modif;

+ 0 - 2
htdocs/compta/sociales/class/paymentsocialcontribution.class.php

@@ -716,5 +716,3 @@ class PaymentSocialContribution extends CommonObject
 		return $result;
 	}
 }
-
-

+ 19 - 2
htdocs/core/class/comment.class.php

@@ -1,4 +1,21 @@
 <?php
+/*
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * or see http://www.gnu.org/
+ */
+
 /**
  * 	Class to manage comment
  */
@@ -8,11 +25,11 @@ class Comment extends CommonObject
 	 * @var string ID to identify managed object
 	 */
 	public $element='comment';
-	
+
 	/**
 	 * @var string Name of table without prefix where object is stored
 	 */
-	public $table_element='comment';	
+	public $table_element='comment';
 
 	public $fk_element;
 	public $element_type;

+ 38 - 38
htdocs/core/class/commonobject.class.php

@@ -46,58 +46,58 @@ abstract class CommonObject
 	 * @var DoliDb		Database handler (result of a new DoliDB)
 	 */
 	public $db;
-	
+
 	/**
 	 * @var int The object identifier
 	 */
 	public $id;
-	
+
 	/**
 	 * @var string 		Error string
 	 * @see             errors
 	 */
 	public $error;
-	
+
 	/**
 	 * @var string[]	Array of error strings
 	 */
 	public $errors=array();
-	
+
 	/**
 	 * @var string ID to identify managed object
 	 */
 	public $element;
-	
+
 	/**
 	 * @var string Name of table without prefix where object is stored
 	 */
 	public $table_element;
-	
+
 	/**
 	 * @var
 	 */
 	public $table_element_line;
-	
+
 	/**
 	 * @var string		Key value used to track if data is coming from import wizard
 	 */
 	public $import_key;
-	
+
 	/**
 	 * @var mixed		Contains data to manage extrafields
 	 */
 	public $array_options=array();
-	
+
 	/**
 	 * @var int[][]		Array of linked objects ids. Loaded by ->fetchObjectLinked
 	 */
 	public $linkedObjectsIds;
-	
+
 	/**
 	 * @var mixed		Array of linked objects. Loaded by ->fetchObjectLinked
 	 */
 	public $linkedObjects;
-	
+
 	/**
 	 * @var Object      To store a cloned copy of object before to edit it and keep track of old properties
 	 */
@@ -127,13 +127,13 @@ abstract class CommonObject
 	 * @see fetch_projet()
 	 */
 	public $project;
-	
+
 	/**
 	 * @var int The related project ID
 	 * @see setProject(), project
 	 */
 	public $fk_project;
-	
+
 	/**
 	 * @deprecated
 	 * @see project
@@ -145,7 +145,7 @@ abstract class CommonObject
 	 * @see fetch_contact()
 	 */
 	public $contact;
-	
+
 	/**
 	 * @var int The related contact ID
 	 * @see fetch_contact()
@@ -179,17 +179,17 @@ abstract class CommonObject
 	 * @var string The object's reference
 	 */
 	public $ref;
-	
+
 	/**
 	 * @var string The object's previous reference
 	 */
 	public $ref_previous;
-	
+
 	/**
 	 * @var string The object's next reference
 	 */
 	public $ref_next;
-	
+
 	/**
 	 * @var string An external reference for the object
 	 */
@@ -206,43 +206,43 @@ abstract class CommonObject
 	 * @see getFullAddress()
 	 */
 	public $country;
-	
+
 	/**
 	 * @var int
 	 * @see getFullAddress(), country
 	 */
 	public $country_id;
-	
+
 	/**
 	 * @var string
 	 * @see getFullAddress(), isInEEC(), country
 	 */
     public $country_code;
-    
+
     /**
 	 * @var string
 	 * @see getFullAddress()
 	 */
 	public $state;
-	
+
 	/**
 	 * @var int
 	 * @see getFullAddress(), state
 	 */
 	public $state_id;
-	
+
 	/**
 	 * @var string
 	 * @see getFullAddress(), state
 	 */
     public $state_code;
-    
+
     /**
 	 * @var string
 	 * @see getFullAddress(), region
 	 */
 	public $region;
-	
+
 	/**
 	 * @var string
 	 * @see getFullAddress(), region
@@ -254,19 +254,19 @@ abstract class CommonObject
 	 * @see fetch_barcode()
 	 */
 	public $barcode_type;
-	
+
 	/**
 	 * @var string
 	 * @see fetch_barcode(), barcode_type
 	 */
 	public $barcode_type_code;
-	
+
 	/**
 	 * @var string
 	 * @see fetch_barcode(), barcode_type
 	 */
 	public $barcode_type_label;
-	
+
 	/**
 	 * @var string
 	 * @see fetch_barcode(), barcode_type
@@ -284,7 +284,7 @@ abstract class CommonObject
 	 * @see setPaymentTerms()
 	 */
 	public $cond_reglement_id;
-	
+
 	/**
 	 * @var int Payment terms ID
 	 * @deprecated Kept for compatibility
@@ -322,13 +322,13 @@ abstract class CommonObject
 	 * @see update_note()
 	 */
 	public $note_public;
-	
+
 	/**
 	 * @var string Private note
 	 * @see update_note()
 	 */
 	public $note_private;
-	
+
 	/**
 	 * @deprecated
 	 * @see note_public
@@ -340,25 +340,25 @@ abstract class CommonObject
 	 * @see update_price()
 	 */
 	public $total_ht;
-	
+
 	/**
 	 * @var float Total VAT amount
 	 * @see update_price()
 	 */
 	public $total_tva;
-	
+
 	/**
 	 * @var float Total local tax 1 amount
 	 * @see update_price()
 	 */
 	public $total_localtax1;
-	
+
 	/**
 	 * @var float Total local tax 2 amount
 	 * @see update_price()
 	 */
 	public $total_localtax2;
-	
+
 	/**
 	 * @var float Total amount with taxes
 	 * @see update_price()
@@ -381,13 +381,13 @@ abstract class CommonObject
 	 * @see setIncoterms()
 	 */
 	public $fk_incoterms;
-	
+
 	/**
 	 * @var string
 	 * @see SetIncoterms()
 	 */
 	public $libelle_incoterms;
-	
+
 	/**
 	 * @var string
 	 * @see display_incoterms()
@@ -3760,7 +3760,7 @@ abstract class CommonObject
 
 		$num = count($this->lines);
 
-		//Line extrafield
+		// Line extrafield
 		require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
 		$extrafieldsline = new ExtraFields($this->db);
 		$extralabelslines=$extrafieldsline->fetch_name_optionals_label($this->table_element_line);
@@ -3769,6 +3769,7 @@ abstract class CommonObject
 		$reshook = $hookmanager->executeHooks('printObjectLineTitle', $parameters, $this, $action); // Note that $action and $object may have been modified by some hooks
 		if (empty($reshook))
 		{
+			// Title line
 		    print "<thead>\n";
 
 			print '<tr class="liste_titre nodrag nodrop">';
@@ -3860,7 +3861,6 @@ abstract class CommonObject
 			//Line extrafield
 			$line->fetch_optionals();
 
-
 			//if (is_object($hookmanager) && (($line->product_type == 9 && ! empty($line->special_code)) || ! empty($line->fk_parent_line)))
 			if (is_object($hookmanager))   // Old code is commented on preceding line.
 			{

+ 5 - 5
htdocs/core/class/events.class.php

@@ -30,7 +30,7 @@
 
 
 /**
- *	Events class
+ *  Events class
  */
 class Events // extends CommonObject
 {
@@ -38,18 +38,18 @@ class Events // extends CommonObject
 	 * @var string ID to identify managed object
 	 */
 	public $element='events';
-	
+
 	/**
 	 * @var string Name of table without prefix where object is stored
 	 */
-	public $table_element='events';	
+	public $table_element='events';
 
 	/**
 	 * @var int ID
 	 */
 	public $id;
-	
-	/**
+
+    /**
      * @var DoliDB Database handler.
      */
     public $db;

+ 9 - 10
htdocs/core/class/menubase.class.php

@@ -31,17 +31,17 @@ class Menubase
     /**
      * @var DoliDB Database handler.
      */
-    public $db;	
-    
+    public $db;
+
     /**
-	 * @var string Error code (or message)
-	 */
-	public $error;
-	
+     * @var string Error code (or message)
+     */
+    public $error;
+
     /**
-	 * @var string[] Error codes (or messages)
-	 */
-	public $errors = array();
+     * @var string[] Error codes (or messages)
+     */
+    public $errors = array();
 
     public $id;
 
@@ -696,4 +696,3 @@ class Menubase
    }
 
 }
-

+ 1 - 0
htdocs/core/lib/price.lib.php

@@ -163,6 +163,7 @@ function calcul_price_total($qty, $pu, $remise_percent_ligne, $txtva, $uselocalt
 			return array();
 		}
 	}
+	if ($pu === '') $pu=0;
 	// pu_devise calculation from pu
 	if (empty($pu_devise) && !empty($multicurrency_tx)) {
 		if (is_numeric($pu) && is_numeric($multicurrency_tx)) $pu_devise = $pu * $multicurrency_tx;

+ 4 - 0
htdocs/core/triggers/interface_80_modStripe_Stripe.class.php

@@ -176,6 +176,10 @@ class InterfaceStripe
 			if ($customer) {
 				$customer->delete();
 			}
+
+			$sql = "DELETE FROM ".MAIN_DB_PREFIX."societe_account";
+			$sql.= " WHERE site='stripe' AND fk_soc = " . $object->id;
+			$this->db->query($sql);
 		}
 
 		// If payment mode is linked to Strip, we update/delete Stripe too

+ 3 - 3
htdocs/cron/class/cronjob.class.php

@@ -34,12 +34,12 @@ class Cronjob extends CommonObject
 	 * @var string ID to identify managed object
 	 */
 	public $element='cronjob';
-	
+
 	/**
 	 * @var string Name of table without prefix where object is stored
 	 */
-	public $table_element='cronjob';	
-	
+	public $table_element='cronjob';
+
     public $picto = 'cron';
 
     public $entity;

+ 4 - 4
htdocs/don/class/paymentdonation.class.php

@@ -32,13 +32,13 @@ class PaymentDonation extends CommonObject
 	/**
 	 * @var string ID to identify managed object
 	 */
-	public $element='payment_donation';	
-	
+	public $element='payment_donation';
+
 	/**
 	 * @var string Name of table without prefix where object is stored
 	 */
 	public $table_element='payment_donation';
-	
+
     public $picto = 'payment';
 
 	public $rowid;
@@ -76,7 +76,7 @@ class PaymentDonation extends CommonObject
      *  Use this->amounts to have list of lines for the payment
      *
 	 *  @param      User		$user			User making payment
-	 *	@param      bool 		$notrigger 		false=launch triggers after, true=disable triggers
+	 *  @param      bool 		$notrigger 		false=launch triggers after, true=disable triggers
 	 *  @return     int     					<0 if KO, id of payment if OK
 	 */
 	function create($user, $notrigger=false)

+ 7 - 7
htdocs/expedition/class/expeditionbatch.class.php

@@ -31,8 +31,8 @@ class ExpeditionLineBatch extends CommonObject
 	/**
 	 * @var string ID to identify managed object
 	 */
-	public $element='expeditionlignebatch';			
-	
+	public $element='expeditionlignebatch';
+
 	private static $_table_element='expeditiondet_batch';		//!< Name of table without prefix where object is stored
 
 	var $sellby;
@@ -63,15 +63,15 @@ class ExpeditionLineBatch extends CommonObject
 	function fetchFromStock($id_stockdluo)
 	{
         $sql = "SELECT";
-	$sql.= " pb.batch,";
-	$sql.= " pl.sellby,";
-	$sql.= " pl.eatby,";
-	$sql.= " ps.fk_entrepot";
+        $sql.= " pb.batch,";
+        $sql.= " pl.sellby,";
+        $sql.= " pl.eatby,";
+        $sql.= " ps.fk_entrepot";
 
         $sql.= " FROM ".MAIN_DB_PREFIX."product_batch as pb";
         $sql.= " JOIN ".MAIN_DB_PREFIX."product_stock as ps on pb.fk_product_stock=ps.rowid";
         $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX."product_lot as pl on pl.batch = pb.batch AND pl.fk_product = ps.fk_product";
-	$sql.= " WHERE pb.rowid = ".(int) $id_stockdluo;
+        $sql.= " WHERE pb.rowid = ".(int) $id_stockdluo;
 
     	dol_syslog(get_class($this)."::fetch", LOG_DEBUG);
         $resql=$this->db->query($sql);

+ 3 - 3
htdocs/expensereport/class/expensereport.class.php

@@ -37,12 +37,12 @@ class ExpenseReport extends CommonObject
 	 * @var string ID to identify managed object
 	 */
 	public $element='expensereport';
-	
+
     /**
 	 * @var string Name of table without prefix where object is stored
 	 */
 	public $table_element='expensereport';
-	
+
     var $table_element_line = 'expensereport_det';
     var $fk_element = 'fk_expensereport';
     var $picto = 'trip';
@@ -2390,7 +2390,7 @@ class ExpenseReportLine
      * @var DoliDB Database handler.
      */
     public $db;
-    
+
     /**
 	 * @var string Error code (or message)
 	 */

+ 6 - 6
htdocs/fourn/class/fournisseur.commande.class.php

@@ -44,22 +44,22 @@ class CommandeFournisseur extends CommonOrder
 	 * @var string ID to identify managed object
 	 */
 	public $element='order_supplier';
-    
+
     /**
 	 * @var string Name of table without prefix where object is stored
 	 */
 	public $table_element='commande_fournisseur';
-	
+
     public $table_element_line = 'commande_fournisseurdet';
     public $fk_element = 'fk_commande';
     public $picto='order';
-    
+
     /**
      * 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
      * @var int
      */
     public $ismultientitymanaged = 1;
-    
+
     /**
      * 0=Default, 1=View may be restricted to sales representative only if no permission to see all or to company of external user if external user
      * @var integer
@@ -78,7 +78,7 @@ class CommandeFournisseur extends CommonOrder
 	 * @var string
 	 */
     public $ref;
-    
+
     public $ref_supplier;
     public $brouillon;
     public $statut;			// 0=Draft -> 1=Validated -> 2=Approved -> 3=Ordered/Process runing -> 4=Received partially -> 5=Received totally -> (reopen) 4=Received partially
@@ -3099,7 +3099,7 @@ class CommandeFournisseurLigne extends CommonOrderLine
 	 * @var string ID to identify managed object
 	 */
 	public $element='commande_fournisseurdet';
-    
+
 	/**
 	 * @var string Name of table without prefix where object is stored
 	 */

+ 6 - 6
htdocs/fourn/class/fournisseur.commande.dispatch.class.php

@@ -34,26 +34,26 @@ require_once DOL_DOCUMENT_ROOT."/core/class/commonobject.class.php";
  */
 class CommandeFournisseurDispatch extends CommonObject
 {
-	/**
+    /**
      * @var DoliDB Database handler.
      */
-    public $db;	
-    
+    public $db;
+
 	/**
 	 * @var string Error code (or message)
 	 */
 	public $error;
-	
+
 	/**
 	 * @var string[] Error codes (or messages)
 	 */
 	public $errors = array();
-	
+
 	/**
 	 * @var string ID to identify managed object
 	 */
 	public $element='commandefournisseurdispatch';
-	
+
 	/**
 	 * @var string Name of table without prefix where object is stored
 	 */

+ 30 - 17
htdocs/fourn/class/fournisseur.facture.class.php

@@ -45,22 +45,22 @@ class FactureFournisseur extends CommonInvoice
 	 * @var string ID to identify managed object
 	 */
 	public $element='invoice_supplier';
-    
+
     /**
      * @var string Name of table without prefix where object is stored
      */
     public $table_element='facture_fourn';
-	
+
     public $table_element_line='facture_fourn_det';
     public $fk_element='fk_facture_fourn';
     public $picto='bill';
-    
+
     /**
      * 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
      * @var int
      */
     public $ismultientitymanaged = 1;
-    
+
     /**
      * 0=Default, 1=View may be restricted to sales representative only if no permission to see all or to company of external user if external user
      * @var integer
@@ -110,13 +110,13 @@ class FactureFournisseur extends CommonInvoice
     public $total_localtax1=0;
     public $total_localtax2=0;
     public $total_ttc=0;
-    
+
 	/**
 	 * @deprecated
 	 * @see note_private, note_public
 	 */
     public $note;
-    
+
     public $note_private;
     public $note_public;
     public $propalid;
@@ -675,7 +675,9 @@ class FactureFournisseur extends CommonInvoice
      */
     function fetch_lines()
     {
-        $sql = 'SELECT f.rowid, f.ref as ref_supplier, f.description, f.pu_ht, f.pu_ttc, f.qty, f.remise_percent, f.vat_src_code, f.tva_tx';
+    	$this->lines = array();
+
+        $sql = 'SELECT f.rowid, f.ref as ref_supplier, f.description, f.date_start, f.date_end, f.pu_ht, f.pu_ttc, f.qty, f.remise_percent, f.vat_src_code, f.tva_tx';
         $sql.= ', f.localtax1_tx, f.localtax2_tx, f.localtax1_type, f.localtax2_type, f.total_localtax1, f.total_localtax2, f.fk_facture_fourn ';
         $sql.= ', f.total_ht, f.tva as total_tva, f.total_ttc, f.fk_product, f.product_type, f.info_bits, f.rang, f.special_code, f.fk_parent_line, f.fk_unit';
         $sql.= ', p.rowid as product_id, p.ref as product_ref, p.label as label, p.description as product_desc';
@@ -685,7 +687,6 @@ class FactureFournisseur extends CommonInvoice
         $sql.= ' WHERE fk_facture_fourn='.$this->id;
         $sql.= ' ORDER BY f.rang, f.rowid';
 
-
         dol_syslog(get_class($this)."::fetch_lines", LOG_DEBUG);
         $resql_rows = $this->db->query($sql);
         if ($resql_rows)
@@ -703,6 +704,9 @@ class FactureFournisseur extends CommonInvoice
                     $line->id				= $obj->rowid;
                     $line->rowid			= $obj->rowid;
                     $line->description		= $obj->description;
+                    $line->date_start		= $obj->date_start;
+                    $line->date_end			= $obj->date_end;
+
                     $line->product_ref		= $obj->product_ref;
                     $line->ref				= $obj->product_ref;
                     $line->ref_supplier		= $obj->ref_supplier;
@@ -1736,7 +1740,7 @@ class FactureFournisseur extends CommonInvoice
     public function updateline($id, $desc, $pu, $vatrate, $txlocaltax1=0, $txlocaltax2=0, $qty=1, $idproduct=0, $price_base_type='HT', $info_bits=0, $type=0, $remise_percent=0, $notrigger=false, $date_start='', $date_end='', $array_options=0, $fk_unit = null, $pu_ht_devise=0, $ref_supplier='')
     {
     	global $mysoc;
-        dol_syslog(get_class($this)."::updateline $id,$desc,$pu,$vatrate,$qty,$idproduct,$price_base_type,$info_bits,$type,$remise_percent,$fk_unit,$pu_ht_devise,$ref_supplier", LOG_DEBUG);
+        dol_syslog(get_class($this)."::updateline $id,$desc,$pu,$vatrate,$qty,$idproduct,$price_base_type,$info_bits,$type,$remise_percent,$notrigger,$date_start,$date_end,$fk_unit,$pu_ht_devise,$ref_supplier", LOG_DEBUG);
         include_once DOL_DOCUMENT_ROOT.'/core/lib/price.lib.php';
 
         $pu = price2num($pu);
@@ -1816,6 +1820,9 @@ class FactureFournisseur extends CommonInvoice
 	    $line->remise_percent = $remise_percent;
 	    $line->ref_supplier = $ref_supplier;
 
+	    $line->date_start = $date_start;
+	    $line->date_end = $date_end;
+
 	    $line->vat_src_code=$vat_src_code;
 	    $line->tva_tx = $vatrate;
 	    $line->localtax1_tx = $txlocaltax1;
@@ -2572,7 +2579,7 @@ class SupplierInvoiceLine extends CommonObjectLine
 	 * @var string ID to identify managed object
 	 */
 	public $element='facture_fourn_det';
-	
+
 	/**
 	 * @var string Name of table without prefix where object is stored
 	 */
@@ -2585,7 +2592,7 @@ class SupplierInvoiceLine extends CommonObjectLine
 	 * @see product_ref
 	 */
 	public $ref;
-	
+
 	/**
 	 * Internal ref
 	 * @var string
@@ -2604,7 +2611,7 @@ class SupplierInvoiceLine extends CommonObjectLine
 	 * @see label
 	 */
 	public $libelle;
-	
+
 	/**
 	 * Product description
 	 * @var string
@@ -2618,7 +2625,7 @@ class SupplierInvoiceLine extends CommonObjectLine
 	 * @see subprice
 	 */
 	public $pu_ht;
-	
+
 	public $subprice;
 
 	/**
@@ -2634,7 +2641,7 @@ class SupplierInvoiceLine extends CommonObjectLine
 	 * @see total_tva
 	 */
 	public $tva;
-	
+
 	public $total_tva;
 
 	/**
@@ -2656,6 +2663,9 @@ class SupplierInvoiceLine extends CommonObjectLine
 	 */
 	public $description;
 
+	public $date_start;
+	public $date_end;
+
 	public $skip_update_total; // Skip update price total for special lines
 
 	/**
@@ -2713,7 +2723,7 @@ class SupplierInvoiceLine extends CommonObjectLine
 	 */
 	public function fetch($rowid)
 	{
-		$sql = 'SELECT f.rowid, f.ref as ref_supplier, f.description, f.pu_ht, f.pu_ttc, f.qty, f.remise_percent, f.tva_tx';
+		$sql = 'SELECT f.rowid, f.ref as ref_supplier, f.description, f.date_start, f.date_end, f.pu_ht, f.pu_ttc, f.qty, f.remise_percent, f.tva_tx';
 		$sql.= ', f.localtax1_type, f.localtax2_type, f.localtax1_tx, f.localtax2_tx, f.total_localtax1, f.total_localtax2 ';
 		$sql.= ', f.total_ht, f.tva as total_tva, f.total_ttc, f.fk_facture_fourn, f.fk_product, f.product_type, f.info_bits, f.rang, f.special_code, f.fk_parent_line, f.fk_unit';
 		$sql.= ', p.rowid as product_id, p.ref as product_ref, p.label as label, p.description as product_desc';
@@ -2740,6 +2750,8 @@ class SupplierInvoiceLine extends CommonObjectLine
 		$this->rowid				= $obj->rowid;
 		$this->fk_facture_fourn			= $obj->fk_facture_fourn;
 		$this->description		= $obj->description;
+		$this->date_start		= $obj->date_start;
+		$this->date_end			= $obj->date_end;
 		$this->product_ref		= $obj->product_ref;
 		$this->ref_supplier		= $obj->ref_supplier;
 		$this->libelle			= $obj->label;
@@ -2871,6 +2883,8 @@ class SupplierInvoiceLine extends CommonObjectLine
 		$sql = "UPDATE ".MAIN_DB_PREFIX."facture_fourn_det SET";
 		$sql.= "  description ='".$this->db->escape($this->description)."'";
 		$sql.= ", ref ='".$this->db->escape($this->ref_supplier ? $this->ref_supplier : $this->ref)."'";
+		$sql.= ", date_start = ".($this->date_start != '' ? "'".$this->db->idate($this->date_start)."'" : "null");
+		$sql.= ", date_end = ".($this->date_end != '' ? "'".$this->db->idate($this->date_end)."'" : "null");
 		$sql.= ", pu_ht = ".price2num($this->pu_ht);
 		$sql.= ", pu_ttc = ".price2num($this->pu_ttc);
 		$sql.= ", qty = ".price2num($this->qty);
@@ -3045,12 +3059,11 @@ class SupplierInvoiceLine extends CommonObjectLine
         $sql.= ", ".price2num($this->multicurrency_total_ttc);
         $sql.= ')';
 
-        dol_syslog(get_class($this)."::insert", LOG_DEBUG);
         $resql=$this->db->query($sql);
         if ($resql)
         {
             $this->id=$this->db->last_insert_id(MAIN_DB_PREFIX.$this->table_element);
-            $this->rowid=$this->id;
+            $this->rowid=$this->id;		// backward compatibility
 
             if (empty($conf->global->MAIN_EXTRAFIELDS_DISABLED)) // For avoid conflicts if trigger used
             {

+ 3 - 2
htdocs/fourn/facture/card.php

@@ -1097,6 +1097,7 @@ if (empty($reshook))
 		$product_desc=(GETPOST('dp_desc')?GETPOST('dp_desc'):'');
 		$date_start=dol_mktime(GETPOST('date_start'.$predef.'hour'), GETPOST('date_start'.$predef.'min'), GETPOST('date_start' . $predef . 'sec'), GETPOST('date_start'.$predef.'month'), GETPOST('date_start'.$predef.'day'), GETPOST('date_start'.$predef.'year'));
 		$date_end=dol_mktime(GETPOST('date_end'.$predef.'hour'), GETPOST('date_end'.$predef.'min'), GETPOST('date_end' . $predef . 'sec'), GETPOST('date_end'.$predef.'month'), GETPOST('date_end'.$predef.'day'), GETPOST('date_end'.$predef.'year'));
+
 		$prod_entry_mode = GETPOST('prod_entry_mode');
 		if ($prod_entry_mode == 'free')
 		{
@@ -1211,7 +1212,7 @@ if (empty($reshook))
 				if(!empty($productsupplier->desc_supplier) && !empty($conf->global->PRODUIT_FOURN_TEXTS)) {
 				    $desc = $productsupplier->desc_supplier;
 				} else $desc = $productsupplier->description;
-				
+
 				if (trim($product_desc) != trim($desc)) $desc = dol_concatdesc($desc, $product_desc);
 
 				$type = $productsupplier->type;
@@ -2427,7 +2428,7 @@ else
             $discount = new DiscountAbsolute($db);
             $result = $discount->fetch(0, 0, $object->id);
             if ($result > 0){
-                print '. '.$langs->trans("CreditNoteConvertedIntoDiscount", $object->getLibType(), $discount->getNomUrl(1, 'discount')).'<br>';
+                print '. '.$langs->trans("CreditNoteConvertedIntoDiscount", $object->getLibType(1), $discount->getNomUrl(1, 'discount')).'<br>';
             }
         }
         print '</td></tr>';

+ 3 - 2
htdocs/install/fileconf.php

@@ -172,7 +172,7 @@ if (! empty($force_install_message))
 		?>
 		<ul>
 			<li>/var/lib/dolibarr/documents</li>
-			<li>C:/My Documents/dolibarr/</li>
+			<li>C:/My Documents/dolibarr/documents</li>
 		</ul>
 		</td>
 	</tr>
@@ -201,6 +201,7 @@ if (! empty($force_install_message))
 		<ul>
 			<li>http://localhost/</li>
 			<li>http://www.myserver.com:8180/dolibarr</li>
+			<li>https://www.myvirtualfordolibarr.com/</li>
 		</ul>
 		</td>
 	</tr>
@@ -382,7 +383,7 @@ if (! empty($force_install_message))
 				} ?>
 			>
 		</td>
-		<td class="comment"><?php echo $langs->trans("DatabasePrefix"); ?></td>
+		<td class="comment"><?php echo $langs->trans("DatabasePrefixDescription"); ?></td>
 	</tr>
 
 	<tr class="hidesqlite">

+ 1 - 1
htdocs/install/inc.php

@@ -566,7 +566,7 @@ function detect_dolibarr_main_url_root()
 		$dolibarr_main_url_root = $_SERVER["SERVER_URL"] . $_SERVER["DOCUMENT_URI"];
 	} // If SCRIPT_URI, SERVER_URL, DOCUMENT_URI not defined (Ie: Apache 2.0.44 for Windows)
 	else {
-		$proto = 'http';
+        $proto = ( (!empty($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] == 'on') || $_SERVER['SERVER_PORT'] == 443) ? 'https' : 'http';
 		if (!empty($_SERVER["HTTP_HOST"])) {
 			$serverport = $_SERVER["HTTP_HOST"];
 		} else {

+ 2 - 1
htdocs/langs/en_US/install.lang

@@ -50,13 +50,14 @@ ServerPortDescription=Database server port. Keep empty if unknown.
 DatabaseServer=Database server
 DatabaseName=Database name
 DatabasePrefix=Database table prefix
+DatabasePrefixDescription=Database table prefix. If empty, defaults to llx_.
 AdminLogin=User account for the Dolibarr database owner.
 PasswordAgain=Retype password confirmation
 AdminPassword=Password for Dolibarr database owner.
 CreateDatabase=Create database
 CreateUser=Create user account or grant user account permission on the Dolibarr database
 DatabaseSuperUserAccess=Database server - Superuser access
-CheckToCreateDatabase=Check the box if the database does not exist yet and so must be created.<br>In this case, you must fill in the user name and password for the superuser account at the bottom of this page.
+CheckToCreateDatabase=Check the box if the database does not exist yet and so must be created.<br>In this case, you must also fill in the user name and password for the superuser account at the bottom of this page.
 CheckToCreateUser=Check the box if:<br>the database user account does not yet exist and so must be created, or<br>if the user account exists but the database does not exist and permissions must be granted.<br>In this case, you must enter the user account and password and <b>also</b> the superuser account name and password at the bottom of this page. If this box is unchecked, database owner and password must already exist.
 DatabaseRootLoginDescription=Superuser account name (to create new databases or new users), mandatory if the database or its owner does not already exist.
 KeepEmptyIfNoPassword=Leave empty if superuser has no password (NOT recommended)

+ 1 - 0
htdocs/langs/en_US/other.lang

@@ -188,6 +188,7 @@ NumberOfUnitsSupplierInvoices=Number of units on supplier invoices
 EMailTextInterventionAddedContact=A new intervention %s has been assigned to you.
 EMailTextInterventionValidated=The intervention %s has been validated.
 EMailTextInvoiceValidated=The invoice %s has been validated.
+EMailTextInvoicePayed=The invoice %s has been payed.
 EMailTextProposalValidated=The proposal %s has been validated.
 EMailTextProposalClosedSigned=The proposal %s has been closed signed.
 EMailTextOrderValidated=The order %s has been validated.

+ 2 - 2
htdocs/langs/en_US/ticket.lang

@@ -189,11 +189,11 @@ TicketGoIntoContactTab=Please go into "Contacts" tab to select them
 TicketMessageMailIntro=Introduction
 TicketMessageMailIntroHelp=This text is added only at the beginning of the email and will not be saved.
 TicketMessageMailIntroLabelAdmin=Introduction to the message when sending email
-TicketMessageMailIntroText=<p> Hello </ p> A new response was sent on a ticket that you contact. Here is the message: </ p>
+TicketMessageMailIntroText=Hello,<br>A new response was sent on a ticket that you contact. Here is the message:<br>
 TicketMessageMailIntroHelpAdmin=This text will be inserted before the text of the response to a ticket.
 TicketMessageMailSignature=Signature
 TicketMessageMailSignatureHelp=This text is added only at the end of the email and will not be saved.
-TicketMessageMailSignatureText=<p>Cordialement,</p><p>--</p>
+TicketMessageMailSignatureText=<p>Sincerely,</p><p>--</p>
 TicketMessageMailSignatureLabelAdmin=Signature of response email
 TicketMessageMailSignatureHelpAdmin=This text will be inserted after the response message.
 TicketMessageHelp=Only this text will be saved in the message list on ticket card.

+ 1 - 1
htdocs/langs/fr_FR/agenda.lang

@@ -35,7 +35,7 @@ AgendaAutoActionDesc= Définissez ici les événements pour lesquels Dolibarr cr
 AgendaSetupOtherDesc= Cette page permet de configurer quelques options permettant d'exporter une vue de votre agenda Dolibarr vers un calendrier externe (Thunderbird, Google calendar, …)
 AgendaExtSitesDesc=Cette page permet d'ajouter des sources de calendriers externes pour les visualiser au sein de l'agenda Dolibarr.
 ActionsEvents=Événements pour lesquels Dolibarr doit insérer un évènement dans l'agenda en automatique.
-EventRemindersByEmailNotEnabled=Les rappels d'événements par email n'ont pas été activés dans la configuration du module Agenda.
+EventRemindersByEmailNotEnabled=Les rappels d'événements par email n'ont pas été activés dans la configuration du module %s.
 ##### Agenda event labels #####
 NewCompanyToDolibarr=Tiers %s créé
 ContractValidatedInDolibarr=Contrat %s validé

+ 1 - 0
htdocs/langs/fr_FR/other.lang

@@ -188,6 +188,7 @@ NumberOfUnitsSupplierInvoices=Quantités présentes dans les factures fournisseu
 EMailTextInterventionAddedContact=Une nouvelle intervention %s vous a été assignée
 EMailTextInterventionValidated=La fiche intervention %s vous concernant a été validée.
 EMailTextInvoiceValidated=La facture %s vous concernant a été validée.
+EMailTextInvoicePayed=La facture %s a été payée.
 EMailTextProposalValidated=La proposition commerciale %s vous concernant a été validée.
 EMailTextProposalClosedSigned=La proposition %s a été clôturée signée.
 EMailTextOrderValidated=La commande %s vous concernant a été validée.

+ 2 - 2
htdocs/loan/class/loan.class.php

@@ -33,9 +33,9 @@ class Loan extends CommonObject
 	 * @var string ID to identify managed object
 	 */
 	public $element='loan';
-	
+
 	public $table='loan';
-	
+
 	/**
 	 * @var string Name of table without prefix where object is stored
 	 */

+ 4 - 5
htdocs/loan/class/loanschedule.class.php

@@ -17,8 +17,8 @@
 
 /**
  *      \file       htdocs/loan/class/loanschedule.class.php
- *		\ingroup    facture
- *		\brief      File of class to manage schedule of loans
+ *      \ingroup    loan
+ *      \brief      File of class to manage schedule of loans
  */
 
 require_once DOL_DOCUMENT_ROOT.'/core/class/commonobject.class.php';
@@ -33,11 +33,11 @@ class LoanSchedule extends CommonObject
 	 * @var string ID to identify managed object
 	 */
 	public $element='loan_schedule';
-	
+
 	/**
 	 * @var string Name of table without prefix where object is stored
 	 */
-	public $table_element='loan_schedule';	
+	public $table_element='loan_schedule';
 
 	var $fk_loan;
 	var $datec='';
@@ -547,4 +547,3 @@ class LoanSchedule extends CommonObject
 		return $result;
 	}
 }
-

+ 2 - 2
htdocs/loan/class/paymentloan.class.php

@@ -34,11 +34,11 @@ class PaymentLoan extends CommonObject
 	 * @var string ID to identify managed object
 	 */
 	public $element='payment_loan';
-	
+
 	/**
 	 * @var string Name of table without prefix where object is stored
 	 */
-	public $table_element='payment_loan';	
+	public $table_element='payment_loan';
 
 	var $fk_loan;
 	var $datec='';

+ 3 - 3
htdocs/opensurvey/class/opensurveysondage.class.php

@@ -38,12 +38,12 @@ class Opensurveysondage extends CommonObject
 	 * @var string ID to identify managed object
 	 */
 	public $element='opensurvey_sondage';
-	
+
 	/**
 	 * @var string Name of table without prefix where object is stored
 	 */
-	public $table_element='opensurvey_sondage';	
-	
+	public $table_element='opensurvey_sondage';
+
     public $picto = 'opensurvey';
 
 	public $id_sondage;

+ 2 - 0
htdocs/opensurvey/fonctions.php

@@ -71,6 +71,8 @@ function opensurvey_prepare_head(Opensurveysondage $object)
  */
 function llxHeaderSurvey($title, $head="", $disablejs=0, $disablehead=0, $arrayofjs='', $arrayofcss='')
 {
+	global $conf, $mysoc;
+
 	top_htmlhead($head, $title, $disablejs, $disablehead, $arrayofjs, $arrayofcss); // Show html headers
 	print '<body id="mainbody" class="publicnewmemberform" style="margin-top: 10px;">';
 

+ 2 - 2
htdocs/product/class/productbatch.class.php

@@ -33,8 +33,8 @@ class Productbatch extends CommonObject
 	/**
 	 * @var string ID to identify managed object
 	 */
-	public $element='productbatch';		
-	
+	public $element='productbatch';
+
 	private static $_table_element='product_batch';		//!< Name of table without prefix where object is stored
 
 	var $tms='';

+ 5 - 5
htdocs/product/class/productcustomerprice.class.php

@@ -31,13 +31,13 @@ class Productcustomerprice extends CommonObject
 	/**
 	 * @var string ID to identify managed object
 	 */
-	public $element = 'product_customer_price'; 
-	
+	public $element = 'product_customer_price';
+
 	/**
 	 * @var string Name of table without prefix where object is stored
 	 */
-	public $table_element = 'product_customer_price'; 
-	
+	public $table_element = 'product_customer_price';
+
 	var $entity;
 	var $datec = '';
 	var $tms = '';
@@ -962,7 +962,7 @@ class PriceByCustomerLine
 	 * @var int ID
 	 */
 	public $id;
-	
+
 	var $entity;
 	var $datec = '';
 	var $tms = '';

+ 3 - 3
htdocs/product/class/propalmergepdfproduct.class.php

@@ -34,12 +34,12 @@ class Propalmergepdfproduct extends CommonObject
 	/**
 	 * @var string ID to identify managed object
 	 */
-	public $element='propal_merge_pdf_product';			
-	
+	public $element='propal_merge_pdf_product';
+
 	/**
 	 * @var string Name of table without prefix where object is stored
 	 */
-	public $table_element='propal_merge_pdf_product';	
+	public $table_element='propal_merge_pdf_product';
 
 	var $fk_product;
 	var $file_name;

+ 15 - 9
htdocs/product/fournisseurs.php

@@ -249,14 +249,20 @@ if (empty($reshook))
 				if (isset($_POST['ref_fourn_price_id']))
 					$object->fetch_product_fournisseur_price($_POST['ref_fourn_price_id']);
 
-                if ($conf->multicurrency->enabled) {
-                    $ret = $object->update_buyprice($quantity, $_POST["price"], $user, $_POST["price_base_type"], $supplier, $_POST["oselDispo"], $ref_fourn, $tva_tx, $_POST["charges"], $remise_percent, 0, $npr, $delivery_time_days, $supplier_reputation, array(), '', $_POST["multicurrency_price"], $_POST["multicurrency_price_base_type"], $_POST["multicurrency_tx"], $_POST["multicurrency_code"], $supplier_description);
+				$newprice = price2num(GETPOST("price","alpha"));
+
+                if ($conf->multicurrency->enabled)
+                {
+                	$multicurrency_tx = price2num(GETPOST("multicurrency_tx",'alpha'));
+                	$multicurrency_price = price2num(GETPOST("multicurrency_price",'alpha'));
+                	$multicurrency_code = GETPOST("multicurrency_code",'alpha');
+
+                    $ret = $object->update_buyprice($quantity, $newprice, $user, $_POST["price_base_type"], $supplier, $_POST["oselDispo"], $ref_fourn, $tva_tx, $_POST["charges"], $remise_percent, 0, $npr, $delivery_time_days, $supplier_reputation, array(), '', $multicurrency_price, $_POST["multicurrency_price_base_type"], $multicurrency_tx, $multicurrency_code, $supplier_description);
                 } else {
-                    $ret = $object->update_buyprice($quantity, $_POST["price"], $user, $_POST["price_base_type"], $supplier, $_POST["oselDispo"], $ref_fourn, $tva_tx, $_POST["charges"], $remise_percent, 0, $npr, $delivery_time_days, $supplier_reputation, array(), '', 0, 'HT', 1, '', $supplier_description);
+                    $ret = $object->update_buyprice($quantity, $newprice, $user, $_POST["price_base_type"], $supplier, $_POST["oselDispo"], $ref_fourn, $tva_tx, $_POST["charges"], $remise_percent, 0, $npr, $delivery_time_days, $supplier_reputation, array(), '', 0, 'HT', 1, '', $supplier_description);
                 }
 				if ($ret < 0)
 				{
-
 					$error++;
 					setEventMessages($object->error, $object->errors, 'errors');
 				}
@@ -566,7 +572,7 @@ if ($id > 0 || $ref)
                     // Currency price qty min
                     print '<tr><td class="fieldrequired">'.$langs->trans("PriceQtyMinCurrency").'</td>';
                     $pricesupplierincurrencytouse=(GETPOST('multicurrency_price')?GETPOST('multicurrency_price'):(isset($object->fourn_multicurrency_price)?$object->fourn_multicurrency_price:''));
-                    print '<td><input class="flat" name="multicurrency_price" size="8" value="'.$pricesupplierincurrencytouse.'">';
+                    print '<td><input class="flat" name="multicurrency_price" size="8" value="'.price($pricesupplierincurrencytouse).'">';
                     print '&nbsp;';
                     print $form->selectPriceBaseType((GETPOST('multicurrency_price_base_type')?GETPOST('multicurrency_price_base_type'):'HT'), "multicurrency_price_base_type");  // We keep 'HT' here, multicurrency_price_base_type is not yet supported for supplier prices
                     print '</td></tr>';
@@ -678,18 +684,18 @@ SCRIPT;
 				{
 				    //WYSIWYG Editor
 				    require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
-				    
+
     				print '<tr>';
     				print '<td>'.$langs->trans('ProductSupplierDescription').'</td>';
     				print '<td>';
-    				
+
     				$doleditor = new DolEditor('supplier_description', $object->desc_supplier, '', 160, 'dolibarr_details', '', false, true, $conf->global->FCKEDITOR_ENABLE_PRODUCTDESC, ROWS_4, '90%');
     				$doleditor->Create();
-    				
+
     				print '</td>';
     				print '</tr>';
 				}
-				
+
 				if (is_object($hookmanager))
 				{
 					$parameters=array('id_fourn'=>$id_fourn,'prod_id'=>$object->id);

+ 7 - 7
htdocs/projet/class/project.class.php

@@ -36,13 +36,13 @@ class Project extends CommonObject
     /**
 	 * @var string ID to identify managed object
 	 */
-	public $element = 'project'; 
-    
+	public $element = 'project';
+
     /**
 	 * @var string Name of table without prefix where object is stored
 	 */
-	public $table_element = 'projet';  
-	
+	public $table_element = 'projet';
+
     public $table_element_line = 'projet_task';
     public $fk_element = 'fk_projet';
     public $ismultientitymanaged = 1;  // 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
@@ -732,10 +732,10 @@ class Project extends CommonObject
             return -1;
         }
     }
-    
+
     /**
      * 		Delete tasks with no children first, then task with children recursively
-     *  
+     *
      *  	@param     	User		$user		User
      *		@return		int				<0 if KO, 1 if OK
      */
@@ -763,7 +763,7 @@ class Project extends CommonObject
         {
             if (count($this->lines)) $this->deleteTasks($this->lines);
         }
-        
+
         return 1;
     }
 

+ 9 - 9
htdocs/projet/class/task.class.php

@@ -34,24 +34,24 @@ class Task extends CommonObject
 	/**
 	 * @var string ID to identify managed object
 	 */
-	public $element='project_task';	
-	
+	public $element='project_task';
+
 	/**
 	 * @var string Name of table without prefix where object is stored
 	 */
-	public $table_element='projet_task';	
-	
+	public $table_element='projet_task';
+
 	public $fk_element='fk_task';
 	public $picto = 'task';
 	protected $childtables=array('projet_task_time');    // To test if we can delete object
 
-	var $fk_task_parent;
-	
-	/**
-     * @var string proper name for given parameter
+    public $fk_task_parent;
+
+    /**
+     * @var string Label of task
      */
     public $label;
-    
+
 	var $description;
 	var $duration_effective;		// total of time spent on this task
 	var $planned_workload;

+ 6 - 6
htdocs/ticket/class/ticket.class.php

@@ -38,27 +38,27 @@ class Ticket extends CommonObject
      * @var string ID to identify managed object
      */
     public $element = 'ticket';
-    
+
     /**
      * @var string Name of table without prefix where object is stored
      */
     public $table_element = 'ticket';
-    
+
     /**
      * @var string Name of field for link to tickets
      */
     public $fk_element='fk_ticket';
-    
+
     /**
      * @var int  Does ticketcore support multicompany module ? 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
      */
-    public $ismultientitymanaged = 0;
-    
+    public $ismultientitymanaged = 1;
+
     /**
      * @var int  Does ticketcore support extrafields ? 0=No, 1=Yes
      */
     public $isextrafieldmanaged = 1;
-    
+
     /**
      * @var string String with name of icon for ticketcore. Must be the part after the 'object_' into object_ticketcore.png
      */

+ 16 - 16
htdocs/ticket/class/ticketlogs.class.php

@@ -36,26 +36,26 @@ class Ticketlogs// extends CommonObject
      * @var DoliDB Database handler.
      */
     public $db;
-    
+
     /**
-	 * @var string Error code (or message)
-	 */
-	public $error; 
-	
+     * @var string Error code (or message)
+     */
+    public $error;
+
     /**
-	 * @var string[] Error codes (or messages)
-	 */
-	public $errors = array();
-    
+     * @var string[] Error codes (or messages)
+     */
+    public $errors = array();
+
     /**
-	 * @var string ID to identify managed object
-	 */
-	public $element = 'ticketlogs'; 
-	
+     * @var string ID to identify managed object
+     */
+    public $element = 'ticketlogs';
+
     /**
-	 * @var string Name of table without prefix where object is stored
-	 */
-	public $table_element = 'ticketlogs'; //!< Name of table without prefix where object is stored
+     * @var string Name of table without prefix where object is stored
+     */
+    public $table_element = 'ticketlogs'; //!< Name of table without prefix where object is stored
 
     public $id;
 

+ 3 - 3
htdocs/user/document.php

@@ -88,9 +88,9 @@ if ($id > 0 || ! empty($ref))
 {
 	$result = $object->fetch($id, $ref, '', 1);
 	$object->getrights();
-	$entitytouseforuserdir = $object->entity;
-	if (empty($entitytouseforuserdir)) $entitytouseforuserdir=1;
-	$upload_dir = $conf->user->multidir_output[$entitytouseforuserdir] . "/" . $object->id ;
+	//$upload_dir = $conf->user->multidir_output[$object->entity] . "/" . $object->id ;
+	// For users, the upload_dir is always $conf->user->entity for the moment
+	$upload_dir = $conf->user->dir_output. "/" . $object->id ;
 }
 
 // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context

+ 1 - 1
htdocs/viewimage.php

@@ -228,7 +228,7 @@ if (preg_match('/\.\./',$fullpath_original_file) || preg_match('/[<>|]/',$fullpa
 if ($modulepart == 'barcode')
 {
     $generator=GETPOST("generator","alpha");
-    $code=GETPOST("code",'alpha');
+    $code=GETPOST("code",'none');							// This can be rich content (qrcode, datamatrix, ...)
     $encoding=GETPOST("encoding","alpha");
     $readable=GETPOST("readable",'alpha')?GETPOST("readable","alpha"):"Y";
 

Some files were not shown because too many files changed in this diff