Fix für Bug 1081. Bei Buchung einer Einkaufsrechnung geht das Rabatt verloren. 1...
[kivitendo-erp.git] / bin / mozilla / ic.pl
index dd8cc46..52d5c8b 100644 (file)
@@ -1241,6 +1241,13 @@ sub generate_report {
                                        'column_defs'    => \%column_defs,
                                        'data'           => $form->{parts});
 
+  CVar->add_custom_variables_to_report('module'         => 'IC',
+                                       'sub_module'     => sub { $_[0]->{ioi} },
+                                       'trans_id_field' => 'ioi_id',
+                                       'configs'        => $cvar_configs,
+                                       'column_defs'    => \%column_defs,
+                                       'data'           => $form->{parts});
+
   my @subtotal_columns = qw(sellprice listprice lastcost);
   my %subtotals = map { $_ => 0 } ('onhand', @subtotal_columns);
   my %totals    = map { $_ => 0 } @subtotal_columns;
@@ -1294,7 +1301,7 @@ sub generate_report {
 
     # set module stuff
     if ($ref->{module} eq 'oe') {
-      my $edit_oe_link = build_std_url("script=oe.pl", 'action=edit', 'type=' . E($ref->{customer_id} ne '' ? 'sales_order' : 'purchase_order'), 'id=' . E($ref->{trans_id}), 'callback');
+      my $edit_oe_link = build_std_url("script=oe.pl", 'action=edit', 'type=' . E($ref->{cv} eq 'vendor' ? 'purchase_order' : 'sales_order'), 'id=' . E($ref->{trans_id}), 'callback');
       $row->{ordnumber}{link} = $edit_oe_link;
       $row->{quonumber}{link} = $edit_oe_link if (!$ref->{ordnumber});
 
@@ -1538,7 +1545,8 @@ sub form_header {
 
   $form->{CUSTOM_VARIABLES} = CVar->get_custom_variables('module' => 'IC', 'trans_id' => $form->{id});
 
-  CVar->render_inputs('variables' => $form->{CUSTOM_VARIABLES}) if (scalar @{ $form->{CUSTOM_VARIABLES} });
+  CVar->render_inputs('variables' => $form->{CUSTOM_VARIABLES}, show_disabled_message => 1)
+    if (scalar @{ $form->{CUSTOM_VARIABLES} });
 
   $form->header;
   #print $form->parse_html_template('ic/form_header', { ALL_PRICE_FACTORS => $form->{ALL_PRICE_FACTORS},
@@ -1753,13 +1761,8 @@ sub save {
   # check if there is a description
   $form->isblank("description", $locale->text("Part Description missing!"));
 
-  if ($form->{obsolete}) {
-    $form->error(
-      $locale->text(
-        "Inventory quantity must be zero before you can set this $form->{item} obsolete!"
-      ))
-      if ($form->{onhand} * 1);
-  }
+  $form->error($locale->text("Inventory quantity must be zero before you can set this $form->{item} obsolete!"))
+    if $form->{obsolete} && $form->{onhand} * 1 && $form->{item} ne 'service';
 
   if (!$form->{buchungsgruppen_id}) {
     $form->error($locale->text("Parts must have an entry type.") . " " .