From: Thomas Heck Date: Fri, 7 Sep 2012 11:46:36 +0000 (+0200) Subject: Lieferdatum u. Auftragsdatum beim 'als neu speichern' von Aufträgen neuberechnen X-Git-Tag: release-3.0.0beta1~247 X-Git-Url: http://wagnertech.de/git?a=commitdiff_plain;h=133c31d7bbecce664b623043df1aa93285603f16;p=kivitendo-erp.git Lieferdatum u. Auftragsdatum beim 'als neu speichern' von Aufträgen neuberechnen * Auftragsdatum wird aufs aktuelle Datum gesetzt * Lieferdatum wird genau so wie beim Erstellen eines neuen Auftrags gesetzt. Das ist: Auftragsdatum (sprich aktuelles Datum in unserem Fall) + 1 Tag aufgerundet auf den nächsten Arbeitstag (Freitag -> Montag) fixt #1959 --- diff --git a/bin/mozilla/oe.pl b/bin/mozilla/oe.pl index 73c70b30f..72ad0d799 100644 --- a/bin/mozilla/oe.pl +++ b/bin/mozilla/oe.pl @@ -1629,11 +1629,25 @@ sub save_as_new { delete($form->{$idx}); } - # clear reqdate unless changed - if ($form->{reqdate} && $form->{id}) { + # clear reqdate and transdate unless changed + if ( $form->{reqdate} && $form->{id} ) { my $saved_order = OE->retrieve_simple(id => $form->{id}); - if ($saved_order && $saved_order->{reqdate} eq $form->{reqdate}) { - delete $form->{reqdate}; + if ( $saved_order && $saved_order->{reqdate} eq $form->{reqdate} && $saved_order->{transdate} eq $form->{transdate} ) { + + my $dbh = $form->get_standard_dbh; + + my $wday = (localtime(time))[6]; + my $next_workday = $wday == 5 ? 3 : $wday == 6 ? 2 : 1; + + my $query = 'SELECT + date(current_date + interval \''. $next_workday .' days\') AS reqdate, + date(current_date) AS transdate'; + my $ref = selectfirst_hashref_query($form, $dbh, $query); + + map( + { $form->{$_} = $ref->{$_} } + keys %{$ref} + ); } }