Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 4af0c21e

Von Bernd Blessmann vor etwa 13 Jahren hinzugefügt

  • ID 4af0c21e792126af41ef97938a95671f648bde4a
  • Vorgänger 1ed28475
  • Nachfolger 32c9d480

Vorlagensätze nach mastertemplates in eigene Verzeichnisse verschoben.

Unterschiede anzeigen:

bin/mozilla/admin.pl
opendir TEMPLATEDIR, $::lx_office_conf{paths}->{templates} or $form->error($::lx_office_conf{paths}->{templates} . " : $ERRNO");
my @all = readdir(TEMPLATEDIR);
my @alldir = sort grep { -d ($::lx_office_conf{paths}->{templates} . "/$_") && !/^\.\.?$/ } @all;
my @allhtml = sort grep { -f ($::lx_office_conf{paths}->{templates} . "/$_") && /\.html$/ } @all;
closedir TEMPLATEDIR;
@alldir = grep !/\.(html|tex|sty|odt|xml|txb)$/, @alldir;
@alldir = grep !/^(webpages|\.svn)$/, @alldir;
@allhtml = reverse grep !/Default/, @allhtml;
push @allhtml, 'Default';
@allhtml = reverse @allhtml;
@alldir = grep !/^(webpages|mstertemplates|\.svn)$/, @alldir;
$form->{ALL_TEMPLATES} = [ map { { "name", => $_, "selected" => $_ eq $myconfig->{templates} } } @alldir ];
my $lastitem = $allhtml[0];
$lastitem =~ s/-.*//g;
$form->{ALL_MASTER_TEMPLATES} = [ { "name" => $lastitem, "selected" => $lastitem eq "German" } ];
foreach my $item (@allhtml) {
$item =~ s/-.*//g;
next if ($item eq $lastitem);
# mastertemplates
opendir TEMPLATEDIR, "$::lx_office_conf{paths}->{templates}/mastertemplates" or $form->error("$::lx_office_conf{paths}->{templates}/mastertemplates" . " : $ERRNO");
my @allmaster = readdir(TEMPLATEDIR);
closedir TEMPLATEDIR;
@allmaster = sort grep { -d ("$::lx_office_conf{paths}->{templates}/mastertemplates" . "/$_") && !/^\.\.?$/ } @allmaster;
@allmaster = reverse grep !/Default/, @allmaster;
push @allmaster, 'Default';
@allmaster = reverse @allmaster;
foreach my $item (@allmaster) {
push @{ $form->{ALL_MASTER_TEMPLATES} }, { "name" => $item, "selected" => $item eq "German" };
$lastitem = $item;
}
# css dir has styles that are not intended as general layouts.
......
umask(007);
# copy templates to the directory
opendir TEMPLATEDIR, $::lx_office_conf{paths}->{templates} or $form->error($::lx_office_conf{paths}->{templates} . " : $ERRNO");
my @templates = grep /$form->{mastertemplates}.*?\.(html|tex|sty|odt|xml|txb)$/,
my $templatedir = "$::lx_office_conf{paths}->{templates}/mastertemplates/$form->{mastertemplates}";
opendir TEMPLATEDIR, $templatedir or $form->error($templatedir . " : $ERRNO");
my @templates = grep /.*?\.(html|tex|sty|odt|xml|txb)$/,
readdir TEMPLATEDIR;
closedir TEMPLATEDIR;
foreach my $file (@templates) {
open(TEMP, "<", $::lx_office_conf{paths}->{templates} . "/$file")
or $form->error($::lx_office_conf{paths}->{templates} . "/$file : $ERRNO");
open(TEMP, "<", $templatedir . "/$file")
or $form->error($templatedir . "/$file : $ERRNO");
$file =~ s/\Q$form->{mastertemplates}\E-//;
open(NEW, ">", "$form->{templates}/$file")
or $form->error("$form->{templates}/$file : $ERRNO");
doc/INSTALL.html
<title>Lx-Office Installationsanleitung</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="description" content="Lx-Office Installationsanleitung">
<meta name="generator" content="makeinfo 4.13">
<meta name="generator" content="makeinfo 4.11">
<link title="Top" rel="top" href="#Top">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<meta http-equiv="Content-Style-Type" content="text/css">
......
<body>
<h1 class="settitle">Lx-Office Installationsanleitung</h1>
<div class="contents">
<h2>Inhaltsverzeichnis</h2>
<h2>Table of Contents</h2>
<ul>
<li><a name="toc_Top" href="#Top">Inhalt der Anleitung</a>
<li><a name="toc_Aktuelle-Hinweise" href="#Aktuelle-Hinweise">1 Aktuelle Hinweise</a>
......
<div class="node">
<a name="Top"></a>
<p><hr>
<a name="Top"></a>
n&auml;chstes:&nbsp;<a rel="next" accesskey="n" href="#Aktuelle-Hinweise">Aktuelle Hinweise</a>,
aufw&auml;rts:&nbsp;<a rel="up" accesskey="u" href="#dir">(dir)</a>
......
<!-- -->
<div class="node">
<a name="Aktuelle-Hinweise"></a>
<p><hr>
<a name="Aktuelle-Hinweise"></a>
n&auml;chstes:&nbsp;<a rel="next" accesskey="n" href="#Ben_00c3_00b6tigte-Software-und-Pakete">Benötigte Software und Pakete</a>,
voriges:&nbsp;<a rel="previous" accesskey="p" href="#Top">Top</a>,
aufw&auml;rts:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
......
<!-- -->
<div class="node">
<p><hr>
<a name="Ben%c3%b6tigte-Software-und-Pakete"></a>
<a name="Ben_00c3_00b6tigte-Software-und-Pakete"></a>
<p><hr>
n&auml;chstes:&nbsp;<a rel="next" accesskey="n" href="#Manuelle-Installation-des-Programmpaketes">Manuelle Installation des Programmpaketes</a>,
voriges:&nbsp;<a rel="previous" accesskey="p" href="#Aktuelle-Hinweise">Aktuelle Hinweise</a>,
aufw&auml;rts:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
......
</ul>
<div class="node">
<a name="Betriebssystem"></a>
<p><hr>
<a name="Betriebssystem"></a>
n&auml;chstes:&nbsp;<a rel="next" accesskey="n" href="#Pakete">Pakete</a>,
aufw&auml;rts:&nbsp;<a rel="up" accesskey="u" href="#Ben_00c3_00b6tigte-Software-und-Pakete">Benötigte Software und Pakete</a>
......
geben.
<p>Alternativ dazu kann die normale Installation durchgeführt werden
(see <a href="#Manuelle-Installation-des-Programmpaketes">Manuelle Installation des Programmpaketes</a>), wenn vorher ein
(siehe <a href="#Manuelle-Installation-des-Programmpaketes">Manuelle Installation des Programmpaketes</a>), wenn vorher ein
Kompatibilitätspaket installiert wird, das die fehlenden Pakete bereitstellt.
Das Paket ist auf <a href="https://sourceforge.net/projects/lx-office/files/Lx-Office%20ERP/2.6.2/">Sourceforge</a> unter dem Namen <code>lx-erp-perl-libs-compat-v2.tar.gz</code> hinterlegt.
......
<p><code>libbit-vector-perl libsub-exporter-perl libclone-perl libclass-factory-util-perl</code>
<p>Danach sollte der Installationscheck (see <a href="#Pakete">Pakete</a>) die enthaltenen Pakete erkennen.
<p>Danach sollte der Installationscheck (siehe <a href="#Pakete">Pakete</a>) die enthaltenen Pakete erkennen.
<div class="node">
<a name="Pakete"></a>
<p><hr>
<a name="Pakete"></a>
voriges:&nbsp;<a rel="previous" accesskey="p" href="#Betriebssystem">Betriebssystem</a>,
aufw&auml;rts:&nbsp;<a rel="up" accesskey="u" href="#Ben_00c3_00b6tigte-Software-und-Pakete">Benötigte Software und Pakete</a>
......
<!-- -->
<div class="node">
<a name="Manuelle-Installation-des-Programmpaketes"></a>
<p><hr>
<a name="Manuelle-Installation-des-Programmpaketes"></a>
n&auml;chstes:&nbsp;<a rel="next" accesskey="n" href="#Anpassung-der-PostgreSQL_002dKonfiguration">Anpassung der PostgreSQL-Konfiguration</a>,
voriges:&nbsp;<a rel="previous" accesskey="p" href="#Ben_00c3_00b6tigte-Software-und-Pakete">Benötigte Software und Pakete</a>,
aufw&auml;rts:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
......
<!-- -->
<div class="node">
<p><hr>
<a name="Anpassung-der-PostgreSQL-Konfiguration"></a>
<a name="Anpassung-der-PostgreSQL_002dKonfiguration"></a>
<p><hr>
n&auml;chstes:&nbsp;<a rel="next" accesskey="n" href="#Apache_002dKonfiguration">Apache-Konfiguration</a>,
voriges:&nbsp;<a rel="previous" accesskey="p" href="#Manuelle-Installation-des-Programmpaketes">Manuelle Installation des Programmpaketes</a>,
aufw&auml;rts:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
......
</ul>
<div class="node">
<p><hr>
<a name="Zeichens%c3%a4tze%2fdie-Verwendung-von-UTF-8"></a>
<a name="Zeichens_00c3_00a4tze_002fdie-Verwendung-von-UTF_002d8"></a>
<p><hr>
n&auml;chstes:&nbsp;<a rel="next" accesskey="n" href="#g_t_00c3_0084nderungen-an-Konfigurationsdateien">Änderungen an Konfigurationsdateien</a>,
aufw&auml;rts:&nbsp;<a rel="up" accesskey="u" href="#Anpassung-der-PostgreSQL_002dKonfiguration">Anpassung der PostgreSQL-Konfiguration</a>
......
<p>Das Encoding einer Datenbank kann in <code>psql</code> mit <code>\l</code> geprüft werden.
<div class="node">
<p><hr>
<a name="%c3%84nderungen-an-Konfigurationsdateien"></a>
<a name="g_t_00c3_0084nderungen-an-Konfigurationsdateien"></a>
<p><hr>
n&auml;chstes:&nbsp;<a rel="next" accesskey="n" href="#Erweiterung-f_00c3_00bcr-servergespeicherte-Prozeduren">Erweiterung für servergespeicherte Prozeduren</a>,
voriges:&nbsp;<a rel="previous" accesskey="p" href="#Zeichens_00c3_00a4tze_002fdie-Verwendung-von-UTF_002d8">Zeichensätze/die Verwendung von UTF-8</a>,
aufw&auml;rts:&nbsp;<a rel="up" accesskey="u" href="#Anpassung-der-PostgreSQL_002dKonfiguration">Anpassung der PostgreSQL-Konfiguration</a>
......
<!-- -->
<div class="node">
<p><hr>
<a name="Erweiterung-f%c3%bcr-servergespeicherte-Prozeduren"></a>
<a name="Erweiterung-f_00c3_00bcr-servergespeicherte-Prozeduren"></a>
<p><hr>
n&auml;chstes:&nbsp;<a rel="next" accesskey="n" href="#Datenbankbenutzer-anlegen">Datenbankbenutzer anlegen</a>,
voriges:&nbsp;<a rel="previous" accesskey="p" href="#g_t_00c3_0084nderungen-an-Konfigurationsdateien">Änderungen an Konfigurationsdateien</a>,
aufw&auml;rts:&nbsp;<a rel="up" accesskey="u" href="#Anpassung-der-PostgreSQL_002dKonfiguration">Anpassung der PostgreSQL-Konfiguration</a>
......
<!-- -->
<div class="node">
<a name="Datenbankbenutzer-anlegen"></a>
<p><hr>
<a name="Datenbankbenutzer-anlegen"></a>
voriges:&nbsp;<a rel="previous" accesskey="p" href="#Erweiterung-f_00c3_00bcr-servergespeicherte-Prozeduren">Erweiterung für servergespeicherte Prozeduren</a>,
aufw&auml;rts:&nbsp;<a rel="up" accesskey="u" href="#Anpassung-der-PostgreSQL_002dKonfiguration">Anpassung der PostgreSQL-Konfiguration</a>
......
<!-- -->
<div class="node">
<p><hr>
<a name="Apache-Konfiguration"></a>
<a name="Apache_002dKonfiguration"></a>
<p><hr>
n&auml;chstes:&nbsp;<a rel="next" accesskey="n" href="#Der-Task_002dServer">Der Task-Server</a>,
voriges:&nbsp;<a rel="previous" accesskey="p" href="#Anpassung-der-PostgreSQL_002dKonfiguration">Anpassung der PostgreSQL-Konfiguration</a>,
aufw&auml;rts:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
......
<!-- -->
<div class="node">
<p><hr>
<a name="Der-Task-Server"></a>
<a name="Der-Task_002dServer"></a>
<p><hr>
n&auml;chstes:&nbsp;<a rel="next" accesskey="n" href="#Benutzerauthentifizierung-und-Administratorpasswort">Benutzerauthentifizierung und Administratorpasswort</a>,
voriges:&nbsp;<a rel="previous" accesskey="p" href="#Apache_002dKonfiguration">Apache-Konfiguration</a>,
aufw&auml;rts:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
......
</ul>
<div class="node">
<p><hr>
<a name="Konfiguration-des-Task-Servers"></a>
<a name="Konfiguration-des-Task_002dServers"></a>
<p><hr>
n&auml;chstes:&nbsp;<a rel="next" accesskey="n" href="#Prozesskontrolle">Prozesskontrolle</a>,
aufw&auml;rts:&nbsp;<a rel="up" accesskey="u" href="#Der-Task_002dServer">Der Task-Server</a>
......
<ul>
<li><code>login</code>: gültiger Lx-Office-Benutzername, der benutzt wird, um die zu verwendende Datenbankverbindung auszulesen. Der Benutzer muss in der Administration angelegt werden. Diese Option muss angegeben werden.
<li><code>run_as</code>: Wird der Server vom Systembenutzer <code>root</code> gestartet, so wechselt er auf den mit <code>run_as</code> angegebenen Systembenutzer. Der Systembenutzer muss dieselben Lese- und Schreibrechte haben, wie auch der Webserverbenutzer (siehe see <a href="#Manuelle-Installation-des-Programmpaketes">Manuelle Installation des Programmpaketes</a>). Daher ist es sinnvoll, hier denselben Systembenutzer einzutragen, unter dem auch der Webserver läuft.
<li><code>run_as</code>: Wird der Server vom Systembenutzer <code>root</code> gestartet, so wechselt er auf den mit <code>run_as</code> angegebenen Systembenutzer. Der Systembenutzer muss dieselben Lese- und Schreibrechte haben, wie auch der Webserverbenutzer (siehe siehe <a href="#Manuelle-Installation-des-Programmpaketes">Manuelle Installation des Programmpaketes</a>). Daher ist es sinnvoll, hier denselben Systembenutzer einzutragen, unter dem auch der Webserver läuft.
<li><code>debug</code>: Schaltet Debug-Informationen an und aus.
</ul>
<div class="node">
<p><hr>
<a name="Einbinden-in-den-Boot-Prozess"></a>
<a name="Einbinden-in-den-Boot_002dProzess"></a>
<p><hr>
voriges:&nbsp;<a rel="previous" accesskey="p" href="#Prozesskontrolle">Prozesskontrolle</a>,
aufw&auml;rts:&nbsp;<a rel="up" accesskey="u" href="#Der-Task_002dServer">Der Task-Server</a>
......
<code>service lx-office-task-server start</code>
<div class="node">
<a name="Prozesskontrolle"></a>
<p><hr>
<a name="Prozesskontrolle"></a>
n&auml;chstes:&nbsp;<a rel="next" accesskey="n" href="#Einbinden-in-den-Boot_002dProzess">Einbinden in den Boot-Prozess</a>,
voriges:&nbsp;<a rel="previous" accesskey="p" href="#Konfiguration-des-Task_002dServers">Konfiguration des Task-Servers</a>,
aufw&auml;rts:&nbsp;<a rel="up" accesskey="u" href="#Der-Task_002dServer">Der Task-Server</a>
......
<!-- -->
<div class="node">
<a name="Benutzerauthentifizierung-und-Administratorpasswort"></a>
<p><hr>
<a name="Benutzerauthentifizierung-und-Administratorpasswort"></a>
n&auml;chstes:&nbsp;<a rel="next" accesskey="n" href="#Benutzer_002d-und-Gruppenverwaltung">Benutzer- und Gruppenverwaltung</a>,
voriges:&nbsp;<a rel="previous" accesskey="p" href="#Der-Task_002dServer">Der Task-Server</a>,
aufw&auml;rts:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
......
<!-- -->
<div class="node">
<a name="Grundlagen-zur-Benutzerauthentifizierung"></a>
<p><hr>
<a name="Grundlagen-zur-Benutzerauthentifizierung"></a>
n&auml;chstes:&nbsp;<a rel="next" accesskey="n" href="#Administratorpasswort">Administratorpasswort</a>,
aufw&auml;rts:&nbsp;<a rel="up" accesskey="u" href="#Benutzerauthentifizierung-und-Administratorpasswort">Benutzerauthentifizierung und Administratorpasswort</a>
......
benutzt werden kann.
<div class="node">
<a name="Administratorpasswort"></a>
<p><hr>
<a name="Administratorpasswort"></a>
n&auml;chstes:&nbsp;<a rel="next" accesskey="n" href="#Authentifizierungsdatenbank">Authentifizierungsdatenbank</a>,
voriges:&nbsp;<a rel="previous" accesskey="p" href="#Grundlagen-zur-Benutzerauthentifizierung">Grundlagen zur Benutzerauthentifizierung</a>,
aufw&auml;rts:&nbsp;<a rel="up" accesskey="u" href="#Benutzerauthentifizierung-und-Administratorpasswort">Benutzerauthentifizierung und Administratorpasswort</a>
......
heißt <code>$self-&gt;{admin_password}</code>.
<div class="node">
<a name="Authentifizierungsdatenbank"></a>
<p><hr>
<a name="Authentifizierungsdatenbank"></a>
n&auml;chstes:&nbsp;<a rel="next" accesskey="n" href="#Passwort_00c3_00bcberpr_00c3_00bcfung">Passwortüberprüfung</a>,
voriges:&nbsp;<a rel="previous" accesskey="p" href="#Administratorpasswort">Administratorpasswort</a>,
aufw&auml;rts:&nbsp;<a rel="up" accesskey="u" href="#Benutzerauthentifizierung-und-Administratorpasswort">Benutzerauthentifizierung und Administratorpasswort</a>
......
automatisch anlegen (mehr dazu siehe unten).
<div class="node">
<p><hr>
<a name="Passwort%c3%bcberpr%c3%bcfung"></a>
<a name="Passwort_00c3_00bcberpr_00c3_00bcfung"></a>
<p><hr>
n&auml;chstes:&nbsp;<a rel="next" accesskey="n" href="#Name-des-Session_002dCookies">Name des Session-Cookies</a>,
voriges:&nbsp;<a rel="previous" accesskey="p" href="#Authentifizierungsdatenbank">Authentifizierungsdatenbank</a>,
aufw&auml;rts:&nbsp;<a rel="up" accesskey="u" href="#Benutzerauthentifizierung-und-Administratorpasswort">Benutzerauthentifizierung und Administratorpasswort</a>
......
</ul>
<div class="node">
<p><hr>
<a name="Name-des-Session-Cookies"></a>
<a name="Name-des-Session_002dCookies"></a>
<p><hr>
n&auml;chstes:&nbsp;<a rel="next" accesskey="n" href="#Anlegen-der-Authentifizierungsdatenbank">Anlegen der Authentifizierungsdatenbank</a>,
voriges:&nbsp;<a rel="previous" accesskey="p" href="#Passwort_00c3_00bcberpr_00c3_00bcfung">Passwortüberprüfung</a>,
aufw&auml;rts:&nbsp;<a rel="up" accesskey="u" href="#Benutzerauthentifizierung-und-Administratorpasswort">Benutzerauthentifizierung und Administratorpasswort</a>
......
existiert.
<div class="node">
<a name="Anlegen-der-Authentifizierungsdatenbank"></a>
<p><hr>
<a name="Anlegen-der-Authentifizierungsdatenbank"></a>
voriges:&nbsp;<a rel="previous" accesskey="p" href="#Name-des-Session_002dCookies">Name des Session-Cookies</a>,
aufw&auml;rts:&nbsp;<a rel="up" accesskey="u" href="#Benutzerauthentifizierung-und-Administratorpasswort">Benutzerauthentifizierung und Administratorpasswort</a>
......
<!-- -->
<div class="node">
<p><hr>
<a name="Benutzer--und-Gruppenverwaltung"></a>
<a name="Benutzer_002d-und-Gruppenverwaltung"></a>
<p><hr>
n&auml;chstes:&nbsp;<a rel="next" accesskey="n" href="#Drucken-mit-Lx_002dOffice">Drucken mit Lx-Office</a>,
voriges:&nbsp;<a rel="previous" accesskey="p" href="#Benutzerauthentifizierung-und-Administratorpasswort">Benutzerauthentifizierung und Administratorpasswort</a>,
aufw&auml;rts:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
......
</ul>
<div class="node">
<p><hr>
<a name="Zusammenh%c3%a4nge"></a>
<a name="Zusammenh_00c3_00a4nge"></a>
<p><hr>
n&auml;chstes:&nbsp;<a rel="next" accesskey="n" href="#Datenbanken-anlegen">Datenbanken anlegen</a>,
aufw&auml;rts:&nbsp;<a rel="up" accesskey="u" href="#Benutzer_002d-und-Gruppenverwaltung">Benutzer- und Gruppenverwaltung</a>
......
</ol>
<div class="node">
<a name="Datenbanken-anlegen"></a>
<p><hr>
<a name="Datenbanken-anlegen"></a>
n&auml;chstes:&nbsp;<a rel="next" accesskey="n" href="#Gruppen-anlegen">Gruppen anlegen</a>,
voriges:&nbsp;<a rel="previous" accesskey="p" href="#Zusammenh_00c3_00a4nge">Zusammenhänge</a>,
aufw&auml;rts:&nbsp;<a rel="up" accesskey="u" href="#Benutzer_002d-und-Gruppenverwaltung">Benutzer- und Gruppenverwaltung</a>
......
angelegt worden sein.
<div class="node">
<a name="Gruppen-anlegen"></a>
<p><hr>
<a name="Gruppen-anlegen"></a>
n&auml;chstes:&nbsp;<a rel="next" accesskey="n" href="#Benutzer-anlegen">Benutzer anlegen</a>,
voriges:&nbsp;<a rel="previous" accesskey="p" href="#Datenbanken-anlegen">Datenbanken anlegen</a>,
aufw&auml;rts:&nbsp;<a rel="up" accesskey="u" href="#Benutzer_002d-und-Gruppenverwaltung">Benutzer- und Gruppenverwaltung</a>
......
Datenbanken, die in dieser Installation verwaltet werden.
<div class="node">
<a name="Benutzer-anlegen"></a>
<p><hr>
<a name="Benutzer-anlegen"></a>
n&auml;chstes:&nbsp;<a rel="next" accesskey="n" href="#Gruppenmitgliedschaften-verwalten">Gruppenmitgliedschaften verwalten</a>,
voriges:&nbsp;<a rel="previous" accesskey="p" href="#Gruppen-anlegen">Gruppen anlegen</a>,
aufw&auml;rts:&nbsp;<a rel="up" accesskey="u" href="#Benutzer_002d-und-Gruppenverwaltung">Benutzer- und Gruppenverwaltung</a>
......
angelegten Datenbanken eingetragen werden.
<div class="node">
<a name="Gruppenmitgliedschaften-verwalten"></a>
<p><hr>
<a name="Gruppenmitgliedschaften-verwalten"></a>
n&auml;chstes:&nbsp;<a rel="next" accesskey="n" href="#Migration-alter-Installationen">Migration alter Installationen</a>,
voriges:&nbsp;<a rel="previous" accesskey="p" href="#Benutzer-anlegen">Benutzer anlegen</a>,
aufw&auml;rts:&nbsp;<a rel="up" accesskey="u" href="#Benutzer_002d-und-Gruppenverwaltung">Benutzer- und Gruppenverwaltung</a>
......
</ol>
<div class="node">
<a name="Migration-alter-Installationen"></a>
<p><hr>
<a name="Migration-alter-Installationen"></a>
voriges:&nbsp;<a rel="previous" accesskey="p" href="#Gruppenmitgliedschaften-verwalten">Gruppenmitgliedschaften verwalten</a>,
aufw&auml;rts:&nbsp;<a rel="up" accesskey="u" href="#Benutzer_002d-und-Gruppenverwaltung">Benutzer- und Gruppenverwaltung</a>
......
<!-- -->
<div class="node">
<p><hr>
<a name="Drucken-mit-Lx-Office"></a>
<a name="Drucken-mit-Lx_002dOffice"></a>
<p><hr>
n&auml;chstes:&nbsp;<a rel="next" accesskey="n" href="#OpenDocument_002dVorlagen">OpenDocument-Vorlagen</a>,
voriges:&nbsp;<a rel="previous" accesskey="p" href="#Benutzer_002d-und-Gruppenverwaltung">Benutzer- und Gruppenverwaltung</a>,
aufw&auml;rts:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
......
<!-- -->
<div class="node">
<p><hr>
<a name="OpenDocument-Vorlagen"></a>
<a name="OpenDocument_002dVorlagen"></a>
<p><hr>
n&auml;chstes:&nbsp;<a rel="next" accesskey="n" href="#Lx_002dOffice-ERP-verwenden">Lx-Office ERP verwenden</a>,
voriges:&nbsp;<a rel="previous" accesskey="p" href="#Drucken-mit-Lx_002dOffice">Drucken mit Lx-Office</a>,
aufw&auml;rts:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
......
Dokument OpenOffice neu gestartet und die Konvertierung mit Hilfe
eines Makros durchgeführt. Dieses Makro muss in der Dokumentenvorlage
enthalten sein und &ldquo;Standard.Conversion.ConvertSelfToPDF()&rdquo;
heißen. Die Beispielvorlage &lsquo;<samp><span class="samp">templates/German-invoice.odt</span></samp>&rsquo;
heißen. Die Beispielvorlage &lsquo;<samp><span class="samp">templates/mastertemplates/German/invoice.odt</span></samp>&rsquo;
enthält ein solches Makro, das in jeder anderen Dokumentenvorlage
ebenfalls enthalten sein muss.
......
<p>Dieses Verzeichnis, wie auch das komplette <code>users</code>-Verzeichnis, muss vom
Webserver beschreibbar sein. Dieses wurde bereits erledigt
(see <a href="#Manuelle-Installation-des-Programmpaketes">Manuelle Installation des Programmpaketes</a>), kann aber erneut überprüft
(siehe <a href="#Manuelle-Installation-des-Programmpaketes">Manuelle Installation des Programmpaketes</a>), kann aber erneut überprüft
werden, wenn die Konvertierung nach PDF fehlschlägt.
<!-- -->
<div class="node">
<p><hr>
<a name="Lx-Office-ERP-verwenden"></a>
<a name="Lx_002dOffice-ERP-verwenden"></a>
<p><hr>
voriges:&nbsp;<a rel="previous" accesskey="p" href="#OpenDocument_002dVorlagen">OpenDocument-Vorlagen</a>,
aufw&auml;rts:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
doc/INSTALL.texi
Dokument OpenOffice neu gestartet und die Konvertierung mit Hilfe
eines Makros durchgeführt. Dieses Makro muss in der Dokumentenvorlage
enthalten sein und ``Standard.Conversion.ConvertSelfToPDF()''
heißen. Die Beispielvorlage @samp{templates/German-invoice.odt}
heißen. Die Beispielvorlage @samp{templates/mastertemplates/German/invoice.odt}
enthält ein solches Makro, das in jeder anderen Dokumentenvorlage
ebenfalls enthalten sein muss.
doc/INSTALL.txt
Inhaltsverzeichnis
******************
Table of Contents
*****************
Inhalt der Anleitung
1 Aktuelle Hinweise
......
Dokument OpenOffice neu gestartet und die Konvertierung mit Hilfe eines
Makros durchgeführt. Dieses Makro muss in der Dokumentenvorlage
enthalten sein und "Standard.Conversion.ConvertSelfToPDF()" heißen. Die
Beispielvorlage `templates/German-invoice.odt' enthält ein solches
Makro, das in jeder anderen Dokumentenvorlage ebenfalls enthalten sein
muss.
Beispielvorlage `templates/mastertemplates/German/invoice.odt' enthält
ein solches Makro, das in jeder anderen Dokumentenvorlage ebenfalls
enthalten sein muss.
Als letztes muss herausgefunden werden, welchen Namen OpenOffice.org
Writer dem Verzeichnis mit den Benutzereinstellungen gibt. Unter Debian
doc/changelog
- Buchungsjournal um Filter nach Bearbeiter und Buchungsdatum (ungleich
Rechnungsdatum) erweitert
- Mastertemplates für den Ausdruck sind in eigene Unterverzeichnisse gewandert.
Dadurch wird das Hinzufügen neuer Vorlagensätze einfacher.
Kleinere neue Features und Detailverbesserungen:
- á (LATIN SMALL LETTER A WITH ACUTE) wird in Latex-Vorlagen nicht mehr durch
templates/Default-balance_sheet.html
<body bgcolor=ffffff>
<h2 align=center>
<%company%>
<br><%address%>
<p>BALANCE SHEET
<br><%period%>
</h2>
<table border=0>
<tr>
<th align=left width=400 colspan=2>ASSETS<br><hr align=left width=250 size=5 noshade></th>
<th><%this_period%></th>
<th><%last_period%></th>
</tr>
<%foreach asset_account%>
<tr>
<td> </td>
<td><%asset_account%></td>
<td align=right><%asset_this_period%></td>
<td align=right><%asset_last_period%></td>
</tr>
<%end asset_account%>
<tr>
<td colspan=2> </td>
<td><hr noshade size=1></td>
<td><hr noshade size=1></td>
</tr>
<tr valign=top>
<th align=left colspan=2>TOTAL ASSETS</th>
<td align=right><%total_assets_this_period%><hr noshade size=2></td>
<td align=right><%total_assets_last_period%><hr noshade size=2></td>
</tr>
<tr>
<th align=left colspan=4>LIABILITIES<b><hr align=left width=250 size=5 noshade></th>
</tr>
<%foreach liability_account%>
<tr>
<td></td>
<td><%liability_account%></td>
<td align=right><%liability_this_period%></td>
<td align=right><%liability_last_period%></td>
</tr>
<%end liability_account%>
<tr>
<td colspan=2> </td>
<td><hr noshade size=1></td>
<td><hr noshade size=1></td>
</tr>
<tr valign=top>
<td></td>
<th align=left>Total Liabilities</th>
<td align=right><%total_liabilities_this_period%><br><hr noshade size=2</td>
<td align=right><%total_liabilities_last_period%><br><hr noshade size=2</td>
</tr>
<tr>
<th align=left colspan=4>SHAREHOLDER'S EQUITY<br><hr align=left width=250 size=5 noshade></th>
</tr>
<%foreach equity_account%>
<tr>
<td></td>
<td><%equity_account%></td>
<td align=right><%equity_this_period%></td>
<td align=right><%equity_last_period%></td>
</tr>
<%end equity_account%>
<tr>
<td colspan=2> </td>
<td><hr noshade size=1></td>
<td><hr noshade size=1></td>
</tr>
<tr valign=top>
<td></td>
<th align=left>Total Equity</th>
<td align=right><%total_equity_this_period%><br><hr noshade size=2</td>
<td align=right><%total_equity_last_period%><br><hr noshade size=2</td>
</tr>
<tr valign=top>
<th align=left colspan=2>TOTAL LIABILITIES & EQUITY</th>
<td align=right><%total_this_period%><br><hr noshade size=2></td>
<td align=right><%total_last_period%><br><hr noshade size=2></td>
</tr>
</table>
templates/Default-bin_list.html
<body bgcolor=ffffff>
<table width=100%>
<tr>
<td width=10>&nbsp;</td>
<td>
<table width=100%>
<tr>
<td>
<h4>
<%company%>
<br><%address%>
</h4>
</td>
<th><img src=http://localhost/lx-erp/lx-office-erp.png border=0 width=64 height=58></th>
<th align=right>
<h4>
Tel: <%tel%>
<br>Fax: <%fax%>
</h4>
</td>
</tr>
<tr>
<th colspan=3>
<h4>B I N &nbsp;&nbsp; L I S T</h4>
</th>
</tr>
</table>
</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>
<table width=100% cellspacing=0 cellpadding=0>
<tr bgcolor=000000>
<th align=left width=50%><font color=ffffff>From</th>
<th align=left width=50%><font color=ffffff>Ship To</th>
</tr>
<tr valign=top>
<td><%name%>
<br><%street%>
<br><%zipcode%>
<br><%city%>
<br><%country%>
<br>
<%if contact%>
<br>Attn: <%contact%>
<%end contact%>
<%if vendorphone%>
<br>Tel: <%vendorphone%>
<%end vendorphone%>
<%if vendorfax%>
<br>Fax: <%vendorfax%>
<%end vendorfax%>
<%if email%>
<br><%email%>
<%end email%>
</td>
<td><%shiptoname%>
<br><%shiptostreet%>
<br><%shiptozipcode%>
<br><%shiptocity%>
<br><%shiptocountry%>
<br>
<%if shiptocontact%>
<br>Attn: <%shiptocontact%>
<%end shiptocontact%>
<%if shiptophone%>
<br>Tel: <%shiptophone%>
<%end shiptophone%>
<%if shiptofax%>
<br>Fax: <%shiptofax%>
<%end shiptofax%>
</td>
</tr>
</table>
</td>
</tr>
<tr height=5></tr>
<tr>
<td>&nbsp;</td>
<td>
<table width=100% border=1>
<tr>
<th width=17% align=left nowrap>Order #</th>
<th width=17% align=left nowrap>Date</th>
<th width=17% align=left nowrap>Contact</th>
<%if warehouse%>
<th width=17% align=left nowrap>Warehouse</th>
<%end warehouse%>
<th width=17% align=left>Shipping Point</th>
<th width=15% align=left>Ship via</th>
</tr>
<tr>
<td><%ordnumber%>&nbsp;</td>
<%if shippingdate%>
<td><%shippingdate%></td>
<%end shippingdate%>
<%if not shippingdate%>
<td><%orddate%></td>
<%end shippingdate%>
<td><%employee%>&nbsp;</td>
<%if warehouse%>
<td><%warehouse%></td>
<%end warehouse%>
<td><%shippingpoint%>&nbsp;</td>
<td><%shipvia%>&nbsp;</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>
<table width=100%>
<tr bgcolor=000000>
<th align=left><font color=ffffff>Pos</th>
<th align=left><font color=ffffff>Number</th>
<th align=left><font color=ffffff>Description</th>
<th><font color=ffffff>Serialnumber</th>
<th>&nbsp;</th>
<th><font color=ffffff>Qty</th>
<th><font color=ffffff>Recd</th>
<th>&nbsp;</th>
<th><font color=ffffff>Bin</th>
</tr>
<%foreach number%>
<tr valign=top>
<td><%runningnumber%></td>
<td><%number%></td>
<td><%description%></td>
<td><%serialnumber%></td>
<td><%deliverydate%></td>
<td align=right><%qty%></td>
<td align=right><%ship%></td>
<td><%unit%></td>
<td><%bin%></td>
</tr>
<%end number%>
</table>
</td>
</tr>
<tr>
<td>&nbsp;</td>
<td><hr noshade></td>
</tr>
</table>
templates/Default-bin_list.tex
\documentclass[twoside]{scrartcl}
\usepackage[frame]{xy}
\usepackage{tabularx}
\usepackage[utf8]{inputenc}
\usepackage{graphicx}
\setlength{\voffset}{0.5cm}
\setlength{\hoffset}{-2.0cm}
\setlength{\topmargin}{0cm}
\setlength{\headheight}{0.5cm}
\setlength{\headsep}{1cm}
\setlength{\topskip}{0pt}
\setlength{\oddsidemargin}{1.0cm}
\setlength{\evensidemargin}{1.0cm}
\setlength{\textwidth}{19.2cm}
\setlength{\textheight}{24.7cm}
\setlength{\footskip}{1cm}
\setlength{\parindent}{0pt}
\renewcommand{\baselinestretch}{1}
\begin{document}
\pagestyle{myheadings}
\thispagestyle{empty}
\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
\vspace*{-1.3cm}
\parbox{\textwidth}{
\parbox[b]{.42\textwidth}{%
<%company%>
<%address%>
}\hfill
\begin{tabular}[b]{rr@{}}
Telephone & <%tel%>\\
Facsimile & <%fax%>
\end{tabular}
\rule[1.5ex]{\textwidth}{0.5pt}
}
<%pagebreak 90 27 37%>
\end{tabularx}
\newpage
\markboth{<%company%>\hfill <%ordnumber%>}{<%company%>\hfill <%ordnumber%>}
\vspace*{-12pt}
\begin{tabularx}{\textwidth}{@{}rlXllrrll@{}}
\textbf{Pos} & \textbf{Number} & \textbf{Description} & \textbf{Serial Number} & & \textbf{Qty} & \textbf{Recd} & & \textbf{Bin} \\
<%end pagebreak%>
\vspace*{0.5cm}
\parbox[t]{1cm}{\hfill}
\parbox[t]{.5\textwidth}{
\textbf{From}
\vspace{0.7cm}
<%name%> \\
<%street%> \\
<%zipcode%> \\
<%city%> \\
<%country%>
}
\parbox[t]{.4\textwidth}{
\textbf{Ship To}
\vspace{0.7cm}
<%shiptoname%> \\
<%shiptostreet%> \\
<%shiptozipcode%> \\
<%shiptocity%> \\
<%shiptocountry%>
}
\hfill
\vspace{1cm}
\textbf{B I N} \parbox{0.3cm}{\hfill} \textbf{L I S T}
\hfill
\vspace{1cm}
\begin{tabularx}{\textwidth}{*{6}{|X}|} \hline
\textbf{Order \#} & \textbf{Date} & \textbf{Contact}
<%if warehouse%>
& \textbf{Warehouse}
<%end warehouse%>
& \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5em]
\hline
<%ordnumber%>
<%if shippingdate%>
& <%shippingdate%>
<%end shippingdate%>
<%if not shippingdate%>
& <%orddate%>
<%end shippingdate%>
& <%employee%>
<%if warehouse%>
& <%warehouse%>
<%end warehouse%>
& <%shippingpoint%> & <%shipvia%> \\
\hline
\end{tabularx}
\vspace{1cm}
\begin{tabularx}{\textwidth}{@{}rlXllrrll@{}}
\textbf{Pos} & \textbf{Number} & \textbf{Description} & \textbf{Serial Number} & & \textbf{Qty} & \textbf{Recd} & & \textbf{Bin} \\
<%foreach number%>
<%runningnumber%> & <%number%> & <%description%> & <%serialnumber%> &
<%deliverydate%> & <%qty%> & <%ship%> & <%unit%> & <%bin%> \\
<%end number%>
\end{tabularx}
\rule{\textwidth}{2pt}
\end{document}
templates/Default-check.tex
\documentclass[twoside]{scrartcl}
\usepackage[frame]{xy}
\usepackage{tabularx}
\usepackage[utf8]{inputenc}
\setlength{\voffset}{0.4cm}
\setlength{\hoffset}{-2.0cm}
\setlength{\topmargin}{0cm}
\setlength{\headheight}{0.0cm}
\setlength{\headsep}{1cm}
\setlength{\topskip}{0pt}
\setlength{\oddsidemargin}{1.0cm}
\setlength{\evensidemargin}{1.0cm}
\setlength{\textwidth}{19.2cm}
\setlength{\textheight}{24.5cm}
\setlength{\footskip}{1cm}
\setlength{\parindent}{0pt}
\renewcommand{\baselinestretch}{1}
\begin{document}
\fontfamily{cmss}\fontsize{9pt}{9pt}\selectfont
\parbox[t]{12cm}{
<%company%>
<%address%>}
\hfill
\parbox[t]{6cm}{\hfill <%source%>}
\vspace*{0.6cm}
<%text_amount%> \dotfill <%decimal%>/100 \makebox[0.5cm]{\hfill}
\vspace{0.5cm}
\hfill <%datepaid%> \makebox[2cm]{\hfill} <%amount%>
\vspace{0.5cm}
<%name%>
<%street%>
<%zipcode%>
<%city%>
<%country%>
\vspace{2.8cm}
<%company%>
\vspace{0.5cm}
<%name%> \hfill <%datepaid%> \hfill <%source%>
\vspace{0.5cm}
\begin{tabularx}{\textwidth}{lXrr@{}}
\textbf{Invoice No.} & \textbf{Invoice Date}
& \textbf{Due} & \textbf{Applied} \\
<%foreach invnumber%>
<%invnumber%> & <%invdate%> \dotfill
& <%due%> & <%paid%> \\
<%end invnumber%>
\end{tabularx}
\vfill
\end{document}
templates/Default-income_statement.html
<body bgcolor=ffffff>
<h2 align=center>
<%company%>
<br><%address%>
<p>INCOME STATEMENT
<br><%period%>
</h2>
<table width=100% border=0>
<tr>
<th width=400 align=left colspan=2>INCOME<br><hr width=300 size=5 align=left noshade></th>
<th><%this_period%></th>
<th><%last_period%></th>
</tr>
<%foreach income_account%>
<tr>
<td width=4> </td>
<td><%income_account%></td>
<td align=right><%income_this_period%></td>
<td align=right><%income_last_period%></td>
</tr>
<%end income_account%>
<tr>
<td colspan=2> </td>
<td><hr noshade size=1></td>
<td><hr noshade size=1></td>
</tr>
<tr valign=top>
<td> </td>
<th align=left>Total Income</th>
<td align=right><%total_income_this_period%><hr noshade size=2></td>
<td align=right><%total_income_last_period%><hr noshade size=2></td>
</tr>
<tr>
<th align=left colspan=2>EXPENSES<br><hr width=300 size=5 align=left noshade></th>
</tr>
<%foreach expense_account%>
<tr>
<td> </td>
<td><%expense_account%></td>
<td align=right><%expenses_this_period%></td>
<td align=right><%expenses_last_period%></td>
</tr>
<%end expense_account%>
<tr>
<td colspan=2> </td>
<td><hr noshade size=1></td>
<td><hr noshade size=1></td>
</tr>
<tr valign=top>
<td> </td>
<th align=left>Total Expenses</th>
<td align=right><%total_expenses_this_period%><br><hr noshade size=2</td>
<td align=right><%total_expenses_last_period%><br><hr noshade size=2</td>
</tr>
<tr valign=top>
<th align=left colspan=2>INCOME / (LOSS)</th>
<td align=right><%total_this_period%><br><hr noshade size=2></td>
<td align=right><%total_last_period%><br><hr noshade size=2></td>
</tr>
</table>
templates/Default-invoice.html
<body bgcolor=ffffff>
<table width=100%>
<tr valign=bottom>
<td width=10>&nbsp;</td>
<td>
<table width=100%>
<tr>
<td>
<h4>
<%company%>
<br><%address%>
</h4>
</td>
<td align=right>
<h4>
Telephone: <%tel%>
<br>Facsimile: <%fax%>
</h4>
</td>
</tr>
<tr>
<th colspan=3>
<h4>I N V O I C E</h4>
</th>
</tr>
</table>
<table width=100% callspacing=0 cellpadding=0>
<tr>
<td align=right>
<table>
<tr>
<th align=right>Invoice Date</th><td width=10>&nbsp;</td><td><%invdate%></td>
</tr>
<tr>
<th align=right>Due Date</th><td width=10>&nbsp;</td><td><%duedate%></td>
</tr>
<tr>
<th align=right>Number</th><td>&nbsp;</td><td><%invnumber%></td></tr>
</tr>
<!--
<tr>
<th align=right>Clerk:</th><td>&nbsp;</td><td><%employee%></td>
</tr>
-->
<tr>
<td>&nbsp;</td>
</tr>
</td>
</table>
</tr>
<tr>
<td>
<table width=100%>
<tr bgcolor=000000>
<th align=left><font color=ffffff>To:</th>
<th align=left><font color=ffffff>Ship To:</th>
</tr>
<!--
other variables which can be use:
contact, shiptocontact, shiptophone, shiptofax
-->
<tr valign=top>
<td><%name%>
<br><%street%>
<br><%zipcode%>
<br><%city%>
<br><%country%>
</td>
<td><%shiptoname%>
<br><%shiptostreet%>
<br><%shiptozipcode%>
<br><%shiptocity%>
<br><%shiptocountry%>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td>
<table width=100%>
<tr bgcolor=000000>
<!-- <th align=right><font color=ffffff>No.</th> -->
<th align=left><font color=ffffff>Number</th>
<th align=left><font color=ffffff>Description</th>
<th><font color=ffffff>Qt'y</th>
<th>&nbsp;</th>
<th><font color=ffffff>Price</th>
<th><font color=ffffff>Disc</th>
<th><font color=ffffff>Amount</th>
</tr>
<%foreach number%>
<tr valign=top>
<!-- <td align=right><%runningnumber%>.</td>
adjust the colspan if you include this to shift subtotal one to the right
-->
<td><%number%></td>
<td><%description%></td>
<td align=right><%qty%></td>
<td><%unit%></td>
<td align=right><%sellprice%></td>
<td align=right><%discount%></td>
<td align=right><%linetotal%></td>
</tr>
<%end number%>
<!--
you can also use netprice instead of sellprice if you
don't want to show the discount
netprice = sellprice - discount
-->
<tr>
<td colspan=7><hr noshade></td>
</tr>
<tr>
<%if taxincluded%>
<th colspan=5 align=right>Total</th>
<td colspan=2 align=right><%invtotal%></td>
<%end taxincluded%>
<%if not taxincluded%>
<th colspan=5 align=right>Subtotal</th>
<td colspan=2 align=right><%subtotal%></td>
<%end taxincluded%>
</tr>
<%foreach tax%>
<tr>
<th colspan=5 align=right><%taxdescription%> on <%taxbase%> @ <%taxrate%> %</th>
<td colspan=2 align=right><%tax%></td>
</tr>
<%end tax%>
<%if paid%>
<tr>
<th colspan=5 align=right>Paid</th>
<td colspan=2 align=right>- <%paid%></td>
</tr>
<%end paid%>
<tr>
<td colspan=3>&nbsp;</td>
<td colspan=4><hr noshade></td>
</tr>
<tr>
<td colspan=3>Terms Net <b><%terms%></b> days</td>
<th colspan=2 align=right>Outstanding</th>
<th colspan=2 align=right><%total%></th>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<table width=100%>
<tr valign=top>
<%if notes%>
<td>Notes</td>
<td><%notes%></td>
<%end notes%>
<td align=right>
All prices in <b><%currency%></b> Funds
<br><%shippingpoint%>
</td>
</tr>
</table>
</td>
</tr>
<tr><td>&nbsp;</td></tr>
<%if paid%>
<tr>
<td colspan=7>
<table width=60%>
<tr>
<th align=left>Payments</th>
</tr>
<tr>
<td colspan=4>
<hr noshade>
</td>
</tr>
<tr>
<th align=left>Date</th>
<th align=left>Account</th>
<th align=left>Source</th>
<th align=left>Amount</th>
</tr>
<%end paid%>
<%foreach payment%>
<tr>
<td><%paymentdate%></td>
<td><%paymentaccount%></td>
<td><%paymentsource%></td>
<td><%payment%></td>
</tr>
<%end payment%>
<%if paid%>
</table>
</td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
<%end paid%>
<tr>
<th colspan=7>
<br>Thank you for your valued business!
</th>
</tr>
<tr><td>&nbsp;</td></tr>
<tr>
<td>
<table width=100%>
<tr valign=top>
<td><font size=-3>
Payment due NET <%terms%> Days from date of Invoice.
Interest on overdue amounts will acrue at the rate of 1.5% per month
from due date until paid in full. Items returned are subject to
a 10% restocking charge. A return authorization must be obtained
from <%company%> before goods are returned. Returns must be shipped
prepaid and properly insured. <%company%> will not be responsible
for damages during transit.
</font>
</td>
<td width=150>
X <hr noshade>
</td>
</tr>
</table>
</td>
</tr>
<%foreach tax%>
<tr>
<th colspan=7 align=left><font size=-2><%taxdescription%> Registration <%taxnumber%></th>
</tr>
<%end tax%>
<%if taxincluded%>
<tr>
<th colspan=7 align=left><font size=-2>Taxes shown are included in price.</th>
</tr>
<%end taxincluded%>
<!-- business number
<tr>
<th colspan=7 align=left><font size=-2>Business Number: <%businessnumber%></font></th>
</tr>
-->
<!-- banking information
<tr>
<th colspan=7 align=left>Banking Information:
<br>Bank
<br>Transit No.
<br>Account No.
</td>
</tr>
-->
</table>
</td>
</tr>
</table>
</body>
</html>
templates/Default-invoice.tex
\documentclass[twoside]{scrartcl}
\usepackage[frame]{xy}
\usepackage{tabularx}
\usepackage[utf8]{inputenc}
\setlength{\voffset}{0.5cm}
\setlength{\hoffset}{-2.0cm}
\setlength{\topmargin}{0cm}
\setlength{\headheight}{0.5cm}
\setlength{\headsep}{1cm}
\setlength{\topskip}{0pt}
\setlength{\oddsidemargin}{1.0cm}
\setlength{\evensidemargin}{1.0cm}
\setlength{\textwidth}{19.2cm}
\setlength{\textheight}{24.5cm}
\setlength{\footskip}{1cm}
\setlength{\parindent}{0pt}
\renewcommand{\baselinestretch}{1}
\begin{document}
\newlength{\descrwidth}\setlength{\descrwidth}{10cm}
\newsavebox{\hdr}
\sbox{\hdr}{
\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont
\parbox{\textwidth}{
\parbox[b]{12cm}{
<%company%>
<%address%>}\hfill
\begin{tabular}[b]{rr@{}}
Telephone & <%tel%>\\
Facsimile & <%fax%>
\end{tabular}
\rule[1.5ex]{\textwidth}{0.5pt}
}
}
\fontfamily{cmss}\fontshape{n}\selectfont
\markboth{<%company%>\hfill <%invnumber%>}{\usebox{\hdr}}
\pagestyle{myheadings}
%\thispagestyle{empty} use this with letterhead paper
<%pagebreak 90 27 37%>
\end{tabular*}
\rule{\textwidth}{2pt}
\hfill
\begin{tabularx}{7cm}{Xr@{}}
\textbf{Subtotal} & \textbf{<%sumcarriedforward%>} \\
\end{tabularx}
\newpage
\markright{<%company%>\hfill <%invnumber%>}
\vspace*{-12pt}
... Dieser Diff wurde abgeschnitten, weil er die maximale Anzahl anzuzeigender Zeilen überschreitet.

Auch abrufbar als: Unified diff