X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;ds=sidebyside;f=SL%2FPriceSource%2FPricegroup.pm;h=62fabf5185c2fba4f04c76518cb7e09407614a7b;hb=f16b77358a0cbedf9681c6ea95bd2a076b8b78a9;hp=532b1fffa3530d029a330e855e51635c09cfb08b;hpb=ad97dcb6d19e5614df187fab4bbec485dc799451;p=kivitendo-erp.git diff --git a/SL/PriceSource/Pricegroup.pm b/SL/PriceSource/Pricegroup.pm index 532b1fffa..62fabf518 100644 --- a/SL/PriceSource/Pricegroup.pm +++ b/SL/PriceSource/Pricegroup.pm @@ -20,10 +20,21 @@ sub available_prices { my $item = $self->record_item; + my $query = [ parts_id => $item->parts_id, price => { gt => 0 } ]; + + # add a pricegroup_filter for obsolete pricegroups, unless part of an + # existing pricegroup where that pricegroup was actually used. + if ( $self->record->id and $item->active_price_source =~ m/^pricegroup/ ) { + my ($pricegroup_id) = $item->active_price_source =~ m/^pricegroup\/(\d+)$/; + push(@{$query}, or => [ 'pricegroup.obsolete' => 0, 'pricegroup_id' => $pricegroup_id ]); + } else { + push(@{$query}, 'pricegroup.obsolete' => 0); + } + my $prices = SL::DB::Manager::Price->get_all( - query => [ parts_id => $item->parts_id, price => { gt => 0 } ], + query => $query, with_objects => 'pricegroup', - sort_by => 'pricegroup.id', + sort_by => 'pricegroup.sortkey', ); return () unless @$prices;