From: Moritz Bunkus Date: Thu, 21 Jun 2007 08:49:24 +0000 (+0000) Subject: Waren-/Dienstleistungs-/Erzeugnisberichte auf die Verwendung von ReportGenerator... X-Git-Tag: release-2.4.3^2~83 X-Git-Url: http://wagnertech.de/git?a=commitdiff_plain;h=728729b6163701a522eff7f5396a2fc44a80fb64;p=kivitendo-erp.git Waren-/Dienstleistungs-/Erzeugnisberichte auf die Verwendung von ReportGenerator umgestellt. --- diff --git a/SL/IC.pm b/SL/IC.pm index ca37bcb8e..02d6b529b 100644 --- a/SL/IC.pm +++ b/SL/IC.pm @@ -1174,9 +1174,6 @@ sub all_parts { push(@assemblies, $ref); } $sth->finish; - - push(@assemblies, { id => $item->{id} }); - } # copy assemblies to $form->{parts} diff --git a/bin/mozilla/ic.pl b/bin/mozilla/ic.pl index 0c3023deb..4a333421f 100644 --- a/bin/mozilla/ic.pl +++ b/bin/mozilla/ic.pl @@ -32,7 +32,10 @@ #====================================================================== #$locale->text('ea'); +use POSIX qw(strftime); + use SL::IC; +use SL::ReportGenerator; #use SL::PE; @@ -44,6 +47,7 @@ our ($form, $locale, %myconfig, $lxdebug); require "bin/mozilla/io.pl"; require "bin/mozilla/common.pl"; +require "bin/mozilla/reportgenerator.pl"; 1; @@ -1509,12 +1513,12 @@ sub generate_report { $lxdebug->enter_sub(); my ($revers, $lastsort, $description); - my (@column_index, %column_header, %column_data, @columns, @options, @callbacks); - my ($totalsellprice, $totallastcost, $totallistprice, $subtotalonhand, $subtotalsellprice, $subtotallastcost, $subtotallistprice); - my ($colspan, $sameitem, $onhand, $align); - $revers = $form->{revers}; - $lastsort = $form->{lastsort}; + $form->{title} = (ucfirst $form->{searchitems}) . "s"; + $form->{title} = $locale->text($form->{title}); + + my $revers = $form->{revers}; + my $lastsort = $form->{lastsort}; # sorting and direction of sorting # ToDO: change this to the simpler field+direction method @@ -1586,34 +1590,22 @@ sub generate_report { l_soldtotal => $locale->text('soldtotal'), ); - # this local subfunction generates a callback token from the input key. - # easy to join into a callback later - sub callback_token { - map { /\w+$/; return "&$&=$form->{$&}" } @_; - } - my @itemstatus_keys = qw(active obsolete orphaned onhand short); - my @callback_keys = qw(onorder ordered rfq quoted bought sold partnumber partsgroup serialnumber description make model - drawing microfiche l_soldtotal l_deliverydate transdatefrom transdateto); - my $callback = "$form->{script}?action=generate_report"; - map { $callback .= "&$_=" . $form->escape($form->{$_}) } qw(login password searchitems itemstatus bom l_linetotal title); - + my @callback_keys = qw(onorder ordered rfq quoted bought sold partnumber partsgroup serialnumber description make model + drawing microfiche l_soldtotal l_deliverydate transdatefrom transdateto ean); + # calculate dependencies - for (@itemstatus_keys, @callback_keys) { + for (@itemstatus_keys, @callback_keys) { next if ($form->{itemstatus} ne $_ && !$form->{$_}); map { $form->{$_} = 'Y' } @{ $dependencies{$_} } if $dependencies{$_}; } # generate callback and optionstrings + my @options; for my $key (@itemstatus_keys, @callback_keys) { next if ($form->{itemstatus} ne $key && !$form->{$key}); push @options, $optiontexts{$key}; - push @callbacks, callback_token($key) if grep { $_ eq $key } @callback_keys;; } - my $option = $locale->text('Options') . ': ' . join(', ', grep $_, @options) . '
'; - $callback .= join '', grep $_, @callbacks; - - $lxdebug->message(0, $callback); IC->all_parts(\%myconfig, \%$form); @@ -1625,11 +1617,6 @@ sub generate_report { $description =~ s/\n/
/g; } - @columns = $form->sort_columns( - qw(partnumber description partsgroup bin onhand rop unit listprice linetotallistprice sellprice linetotalsellprice - lastcost linetotallastcost priceupdate weight image drawing microfiche invnumber ordnumber quonumber name serialnumber soldtotal deliverydate) - ); - if ($form->{l_linetotal}) { $form->{l_onhand} = "Y"; $form->{l_linetotalsellprice} = "Y" if $form->{l_sellprice}; @@ -1663,330 +1650,177 @@ sub generate_report { } } - $form->{l_lastcost} = "" - if ($form->{searchitems} eq 'assembly' && !$form->{bom}); - - foreach my $item (@columns) { - if ($form->{"l_$item"} eq "Y") { - push @column_index, $item; - - # add column to callback - $callback .= "&l_$item=Y"; - } - } - - if ($form->{l_subtotal} eq 'Y') { - $callback .= "&l_subtotal=Y"; - } - $column_header{partnumber} = - qq|{revers}&lastsort=$form->{lastsort}>| - . $locale->text('Part Number') - . qq||; - $column_header{description} = - qq|{revers}&lastsort=$form->{lastsort}>| - . $locale->text('Part Description') - . qq||; - $column_header{partsgroup} = - qq|| - . $locale->text('Group') - . qq||; - $column_header{bin} = - qq|| - . $locale->text('Bin') - . qq||; - $column_header{priceupdate} = - qq|| - . $locale->text('Updated') - . qq||; - $column_header{onhand} = - qq|{revers}&lastsort=$form->{lastsort}>| - . $locale->text('Qty') - . qq||; - $column_header{unit} = - qq|| . $locale->text('Unit') . qq||; - $column_header{listprice} = - qq|| - . $locale->text('List Price') - . qq||; - $column_header{lastcost} = - qq|| . $locale->text('Last Cost') . qq||; - $column_header{rop} = - qq|| . $locale->text('ROP') . qq||; - $column_header{weight} = - qq|| . $locale->text('Weight') . qq||; - - $column_header{invnumber} = - qq|| - . $locale->text('Invoice Number') - . qq||; - $column_header{ordnumber} = - qq|| - . $locale->text('Order Number') - . qq||; - $column_header{quonumber} = - qq|| - . $locale->text('Quotation') - . qq||; + $form->{l_lastcost} = "" if ($form->{searchitems} eq 'assembly' && !$form->{bom}); + + my @columns = + qw(partnumber description partsgroup bin onhand rop unit listprice linetotallistprice sellprice linetotalsellprice lastcost linetotallastcost + priceupdate weight image drawing microfiche invnumber ordnumber quonumber name serialnumber soldtotal deliverydate); + + my %column_defs = ( + 'bin' => { 'text' => $locale->text('Bin'), }, + 'deliverydate' => { 'text' => $locale->text('deliverydate'), }, + 'description' => { 'text' => $locale->text('Part Description'), }, + 'drawing' => { 'text' => $locale->text('Drawing'), }, + 'image' => { 'text' => $locale->text('Image'), }, + 'invnumber' => { 'text' => $locale->text('Invoice Number'), }, + 'lastcost' => { 'text' => $locale->text('Last Cost'), }, + 'linetotallastcost' => { 'text' => $locale->text('Extended'), }, + 'linetotallistprice' => { 'text' => $locale->text('Extended'), }, + 'linetotalsellprice' => { 'text' => $locale->text('Extended'), }, + 'listprice' => { 'text' => $locale->text('List Price'), }, + 'microfiche' => { 'text' => $locale->text('Microfiche'), }, + 'name' => { 'text' => $locale->text('Name'), }, + 'onhand' => { 'text' => $locale->text('Qty'), }, + 'ordnumber' => { 'text' => $locale->text('Order Number'), }, + 'partnumber' => { 'text' => $locale->text('Part Number'), }, + 'partsgroup' => { 'text' => $locale->text('Group'), }, + 'priceupdate' => { 'text' => $locale->text('Updated'), }, + 'quonumber' => { 'text' => $locale->text('Quotation'), }, + 'rop' => { 'text' => $locale->text('ROP'), }, + 'sellprice' => { 'text' => $locale->text('Sell Price'), }, + 'serialnumber' => { 'text' => $locale->text('Serial Number'), }, + 'soldtotal' => { 'text' => $locale->text('soldtotal'), }, + 'unit' => { 'text' => $locale->text('Unit'), }, + 'weight' => { 'text' => $locale->text('Weight'), }, + ); - $column_header{name} = - qq|| - . $locale->text('Name') - . qq||; + map { $column_defs{$_}->{visible} = $form->{"l_$_"} ? 1 : 0 } @columns; - $column_header{sellprice} = - qq|| - . $locale->text('Sell Price') - . qq||; - $column_header{linetotalsellprice} = - qq|| . $locale->text('Extended') . qq||; - $column_header{linetotallastcost} = - qq|| . $locale->text('Extended') . qq||; - $column_header{linetotallistprice} = - qq|| . $locale->text('Extended') . qq||; + my %column_alignment = map { $_ => 'right' } qw(onhand sellprice listprice lastcost linetotalsellprice linetotallastcost linetotallistprice rop weight soldtotal); - $column_header{image} = - qq|| . $locale->text('Image') . qq||; - $column_header{drawing} = - qq|| - . $locale->text('Drawing') - . qq||; - $column_header{microfiche} = - qq|| - . $locale->text('Microfiche') - . qq||; + my @hidden_variables = (qw(l_subtotal l_linetotal searchitems itemstatus bom), @itemstatus_keys, @callback_keys, map { "l_$_" } @columns); + my $callback = build_std_url('action=generate_report', grep { $form->{$_} } @hidden_variables); - $column_header{serialnumber} = - qq|| - . $locale->text('Serial Number') - . qq||; - $column_header{soldtotal} = - qq|{revers}&lastsort=$form->{lastsort}>| - . $locale->text('soldtotal') - . qq||; + my @sort_full = qw(partnumber description onhand soldtotal deliverydate); + my @sort_no_revers = qw(partsgroup bin priceupdate invnumber ordnumber quonumber name image drawing serialnumber); - $column_header{deliverydate} = - qq|{revers}&lastsort=$form->{lastsort}>| - . $locale->text('deliverydate') - . qq||; - - $form->header; - $colspan = $#column_index + 1; - - print qq| - + foreach my $col (@sort_full) { + $column_defs{$col}->{link} = join '&', $callback, "sort=$col", map { "$_=" . E($form->{$_}) } qw(revers lastsort); + } + map { $column_defs{$_}->{link} = "${callback}&sort=$_" } @sort_no_revers; - - - - - + # add order to callback + $form->{callback} = join '&', ($callback, map { "${_}=" . E($form->{$_}) } qw(sort revers)); - + my $report = SL::ReportGenerator->new(\%myconfig, $form); - -|; + my %attachment_basenames = ( + 'part' => $locale->text('part_list'), + 'service' => $locale->text('service_list'), + 'assembly' => $locale->text('assembly_list'), + ); - map { print "\n$column_header{$_}" } @column_index; + $report->set_options('top_info_text' => $locale->text('Options') . ': ' . join(', ', grep $_, @options), + 'raw_bottom_info_text' => $form->parse_html_template2('ic/generate_report_bottom'), + 'output_format' => 'HTML', + 'title' => $form->{title}, + 'attachment_basename' => $attachment_basenames{$form->{searchitems}} . strftime('_%Y%m%d', localtime time), + ); + $report->set_options_from_form(); - print qq| - - |; + $report->set_columns(%column_defs); + $report->set_column_order(@columns); - # add order to callback - $form->{callback} = $callback .= "&sort=$form->{sort}"; + $report->set_export_options('generate_report', @hidden_variables, qw(sort revers)); - # escape callback for href - $callback = $form->escape($callback); + $report->set_sort_indicator($form->{sort}, $form->{revers} ? 0 : 1); - if (@{ $form->{parts} }) { - $sameitem = $form->{parts}->[0]->{ $form->{sort} }; - } + my @subtotal_columns = qw(sellprice listprice lastcost); + my %subtotals = map { $_ => 0 } ('onhand', @subtotal_columns); + my %totals = map { $_ => 0 } @subtotal_columns; + my $idx = 0; foreach my $ref (@{ $form->{parts} }) { - my $i = 0; + my $row = { }; - if ($form->{l_subtotal} eq 'Y' && !$ref->{assemblyitem}) { - if ($sameitem ne $ref->{ $form->{sort} }) { - &parts_subtotal; - $sameitem = $ref->{ $form->{sort} }; - } + foreach (@columns) { + $row->{$_} = { + 'align' => $column_alignment{$_}, + 'data' => $ref->{$_}, + }; } - $ref->{exchangerate} = 1 unless $ref->{exchangerate}; - $ref->{sellprice} *= $ref->{exchangerate}; - $ref->{listprice} *= $ref->{exchangerate}; - $ref->{lastcost} *= $ref->{exchangerate}; + $ref->{exchangerate} = 1 unless $ref->{exchangerate}; + $ref->{sellprice} *= $ref->{exchangerate}; + $ref->{listprice} *= $ref->{exchangerate}; + $ref->{lastcost} *= $ref->{exchangerate}; # use this for assemblies - $onhand = $ref->{onhand}; + my $onhand = $ref->{onhand}; - $align = "left"; if ($ref->{assemblyitem}) { - $align = "right"; - $onhand = 0 if ($form->{sold}); + $row->{partnumber}->{align} = 'right'; + $row->{onhand}->{data} = 0; + $onhand = 0 if ($form->{sold}); } - $ref->{description} =~ s/ -/
/g; + my $edit_link = build_std_url('action=edit', 'id=' . E($ref->{id}), 'callback'); + $row->{partnumber}->{link} = $edit_link; + $row->{description}->{link} = $edit_link; - $column_data{partnumber} = - ""; - $column_data{description} = ""; - $column_data{partsgroup} = ""; + foreach (qw(sellprice listprice lastcost)) { + $row->{$_}->{data} = $form->format_amount(\%myconfig, $ref->{$_}, -2); + $row->{"linetotal$_"}->{data} = $form->format_amount(\%myconfig, $ref->{onhand} * $ref->{$_}, 2); + } - $column_data{onhand} = - ""; - $column_data{sellprice} = - ""; - $column_data{listprice} = - ""; - $column_data{lastcost} = - ""; - - $column_data{linetotalsellprice} = ""; - $column_data{linetotallastcost} = ""; - $column_data{linetotallistprice} = ""; + map { $row->{$_}->{data} = $form->format_amount(\%myconfig, $ref->{$_}); } qw(onhand rop weight soldtotal); if (!$ref->{assemblyitem}) { - $totalsellprice += $onhand * $ref->{sellprice}; - $totallastcost += $onhand * $ref->{lastcost}; - $totallistprice += $onhand * $ref->{listprice}; + foreach my $col (@subtotal_columns) { + $totals{$col} += $onhand * $ref->{$col}; + $subtotals{$col} += $onhand * $ref->{$col}; + } - $subtotalonhand += $onhand; - $subtotalsellprice += $onhand * $ref->{sellprice}; - $subtotallastcost += $onhand * $ref->{lastcost}; - $subtotallistprice += $onhand * $ref->{listprice}; + $subtotals{onhand} += $onhand; } - $column_data{rop} = - ""; - $column_data{weight} = - ""; - $column_data{unit} = ""; - $column_data{bin} = ""; - $column_data{priceupdate} = ""; - - $column_data{invnumber} = - ($ref->{module} ne 'oe') - ? "" - : ""; - $column_data{ordnumber} = - ($ref->{module} eq 'oe') - ? "" - : ""; - $column_data{quonumber} = - ($ref->{module} eq 'oe' && !$ref->{ordnumber}) - ? "" - : ""; - - $column_data{name} = ""; + if ($ref->{module} eq 'oe') { + my $edit_oe_link = build_std_url("script=oe.pl", 'action=edit', 'type=' . E($ref->{type}), 'id=' . E($ref->{trans_id}), 'callback'); + $row->{ordnumber}->{link} = $edit_oe_link; + $row->{quonumber}->{link} = $edit_oe_link if (!$ref->{ordnumber}); - $column_data{image} = - ($ref->{image}) - ? "" - : ""; - $column_data{drawing} = - ($ref->{drawing}) - ? "" - : ""; - $column_data{microfiche} = - ($ref->{microfiche}) - ? "" - : ""; + } else { + $row->{invnumber}->{link} = build_std_url("script=$ref->{module}.pl", 'action=edit', 'type=invoice', 'id=' . E($ref->{trans_id}), 'callback'); + } - $column_data{serialnumber} = ""; + if ($ref->{image} && (lc $report->{options}->{output_format} eq 'html')) { + $row->{image}->{data} = ''; + $row->{image}->{raw_data} = ''; + } + map { $row->{$_}->{link} = $ref->{$_} } qw(drawing microfiche); - $column_data{soldtotal} = - ""; + $report->add_data($row); - $column_data{deliverydate} = ""; + my $next_ref = $form->{parts}->[$idx + 1]; - $i++; - $i %= 2; - print ""; + if (($form->{l_subtotal} eq 'Y') && + (!$next_ref || + (!$next_ref->{assemblyitem} && ($ref->{$form->{sort}} ne $next_ref->{$form->{sort}})))) { + my $row = { map { $_ => { 'class' => 'listsubtotal', 'align' => 'right' } } @columns }; - map { print "\n$column_data{$_}" } @column_index; + if (($form->{searchitems} ne 'assembly') || !$form->{bom}) { + $row->{onhand}->{data} = $form->format_amount(\%myconfig, $subtotals{onhand}); + } - print qq| - -|; + map { $row->{"linetotal$_"}->{data} = $form->format_amount(\%myconfig, $subtotals{$_}, 2) } @subtotal_columns; + map { $subtotals{$_} = 0 } ('onhand', @subtotal_columns); - } + $report->add_data($row); + } - if ($form->{l_subtotal} eq 'Y') { - &parts_subtotal; + $idx++; } if ($form->{"l_linetotal"}) { - map { $column_data{$_} = "" } @column_index; - $column_data{linetotalsellprice} = - ""; - $column_data{linetotallastcost} = - ""; - $column_data{linetotallistprice} = - ""; - - print ""; + my $row = { map { $_ => { 'class' => 'listtotal', 'align' => 'right' } } @columns }; - map { print "\n$column_data{$_}" } @column_index; + map { $row->{"linetotal$_"}->{data} = $form->format_amount(\%myconfig, $totals{$_}, 2) } @subtotal_columns; - print qq| - |; + $report->add_separator(); + $report->add_data($row); } - print qq| - -
$form->{title}
$option
{script}?action=edit&id=$ref->{id}&login=$form->{login}&password=$form->{password}&callback=$callback>$ref->{partnumber} {script}?action=edit&id=$ref->{id}&login=$form->{login}&password=$form->{password}&callback=$callback>$ref->{description} $ref->{partsgroup} " - . $form->format_amount(\%myconfig, $ref->{onhand}) - . "" - . $form->format_amount(\%myconfig, $ref->{sellprice}, -2) - . "" - . $form->format_amount(\%myconfig, $ref->{listprice}, -2) - . "" - . $form->format_amount(\%myconfig, $ref->{lastcost}, -2) - . "" - . $form->format_amount(\%myconfig, $ref->{onhand} * $ref->{sellprice}, 2) - . "" - . $form->format_amount(\%myconfig, $ref->{onhand} * $ref->{lastcost}, 2) - . "" - . $form->format_amount(\%myconfig, $ref->{onhand} * $ref->{listprice}, 2) - . "" - . $form->format_amount(\%myconfig, $ref->{rop}) . "" - . $form->format_amount(\%myconfig, $ref->{weight}) - . "$ref->{unit} $ref->{bin} $ref->{priceupdate} {module}.pl?action=edit&type=invoice&id=$ref->{trans_id}&login=$form->{login}&password=$form->{password}&callback=$callback>$ref->{invnumber}$ref->{invnumber}{module}.pl?action=edit&type=$ref->{type}&id=$ref->{trans_id}&login=$form->{login}&password=$form->{password}&callback=$callback>$ref->{ordnumber}$ref->{ordnumber}{module}.pl?action=edit&type=$ref->{type}&id=$ref->{trans_id}&login=$form->{login}&password=$form->{password}&callback=$callback>$ref->{quonumber}$ref->{quonumber}$ref->{name}{image}>{image} height=32 border=0> {drawing}>$ref->{drawing} {microfiche}>$ref->{microfiche} $ref->{serialnumber}" - . $form->format_amount(\%myconfig, $ref->{soldtotal}) - . "$ref->{deliverydate}
 " - . $form->format_amount(\%myconfig, $totalsellprice, 2) - . "" - . $form->format_amount(\%myconfig, $totallastcost, 2) - . "" - . $form->format_amount(\%myconfig, $totallistprice, 2) - . "

- -|; - - print qq| - -
- -
{script}> - - - -{searchitems}> - -{login}> -{password}>|; - - print qq| - - -
- - - -|; + $report->generate_with_headers(); $lxdebug->leave_sub(); } #end generate_report diff --git a/locale/de/all b/locale/de/all index 54f2df47c..62d9d4cc7 100644 --- a/locale/de/all +++ b/locale/de/all @@ -725,9 +725,12 @@ aktualisieren wollen?', 'Netto Terms' => 'Zahlungsziel netto', 'New Buchungsgruppe ' => 'Neue Buchungsgruppe ', 'New Templates' => 'neue Vorlagen', + 'New assembly' => 'Neues Erzeugnis', 'New contact' => 'Neuer Ansprechpartner', 'New customer' => 'Neuer Kunde', + 'New part' => 'Neue Ware', 'New sales order' => 'Neuer Auftrag', + 'New service' => 'Neue Dienstleistung', 'New unit' => 'Neue Einheit', 'New vendor' => 'Neuer Lieferante', 'Next Dunning Level' => 'Nächste Mahnstufe', @@ -1266,6 +1269,7 @@ aktualisieren wollen?', 'ap_aging_list' => 'liste_offene_verbindlichkeiten', 'ar_aging_list' => 'liste_offene_forderungen', 'as at' => 'zum Stand', + 'assembly_list' => 'erzeugnisliste', 'back' => 'zurück', 'bin_list' => 'Lagerliste', 'bis' => 'bis', @@ -1315,6 +1319,7 @@ aktualisieren wollen?', 'number' => 'Nummer', 'order' => 'Reihenfolge', 'packing_list' => 'Versandliste', + 'part_list' => 'warenliste', 'pick_list' => 'Entnahmeliste', 'plural first char' => 'P', 'pos_bilanz' => 'Bilanz', @@ -1342,6 +1347,7 @@ aktualisieren wollen?', 'sent' => 'gesendet', 'sent to printer' => 'an Drucker geschickt', 'service units' => 'Dienstleistungseinheiten', + 'service_list' => 'dienstleistungsliste', 'singular first char' => 'S', 'soldtotal' => 'Verkaufte Anzahl', 'submit' => 'abschicken', diff --git a/locale/de/ic b/locale/de/ic index 4892d8e72..41f75e2df 100644 --- a/locale/de/ic +++ b/locale/de/ic @@ -5,7 +5,6 @@ $self->{texts} = { 'ADDED' => 'Hinzugefügt', 'Accounting Menu' => 'Kontoverwaltung', 'Active' => 'Aktiv', - 'Add' => 'Erfassen', 'Add ' => 'Hinzufügen', 'Add Assembly' => 'Erzeugnis erfassen', 'Add Part' => 'Ware erfassen', @@ -33,6 +32,7 @@ aktualisieren wollen?', 'Buchungsgruppe' => 'Buchungsgruppe', 'Business Volume' => 'Geschäftsvolumen', 'CANCELED' => 'Storniert', + 'CSV export -- options' => 'CSV-Export -- Optionen', 'Cannot delete item!' => 'Artikel kann nicht gelöscht werden!', 'City' => 'Stadt', 'Company Name' => 'Firmenname', @@ -40,7 +40,11 @@ aktualisieren wollen?', 'Confirmation' => 'Auftragsbestätigung', 'Contact' => 'Kontakt', 'Continue' => 'Weiter', + 'Could not spawn html2ps or GhostScript.' => 'html2ps oder GhostScript konnte nicht gestartet werden.', + 'Could not spawn the printer command.' => 'Die Druckanwendung konnte nicht gestartet werden.', 'Could not update prices!' => 'Preise konnten nicht aktualisiert werden!', + 'Could not write the html2ps config file.' => 'Die temporäre html2ps-Konfigurationsdatei konnte nicht geschrieben werden.', + 'Could not write the temporary HTML file.' => 'Eine temporäre HTML-Datei konnte nicht geschrieben werden.', 'Country' => 'Land', 'Credit Note' => 'Gutschrift', 'Customer Number' => 'Kundennummer', @@ -150,6 +154,7 @@ aktualisieren wollen?', 'PAYMENT POSTED' => 'Rechung gebucht', 'PDF' => 'PDF', 'PDF (OpenDocument/OASIS)' => 'PDF (OpenDocument/OASIS)', + 'PDF export -- options' => 'PDF-Export -- Optionen', 'POSTED' => 'Gebucht', 'POSTED AS NEW' => 'Als neu gebucht', 'PRINTED' => 'Gedruckt', @@ -231,6 +236,7 @@ aktualisieren wollen?', 'TOP100' => 'Top 100', 'The \'tag\' field must only consist of alphanumeric characters or the carachters - _ ( )' => 'Das Feld \'tag\' darf nur aus alphanumerischen Zeichen und den Zeichen - _ ( ) bestehen.', 'The formula needs the following syntax:
For regular article:
Variablename= Variable Unit;
Variablename2= Variable2 Unit2;
...
###
Variable + ( Variable2 / Variable )
Please be beware of the spaces in the formula
' => 'Die Formeln müssen in der folgenden Syntax eingegeben werden:
Bei normalen Artikeln:
Variablenname= Variable Einheit;
Variablenname2= Variable2 Einheit2;
...
###
Variable + Variable2 * ( Variable - Variable2 )
Bitte achten Sie auf die Leerzeichen in der Formel
Es muss jeweils die Gesamte Zeile eingegeben werden', + 'The list has been printed.' => 'Die Liste wurde ausgedruckt.', 'To' => 'An', 'To (time)' => 'Bis', 'Top 100' => 'Top 100', @@ -252,6 +258,7 @@ aktualisieren wollen?', 'Weight' => 'Gewicht', 'What type of item is this?' => 'Was ist dieser Artikel?', 'Zipcode' => 'PLZ', + 'assembly_list' => 'erzeugnisliste', 'bin_list' => 'Lagerliste', 'button' => '?', 'choice' => 'auswählen', @@ -266,15 +273,19 @@ aktualisieren wollen?', 'none (pricegroup)' => 'keine', 'number' => 'Nummer', 'packing_list' => 'Versandliste', + 'part_list' => 'warenliste', 'pick_list' => 'Entnahmeliste', 'prices updated!' => ' Preise aktualisiert!', 'proforma' => 'Proforma', 'purchase_order' => 'Auftrag', + 'report_generator_dispatch_to is not defined.' => 'report_generator_dispatch_to ist nicht definiert.', + 'report_generator_nextsub is not defined.' => 'report_generator_nextsub ist nicht definiert.', 'request_quotation' => 'Angebotsanforderung', 'sales_order' => 'Kundenauftrag', 'sales_quotation' => 'Verkaufsangebot', 'sent' => 'gesendet', 'sent to printer' => 'an Drucker geschickt', + 'service_list' => 'dienstleistungsliste', 'soldtotal' => 'Verkaufte Anzahl', 'yes' => 'ja', }; @@ -329,6 +340,11 @@ $self->{subs} = { 'quotation' => 'quotation', 'reformat_numbers' => 'reformat_numbers', 'relink_accounts' => 'relink_accounts', + 'report_generator_back' => 'report_generator_back', + 'report_generator_dispatcher' => 'report_generator_dispatcher', + 'report_generator_do' => 'report_generator_do', + 'report_generator_export_as_csv' => 'report_generator_export_as_csv', + 'report_generator_export_as_pdf' => 'report_generator_export_as_pdf', 'request_for_quotation' => 'request_for_quotation', 'save' => 'save', 'save_as_new' => 'save_as_new', diff --git a/templates/webpages/ic/generate_report_bottom_de.html b/templates/webpages/ic/generate_report_bottom_de.html new file mode 100644 index 000000000..291cc4e10 --- /dev/null +++ b/templates/webpages/ic/generate_report_bottom_de.html @@ -0,0 +1,18 @@ +[% USE HTML %]
+ + + + + + + + + [% SWITCH searchitems %] + [% CASE 'part' %]Neue Ware + [% CASE 'service' %]Neue Dienstleistung + [% CASE 'assembly' %]Neues Erzeugnis + [% END %] +
+ + +
diff --git a/templates/webpages/ic/generate_report_bottom_master.html b/templates/webpages/ic/generate_report_bottom_master.html new file mode 100644 index 000000000..13a2b144f --- /dev/null +++ b/templates/webpages/ic/generate_report_bottom_master.html @@ -0,0 +1,18 @@ +[% USE HTML %]
+ + + + + + + + + [% SWITCH searchitems %] + [% CASE 'part' %]New part + [% CASE 'service' %]New service + [% CASE 'assembly' %]New assembly + [% END %] +
+ + +