From 3b7bda404f28890a4c3796d76619fc5b0c4a26bb Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jan=20B=C3=BCren?= Date: Tue, 25 Nov 2014 19:22:06 +0100 Subject: [PATCH] =?utf8?q?=C3=9Cbersetzungsspalte=20verbessert=20und=20Ber?= =?utf8?q?echnungsfuntkion=20f=C3=BCr=20stocked=5Fqty=20in=20Lieferbericht?= =?utf8?q?e?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- SL/DB/OrderItem.pm | 15 +++++++++++++++ locale/de/all | 4 ++-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/SL/DB/OrderItem.pm b/SL/DB/OrderItem.pm index ffae434d1..81e6cd39e 100644 --- a/SL/DB/OrderItem.pm +++ b/SL/DB/OrderItem.pm @@ -6,6 +6,7 @@ use List::Util qw(sum); use SL::DB::MetaSetup::OrderItem; use SL::DB::Manager::OrderItem; +use SL::DB::DeliveryOrderItemsStock; use SL::DB::Helper::CustomVariables ( sub_module => 'orderitems', cvars_alias => 1, @@ -66,6 +67,20 @@ sub value_of_goods { return ($self->_delivered_qty * $self->sellprice * (1 - $self->discount ) / $price_factor); } +sub stocked_qty { + my ($self) = @_; + + my $d_orders = $self->order->linked_records(direction => 'to', to => 'SL::DB::DeliveryOrder'); + my @doi = grep { $_->parts_id == $self->parts_id } map { $_->orderitems } @$d_orders; + + return 0 if !@doi; + + my $doi_stocks = SL::DB::Manager::DeliveryOrderItemsStock->get_all(query => [delivery_order_item_id => [ map {$_->id} @doi ]]); + + require SL::AM; + return sum(map { AM->convert_unit($_->unit => $self->unit) * $_->qty } @{ $doi_stocks }); +} + sub taxincluded { my ($self) = @_; diff --git a/locale/de/all b/locale/de/all index cb3148bfb..5d20862fd 100755 --- a/locale/de/all +++ b/locale/de/all @@ -1013,7 +1013,7 @@ $self->{texts} = { 'Error in database control file \'%s\': %s' => 'Fehler in Datenbankupgradekontrolldatei \'%s\': %s', 'Error in position #1: You must either assign no stock at all or the full quantity of #2 #3.' => 'Fehler in Position #1: Sie müssen einer Position entweder gar keinen Lagereingang oder die vollständige im Lieferschein vermerkte Menge von #2 #3 zuweisen.', 'Error in position #1: You must either assign no transfer at all or the full quantity of #2 #3.' => 'Fehler in Position #1: Sie müssen einer Position entweder gar keinen Lagerausgang oder die vollständige im Lieferschein vermerkte Menge von #2 #3 zuweisen.', - 'Error in row #1: The quantity you entered is bigger than the stocked quantity.' => 'Fehler in Zeile #1: Die angegebene Menge ist größer als die vorhandene Menge.', + 'Error in row #1: The quantity you entered is bigger than the stocked quantity.' => 'Fehler in Zeile #1: Die angegebene Menge ist größer als die vorhandene Menge.',us 'Error message from the database driver:' => 'Fehlermeldung des Datenbanktreibers:', 'Error message from the database: #1' => 'Fehlermeldung der Datenbank: #1', 'Error when saving: #1' => 'Fehler beim Speichern: #1', @@ -3096,7 +3096,7 @@ $self->{texts} = { 'purchase_order_list' => 'lieferantenauftragsliste', 'quarter' => 'Vierteljährliche (quartalsweise) Abgabe', 'quotation_list' => 'angebotsliste', - 'really transferred out' => 'Ausgelagert mit Auslagern im Beleg und genaue Positionsmenge', + 'really transferred out' => 'wirkliche ausgelagerte Menge im Lieferschein', 'release_material' => 'Materialausgabebe', 'reorder item' => 'Eintrag umsortieren', 'repeated execution' => 'wiederholte Ausführung', -- 2.20.1