------------------------------------------------------------------------
authorMoritz Bunkus <m.bunkus@linet-services.de>
Fri, 20 Jun 2008 09:47:57 +0000 (09:47 +0000)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Fri, 20 Jun 2008 09:47:57 +0000 (09:47 +0000)
r7133 | mbunkus | 2008-06-20 10:19:46 +0200 (Fri, 20 Jun 2008) | 1 line

Verhindern, dass Lieferscheine mehrfach ein- bzw. ausgelagert werden.
------------------------------------------------------------------------

SL/DO.pm
bin/mozilla/do.pl
locale/de/all
locale/de/do
locale/de/login
locale/de/oe
locale/de/todo

index 18fba89..44050b8 100644 (file)
--- a/SL/DO.pm
+++ b/SL/DO.pm
@@ -1010,4 +1010,25 @@ sub get_shipped_qty {
   return %ship;
 }
 
+sub is_marked_as_delivered {
+  $main::lxdebug->enter_sub();
+
+  my $self     = shift;
+  my %params   = @_;
+
+  Common::check_params(\%params, qw(id));
+
+  my $myconfig    = \%main::myconfig;
+  my $form        = $main::form;
+
+  my $dbh         = $params{dbh} || $form->get_standard_dbh($myconfig);
+
+  my ($delivered) = selectfirst_array_query($form, $dbh, qq|SELECT delivered FROM delivery_orders WHERE id = ?|, conv_i($params{id}));
+
+  $main::lxdebug->leave_sub();
+
+  return $delivered ? 1 : 0;
+}
+
+
 1;
