X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FDB%2FDeliveryOrderItem.pm;h=7850a6445576a8355885cb56631b29109a408f01;hb=5349a1ed016ae603b39d73747eccc6792707db1c;hp=8b836ee1563b64f62f90f5274e57f8f6b239c87e;hpb=82515b2d93dc5632f24d6e0b6f8f05f3fd19fbb0;p=kivitendo-erp.git diff --git a/SL/DB/DeliveryOrderItem.pm b/SL/DB/DeliveryOrderItem.pm index 8b836ee15..7850a6445 100644 --- a/SL/DB/DeliveryOrderItem.pm +++ b/SL/DB/DeliveryOrderItem.pm @@ -3,18 +3,100 @@ package SL::DB::DeliveryOrderItem; use strict; use SL::DB::MetaSetup::DeliveryOrderItem; - -for my $field (qw(qty sellprice discount base_qty lastcost price_factor marge_price_factor)) { - __PACKAGE__->attr_number($field, places => -2); -} +use SL::DB::Helper::ActsAsList; +use SL::DB::Helper::LinkedRecords; +use SL::DB::Helper::RecordItem; +use SL::DB::Helper::CustomVariables ( + sub_module => 'delivery_order_items', + cvars_alias => 1, + overloads => { + parts_id => { + class => 'SL::DB::Part', + module => 'IC', + } + }, +); __PACKAGE__->meta->make_manager_class; +__PACKAGE__->meta->add_relationship( + 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 part { - # canonial alias for parts. - return shift->parts; +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;