my ($self, $myconfig, $reference_date) = @_;
 
-  my $reference_date = $reference_date ? conv_dateq($reference_date) . '::DATE' : 'current_date';
+  $reference_date = $reference_date ? conv_dateq($reference_date) . '::DATE' : 'current_date';
 
-  my $dbh            = $self->get_standard_dbh($myconfig);
-  my $query          = qq|SELECT ${reference_date} + terms_netto FROM payment_terms WHERE id = ?|;
-  my ($duedate)      = selectrow_query($self, $dbh, $query, $self->{payment_id});
+  my $dbh         = $self->get_standard_dbh($myconfig);
+  my $query       = qq|SELECT ${reference_date} + terms_netto FROM payment_terms WHERE id = ?|;
+  my ($duedate)   = selectrow_query($self, $dbh, $query, $self->{payment_id});
 
   $main::lxdebug->leave_sub();
 
   my $transdate = quote_db_date($params->{transdate});
 
   my $query =
-    qq|SELECT c.id, c.accno, c.description, c.link, tk.taxkey_id, tk.tax_id | .
+    qq|SELECT c.id, c.accno, c.description, c.link, c.charttype, tk.taxkey_id, tk.tax_id | .
     qq|FROM chart c | .
     qq|LEFT JOIN taxkeys tk ON | .
     qq|(tk.id = (SELECT id FROM taxkeys | .
 
     }
   }
 
