X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FDB%2FDeliveryOrderItem.pm;h=7850a6445576a8355885cb56631b29109a408f01;hb=c5057972d03f3546494fabe72224785e5a0a1714;hp=3c5eef85c1ba3d9eeb168097f89fb6d52873f480;hpb=5a7ae14c769710c1de947b115cf2cd0c38d3df7e;p=kivitendo-erp.git diff --git a/SL/DB/DeliveryOrderItem.pm b/SL/DB/DeliveryOrderItem.pm index 3c5eef85c..7850a6445 100644 --- a/SL/DB/DeliveryOrderItem.pm +++ b/SL/DB/DeliveryOrderItem.pm @@ -3,8 +3,11 @@ package SL::DB::DeliveryOrderItem; use strict; use SL::DB::MetaSetup::DeliveryOrderItem; +use SL::DB::Helper::ActsAsList; +use SL::DB::Helper::LinkedRecords; +use SL::DB::Helper::RecordItem; use SL::DB::Helper::CustomVariables ( - sub_module => 'delivery_order_item', + sub_module => 'delivery_order_items', cvars_alias => 1, overloads => { parts_id => { @@ -15,16 +18,85 @@ use SL::DB::Helper::CustomVariables ( ); __PACKAGE__->meta->make_manager_class; + __PACKAGE__->meta->add_relationship( - unit_obj => { - type => 'many to one', - class => 'SL::DB::Unit', - column_map => { unit => 'name' }, + delivery_order_stock_entries => { + type => 'one to many', + class => 'SL::DB::DeliveryOrderItemsStock', + column_map => { id => 'delivery_order_item_id' }, + manager_args => { + with_objects => [ 'inventory' ] + }, }, ); __PACKAGE__->meta->initialize; +__PACKAGE__->configure_acts_as_list(group_by => [qw(delivery_order_id)]); + # methods +sub record { goto &delivery_order } + +sub displayable_delivery_order_info { + my ($self, $dec) = @_; + + $dec //= 2; + + $self->delivery_order->presenter->sales_delivery_order(display => 'inline') + . " " . $::form->format_amount(\%::myconfig, $self->qty, $dec) . " " . $self->unit + . " (" . $self->delivery_order->transdate->to_kivitendo . ")"; +}; + +sub effective_project { + my ($self) = @_; + + $self->project // $self->delivery_order->globalproject; +} + +__END__ + +=pod + +=encoding utf-8 + +=head1 NAME + +SL::DB::DeliveryOrderItem Model for the 'delivery_order_items' table + +=head1 SYNOPSIS + +This is a standard Rose::DB::Object based model and can be used as one. + +=head1 METHODS + +=over 4 + +=item C + +Returns a string with information about the delivery order item in relation to +its delivery order, specifically + +* the (HTML-linked) delivery order number + +* the qty and unit of the part in the delivery order + +* the date of the delivery order + +Doesn't include any part information, it is assumed that is already shown elsewhere. + +The method takes an optional argument "dec" which determines how many decimals to +round to, as used by format_amount. + + SL::DB::Manager::DeliveryOrderItem->get_first->displayable_delivery_order_info(0); + # 201601234 5 Stck (12.12.2016) + +=back + +=head1 AUTHORS + +G. Richardson Egrichardson@kivitendo-premium.deE + +=cut + 1;