From fb28586f3259708251f77250a1c05e447bbb8231 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Tue, 27 Oct 2015 19:18:22 +0100
Subject: [PATCH] Better visible of what is possible for stock management

---
 htdocs/admin/stock.php         | 126 +++++++++++++++++++++------------
 htdocs/langs/en_US/admin.lang  |   2 +-
 htdocs/langs/en_US/stocks.lang |   4 +-
 3 files changed, 83 insertions(+), 49 deletions(-)

diff --git a/htdocs/admin/stock.php b/htdocs/admin/stock.php
index 2ed2f4f869e..b446f5355ad 100644
--- a/htdocs/admin/stock.php
+++ b/htdocs/admin/stock.php
@@ -141,58 +141,75 @@ $var=true;
 
 $found=0;
 
+$var=!$var;
+print "<tr ".$bc[$var].">";
+print '<td width="60%">'.$langs->trans("DeStockOnBill").'</td>';
+print '<td width="160" align="right">';
 if (! empty($conf->facture->enabled))
 {
-	$var=!$var;
-	print "<tr ".$bc[$var].">";
-	print '<td width="60%">'.$langs->trans("DeStockOnBill").'</td>';
-	print '<td width="160" align="right">';
-	print "<form method=\"post\" action=\"stock.php\">";
+    print "<form method=\"post\" action=\"stock.php\">";
 	print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
 	print "<input type=\"hidden\" name=\"action\" value=\"STOCK_CALCULATE_ON_BILL\">";
 	print $form->selectyesno("STOCK_CALCULATE_ON_BILL",$conf->global->STOCK_CALCULATE_ON_BILL,1,$disabled);
 	print '<input type="submit" class="button" value="'.$langs->trans("Modify").'"'.$disabled.'>';
-	print "</form>\n</td>\n</tr>\n";
-	$found++;
+	print "</form>\n";
 }
+else
+{
+    print $langs->trans("ModuleMustBeEnabledFirst", $langs->transnoentitiesnoconv("Module30Name")); 
+}
+print "</td>\n</tr>\n";
+$found++;
 
+$var=!$var;
+print "<tr ".$bc[$var].">";
+print '<td width="60%">'.$langs->trans("DeStockOnValidateOrder").'</td>';
+print '<td width="160" align="right">';
 if (! empty($conf->commande->enabled))
 {
-	$var=!$var;
-	print "<tr ".$bc[$var].">";
-	print '<td width="60%">'.$langs->trans("DeStockOnValidateOrder").'</td>';
-	print '<td width="160" align="right">';
-	print "<form method=\"post\" action=\"stock.php\">";
+    print "<form method=\"post\" action=\"stock.php\">";
 	print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
 	print "<input type=\"hidden\" name=\"action\" value=\"STOCK_CALCULATE_ON_VALIDATE_ORDER\">";
 	print $form->selectyesno("STOCK_CALCULATE_ON_VALIDATE_ORDER",$conf->global->STOCK_CALCULATE_ON_VALIDATE_ORDER,1,$disabled);
 	print '<input type="submit" class="button" value="'.$langs->trans("Modify").'"'.$disabled.'>';
-	print "</form>\n</td>\n</tr>\n";
-	$found++;
+	print "</form>\n";
+}
+else
+{
+    print $langs->trans("ModuleMustBeEnabledFirst", $langs->transnoentitiesnoconv("Module25Name")); 
 }
+print "</td>\n</tr>\n";
+$found++;
 
