X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FDB%2FAssortmentItem.pm;h=6ed474f43465c7ec5631150b67046fe5a28c5ac7;hb=11aeaa07186197c61dfe610d2a5c981754fd2e9d;hp=1f53f969f041587bca1ad4e4ce1e5a6508cc25b4;hpb=f2b44f136e8193bbda860c377eeb04cd932b713b;p=kivitendo-erp.git diff --git a/SL/DB/AssortmentItem.pm b/SL/DB/AssortmentItem.pm index 1f53f969f..6ed474f43 100644 --- a/SL/DB/AssortmentItem.pm +++ b/SL/DB/AssortmentItem.pm @@ -11,11 +11,22 @@ use Rose::DB::Object::Helpers qw(clone); __PACKAGE__->meta->initialize; -sub linetotal { - my ($self) = @_; - - return 0 unless $self->qty > 0 and $self->part->sellprice > 0; - return $self->qty * $self->part->sellprice / ( $self->part->price_factor_id ? $self->part->price_factor->factor : 1 ); +sub linetotal_sellprice { + my ($self, %params) = @_; + + my $sellprice = $self->part->sellprice; + if ($params{pricegroup}) { + my $pricegroup = SL::DB::Manager::Pricegroup->find_by( pricegroup => $params{pricegroup}); + die "Can't find pricegroup with name " . $params{pricegroup} unless $pricegroup; + $params{pricegroup_id} = $pricegroup->id if $pricegroup; + } + if ($params{pricegroup_id}) { + my $price = SL::DB::Manager::Price->find_by(pricegroup_id => $params{pricegroup_id}, parts_id => $self->part->id); + $sellprice = $price->price if $price; + } + + return 0 unless $self->qty > 0 and $sellprice > 0; + return $self->qty * $sellprice / ( $self->part->price_factor_id ? $self->part->price_factor->factor : 1 ); } sub linetotal_lastcost {