Inventory Helper: Artikel laden und Fehlermeldung korrigiert
authorMartin Helmling martin.helmling@octosoft.eu <martin.helmling@octosoft.eu>
Mon, 12 Aug 2019 08:18:02 +0000 (10:18 +0200)
committerSven Schöling <s.schoeling@googlemail.com>
Fri, 27 Nov 2020 15:27:45 +0000 (16:27 +0100)
Damit beim Fehler der Name des Artikels kommt, muss dieser geladen
werden.
Im Fehlerstring wird zuerst der Fehler , dann der Text ausgegeben

SL/Helper/Inventory.pm
SL/X.pm
locale/de/all

index feb57e4..5fc15ea 100644 (file)
@@ -214,10 +214,9 @@ sub allocate {
 
     last if $rest_qty == 0;
   }
-
   if ($rest_qty > 0) {
     die SL::X::Inventory::Allocation->new(
-      error => 'not enough to allocate',
+      error => t8('not enough to allocate'),
       msg => t8("can not allocate #1 units of #2, missing #3 units", $qty, $part->displayable_name, $rest_qty),
     );
   } else {
@@ -243,7 +242,7 @@ sub allocate_for_assembly {
   my @allocations;
 
   for my $part_id (keys %parts_to_allocate) {
-    my $part = SL::DB::Part->new(id => $part_id);
+    my $part = SL::DB::Part->load_cached($part_id);
     push @allocations, allocate(%params, part => $part, qty => $parts_to_allocate{$part_id});
   }
 
diff --git a/SL/X.pm b/SL/X.pm
index 4acd3bb..c3533e2 100644 (file)
--- a/SL/X.pm
+++ b/SL/X.pm
@@ -33,12 +33,12 @@ use Exception::Class (
   'SL::X::Inventory' => {
     isa                 => 'SL::X::Base',
     fields              => [ qw(msg error) ],
-    defaults            => { error_template => [ '%s: %s', qw(msg error) ] },
+    defaults            => { error_template => [ '%s: %s', qw(msg) ] },
   },
   'SL::X::Inventory::Allocation' => {
     isa                 => 'SL::X::Base',
     fields              => [ qw(msg error) ],
-    defaults            => { error_template => [ '%s: %s', qw(msg error) ] },
+    defaults            => { error_template => [ '%s: %s', qw(msg) ] },
   },
 );
 
index b0954aa..ead6611 100755 (executable)
@@ -4121,6 +4121,7 @@ $self->{texts} = {
   'brutto'                      => 'brutto',
   'building data'               => 'Verarbeite Daten',
   'building report'             => 'Erstelle Bericht',
+  'can not allocate #1 units of #2, missing #3 units' => 'Kann keine #1 Einheiten von #2 belegen, es fehlen #3 Einheiten',
   'can only parse a pdf file'   => 'Kann nur eine gültige PDF-Datei verwenden.',
   'cash'                        => 'Ist-Versteuerung',
   'chargenumber #1'             => 'Chargennummer #1',
@@ -4249,6 +4250,7 @@ $self->{texts} = {
   'no tax_id in acc_trans'      => 'Keine tax_id in acc_trans',
   'not configured'              => 'nicht konfiguriert',
   'not delivered'               => 'nicht geliefert',
+  'not enough to allocate'      => 'Keine Verfügbarkeit',
   'not executed'                => 'nicht ausgeführt',
   'not running'                 => 'läuft nicht',
   'not set'                     => 'nicht gesetzt',