Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision c4e0f7df

Von Hans Peter Schlaepfer vor etwa 5 Jahren hinzugefügt

  • ID c4e0f7dfb6c5297e0207144a2ad219d97ccd7841
  • Vorgänger e9c895f9
  • Nachfolger ef6fb04b

Neues kivitendo Design Aenderungen in templates/webpages/part/..

Unterschiede anzeigen:

templates/webpages/part/_assembly.html
1
[%- USE T8 %]
2
[%- USE HTML %]
3
[%- USE LxERP %]
4
[%- USE L %]
5
[%- USE P %]
1
[% USE T8 %]
2
[% USE HTML %]
3
[% USE LxERP %]
4
[% USE L %]
5
[% USE P %]
6 6

  
7
<div id="assembly" name="assembly">
8

  
9
<h2>[% 'Assembly items' | $T8 %]</h2>
7
<div id="assembly">
10 8

  
11 9
[% L.hidden_tag('assembly_id', SELF.part.id) %]
12 10

  
13
<table id="assembly_items">
14
 <thead>
15
   <tr class="listheading">
16
     <th class="listheading" style='display:none'></th>
17
     [% IF SELF.orphaned || AUTH.assert('assembly_edit', 1) %]
18
     <th class="listheading" style='text-align:center' nowrap width="1"><img src="image/close.png" alt="[%- LxERP.t8('delete item') %]"></th>
19
     [% END %]
20
     <th class="listheading" nowrap width="3" >[%- 'position'     | $T8 %] </th>
21
     [% IF SELF.orphaned || AUTH.assert('assembly_edit', 1) %]
22
     <th class="listheading" style='text-align:center' nowrap width="1"><img src="image/updown.png" alt="[%- LxERP.t8('reorder item') %]"></th>
23
     [% END %]
24
     <th id="partnumber_header_id"  class="listheading" nowrap width="5"><a href='#' onClick='javascript:kivi.Part.reorder_items("partnumber")' >[%- 'Partnumber'  | $T8 %]</a></th>
25
     <th class="listheading" nowrap width="5">[% 'Type' | $T8 %]</th>
26
     <th id="partdescription_header_id"  class="listheading" nowrap width="15"><a href='#' onClick='javascript:kivi.Part.reorder_items("description")' >[%- 'Description' | $T8 %]</a></th>
27
     <th id="qty_header_id"         class="listheading" nowrap width="15" ><a href='#' onClick='javascript:kivi.Part.reorder_items("qty")'        >[%- 'Qty'         | $T8 %]</a></th>
28
     <th class="listheading" nowrap width="5" >[%- 'Unit'         | $T8 %] </th>
29
     <th class="listheading" nowrap width="5" >[%- 'BOM'          | $T8 %] </th>
30
     <th class="listheading" nowrap width="5" >[%- 'Line Total'   | $T8 %] </th>
31
     <th id="sellprice_header_id"   class="listheading" nowrap width="10" ><a href='#' onClick='javascript:kivi.Part.reorder_items("sellprice")' >[%- 'Sellprice'       | $T8 %]</a></th>
32
     <th id="lastcost_header_id"   class="listheading" nowrap width="10" ><a href='#' onClick='javascript:kivi.Part.reorder_items("lastcost")'   >[%- 'Lastcost'       | $T8 %]</a></th>
33
     <th id="_header_id"   class="listheading" nowrap width="15" ><a href='#' onClick='javascript:kivi.Part.reorder_items("partsgroup")'         >[%- 'Partsgroup'       | $T8 %]</a></th>
34
   </tr>
35
 </thead>
36
<tbody id="assembly_rows">
37
  [% assembly_html %]
38
</tbody>
39
<tbody id="assembly_input">
40
<tr>
41
 [% IF SELF.orphaned || AUTH.assert('assembly_edit', 1) %]
42
 <td></td>
43
 <td></td>
44
 <td align="right">[% 'Part' | $T8 %]:</td>
45
 <td>[% P.part.picker('add_items[+].parts_id', '', style='width: 300px', multiple=1, id='assembly_picker', action={set_multi_items='kivi.Part.set_multi_assembly_items', commit_one='kivi.Part.add_assembly_item'}) %]</td>
46
 <td>[%- L.button_tag("kivi.Part.add_assembly_item()", LxERP.t8("Add")) %]</td>
47
 <td>[% L.button_tag('$("#assembly_picker").data("part_picker").open_dialog()', LxERP.t8('Add multiple items')) %]</td>
48
 <td>[% L.hidden_tag('add_items[].qty_as_number', 1) %]</td>
49
 [% ELSE %]
50
 <td></td>
51
 <td></td>
52
 <td></td>
53
 <td></td>
54
 <td></td>
55
 <td></td>
56
 [% END %]
57
 <td align="right">[% 'Totals' | $T8 %]:</td>
58
 <td></td>
59
 <td id="items_sellprice_sum" class="numeric">[%- LxERP.format_amount(items_sellprice_sum, 2, 0) %]</td>
60
 <td id="items_lastcost_sum"  class="numeric">[%- LxERP.format_amount(items_lastcost_sum,  2, 0) %]</td>
61
 <td id="items_sum_diff"      class="numeric">[%- LxERP.format_amount(items_sum_diff,      2, 0) %]</td>
62
</tr>
63
<tr>
64
 [% IF SELF.orphaned || AUTH.assert('assembly_edit', 1) %]
65
 <td></td>
66
 <td></td>
67
 [% END %]
68
 <td></td>
69
 <td></td>
70
 <td></td>
71
 <td></td>
72
 <td></td>
73
 <td></td>
74
 <td></td>
75
 <td align="right">[% L.button_tag("kivi.Part.set_assembly_sellprice()", LxERP.t8("Set sellprice")) %]</td>
76
 <td></td>
77
</tr>
78
</tbody>
79
</table>
80 11

  
81
[% L.sortable_element('#assembly_rows') %]
82

  
83
<div>
84
<p>
85
</p>
12
<div class="wrapper">
13
<table id="assembly_items" class="tbl-list">
14
  <caption>[% 'Assembly items' | $T8 %]</caption>
15
  <thead>
16
    <tr>
17
      <th style="display:none"></th>
18
      [% IF SELF.orphaned || AUTH.assert('assembly_edit', 1) %]
19
        <th class="img"><img src="image/close.png" alt="[% LxERP.t8('delete item') %]"></th>
20
      [% END %]
21
      <th>[% 'position' | $T8 %]</th>
22
      [% IF SELF.orphaned || AUTH.assert('assembly_edit', 1) %]
23
        <th style="img"><img src="image/updown.png" alt="[% LxERP.t8('reorder item') %]"></th>
24
      [% END %]
25
      <th id="partnumber_header_id"><a href="#" onclick="kivi.Part.reorder_items('partnumber')">[% 'Partnumber' | $T8 %]</a></th>
26
      <th>[% 'Type' | $T8 %]</th>
27
      <th id="partdescription_header_id"><a href="#" onclick="kivi.Part.reorder_items('description')">[% 'Description' | $T8 %]</a></th>
28
      <th id="qty_header_id"><a href="#" onclick="kivi.Part.reorder_items('qty')">[% 'Qty' | $T8 %]</a></th>
29
      <th>[% 'Unit' | $T8 %]</th>
30
      <th class="right">[% 'BOM' | $T8 %]</th>
31
      <th class="right">[% 'Line Total' | $T8 %]</th>
32
      <th id="sellprice_header_id"><a href="#" onclick="kivi.Part.reorder_items('sellprice')">[% 'Sellprice'| $T8 %]</a></th>
33
      <th id="lastcost_header_id"><a href="#" onclick="kivi.Part.reorder_items('lastcost')">[% 'Lastcost' | $T8 %]</a></th>
34
      <th id="_header_id"><a href="#" onclick="kivi.Part.reorder_items('partsgroup')">[% 'Partsgroup' | $T8 %]</a></th>
35
    </tr>
36
  </thead>
37
  <tbody id="assembly_rows">
38
    [% assembly_html %]
39
  </tbody>
40
  <tfoot id="assembly_input">
41
    <tr>
42
      [% IF SELF.orphaned || AUTH.assert('assembly_edit', 1) %]
43
        <td></td>
44
        <td></td>
45
        <th>[% 'Part' | $T8 %]</th>
46
        <td colspan="4">
47
          [% P.part.picker(
48
              'add_items[+].parts_id', 
49
              '', 
50
              class='wi-normal', 
51
              multiple='1', 
52
              id='assembly_picker', 
53
              action={set_multi_items='kivi.Part.set_multi_assembly_items', commit_one='kivi.Part.add_assembly_item'}
54
          ) %]
55
          [% L.button_tag("kivi.Part.add_assembly_item()", LxERP.t8("Add")) %]
56
          [% L.hidden_tag('add_items[].qty_as_number', 1) %]
57
        </td>
58
      [% ELSE %]
59
        <td></td>
60
        <td></td>
61
        <td colspan="4"></td>
62
      [% END %]
63
      <td colspan="2" class="right">[% #'Totals' | $T8 %][% #":" %]</td>
64
      <td id="items_sellprice_sum" class="numeric">[% LxERP.format_amount(items_sellprice_sum, 2, 0) %]</td>
65
      <td id="items_lastcost_sum" class="numeric">[% LxERP.format_amount(items_lastcost_sum, 2, 0) %]</td>
66
      <td id="items_sum_diff" class="numeric">[% LxERP.format_amount(items_sum_diff, 2, 0) %]</td>
67
      <td></td>
68
    </tr>
69
    <tr class="blank">
70
      [% IF SELF.orphaned || AUTH.assert('assembly_edit', 1) %]
71
        <td></td>
72
        <td></td>
73
      [% END %]
74
      <td colspan="4">[% L.button_tag('$("#assembly_picker").data("part_picker").open_dialog()', LxERP.t8('Add multiple items'), class="neutral") %]</td>
75
      <td></td>
76
      <!--<td></td> <td></td><td></td> -->
77
      <td colspan="4" class="right">[% L.button_tag("kivi.Part.set_assembly_sellprice()", LxERP.t8("Set sellprice")) %]</td>
78
      <td colspan="2"></td>
79
    </tr>
80
  </tfoot>
81
</table>
86 82
</div>
87 83

  
88

  
89
</div>
84
[% L.sortable_element('#assembly_rows') %]
90 85

  
91 86
<script type="text/javascript">
92 87
  $(function() {
......
100 95
    });
101 96
  })
