From: Moritz Bunkus Date: Fri, 20 Jun 2008 09:47:57 +0000 (+0000) Subject: ------------------------------------------------------------------------ X-Git-Tag: release-2.6.0beta1~125 X-Git-Url: http://wagnertech.de/git?a=commitdiff_plain;h=4a9b86a56fa151d2fde072202ccabd5fc1fbaacc;p=kivitendo-erp.git ------------------------------------------------------------------------ r7133 | mbunkus | 2008-06-20 10:19:46 +0200 (Fri, 20 Jun 2008) | 1 line Verhindern, dass Lieferscheine mehrfach ein- bzw. ausgelagert werden. ------------------------------------------------------------------------ --- diff --git a/SL/DO.pm b/SL/DO.pm index 18fba890a..44050b89b 100644 --- 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; diff --git a/bin/mozilla/do.pl b/bin/mozilla/do.pl index 719d65b79..9cc026ccf 100644 --- a/bin/mozilla/do.pl +++ b/bin/mozilla/do.pl @@ -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; diff --git a/locale/de/all b/locale/de/all index d1d0cb32a..feb4f00fd 100644 --- a/locale/de/all +++ b/locale/de/all @@ -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 ("[% HTML.escape(memberfile) %]"). 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 ("[% HTML.escape(memberfile) %]"). 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ö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.', diff --git a/locale/de/do b/locale/de/do index b8d6e6d0a..953a00b52 100644 --- a/locale/de/do +++ b/locale/de/do @@ -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ügend eingelagert, um insgesamt #5 auszulagern.', 'To (email)' => 'An', 'Transaction description' => 'Vorgangsbezeichnung', diff --git a/locale/de/login b/locale/de/login index a30bcba15..303863bf1 100644 --- a/locale/de/login +++ b/locale/de/login @@ -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ü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ügend eingelagert, um insgesamt #5 auszulagern.', diff --git a/locale/de/oe b/locale/de/oe index 73f82a0a4..3de86dafb 100644 --- a/locale/de/oe +++ b/locale/de/oe @@ -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ügend eingelagert, um insgesamt #5 auszulagern.', 'To (email)' => 'An', 'Total' => 'Summe', diff --git a/locale/de/todo b/locale/de/todo index e9ac42e2d..8d285dca2 100644 --- a/locale/de/todo +++ b/locale/de/todo @@ -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ügend eingelagert, um insgesamt #5 auszulagern.', 'To (email)' => 'An',