-  $form->{datepaid} = $form->{invdate};
-
   # total payments, don't move we need it here
   for my $i (1 .. $form->{paidaccounts}) {
     if ($form->{type} eq "credit_note") {
 
 
       my $application    = ($attachment =~ /(^\w+$)|\.(html|text|txt|sql)$/) ? "text" : "application";
       my $content_type   = SL::MIME->mime_type_from_ext($filename);
-      $content_type      = "${application}/${self->{format}}" if (!$content_type && $self->{format});
+      $content_type      = "${application}/$self->{format}" if (!$content_type && $self->{format});
       $content_type    ||= 'application/octet-stream';
 
       open(IN, $attachment);
 
   $auth->assert('customer_vendor_edit');
 
   CT->get_delivery(\%myconfig, \%$form );
+  $form->{IS_CUSTOMER} = $form->{db} eq 'customer';
 
   print $form->ajax_response_header(), $form->parse_html_template('ct/get_delivery');
 
 
   }
 
   $form->header();
+  # Fix für Bug 1082 Erwartet wird: 'abteilungsNAME--abteilungsID'
+  $form->{department} .= '--' . $form->{department_id};
+
   print $form->parse_html_template('do/form_header');
 
   $lxdebug->leave_sub();
 
   $form->{callback} = "gl.pl?action=add" unless $form->{callback};
 
   # we use this only to set a default date
+  # yep. aber er holt hier auch schon ALL_CHARTS. Aufwand / Nutzen? jb
   GL->transaction(\%myconfig, \%$form);
 
   map {
   my %charts = ();
   my $taxchart_init;
   foreach my $item (@{ $form->{ALL_CHARTS} }) {
+    if ($item->{charttype} eq 'H'){ #falls überschrift 
+      next;                         #überspringen (Bug 1150)
+    }
     my $key = $item->{accno} . "--" . $item->{tax_id};
     $taxchart_init = $item->{tax_id} unless (@chart_values);
     push(@chart_values, $key);
 
       } else {
 
         $sellprice             = $form->parse_amount(\%myconfig, $form->{"sellprice_$i"});
-        $form->{"discount_$i"} = 0 if $form->{"not_discountable_$i"};
+        # hier werden parts (Artikeleigenschaften) aus item_list (retrieve_item aus IS.pm)
+        # (item wahrscheinlich synonym für parts) entsprechend in die form geschrieben ...
+
+        # Wäre dieses Mapping nicht besser in retrieve_items aufgehoben? 
+        #(Eine Funktion bekommt Daten -> ARBEIT -> Rückgabe DATEN)
+        #  Das quot sieht doch auch nach Überarbeitung aus ... (hmm retrieve_items gibt es in IS und IR)
         map { $form->{item_list}[$i]{$_} =~ s/\"/"/g }    qw(partnumber description unit);
         map { $form->{"${_}_$i"} = $form->{item_list}[0]{$_} } keys %{ $form->{item_list}[0] };
+        
+        # ... deswegen muss die prüfung, ob es sich um einen nicht rabattierfähigen artikel handelt später erfolgen (Bug 1136)
+        $form->{"discount_$i"} = 0 if $form->{"not_discountable_$i"};
         $form->{payment_id} = $form->{"part_payment_id_$i"} if $form->{"part_payment_id_$i"} ne "";
 
         $form->{"marge_price_factor_$i"} = $form->{item_list}->[0]->{price_factor};
 
 [%- FOREACH row = DELIVERY %]
         <tr class="listrow[% loop.count % 2 %]">
           <td>[% HTML.escape(row.shiptoname) UNLESS loop.prev.shiptoname == row.shiptoname %] </td>
-          <td>[% IF row.id %]<a href='is.pl?action=edit&id=[% HTML.escape(row.id) %]'>[% END %][% HTML.escape(row.invnumber)   || ' ' %][% IF row.id %]</a>[% END %]</td>
+          <td>[% IF row.id %]<a href='[% IF IS_CUSTOMER %]is[% ELSE %]ir[% END %].pl?action=edit&id=[% HTML.escape(row.id) %]'>[% END %][% HTML.escape(row.invnumber)   || ' ' %][% IF row.id %]</a>[% END %]</td>
           <td>[% IF row.oe_id %]<a href='oe.pl?action=edit&type=sales_order&vc=customer&id=[% HTML.escape(row.oe_id) %]'>[% END %][% HTML.escape(row.ordnumber)   || ' ' %][% IF row.oe_id %]</a>[% END %]</td>
           <td>[% HTML.escape(row.transdate)   || ' ' %]</td>
           <td>[% HTML.escape(row.description) || ' ' %]</td>
 
 [%- FOREACH row = DELIVERY %]
         <tr class="listrow[% loop.count % 2 %]">
           <td>[% HTML.escape(row.shiptoname) UNLESS loop.prev.shiptoname == row.shiptoname %] </td>
-          <td>[% IF row.id %]<a href='is.pl?action=edit&id=[% HTML.escape(row.id) %]'>[% END %][% HTML.escape(row.invnumber)   || ' ' %][% IF row.id %]</a>[% END %]</td>
+          <td>[% IF row.id %]<a href='[% IF IS_CUSTOMER %]is[% ELSE %]ir[% END %].pl?action=edit&id=[% HTML.escape(row.id) %]'>[% END %][% HTML.escape(row.invnumber)   || ' ' %][% IF row.id %]</a>[% END %]</td>
           <td>[% IF row.oe_id %]<a href='oe.pl?action=edit&type=sales_order&vc=customer&id=[% HTML.escape(row.oe_id) %]'>[% END %][% HTML.escape(row.ordnumber)   || ' ' %][% IF row.oe_id %]</a>[% END %]</td>
           <td>[% HTML.escape(row.transdate)   || ' ' %]</td>
           <td>[% HTML.escape(row.description) || ' ' %]</td>
 
     <th class="listheading">Haben</th>
     <th class="listheading">Soll</th>
     <th class="listheading">Haben</th>
-  
+   </tr>
    [% FOREACH row = ROWS %]
     [% IF row.IS_CONTROL %]
      [% IF row.IS_COLSPAN_DATA %]<tr><td colspan="[% row.NUM_COLUMNS %]">[% row.data %]</td></tr>[% END %]
 
     <th class="listheading"><translate>Credit</translate></th>
     <th class="listheading"><translate>Debit</translate></th>
     <th class="listheading"><translate>Credit</translate></th>
-  
+   </tr>
    [% FOREACH row = ROWS %]
     [% IF row.IS_CONTROL %]
      [% IF row.IS_COLSPAN_DATA %]<tr><td colspan="[% row.NUM_COLUMNS %]">[% row.data %]</td></tr>[% END %]