102 97
</script>
98

  
99
</div>
templates/webpages/part/_assembly_row.html
1
[%- USE T8 %]
2
[%- USE HTML %]
3
[%- USE LxERP %]
4
[%- USE L %]
5
[%- USE P %]
6
  <tr class="listrow[% listrow %] assembly_item_row">
7
    <td style='display:none'>
8
      [% IF orphaned || AUTH.assert('assembly_edit', 1) %]
1
[% USE T8 %]
2
[% USE HTML %]
3
[% USE LxERP %]
4
[% USE L %]
5
[% USE P %]
6

  
7
<tr class="assembly_item_row">
8
  <td style="display:none">
9
    [% IF orphaned || AUTH.assert('assembly_edit', 1) %]
9 10
      [% L.hidden_tag("assembly_items[+].parts_id", ITEM.part.id) %]
10
      [% END %]
11
    </td>
12
    <td align="center" [% UNLESS orphaned || AUTH.assert('assembly_edit', 1) %]style='display:none'[% END %]>
13
      [%- L.button_tag("kivi.Part.delete_item_row(this)",
14
                       LxERP.t8("X")) %] [% # , confirm=LxERP.t8("Are you sure?")) %]
15
    </td>
16
    <td>
17
      <div name="position" class="numeric">
18
        [% HTML.escape(position) or HTML.escape(ITEM.position) %]
19
      </div>
20
    </td>
21
    <td align="center" [% UNLESS orphaned || AUTH.assert('assembly_edit', 1) %]style='display:none'[% END %]>
22
      <img src="image/updown.png" alt="[%- LxERP.t8('reorder item') %]" class="dragdrop">
23
    </td>
24
    <td nowrap>
25
       [% ITEM.part.presenter.part %]
26
    </td>
27
    <td nowrap>
28
       [% P.part.type_abbreviation(ITEM.part.part_type) %][% P.classification_abbreviation(ITEM.part.classification_id) %]
29
    </td>
30
    <td>
31
       [% HTML.escape(ITEM.part.description) %]
32
    </td>
33
    <td>
11
    [% END %]
12
  </td>
13
  <td[% UNLESS orphaned || AUTH.assert('assembly_edit', 1) %] style="display:none"[% END %]>
14
    [% L.button_tag("kivi.Part.delete_item_row(this)", LxERP.t8("X"), class="wi-verytiny") %] [% # , confirm=LxERP.t8("Are you sure?")) %]
15
  </td>
16
  <td class="numeric">
17
    <div id="position" class="numeric">[% HTML.escape(position) or HTML.escape(ITEM.position) %]</div>
18
  </td>
19
  <td class="center"[% UNLESS orphaned || AUTH.assert('assembly_edit', 1) %] style="display:none"[% END %]>
20
    <img src="image/updown.png" alt="[% LxERP.t8('reorder item') %]" class="dragdrop">
21
  </td>
22
  <td>[% ITEM.part.presenter.part %]</td>
23
  <td>[% P.part.type_abbreviation(ITEM.part.part_type) %][% P.classification_abbreviation(ITEM.part.classification_id) %]</td>
24
  <td>[% HTML.escape(ITEM.part.description) %]</td>
25
  <td class="numeric">
34 26
    [% IF orphaned || AUTH.assert('assembly_edit', 1) %]
35
      [%- L.input_tag("assembly_items[].qty_as_number",
27
      [% L.input_tag("assembly_items[].qty_as_number",
36 28
                      ITEM.qty_as_number,
37 29
                      size = 10,
38 30
                      class="recalc reformat_number numeric") %]
39 31
    [% ELSE %]
40
      [% ITEM.qty_as_number | html %]
41
    [% END %]
42
    </td>
43
    <td nowrap>
44
      [% ITEM.part.unit | html %]
45
    </td>
46
    [% IF orphaned || AUTH.assert('assembly_edit', 1) %]
47
    <td>[% L.checkbox_tag("assembly_items[].bom", checked=ITEM.bom, for_submit=1) %]</td>
48
    [% ELSE %]
49
    <td>[% IF ITEM.bom %][% 'Yes' | $T8 %][% ELSE %][% 'No' | $T8 %][% END %]</td>
32
      <span class="data">[% ITEM.qty_as_number | html %]</span>
50 33
    [% END %]
51
    <td align="right">
52
      [%- L.div_tag(LxERP.format_amount(ITEM.linetotal_sellprice, 3, 0), name="linetotal") %]
53
      </td>
54
    <td align="right">
55
      [% ITEM.part.sellprice_as_number %]
56
      </td>
57
    <td align="right">
58
      [% ITEM.part.lastcost_as_number %]
59
      </td>
60
    <td align="right">
61
      [% HTML.escape(ITEM.part.partsgroup.partsgroup) %]
62
      </td>
63
  </tr>
34
  </td>
35
  <td>[% ITEM.part.unit | html %]</td>
36
  [% IF orphaned || AUTH.assert('assembly_edit', 1) %]
37
    <td class="center">[% L.checkbox_tag("assembly_items[].bom", checked=ITEM.bom, for_submit=1) %]</td>
38
  [% ELSE %]
39
    <td class="center">[% IF ITEM.bom %][% 'Yes' | $T8 %][% ELSE %][% 'No' | $T8 %][% END %]</td>
40
  [% END %]
41
  <td class="right">[% L.div_tag(LxERP.format_amount(ITEM.linetotal_sellprice, 3, 0), name="linetotal") %]</td>
42
  <td class="right">[% ITEM.part.sellprice_as_number %]</td>
43
  <td class="right">[% ITEM.part.lastcost_as_number %]</td>
44
  <td>[% HTML.escape(ITEM.part.partsgroup.partsgroup) %]</td>
45
</tr>
templates/webpages/part/_assortment.html
1
[%- USE T8 %]
2
[%- USE HTML %]
3
[%- USE LxERP %]
4
[%- USE L %]
5
[%- USE P %]
1
[% USE T8 %]
2
[% USE HTML %]
3
[% USE LxERP %]
4
[% USE L %]
5
[% USE P %]
6 6

  
7
<div id="assortment" name="assortment">
8

  
9
<h2>[% 'Assortment items' | $T8 %]</h2>
7
<div id="assortment" class="wrapper">
10 8

  
11 9
[% L.hidden_tag('assortment_id', SELF.part.id) %]
12 10

  
13
<table id="assortment_items">
14
 <thead>
15
   <tr class="listheading">
16
     <th class="listheading" style='display:none'></th>
17
     [% IF SELF.orphaned %]
18
     <th class="listheading" style='text-align:center' nowrap width="1"><img src="image/close.png" alt="[%- LxERP.t8('delete item') %]"></th>
19
     [% END %]
20
     <th class="listheading" nowrap width="3" >[%- 'position'     | $T8 %] </th>
11
<table id="assortment_items" class="tbl-list">
12
  <caption>[% 'Assortment items' | $T8 %]</caption>
13
  <thead>
14
    <tr>
15
      <th style="display:none"></th>
16
      [% IF SELF.orphaned %]
17
        <th style="text-align:center"><img src="image/close.png" alt="[% LxERP.t8('delete item') %]"></th>
18
      [% END %]
19
      <th>[% 'Position' | $T8 %] </th>
20
      [% IF SELF.orphaned %]
21
        <th style="text-align:center"><img src="image/updown.png" alt="[% LxERP.t8('reorder item') %]"></th>
22
      [% END %]
23
      <th id="partnumber_header_id" >
24
        <a href='javascript:kivi.Part.reorder_items("partnumber")'>[% 'Partnumber' | $T8 %]</a>
25
      </th>
26
      <th id="partdescription_header_id">
27
        <a href='javascript:kivi.Part.reorder_items("description")'>[% 'Description' | $T8 %]</a>
28
      </th>
29
      <th id="qty_header_id">
30
        <a href='javascript:kivi.Part.reorder_items("qty")'>[% 'Qty' | $T8 %]</a>
31
      </th>
32
      <th>[% 'Unit'         | $T8 %] </th>
33
      <th>[% 'Charge'       | $T8 %] </th>
34
      <th>[% 'Line Total'   | $T8 %] </th>
35
      <th id="sellprice_header_id" class="right">
36
        <a href='javascript:kivi.Part.reorder_items("sellprice")'> [% 'Sellprice' | $T8 %]</a>
37
      </th>
38
      <th id="lastcost_header_id" class="right">
39
        <a href='javascript:kivi.Part.reorder_items("lastcost")'> [% 'Lastcost' | $T8 %]</a>
40
      </th>
41
      <th id="_header_id" class="right">
42
        <a href='javascript:kivi.Part.reorder_items("partsgroup")'> [% 'Partsgroup' | $T8 %]</a>
43
      </th>
44
    </tr>
45
  </thead>
46
  <tbody id="assortment_rows">
47
    [% assortment_html %]
48
  </tbody>
49
  <tfoot id="assortment_input">
50
    <tr>
51
      [% IF SELF.orphaned %]
52
        <td></td>
53
        <td></td>
54
        <td></td>
55
        <td colspan="4">
56
          [% P.part.picker('add_items[+].parts_id', '', class='wi-lightwide', multiple=1, id='assortment_picker', action={set_multi_items='kivi.Part.set_multi_assortment_items'}, placeholder=LxERP.t8('Search & add article')) %]
57
          [% L.button_tag("kivi.Part.add_assortment_item()", LxERP.t8("Add")) %]
58
          [% L.hidden_tag('add_items[].qty_as_number', 1) %]
59
        </td>
60
      [% ELSE %]
61
        <td></td>
62
        <td></td>
63
        <td></td>
64
        <td></td>
65
        <td></td>
66
        <td></td>
67
      [% END %]
68
      <td></td>
69
      <td></td>
70
      <td class="numeric" id="items_sellprice_sum">[% LxERP.format_amount(items_sellprice_sum, 2, 0) %]</td>
71
      <td class="numeric" id="items_lastcost_sum" >[% LxERP.format_amount(items_lastcost_sum,  2, 0) %]</td>
72
      <td class="numeric" id="items_sum_diff"     >[% LxERP.format_amount(items_sum_diff,      2, 0) %]</td>
73
    </tr>
74
    <tr class="blank">
21 75
     [% IF SELF.orphaned %]
22
     <th class="listheading" style='text-align:center' nowrap width="1"><img src="image/updown.png" alt="[%- LxERP.t8('reorder item') %]"></th>
76
       <td></td>
77
       <td></td>
23 78
     [% END %]
24
     <th id="partnumber_header_id"  class="listheading" nowrap width="15"><a href='#' onClick='javascript:kivi.Part.reorder_items("partnumber")'> [%- 'Partnumber'  | $T8 %]</a></th>
25
     <th id="partdescription_header_id"  class="listheading" nowrap width="15"><a href='#' onClick='javascript:kivi.Part.reorder_items("description")' >[%- 'Description' | $T8 %]</a></th>
26
     <th id="qty_header_id"         class="listheading" nowrap width="5" ><a href='#' onClick='javascript:kivi.Part.reorder_items("qty")'>        [%- 'Qty'         | $T8 %]</a></th>
27
     <th class="listheading" nowrap width="5" >[%- 'Unit'         | $T8 %] </th>
28
     <th class="listheading" nowrap width="5" >[%- 'Charge'       | $T8 %] </th>
29
     <th class="listheading" nowrap width="5" >[%- 'Line Total'   | $T8 %] </th>
30
     <th id="sellprice_header_id"   class="listheading" nowrap width="10" ><a href='#' onClick='javascript:kivi.Part.reorder_items("sellprice")'> [%- 'Sellprice'   | $T8 %]</a></th>
31
     <th id="lastcost_header_id"   class="listheading" nowrap width="10" ><a href='#' onClick='javascript:kivi.Part.reorder_items("lastcost")'> [%- 'Lastcost'      | $T8 %]</a></th>
32
     <th id="_header_id"   class="listheading" nowrap width="15" ><a href='#' onClick='javascript:kivi.Part.reorder_items("partsgroup")'> [%- 'Partsgroup'       | $T8 %]</a></th>
33
   </tr>
34
 </thead>
35
<tbody id="assortment_rows">
36
  [% assortment_html %]
37
</tbody>
38
<tbody id="assortment_input">
39
<tr>
40
 [% IF SELF.orphaned %]
41
 <td></td>
42
 <td></td>
43
 <td align="right">[% 'Part' | $T8 %]:</td>
44
 <td>[% P.part.picker('add_items[+].parts_id', '', style='width: 300px', multiple=1, id='assortment_picker', action={set_multi_items='kivi.Part.set_multi_assortment_items'}) %]</td>
45
 <td>[%- L.button_tag("kivi.Part.add_assortment_item()", LxERP.t8("Add")) %]</td>
46
 <td>[% L.button_tag('$("#assortment_picker").data("part_picker").open_dialog()', LxERP.t8('Add multiple items')) %]</td>
47
 <td>[% L.hidden_tag('add_items[].qty_as_number', 1) %]</td>
48
 [% ELSE %]
49
 <td></td>
50
 <td></td>
51
 <td></td>
52
 <td></td>
53
 <td></td>
54
 <td></td>
55
 [% END %]
56
 <td></td>
57
 <td align="right">[% 'Totals' | $T8 %]:</td>
58
 <th id="items_sellprice_sum" class="numeric">[%- LxERP.format_amount(items_sellprice_sum, 2, 0) %]</td>
59
 <th id="items_lastcost_sum"  class="numeric">[%- LxERP.format_amount(items_lastcost_sum,  2, 0) %]</td>
60
 <th id="items_sum_diff"      class="numeric">[%- LxERP.format_amount(items_sum_diff,      2, 0) %]</td>
61
</tr>
62
<tr>
63
 [% IF SELF.orphaned %]
64
 <td></td>
65
 <td></td>
66
 [% END %]
67
 <td></td>
68
 <td></td>
69
 <td></td>
70
 <td></td>
71
 <td></td>
72
 <td></td>
73
 <td></td>
74
 <td align="right">[% L.button_tag("kivi.Part.set_assortment_sellprice()", LxERP.t8("Set sellprice")) %]</td>
75
 <td align="right">[% L.button_tag("kivi.Part.set_assortment_lastcost()",  LxERP.t8("Set lastcost"))  %]</td>
76
 <td></td>
77
</tr>
78
</tbody>
79
</table>
79
     <td></td>
80
     <td colspan="2">[% L.button_tag('$("#assortment_picker").data("part_picker").open_dialog()', LxERP.t8('Add multiple items'), class='neutral') %]</td>
81
     <!-- <td></td> -->
82
     <td></td>
83
     <td></td>
84
     <td></td>
85
     <td></td>
86
     <td class="right">[% L.button_tag("kivi.Part.set_assortment_sellprice()", LxERP.t8("Set sellprice")) %]</td>
87
     <td class="right">[% L.button_tag("kivi.Part.set_assortment_lastcost()",  LxERP.t8("Set lastcost"))  %]</td>
88
     <td></td>
89
    </tr>
90
  </tfoot>
91

  
92
</table><!-- /#assortment.wrapper -->
80 93

  
81 94
[% L.sortable_element('#assortment_rows') %]
82 95

  
......
84 97

  
85 98
<script type="text/javascript">
86 99
  $(function() {
87
    $("#assortment").on( "focusout", ".recalc", function( event )  {
100
    $('#assortment').on( 'focusout', '.recalc', function( event )  {
88 101
      kivi.Part.assortment_recalc();
89 102
    });
90 103

  
91
    $("#assortment").on( "change", ":checkbox", function( event )  {
104
    $('#assortment').on( 'change', ':checkbox', function( event )  {
92 105
      kivi.Part.assortment_recalc();
93 106
    });
94 107

  
templates/webpages/part/_assortment_row.html
1
[%- USE T8 %]
2
[%- USE HTML %]
3
[%- USE LxERP %]
4
[%- USE L %]
5
[%- USE P %]
6
  <tr class="listrow[% listrow %] assortment_item_row">
7
    <td style='display:none'>
8
      [% IF orphaned %]
1
[% USE T8 %]
2
[% USE HTML %]
3
[% USE LxERP %]
4
[% USE L %]
5
[% USE P %]
6

  
7
<tr>
8
  <td style="display:none">
9
    [% IF orphaned %]
9 10
      [% L.hidden_tag("assortment_items[+].parts_id", ITEM.part.id) %]
10
      [% END %]
11
    </td>
12
    <td align="center" [% UNLESS orphaned %]style='display:none'[% END %]>
13
      [%- L.button_tag("kivi.Part.delete_item_row(this)",
14
                       LxERP.t8("X")) %] [% # , confirm=LxERP.t8("Are you sure?")) %]
15
    </td>
16
    <td>
17
      <div name="position" class="numeric">
18
        [% HTML.escape(position) or HTML.escape(ITEM.position) %]
19
      </div>
20
    </td>
21
    <td align="center" [% UNLESS orphaned %]style='display:none'[% END %]>
22
      <img src="image/updown.png" alt="[%- LxERP.t8('reorder item') %]" class="dragdrop">
23
    </td>
24
    <td nowrap>
25
      [% ITEM.part.presenter.part %]
26
    </td>
27
    <td>
28
       [% HTML.escape(ITEM.part.description) %]
29
    </td>
30
    <td nowrap>
11
    [% END %]
12
  </td>
13
  <td class="center"[% UNLESS orphaned %] style="display:none"[% END %]>
14
    [% L.button_tag("kivi.Part.delete_item_row(this)", LxERP.t8("✖"), class="wi-verytiny neutral delete-item") %] [% # , confirm=LxERP.t8("Are you sure?")) %]
15
  </td>
16
  <td class="center">
17
    <div id="position">
18
      [% HTML.escape(position) or HTML.escape(ITEM.position) %]
19
    </div>
20
  </td>
21
  <td class="center"[% UNLESS orphaned %] style="display:none"[% END %]>
22
    <img src="image/updown.png" alt="[% LxERP.t8('reorder item') %]" class="dragdrop">
23
  </td>
24
  <td>
25
    [% ITEM.part.presenter.part %]
26
  </td>
27
  <td>
28
     [% HTML.escape(ITEM.part.description) %]
29
  </td>
30
  <td class="numeric">
31 31
    [% IF orphaned %]
32
      [%- L.input_tag("assortment_items[].qty_as_number",
32
      [% L.input_tag("assortment_items[].qty_as_number",
33 33
                      ITEM.qty_as_number,
34
                      size = 10,
35
                      class="recalc reformat_number numeric") %]
34
                      maxsize = 10,
35
                      class="recalc reformat_number numeric wi-verysmall",
36
                      size=10) %]
36 37
    [% ELSE %]
37 38
      [% ITEM.qty_as_number | html %]
38 39
    [% END %]
39
    </td>
40
    <td nowrap>
40
  </td>
41
  <td>
41 42
    [% IF orphaned %]
42
      [%- L.select_tag("assortment_items[].unit",
43
      [% L.select_tag("assortment_items[].unit",
43 44
                      ITEM.part.available_units,
44 45
                      default = ITEM.part.unit,
45 46
                      title_key = 'name',
46 47
                      value_key = 'name',
47
                      class = 'unitselect') %]
48
                      class = 'unitselect wi-verysmall') %]
48 49
    [% ELSE %]
49 50
      [% ITEM.part.unit | html %]
50 51
    [% END %]
51
    </td>
52
    <td>
52
  </td>
53
  <td class="center">
53 54
    [% IF orphaned %]
54 55
      [% L.checkbox_tag('assortment_items[].charge', checked => ITEM.charge, class => 'checkbox', for_submit=1) %]
55 56
    [% ELSE %]
56
      [% IF ITEM.charge %][% 'Yes' | $T8 %][%- ELSE %][% 'No' | $T8 %][%- END %]
57
      [% IF ITEM.charge %][% 'Yes' | $T8 %][% ELSE %][% 'No' | $T8 %][% END %]
57 58
    [% END %]
58
    </td>
59
    <td align="right">
60
      [%- L.div_tag(LxERP.format_amount(ITEM.linetotal_sellprice, 2, 0), name="linetotal") %]
61
      </td>
62
    <td align="right">
63
      [% ITEM.part.sellprice_as_number %]
64
      </td>
65
    <td align="right">
66
      [% ITEM.part.lastcost_as_number %]
67
      </td>
68
    <td align="right">
69
      [% HTML.escape(ITEM.part.partsgroup.partsgroup) %]
70
      </td>
71
  </tr>
59
  </td>
60
  <td class="numeric">
61
    [% L.div_tag(LxERP.format_amount(ITEM.linetotal_sellprice, 2, 0), name="linetotal") %]
62
  </td>
63
  <td class="numeric">
64
    [% ITEM.part.sellprice_as_number %]
65
  </td>
66
  <td class="numeric">
67
    [% ITEM.part.lastcost_as_number %]
68
  </td>
69
  <td class="numeric">
70
    [% HTML.escape(ITEM.part.partsgroup.partsgroup) %]
71
  </td>
72
</tr>
templates/webpages/part/_basic_data.html
1
[%- USE T8 %]
2
[%- USE HTML %]
3
[%- USE LxERP %]
4
[%- USE L %]
5
[%- USE P %]
6
   <table width="100%" id="basic_data_table">
7
    <tr>
8
     <td>
9
      <table width="100%" id="ic1">
10
       <tr valign="top">
11
        <td>
12
         [%- IF SELF.part.image && INSTANCE_CONF.get_parts_show_image %]
13
         <a href="[% SELF.part.image | html %]" target="_blank"><img style="[% INSTANCE_CONF.get_parts_image_css %]" src="[% SELF.part.image | html %]"/></a>
14
         [%- END %]
15

  
16
         <table id="ic2">
17
          <tr>
18
           <td colspan="2">
19
            <table id="ic3">
20
             <tr>
21
              <th align="right">[% 'Part Number' | $T8 %]</th>
22
              <td>[% L.input_tag("part.partnumber", SELF.part.partnumber, size=40, class="initial_focus") %]</td>
23
             </tr>
24
             <tr>
25
              <th align="right">[% 'Part Classification' | $T8 %]</th>
26
              <td>[% P.part.select_classification('part.classification_id', default => SELF.part.classification_id, type => SELF.parts_classification_filter ) %]</td>
27
             </tr>
28
             <tr>
29
              <th align="right">[% 'Part Description' | $T8 %]</th>
30
              <td>
31
               [% L.areainput_tag("part.description", SELF.part.description, size=40) %]</td>
32
              </td>
33
             </tr>
34
             <tr>
35
               <th align="right">[% 'EAN-Code' | $T8 %]</th>
36
               <td>[% L.input_tag("part.ean", SELF.part.ean, size=40) %]</td>
37
             </tr>
38
             <tr>
39
              [%- IF SELF.all_partsgroups.size %]
40
              <th align="right">[% 'Partsgroup' | $T8 %]</th>
41
              <td>[%- L.select_tag('part.partsgroup_id', SELF.all_partsgroups, default=SELF.part.partsgroup_id, title_key='partsgroup', value_key='id', with_empty=1 style='width: 200px') %]</td>
42
              [% END %]
43
             </tr>
44
             [%- IF SELF.all_buchungsgruppen.size %]
45
             <tr>
46
              <th align="right">[% 'Booking group' | $T8 %]</th>
47
              <td>[%- L.select_tag('part.buchungsgruppen_id', SELF.all_buchungsgruppen, default=SELF.part.buchungsgruppen_id, title_key='description', value_key='id', with_empty=0 style='width: 200px') %]</td>
48
             </tr>
49
             [%- END %]
50
             [%- IF SELF.all_payment_terms.size %]
51
             <tr>
52
              <th align="right">[% 'Payment Terms' | $T8 %]</th>
53
              <td>
54
              [%- L.select_tag('part.payment_id', SELF.all_payment_terms, default=SELF.part.payment_id, title_key='description', value_key='id', with_empty=1 style='width: 200px') %]</td>
55
             </tr>
56
             [% END %]
57
            </table>
58
           </td>
59
          </tr>
1
[% USE T8 %]
2
[% USE HTML %]
3
[% USE LxERP %]
4
[% USE L %]
5
[% USE P %]
60 6

  
61
          <tr height="5"></tr>
7
[% IF SELF.part.image || SELF.part.description %]
8
  [% IF SELF.part.image && INSTANCE_CONF.get_parts_show_image %]
9
    <div class="image col">
10
      <a href="[% SELF.part.image | html %]" target="_blank">
11
        <img style="[% INSTANCE_CONF.get_parts_image_css %]" src="[% SELF.part.image | html %]"/>
12
      </a>
13
    </div>
14
  [% END %]
15
  [% IF SELF.part.description %]
16
    <h2 class="record-title col">
17
      [% SELF.part.description %] [% IF SELF.part.partnumber %]<small>([%  SELF.part.partnumber %])</small>[% END %]
18
    </h2>
19
  [% END %]
20
[% END %]
62 21

  
63
          <tr>
64
           <td>
65
            <table id="ic4">
66
             <tr>
67
              <th align="left">[% 'Part Notes' | $T8 %]</th>
68
              <th align="left">[% 'Formula' | $T8 %]</th>
69
             </tr>
70
             <tr valign="top">
71
              <td>
72
               [% L.textarea_tag("part.notes", P.restricted_html(SELF.part.notes), class="texteditor", style="width: 600px; height: 200px") %]
73
              </td>
74
              <td>
75
                 <textarea id="part.formel" name="part.formel" rows="[% HTML.escape(notes_rows) %]" cols="30" wrap="soft" class="tooltipster-html" title="[% 'The formula needs the following syntax:<br>For regular article:<br>Variablename= Variable Unit;<br>Variablename2= Variable2 Unit2;<br>...<br>###<br>Variable + ( Variable2 / Variable )<br><b>Please be beware of the spaces in the formula</b><br>' | $T8 %]">[% HTML.escape(SELF.part.formel) %]</textarea>
76
               </td>
77
             </tr>
78
            </table>
79
           </td>
80
          </tr>
81
         </table>
82
        </td>
22
<div class="wrapper" id="wrapper-1">
23
[% INCLUDE 'generic/toggle_wrapper.html' %]
83 24

  
25
<div class="col">
26
  <table id="ic3" class="tbl-horizontal">
27
    <caption>[% 'Basic Article Data' | $T8 %]</caption>
28
    <colgroup> <col class="wi-mediumsmall"><col class="wi-wide"> </colgroup>
29
    <tbody>
30
      <tr>
31
        <th>[% 'Part Number' | $T8 %]</th>
32
        <td>[% L.input_tag("part.partnumber", SELF.part.partnumber, size=10, class='initial_focus wi-mediumsmall') %]</td>
33
      </tr>
34
      <tr>
35
        <th>[% 'Part Classification' | $T8 %]</th>
36
        <td>[% P.part.select_classification('part.classification_id', default => SELF.part.classification_id, type => SELF.parts_classification_filter, class='wi-wide' ) %]</td>
37
      </tr>
38
      <tr>
39
        <th>[% 'Part Description' | $T8 %]</th>
40
        <td class="wi-wide">[% L.areainput_tag("part.description", SELF.part.description, class='wi-wide', cols=10, rows=10) %]</td>
41
      </tr>
42
      <tr>
43
        <th>[% 'EAN-Code' | $T8 %]</th>
44
        <td>[% L.input_tag("part.ean", SELF.part.ean, class='wi-wide', size=10) %]</td>
45
      </tr>
46
      [% IF SELF.all_partsgroups.size %]
47
      <tr>
48
        <th>[% 'Partsgroup' | $T8 %]</th>
84 49
        <td>
85
         <table id="ic5">
86
          <tr>
87
           <th align="right" nowrap="true">[% 'Updated' | $T8 %]</th>
88
           <td>
89
           [% SELF.part.priceupdate.to_kivitendo | html %]
90
           </td>
91
          </tr>
92

  
93
          <tr>
94
           <th align="right" nowrap="true">[% 'List Price' | $T8 %]</th>
95
           <td>[% L.input_tag("part.listprice_as_number", SELF.part.listprice_as_number, size=11 class='reformat_number numeric') %]</td>
96
          </tr>
97

  
98
          <tr  >
99
           <th align="right" nowrap="true">[% 'Sell Price' | $T8 %]</th>
100
           <td>[% L.input_tag("part.sellprice_as_number", SELF.part.sellprice_as_number, size=11, class='reformat_number numeric') %] [% IF (SELF.part.is_assortment or SELF.part.is_assembly) %] (<span id="items_sellprice_sum_basic">[% LxERP.format_amount(SELF.part.items_sellprice_sum, 2) %]</span>) [% END %]</td>
101
          </tr>
102

  
103
          [%- UNLESS SELF.part.is_assembly %]
104
          <tr>
105
           <th align="right" nowrap="true">[% 'Last Cost' | $T8 %]</th>
106
           <td>[% L.input_tag("part.lastcost_as_number", SELF.part.lastcost_as_number, size=11 class='reformat_number numeric') %]
107
           [% IF SELF.part.is_assortment %] (<span id="items_lastcost_sum_basic">[% LxERP.format_amount(SELF.part.items_lastcost_sum, 2) %]</span>) [% END %]</td>
108
          </tr>
109
          [%- END %]
50
          [% L.select_tag('part.partsgroup_id', SELF.all_partsgroups, default=SELF.part.partsgroup_id, title_key='partsgroup', value_key='id', with_empty=1, class='wi-wide') %]
51
        </td>
52
      </tr>
53
      [% END %]
54
      [% IF SELF.all_buchungsgruppen.size %]
55
      <tr>
56
        <th>[% 'Booking group' | $T8 %]</th>
57
        <td>[% L.select_tag('part.buchungsgruppen_id', SELF.all_buchungsgruppen, default=SELF.part.buchungsgruppen_id, title_key='description', value_key='id', with_empty=0, class='wi-wide') %]</td>
58
      </tr>
59
      [% END %]
60
      [% IF SELF.all_payment_terms.size %]
61
      <tr>
62
        <th>[% 'Payment Terms' | $T8 %]</th>
63
        <td>[% L.select_tag('part.payment_id', SELF.all_payment_terms, default=SELF.part.payment_id, title_key='description', value_key='id', with_empty=1, class='wi-wide') %]</td>
64
      </tr>
65
      [% END %] [% IF SELF.part.id %]
66
      <tr>
67
        <th> <label for="part_obsolete">[% 'Obsolete' | $T8 %]</label> </th>
68
        <td>[% L.checkbox_tag('part.obsolete', checked = SELF.part.obsolete, for_submit=1) %]</td>
69
      </tr>
70
      [% END %]
71
      <tr>
72
        <th> <label for="part_shop">[% 'Shop article' | $T8 %]</label> </th>
73
        <td>[% L.checkbox_tag('part.shop', checked = SELF.part.shop, for_submit=1, id='part_shop') %]</td>
74
      </tr>
75
    </tbody>
76
  </table>
110 77

  
111
          [%- IF SELF.all_price_factors.size %]
112
          <tr>
113
           <th align="right">[% 'Price Factor' | $T8 %]</th>
114
           <td>
115
            [%- L.select_tag('part.price_factor_id', SELF.all_price_factors, default=SELF.part.price_factor_id, title_key='description', value_key='id', with_empty=1) %]</td>
116
           </td>
117
          </tr>
118
          [%- END %]
78
  <table class="tbl-horizontal">
79
    <caption>[% 'Part Notes' | $T8 %]</caption>
80
    <colgroup> <col class="wi-mediumsmall-wide"> </colgroup>
81
    <tbody>
82
      <tr>
83
        <td class="wi-mediumsmall-wide">[% L.textarea_tag("part.notes", P.restricted_html(SELF.part.notes), class='texteditor wi-mediumsmall-wide', cols=10, rows=10) %]</td>
84
      </tr>
85
    </tbody>
86
  </table>
87
</div><!-- /.col -->
119 88

  
120
          <tr>
121
           <th align="right" nowrap="true">[% 'Unit' | $T8 %]</th>
122
           <td>
123
            [%- IF !SELF.part.id or SELF.part.orphaned # same logic as unit_changable %]
124
            [%- L.select_tag('part.unit', SELF.all_units, default=SELF.part.unit, title_key='name', value_key='name') %]</td>
125
            [%- ELSE %]
89
<div class="col">
90
  <table id="ic5" class="tbl-horizontal">
91
    <caption>[% 'Prices' | $T8 %]</caption>
92
    <colgroup> <col class="wi-small"><col class="wi-mediumsmall"> </colgroup>
93
    <tbody>
94
      <tr>
95
        <th>[% 'Updated' | $T8 %]</th>
96
        <td>[% SELF.part.priceupdate.to_kivitendo | html %]</td>
97
      </tr>
98
      <tr>
99
        <th>[% 'List Price' | $T8 %]</th>
100
        <td>[% L.input_tag("part.listprice_as_number", SELF.part.listprice_as_number, class='reformat_number numeric wi-mediumsmall', size=10) %]</td>
101
      </tr>
102
      <tr>
103
        <th>[% 'Sell Price' | $T8 %]</th>
104
        <td>
105
          [% L.input_tag("part.sellprice_as_number", SELF.part.sellprice_as_number, class='reformat_number numeric wi-mediumsmall', size=10) %]
106
          [% IF (SELF.part.is_assortment or SELF.part.is_assembly) %]
107
            <span id="items_sellprice_sum_basic" class="data below wi-mediumsmall numeric">([% LxERP.format_amount(SELF.part.items_sellprice_sum, 2) %])</span>
108
          [% END %]
109
        </td>
110
      </tr>
111
      [% UNLESS SELF.part.is_assembly %]
112
      <tr>
113
        <th>[% 'Last Cost' | $T8 %]</th>
114
        <td>
115
          [% L.input_tag("part.lastcost_as_number", SELF.part.lastcost_as_number, class='reformat_number numeric wi-mediumsmall', size=10) %]
116
          [% IF SELF.part.is_assortment %]
117
            <span id="items_lastcost_sum_basic" class="data below wi-mediumsmall numeric">([% LxERP.format_amount(SELF.part.items_lastcost_sum, 2) %])</span>
118
          [% END %]
119
        </td>
120
      </tr>
121
      [% END %]
122
      [% IF SELF.all_price_factors.size %]
123
      <tr>
124
        <th>[% 'Price Factor' | $T8 %]</th>
125
        <td>
126
          [% L.select_tag('part.price_factor_id', SELF.all_price_factors, default=SELF.part.price_factor_id, title_key='description', value_key='id', with_empty=1, class='wi-mediumsmall') %]
127
          </td>
128
      </tr>
129
      [% END %]
130
      <tr>
131
        <th>[% 'Unit' | $T8 %]</th>
132
        <td>
133
          [% IF !SELF.part.id or SELF.part.orphaned # same logic as unit_changable %]
134
            [% L.select_tag('part.unit', SELF.all_units, default=SELF.part.unit, title_key='name', value_key='name', class='wi-mediumsmall') %]
135
          [% ELSE %]
126 136
            [% L.hidden_tag('part.unit', SELF.part.unit) %] [% HTML.escape(SELF.part.unit) %]
127
            [%- END %]
128
           </td>
129
          </tr>
137
          [% END %]</td>
138
      </tr>
139
      <tr>
140
        <th>[% 'Verrechnungseinheit' | $T8 %]</th>
141
        <td>[% L.input_tag("part.ve", SELF.part.ve, class='wi-mediumsmall', size=10) %]</td>
142
      </tr>
143
      <tr>
144
        <th><label for="part_not_discountable">[% 'Not Discountable' | $T8 %]</label></th>
145
        <td>[% L.checkbox_tag('part.not_discountable', checked = SELF.part.not_discountable, for_submit=1) %]</td>
146
      </tr>
147
      <tr>
148
        <th>[% 'Business Volume' | $T8 %]</th>
149
        <td>[% L.input_tag("part.gv_as_number", SELF.part.gv_as_number, class='reformat_number numeric wi-mediumsmall', size=10) %]</td>
150
      </tr>
151
    </tbody>
152
  </table>
130 153

  
131
        [%- UNLESS SELF.part.is_service %]
132
          <tr>
133
           <th align="right" nowrap="true">[% 'Weight' | $T8 %]</th>
134
           <td>
135
            [%- IF SELF.part.is_assembly %]
136
              [% LxERP.format_amount(SELF.part.weight) %]
137
            [% ELSE %]
138
              [% L.input_tag('part.weight_as_number', SELF.part.weight_as_number, size=10, class='reformat_number numeric') %]
139
            [% END %]
140
            [% HTML.escape(INSTANCE_CONF.get_weightunit) %]
141
           </td>
142
          </tr>
143
          <tr>
144
           <th align="right" nowrap>[% 'On Hand' | $T8 %]</th>
145
           <th align="left" nowrap>[% LxERP.format_amount(SELF.part.onhand) %] [% SELF.part.unit | html %]</th>
146
          </tr>
147
          <tr>
148
           <th align="right" nowrap="true">[% 'ROP' | $T8 %]</th>
149
           <td>[% L.input_tag("part.rop_as_number", SELF.part.rop_as_number, size=10, class="reformat_number numeric") %]</td>
150
          </tr>
151
          [% IF SELF.all_warehouses.size %]
152
          <tr>
153
           <th align="right" nowrap="true">[% 'Default Warehouse' | $T8 %]</th>
154
           <td>[% L.select_tag('part.warehouse_id', SELF.all_warehouses, default=SELF.part.warehouse.id, title_key='description', with_empty=1) %]
155
           </td>
156
          </tr>
157
          [% END %]
158
          <tr>
159
           <th align="right" nowrap="true">[% 'Default Bin' | $T8 %]</th>
160
           <td>
161
            <span id='bin'>
162
            [% IF SELF.part.warehouse.id %]
163
            [% L.select_tag('part.bin_id', SELF.part.warehouse.bins, default=SELF.part.bin.id, title_key='description') %]
164
            [%- END %]
165
            </span>
166
           </td>
167
          </tr>
168
        [%- END %]
169
          <tr>
170
           <th align="right" nowrap="true">[% 'Verrechnungseinheit' | $T8 %]</th>
171
           <td>[% L.input_tag("part.ve", SELF.part.ve, size=10) %]</td>
172
          </tr>
173
          <tr>
174
           <th align="right" nowrap="true">[% 'Business Volume' | $T8 %]</th>
175
           <td>[% L.input_tag("part.gv_as_number", SELF.part.gv_as_number, size=10, class='reformat_number numeric') %]</td>
176
          </tr>
177
          <tr>
178
           <th align="right" nowrap><label for="not_discountable">[% 'Not Discountable' | $T8 %]</label></th>
179
           <td>[% L.checkbox_tag('part.not_discountable', checked = SELF.part.not_discountable, for_submit=1) %]</td>
180
          </tr>
181
        [%- IF SELF.part.id %]
182
          <tr>
183
           <th align="right" nowrap="true"><label for="obsolete">[% 'Obsolete' | $T8 %]</label></th>
184
           <td>[% L.checkbox_tag('part.obsolete', checked = SELF.part.obsolete, for_submit=1) %]</td>
185
          </tr>
186
        [%- END %]
187
        [%- UNLESS SELF.part.is_service %]
188
          <tr>
189
           <th align="right" nowrap><label for="has_sernumber">[% 'Has serial number' | $T8 %]</label></th>
190
           <td>[% L.checkbox_tag('part.has_sernumber', checked = SELF.part.has_sernumber, for_submit=1) %]</td>
191
          </tr>
192
        [%- END %]
193
          <tr>
194
           <th align="right" nowrap><label for="shop">[% 'Shop article' | $T8 %]</label></th>
195
           <td>[% L.checkbox_tag('part.shop', checked = SELF.part.shop, for_submit=1) %]</td>
196
          </tr>
197
         </table>
154
  <table class="tbl-horizontal">
155
    <caption>[% 'Formula' | $T8 %]</caption>
156
      <colgroup> <col class="wi-small-mediumsmall"> </colgroup>
157
    <tbody>
158
      <tr>
159
        <td> <textarea id="part.formel" name="part.formel" rows="[% IF notes_rows %][% HTML.escape(notes_rows) %][% ELSE %]3[% END %]" cols="10" wrap="soft" class="tooltipster-html wi-small-mediumsmall" title="[% 'The formula needs the following syntax:<br>For regular article:<br>Variablename= Variable Unit;<br>Variablename2= Variable2 Unit2;<br>...<br>###<br>Variable + ( Variable2 / Variable )<br><b>Please be beware of the spaces in the formula</b><br>' | $T8 %]">[% HTML.escape(SELF.part.formel) %]</textarea>
198 160
        </td>
199
       </tr>
200
      </table>
201
     </td>
202
    </tr>
161
      </tr>
162
    </tbody>
163
  </table>
164
</div><!-- /.col -->
203 165

  
166
<div class="col">
167
  <div id="pricegroups">
168
    [% PROCESS 'part/_pricegroup_prices.html' %]
169
    [% UNLESS SELF.part.is_service %]
170
    <table class="tbl-horizontal">
171
      <caption>[% 'Warehouse' | $T8 %]</caption>
172
      <colgroup>
173
        <col class="wi-small">
174
        <col class="wi-lightwide">
175
      </colgroup>
176
      <tbody>
177
        <tr>
178
         <th>[% 'Weight' | $T8 %]</th>
179
         <td>
180
           [% IF SELF.part.is_assembly %]
181
             [% LxERP.format_amount(SELF.part.weight) %]
182
           [% ELSE %]
183
             [% L.input_tag('part.weight_as_number', SELF.part.weight_as_number, size=10, class='wi-small reformat_number numeric', size=10) %]
184
           [% END %]
185
          [% HTML.escape(INSTANCE_CONF.get_weightunit) %]
186
         </td>
187
        </tr>
188
        <tr>
189
         <th>[% 'On Hand' | $T8 %]</th>
190
         <td><span class="data wi-small numeric">[% LxERP.format_amount(SELF.part.onhand) %] [% SELF.part.unit | html %]</span></td>
191
        </tr>
192
        <tr>
193
         <th>[% 'ROP' | $T8 %]</th>
194
         <td>[% L.input_tag("part.rop_as_number", SELF.part.rop_as_number, size=10, class='wi-small reformat_number numeric') %]</td>
195
        </tr>
196
        [% IF SELF.all_warehouses.size %]
197
          <tr>
198
            <th>[% 'Default Warehouse' | $T8 %]</th>
199
            <td>[% L.select_tag('part.warehouse_id', SELF.all_warehouses, default=SELF.part.warehouse.id, title_key='description', with_empty=1, class='wi-lightwide') %]</td>
200
          </tr>
201
        [% END %]
202
        <tr>
203
          <th>[% 'Default Bin' | $T8 %]</th>
204
          <td class="wi-lightwide">
205
            <span id="bin" class="condensed">
206
              [% IF SELF.part.warehouse.id %]
207
                [% L.select_tag('part.bin_id', SELF.part.warehouse.bins, default=SELF.part.bin.id, title_key='description', with_empty=0, class='wi-lightwide') %]
208
              [% END %]
209
            </span>
210
          </td>
211
        </tr>
212
        <tr>
213
          <th><label for="part_has_sernumber">[% 'Has serial no.' | $T8 %]</label></th>
214
          <td>[% L.checkbox_tag('part.has_sernumber', checked = SELF.part.has_sernumber, for_submit=1) %]</td>
215
        </tr>
216
      </tbody>
217
    </table>
218
    [% END #/UNLESS SELF.part.is_service %]
219
  </div><!-- /#pricegroups /.col -->
204 220

  
205
    <tr>
206
     <td>
207
      <table id="ic6">
208
       <tr>
209
        <th align="right" nowrap>[% 'Image' | $T8 %]</th>
210
        <td>[% L.input_tag("part.image", SELF.part.image, size=40) %]</td>
211
        <th align="right" nowrap>[% 'Microfiche' | $T8 %]</th>
212
        <td>[% L.input_tag("part.microfiche", SELF.part.microfiche, size=20) %]</td>
213
       </tr>
214
       <tr>
215
        <th align="right" nowrap>[% 'Drawing' | $T8 %]</th>
216
        <td>[% L.input_tag("part.drawing", SELF.part.drawing, size=40) %]</td>
217
       </tr>
218
      </table>
219
     </td>
220
    </tr>
221
  <table id="ic6" class="tbl-horizontal">
222
    <caption>[% 'Illustrations' | $T8 %]</caption>
223
    <colgroup><col class="wi-small"><col class="wi-lightwide"></colgroup>
224
    <tbody>
225
      <tr>
226
        <th>[% 'Image' | $T8 %]</th>
227
        <td>[% L.input_tag("part.image", SELF.part.image, class='wi-lightwide', size=10) %]</td>
228
      </tr>
229
      <tr>
230
        <th>[% 'Microfiche' | $T8 %]</th>
231
        <td>[% L.input_tag("part.microfiche", SELF.part.microfiche, class='wi-lightwide', size=10) %]</td>
232
      </tr>
233
      <tr>
234
        <th>[% 'Drawing' | $T8 %]</th>
235
        <td>[% L.input_tag("part.drawing", SELF.part.drawing, class='wi-lightwide', size=10) %]</td>
236
      </tr>
237
    </tbody>
238
  </table>
239
</div><!-- /.col -->
221 240

  
222
<div id="pricegroups">
223
 [% PROCESS 'part/_pricegroup_prices.html' %]
224
</div>
241
</div><!-- /.wrapper -->
225 242

  
226
<div id="customerprices">
227
 [% PROCESS 'part/_customerprices.html' %]
228
</div>
229
[%- UNLESS SELF.part.is_assembly %]
230
<div id="makemodel">
231
 [% PROCESS 'part/_makemodel.html' %]
243
<div id="customerprices" class="wrapper">
244
  [% PROCESS 'part/_customerprices.html' %]
232 245
</div>
246

  
247
[% UNLESS SELF.part.is_assembly %]
248
  <div id="makemodel" class="wrapper">[% PROCESS 'part/_makemodel.html' %]</div>
233 249
[% END %]
234 250

  
235
  <tr>
236
    <td><hr size="3" noshade></td>
237
  </tr>
238
 </table>
251

  
templates/webpages/part/_customerprice_row.html
1
[%- USE T8 %]
2
[%- USE L %]
3
[%- USE HTML %]
4
[%- USE LxERP %]
5
        <tr class="listrow customerprice_row">
6
         <td style='display:none'>
7
         [% L.hidden_tag("customerprices[+].customer_id", customerprice.customer_id) %]
8
         [% L.hidden_tag("customerprices[].id"   , customerprice.id) %]
9
         </td>
10
         <td align="center">
11
           [%- L.button_tag("kivi.Part.delete_customerprice_row(this)",
12
                            LxERP.t8("X")) %] [% # , confirm=LxERP.t8("Are you sure?")) %]
13
         </td>
14
         <td><span name="position" class="numeric">[% HTML.escape(customerprice.sortorder) %]</span></td>
15
         <td align="center">
16
           <img src="image/updown.png" alt="[%- LxERP.t8('reorder item') %]" class="dragdrop">
17
         </td>
18
         <td>[% customerprice.customer.customernumber | html %]</td>
19
         <td>[% customerprice.customer.name         | html %] </td>
20
         <td>[% L.input_tag('customerprices[].customer_partnumber', customerprice.customer_partnumber, size=30 ) %]</td>
21
         <td>[% L.input_tag('customerprices[].price_as_number'    , customerprice.price_as_number    , size=15 , class="reformat_number numeric") %]</td>
22
         <td>[% L.hidden_tag('customerprices[].lastupdate'         , customerprice.lastupdate.to_kivitendo) %][% customerprice.lastupdate.to_kivitendo | html %]</td>
23
        </tr>
1
[% USE T8 %]
2
[% USE L %]
3
[% USE HTML %]
4
[% USE LxERP %]
5

  
6
<tr class="listrow customerprice_row">
7
  <td style='display:none'>
8
    [% L.hidden_tag("customerprices[+].customer_id", customerprice.customer_id) %]
9
    [% L.hidden_tag("customerprices[].id"   , customerprice.id) %]
10
  </td>
11
  <td>[% L.button_tag("kivi.Part.delete_customerprice_row(this)", "✕", class="wi-verytiny neutral") %] [% # , confirm=LxERP.t8("Are you sure?")) %]</td>
12
  <td class="center numeric"><span name="position">[% HTML.escape(customerprice.sortorder) %]</span></td>
13
  <td><img src="image/updown.png" alt="[% LxERP.t8('reorder item') %]" class="dragdrop"></td>
14
  <td>[% customerprice.customer.customernumber | html %]</td>
15
  <td>[% customerprice.customer.name         | html %]</td>
16
  <td>[% L.input_tag('customerprices[].customer_partnumber', customerprice.customer_partnumber, class='wi-mediumsmall', size=10 ) %]</td>
17
  <td>[% L.input_tag('customerprices[].price_as_number'    , customerprice.price_as_number    , class="wi-small reformat_number numeric", size=10) %]</td>
18
  <td>[% L.hidden_tag('customerprices[].lastupdate'         , customerprice.lastupdate.to_kivitendo) %][% customerprice.lastupdate.to_kivitendo | html %]</td>
19
</tr>
templates/webpages/part/_customerprices.html
1
[%- USE T8 %]
2
[%- USE L %]
3
[%- USE HTML %]
4
[%- USE LxERP %]
1
[% USE T8 %]
2
[% USE L %]
3
[% USE HTML %]
4
[% USE LxERP %]
5

  
6
<table id="customerprice_table" class="tbl-list wi-moderate">
7
  <caption>[% 'Customer prices' | $T8 %]</caption>
8
  <thead>
9
    <tr>
10
      <th class="center"><img src="image/close.png" alt="[% LxERP.t8('delete item') %]"></th>
11
      <th class="center">[% 'position' | $T8 %]</th>
12
      <th class="center"><img src="image/updown.png" alt="[% LxERP.t8('reorder item') %]"></th>
13
      <th>[% 'Customer Number'      | $T8 %]</th>
14
      <th>[% 'Customer'             | $T8 %]</th>
15
      <th>[% 'Customer Part Number' | $T8 %]</th>
16
      <th>[% 'Customer Price'       | $T8 %]</th>
17
      <th>[% 'Updated'              | $T8 %]</th>
18
    </tr>
19
  </thead>
20
  <tbody id="customerprice_rows">
21
  [% SET listrow = 0 %]
22
  [% FOREACH customerprice = SELF.part.customerprices %]
23
    [% listrow = listrow + 1 %]
24
    [% PROCESS 'part/_customerprice_row.html' customerprice=customerprice listrow=listrow %]
25
  [% END %]
26
 </tbody>
27
 <tfoot>
5 28
  <tr>
29
   <td></td>
30
   <td></td>
31
   <td></td>
32
   <th>[% 'Search & Add Customer' | $T8 %]</th>
33
   <td>[% P.customer_vendor.customer_picker('add_customerprice', '', class="add_customerprice_input wi-small tooltipstered tooltipster-html", action={commit_one='kivi.Part.add_customerprice_row'}, title=LxERP.t8("Search Customer by name and add by selecting")) %]</td>
34
   <td>[% L.button_tag('kivi.Part.add_customerprice_row()', LxERP.t8('Add')) %]</td>
35
   <td colspan="2"></td>
6 36
  </tr>
7
  <tr>
8
    <td>
9
      <table id="customerprice_table">
10
        <thead>
11
          <th class="listheading" style='text-align:center' nowrap width="1"><img src="image/close.png" alt="[%- LxERP.t8('delete item') %]"></th>
12
          <th class="listheading">[% 'position'     | $T8 %]</th>
13
          <th class="listheading" style='text-align:center' nowrap width="1"><img src="image/updown.png" alt="[%- LxERP.t8('reorder item') %]"></th>
14
          <th class="listheading" style='width:12em'>[% 'Customer Number'      | $T8 %]</th>
15
          <th class="listheading">[% 'Customer'             | $T8 %]</th>
16
          <th class="listheading">[% 'Customer Part Number' | $T8 %]</th>
17
          <th class="listheading">[% 'Customer Price'       | $T8 %]</th>
18
          <th class="listheading">[% 'Updated'              | $T8 %]</th>
19
        </thead>
20
        <tbody id="customerprice_rows">
21
        [% SET listrow = 0 %]
22
        [%- FOREACH customerprice = SELF.part.customerprices %]
23
        [% listrow = listrow + 1 %]
24
        [% PROCESS 'part/_customerprice_row.html' customerprice=customerprice listrow=listrow %]
25
        [%- END %]
26
       </tbody>
27
       <tbody>
28
        <tr>
29
         <td></td>
30
         <td></td>
31
         <td></td>
32
         <td align="right">[% 'Customer' | $T8 %]</td>
33
         <td rowspan="2">[% P.customer_vendor.customer_picker('add_customerprice', '', style='width: 300px', class="add_customerprice_input", action={commit_one='kivi.Part.add_customerprice_row'}) %]</td>
34
         <td rowspan="2" align="right">[% L.button_tag('kivi.Part.add_customerprice_row()', LxERP.t8('Add')) %]</td>
35
        </tr>
36
       </tbody>
37
      </table>
38
    </td>
39
  </tr>
40
  [% L.sortable_element('#customerprice_rows') %]
37
 </tfoot>
38
</table>
39

  
40
[% L.sortable_element('#customerprice_rows') %]
templates/webpages/part/_cvars.html
1
[%- USE HTML  %][%- USE T8 -%]
1
[% USE HTML  %]
2
[% USE T8 %]
2 3

  
3
 <p>[% 'Unchecked custom variables will not appear in orders and invoices.' | $T8 %]</p>
4
<div class="wrapper">
4 5

  
5
  <table>
6
   [%- FOREACH var = CUSTOM_VARIABLES %]
7
   <tr>
8
    <td align="right" valign="top">[% var.VALID_BOX %]</td>
9
    [%- IF !var.partsgroup_filtered %]
10
      <td align="right" valign="top">[% HTML.escape(var.description) %]</td>
11
    [%- END %]
12
    <td valign="top">[% var.HTML_CODE %]</td>
13
   </tr>
14
   [%- END %]
6
[% IF CUSTOM_VARIABLES.size %]
7
  <p>[% 'Unchecked custom variables will not appear in orders and invoices.' | $T8 %]</p>
8
  <table class="tbl-horizontal">
9
    [% FOREACH var = CUSTOM_VARIABLES %]
10
      <tr>
11
        <td>[% var.VALID_BOX %]</td>
12
        [% IF !var.partsgroup_filtered %]
13
          <td>[% HTML.escape(var.description) %]</td>
14
        [% END %]
15
        <td>[% var.HTML_CODE %]</td>
16
      </tr>
17
    [% END %]
15 18
  </table>
19
[% END %]
20

  
21
</div><!-- /.wrapper -->
templates/webpages/part/_edit_translations.html
1
[%- USE HTML %][%- USE L -%][%- USE P -%][%- USE LxERP -%]
1
[% USE HTML %]
2
[% USE L %]
3
[% USE P %]
4
[% USE LxERP %]
2 5

  
3
<div id="translations_tab">
4
 <table>
5
  <tr class="listheading">
6
   <th>[% LxERP.t8("Language") %]</th>
7
   <th>[% LxERP.t8("Description") %]</th>
8
   <th>[% LxERP.t8("Long Description") %]</th>
9
  </tr>
10

  
11
  [%- FOREACH language = SELF.all_languages %]
12
   [% SET language_id = language.id
13
          translation = translations_map.$language_id %]
14
   [% L.hidden_tag('translations[+].language_id', language.id) %]
15
   <tr class="listrow" valign="top">
16
    <td>[% HTML.escape(language.description) %]</td>
17
    <td>[% L.input_tag("translations[].translation", translation.translation) %]</td>
18
    <td>[% L.textarea_tag("translations[].longdescription", P.restricted_html(translation.longdescription), id="translations_longdescription_" _ language_id, class="texteditor", style="width: 500px; height: 100px") %]</td>
19
   </tr>
20
  [%- END %]
21
 </table>
6
<div id="translations_tab" class="ui-tabs-panel">
7
<div class="wrapper">
8
<table class="tbl-horizontal">
9
  <thead>
10
    <tr>
11
      <th>[% LxERP.t8("Language") %]</th>
12
      <th>[% LxERP.t8("Description") %]</th>
13
      <th>[% LxERP.t8("Long Description") %]</th>
14
    </tr>
15
  </thead>
16
  <tbody>
17
    [% FOREACH language = SELF.all_languages %] 
18
      <tr>
19
        <td>
20
          [% SET language_id = language.id translation = translations_map.$language_id %] 
21
          [% L.hidden_tag('translations[+].language_id', language.id) %]
22
          [% HTML.escape(language.description) %] 
23
        </td>
24
        <td>[% L.input_tag("translations[].translation", translation.translation, size=10, class="wi-normal") %]</td>
25
        <td>
26
          [% L.textarea_tag( 
27
            "translations[].longdescription", 
28
            P.restricted_html(translation.longdescription), 
29
            id="translations_longdescription_" _ language_id, 
30
            class="texteditor wi-lightwide", 
31
            cols=100, rows=4) 
32
          %]
33
        </td>
34
      </tr>
35
    [% END %] 
36
  </tbody>
37
</table>
38
</div>
22 39
</div>
40

  
41

  
templates/webpages/part/_makemodel.html
1
[%- USE T8 %]
2
[%- USE L %]
3
[%- USE P %]
4
[%- USE HTML %]
5
[%- USE LxERP %]
6
  <tr>
1
[% USE T8 %]
2
[% USE L %]
3
[% USE P %]
4
[% USE HTML %]
5
[% USE LxERP %]
6

  
7
<table id="makemodel_table" class="tbl-list">
8
  <caption>[% 'Make Model' | $T8 %]</caption>
9
  <thead>
10
    <tr>
11
      <th class="center"><img src="image/close.png" alt="[% LxERP.t8('delete item') %]"></th>
12
      <th>[% 'position'      | $T8 %]</th>
13
      <th class="center"><img src="image/updown.png" alt="[% LxERP.t8('reorder item') %]"></th>
14
      <th>[% 'Vendor Number' | $T8 %]</th>
15
      <th>[% 'Vendor'        | $T8 %]</th>
16
      <th>[% 'Model'         | $T8 %]</th>
17
      <th>[% 'Last Cost'     | $T8 %]</th>
18
      <th>[% 'Updated'       | $T8 %]</th>
7 19
  </tr>
8
  <tr>
9
    <td>
10
      <table id="makemodel_table">
11
        <thead>
12
          <th class="listheading" style='text-align:center' nowrap width="1"><img src="image/close.png" alt="[%- LxERP.t8('delete item') %]"></th>
13
          <th class="listheading">[% 'position'     | $T8 %]</th>
14
          <th class="listheading" style='text-align:center' nowrap width="1"><img src="image/updown.png" alt="[%- LxERP.t8('reorder item') %]"></th>
15
          <th class="listheading" style='width:12em'>[% 'Vendor Number' | $T8 %]</th>
16
          <th class="listheading">[% 'Vendor'        | $T8 %]</th>
17
          <th class="listheading">[% 'Model'         | $T8 %]</th>
18
          <th class="listheading">[% 'Last Cost'     | $T8 %]</th>
19
          <th class="listheading">[% 'Updated'       | $T8 %]</th>
20
        </thead>
21
        <tbody id="makemodel_rows">
22
        [% SET listrow = 0 %]
23
        [%- FOREACH makemodel = SELF.part.makemodels %]
24
        [% listrow = listrow + 1 %]
25
        [% PROCESS 'part/_makemodel_row.html' makemodel=makemodel listrow=listrow %]
26
        [%- END %]
27
       </tbody>
28
       <tbody>
29
        <tr>
30
         <td></td>
31
         <td></td>
32
         <td></td>
33
         <td align="right">[% 'Vendor' | $T8 %]</td>
34
         <td rowspan="2">[% P.customer_vendor.picker('add_makemodel', '', type='vendor', style='width: 300px', class="add_makemodel_input", action={commit_one='kivi.Part.add_makemodel_row'}) %]</td>
35
         <td rowspan="2" align="right">[% L.button_tag('kivi.Part.add_makemodel_row()', LxERP.t8('Add')) %]</td>
36
        </tr>
37
       </tbody>
38
      </table>
39
    </td>
40
  </tr>
41
  [% L.sortable_element('#makemodel_rows') %]
20
  </thead>
21
  <tbody id="makemodel_rows">
22
    [% SET listrow = 0 %]
23
    [% FOREACH makemodel = SELF.part.makemodels %]
24
      [% listrow = listrow + 1 %]
25
      [% PROCESS 'part/_makemodel_row.html' makemodel=makemodel listrow=listrow %]
26
    [% END %]
27
  </tbody>
28
  <!-- PENDENT: koennte besser und schoener geloest werden! -->
29
  <tfoot>
30
    <tr>
31
     <td></td>
32
     <td></td>
33
     <td></td>
34
     <th class="right"><span class="label">[% 'Search & Add Vendor' | $T8 %]</span></th>
35
     <td>
36
        [% SET titleaddmodel=LxERP.t8('Search & Add Vendor by Name') %]
37
        [% P.customer_vendor.picker('add_makemodel', '', type='vendor', class='add_makemodel_input wi-small tooltipstered tooltipster-html', title=titleaddmodel, action={commit_one='kivi.Part.add_makemodel_row'}, size=10) %]
38
      </td>
39
     <td>[% L.button_tag('kivi.Part.add_makemodel_row()', LxERP.t8('Add')) %]</td>
40
     <td></td>
41
     <td></td>
42
    </tr>
43
  </tfoot>
44
</table>
45
[% L.sortable_element('#makemodel_rows') %]
46

  
47
<script type="text/javascript">
48
/* 
49
  $(function() {
50
    $('#makemodel_rows').on('sortstop', function(event, ui) {
51
      kivi.Part.makemodel_renumber_positions();
52
    });
53
  })
54
 */
55
</script><!-- PENDENT: Ueberpruefen -->
templates/webpages/part/_makemodel_row.html
1
[%- USE T8 %]
2
[%- USE L %]
3
[%- USE HTML %]
4
[%- USE LxERP %]
5
        <tr class="listrow makemodel_row">
6
         <td style='display:none'>
7
         [% L.hidden_tag("makemodels[+].make", makemodel.make) %]
8
         [% L.hidden_tag("makemodels[].id"   , makemodel.id) %]
9
         </td>
10
         <td align="center">
11
           [%- L.button_tag("kivi.Part.delete_makemodel_row(this)",
12
                            LxERP.t8("X")) %] [% # , confirm=LxERP.t8("Are you sure?")) %]
13
         </td>
14
         <td><span name="position" class="numeric">[% HTML.escape(makemodel.sortorder) %]</span></td>
15
         <td align="center">
16
           <img src="image/updown.png" alt="[%- LxERP.t8('reorder item') %]" class="dragdrop">
17
         </td>
18
         <td>[% makemodel.vendor.vendornumber | html %]</td>
19
         <td>[% makemodel.vendor.name         | html %] </td>
20
         <td>[% L.input_tag('makemodels[].model'              , makemodel.model                   , size=30 ) %]</td>
21
         <td>[% L.input_tag('makemodels[].lastcost_as_number' , makemodel.lastcost_as_number      , size=15 , class="reformat_number numeric") %]</td>
22
         <td>[% L.hidden_tag('makemodels[].lastupdate'         , makemodel.lastupdate.to_kivitendo) %][% makemodel.lastupdate.to_kivitendo | html %]</td>
23
        </tr>
1
[% USE T8 %]
2
[% USE L %]
3
[% USE HTML %]
4
[% USE LxERP %]
5

  
6
<tr class="listrow makemodel_row">
7
  <td class="center">
8
    [% L.hidden_tag("makemodels[+].make", makemodel.make) %]
9
    [% L.hidden_tag("makemodels[].id"   , makemodel.id)   %]
10
    [% L.button_tag("kivi.Part.delete_makemodel_row(this)", LxERP.t8("X"), class="wi-verytiny neutral") %] [% # , confirm=LxERP.t8("Are you sure?")) %]
11
  </td>
12
  <td><span name="position" class="numeric">[% HTML.escape(makemodel.sortorder) %]</span></td>
13
  <td><img src="image/updown.png" alt="[% LxERP.t8('reorder item') %]" class="dragdrop"></td>
14
  <td>[% makemodel.vendor.vendornumber | html %]</td>
15
  <td>[% makemodel.vendor.name         | html %]</td>
16
  <td>[% L.input_tag('makemodels[].model', makemodel.model, class='wi-mediumsmall', size=10 ) %] </td>
17
  <td>[% L.input_tag('makemodels[].lastcost_as_number', makemodel.lastcost_as_number, class='reformat_number numeric wi-small', size=10) %] </td>
18
  <td>
19
    [% L.hidden_tag('makemodels[].lastupdate' , makemodel.lastupdate.to_kivitendo) %]
20
    [% makemodel.lastupdate.to_kivitendo | html %]
21
  </td>
22
</tr>
templates/webpages/part/_multi_items_dialog.html
1
[%- USE T8 %][%- USE HTML %][%- USE L %][%- USE LxERP %]
1
[% USE T8 %]
2
[% USE HTML %]
3
[% USE L %]
4
[% USE LxERP %]
2 5

  
3 6
<form method="post" id="multi_items_form" method="POST">
4 7

  
5
<table id='multi_items_filter_table'>
6
  <tr>
7
    <th>[%- LxERP.t8("Description") %]/[%- LxERP.t8("Partnumber") %]:</th>
8
    <td>[%- L.input_tag('multi_items.filter.all:substr:multi::ilike', SELF.multi_items_models.filtered.laundered.all_substr_multi__ilike) %]</td>
9
    <th>[%- LxERP.t8("Partsgroup") %]</th>
10
    <td>[%- L.select_tag('multi_items.filter.partsgroup_id', all_partsgroups, title_key='partsgroup', value_key='id', with_empty=1) %]</td>
11
  <tr>
12
</table>
8
<div class="select-item control-panel">
9
  <table id="multi_items_filter_table" class="tbl-plain">
10
    <tr>
11
      <th>[% LxERP.t8("Description") %]/[% LxERP.t8("Partnumber") %]</th>
12
      <td>[% L.input_tag('multi_items.filter.all:substr:multi::ilike', SELF.multi_items_models.filtered.laundered.all_substr_multi__ilike, size=10, class='wi-normal') %]</td>
13
    </tr>
14
    <tr>
15
      <th>[% LxERP.t8("Partsgroup") %]</th>
... Dieser Diff wurde abgeschnitten, weil er die maximale Anzahl anzuzeigender Zeilen überschreitet.

Auch abrufbar als: Unified diff