Browse Source

Debug multicurrency

Laurent Destailleur 8 years ago
parent
commit
78e8ab64aa

+ 0 - 31
htdocs/admin/facture.php

@@ -262,23 +262,6 @@ if ($action == 'setforcedate')
     }
 }
 
-if ($action == 'set_INVOICE_AUTO_FILLJS')
-{
-	$freetext = GETPOST('INVOICE_AUTO_FILLJS');	// No alpha here, we want exact string
-
-	$res = dolibarr_set_const($db, "INVOICE_AUTO_FILLJS",$freetext,'chaine',0,'',$conf->entity);
-
-	if (! $res > 0) $error++;
-
-	if (! $error)
-	{
-		setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
-	}
-	else
-	{
-		setEventMessages($langs->trans("Error"), null, 'errors');
-	}
-}
 
 
 /*
@@ -750,20 +733,6 @@ print '<input type="submit" class="button" value="'.$langs->trans("Modify").'" /
 print "</td></tr>\n";
 print '</form>';
 
-// Add js auto fill amount on paiement form
-$var=! $var;
-print '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
-print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'" />';
-print '<input type="hidden" name="action" value="set_INVOICE_AUTO_FILLJS" />';
-print '<tr '.$bc[$var].'><td>';
-print $langs->trans("JSOnPaimentBill");
-print '</td><td width="60" align="center">';
-print $form->selectyesno("INVOICE_AUTO_FILLJS",$conf->global->INVOICE_AUTO_FILLJS,1);
-print '</td><td align="right">';
-print '<input type="submit" class="button" value="'.$langs->trans("Modify").'" />';
-print "</td></tr>\n";
-print '</form>';
-
 $var=! $var;
 print '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
 print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'" />';

+ 41 - 10
htdocs/admin/payment.php

@@ -69,7 +69,7 @@ if ($action == 'setmod')
     dolibarr_set_const($db, "PAYMENT_ADDON",$value,'chaine',0,'',$conf->entity);
 }
 
-if ($action == 'set_FACTURE_PAYMENTS_ON_DIFFERENT_THIRDPARTIES_BILLS')
+if ($action == 'setparams')
 {
 	$freetext = GETPOST('FACTURE_PAYMENTS_ON_DIFFERENT_THIRDPARTIES_BILLS');	// No alpha here, we want exact string
 
@@ -77,16 +77,31 @@ if ($action == 'set_FACTURE_PAYMENTS_ON_DIFFERENT_THIRDPARTIES_BILLS')
 
 	if (! $res > 0) $error++;
 
-	if (! $error)
+	if ($error)
 	{
-		setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
+		setEventMessages($langs->trans("Error"), null, 'errors');
 	}
-	else
+	
+	/*
+	$freetext = GETPOST('INVOICE_AUTO_FILLJS');	// No alpha here, we want exact string
+	
+	$res = dolibarr_set_const($db, "INVOICE_AUTO_FILLJS",$freetext,'chaine',0,'',$conf->entity);
+	
+	if (! $res > 0) $error++;
+	
+	if ($error)
 	{
-		setEventMessages($langs->trans("Error"), null, 'errors');
+	    setEventMessages($langs->trans("Error"), null, 'errors');
+	}*/
+
+	if (! $error)
+	{
+	    setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
 	}
+	
 }
 
+
 /*
  * View
  */
@@ -235,6 +250,10 @@ print "<br />";
 
 print load_fiche_titre($langs->trans("OtherOptions"),'','');
 
+print '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
+print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'" />';
+print '<input type="hidden" name="action" value="setparams" />';
+
 print '<table class="noborder" width="100%">';
 print '<tr class="liste_titre">';
 print '<td>'.$langs->trans("Parameter").'</td>';
@@ -244,20 +263,32 @@ print "</tr>\n";
 
 // Allow payments on different thirdparties bills but same parent company
 $var=! $var;
-print '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
-print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'" />';
-print '<input type="hidden" name="action" value="set_FACTURE_PAYMENTS_ON_DIFFERENT_THIRDPARTIES_BILLS" />';
 print '<tr '.$bc[$var].'><td>';
 print $langs->trans("PaymentOnDifferentThirdBills");
 print '</td><td width="60" align="center">';
 print $form->selectyesno("FACTURE_PAYMENTS_ON_DIFFERENT_THIRDPARTIES_BILLS",$conf->global->FACTURE_PAYMENTS_ON_DIFFERENT_THIRDPARTIES_BILLS,1);
 print '</td><td align="right">';
