Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 527e86b3

Von Tamino Steinert vor mehr als 2 Jahren hinzugefügt

  • ID 527e86b360e3b89cea34a79c53d630b7aff2dd10
  • Vorgänger fa5899cf
  • Nachfolger 13b8f24a

Controller: DeliveryOrder: stock_dialog um Einlagern erweitert (WIP)

Unterschiede anzeigen:

SL/Controller/DeliveryOrder.pm
use SL::DB::Shipto;
use SL::DB::Translation;
use SL::DB::TransferType;
use SL::DB::Warehouse;
use SL::Helper::CreatePDF qw(:all);
use SL::Helper::PrintOptions;
......
$self->merge_stock_data($stock_info, \@contents, $part, $unit);
my @collection = (
{ 'description' => 'foo_1', 'id' => '1',
'key_1' => [
{ 'id' => 3, 'description' => "bar_1",
'key_2' => [
{ 'id' => 1, 'value' => "foobar_1", },
{ 'id' => 2, 'value' => "foobar_2", },
],
},
{ 'id' => 4, 'description' => "bar_2",
'key_2' => [],
},
],
},
{ 'description' => 'foo_2', 'id' => '2',
'key_1' => [
{ 'id' => 1, 'description' => "bar_1",
'key_2' => [
{ 'id' => 3, 'value' => "foobar_3", },
{ 'id' => 4, 'value' => "foobar_4", },
],
},
{ 'id' => 2, 'description' => "bar_2",
'stock' => [
{ 'id' => 5, 'value' => "test_5", },
],
},
],
},
);
$self->render("delivery_order/stock_dialog", { layout => 0 },
WHCONTENTS => $self->order->delivered ? $stock_info : \@contents,
WAREHOUSES => SL::DB::Manager::Warehouse->get_all(with_objects=> ["bins",]),
COLLECTION => \@collection,
part => $part,
do_qty => $qty,
do_unit => $unit->unit,
delivered => $self->order->delivered,
row => $row,
item_id => $item_id,
in_out => $inout,
);
}
SL/DB/DeliveryOrder/TypeData.pm
edit => "purchase_delivery_order_edit",
view => "purchase_delivery_order_edit | purchase_delivery_order_view",
},
stock_direction => {
in_out => 'in',
in => 1,
out => 0,
},
},
SUPPLIER_DELIVERY_ORDER_TYPE() => {
text => {
templates/webpages/delivery_order/stock_dialog.html
[%- USE HTML %]
[%- USE LxERP %]
[%- USE L %]
<form>
[%- IF delivered %]
[%- SET RO = ' readonly' %]
[%- END %]
[% PROCESS "delivery_order/stock_dialog/_stock_delivered_dialog.html" %]
[%- ELSE %]
<table>
<tr>
......
</tr>
</table>
[%- UNLESS WHCONTENTS.size %]
<p>[% 'There are no items in stock.' | $T8 %]</p>
[%- ELSE %]
[% L.hidden_tag("in_out", in_out) %]
[% L.hidden_tag("parts_id", parts_id) %]
[% L.hidden_tag("do_qty", do_qty) %]
......
[% L.hidden_tag("row", row, class="data-row") %]
[% L.hidden_tag("item_id", item_id) %]
[%- IF in_out == "in" %]
<p>
<table id="stock-in-out-table">
<tr class="listheading">
<th>&nbsp;</th>
<th>[% 'Warehouse' | $T8 %]</th>
<th>[% 'Bin' | $T8 %]</th>
<th>[% 'Charge Number' | $T8 %]</th>
[% IF INSTANCE_CONF.get_show_bestbefore %]
<th>[% 'Best Before' | $T8 %]</th>
[% END %]
[%- UNLESS delivered %]
<th align="right">[% 'Available qty' | $T8 %]</th>
[%- END %]
<th align="right">[% 'Qty' | $T8 %]</th>
<th align="right">[% 'Unit' | $T8 %]</th>
</tr>
[%- FOREACH row = WHCONTENTS %]
<tr [% IF row.stock_error %] class="error"[% ELSE %]class="listrow"[% END %]>
<td>[% loop.count %]</td>
<td>[% row.warehousedescription | html %]</td>
<td>[% row.bindescription | html %]</td>
<td>[% row.chargenumber | html %]</td>
[% IF INSTANCE_CONF.get_show_bestbefore %]
<td>[% row.bestbefore | html %]</td>
[% END %]
[%- IF delivered %]
<td>[% LxERP.format_amount(row.stock_qty) | html %]</td>
<td>
[% row.stock_unit | html %]
[% L.hidden_tag("unit", row.stock_unit, class="data-unit") %]
</td>
[%- ELSE %]
<td>[% row.available_qty | html %]</td>
<td>
[% L.input_tag("qty", row.stock_qty ? LxERP.format_amount(row.stock_qty)
: (WHCONTENTS.size == 1) && (!row.stock_qty) ? LxERP.format_amount(do_qty)
: "", class="numeric data-qty", size="12") %]</td>
<td>[% L.select_tag("unit_" _ loop.count, part.unit_obj.convertible_units, value_key="name", default=row.stock_unit, class="data-unit") %]</td>
[%- END %]
<td style="display:none">
[% L.hidden_tag("warehouse_id", row.warehouse_id, class="data-warehouse-id") %]
[% L.hidden_tag("bin_id", row.bin_id, class="data-bin-id") %]
[% L.hidden_tag("chargenumber", row.chargenumber, class="data-chargenumber") %]
[% L.hidden_tag("delivery_order_items_stock_id", row.delivery_order_items_stock_id, class="data-stock-id") %]
[% L.hidden_tag("bestbefore", row.bestbefore, class="data-bestbefore") IF INSTANCE_CONF.get_show_bestbefore %]
</td>
</tr>
<table id="stock-info-table">
[%- PROCESS "delivery_order/stock_dialog/_stock_info_table.html" %]
</table>
</p>
[%- END %]
<p>
<table id="stock-in-out-table">
[%- IF in_out == "in" %]
[%- PROCESS "delivery_order/stock_dialog/_stock_in_table.html" %]
[%- ELSE %]
[%- PROCESS "delivery_order/stock_dialog/_stock_out_table.html" %]
[%- END %]
</table>
</p>
<hr size="3" noshade>
<p>[% L.button_tag('kivi.DeliveryOrder.save_updated_stock()', LxERP.t8('Save')) IF !delivered %]</p>
<p>[% L.button_tag('kivi.DeliveryOrder.save_updated_stock()', LxERP.t8('Save')) %]</p>
[%- END %]
</form>
templates/webpages/delivery_order/stock_dialog/_stock_delivered_dialog.html
[%- USE T8 %]
[%- USE HTML %]
[%- USE LxERP %]
[%- USE L %]
[%- IF delivered %]
[%- SET RO = ' readonly' %]
[%- END %]
<table>
<tr>
<td>[% 'Part Number' | $T8 %]</td>
<td>[% part.partnumber | html %]</td>
</tr>
<tr>
<td>[% 'Description' | $T8 %]</td>
<td>[% part.description | html %]</td>
</tr>
<tr>
<td>[% 'Qty according to delivery order' | $T8 %]</td>
<td>[% LxERP.format_amount(do_qty) %] [% do_unit | html %]</td>
</tr>
</table>
[%- UNLESS WHCONTENTS.size %]
<p>[% 'There are no items in stock.' | $T8 %]</p>
[%- ELSE %]
[% L.hidden_tag("in_out", in_out) %]
[% L.hidden_tag("parts_id", parts_id) %]
[% L.hidden_tag("do_qty", do_qty) %]
[% L.hidden_tag("do_unit", do_unit) %]
[% L.hidden_tag("row", row, class="data-row") %]
[% L.hidden_tag("item_id", item_id) %]
<p>
<table id="stock-in-out-table">
<tr class="listheading">
<th>&nbsp;</th>
<th>[% 'Warehouse' | $T8 %]</th>
<th>[% 'Bin' | $T8 %]</th>
<th>[% 'Charge Number' | $T8 %]</th>
[% IF INSTANCE_CONF.get_show_bestbefore %]
<th>[% 'Best Before' | $T8 %]</th>
[% END %]
[%- UNLESS delivered %]
<th align="right">[% 'Available qty' | $T8 %]</th>
[%- END %]
<th align="right">[% 'Qty' | $T8 %]</th>
<th align="right">[% 'Unit' | $T8 %]</th>
</tr>
[%- FOREACH row = WHCONTENTS %]
<tr [% IF row.stock_error %] class="error"[% ELSE %]class="listrow"[% END %]>
<td>[% loop.count %]</td>
<td>[% row.warehousedescription | html %]</td>
<td>[% row.bindescription | html %]</td>
<td>[% row.chargenumber | html %]</td>
[% IF INSTANCE_CONF.get_show_bestbefore %]
<td>[% row.bestbefore | html %]</td>
[% END %]
[%- IF delivered %]
<td>[% LxERP.format_amount(row.stock_qty) | html %]</td>
<td>
[% row.stock_unit | html %]
[% L.hidden_tag("unit", row.stock_unit, class="data-unit") %]
</td>
[%- ELSE %]
<td>[% row.available_qty | html %]</td>
<td>
[% L.input_tag("qty", row.stock_qty ? LxERP.format_amount(row.stock_qty)
: (WHCONTENTS.size == 1) && (!row.stock_qty) ? LxERP.format_amount(do_qty)
: "", class="numeric data-qty", size="12") %]</td>
<td>[% L.select_tag("unit_" _ loop.count, part.unit_obj.convertible_units, value_key="name", default=row.stock_unit, class="data-unit") %]</td>
[%- END %]
<td style="display:none">
[% L.hidden_tag("warehouse_id", row.warehouse_id, class="data-warehouse-id") %]
[% L.hidden_tag("bin_id", row.bin_id, class="data-bin-id") %]
[% L.hidden_tag("chargenumber", row.chargenumber, class="data-chargenumber") %]
[% L.hidden_tag("delivery_order_items_stock_id", row.delivery_order_items_stock_id, class="data-stock-id") %]
[% L.hidden_tag("bestbefore", row.bestbefore, class="data-bestbefore") IF INSTANCE_CONF.get_show_bestbefore %]
</td>
</tr>
[%- END %]
</table>
</p>
<hr size="3" noshade>
<p>[% L.button_tag('kivi.DeliveryOrder.save_updated_stock()', LxERP.t8('Save')) IF !delivered %]</p>
[%- END %]
</form>
templates/webpages/delivery_order/stock_dialog/_stock_in_table.html
<tr class="listheading">
<th>[% 'Warehouse' | $T8 %]</th>
<th>[% 'Bin' | $T8 %]</th>
<th align="right">[% 'Qty' | $T8 %]</th>
<th align="right">[% 'Unit' | $T8 %]</th>
</tr>
<tr>
[% L.multi_level_select_tag(
"test_tag", WAREHOUSES, 2, surround_tag="td",
level_1={
name="warehouse.id",
value_key="id",
title_key="description",
},
level_2={
object_key="bins",
name="bin.id",
value_key="id",
title_key="description",
},
) %]
<td>
[% L.input_tag("qty", LxERP.format_amount(do_qty), class="numeric data-qty", size="12") %]</td>
<td>[% L.select_tag("unit_" _ loop.count, part.unit_obj.convertible_units, value_key="name", default=row.stock_unit, class="data-unit") %]</td>
<td style="display:none">
[% L.hidden_tag("warehouse_id", row.warehouse_id, class="data-warehouse-id") %]
[% L.hidden_tag("bin_id", row.bin_id, class="data-bin-id") %]
[% L.hidden_tag("chargenumber", row.chargenumber, class="data-chargenumber") %]
[% L.hidden_tag("delivery_order_items_stock_id", row.delivery_order_items_stock_id, class="data-stock-id") %]
[% L.hidden_tag("bestbefore", row.bestbefore, class="data-bestbefore") IF INSTANCE_CONF.get_show_bestbefore %]
</td>
</tr>
<tr>
[% L.multi_level_select_tag("multi_select_foo_bar_foobar", COLLECTION, 3,
surround_tag="td",
level_1={
name="foo.id",
value_key="id",
title_key="description",
default="2",
},
level_2={
object_key="key_1",
name="bar.id",
value_key="id",
title_key="description",
default="1",
},
level_3={
object_key="key_2",
name="foobar.id",
value_key="id",
title_key="value",
default="4",
},
) %]
</tr>
templates/webpages/delivery_order/stock_dialog/_stock_info_table.html
<tr class="listheading">
<th>&nbsp;</th>
<th>[% 'Warehouse' | $T8 %]</th>
<th>[% 'Bin' | $T8 %]</th>
<th>[% 'Charge Number' | $T8 %]</th>
[% IF INSTANCE_CONF.get_show_bestbefore %]
<th>[% 'Best Before' | $T8 %]</th>
[% END %]
<th align="right">[% 'Available qty' | $T8 %]</th>
</tr>
[%- FOREACH row = WHCONTENTS %]
<tr [% IF row.stock_error %] class="error"[% ELSE %]class="listrow"[% END %]>
<td>[% loop.count %]</td>
<td>[% row.warehousedescription | html %]</td>
<td>[% row.bindescription | html %]</td>
<td>[% row.chargenumber | html %]</td>
[% IF INSTANCE_CONF.get_show_bestbefore %]
<td>[% row.bestbefore | html %]</td>
[% END %]
<td>[% row.available_qty | html %]</td>
<td>
[% row.stock_unit | html %]
</td>
</tr>
[%- END %]
templates/webpages/delivery_order/stock_dialog/_stock_out_table.html
[%- USE T8 %]
[%- USE HTML %]
[%- USE LxERP %]
[%- USE L %]
[%- IF delivered %]
[%- SET RO = ' readonly' %]
[%- END %]
<table>
<tr>
<td>[% 'Part Number' | $T8 %]</td>
<td>[% part.partnumber | html %]</td>
</tr>
<tr>
<td>[% 'Description' | $T8 %]</td>
<td>[% part.description | html %]</td>
</tr>
<tr>
<td>[% 'Qty according to delivery order' | $T8 %]</td>
<td>[% LxERP.format_amount(do_qty) %] [% do_unit | html %]</td>
</tr>
</table>
[%- UNLESS WHCONTENTS.size %]
<p>[% 'There are no items in stock.' | $T8 %]</p>
[%- ELSE %]
[% L.hidden_tag("in_out", in_out) %]
[% L.hidden_tag("parts_id", parts_id) %]
[% L.hidden_tag("do_qty", do_qty) %]
[% L.hidden_tag("do_unit", do_unit) %]
[% L.hidden_tag("row", row, class="data-row") %]
[% L.hidden_tag("item_id", item_id) %]
<p>
<table id="stock-in-out-table">
<tr class="listheading">
<th>&nbsp;</th>
<th>[% 'Warehouse' | $T8 %]</th>
<th>[% 'Bin' | $T8 %]</th>
<th>[% 'Charge Number' | $T8 %]</th>
[% IF INSTANCE_CONF.get_show_bestbefore %]
<th>[% 'Best Before' | $T8 %]</th>
[% END %]
[%- UNLESS delivered %]
<th align="right">[% 'Available qty' | $T8 %]</th>
[%- END %]
<th align="right">[% 'Qty' | $T8 %]</th>
<th align="right">[% 'Unit' | $T8 %]</th>
</tr>
[%- FOREACH row = WHCONTENTS %]
<tr [% IF row.stock_error %] class="error"[% ELSE %]class="listrow"[% END %]>
<td>[% loop.count %]</td>
<td>[% row.warehousedescription | html %]</td>
<td>[% row.bindescription | html %]</td>
<td>[% row.chargenumber | html %]</td>
[% IF INSTANCE_CONF.get_show_bestbefore %]
<td>[% row.bestbefore | html %]</td>
[% END %]
[%- IF delivered %]
<td>[% LxERP.format_amount(row.stock_qty) | html %]</td>
<td>
[% row.stock_unit | html %]
[% L.hidden_tag("unit", row.stock_unit, class="data-unit") %]
</td>
[%- ELSE %]
<td>[% row.available_qty | html %]</td>
<td>
[% L.input_tag("qty", row.stock_qty ? LxERP.format_amount(row.stock_qty)
: (WHCONTENTS.size == 1) && (!row.stock_qty) ? LxERP.format_amount(do_qty)
: "", class="numeric data-qty", size="12") %]</td>
<td>[% L.select_tag("unit_" _ loop.count, part.unit_obj.convertible_units, value_key="name", default=row.stock_unit, class="data-unit") %]</td>
[%- END %]
<td style="display:none">
[% L.hidden_tag("warehouse_id", row.warehouse_id, class="data-warehouse-id") %]
[% L.hidden_tag("bin_id", row.bin_id, class="data-bin-id") %]
[% L.hidden_tag("chargenumber", row.chargenumber, class="data-chargenumber") %]
[% L.hidden_tag("delivery_order_items_stock_id", row.delivery_order_items_stock_id, class="data-stock-id") %]
[% L.hidden_tag("bestbefore", row.bestbefore, class="data-bestbefore") IF INSTANCE_CONF.get_show_bestbefore %]
</td>
</tr>
[%- END %]
</table>
</p>
<hr size="3" noshade>
<p>[% L.button_tag('kivi.DeliveryOrder.save_updated_stock()', LxERP.t8('Save')) IF !delivered %]</p>
[%- END %]
</form>

Auch abrufbar als: Unified diff