From 35648bc621535a6010d415ba2b3218a37ab2da07 Mon Sep 17 00:00:00 2001 From: Moritz Bunkus Date: Wed, 13 Jun 2007 09:55:41 +0000 Subject: [PATCH] Umstellung der Listenansicht der bestehenden Mahnungen auf die Verwendung der neuen ReportGenerator-Klasse. --- bin/mozilla/dn.pl | 110 ++++++++++++++---- locale/de/dn | 21 ++++ .../dunning/show_dunning_bottom_de.html | 11 ++ .../dunning/show_dunning_bottom_master.html | 11 ++ .../webpages/dunning/show_dunning_de.html | 79 ------------- .../webpages/dunning/show_dunning_master.html | 79 ------------- .../webpages/dunning/show_dunning_top_de.html | 8 ++ .../dunning/show_dunning_top_master.html | 8 ++ 8 files changed, 146 insertions(+), 181 deletions(-) create mode 100644 templates/webpages/dunning/show_dunning_bottom_de.html create mode 100644 templates/webpages/dunning/show_dunning_bottom_master.html delete mode 100644 templates/webpages/dunning/show_dunning_de.html delete mode 100644 templates/webpages/dunning/show_dunning_master.html create mode 100644 templates/webpages/dunning/show_dunning_top_de.html create mode 100644 templates/webpages/dunning/show_dunning_top_master.html diff --git a/bin/mozilla/dn.pl b/bin/mozilla/dn.pl index af615da51..ad16f0ed1 100644 --- a/bin/mozilla/dn.pl +++ b/bin/mozilla/dn.pl @@ -36,8 +36,10 @@ use POSIX; use SL::IS; use SL::PE; use SL::DN; +use SL::ReportGenerator; require "bin/mozilla/common.pl"; +require "bin/mozilla/report_generator.pl"; require "bin/mozilla/io.pl"; require "bin/mozilla/arap.pl"; @@ -155,7 +157,7 @@ sub save { $form->{addition} = "SAVED FOR DUNNING"; $form->save_history($form->dbconnect(\%myconfig)); } - # /saving the history + # /saving the history $form->redirect($locale->text('Dunning Process Config saved!')); $lxdebug->leave_sub(); @@ -269,28 +271,13 @@ sub search { sub show_dunning { $lxdebug->enter_sub(); - DN->get_dunning(\%myconfig, \%$form); - - my $odd_even = 0; - my ($previous_dunning_id, $first_row_for_dunning); + my @filter_field_list = qw(customer_id customer dunning_level department_id invnumber ordnumber + transdatefrom transdateto dunningfrom dunningto notes showold); - foreach $ref (@{ $form->{DUNNINGS} }) { - if ($previous_dunning_id != $ref->{dunning_id}) { - $odd_even = ($odd_even + 1) % 2; - $ref->{first_row_for_dunning} = 1; - - } else { - $ref->{first_row_for_dunning} = 0; - } - - $previous_dunning_id = $ref->{dunning_id}; - $ref->{listrow_odd_even} = $odd_even; - } + DN->get_dunning(\%myconfig, \%$form); if (!$form->{callback}) { - $form->{callback} = - build_std_url("action=show_dunning", qw(customer_id customer dunning_level department_id invnumber ordnumber - transdatefrom transdateto dunningfrom dunningto notes showold)); + $form->{callback} = build_std_url("action=show_dunning", @filter_field_list); } $form->get_lists('printers' => 'printers', @@ -304,9 +291,87 @@ sub show_dunning { 'no_opendocument' => 1, }); $form->{title} = $locale->text('Dunning overview'); - $form->header(); + my $report = SL::ReportGenerator->new(\%myconfig, $form); + + $report->set_options('std_column_visibility' => 1, + 'title' => $form->{title}); + $report->set_export_options('show_dunning', @filter_field_list); + + $report->set_columns( + 'checkbox' => { 'text' => '', 'visible' => 'HTML' }, + 'dunning_description' => { 'text' => $locale->text('Dunning Level') }, + 'customername' => { 'text' => $locale->text('Customername') }, + 'invnumber' => { 'text' => $locale->text('Invnumber') }, + 'transdate' => { 'text' => $locale->text('Invdate') }, + 'duedate' => { 'text' => $locale->text('Invoice Duedate') }, + 'amount' => { 'text' => $locale->text('Amount') }, + 'dunning_date' => { 'text' => $locale->text('Dunning Date') }, + 'dunning_duedate' => { 'text' => $locale->text('Dunning Duedate') }, + 'fee' => { 'text' => $locale->text('Total Fees') }, + 'interest' => { 'text' => $locale->text('Interest') }, + ); + + $report->set_column_order(qw(checkbox dunning_description customername invnumber transdate + duedate amount dunning_date dunning_duedate fee interest)); + + my $edit_url = build_std_url('script=is.pl', 'action=edit', 'callback') . '&id='; + my $print_url = build_std_url('action=print_dunning', 'format=pdf', 'media=screen') . '&dunning_id='; + + my %alignment = map { $_ => 'right' } qw(transdate duedate amount dunning_date dunning_duedate fee interest); + + my ($current_dunning_rows, $previous_dunning_id, $first_row_for_dunning); + + $current_dunning_rows = []; + $first_row_for_dunning = 1; + $form->{rowcount} = scalar @{ $form->{DUNNINGS} }; - print $form->parse_html_template("dunning/show_dunning"); + my $i = 0; + + foreach $ref (@{ $form->{DUNNINGS} }) { + $i++; + + if ($previous_dunning_id != $ref->{dunning_id}) { + $report->add_data($current_dunning_rows) if (scalar @{ $current_dunning_rows }); + $current_dunning_rows = []; + $first_row_for_dunning = 1; + } + + my $row = { }; + foreach my $column (keys %{ $ref }) { + $row->{$column} = { + 'data' => $first_row_for_dunning || (($column ne 'dunning_description') && ($column ne 'customername')) ? $ref->{$column} : '', + + 'align' => $alignment{$column}, + + 'link' => ($column eq 'invnumber' ? $edit_url . E($ref->{id}) : + $column eq 'dunning_description' ? $print_url . E($ref->{dunning_id}) : ''), + }; + } + + $row->{checkbox} = { + 'raw_data' => $cgi->hidden('-name' => "dunning_id_$i", '-value' => $ref->{dunning_id}) + . $cgi->checkbox('-name' => "selected_$i", '-value' => 1, '-label' => ''), + 'valign' => 'center', + 'align' => 'center', + }; + + push @{ $current_dunning_rows }, $row; + + $previous_dunning_id = $ref->{dunning_id}; + $first_row_for_dunning = 0; + } + + $report->add_data($current_dunning_rows) if (scalar @{ $current_dunning_rows }); + + $report->set_options('raw_top_info_text' => $form->parse_html_template('dunning/show_dunning_top'), + 'raw_bottom_info_text' => $form->parse_html_template('dunning/show_dunning_bottom'), + 'output_format' => 'HTML', + 'attachment_basename' => strftime('dunning_report_%Y%m%d', localtime time), + ); + + $report->set_options_from_form(); + + $report->generate_with_headers(); $lxdebug->leave_sub(); @@ -359,4 +424,3 @@ sub print_multiple { } # end of main - diff --git a/locale/de/dn b/locale/de/dn index 14e4907c8..777a7fc18 100644 --- a/locale/de/dn +++ b/locale/de/dn @@ -7,6 +7,7 @@ $self->{texts} = { 'Add Request for Quotation' => 'Anfrage erfassen', 'Add Sales Order' => 'Auftrag erfassen', 'Address' => 'Adresse', + 'Amount' => 'Betrag', 'Apr' => 'Apr', 'April' => 'April', 'Attachment' => 'als Anhang', @@ -18,6 +19,7 @@ $self->{texts} = { 'Bin' => 'Lagerplatz', 'Bin List' => 'Lagerliste', 'CANCELED' => 'Storniert', + 'CSV export -- options' => 'CSV-Export -- Optionen', 'City' => 'Stadt', 'Company Name' => 'Firmenname', 'Confirmation' => 'Auftragsbestätigung', @@ -25,13 +27,17 @@ $self->{texts} = { 'Continue' => 'Weiter', 'Could not print dunning.' => 'Die Mahnungen konnten nicht gedruckt werden.', 'Could not spawn ghostscript.' => 'Die Anwendung "ghostscript" konnte nicht gestartet werden.', + '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 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', 'Customer details' => 'Kundendetails', 'Customer not on file or locked!' => 'Dieser Kunde existiert nicht oder ist gesperrt.', 'Customer not on file!' => 'Kunde ist nicht in der Datenbank!', + 'Customername' => 'Kundenname', 'DELETED' => 'Gelöscht', 'DUNNING STARTED' => 'Mahnprozess gestartet', 'Dataset upgrade' => 'Datenbankaktualisierung', @@ -42,7 +48,10 @@ $self->{texts} = { 'Dependency loop detected:' => 'Schleife in den Abhängigkeiten entdeckt:', 'Description' => 'Beschreibung', 'Discount' => 'Rabatt', + 'Dunning Date' => 'Mahndatum', 'Dunning Description missing in row ' => 'Mahnstufenbeschreibung fehlt in Zeile ', + 'Dunning Duedate' => 'Zahlbar bis', + 'Dunning Level' => 'Mahnlevel', 'Dunning Level missing in row ' => 'Mahnlevel fehlt in ', 'Dunning Process Config saved!' => 'Mahnwesenkonfiguration gespeichert!', 'Dunning Process started for selected invoices!' => 'Mahnprozess für selektierte Rechnungen gestartet', @@ -61,8 +70,12 @@ $self->{texts} = { 'Group' => 'Warengruppe', 'History' => 'Historie', 'In-line' => 'im Text', + 'Interest' => 'Zinsen', + 'Invdate' => 'Rechnungsdatum', + 'Invnumber' => 'Rechnungsnummer', 'Invoice' => 'Rechnung', 'Invoice Date missing!' => 'Rechnungsdatum fehlt!', + 'Invoice Duedate' => 'Fälligkeitsdatum', 'Invoice Number missing!' => 'Rechnungsnummer fehlt!', 'Item not on file!' => 'Dieser Artikel ist nicht in der Datenbank!', 'Jan' => 'Jan', @@ -105,6 +118,7 @@ $self->{texts} = { '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', @@ -170,6 +184,7 @@ $self->{texts} = { 'Terms missing in row ' => '+Tage fehlen in Zeile ', '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 dunnings have been printed.' => 'Die Mahnung(en) wurden gedruckt.', + 'Total Fees' => 'Kumulierte Gebühren', 'Trying to call a sub without a name' => 'Es wurde versucht, eine Unterfunktion ohne Namen aufzurufen.', 'Unit' => 'Einheit', 'Unknown dependency \'%s\'.' => 'Unbekannte Abhängigkeit \'%s\'.', @@ -190,6 +205,7 @@ $self->{texts} = { 'pick_list' => 'Entnahmeliste', 'proforma' => 'Proforma', 'purchase_order' => 'Auftrag', + 'report_generator_nextsub is not defined.' => 'report_generator_nextsub ist nicht definiert.', 'request_quotation' => 'Angebotsanforderung', 'sales_order' => 'Kundenauftrag', 'sales_quotation' => 'Verkaufsangebot', @@ -222,6 +238,8 @@ $self->{subs} = { 'edit_config' => 'edit_config', 'edit_e_mail' => 'edit_e_mail', 'employee_selection_internal' => 'employee_selection_internal', + 'export_as_csv' => 'export_as_csv', + 'export_as_pdf' => 'export_as_pdf', 'format_dates' => 'format_dates', 'gl_transaction' => 'gl_transaction', 'invoicetotal' => 'invoicetotal', @@ -243,6 +261,7 @@ $self->{subs} = { 'quotation' => 'quotation', 'reformat_numbers' => 'reformat_numbers', 'relink_accounts' => 'relink_accounts', + 'report_generator_do' => 'report_generator_do', 'request_for_quotation' => 'request_for_quotation', 'sales_invoice' => 'sales_invoice', 'save' => 'save', @@ -270,6 +289,8 @@ $self->{subs} = { 'vendor_invoice' => 'vendor_invoice', 'vendor_selection' => 'vendor_selection', 'weiter' => 'continue', + 'als_csv_exportieren' => 'export_as_csv', + 'als_pdf_exportieren' => 'export_as_pdf', 'drucken' => 'print', 'speichern' => 'save', }; diff --git a/templates/webpages/dunning/show_dunning_bottom_de.html b/templates/webpages/dunning/show_dunning_bottom_de.html new file mode 100644 index 000000000..485fcd60c --- /dev/null +++ b/templates/webpages/dunning/show_dunning_bottom_de.html @@ -0,0 +1,11 @@ + + +

