]> wagnertech.de Git - kivitendo-erp.git/blobdiff - bin/mozilla/oe.pl
Auftrags-Controller: Hack: Link zum neuen Controller aus Auftragsliste für Einkauf.
[kivitendo-erp.git] / bin / mozilla / oe.pl
index ea2cffadf766443ffdb35d75610b41ff30bd5635..c04eb1b45fb7e34d7a0dbdbd7f2d6ca65c82ca02 100644 (file)
@@ -839,7 +839,7 @@ sub orders {
 
   my @columns = (
     "transdate",               "reqdate",
-    "id",                      $ordnumber,
+    "id",                      $ordnumber,             "edit_new",
     "cusordnumber",            "customernumber",
     "name",                    "netamount",
     "tax",                     "amount",
@@ -866,7 +866,7 @@ sub orders {
   $form->{l_open}              = $form->{l_closed} = "Y" if ($form->{open}      && $form->{closed});
   $form->{l_delivered}         = "Y"                     if ($form->{delivered} && $form->{notdelivered});
   $form->{l_periodic_invoices} = "Y"                     if ($form->{periodic_invoices_active} && $form->{periodic_invoices_inactive});
-
+  $form->{l_edit_new}          = "Y"                     if (any { $form->{type} eq $_ } qw(sales_order purchase_order));
   map { $form->{"l_${_}"} = 'Y' } qw(order_probability expected_billing_date expected_netamount) if $form->{l_order_probability_expected_billing_date};
 
   my $attachment_basename;
@@ -947,6 +947,7 @@ sub orders {
     'expected_billing_date'   => { 'text' => $locale->text('Exp. bill. date'), },
     'expected_netamount'      => { 'text' => $locale->text('Exp. netamount'), },
     'payment_terms'           => { 'text' => $locale->text('Payment Terms'), },
+    'edit_new'                => { 'text' => $locale->text('Edit (new)'), },
     %column_defs_cvars,
   );
 
@@ -1072,6 +1073,7 @@ sub orders {
 
     foreach my $column (@columns) {
       next if ($column eq 'ids');
+      next if ($column eq 'edit_new');
       $row->{$column} = {
         'data'  => $oe->{$column},
         'align' => $column_alignment{$column},
@@ -1087,6 +1089,9 @@ sub orders {
 
     $row->{$ordnumber}->{link} = $edit_url . "&id=" . E($oe->{id}) . "&callback=${callback}";
 
+    $row->{edit_new}->{data}   = $oe->{ordnumber};
+    $row->{edit_new}->{link}   = build_std_url('script=controller.pl', 'action=Order/edit', "type=$form->{type}", 'id=' . E($oe->{id}));
+
     my $row_set = [ $row ];
 
     if (($form->{l_subtotal} eq 'Y')
@@ -1667,14 +1672,9 @@ sub save_as_new {
   if ( $form->{reqdate} && $form->{id} ) {
     my $saved_order = OE->retrieve_simple(id => $form->{id});
     if ( $saved_order && $saved_order->{reqdate} eq $form->{reqdate} && $saved_order->{transdate} eq $form->{transdate} ) {
-      my $extra_days   = $form->{type} eq 'sales_quotation' ? $::instance_conf->get_reqdate_interval : 1;
-      my $next_workday = DateTime->today_local->add(days => $extra_days);
-      my $day_of_week  = $next_workday->day_of_week;
-
-      $next_workday->add(days => (8 - $day_of_week)) if $day_of_week >= 6;
-
+      my $extra_days     = $form->{type} eq 'sales_quotation' ? $::instance_conf->get_reqdate_interval : 1;
+      $form->{reqdate}   = DateTime->today_local->next_workday(extra_days => $extra_days)->to_kivitendo;
       $form->{transdate} = DateTime->today_local->to_kivitendo;
-      $form->{reqdate}   = $next_workday->to_kivitendo;
     }
   }