limits.php 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212
  1. <?php
  2. /* Copyright (C) 2007-2010 Laurent Destailleur <eldy@users.sourceforge.net>
  3. * Copyright (C) 2009 Regis Houssin <regis@dolibarr.fr>
  4. * Copyright (C) 2010 Juanjo Menent <jmenent@2byte.es>
  5. *
  6. * This program is free software; you can redistribute it and/or modify
  7. * it under the terms of the GNU General Public License as published by
  8. * the Free Software Foundation; either version 2 of the License, or
  9. * (at your option) any later version.
  10. *
  11. * This program is distributed in the hope that it will be useful,
  12. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14. * GNU General Public License for more details.
  15. *
  16. * You should have received a copy of the GNU General Public License
  17. * along with this program. If not, see <http://www.gnu.org/licenses/>.
  18. */
  19. /**
  20. * \file htdocs/admin/limits.php
  21. * \brief Page de configuration des limites
  22. */
  23. require("../main.inc.php");
  24. require_once(DOL_DOCUMENT_ROOT."/lib/admin.lib.php");
  25. require_once(DOL_DOCUMENT_ROOT."/lib/price.lib.php");
  26. $langs->load("companies");
  27. $langs->load("products");
  28. $langs->load("admin");
  29. if (!$user->admin)
  30. accessforbidden();
  31. if (isset($_POST["action"]) && $_POST["action"] == 'update')
  32. {
  33. $error=0;
  34. $MAXDEC=8;
  35. if ($_POST["MAIN_MAX_DECIMALS_UNIT"] > $MAXDEC
  36. || $_POST["MAIN_MAX_DECIMALS_TOT"] > $MAXDEC
  37. || $_POST["MAIN_MAX_DECIMALS_SHOWN"] > $MAXDEC)
  38. {
  39. $error++;
  40. $mesg='<div class="error">'.$langs->trans("ErrorDecimalLargerThanAreForbidden",$MAXDEC).'</div>';
  41. }
  42. if ($_POST["MAIN_MAX_DECIMALS_UNIT"] < 0
  43. || $_POST["MAIN_MAX_DECIMALS_TOT"] < 0
  44. || $_POST["MAIN_MAX_DECIMALS_SHOWN"] < 0)
  45. {
  46. $langs->load("errors");
  47. $error++;
  48. $mesg='<div class="error">'.$langs->trans("ErrorNegativeValueNotAllowed").'</div>';
  49. }
  50. if ($_POST["MAIN_ROUNDING_RULE_TOT"])
  51. {
  52. if ($_POST["MAIN_ROUNDING_RULE_TOT"] * pow(10,$_POST["MAIN_MAX_DECIMALS_TOT"]) < 1)
  53. {
  54. $langs->load("errors");
  55. $error++;
  56. $mesg='<div class="error">'.$langs->trans("ErrorMAIN_ROUNDING_RULE_TOTCanMAIN_MAX_DECIMALS_TOT").'</div>';
  57. }
  58. }
  59. if (! $error)
  60. {
  61. dolibarr_set_const($db, "MAIN_MAX_DECIMALS_UNIT", $_POST["MAIN_MAX_DECIMALS_UNIT"],'chaine',0,'',$conf->entity);
  62. dolibarr_set_const($db, "MAIN_MAX_DECIMALS_TOT", $_POST["MAIN_MAX_DECIMALS_TOT"],'chaine',0,'',$conf->entity);
  63. dolibarr_set_const($db, "MAIN_MAX_DECIMALS_SHOWN", $_POST["MAIN_MAX_DECIMALS_SHOWN"],'chaine',0,'',$conf->entity);
  64. dolibarr_set_const($db, "MAIN_ROUNDING_RULE_TOT", $_POST["MAIN_ROUNDING_RULE_TOT"],'chaine',0,'',$conf->entity);
  65. Header("Location: ".$_SERVER["PHP_SELF"]."?mainmenu=home&leftmenu=setup");
  66. exit;
  67. }
  68. }
  69. /*
  70. * View
  71. */
  72. $html=new Form($db);
  73. llxHeader();
  74. print_fiche_titre($langs->trans("LimitsSetup"),'','setup');
  75. print $langs->trans("LimitsDesc")."<br>\n";
  76. print "<br>\n";
  77. if ($mesg) print $mesg.'<br>';
  78. if (isset($_GET["action"]) && $_GET["action"] == 'edit')
  79. {
  80. print '<form method="post" action="'.$_SERVER["PHP_SELF"].'">';
  81. print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
  82. print '<input type="hidden" name="action" value="update">';
  83. clearstatcache();
  84. $var=true;
  85. print '<table class="noborder" width="100%">';
  86. print '<tr class="liste_titre"><td>'.$langs->trans("Parameter").'</td><td>'.$langs->trans("Value").'</td></tr>';
  87. $var=!$var;
  88. print '<tr '.$bc[$var].'><td>';
  89. print $html->textwithpicto($langs->trans("MAIN_MAX_DECIMALS_UNIT"),$langs->trans("ParameterActiveForNextInputOnly"));
  90. print '</td><td><input class="flat" name="MAIN_MAX_DECIMALS_UNIT" size="3" value="' . $conf->global->MAIN_MAX_DECIMALS_UNIT . '"></td></tr>';
  91. $var=!$var;
  92. print '<tr '.$bc[$var].'><td>';
  93. print $html->textwithpicto($langs->trans("MAIN_MAX_DECIMALS_TOT"),$langs->trans("ParameterActiveForNextInputOnly"));
  94. print '</td><td><input class="flat" name="MAIN_MAX_DECIMALS_TOT" size="3" value="' . $conf->global->MAIN_MAX_DECIMALS_TOT . '"></td></tr>';
  95. $var=!$var;
  96. print '<tr '.$bc[$var].'><td>'.$langs->trans("MAIN_MAX_DECIMALS_SHOWN").'</td><td><input class="flat" name="MAIN_MAX_DECIMALS_SHOWN" size="3" value="' . $conf->global->MAIN_MAX_DECIMALS_SHOWN . '"></td></tr>';
  97. $var=!$var;
  98. print '<tr '.$bc[$var].'><td>';
  99. print $html->textwithpicto($langs->trans("MAIN_ROUNDING_RULE_TOT"),$langs->trans("ParameterActiveForNextInputOnly"));
  100. print '</td><td><input class="flat" name="MAIN_ROUNDING_RULE_TOT" size="3" value="' . $conf->global->MAIN_ROUNDING_RULE_TOT . '"></td></tr>';
  101. print '</table>';
  102. print '<br><center>';
  103. print '<input class="button" type="submit" value="'.$langs->trans("Save").'">';
  104. print '</center>';
  105. print '</form>';
  106. print '<br>';
  107. }
  108. else
  109. {
  110. $var=true;
  111. print '<table class="noborder" width="100%">';
  112. print '<tr class="liste_titre"><td>'.$langs->trans("Parameter").'</td><td>'.$langs->trans("Value").'</td></tr>';
  113. $var=!$var;
  114. print '<tr '.$bc[$var].'><td>';
  115. print $html->textwithpicto($langs->trans("MAIN_MAX_DECIMALS_UNIT"),$langs->trans("ParameterActiveForNextInputOnly"));
  116. print '</td><td align="right">'.$conf->global->MAIN_MAX_DECIMALS_UNIT.'</td></tr>';
  117. $var=!$var;
  118. print '<tr '.$bc[$var].'><td>';
  119. print $html->textwithpicto($langs->trans("MAIN_MAX_DECIMALS_TOT"),$langs->trans("ParameterActiveForNextInputOnly"));
  120. print '</td><td align="right">'.$conf->global->MAIN_MAX_DECIMALS_TOT.'</td></tr>';
  121. $var=!$var;
  122. print '<tr '.$bc[$var].'><td>'.$langs->trans("MAIN_MAX_DECIMALS_SHOWN").'</td><td align="right">'.$conf->global->MAIN_MAX_DECIMALS_SHOWN.'</td></tr>';
  123. $var=!$var;
  124. print '<tr '.$bc[$var].'><td>';
  125. print $html->textwithpicto($langs->trans("MAIN_ROUNDING_RULE_TOT"),$langs->trans("ParameterActiveForNextInputOnly"));
  126. print '</td><td align="right">'.$conf->global->MAIN_ROUNDING_RULE_TOT.'</td></tr>';
  127. print '</table>';
  128. print '<div class="tabsAction">';
  129. print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?action=edit">'.$langs->trans("Modify").'</a>';
  130. print '</div>';
  131. }
  132. // Show examples
  133. print '<b>'.$langs->trans("ExamplesWithCurrentSetup").":</b><br>\n";
  134. $s=2/7;$qty=1;$vat=0;
  135. $tmparray=calcul_price_total(1,$qty*price2num($s,'MU'),0,$vat,0,0,0,'HT',0);
  136. print $langs->trans("UnitPriceOfProduct").": ".price2num($s,'MU');
  137. print " x ".$langs->trans("Quantity").": ".$qty;
  138. print " - ".$langs->trans("VAT").": ".$vat.'%';
  139. print " &nbsp; -> &nbsp; ".$langs->trans("TotalPriceAfterRounding").": ".$tmparray[0].' / '.$tmparray[1].' / '.$tmparray[2]."<br>\n";
  140. $s=10/3;$qty=1;$vat=0;
  141. $tmparray=calcul_price_total(1,$qty*price2num($s,'MU'),0,$vat,0,0,0,'HT',0);
  142. print $langs->trans("UnitPriceOfProduct").": ".price2num($s,'MU');
  143. print " x ".$langs->trans("Quantity").": ".$qty;
  144. print " - ".$langs->trans("VAT").": ".$vat.'%';
  145. print " &nbsp; -> &nbsp; ".$langs->trans("TotalPriceAfterRounding").": ".$tmparray[0].' / '.$tmparray[1].' / '.$tmparray[2]."<br>\n";
  146. $s=10/3;$qty=2;$vat=0;
  147. $tmparray=calcul_price_total(1,$qty*price2num($s,'MU'),0,$vat,0,0,0,'HT',0);
  148. print $langs->trans("UnitPriceOfProduct").": ".price2num($s,'MU');
  149. print " x ".$langs->trans("Quantity").": ".$qty;
  150. print " - ".$langs->trans("VAT").": ".$vat.'%';
  151. print " &nbsp; -> &nbsp; ".$langs->trans("TotalPriceAfterRounding").": ".$tmparray[0].' / '.$tmparray[1].' / '.$tmparray[2]."<br>\n";
  152. $s=10/3;$qty=1;$vat=10;
  153. $tmparray=calcul_price_total(1,$qty*price2num($s,'MU'),0,$vat,0,0,0,'HT',0);
  154. print $langs->trans("UnitPriceOfProduct").": ".price2num($s,'MU');
  155. print " x ".$langs->trans("Quantity").": ".$qty;
  156. print " - ".$langs->trans("VAT").": ".$vat.'%';
  157. print " &nbsp; -> &nbsp; ".$langs->trans("TotalPriceAfterRounding").": ".$tmparray[0].' / '.$tmparray[1].' / '.$tmparray[2]."<br>\n";
  158. $s=10/3;$qty=2;$vat=10;
  159. $tmparray=calcul_price_total(1,$qty*price2num($s,'MU'),0,$vat,0,0,0,'HT',0);
  160. print $langs->trans("UnitPriceOfProduct").": ".price2num($s,'MU');
  161. print " x ".$langs->trans("Quantity").": ".$qty;
  162. print " - ".$langs->trans("VAT").": ".$vat.'%';
  163. print " &nbsp; -> &nbsp; ".$langs->trans("TotalPriceAfterRounding").": ".$tmparray[0].' / '.$tmparray[1].' / '.$tmparray[2]."<br>\n";
  164. $db->close();
  165. llxFooter();
  166. ?>