Lieferschein: Serienummer ist Pflichtfeld, wenn Artikel eine Serienummer hat
authorJan Büren <jan@kivitendo.de>
Tue, 13 Jul 2021 07:26:32 +0000 (09:26 +0200)
committerJan Büren <jan@kivitendo.de>
Tue, 13 Jul 2021 07:26:32 +0000 (09:26 +0200)
bin/mozilla/do.pl
bin/mozilla/io.pl
doc/changelog
locale/de/all
locale/en/all

index 576f8aa..0905b48 100644 (file)
@@ -924,6 +924,12 @@ sub save {
   remove_emptied_rows();
   validate_items();
 
+  # check for serial number if part needs one
+  for my $i (1 .. $form->{rowcount} - 1) {
+    next unless $form->{"has_sernumber_$i"};
+    $form->isblank("serialnumber_$i",
+                   $locale->text('Serial Number missing in Row') . " $i");
+  }
   # if the name changed get new values
   my $vc = $form->{vc};
   if (($form->{"previous_${vc}_id"} || $form->{"${vc}_id"}) != $form->{"${vc}_id"}) {
index 9982d9e..fda1fd6 100644 (file)
@@ -471,7 +471,7 @@ sub display_row {
       map { $form->{"${_}_${i}"} = $form->format_amount(\%myconfig, $form->{"${_}_${i}"}) } qw(sellprice discount lastcost);
       push @hidden_vars, grep { defined $form->{"${_}_${i}"} } qw(sellprice discount not_discountable price_factor_id lastcost);
       push @hidden_vars, "stock_${stock_in_out}_sum_qty", "stock_${stock_in_out}";
-      push @hidden_vars, qw(delivery_order_items_id converted_from_orderitems_id converted_from_delivery_order_items_id);
+      push @hidden_vars, qw(delivery_order_items_id converted_from_orderitems_id converted_from_delivery_order_items_id has_sernumber);
     }
 
     my @HIDDENS = map { value => $_}, (
@@ -1728,6 +1728,7 @@ sub _update_part_information {
     $form->{"weight_$i"}            = $info->{weight};
     $form->{"part_type_$i"}         = $info->{part_type};
     $form->{"classification_id_$i"} = $info->{classification_id};
+    $form->{"has_sernumber_$i"}     = $info->{has_sernumber};
   }
 
   $main::lxdebug->leave_sub();
index 924f551..b9ffb40 100644 (file)
@@ -23,6 +23,8 @@ Kleinere neue Features und Detailverbesserungen:
   Ist die Option ausgestellt, ist das Verhalten nach dem Buchen wie zuvor
   und es gibt eine zweite Aktion "Buchen und Dokument hochladen", mit der
   in den Dokumenten-Tab gesprungen werden kann.
+- Seriennummer ist jetzt ein Pflichtfeld für Lieferscheine (Einkauf und Verkauf),
+  falls die Ware im Beleg in den Stammdaten mit "Hat eine Serienummer" markiert ist.
 
 Bugfixes (Tracker: https://www.kivitendo.de/redmine):
 
index 01f1e44..7507bc2 100755 (executable)
@@ -2994,6 +2994,7 @@ $self->{texts} = {
   'September'                   => 'September',
   'Serial No.'                  => 'Seriennummer',
   'Serial Number'               => 'Seriennummer',
+  'Serial Number missing in Row' => 'Seriennummer fehlt in Position',
   'Server'                      => 'Server',
   'Server control'              => 'Serversteuerung',
   'Service'                     => 'Dienstleistung',
index 65e80cc..65d9487 100644 (file)
@@ -2994,6 +2994,7 @@ $self->{texts} = {
   'September'                   => '',
   'Serial No.'                  => '',
   'Serial Number'               => '',
+  'Serial Number missing in Row' => '',
   'Server'                      => '',
   'Server control'              => '',
   'Service'                     => '',