From bbb98e034f3fe6f7ca508f3482a51c6d8a120c92 Mon Sep 17 00:00:00 2001 From: Moritz Bunkus Date: Mon, 22 Jun 2015 12:52:43 +0200 Subject: [PATCH] SL::DB::{Invoice,DeliveryOrder}->new_from: manuelles Filtern von Items via coderef --- SL/DB/DeliveryOrder.pm | 7 +++++++ SL/DB/Invoice.pm | 7 +++++++ 2 files changed, 14 insertions(+) diff --git a/SL/DB/DeliveryOrder.pm b/SL/DB/DeliveryOrder.pm index 3afd59162..94725a8d0 100644 --- a/SL/DB/DeliveryOrder.pm +++ b/SL/DB/DeliveryOrder.pm @@ -160,6 +160,7 @@ sub new_from { } @{ $items }; + @items = grep { $params{item_filter}->($_) } @items if $params{item_filter}; @items = grep { $_->qty * 1 } @items if $params{skip_items_zero_qty}; @items = grep { $_->qty >=0 } @items if $params{skip_items_negative_qty}; @@ -245,6 +246,12 @@ a quantity of 0 are not affected by this option. If trueish then items with a quantity of 0 are skipped. +=item C + +An optional code reference that is called for each item with the item +as its sole parameter. Items for which the code reference returns a +falsish value will be skipped. + =item C An optional hash reference. If it exists then it is passed to C diff --git a/SL/DB/Invoice.pm b/SL/DB/Invoice.pm index 82cf66b5e..8bfc918e8 100644 --- a/SL/DB/Invoice.pm +++ b/SL/DB/Invoice.pm @@ -203,6 +203,7 @@ sub new_from { $current_invoice_item; } @{ $items }; + @items = grep { $params{item_filter}->($_) } @items if $params{item_filter}; @items = grep { $_->qty * 1 } @items if $params{skip_items_zero_qty}; @items = grep { $_->qty >=0 } @items if $params{skip_items_negative_qty}; @@ -411,6 +412,12 @@ a quantity of 0 are not affected by this option. If trueish then items with a quantity of 0 are skipped. +=item C + +An optional code reference that is called for each item with the item +as its sole parameter. Items for which the code reference returns a +falsish value will be skipped. + =item C An optional hash reference. If it exists then it is passed to C -- 2.20.1