Browse Source

Merge branch '11.0' of git@github.com:Dolibarr/dolibarr.git into 12.0

Conflicts:
	htdocs/core/tpl/card_presend.tpl.php
	htdocs/multicurrency/class/multicurrency.class.php
	htdocs/supplier_proposal/class/supplier_proposal.class.php
Laurent Destailleur 5 years ago
parent
commit
e3126ec999

+ 1 - 1
htdocs/compta/facture/class/facture.class.php

@@ -423,7 +423,7 @@ class Facture extends CommonInvoice
 		$this->brouillon = 1;
 
 		// Multicurrency (test on $this->multicurrency_tx because we should take the default rate only if not using origin rate)
-		if (!empty($this->multicurrency_code) && empty($this->multicurrency_tx)) list($this->fk_multicurrency, $this->multicurrency_tx) = MultiCurrency::getIdAndTxFromCode($this->db, $this->multicurrency_code);
+		if (!empty($this->multicurrency_code) && empty($this->multicurrency_tx)) list($this->fk_multicurrency, $this->multicurrency_tx) = MultiCurrency::getIdAndTxFromCode($this->db, $this->multicurrency_code, $this->date);
 		else $this->fk_multicurrency = MultiCurrency::getIdFromCode($this->db, $this->multicurrency_code);
 		if (empty($this->fk_multicurrency))
 		{

+ 7 - 0
htdocs/compta/facture/invoicetemplate_list.php

@@ -53,6 +53,8 @@ $contextpage = GETPOST('contextpage', 'aZ') ?GETPOST('contextpage', 'aZ') : 'inv
 
 $socid = GETPOST('socid', 'int');
 
+$socid = GETPOST('socid', 'int');
+
 // Security check
 $id = (GETPOST('facid', 'int') ?GETPOST('facid', 'int') : GETPOST('id', 'int'));
 $lineid = GETPOST('lineid', 'int');
@@ -151,6 +153,11 @@ if ($socid > 0) {
 }
 
 
+if ($socid > 0) {
+        $tmpthirdparty = new Societe($db);
+        $res = $tmpthirdparty->fetch($socid);
+        if ($res > 0) $search_societe = $tmpthirdparty->name;
+}
 
 /*
  * Actions

+ 18 - 1
htdocs/core/tpl/card_presend.tpl.php

@@ -131,7 +131,24 @@ if ($action == 'presend')
 	{
 		$formmail->fromid = $user->id;
 	}
-	$formmail->trackid = $trackid;
+
+	if ($object->element === 'facture' && !empty($conf->global->INVOICE_EMAIL_SENDER)) {
+		$formmail->frommail = $conf->global->INVOICE_EMAIL_SENDER;
+		$formmail->fromname = '';
+		$formmail->fromtype = 'special';
+	}
+	if ($object->element === 'shipping' && !empty($conf->global->SHIPPING_EMAIL_SENDER)) {
+		$formmail->frommail = $conf->global->SHIPPING_EMAIL_SENDER;
+		$formmail->fromname = '';
+		$formmail->fromtype = 'special';
+	}
+	if ($object->element === 'commande' && !empty($conf->global->COMMANDE_EMAIL_SENDER)) {
+		$formmail->frommail = $conf->global->COMMANDE_EMAIL_SENDER;
+		$formmail->fromname = '';
+		$formmail->fromtype = 'special';
+	}
+
+	$formmail->trackid=$trackid;
 	if (!empty($conf->global->MAIN_EMAIL_ADD_TRACK_ID) && ($conf->global->MAIN_EMAIL_ADD_TRACK_ID & 2))	// If bit 2 is set
 	{
 		include DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';

+ 1 - 1
htdocs/core/tpl/extrafields_list_print_fields.tpl.php

@@ -60,7 +60,7 @@ if (!empty($extrafieldsobjectkey))	// $extrafieldsobject is the $object->table_e
                         // we keep position for the first line
                         $totalarray['totalizable'][$key]['pos'] = $totalarray['nbfield'];
                     }
-                    $totalarray['totalizable'][$key]['total'] += $obj->$tmpkey;
+	                if (is_numeric($obj->$tmpkey)) $totalarray['totalizable'][$key]['total'] += $obj->$tmpkey;
                 }
 				if (!empty($val['isameasure']))
 				{

+ 5 - 1
htdocs/fourn/class/fournisseur.commande.class.php

@@ -1292,11 +1292,15 @@ class CommandeFournisseur extends CommonOrder
 		$error = 0;
         $now = dol_now();
 
+		// $date_commande is deprecated
+		$date = ($this->date_commande ? $this->date_commande : $this->date); // in case of date is set
+		if(empty($date)) $date = $now;
+
         // Clean parameters
         if (empty($this->source)) $this->source = 0;
 
 		// Multicurrency (test on $this->multicurrency_tx because we should take the default rate only if not using origin rate)
-		if (!empty($this->multicurrency_code) && empty($this->multicurrency_tx)) list($this->fk_multicurrency, $this->multicurrency_tx) = MultiCurrency::getIdAndTxFromCode($this->db, $this->multicurrency_code);
+		if (!empty($this->multicurrency_code) && empty($this->multicurrency_tx)) list($this->fk_multicurrency, $this->multicurrency_tx) = MultiCurrency::getIdAndTxFromCode($this->db, $this->multicurrency_code, $date);
 		else $this->fk_multicurrency = MultiCurrency::getIdFromCode($this->db, $this->multicurrency_code);
 		if (empty($this->fk_multicurrency))
 		{

+ 1 - 1
htdocs/fourn/class/fournisseur.facture.class.php

@@ -359,7 +359,7 @@ class FactureFournisseur extends CommonInvoice
         $remise = $this->remise;
 
 		// Multicurrency (test on $this->multicurrency_tx because we should take the default rate only if not using origin rate)
-		if (!empty($this->multicurrency_code) && empty($this->multicurrency_tx)) list($this->fk_multicurrency, $this->multicurrency_tx) = MultiCurrency::getIdAndTxFromCode($this->db, $this->multicurrency_code);
+		if (!empty($this->multicurrency_code) && empty($this->multicurrency_tx)) list($this->fk_multicurrency, $this->multicurrency_tx) = MultiCurrency::getIdAndTxFromCode($this->db, $this->multicurrency_code, $this->date);
 		else $this->fk_multicurrency = MultiCurrency::getIdFromCode($this->db, $this->multicurrency_code);
 		if (empty($this->fk_multicurrency))
 		{

+ 1 - 1
htdocs/fourn/class/fournisseur.product.class.php

@@ -1025,7 +1025,7 @@ class ProductFournisseur extends Product
             //$out .= '<td class="liste_titre right">'.$langs->trans("QtyMin").'</td>';
             $out .= '<td class="liste_titre">'.$langs->trans("User").'</td></tr>';
             foreach ($productFournLogList as $productFournLog) {
-                $out .= '<tr><td class="right">'.dol_print_date($this->db->jdate($productFournLog['datec']), 'dayhour', 'tzuser').'</td>';
+                $out .= '<tr><td class="right">'.dol_print_date($productFournLog['datec'], 'dayhour', 'tzuser').'</td>';
                 $out .= '<td class="right">'.price($productFournLog['price']).'</td>';
                 //$out.= '<td class="right">'.$productFournLog['quantity'].'</td>';
                 $out .= '<td>'.$productFournLog['lastname'].'</td></tr>';

+ 2 - 1
htdocs/multicurrency/class/multicurrency.class.php

@@ -519,6 +519,7 @@ class MultiCurrency extends CommonObject
 		global $conf;
 
 	 	$sql1 = 'SELECT m.rowid, mc.rate FROM '.MAIN_DB_PREFIX.'multicurrency m';
+
 		$sql1 .= ' LEFT JOIN '.MAIN_DB_PREFIX.'multicurrency_rate mc ON (m.rowid = mc.fk_multicurrency)';
 		$sql1 .= " WHERE m.code = '".$db->escape($code)."'";
 		$sql1 .= " AND m.entity IN (".getEntity('multicurrency').")";
@@ -527,7 +528,7 @@ class MultiCurrency extends CommonObject
 			$tmparray = dol_getdate($date_document);
 			$sql2 .= " AND mc.date_sync <= '".$db->idate(dol_mktime(23, 59, 59, $tmparray['mon'], $tmparray['mday'], $tmparray['year'], true))."'";
 		}
-		$sql3 .= ' ORDER BY mc.date_sync DESC LIMIT 1';
+		$sql3 = ' ORDER BY mc.date_sync DESC LIMIT 1';
 
 		dol_syslog(__METHOD__, LOG_DEBUG);
 		$resql = $db->query($sql1.$sql2.$sql3);

+ 1 - 1
htdocs/supplier_proposal/class/supplier_proposal.class.php

@@ -897,7 +897,7 @@ class SupplierProposal extends CommonObject
         }
 
         // Multicurrency
-        if (!empty($this->multicurrency_code)) list($this->fk_multicurrency, $this->multicurrency_tx) = MultiCurrency::getIdAndTxFromCode($this->db, $this->multicurrency_code);
+        if (!empty($this->multicurrency_code)) list($this->fk_multicurrency, $this->multicurrency_tx) = MultiCurrency::getIdAndTxFromCode($this->db, $this->multicurrency_code, $now);
         if (empty($this->fk_multicurrency))
         {
             $this->multicurrency_code = $conf->currency;

+ 4 - 1
test/phpunit/CodingSqlTest.php

@@ -164,7 +164,10 @@ class CodingSqlTest extends PHPUnit\Framework\TestCase
                     continue;
 
                 print 'Check sql file '.$file."\n";
-                $filecontent=file_get_contents($dir.'/'.$file);
+                $filecontent = file_get_contents($dir.'/'.$file);
+
+                // Allow ` for 'rank' column name
+                $filecontent = str_replace('`rank`', '_rank_', $filecontent);
 
                 $result=strpos($filecontent, '`');
                 print __METHOD__." Result for checking we don't have back quote = ".$result."\n";