+//if (! empty($conf->expedition->enabled))
+//{
+$var=!$var;
+print "<tr ".$bc[$var].">";
+print '<td width="60%">'.$langs->trans("DeStockOnShipment").'</td>';
+print '<td width="160" align="right">';
 if (! empty($conf->expedition->enabled))
 {
-	$var=!$var;
-	print "<tr ".$bc[$var].">";
-	print '<td width="60%">'.$langs->trans("DeStockOnShipment").'</td>';
-	print '<td width="160" align="right">';
 	print "<form method=\"post\" action=\"stock.php\">";
 	print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
 	print "<input type=\"hidden\" name=\"action\" value=\"STOCK_CALCULATE_ON_SHIPMENT\">";
 	print $form->selectyesno("STOCK_CALCULATE_ON_SHIPMENT",$conf->global->STOCK_CALCULATE_ON_SHIPMENT,1,$disabled);
 	print '<input type="submit" class="button" value="'.$langs->trans("Modify").'"'.$disabled.'>';
-	print "</form>\n</td>\n</tr>\n";
-	$found++;
+	print "</form>\n";
 }
+else
+{
+    print $langs->trans("ModuleMustBeEnabledFirst", $langs->transnoentitiesnoconv("Module80Name")); 
+}
+print "</td>\n</tr>\n";
+$found++;
 
-if (! $found)
+/*if (! $found)
 {
 	$var=!$var;
 	print "<tr ".$bc[$var].">";
-	print '<td colspan="2">'.$langs->trans("NoModueToManageStockDecrease").'</td>';
+	print '<td colspan="2">'.$langs->trans("NoModuleToManageStockDecrease").'</td>';
 	print "</tr>\n";
-}
+}*/
 
 print '</table>';
 
@@ -208,57 +225,74 @@ $var=true;
 
 $found=0;
 
+$var=!$var;
+print "<tr ".$bc[$var].">";
+print '<td width="60%">'.$langs->trans("ReStockOnBill").'</td>';
+print '<td width="160" align="right">';
 if (! empty($conf->fournisseur->enabled))
 {
-	$var=!$var;
-	print "<tr ".$bc[$var].">";
-	print '<td width="60%">'.$langs->trans("ReStockOnBill").'</td>';
-	print '<td width="160" align="right">';
-	print "<form method=\"post\" action=\"stock.php\">";
+    print "<form method=\"post\" action=\"stock.php\">";
 	print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
 	print "<input type=\"hidden\" name=\"action\" value=\"STOCK_CALCULATE_ON_SUPPLIER_BILL\">";
 	print $form->selectyesno("STOCK_CALCULATE_ON_SUPPLIER_BILL",$conf->global->STOCK_CALCULATE_ON_SUPPLIER_BILL,1,$disabled);
 	print '<input type="submit" class="button" value="'.$langs->trans("Modify").'"'.$disabled.'>';
-	print "</form>\n</td>\n</tr>\n";
-	$found++;
+	print "</form>\n";
+}
+else
+{
+    print $langs->trans("ModuleMustBeEnabledFirst", $langs->transnoentitiesnoconv("Module40Name")); 
 }
+print "</td>\n</tr>\n";
+$found++;
 
+
+$var=!$var;
+print "<tr ".$bc[$var].">";
+print '<td width="60%">'.$langs->trans("ReStockOnValidateOrder").'</td>';
+print '<td width="160" align="right">';
 if (! empty($conf->fournisseur->enabled))
 {
-	$var=!$var;
-	print "<tr ".$bc[$var].">";
-	print '<td width="60%">'.$langs->trans("ReStockOnValidateOrder").'</td>';
-	print '<td width="160" align="right">';
-	print "<form method=\"post\" action=\"stock.php\">";
+    print "<form method=\"post\" action=\"stock.php\">";
 	print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
 	print "<input type=\"hidden\" name=\"action\" value=\"STOCK_CALCULATE_ON_SUPPLIER_VALIDATE_ORDER\">";
 	print $form->selectyesno("STOCK_CALCULATE_ON_SUPPLIER_VALIDATE_ORDER",$conf->global->STOCK_CALCULATE_ON_SUPPLIER_VALIDATE_ORDER,1,$disabled);
 	print '<input type="submit" class="button" value="'.$langs->trans("Modify").'"'.$disabled.'>';
-	print "</form>\n</td>\n</tr>\n";
-	$found++;
+	print "</form>\n";
+}
+else
+{
+    print $langs->trans("ModuleMustBeEnabledFirst", $langs->transnoentitiesnoconv("Module40Name")); 
 }
