Nummernkreis für Erzeugnisse
authorNiclas Zimmermann <niclas@kivitendo-premium.de>
Thu, 18 Apr 2013 11:47:23 +0000 (13:47 +0200)
committerNiclas Zimmermann <niclas@kivitendo-premium.de>
Thu, 18 Apr 2013 11:47:23 +0000 (13:47 +0200)
Für Erzeugnisse gibt es jetzt einen eigenen Nummernkreis. Lässt
man das Feld frei, wird weiterhin der Nummernkreis von Waren auch
für Erzeugnisse verwendet.

SL/AM.pm
SL/TransNumber.pm
locale/de/all
templates/webpages/am/edit_defaults.html

index af2c25f..502ebd9 100644 (file)
--- a/SL/AM.pm
+++ b/SL/AM.pm
@@ -1084,6 +1084,7 @@ sub save_defaults {
         vendornumber       = ?,
         articlenumber      = ?,
         servicenumber      = ?,
+        assemblynumber     = ?,
         sdonumber          = ?,
         pdonumber          = ?,
         curr               = ?,
@@ -1097,6 +1098,7 @@ sub save_defaults {
                 $form->{sqnumber},        $form->{rfqnumber},
                 $form->{customernumber},  $form->{vendornumber},
                 $form->{articlenumber},   $form->{servicenumber},
+                $form->{assemblynumber},
                 $form->{sdonumber},       $form->{pdonumber},
                 $currency,
                 $form->{businessnumber},  $form->{weightunit},
index 210abc0..859ca68 100644 (file)
@@ -69,8 +69,9 @@ sub _get_filters {
   } elsif ($type =~ /part|service|assembly/) {
     $filters{trans_number}  = "partnumber";
     $filters{numberfield}   = $type eq 'service' ? 'servicenumber' : 'articlenumber';
+    $filters{numberfield}   = $type eq 'assembly' ? 'assemblynumber' : $filters{numberfield};
     $filters{table}         = "parts";
-    $filters{where}         = 'COALESCE(inventory_accno_id, 0) ' . ($type eq 'service' ? '=' : '<>') . ' 0';
+    $filters{where}         = 'COALESCE(inventory_accno_id, 0) ' . ($type eq 'service' ? '= 0' : '<> 0 OR assembly');
   }
 
   return %filters;
@@ -129,6 +130,10 @@ SQL
   ($business_number) = selectfirst_array_query($form, $self->dbh, qq|SELECT customernumberinit FROM business WHERE id = ?|, $self->business_id) if $self->business_id;
   my $number         = $business_number;
   ($number)          = selectfirst_array_query($form, $self->dbh, qq|SELECT $filters{numberfield} FROM defaults|)                               if !$number;
+  if ($filters{numberfield} eq 'assemblynumber' and length($number) < 1) {
+    $filters{numberfield} = 'articlenumber';
+    ($number)          = selectfirst_array_query($form, $self->dbh, qq|SELECT $filters{numberfield} FROM defaults|)                               if !$number;
+  }
   $number          ||= '';
   my $sequence       = SL::PrefixedNumber->new(number => $number);
 
index 4b0b6d7..6a6dee5 100644 (file)
@@ -1110,6 +1110,7 @@ $self->{texts} = {
   'Languages and translations'  => 'Sprachen und Übersetzungen',
   'Last Action'                 => 'Letzte Aktivität',
   'Last Article Number'         => 'Letzte Artikelnummer',
+  'Last Assembly Number'        => 'Letzte Erzeugnisnummer',
   'Last Cost'                   => 'Einkaufspreis',
   'Last Credit Note Number'     => 'Letzte Gutschriftnummer',
   'Last Customer Number'        => 'Letzte Kundennummer',
index 36033db..248953c 100644 (file)
     <tr>
      <th align="right" nowrap>[% 'Last RFQ Number' | $T8 %]</th>
      <td><input name="rfqnumber" size="10" value="[% HTML.escape(defaults_rfqnumber) %]"></td>
+     <th align="right" nowrap>[% 'Last Assembly Number' | $T8 %]</th>
+     <td><input name="assemblynumber" size="10" value="[% HTML.escape(defaults_assemblynumber) %]"></td>
     </tr>
 
     <tr>
      <th align="right" nowrap>[% 'Last Sales Delivery Order Number' | $T8 %]</th>
      <td><input name="sdonumber" size="10" value="[% HTML.escape(defaults_sdonumber) %]"></td>
+    </tr>
+
+    <tr>
      <th align="right" nowrap>[% 'Last Purchase Delivery Order Number' | $T8 %]</th>
      <td><input name="pdonumber" size="10" value="[% HTML.escape(defaults_pdonumber) %]"></td>
     </tr>