PriceSource: Erste Version
[kivitendo-erp.git] / SL / PriceSource / Pricegroup.pm
1 package SL::PriceSource::Pricegroup;
2
3 use strict;
4 use parent qw(SL::PriceSource::Base);
5
6 use SL::PriceSource::Price;
7 use SL::Locale::String;
8
9 sub name { 'pricegroup' }
10
11 sub description { t8('Pricegroup') }
12
13 sub available_prices {
14   my ($self, %params) = @_;
15
16   my $item = $self->record_item;
17
18   my $prices = SL::DB::Manager::Price->get_all(
19     query        => [ parts_id => $item->parts_id, price => { gt => 0 } ],
20     with_objects => 'pricegroup',
21     order_by     => 'pricegroun.id',
22   );
23
24   return () unless @$prices;
25
26   return map {
27     $self->make_price($_);
28   } @$prices;
29 }
30
31 sub price_from_source {
32   my ($self, $source, $spec) = @_;
33
34   my $price = SL::DB::Manager::Price->find_by(id => $spec);
35
36   return $self->make_price($price);
37 }
38
39 sub make_price {
40   my ($self, $price_obj) = @_;
41
42   SL::PriceSource::Price->new(
43     price        => $price_obj->price,
44     source       => 'pricegroup/' . $price_obj->id,
45     description  => $price_obj->pricegroup->pricegroup,
46     price_source => $self,
47   )
48 }
49
50 1;