parse_amount ersetzt durch kivi.parse_amount, " statt ' bei Zahlenformat
[kivitendo-erp.git] / templates / webpages / generic / calculate_qty.html
1 [%- USE T8 %]
2 [%- USE HTML %]
3  <form name="CalcQtyForm" id="calc_qty_form_id">
4
5   <input type="hidden" name="input_name" value="[% HTML.escape(input_name) %]">
6   <input type="hidden" name="input_id"   value="[% HTML.escape(input_id) %]">
7
8   <table width="100%">
9    <tr><td>[% 'Please insert object dimensions below.' | $T8 %]</td></tr>
10
11    <tr>
12     <td>
13
14      <table>
15       <tr class="listheading">
16        [% FOREACH col = HEADER %]
17         <th nowrap class="listheading">[% col.column_title %]</a></th>
18        [% END %]
19       </tr>
20
21       [% FOREACH row = VARIABLES %]
22        <tr class="listrow[% loop.count % 2 %]">
23         <td>[% HTML.escape(row.description) %]:</td><td><input id="[% row.name %]" name="[% row.name %]" value=""></td>
24         <td>[% HTML.escape(row.unit) %]</td>
25        </tr>
26       [% END %]
27      </table>
28
29     </td>
30    </tr>
31   </table>
32  <button type="button" onclick="calculate_qty()">[% 'Calculate' | $T8 %]</button>
33  </form>
34
35  <script type="text/javascript">
36    function calculate_qty() {
37 [%- FOREACH row = VARIABLES %]
38      var [% row.name %] = kivi.parse_amount($('#calc_qty_form_id #[% row.name %]').val());
39 [%- END %]
40      var result = [% formel %];
41      result = number_format(result, 2, "[% MYCONFIG.numberformat %]");
42      if (document.CalcQtyForm.input_id.value) {
43        document.getElementById(document.CalcQtyForm.input_id.value).value = result;
44      } else {
45        document.getElementsByName(document.CalcQtyForm.input_name.value)[0].value = result;
46      }
47      $('#calc_qty_dialog').dialog('close');
48    }
49
50    function number_format(number, precision, numberformat) {
51      number = Math.round( number * Math.pow(10, precision) ) / Math.pow(10, precision);
52      var nf     = numberformat.replace(/\d/g, '').split('').reverse();
53      var sep    = nf[0];
54      var th_sep = nf[1];
55
56      str_number = number+"";
57      arr_int = str_number.split(".");
58      if(!arr_int[0]) arr_int[0] = "0";
59      if(!arr_int[1]) arr_int[1] = "";
60      if(arr_int[1].length < precision) {
61        nachkomma = arr_int[1];
62        for(i=arr_int[1].length+1; i <= precision; i++) {
63          nachkomma += "0";
64        }
65        arr_int[1] = nachkomma;
66      }
67      if(th_sep != "" && arr_int[0].length > 3) {
68        raw_arr_int = arr_int[0];
69        arr_int[0] = "";
70        for(j = 3; j < raw_arr_int.length ; j+=3) {
71          arr_int[0] = th_sep + raw_arr_int.slice(raw_arr_int.length - j, raw_arr_int.length - j + 3) +  arr_int[0] + "";
72        }
73        str_first = raw_arr_int.substr(0, (raw_arr_int.length % 3 == 0) ? 3 : (raw_arr_int.length % 3));
74        arr_int[0] = str_first + arr_int[0];
75      }
76      return arr_int[0] + sep + arr_int[1];
77    }
78  </script>