-print '<input type="submit" class="button" value="'.$langs->trans("Modify").'" />';
 print "</td></tr>\n";
-print '</form>';
+
+// Add js auto fill amount on paiement form
+/* always on now
+$var=! $var;
+print '<tr '.$bc[$var].'><td>';
+print $langs->trans("JSOnPaimentBill");
+print '</td><td width="60" align="center">';
+print $form->selectyesno("INVOICE_AUTO_FILLJS",$conf->global->INVOICE_AUTO_FILLJS,1);
+print '</td><td align="right">';
+print "</td></tr>\n";
+*/
 
 print '</table>';
 
+print '<center>';
+print '<input type="submit" class="button" value="'.$langs->trans("Modify").'" />';
+print '</center>';
+
+print '</form>';
+
 dol_fiche_end();
 
 

+ 44 - 32
htdocs/compta/paiement.php

@@ -38,6 +38,7 @@ require_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php';
 $langs->load('companies');
 $langs->load('bills');
 $langs->load('banks');
+$langs->load('multicurrency');
 
 $action		= GETPOST('action','alpha');
 $confirm	= GETPOST('confirm');
@@ -433,7 +434,7 @@ if ($action == 'create' || $action == 'confirm_paiement' || $action == 'add_paie
 			';
 
 			print '	});'."\n";
-			if(!empty($conf->global->INVOICE_AUTO_FILLJS)){
+			if (!empty($conf->use_javascript_ajax)){
 				//Add js for AutoFill
 				print ' $(document).ready(function () {';
 				print ' 	$(".AutoFillAmout").on(\'click touchstart\', function(){
@@ -515,10 +516,12 @@ if ($action == 'create' || $action == 'confirm_paiement' || $action == 'add_paie
 
 		dol_fiche_end();
 
+		
         /*
          * List of unpaid invoices
          */
-        $sql = 'SELECT f.rowid as facid, f.facnumber, f.total_ttc, f.multicurrency_total_ttc, f.type, ';
+		
+        $sql = 'SELECT f.rowid as facid, f.facnumber, f.total_ttc, f.multicurrency_code, f.multicurrency_total_ttc, f.type, ';
         $sql.= ' f.datef as df, f.fk_soc as socid';
         $sql.= ' FROM '.MAIN_DB_PREFIX.'facture as f';
 		
@@ -572,12 +575,13 @@ if ($action == 'create' || $action == 'confirm_paiement' || $action == 'add_paie
                 print '<tr class="liste_titre">';
                 print '<td>'.$arraytitle.'</td>';
                 print '<td align="center">'.$langs->trans('Date').'</td>';
-                print '<td align="right">'.$langs->trans('AmountTTC').'</td>';
+                if (!empty($conf->multicurrency->enabled)) print '<td>'.$langs->trans('Currency').'</td>';
                 if (!empty($conf->multicurrency->enabled)) print '<td align="right">'.$langs->trans('MulticurrencyAmountTTC').'</td>';
-                print '<td align="right">'.$alreadypayedlabel.'</td>';
                 if (!empty($conf->multicurrency->enabled)) print '<td align="right">'.$multicurrencyalreadypayedlabel.'</td>';
-                print '<td align="right">'.$remaindertopay.'</td>';
                 if (!empty($conf->multicurrency->enabled)) print '<td align="right">'.$multicurrencyremaindertopay.'</td>';
+                print '<td align="right">'.$langs->trans('AmountTTC').'</td>';
+                print '<td align="right">'.$alreadypayedlabel.'</td>';
+                print '<td align="right">'.$remaindertopay.'</td>';
                 print '<td align="right">'.$langs->trans('PaymentAmount').'</td>';
                 if (!empty($conf->multicurrency->enabled)) print '<td align="right">'.$langs->trans('MulticurrencyPaymentAmount').'</td>';
                 print '<td align="right">&nbsp;</td>';
@@ -624,12 +628,35 @@ if ($action == 'create' || $action == 'confirm_paiement' || $action == 'add_paie
 
                     // Date
                     print '<td align="center">'.dol_print_date($db->jdate($objp->df),'day')."</td>\n";
-
-                    // Price
-                    print '<td align="right">'.price($sign * $objp->total_ttc).'</td>';
-					
+                    
+                    // currency
+                    print '<td align="center">'.$objp->multicurrency_code."</td>\n";
+                    
 					// Multicurrency Price
-					if (!empty($conf->multicurrency->enabled)) print '<td align="right">'.price($sign * $objp->multicurrency_total_ttc).'</td>';
+					if (!empty($conf->multicurrency->enabled)) 
+					{
+					    print '<td align="right">';
+					    if ($objp->multicurrency_code != $conf->currency) print price($sign * $objp->multicurrency_total_ttc);
+					    print '</td>';
+					
+                    	// Multicurrency Price
+						print '<td align="right">';
+						if ($objp->multicurrency_code != $conf->currency) 
+						{
+						    print price($sign * $multicurrency_payment);
+    		                if ($multicurrency_creditnotes) print '+'.price($multicurrency_creditnotes);
+    		                if ($multicurrency_deposits) print '+'.price($multicurrency_deposits);
+						}
+		                print '</td>';
+					
+    					// Multicurrency Price
+    				    print '<td align="right">';
+    				    if ($objp->multicurrency_code != $conf->currency) print price($sign * $multicurrency_remaintopay);
+    				    print '</td>';
+					}
+					
+					// Price
+                    print '<td align="right">'.price($sign * $objp->total_ttc).'</td>';
 					
                     // Received or paid back
                     print '<td align="right">'.price($sign * $paiement);
@@ -637,25 +664,10 @@ if ($action == 'create' || $action == 'confirm_paiement' || $action == 'add_paie
                     if ($deposits) print '+'.price($deposits);
                     print '</td>';
 
-					// Multicurrency Price
-					if (!empty($conf->multicurrency->enabled)) 
-					{
-						print '<td align="right">'.price($sign * $multicurrency_payment);
-		                if ($multicurrency_creditnotes) print '+'.price($multicurrency_creditnotes);
-		                if ($multicurrency_deposits) print '+'.price($multicurrency_deposits);
-		                print '</td>';
-					}
-					
                     // Remain to take or to pay back
                     print '<td align="right">'.price($sign * $remaintopay).'</td>';
                     //$test= price(price2num($objp->total_ttc - $paiement - $creditnotes - $deposits));
 
-                    // Multicurrency Price
-					if (!empty($conf->multicurrency->enabled)) 
-					{
-						print '<td align="right">'.price($sign * $multicurrency_remaintopay).'</td>';
-					}
-                    
                     // Amount
                     print '<td align="right">';
 
@@ -665,7 +677,7 @@ if ($action == 'create' || $action == 'confirm_paiement' || $action == 'add_paie
 
                     if ($action != 'add_paiement')
                     {
-						if(!empty($conf->global->INVOICE_AUTO_FILLJS))
+                        if (!empty($conf->use_javascript_ajax))
 							print img_picto("Auto fill",'rightarrow', "class='AutoFillAmout' data-rowname='".$namef."' data-value='".($sign * $remaintopay)."'");
                         print '<input type=hidden class="remain" name="'.$nameRemain.'" value="'.$remaintopay.'">';
                         print '<input type="text" size="8" class="amount" name="'.$namef.'" value="'.$_POST[$namef].'">';
@@ -678,7 +690,7 @@ if ($action == 'create' || $action == 'confirm_paiement' || $action == 'add_paie
                     print "</td>";
 
 					// Multicurrency Price
-					if (!empty($conf->multicurrency->enabled)) 
+					if (! empty($conf->multicurrency->enabled)) 
 					{
 						print '<td align="right">';
 						
@@ -688,7 +700,7 @@ if ($action == 'create' || $action == 'confirm_paiement' || $action == 'add_paie
 	
 	                    if ($action != 'add_paiement')
 	                    {
-							if(!empty($conf->global->INVOICE_AUTO_FILLJS))
+	                        if (!empty($conf->use_javascript_ajax))
 								print img_picto("Auto fill",'rightarrow', "class='AutoFillAmout' data-rowname='".$namef."' data-value='".($sign * $multicurrency_remaintopay)."'");
 	                        print '<input type=hidden class="multicurrency_remain" name="'.$nameRemain.'" value="'.$multicurrency_remaintopay.'">';
 	                        print '<input type="text" size="8" class="multicurrency_amount" name="'.$namef.'" value="'.$_POST[$namef].'">';
@@ -727,16 +739,16 @@ if ($action == 'create' || $action == 'confirm_paiement' || $action == 'add_paie
                 {
                     // Print total
                     print '<tr class="liste_total">';
-                    print '<td colspan="2" align="left">'.$langs->trans('TotalTTC').'</td>';
-                    print '<td align="right"><b>'.price($sign * $total_ttc).'</b></td>';
+                    print '<td colspan="3" align="left">'.$langs->trans('TotalTTC').'</td>';
 					if (!empty($conf->multicurrency->enabled)) print '<td></td>';
+					if (!empty($conf->multicurrency->enabled)) print '<td></td>';
+					if (!empty($conf->multicurrency->enabled)) print '<td></td>';
+					print '<td align="right"><b>'.price($sign * $total_ttc).'</b></td>';
                     print '<td align="right"><b>'.price($sign * $totalrecu);
                     if ($totalrecucreditnote) print '+'.price($totalrecucreditnote);
                     if ($totalrecudeposits) print '+'.price($totalrecudeposits);
                     print '</b></td>';
-					if (!empty($conf->multicurrency->enabled)) print '<td></td>';
                     print '<td align="right"><b>'.price($sign * price2num($total_ttc - $totalrecu - $totalrecucreditnote - $totalrecudeposits,'MT')).'</b></td>';
-					if (!empty($conf->multicurrency->enabled)) print '<td></td>';
                     print '<td align="right" id="result" style="font-weight: bold;"></td>';
 					if (!empty($conf->multicurrency->enabled)) print '<td align="right" id="multicurrency_result" style="font-weight: bold;"></td>';
                     print '<td align="center">&nbsp;</td>';

+ 5 - 0
htdocs/core/class/html.form.class.php

@@ -4101,6 +4101,11 @@ class Form
 		$out='';
         $out.= '<select class="flat" name="'.$htmlname.'" id="'.$htmlname.'">';
 		if ($useempty) $out .= '<option value=""></option>';
+		// If company current currency not in table, we add it into list. Should always be available.
+		if (! in_array($conf->currency, $TCurrency))
+		{
+		    $TCurrency[$conf->currency] = $conf->currency;
+		}
 		if (count($TCurrency) > 0)
 		{
 			foreach ($langs->cache_currencies as $code_iso => $currency)

+ 3 - 3
htdocs/fourn/facture/paiement.php

@@ -404,7 +404,7 @@ if ($action == 'create' || $action == 'confirm_paiement' || $action == 'add_paie
 	                    $i = 0;
 	                    print '<br>';
 
-						if(!empty($conf->global->INVOICE_AUTO_FILLJS)){
+	                    if (!empty($conf->use_javascript_ajax)){
 							//Add js for AutoFill
 							print "\n".'<script type="text/javascript" language="javascript">';
 							print ' $(document).ready(function () {';
@@ -470,7 +470,7 @@ if ($action == 'create' || $action == 'confirm_paiement' || $action == 'add_paie
 							
 	                        print '<td align="center">';
 	                        $namef = 'amount_'.$objp->facid;
-							if(!empty($conf->global->INVOICE_AUTO_FILLJS))
+	                        if (!empty($conf->use_javascript_ajax))
 								print img_picto("Auto fill",'rightarrow', "class='AutoFillAmout' data-rowname='".$namef."' data-value='".($objp->total_ttc - $objp->am)."'");
 	                        print '<input type="text" size="8" name="'.$namef.'" value="'.GETPOST($namef).'">';
 							print "</td>";
@@ -480,7 +480,7 @@ if ($action == 'create' || $action == 'confirm_paiement' || $action == 'add_paie
 							{
 								print '<td align="center">';
 			                    $namef = 'multicurrency_amount_'.$objp->facid;
-								if(!empty($conf->global->INVOICE_AUTO_FILLJS))
+			                    if (!empty($conf->use_javascript_ajax))
 									print img_picto("Auto fill",'rightarrow', "class='AutoFillAmout' data-rowname='".$namef."' data-value='".($objp->multicurrency_total_ttc - $objp->multicurrency_am)."'");
 		                        print '<input type="text" size="8" class="multicurrency_amount" name="'.$namef.'" value="'.GETPOST($namef).'">';
 			                    print "</td>";

+ 4 - 1
htdocs/langs/en_US/multicurrency.lang

@@ -12,4 +12,7 @@ multicurrency_appCurrencySource=Currency source
 multicurrency_alternateCurrencySource= Alternate currency souce
 CurrenciesUsed=Currencies used
 CurrenciesUsed_help_to_add=Add the differents currencies and rates you need to use on you <b>proposals</b>, <b>orders</b>, etc.
-rate=rate
+rate=rate
+MulticurrencyReceived=Received, original currency
+MulticurrencyRemainderToTake=Remaining amout, original currency
+MulticurrencyPaymentAmount=Payment amount, original currency