From: Moritz Bunkus Date: Wed, 13 Jun 2007 15:34:23 +0000 (+0000) Subject: Die Berichtsoptionen in oe.pl (Anfragen, Aufträge, Angebote) auf die Verwendung von... X-Git-Tag: release-2.4.3^2~143 X-Git-Url: http://wagnertech.de/git?a=commitdiff_plain;h=77923db35bd792bcc4a5581a4f01e8d3599b0153;p=kivitendo-erp.git Die Berichtsoptionen in oe.pl (Anfragen, Aufträge, Angebote) auf die Verwendung von ReportGenerator umgestellt. --- diff --git a/bin/mozilla/oe.pl b/bin/mozilla/oe.pl index de5d6a225..40eecc388 100644 --- a/bin/mozilla/oe.pl +++ b/bin/mozilla/oe.pl @@ -30,15 +30,18 @@ # Order entry module # Quotation module #====================================================================== -use Data::Dumper; + +use POSIX qw(strftime); use SL::OE; use SL::IR; use SL::IS; use SL::PE; +use SL::ReportGenerator; require "bin/mozilla/io.pl"; require "bin/mozilla/arap.pl"; +require "bin/mozilla/report_generator.pl"; 1; @@ -1569,368 +1572,231 @@ $jsscript $lxdebug->leave_sub(); } +sub create_subtotal_row { + $lxdebug->enter_sub(); + + my ($totals, $columns, $column_alignment, $subtotal_columns, $class) = @_; + + my $row = { map { $_ => { 'data' => '', 'class' => $class, 'align' => $column_alignment->{$_}, } } @{ $columns } }; + + map { $row->{$_}->{data} = $form->format_amount(\%myconfig, $totals->{$_}, 2) } @{ $subtotal_columns }; + + $row->{tax}->{data} = $form->format_amount(\%myconfig, $totals->{amount} - $totals->{netamount}, 2); + + map { $totals->{$_} = 0 } @{ $subtotal_columns }; + + $lxdebug->leave_sub(); + + return $row; +} + sub orders { $lxdebug->enter_sub(); $ordnumber = ($form->{type} =~ /_order$/) ? "ordnumber" : "quonumber"; - # construct href - my @fields = - qw(type vc login password transdatefrom transdateto - open closed notdelivered delivered department - transaction_description); - push @fields, $form->{vc}; - $href = "$form->{script}?action=orders&" - . join("&", map { "${_}=" . E($form->{$_}) } @fields) - . "&${ordnumber}=" . E($form->{$ordnumber}); - $callback = $href; - - # split vendor / customer - ($form->{ $form->{vc} }, $form->{"$form->{vc}_id"}) = - split(/--/, $form->{ $form->{vc} }); + ($form->{ $form->{vc} }, $form->{"${form->{vc}}_id"}) = split(/--/, $form->{ $form->{vc} }); + + $form->{sort} ||= 'transdate'; OE->transactions(\%myconfig, \%$form); - @columns = ( + $form->{rowcount} = scalar @{ $form->{OE} }; + + my @columns = ( "transdate", "reqdate", - "id", "$ordnumber", + "id", $ordnumber, "name", "netamount", "tax", "amount", "curr", "employee", "shipvia", "globalprojectnumber", "transaction_description", "open", - "closed", "delivered" + "delivered" ); - $form->{l_open} = $form->{l_closed} = "Y" - if ($form->{open} && $form->{closed}); - - $form->{"l_delivered"} = "Y" - if ($form->{"delivered"} && $form->{"notdelivered"}); - - foreach $item (@columns) { - if ($form->{"l_$item"} eq "Y") { - push @column_index, $item; - - # add column to href and callback - $callback .= "&l_$item=Y"; - $href .= "&l_$item=Y"; - } - } - # only show checkboxes if gotten here via sales_order form. - if ($form->{type} =~ /sales_order/) { - unshift @column_index, "ids"; + my $allow_multiple_orders = $form->{type} eq 'sales_order'; + if ($allow_multiple_orders) { + unshift @columns, "ids"; } - if ($form->{l_subtotal} eq 'Y') { - $callback .= "&l_subtotal=Y"; - $href .= "&l_subtotal=Y"; - } + $form->{l_open} = $form->{l_closed} = "Y" if ($form->{open} && $form->{closed}); + $form->{l_delivered} = "Y" if ($form->{delivered} && $form->{notdelivered}); + my $attachment_basename; if ($form->{vc} eq 'vendor') { if ($form->{type} eq 'purchase_order') { - $form->{title} = $locale->text('Purchase Orders'); + $form->{title} = $locale->text('Purchase Orders'); + $attachment_basename = $locale->text('purchase_order_list'); } else { - $form->{title} = $locale->text('Request for Quotations'); + $form->{title} = $locale->text('Request for Quotations'); + $attachment_basename = $locale->text('rfq_list'); } - $name = $locale->text('Vendor'); - $employee = $locale->text('Employee'); - } - if ($form->{vc} eq 'customer') { + + } else { if ($form->{type} eq 'sales_order') { - $form->{title} = $locale->text('Sales Orders'); + $form->{title} = $locale->text('Sales Orders'); + $attachment_basename = $locale->text('sales_order_list'); } else { - $form->{title} = $locale->text('Quotations'); + $form->{title} = $locale->text('Quotations'); + $attachment_basename = $locale->text('quotation_list'); } - $employee = $locale->text('Employee'); - $name = $locale->text('Customer'); - } - - $column_header{id} = - qq|| - . $locale->text('ID') - . qq||; - $column_header{transdate} = - qq|| - . $locale->text('Date') - . qq||; - $column_header{reqdate} = - qq|| - . $locale->text('Required by') - . qq||; - $column_header{ordnumber} = - qq|| - . $locale->text('Order') - . qq||; - $column_header{quonumber} = - qq|| - . ($form->{"type"} eq "request_quotation" ? - $locale->text('RFQ') : - $locale->text('Quotation')) - . qq||; - $column_header{name} = - qq|$name|; - $column_header{netamount} = - qq|| . $locale->text('Amount') . qq||; - $column_header{tax} = - qq|| . $locale->text('Tax') . qq||; - $column_header{amount} = - qq|| . $locale->text('Total') . qq||; - $column_header{curr} = - qq|| . $locale->text('Curr') . qq||; - $column_header{shipvia} = - qq|| - . $locale->text('Ship via') - . qq||; - $column_header{globalprojectnumber} = - qq|| . $locale->text('Project Number') . qq||; - $column_header{open} = - qq|| . $locale->text('O') . qq||; - $column_header{closed} = - qq|| . $locale->text('C') . qq||; - $column_header{"delivered"} = - qq|| . $locale->text("Delivered") . qq||; - - $column_header{employee} = - qq|$employee|; - $column_header{transaction_description} = - qq|| - . $locale->text("Transaction description") . qq||; - - $column_header{ids} = qq||; - - if ($form->{ $form->{vc} }) { - $option = $locale->text(ucfirst $form->{vc}); - $option .= " : $form->{$form->{vc}}"; + } + + my $report = SL::ReportGenerator->new(\%myconfig, $form); + + my @hidden_variables = map { "l_${_}" } @columns; + push @hidden_variables, "l_subtotal", $form->{vc}, qw(l_closed l_notdelivered open closed delivered notdelivered ordnumber quonumber + transaction_description transdatefrom transdateto type vc); + + my $href = build_std_url('action=orders', grep { $form->{$_} } @hidden_variables); + + my %column_defs = ( + 'ids' => { 'text' => '', }, + 'transdate' => { 'text' => $locale->text('Date'), }, + 'reqdate' => { 'text' => $locale->text('Required by'), }, + 'id' => { 'text' => $locale->text('ID'), }, + 'ordnumber' => { 'text' => $locale->text('Order'), }, + 'quonumber' => { 'text' => $form->{type} eq "request_quotation" ? $locale->text('RFQ') : $locale->text('Quotation'), }, + 'name' => { 'text' => $form->{vc} eq 'customer' ? $locale->text('Customer') : $locale->text('Vendor'), }, + 'netamount' => { 'text' => $locale->text('Amount'), }, + 'tax' => { 'text' => $locale->text('Tax'), }, + 'amount' => { 'text' => $locale->text('Total'), }, + 'curr' => { 'text' => $locale->text('Curr'), }, + 'employee' => { 'text' => $locale->text('Salesperson'), }, + 'shipvia' => { 'text' => $locale->text('Ship via'), }, + 'globalprojectnumber' => { 'text' => $locale->text('Project Number'), }, + 'transaction_description' => { 'text' => $locale->text('Transaction description'), }, + 'open' => { 'text' => $locale->text('Open'), }, + 'delivered' => { 'text' => $locale->text('Delivered'), }, + ); + + foreach my $name (qw(id transdate reqdate quonumber ordnumber name employee shipvia)) { + $column_defs{$name}->{link} = $href . "&sort=$name"; + } + + my %column_alignment = map { $_ => 'right' } qw(netamount tax amount curr); + + $form->{"l_type"} = "Y"; + map { $column_defs{$_}->{visible} = $form->{"l_${_}"} ? 1 : 0 } @columns; + $column_defs{ids}->{visible} = $allow_multiple_orders ? 'HTML' : 0; + + $report->set_columns(%column_defs); + $report->set_column_order(@columns); + + $report->set_export_options('orders', @hidden_variables); + + my @options; + if ($form->{customer}) { + push @options, $locale->text('Customer') . " : $form->{customer}"; + } + if ($form->{vendor}) { + push @options, $locale->text('Vendor') . " : $form->{vendor}"; } if ($form->{department}) { - $option .= "\n
" if ($option); ($department) = split /--/, $form->{department}; - $option .= $locale->text('Department') . " : $department"; + push @options, $locale->text('Department') . " : $department"; + } + if ($form->{ordnumber}) { + push @options, $locale->text('Order Number') . " : $form->{ordnumber}"; + } + if ($form->{notes}) { + push @options, $locale->text('Notes') . " : $form->{notes}"; + } + if ($form->{transaction_description}) { + push @options, $locale->text('Transaction description') . " : $form->{transaction_description}"; } if ($form->{transdatefrom}) { - $option .= "\n
" - . $locale->text('From') . " " - . $locale->date(\%myconfig, $form->{transdatefrom}, 1); + push @options, $locale->text('From') . " " . $locale->date(\%myconfig, $form->{transdatefrom}, 1); } if ($form->{transdateto}) { - $option .= "\n
" - . $locale->text('Bis') . " " - . $locale->date(\%myconfig, $form->{transdateto}, 1); + push @options, $locale->text('Bis') . " " . $locale->date(\%myconfig, $form->{transdateto}, 1); } if ($form->{open}) { - $option .= "\n
" if ($option); - $option .= $locale->text('Open'); + push @options, $locale->text('Open'); } if ($form->{closed}) { - $option .= "\n
" if ($option); - $option .= $locale->text('Closed'); + push @options, $locale->text('Closed'); } - - $form->header; - - print qq| - - -
- - - - - - - - - - - - - -
$form->{title}
$option
- - |; - - map { print "\n$column_header{$_}" } @column_index; - - print qq| - -|; - - # add sort and escape callback - $callback_escaped = $form->escape($callback . "&sort=$form->{sort}"); - - if (@{ $form->{OE} }) { - $sameitem = $form->{OE}->[0]->{ $form->{sort} }; + if ($form->{delivered}) { + push @options, $locale->text('Delivered'); } - - $action = "edit"; - - foreach $oe (@{ $form->{OE} }) { - $form->{rowcount} = ++$j; - - if ($form->{l_subtotal} eq 'Y') { - if ($sameitem ne $oe->{ $form->{sort} }) { - &subtotal; - $sameitem = $oe->{ $form->{sort} }; - } - } - - map { $oe->{$_} *= $oe->{exchangerate} } (qw(netamount amount)); - - $column_data{netamount} = - ""; - $column_data{tax} = ""; - $column_data{amount} = - ""; - - $totalnetamount += $oe->{netamount}; - $totalamount += $oe->{amount}; - - $subtotalnetamount += $oe->{netamount}; - $subtotalamount += $oe->{amount}; - - $column_data{ids} = - qq||; - $column_data{id} = ""; - $column_data{transdate} = ""; - $column_data{reqdate} = ""; - - $column_data{$ordnumber} = - ""; - $column_data{name} = ""; - - $column_data{employee} = ""; - $column_data{shipvia} = ""; - $column_data{globalprojectnumber} = ""; - - if ($oe->{closed}) { - $column_data{closed} = ""; - $column_data{open} = ""; - } else { - $column_data{closed} = ""; - $column_data{open} = ""; - } - $column_data{"delivered"} = ""; - $column_data{transaction_description} = ""; - - $i++; - $i %= 2; - print " - "; - - map { print "\n$column_data{$_}" } @column_index; - - print qq| - -|; - + if ($form->{notdelivered}) { + push @options, $locale->text('Not delivered'); } - if ($form->{l_subtotal} eq 'Y') { - &subtotal; - } + $report->set_options('top_info_text' => join("\n", @options), + 'raw_top_info_text' => $form->parse_html_template('oe/orders_top'), + 'raw_bottom_info_text' => $form->parse_html_template('oe/orders_bottom', { 'SHOW_CONTINUE_BUTTON' => $allow_multiple_orders }), + 'output_format' => 'HTML', + 'title' => $form->{title}, + 'attachment_basename' => $attachment_basename . strftime('_%Y%m%d', localtime time), + ); + $report->set_options_from_form(); - # print totals - print qq| - |; + # add sort and escape callback, this one we use for the add sub + $form->{callback} = $href .= "&sort=$form->{sort}"; - map { $column_data{$_} = "" } @column_index; + # escape callback for href + $callback = $form->escape($href); - $column_data{netamount} = - ""; - $column_data{tax} = ""; - $column_data{amount} = - ""; + my @subtotal_columns = qw(netamount amount); - map { print "\n$column_data{$_}" } @column_index; + my %totals = map { $_ => 0 } @subtotal_columns; + my %subtotals = map { $_ => 0 } @subtotal_columns; - print qq| - - -
" - . $form->format_amount(\%myconfig, $oe->{netamount}, 2, " ") - . "" - . $form->format_amount(\%myconfig, $oe->{amount} - $oe->{netamount}, - 2, " ") - . "" - . $form->format_amount(\%myconfig, $oe->{amount}, 2, " ") . "$oe->{id}$oe->{transdate} $oe->{reqdate} {type}&id=$oe->{id}&vc=$form->{vc}&login=$form->{login}&password=$form->{password}&callback=$callback_escaped>$oe->{$ordnumber}$oe->{name}$oe->{employee} $oe->{shipvia} " . H($oe->{globalprojectnumber}) . "X  X" . - ($oe->{"delivered"} ? $locale->text("Yes") : $locale->text("No")) . - "" . H($oe->{transaction_description}) . "
 " - . $form->format_amount(\%myconfig, $totalnetamount, 2, " ") . "" - . $form->format_amount(\%myconfig, $totalamount - $totalnetamount, - 2, " ") - . "" - . $form->format_amount(\%myconfig, $totalamount, 2, " ") . "
