Top100 Editor deaktiviert, da er seit mehreren Versionen nicht mehr funktioniert.
[kivitendo-erp.git] / bin / mozilla / do.pl
index 719d65b..b4ccfe3 100644 (file)
@@ -409,7 +409,7 @@ sub orders {
 
   ($form->{ $form->{vc} }, $form->{"${form->{vc}}_id"}) = split(/--/, $form->{ $form->{vc} });
 
-  $form->{sort} ||= 'transdate';
+  report_generator_set_default_sort('transdate', 1);
 
   DO->transactions();
 
@@ -456,7 +456,8 @@ sub orders {
   );
 
   foreach my $name (qw(id transdate donumber ordnumber name employee shipvia)) {
-    $column_defs{$name}->{link} = $href . "&sort=$name";
+    my $sortdir                 = $form->{sort} eq $name ? 1 - $form->{sortdir} : $form->{sortdir};
+    $column_defs{$name}->{link} = $href . "&sort=$name&sortdir=$sortdir";
   }
 
   $form->{"l_type"} = "Y";
@@ -469,7 +470,7 @@ sub orders {
 
   $report->set_export_options('orders', @hidden_variables);
 
-  $report->set_sort_indicator($form->{sort}, 1);
+  $report->set_sort_indicator($form->{sort}, $form->{sortdir});
 
   my @options;
   if ($form->{customer}) {
@@ -648,15 +649,15 @@ sub invoice {
   check_do_access();
   $auth->assert($form->{type} eq 'purchase_delivery_order' ? 'vendor_invoice_edit' : 'invoice_edit');
 
-  $form->{deliverydate} = $form->{transdate};
-  $form->{transdate}    = $form->{invdate} = $form->current_date(\%myconfig);
-  $form->{duedate}      = $form->current_date(\%myconfig, $form->{invdate}, $form->{terms} * 1);
+  $form->{convert_from_do_ids} = $form->{id};
+  $form->{deliverydate}        = $form->{transdate};
+  $form->{transdate}           = $form->{invdate} = $form->current_date(\%myconfig);
+  $form->{duedate}             = $form->current_date(\%myconfig, $form->{invdate}, $form->{terms} * 1);
+  $form->{defaultcurrency}     = $form->get_default_currency(\%myconfig);
 
-  $form->{id}     = '';
-  $form->{closed} = 0;
   $form->{rowcount}--;
 
-  $form->{defaultcurrency} = $form->get_default_currency(\%myconfig);
+  delete @{$form}{qw(id closed delivered)};
 
   if ($form->{type} eq 'purchase_delivery_order') {
     $form->{title}  = $locale->text('Add Vendor Invoice');
@@ -740,12 +741,13 @@ sub invoice_multi {
                               'back_button' => 1);
   }
 
-  $form->{deliverydate}    = $form->{transdate};
-  $form->{transdate}       = $form->current_date(\%myconfig);
-  $form->{duedate}         = $form->current_date(\%myconfig, $form->{invdate}, $form->{terms} * 1);
-  $form->{type}            = "invoice";
-  $form->{closed}          = 0;
-  $form->{defaultcurrency} = $form->get_default_currency(\%myconfig);
+  $form->{convert_from_do_ids} = join ' ', @do_ids;
+  $form->{deliverydate}        = $form->{transdate};
+  $form->{transdate}           = $form->current_date(\%myconfig);
+  $form->{duedate}             = $form->current_date(\%myconfig, $form->{invdate}, $form->{terms} * 1);
+  $form->{type}                = "invoice";
+  $form->{closed}              = 0;
+  $form->{defaultcurrency}     = $form->get_default_currency(\%myconfig);
 
   my $buysell;
   if ($form->{type} eq 'purchase_delivery_order') {
@@ -1060,6 +1062,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 +1122,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;
 
@@ -1205,6 +1215,19 @@ sub transfer_out {
   $lxdebug->leave_sub();
 }
 
+sub mark_closed {
+  $lxdebug->enter_sub();
+
+  DO->close_orders('ids' => [ $form->{id} ]);
+
+  $form->{closed} = 1;
+
+  update();
+
+  $lxdebug->leave_sub();
+}
+
+
 sub yes {
   call_sub($form->{yes_nextsub});
 }