+print "</td>\n</tr>\n";
+$found++;
+
+$var=!$var;
+print "<tr ".$bc[$var].">";
+print '<td width="60%">'.$langs->trans("ReStockOnDispatchOrder").'</td>';
+print '<td width="160" align="right">';
 if (! empty($conf->fournisseur->enabled))
 {
-	$var=!$var;
-	print "<tr ".$bc[$var].">";
-	print '<td width="60%">'.$langs->trans("ReStockOnDispatchOrder").'</td>';
-	print '<td width="160" align="right">';
-	print "<form method=\"post\" action=\"stock.php\">";
+    print "<form method=\"post\" action=\"stock.php\">";
 	print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
 	print "<input type=\"hidden\" name=\"action\" value=\"STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER\">";
 	print $form->selectyesno("STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER",$conf->global->STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER,1,$disabled);
 	print '<input type="submit" class="button" value="'.$langs->trans("Modify").'"'.$disabled.'>';
-	print "</form>\n</td>\n</tr>\n";
-	$found++;
+	print "</form>\n";
 }
+else
+{
+    print $langs->trans("ModuleMustBeEnabledFirst", $langs->transnoentitiesnoconv("Module40Name")); 
+}
+print "</td>\n</tr>\n";
+$found++;
 
-if (! $found)
+/*if (! $found)
 {
 	$var=!$var;
 	print "<tr ".$bc[$var].">";
 	print '<td colspan="2">'.$langs->trans("NoModueToManageStockIncrease").'</td>';
 	print "</tr>\n";
-}
+}*/
 
 print '</table>';
 
diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang
index f6399bffa6b..f53df55b6c5 100755
--- a/htdocs/langs/en_US/admin.lang
+++ b/htdocs/langs/en_US/admin.lang
@@ -356,7 +356,7 @@ ThemeDir=Skins directory
 ConnectionTimeout=Connexion timeout
 ResponseTimeout=Response timeout
 SmsTestMessage=Test message from __PHONEFROM__ to __PHONETO__
-ModuleMustBeEnabledFirst=Module <b>%s</b> must be enabled first before using this feature.
+ModuleMustBeEnabledFirst=Module <b>%s</b> must be enabled first if you need this feature.
 SecurityToken=Key to secure URLs
 NoSmsEngine=No SMS sender manager available. SMS sender manager are not installed with default distribution (because they depends on an external supplier) but you can find some on %s
 PDF=PDF
diff --git a/htdocs/langs/en_US/stocks.lang b/htdocs/langs/en_US/stocks.lang
index 8a46433ff9c..2ac77f8a489 100644
--- a/htdocs/langs/en_US/stocks.lang
+++ b/htdocs/langs/en_US/stocks.lang
@@ -53,8 +53,8 @@ QtyDispatched=Quantity dispatched
 QtyDispatchedShort=Qty dispatched
 QtyToDispatchShort=Qty to dispatch
 OrderDispatch=Stock dispatching
-RuleForStockManagementDecrease=Rule for stock management decrease
-RuleForStockManagementIncrease=Rule for stock management increase
+RuleForStockManagementDecrease=Rule for automatic stock management decrease (manual decrease is always possible, even if an automatic decrease rule is activated)
+RuleForStockManagementIncrease=Rule for automatic stock management increase (manual increase is always possible, even if an automatic increase rule is activated)
 DeStockOnBill=Decrease real stocks on customers invoices/credit notes validation
 DeStockOnValidateOrder=Decrease real stocks on customers orders validation
 DeStockOnShipment=Decrease real stocks on shipping validation
-- 
GitLab