+ +

+ Mahnungen
+ + +

+ + diff --git a/templates/webpages/dunning/show_dunning_bottom_master.html b/templates/webpages/dunning/show_dunning_bottom_master.html new file mode 100644 index 000000000..1917ec8fc --- /dev/null +++ b/templates/webpages/dunning/show_dunning_bottom_master.html @@ -0,0 +1,11 @@ + + +

+ +

+ Dunnings
+ + +

+ + diff --git a/templates/webpages/dunning/show_dunning_de.html b/templates/webpages/dunning/show_dunning_de.html deleted file mode 100644 index 8281f0753..000000000 --- a/templates/webpages/dunning/show_dunning_de.html +++ /dev/null @@ -1,79 +0,0 @@ - - - - - -
- -
- - - - -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 MahnlevelKundennameRechnungsnummerRechnungsdatumFälligkeitsdatumBetragMahndatumZahlbar bisKumulierte GebührenZinsen
- - - - - - - - - - -   - -  

-

- - -

- -

- - -

- -
- - diff --git a/templates/webpages/dunning/show_dunning_master.html b/templates/webpages/dunning/show_dunning_master.html deleted file mode 100644 index 308d31e90..000000000 --- a/templates/webpages/dunning/show_dunning_master.html +++ /dev/null @@ -1,79 +0,0 @@ - - - - - -
- -
- - - - -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 Dunning LevelCustomernameInvnumberInvdateInvoice DuedateAmountDunning DateDunning DuedateTotal FeesInterest
- - - - - - - - - - -   - -  

-

- - -

- -

- - -

- -
- - diff --git a/templates/webpages/dunning/show_dunning_top_de.html b/templates/webpages/dunning/show_dunning_top_de.html new file mode 100644 index 000000000..6187e7691 --- /dev/null +++ b/templates/webpages/dunning/show_dunning_top_de.html @@ -0,0 +1,8 @@ + + + +
+ + + + diff --git a/templates/webpages/dunning/show_dunning_top_master.html b/templates/webpages/dunning/show_dunning_top_master.html new file mode 100644 index 000000000..6187e7691 --- /dev/null +++ b/templates/webpages/dunning/show_dunning_top_master.html @@ -0,0 +1,8 @@ + + + + + + + + -- 2.20.1