-

|; - - # multiple invoice edit button only if gotten there via sales_order form. + my $idx = 0; - if ($form->{type} =~ /sales_order/) { - print qq| - - - - - - - - |; - } - - print qq| -
+ my $edit_url = build_std_url('action=edit', 'type', 'vc'); -
-
{script}> + foreach $oe (@{ $form->{OE} }) { + map { $oe->{$_} *= $oe->{exchangerate} } @subtotal_columns; - + $oe->{tax} = $oe->{amount} - $oe->{netamount}; + $oe->{open} = $oe->{closed} ? $locale->text('No') : $locale->text('Yes'); + $oe->{delivered} = $oe->{delivered} ? $locale->text('Yes') : $locale->text('No'); -{type}> -{vc}> + map { $subtotals{$_} += $oe->{$_}; + $totals{$_} += $oe->{$_} } @subtotal_columns; -{login}> -{password}> + map { $oe->{$_} = $form->format_amount(\%myconfig, $oe->{$_}, 2) } qw(netamount tax amount); -
+ my $row = { }; - - -|; + foreach my $column (@columns) { + next if ($column eq 'ids'); + $row->{$column} = { + 'data' => $oe->{$column}, + 'align' => $column_alignment{$column}, + }; + } - $lxdebug->leave_sub(); -} + $row->{ids} = { + 'raw_data' => $cgi->hidden('-name' => "trans_id_${idx}", '-value' => $oe->{id}) + . $cgi->checkbox('-name' => "multi_id_${idx}", '-value' => 1, '-label' => ''), + 'valign' => 'center', + 'align' => 'center', + }; -sub subtotal { - $lxdebug->enter_sub(); + $row->{$ordnumber}->{link} = $edit_url . "&id=" . E($oe->{id}) . "&callback=${callback}"; - map { $column_data{$_} = " " } @column_index; + my $row_set = [ $row ]; - $column_data{netamount} = - "" - . $form->format_amount(\%myconfig, $subtotalnetamount, 2, " ") - . ""; - $column_data{tax} = "" - . $form->format_amount(\%myconfig, $subtotalamount - $subtotalnetamount, - 2, " ") - . ""; - $column_data{amount} = - "" - . $form->format_amount(\%myconfig, $subtotalamount, 2, " ") . ""; + if (($form->{l_subtotal} eq 'Y') + && (($idx == (scalar @{ $form->{OE} } - 1)) + || ($oe->{ $form->{sort} } ne $form->{OE}->[$idx + 1]->{ $form->{sort} }))) { + push @{ $row_set }, create_subtotal_row(\%subtotals, \@columns, \%column_alignment, \@subtotal_columns, 'listsubtotal'); + } - $subtotalnetamount = 0; - $subtotalamount = 0; + $report->add_data($row_set); - print " - -"; + $idx++; + } - map { print "\n$column_data{$_}" } @column_index; + $report->add_separator(); + $report->add_data(create_subtotal_row(\%totals, \@columns, \%column_alignment, \@subtotal_columns, 'listtotal')); - print qq| - -|; + $report->generate_with_headers(); $lxdebug->leave_sub(); } diff --git a/locale/de/all b/locale/de/all index a30d72a53..a3d249feb 100644 --- a/locale/de/all +++ b/locale/de/all @@ -211,7 +211,6 @@ aktualisieren wollen?', 'Business Volume' => 'Geschäftsvolumen', 'Business deleted!' => 'Firma gelöscht.', 'Business saved!' => 'Firma gespeichert.', - 'C' => 'G', 'CANCELED' => 'Storniert', 'CSV export -- options' => 'CSV-Export -- Optionen', 'Calculate' => 'Berechnen', @@ -727,6 +726,7 @@ aktualisieren wollen?', 'New Buchungsgruppe ' => 'Neue Buchungsgruppe ', 'New Templates' => 'neue Vorlagen', 'New contact' => 'Neuer Ansprechpartner', + 'New sales order' => 'Neuer Auftrag', 'New unit' => 'Neue Einheit', 'Next Dunning Level' => 'Nächste Mahnstufe', 'No' => 'Nein', @@ -766,7 +766,6 @@ aktualisieren wollen?', 'Number missing in Row' => 'Nummer fehlt in Zeile', 'Number of copies' => 'Anzahl Kopien', 'Number pages' => 'Seiten nummerieren', - 'O' => 'O', 'OBE-Export erfolgreich!' => 'OBE-Export erfolgreich!', 'Obsolete' => 'Ungültig', 'Oct' => 'Okt', @@ -1316,12 +1315,16 @@ aktualisieren wollen?', 'print' => 'drucken', 'proforma' => 'Proforma', 'purchase_order' => 'Auftrag', + 'purchase_order_list' => 'lieferantenauftragsliste', 'quarter' => 'Vierteljährliche (quartalsweise) Abgabe', + 'quotation_list' => 'angebotsliste', 'report_generator_nextsub is not defined.' => 'report_generator_nextsub ist nicht definiert.', 'request_quotation' => 'Angebotsanforderung', 'reset' => 'zurücksetzen', + 'rfq_list' => 'anfragenliste', 's' => 's', 'sales_order' => 'Kundenauftrag', + 'sales_order_list' => 'auftragsliste', 'sales_quotation' => 'Verkaufsangebot', 'saved' => 'gespeichert', 'saved!' => 'gespeichert', diff --git a/locale/de/oe b/locale/de/oe index 61128e378..349dee837 100644 --- a/locale/de/oe +++ b/locale/de/oe @@ -24,8 +24,8 @@ $self->{texts} = { 'Bin' => 'Lagerplatz', 'Bin List' => 'Lagerliste', 'Bis' => 'bis', - 'C' => 'G', 'CANCELED' => 'Storniert', + 'CSV export -- options' => 'CSV-Export -- Optionen', 'Cannot delete order!' => 'Auftrag kann nicht gelöscht werden!', 'Cannot delete quotation!' => 'Angebot kann nicht gelöscht werden!', 'Cannot save order!' => 'Auftrag kann nicht gespeichert werden!', @@ -41,6 +41,9 @@ $self->{texts} = { 'Contact' => 'Kontakt', 'Contact Person' => 'Ansprechpartner', 'Continue' => 'Weiter', + 'Could not spawn html2ps or GhostScript.' => 'html2ps oder GhostScript 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 Limit' => 'Kreditlimit', 'Credit Limit exceeded!!!' => 'Kreditlimit überschritten!', @@ -136,7 +139,6 @@ $self->{texts} = { 'November' => 'November', 'Number' => 'Nummer', 'Number missing in Row' => 'Nummer fehlt in Zeile', - 'O' => 'O', 'Oct' => 'Okt', 'October' => 'Oktober', 'Open' => 'Offen', @@ -150,6 +152,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', @@ -198,6 +201,7 @@ $self->{texts} = { 'Sales Order' => 'Kundenauftrag', 'Sales Orders' => 'Aufträge', 'Salesman' => 'Verkäufer/in', + 'Salesperson' => 'Verkäufer', 'Save' => 'Speichern', 'Save and Close' => 'Speichern und schließen', 'Save as new' => 'als neu speichern', @@ -265,8 +269,13 @@ $self->{texts} = { 'pick_list' => 'Entnahmeliste', 'proforma' => 'Proforma', 'purchase_order' => 'Auftrag', + 'purchase_order_list' => 'lieferantenauftragsliste', + 'quotation_list' => 'angebotsliste', + 'report_generator_nextsub is not defined.' => 'report_generator_nextsub ist nicht definiert.', 'request_quotation' => 'Angebotsanforderung', + 'rfq_list' => 'anfragenliste', 'sales_order' => 'Kundenauftrag', + 'sales_order_list' => 'auftragsliste', 'sales_quotation' => 'Verkaufsangebot', 'saved!' => 'gespeichert', 'sent' => 'gesendet', @@ -297,6 +306,7 @@ $self->{subs} = { 'check_project' => 'check_project', 'continue' => 'continue', 'create_backorder' => 'create_backorder', + 'create_subtotal_row' => 'create_subtotal_row', 'customer_details' => 'customer_details', 'delete' => 'delete', 'delete_order_quotation' => 'delete_order_quotation', @@ -307,6 +317,8 @@ $self->{subs} = { 'edit' => 'edit', 'edit_e_mail' => 'edit_e_mail', 'employee_selection_internal' => 'employee_selection_internal', + 'export_as_csv' => 'export_as_csv', + 'export_as_pdf' => 'export_as_pdf', 'form_footer' => 'form_footer', 'form_header' => 'form_header', 'format_dates' => 'format_dates', @@ -335,6 +347,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', 'sales_order' => 'sales_order', @@ -358,7 +371,6 @@ $self->{subs} = { 'ship_to' => 'ship_to', 'show_history' => 'show_history', 'show_vc_details' => 'show_vc_details', - 'subtotal' => 'subtotal', 'update' => 'update', 'validate_items' => 'validate_items', 'vendor_details' => 'vendor_details', @@ -368,6 +380,8 @@ $self->{subs} = { 'weiter' => 'continue', 'löschen' => 'delete', 'email' => 'e_mail', + 'als_csv_exportieren' => 'export_as_csv', + 'als_pdf_exportieren' => 'export_as_pdf', 'rechnung' => 'invoice', 'nein' => 'no', 'auftrag' => 'order', diff --git a/templates/webpages/oe/orders_bottom_de.html b/templates/webpages/oe/orders_bottom_de.html new file mode 100644 index 000000000..17ec00217 --- /dev/null +++ b/templates/webpages/oe/orders_bottom_de.html @@ -0,0 +1,12 @@ + + Neuer Auftrag
+ +
+ + + + + + + + diff --git a/templates/webpages/oe/orders_bottom_master.html b/templates/webpages/oe/orders_bottom_master.html new file mode 100644 index 000000000..d2eb9f8b2 --- /dev/null +++ b/templates/webpages/oe/orders_bottom_master.html @@ -0,0 +1,12 @@ + + New sales order
+ +
+ + + + + + + + diff --git a/templates/webpages/oe/orders_top_de.html b/templates/webpages/oe/orders_top_de.html new file mode 100644 index 000000000..f6bc1de7b --- /dev/null +++ b/templates/webpages/oe/orders_top_de.html @@ -0,0 +1 @@ +
diff --git a/templates/webpages/oe/orders_top_master.html b/templates/webpages/oe/orders_top_master.html new file mode 100644 index 000000000..f6bc1de7b --- /dev/null +++ b/templates/webpages/oe/orders_top_master.html @@ -0,0 +1 @@ +