4 |
4 |
[% USE L %]
|
5 |
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>
|
Neues Design 2019 Standard-Code templates/webpages/part/_assembly.html