index 719d65b..9cc026c 100644 (file)
@@ -1060,6 +1060,10 @@ sub set_stock_out {
 sub transfer_in {
   $lxdebug->enter_sub();
 
+  if (DO->is_marked_as_delivered('id' => $form->{id})) {
+    $form->show_generic_error($locale->text('The parts for this delivery order have already been transferred in.'), 'back_button' => 1);
+  }
+
   my @part_ids = map { $form->{"id_${_}"} } grep { $form->{"id_${_}"} && $form->{"stock_in_${_}"} } (1 .. $form->{rowcount});
   my @all_requests;
 
@@ -1116,6 +1120,10 @@ sub transfer_in {
 sub transfer_out {
   $lxdebug->enter_sub();
 
+  if (DO->is_marked_as_delivered('id' => $form->{id})) {
+    $form->show_generic_error($locale->text('The parts for this delivery order have already been transferred out.'), 'back_button' => 1);
+  }
+
   my @part_ids = map { $form->{"id_${_}"} } grep { $form->{"id_${_}"} && $form->{"stock_out_${_}"} } (1 .. $form->{rowcount});
   my @all_requests;
 
index d1d0cb3..feb4f00 100644 (file)
@@ -1415,6 +1415,8 @@ aktualisieren wollen?',
   'The name must only consist of letters, numbers and underscores and start with a letter.' => 'Der Name darf nur aus Buchstaben (keine Umlaute), Ziffern und Unterstrichen bestehen und muss mit einem Buchstaben beginnen.',
   'The old file containing the user information is still present (&quot;[% HTML.escape(memberfile) %]&quot;). Do you want to migrate these users into the database? If not then you will not be able to log in with any of the users present in the old file. ' => 'Die alte Datei mit den Benutzerdaten existiert in dieser Installation noch immer (&quot;[% HTML.escape(memberfile) %]&quot;). Wollen Sie diese Benutzer in die neue Authentifizierungsdatenbank migrieren lassen? Falls nicht, so werden Sie sich nicht mehr mit den Benutzerdaten aus der alten Mitgliedsdatei anmelden k&ouml;nnen.',
   'The option field is empty.'  => 'Das Optionsfeld ist leer.',
+  'The parts for this delivery order have already been transferred in.' => 'Die Artikel dieses Lieferscheins wurden bereits eingelagert.',
+  'The parts for this delivery order have already been transferred out.' => 'Die Artikel dieses Lieferscheins wurden bereits ausgelagert.',
   'The parts have been removed.' => 'Die Waren wurden aus dem Lager entnommen.',
   'The parts have been stocked.' => 'Die Artikel wurden eingelagert.',
   'The parts have been transferred.' => 'Die Waren wurden umgelagert.',
index b8d6e6d..953a00b 100644 (file)
@@ -242,6 +242,8 @@ $self->{texts} = {
   'The creation of the authentication database failed:' => 'Das Anlegen der Authentifizierungsdatenbank schlug fehl:',
   'The delivery order has not been marked as delivered. The warehouse contents have not changed.' => 'Der Lieferschein wurde nicht als geliefert markiert. Der Lagerinhalt wurde nicht verändert.',
   'The list has been printed.'  => 'Die Liste wurde ausgedruckt.',
+  'The parts for this delivery order have already been transferred in.' => 'Die Artikel dieses Lieferscheins wurden bereits eingelagert.',
+  'The parts for this delivery order have already been transferred out.' => 'Die Artikel dieses Lieferscheins wurden bereits ausgelagert.',
   'There is not enough available of \'#1\' at warehouse \'#2\', bin \'#3\', #4, for the transfer of #5.' => 'Von \'#1\' ist in Lager \'#2\', Lagerplatz \'#3\', #4, nicht gen&uuml;gend eingelagert, um insgesamt #5 auszulagern.',
   'To (email)'                  => 'An',
   'Transaction description'     => 'Vorgangsbezeichnung',
index a30bcba..303863b 100644 (file)
@@ -307,6 +307,8 @@ $self->{texts} = {
   'The delivery order has not been marked as delivered. The warehouse contents have not changed.' => 'Der Lieferschein wurde nicht als geliefert markiert. Der Lagerinhalt wurde nicht verändert.',
   'The follow-up date is missing.' => 'Das Wiedervorlagedatum fehlt.',
   'The list has been printed.'  => 'Die Liste wurde ausgedruckt.',
+  'The parts for this delivery order have already been transferred in.' => 'Die Artikel dieses Lieferscheins wurden bereits eingelagert.',
+  'The parts for this delivery order have already been transferred out.' => 'Die Artikel dieses Lieferscheins wurden bereits ausgelagert.',
   'The session is invalid or has expired.' => 'Die Session ist ung&uuml;ltig oder abgelaufen.',
   'The subject is missing.'     => 'Der Betreff fehlt.',
   'There is not enough available of \'#1\' at warehouse \'#2\', bin \'#3\', #4, for the transfer of #5.' => 'Von \'#1\' ist in Lager \'#2\', Lagerplatz \'#3\', #4, nicht gen&uuml;gend eingelagert, um insgesamt #5 auszulagern.',
index 73f82a0..3de86da 100644 (file)
@@ -281,6 +281,8 @@ $self->{texts} = {
   'The creation of the authentication database failed:' => 'Das Anlegen der Authentifizierungsdatenbank schlug fehl:',
   'The delivery order has not been marked as delivered. The warehouse contents have not changed.' => 'Der Lieferschein wurde nicht als geliefert markiert. Der Lagerinhalt wurde nicht verändert.',
   'The list has been printed.'  => 'Die Liste wurde ausgedruckt.',
+  'The parts for this delivery order have already been transferred in.' => 'Die Artikel dieses Lieferscheins wurden bereits eingelagert.',
+  'The parts for this delivery order have already been transferred out.' => 'Die Artikel dieses Lieferscheins wurden bereits ausgelagert.',
   'There is not enough available of \'#1\' at warehouse \'#2\', bin \'#3\', #4, for the transfer of #5.' => 'Von \'#1\' ist in Lager \'#2\', Lagerplatz \'#3\', #4, nicht gen&uuml;gend eingelagert, um insgesamt #5 auszulagern.',
   'To (email)'                  => 'An',
   'Total'                       => 'Summe',
index e9ac42e..8d285dc 100644 (file)
@@ -304,6 +304,8 @@ $self->{texts} = {
   'The delivery order has not been marked as delivered. The warehouse contents have not changed.' => 'Der Lieferschein wurde nicht als geliefert markiert. Der Lagerinhalt wurde nicht verändert.',
   'The follow-up date is missing.' => 'Das Wiedervorlagedatum fehlt.',
   'The list has been printed.'  => 'Die Liste wurde ausgedruckt.',
+  'The parts for this delivery order have already been transferred in.' => 'Die Artikel dieses Lieferscheins wurden bereits eingelagert.',
+  'The parts for this delivery order have already been transferred out.' => 'Die Artikel dieses Lieferscheins wurden bereits ausgelagert.',
   'The subject is missing.'     => 'Der Betreff fehlt.',
   'There is not enough available of \'#1\' at warehouse \'#2\', bin \'#3\', #4, for the transfer of #5.' => 'Von \'#1\' ist in Lager \'#2\', Lagerplatz \'#3\', #4, nicht gen&uuml;gend eingelagert, um insgesamt #5 auszulagern.',
   'To (email)'                  => 'An',