]> wagnertech.de Git - mfinanz.git/commitdiff
Merge branch 'master' of github.com:kivitendo/kivitendo-erp
authorJan Büren <jan@kivitendo-premium.de>
Thu, 30 Oct 2014 12:50:32 +0000 (13:50 +0100)
committerJan Büren <jan@kivitendo-premium.de>
Thu, 30 Oct 2014 12:50:32 +0000 (13:50 +0100)
SL/Controller/DeliveryPlan.pm
SL/DB/OrderItem.pm

index fc402fcc6fd75682a87b4c8d64edbe66ab018eca..01c3d8bad5dbe029f7afe0ee84e0a564ecc87004 100644 (file)
@@ -22,6 +22,7 @@ my %sort_columns = (
   partnumber        => t8('Part Number'),
   qty               => t8('Qty'),
   shipped_qty       => t8('shipped'),
+  delivered_qty     => t8('transferred out'),
   not_shipped_qty   => t8('not shipped'),
   ordnumber         => t8('Order'),
   customer          => t8('Customer'),
@@ -46,7 +47,7 @@ sub prepare_report {
   my $report      = SL::ReportGenerator->new(\%::myconfig, $::form);
   $self->{report} = $report;
 
-  my @columns     = qw(reqdate customer ordnumber partnumber description qty shipped_qty not_shipped_qty);
+  my @columns     = qw(reqdate customer ordnumber partnumber description qty shipped_qty not_shipped_qty delivered_qty);
   my @sortable    = qw(reqdate customer ordnumber partnumber description);
 
   my %column_defs = (
@@ -58,6 +59,7 @@ sub prepare_report {
     qty               => {      sub => sub { $_[0]->qty_as_number . ' ' . $_[0]->unit                                        } },
     shipped_qty       => {      sub => sub { $::form->format_amount(\%::myconfig, $_[0]->shipped_qty, 2) . ' ' . $_[0]->unit } },
     not_shipped_qty   => {      sub => sub { $::form->format_amount(\%::myconfig, $_[0]->qty - $_[0]->shipped_qty, 2) . ' ' . $_[0]->unit } },
+    delivered_qty     => {      sub => sub { $::form->format_amount(\%::myconfig, $_[0]->delivered_qty, 2) . ' ' . $_[0]->unit } },
     ordnumber         => {      sub => sub { $_[0]->order->ordnumber                                                         },
                            obj_link => sub { $self->link_to($_[0]->order)                                                    } },
     customer          => {      sub => sub { $_[0]->order->customer->name                                                    },
index e75c78f5ffcbddf28191e006af23c819f777439e..75d5951d6c89d8760f903a2d13613602a6912754 100644 (file)
@@ -34,4 +34,20 @@ sub shipped_qty {
   return sum(map { AM->convert_unit($_->unit => $self->unit) * $_->qty } @doi);
 }
 
+sub delivered_qty {
+  my ($self) = @_;
+
+  my $d_orders = $self->order->linked_records(direction => 'to', to => 'SL::DB::DeliveryOrder');
+  my @d_orders_delivered;
+
+  foreach (@$d_orders) {
+    push (@d_orders_delivered, $_) if $_->delivered;
+  }
+
+  my @doi_delivered      = grep { $_->parts_id == $self->parts_id } map { $_->orderitems } @d_orders_delivered;
+
+  require SL::AM;
+  return sum(map { AM->convert_unit($_->unit => $self->unit) * $_->qty } @doi_delivered);
+}
+
 1;