Revision d71c833a
Von Tamino Steinert vor fast 2 Jahren hinzugefügt
SL/Controller/DeliveryOrder.pm | ||
---|---|---|
29 | 29 |
use SL::DB::Shipto; |
30 | 30 |
use SL::DB::Translation; |
31 | 31 |
use SL::DB::TransferType; |
32 |
use SL::DB::Warehouse; |
|
32 | 33 |
|
33 | 34 |
use SL::Helper::CreatePDF qw(:all); |
34 | 35 |
use SL::Helper::PrintOptions; |
... | ... | |
929 | 930 |
|
930 | 931 |
$self->merge_stock_data($stock_info, \@contents, $part, $unit); |
931 | 932 |
|
933 |
my @collection = ( |
|
934 |
{ 'description' => 'foo_1', 'id' => '1', |
|
935 |
'key_1' => [ |
|
936 |
{ 'id' => 3, 'description' => "bar_1", |
|
937 |
'key_2' => [ |
|
938 |
{ 'id' => 1, 'value' => "foobar_1", }, |
|
939 |
{ 'id' => 2, 'value' => "foobar_2", }, |
|
940 |
], |
|
941 |
}, |
|
942 |
{ 'id' => 4, 'description' => "bar_2", |
|
943 |
'key_2' => [], |
|
944 |
}, |
|
945 |
], |
|
946 |
}, |
|
947 |
{ 'description' => 'foo_2', 'id' => '2', |
|
948 |
'key_1' => [ |
|
949 |
{ 'id' => 1, 'description' => "bar_1", |
|
950 |
'key_2' => [ |
|
951 |
{ 'id' => 3, 'value' => "foobar_3", }, |
|
952 |
{ 'id' => 4, 'value' => "foobar_4", }, |
|
953 |
], |
|
954 |
}, |
|
955 |
{ 'id' => 2, 'description' => "bar_2", |
|
956 |
'stock' => [ |
|
957 |
{ 'id' => 5, 'value' => "test_5", }, |
|
958 |
], |
|
959 |
}, |
|
960 |
], |
|
961 |
}, |
|
962 |
); |
|
963 |
|
|
932 | 964 |
$self->render("delivery_order/stock_dialog", { layout => 0 }, |
933 | 965 |
WHCONTENTS => $self->order->delivered ? $stock_info : \@contents, |
966 |
WAREHOUSES => SL::DB::Manager::Warehouse->get_all(with_objects=> ["bins",]), |
|
967 |
COLLECTION => \@collection, |
|
934 | 968 |
part => $part, |
935 | 969 |
do_qty => $qty, |
936 | 970 |
do_unit => $unit->unit, |
937 | 971 |
delivered => $self->order->delivered, |
938 | 972 |
row => $row, |
939 | 973 |
item_id => $item_id, |
974 |
in_out => $inout, |
|
940 | 975 |
); |
941 | 976 |
} |
942 | 977 |
|
SL/DB/DeliveryOrder/TypeData.pm | ||
---|---|---|
83 | 83 |
edit => "purchase_delivery_order_edit", |
84 | 84 |
view => "purchase_delivery_order_edit | purchase_delivery_order_view", |
85 | 85 |
}, |
86 |
stock_direction => { |
|
87 |
in_out => 'in', |
|
88 |
in => 1, |
|
89 |
out => 0, |
|
90 |
}, |
|
86 | 91 |
}, |
87 | 92 |
SUPPLIER_DELIVERY_ORDER_TYPE() => { |
88 | 93 |
text => { |
templates/webpages/delivery_order/stock_dialog.html | ||
---|---|---|
2 | 2 |
[%- USE HTML %] |
3 | 3 |
[%- USE LxERP %] |
4 | 4 |
[%- USE L %] |
5 |
|
|
6 |
<form> |
|
5 | 7 |
[%- IF delivered %] |
6 |
[%- SET RO = ' readonly' %]
|
|
7 |
[%- END %]
|
|
8 |
[% PROCESS "delivery_order/stock_dialog/_stock_delivered_dialog.html" %]
|
|
9 |
[%- ELSE %]
|
|
8 | 10 |
|
9 | 11 |
<table> |
10 | 12 |
<tr> |
... | ... | |
21 | 23 |
</tr> |
22 | 24 |
</table> |
23 | 25 |
|
24 |
[%- UNLESS WHCONTENTS.size %] |
|
25 |
<p>[% 'There are no items in stock.' | $T8 %]</p> |
|
26 |
[%- ELSE %] |
|
27 |
|
|
28 | 26 |
[% L.hidden_tag("in_out", in_out) %] |
29 | 27 |
[% L.hidden_tag("parts_id", parts_id) %] |
30 | 28 |
[% L.hidden_tag("do_qty", do_qty) %] |
... | ... | |
32 | 30 |
[% L.hidden_tag("row", row, class="data-row") %] |
33 | 31 |
[% L.hidden_tag("item_id", item_id) %] |
34 | 32 |
|
33 |
[%- IF in_out == "in" %] |
|
35 | 34 |
<p> |
36 |
<table id="stock-in-out-table"> |
|
37 |
<tr class="listheading"> |
|
38 |
<th> </th> |
|
39 |
<th>[% 'Warehouse' | $T8 %]</th> |
|
40 |
<th>[% 'Bin' | $T8 %]</th> |
|
41 |
<th>[% 'Charge Number' | $T8 %]</th> |
|
42 |
[% IF INSTANCE_CONF.get_show_bestbefore %] |
|
43 |
<th>[% 'Best Before' | $T8 %]</th> |
|
44 |
[% END %] |
|
45 |
[%- UNLESS delivered %] |
|
46 |
<th align="right">[% 'Available qty' | $T8 %]</th> |
|
47 |
[%- END %] |
|
48 |
<th align="right">[% 'Qty' | $T8 %]</th> |
|
49 |
<th align="right">[% 'Unit' | $T8 %]</th> |
|
50 |
</tr> |
|
51 |
|
|
52 |
[%- FOREACH row = WHCONTENTS %] |
|
53 |
<tr [% IF row.stock_error %] class="error"[% ELSE %]class="listrow"[% END %]> |
|
54 |
<td>[% loop.count %]</td> |
|
55 |
<td>[% row.warehousedescription | html %]</td> |
|
56 |
<td>[% row.bindescription | html %]</td> |
|
57 |
<td>[% row.chargenumber | html %]</td> |
|
58 |
[% IF INSTANCE_CONF.get_show_bestbefore %] |
|
59 |
<td>[% row.bestbefore | html %]</td> |
|
60 |
[% END %] |
|
61 |
|
|
62 |
[%- IF delivered %] |
|
63 |
|
|
64 |
<td>[% LxERP.format_amount(row.stock_qty) | html %]</td> |
|
65 |
<td> |
|
66 |
[% row.stock_unit | html %] |
|
67 |
[% L.hidden_tag("unit", row.stock_unit, class="data-unit") %] |
|
68 |
</td> |
|
69 |
|
|
70 |
[%- ELSE %] |
|
71 |
|
|
72 |
<td>[% row.available_qty | html %]</td> |
|
73 |
<td> |
|
74 |
[% L.input_tag("qty", row.stock_qty ? LxERP.format_amount(row.stock_qty) |
|
75 |
: (WHCONTENTS.size == 1) && (!row.stock_qty) ? LxERP.format_amount(do_qty) |
|
76 |
: "", class="numeric data-qty", size="12") %]</td> |
|
77 |
<td>[% L.select_tag("unit_" _ loop.count, part.unit_obj.convertible_units, value_key="name", default=row.stock_unit, class="data-unit") %]</td> |
|
78 |
|
|
79 |
[%- END %] |
|
80 |
<td style="display:none"> |
|
81 |
[% L.hidden_tag("warehouse_id", row.warehouse_id, class="data-warehouse-id") %] |
|
82 |
[% L.hidden_tag("bin_id", row.bin_id, class="data-bin-id") %] |
|
83 |
[% L.hidden_tag("chargenumber", row.chargenumber, class="data-chargenumber") %] |
|
84 |
[% L.hidden_tag("delivery_order_items_stock_id", row.delivery_order_items_stock_id, class="data-stock-id") %] |
|
85 |
[% L.hidden_tag("bestbefore", row.bestbefore, class="data-bestbefore") IF INSTANCE_CONF.get_show_bestbefore %] |
|
86 |
</td> |
|
87 |
</tr> |
|
35 |
<table id="stock-info-table"> |
|
36 |
[%- PROCESS "delivery_order/stock_dialog/_stock_info_table.html" %] |
|
37 |
</table> |
|
38 |
</p> |
|
39 |
[%- END %] |
|
88 | 40 |
|
41 |
<p> |
|
42 |
<table id="stock-in-out-table"> |
|
43 |
[%- IF in_out == "in" %] |
|
44 |
[%- PROCESS "delivery_order/stock_dialog/_stock_in_table.html" %] |
|
45 |
[%- ELSE %] |
|
46 |
[%- PROCESS "delivery_order/stock_dialog/_stock_out_table.html" %] |
|
89 | 47 |
[%- END %] |
90 | 48 |
</table> |
91 | 49 |
</p> |
92 | 50 |
|
93 | 51 |
<hr size="3" noshade> |
94 | 52 |
|
95 |
<p>[% L.button_tag('kivi.DeliveryOrder.save_updated_stock()', LxERP.t8('Save')) IF !delivered %]</p>
|
|
53 |
<p>[% L.button_tag('kivi.DeliveryOrder.save_updated_stock()', LxERP.t8('Save')) %]</p> |
|
96 | 54 |
|
97 | 55 |
[%- END %] |
98 | 56 |
</form> |
99 |
|
|
100 |
|
templates/webpages/delivery_order/stock_dialog/_stock_delivered_dialog.html | ||
---|---|---|
1 |
[%- USE T8 %] |
|
2 |
[%- USE HTML %] |
|
3 |
[%- USE LxERP %] |
|
4 |
[%- USE L %] |
|
5 |
[%- IF delivered %] |
|
6 |
[%- SET RO = ' readonly' %] |
|
7 |
[%- END %] |
|
8 |
|
|
9 |
<table> |
|
10 |
<tr> |
|
11 |
<td>[% 'Part Number' | $T8 %]</td> |
|
12 |
<td>[% part.partnumber | html %]</td> |
|
13 |
</tr> |
|
14 |
<tr> |
|
15 |
<td>[% 'Description' | $T8 %]</td> |
|
16 |
<td>[% part.description | html %]</td> |
|
17 |
</tr> |
|
18 |
<tr> |
|
19 |
<td>[% 'Qty according to delivery order' | $T8 %]</td> |
|
20 |
<td>[% LxERP.format_amount(do_qty) %] [% do_unit | html %]</td> |
|
21 |
</tr> |
|
22 |
</table> |
|
23 |
|
|
24 |
[%- UNLESS WHCONTENTS.size %] |
|
25 |
<p>[% 'There are no items in stock.' | $T8 %]</p> |
|
26 |
[%- ELSE %] |
|
27 |
|
|
28 |
[% L.hidden_tag("in_out", in_out) %] |
|
29 |
[% L.hidden_tag("parts_id", parts_id) %] |
|
30 |
[% L.hidden_tag("do_qty", do_qty) %] |
|
31 |
[% L.hidden_tag("do_unit", do_unit) %] |
|
32 |
[% L.hidden_tag("row", row, class="data-row") %] |
|
33 |
[% L.hidden_tag("item_id", item_id) %] |
|
34 |
|
|
35 |
<p> |
|
36 |
<table id="stock-in-out-table"> |
|
37 |
<tr class="listheading"> |
|
38 |
<th> </th> |
|
39 |
<th>[% 'Warehouse' | $T8 %]</th> |
|
40 |
<th>[% 'Bin' | $T8 %]</th> |
|
41 |
<th>[% 'Charge Number' | $T8 %]</th> |
|
42 |
[% IF INSTANCE_CONF.get_show_bestbefore %] |
|
43 |
<th>[% 'Best Before' | $T8 %]</th> |
|
44 |
[% END %] |
|
45 |
[%- UNLESS delivered %] |
|
46 |
<th align="right">[% 'Available qty' | $T8 %]</th> |
|
47 |
[%- END %] |
|
48 |
<th align="right">[% 'Qty' | $T8 %]</th> |
|
49 |
<th align="right">[% 'Unit' | $T8 %]</th> |
|
50 |
</tr> |
|
51 |
|
|
52 |
[%- FOREACH row = WHCONTENTS %] |
|
53 |
<tr [% IF row.stock_error %] class="error"[% ELSE %]class="listrow"[% END %]> |
|
54 |
<td>[% loop.count %]</td> |
|
55 |
<td>[% row.warehousedescription | html %]</td> |
|
56 |
<td>[% row.bindescription | html %]</td> |
|
57 |
<td>[% row.chargenumber | html %]</td> |
|
58 |
[% IF INSTANCE_CONF.get_show_bestbefore %] |
|
59 |
<td>[% row.bestbefore | html %]</td> |
|
60 |
[% END %] |
|
61 |
|
|
62 |
[%- IF delivered %] |
|
63 |
|
|
64 |
<td>[% LxERP.format_amount(row.stock_qty) | html %]</td> |
|
65 |
<td> |
|
66 |
[% row.stock_unit | html %] |
|
67 |
[% L.hidden_tag("unit", row.stock_unit, class="data-unit") %] |
|
68 |
</td> |
|
69 |
|
|
70 |
[%- ELSE %] |
|
71 |
|
|
72 |
<td>[% row.available_qty | html %]</td> |
|
73 |
<td> |
|
74 |
[% L.input_tag("qty", row.stock_qty ? LxERP.format_amount(row.stock_qty) |
|
75 |
: (WHCONTENTS.size == 1) && (!row.stock_qty) ? LxERP.format_amount(do_qty) |
|
76 |
: "", class="numeric data-qty", size="12") %]</td> |
|
77 |
<td>[% L.select_tag("unit_" _ loop.count, part.unit_obj.convertible_units, value_key="name", default=row.stock_unit, class="data-unit") %]</td> |
|
78 |
|
|
79 |
[%- END %] |
|
80 |
<td style="display:none"> |
|
81 |
[% L.hidden_tag("warehouse_id", row.warehouse_id, class="data-warehouse-id") %] |
|
82 |
[% L.hidden_tag("bin_id", row.bin_id, class="data-bin-id") %] |
|
83 |
[% L.hidden_tag("chargenumber", row.chargenumber, class="data-chargenumber") %] |
|
84 |
[% L.hidden_tag("delivery_order_items_stock_id", row.delivery_order_items_stock_id, class="data-stock-id") %] |
|
85 |
[% L.hidden_tag("bestbefore", row.bestbefore, class="data-bestbefore") IF INSTANCE_CONF.get_show_bestbefore %] |
|
86 |
</td> |
|
87 |
</tr> |
|
88 |
|
|
89 |
[%- END %] |
|
90 |
</table> |
|
91 |
</p> |
|
92 |
|
|
93 |
<hr size="3" noshade> |
|
94 |
|
|
95 |
<p>[% L.button_tag('kivi.DeliveryOrder.save_updated_stock()', LxERP.t8('Save')) IF !delivered %]</p> |
|
96 |
|
|
97 |
[%- END %] |
|
98 |
</form> |
|
99 |
|
|
100 |
|
templates/webpages/delivery_order/stock_dialog/_stock_in_table.html | ||
---|---|---|
1 |
<tr class="listheading"> |
|
2 |
<th>[% 'Warehouse' | $T8 %]</th> |
|
3 |
<th>[% 'Bin' | $T8 %]</th> |
|
4 |
<th align="right">[% 'Qty' | $T8 %]</th> |
|
5 |
<th align="right">[% 'Unit' | $T8 %]</th> |
|
6 |
</tr> |
|
7 |
|
|
8 |
<tr> |
|
9 |
[% L.multi_level_select_tag( |
|
10 |
"test_tag", WAREHOUSES, 2, surround_tag="td", |
|
11 |
level_1={ |
|
12 |
name="warehouse.id", |
|
13 |
value_key="id", |
|
14 |
title_key="description", |
|
15 |
}, |
|
16 |
level_2={ |
|
17 |
object_key="bins", |
|
18 |
name="bin.id", |
|
19 |
value_key="id", |
|
20 |
title_key="description", |
|
21 |
}, |
|
22 |
) %] |
|
23 |
|
|
24 |
<td> |
|
25 |
[% L.input_tag("qty", LxERP.format_amount(do_qty), class="numeric data-qty", size="12") %]</td> |
|
26 |
<td>[% L.select_tag("unit_" _ loop.count, part.unit_obj.convertible_units, value_key="name", default=row.stock_unit, class="data-unit") %]</td> |
|
27 |
|
|
28 |
<td style="display:none"> |
|
29 |
[% L.hidden_tag("warehouse_id", row.warehouse_id, class="data-warehouse-id") %] |
|
30 |
[% L.hidden_tag("bin_id", row.bin_id, class="data-bin-id") %] |
|
31 |
[% L.hidden_tag("chargenumber", row.chargenumber, class="data-chargenumber") %] |
|
32 |
[% L.hidden_tag("delivery_order_items_stock_id", row.delivery_order_items_stock_id, class="data-stock-id") %] |
|
33 |
[% L.hidden_tag("bestbefore", row.bestbefore, class="data-bestbefore") IF INSTANCE_CONF.get_show_bestbefore %] |
|
34 |
</td> |
|
35 |
</tr> |
|
36 |
<tr> |
|
37 |
[% L.multi_level_select_tag("multi_select_foo_bar_foobar", COLLECTION, 3, |
|
38 |
surround_tag="td", |
|
39 |
level_1={ |
|
40 |
name="foo.id", |
|
41 |
value_key="id", |
|
42 |
title_key="description", |
|
43 |
default="2", |
|
44 |
}, |
|
45 |
level_2={ |
|
46 |
object_key="key_1", |
|
47 |
name="bar.id", |
|
48 |
value_key="id", |
|
49 |
title_key="description", |
|
50 |
default="1", |
|
51 |
}, |
|
52 |
level_3={ |
|
53 |
object_key="key_2", |
|
54 |
name="foobar.id", |
|
55 |
value_key="id", |
|
56 |
title_key="value", |
|
57 |
default="4", |
|
58 |
}, |
|
59 |
) %] |
|
60 |
</tr> |
templates/webpages/delivery_order/stock_dialog/_stock_info_table.html | ||
---|---|---|
1 |
<tr class="listheading"> |
|
2 |
<th> </th> |
|
3 |
<th>[% 'Warehouse' | $T8 %]</th> |
|
4 |
<th>[% 'Bin' | $T8 %]</th> |
|
5 |
<th>[% 'Charge Number' | $T8 %]</th> |
|
6 |
[% IF INSTANCE_CONF.get_show_bestbefore %] |
|
7 |
<th>[% 'Best Before' | $T8 %]</th> |
|
8 |
[% END %] |
|
9 |
<th align="right">[% 'Available qty' | $T8 %]</th> |
|
10 |
</tr> |
|
11 |
|
|
12 |
[%- FOREACH row = WHCONTENTS %] |
|
13 |
<tr [% IF row.stock_error %] class="error"[% ELSE %]class="listrow"[% END %]> |
|
14 |
<td>[% loop.count %]</td> |
|
15 |
<td>[% row.warehousedescription | html %]</td> |
|
16 |
<td>[% row.bindescription | html %]</td> |
|
17 |
<td>[% row.chargenumber | html %]</td> |
|
18 |
[% IF INSTANCE_CONF.get_show_bestbefore %] |
|
19 |
<td>[% row.bestbefore | html %]</td> |
|
20 |
[% END %] |
|
21 |
|
|
22 |
<td>[% row.available_qty | html %]</td> |
|
23 |
<td> |
|
24 |
[% row.stock_unit | html %] |
|
25 |
</td> |
|
26 |
</tr> |
|
27 |
[%- END %] |
templates/webpages/delivery_order/stock_dialog/_stock_out_table.html | ||
---|---|---|
1 |
[%- USE T8 %] |
|
2 |
[%- USE HTML %] |
|
3 |
[%- USE LxERP %] |
|
4 |
[%- USE L %] |
|
5 |
[%- IF delivered %] |
|
6 |
[%- SET RO = ' readonly' %] |
|
7 |
[%- END %] |
|
8 |
|
|
9 |
<table> |
|
10 |
<tr> |
|
11 |
<td>[% 'Part Number' | $T8 %]</td> |
|
12 |
<td>[% part.partnumber | html %]</td> |
|
13 |
</tr> |
|
14 |
<tr> |
|
15 |
<td>[% 'Description' | $T8 %]</td> |
|
16 |
<td>[% part.description | html %]</td> |
|
17 |
</tr> |
|
18 |
<tr> |
|
19 |
<td>[% 'Qty according to delivery order' | $T8 %]</td> |
|
20 |
<td>[% LxERP.format_amount(do_qty) %] [% do_unit | html %]</td> |
|
21 |
</tr> |
|
22 |
</table> |
|
23 |
|
|
24 |
[%- UNLESS WHCONTENTS.size %] |
|
25 |
<p>[% 'There are no items in stock.' | $T8 %]</p> |
|
26 |
[%- ELSE %] |
|
27 |
|
|
28 |
[% L.hidden_tag("in_out", in_out) %] |
|
29 |
[% L.hidden_tag("parts_id", parts_id) %] |
|
30 |
[% L.hidden_tag("do_qty", do_qty) %] |
|
31 |
[% L.hidden_tag("do_unit", do_unit) %] |
|
32 |
[% L.hidden_tag("row", row, class="data-row") %] |
|
33 |
[% L.hidden_tag("item_id", item_id) %] |
|
34 |
|
|
35 |
<p> |
|
36 |
<table id="stock-in-out-table"> |
|
37 |
<tr class="listheading"> |
|
38 |
<th> </th> |
|
39 |
<th>[% 'Warehouse' | $T8 %]</th> |
|
40 |
<th>[% 'Bin' | $T8 %]</th> |
|
41 |
<th>[% 'Charge Number' | $T8 %]</th> |
|
42 |
[% IF INSTANCE_CONF.get_show_bestbefore %] |
|
43 |
<th>[% 'Best Before' | $T8 %]</th> |
|
44 |
[% END %] |
|
45 |
[%- UNLESS delivered %] |
|
46 |
<th align="right">[% 'Available qty' | $T8 %]</th> |
|
47 |
[%- END %] |
|
48 |
<th align="right">[% 'Qty' | $T8 %]</th> |
|
49 |
<th align="right">[% 'Unit' | $T8 %]</th> |
|
50 |
</tr> |
|
51 |
|
|
52 |
[%- FOREACH row = WHCONTENTS %] |
|
53 |
<tr [% IF row.stock_error %] class="error"[% ELSE %]class="listrow"[% END %]> |
|
54 |
<td>[% loop.count %]</td> |
|
55 |
<td>[% row.warehousedescription | html %]</td> |
|
56 |
<td>[% row.bindescription | html %]</td> |
|
57 |
<td>[% row.chargenumber | html %]</td> |
|
58 |
[% IF INSTANCE_CONF.get_show_bestbefore %] |
|
59 |
<td>[% row.bestbefore | html %]</td> |
|
60 |
[% END %] |
|
61 |
|
|
62 |
[%- IF delivered %] |
|
63 |
|
|
64 |
<td>[% LxERP.format_amount(row.stock_qty) | html %]</td> |
|
65 |
<td> |
|
66 |
[% row.stock_unit | html %] |
|
67 |
[% L.hidden_tag("unit", row.stock_unit, class="data-unit") %] |
|
68 |
</td> |
|
69 |
|
|
70 |
[%- ELSE %] |
|
71 |
|
|
72 |
<td>[% row.available_qty | html %]</td> |
|
73 |
<td> |
|
74 |
[% L.input_tag("qty", row.stock_qty ? LxERP.format_amount(row.stock_qty) |
|
75 |
: (WHCONTENTS.size == 1) && (!row.stock_qty) ? LxERP.format_amount(do_qty) |
|
76 |
: "", class="numeric data-qty", size="12") %]</td> |
|
77 |
<td>[% L.select_tag("unit_" _ loop.count, part.unit_obj.convertible_units, value_key="name", default=row.stock_unit, class="data-unit") %]</td> |
|
78 |
|
|
79 |
[%- END %] |
|
80 |
<td style="display:none"> |
|
81 |
[% L.hidden_tag("warehouse_id", row.warehouse_id, class="data-warehouse-id") %] |
|
82 |
[% L.hidden_tag("bin_id", row.bin_id, class="data-bin-id") %] |
|
83 |
[% L.hidden_tag("chargenumber", row.chargenumber, class="data-chargenumber") %] |
|
84 |
[% L.hidden_tag("delivery_order_items_stock_id", row.delivery_order_items_stock_id, class="data-stock-id") %] |
|
85 |
[% L.hidden_tag("bestbefore", row.bestbefore, class="data-bestbefore") IF INSTANCE_CONF.get_show_bestbefore %] |
|
86 |
</td> |
|
87 |
</tr> |
|
88 |
|
|
89 |
[%- END %] |
|
90 |
</table> |
|
91 |
</p> |
|
92 |
|
|
93 |
<hr size="3" noshade> |
|
94 |
|
|
95 |
<p>[% L.button_tag('kivi.DeliveryOrder.save_updated_stock()', LxERP.t8('Save')) IF !delivered %]</p> |
|
96 |
|
|
97 |
[%- END %] |
|
98 |
</form> |
|
99 |
|
|
100 |
|
Auch abrufbar als: Unified diff
Controller: DeliveryOrder: stock_dialog um Einlagern erweitert (WIP)