'.
            '';
          if ($section->{header_generator}) {
            $OUT .= &{$section->{header_generator}}();
          } else {
            $OUT .=  '| Ref | '.
                     'Description | '.
                        ( $unitprices 
                          ? 'Unit Price | '.
                            'Quantity | '
                          : ''
                        ). 
                      'Amount | ';
          }
            '
';
          my $lastref = 0;
          foreach my $line (
            grep { ( scalar(@sections) > 1 
                   ? $section->{'description'} eq $_->{'section'}->{'description'}
                   : 1
                 ) }
            @detail_items )
          {
            $OUT .=
              ''.
                       '| '. 
                       ( $line->{'ref'} ne $lastref ? $line->{'ref'} : '' ). ' | '.
                       ''. $line->{'description'}. ' | '.
                       ( $unitprices 
                           ? ''. $line->{'unit_amount'}. ' | '.
                             ''. $line->{'quantity'}. ' | '
                           : ''
                       ).
                       ''. $line->{'amount'}. ' | ';
            }
            $OUT .= '
';
            $lastref = $line->{'ref'};
            if ( @{$line->{'ext_description'} } ) {
              $OUT .= ' | ' : '>';
              $OUT .= '';
              foreach my $ext_desc ( @{$line->{'ext_description'} } ) {
                $OUT .=
                  ''.
                    '| /i ? '' : 'colspan=99' ). '>'.
                      '  '. $ext_desc.
                    ' | '.
                  ' '
              }
              $OUT .= '  |  | 
';
            }
          }
          if (scalar(@sections) > 1) {
            my $style = 'border-top: 3px solid #000000;'.
                        'border-bottom: 3px solid #000000;';
            $OUT .=
              ''.
              qq(|   | );
            if ($section->{total_generator}) {
              $OUT .= &{$section->{total_generator}}($section);
            } else {
              $OUT .= qq(' : '>' ).
                      $section->{'description'}. ' Total  | '.
                      qq().
                      $section->{'subtotal'}. ' | ';
            }
            $OUT .= '
';
          }
        } 
        if ($section->{'posttotal'}) {
          $OUT .= '| ';
          $OUT .=
            ' '. $section->{'posttotal'}.
            ''.
            ' ';
          $OUT .= '  | 
';
        }
      }
      my $style = 'border-top: 3px solid #000000;';
      my $linenum = 0;
      foreach my $line ( @total_items ) {
        $style .= 'border-bottom: 3px solid #000000;'
          if ++$linenum == scalar(@total_items);
        $OUT .=
          '';
        if ($section->{total_line_generator}) {
          $OUT .= &{$section->{total_line_generator}}($line);
        } else {
          $OUT .= qq(|   | ).
                  qq(' : '>' ).
                    $line->{'total_item'}. ' | '.
                  qq().
                    $line->{'total_amount'}. ' | ';
        }
        $OUT .= '
';
        $style='';
      }
    %>