Revision d575e646
Von Moritz Bunkus vor etwa 12 Jahren hinzugefügt
doc/dokumentation.xml | ||
---|---|---|
565 | 565 |
bestimmte Eingaben von kivitendo. Falls es Probleme mit Umlauten in Ihrere Installation gibt, muss zwingend Version 0.68 oder |
566 | 566 |
aber Version 0.72 und neuer eingesetzt werden.</para> |
567 | 567 |
|
568 |
<para>Mit CPAN lässt sie sich die Vorgängerversion wie folgt
|
|
568 |
<para>Mit <ulink url="http://www.cpan.org">CPAN</ulink> lässt sie sich die Vorgängerversion wie folgt
|
|
569 | 569 |
installieren:</para> |
570 | 570 |
|
571 | 571 |
<programlisting>force install M/MS/MSTROUT/FCGI-0.68.tar.gz</programlisting> |
... | ... | |
1312 | 1312 |
<sect1 id="Drucken-mit-kivitendo"> |
1313 | 1313 |
<title>Drucken mit kivitendo</title> |
1314 | 1314 |
|
1315 |
<para>Das Drucksystem von kivitendo benutzt von Haus aus LaTeX Vorlagen. |
|
1316 |
Um drucken zu können, braucht der Server ein geeignetes LaTeX System. Am |
|
1317 |
einfachsten ist dazu eine <literal>texlive</literal> Installation. Unter |
|
1318 |
Debianoiden Betriebssystemen installiert man die Pakete mit:</para> |
|
1315 |
<para>Das Drucksystem von kivitendo benutzt von Haus aus LaTeX-Vorlagen. Um drucken zu können, braucht der Server ein geeignetes |
|
1316 |
LaTeX System. Am einfachsten ist dazu eine <literal>texlive</literal> Installation. Unter Debianoiden Betriebssystemen installiert man |
|
1317 |
die Pakete mit:</para> |
|
1319 | 1318 |
|
1320 |
<para><programlisting>aptitude install \ |
|
1321 |
texlive-base-bin \ |
|
1322 |
texlive-latex-recommended \ |
|
1323 |
texlive-fonts-recommended \ |
|
1324 |
texlive-latex-extra \ |
|
1325 |
texlive-lang-german \ |
|
1326 |
texlive-generic-extra |
|
1327 |
</programlisting></para> |
|
1319 |
<para><programlisting>aptitude install texlive-base-bin texlive-latex-recommended texlive-fonts-recommended \ |
|
1320 |
texlive-latex-extra texlive-lang-german texlive-generic-extra</programlisting></para> |
|
1328 | 1321 |
|
1329 |
<para>TODO: rpm Pakete.</para>
|
|
1322 |
<para>TODO: RPM-Pakete.</para>
|
|
1330 | 1323 |
|
1331 |
<para>kivitendo bringt 3 alternative Vorlagensätze mit:</para>
|
|
1332 |
<itemizedlist>
|
|
1333 |
<listitem>Standard</listitem>
|
|
1334 |
<listitem>f-tex</listitem>
|
|
1335 |
<listitem>RB</listitem>
|
|
1336 |
</itemizedlist>
|
|
1324 |
<para>kivitendo bringt drei alternative Vorlagensätze mit:</para>
|
|
1325 |
<itemizedlist> |
|
1326 |
<listitem><para>Standard</para></listitem>
|
|
1327 |
<listitem><para>f-tex</para></listitem>
|
|
1328 |
<listitem><para>RB</para></listitem>
|
|
1329 |
</itemizedlist> |
|
1337 | 1330 |
|
1338 | 1331 |
<sect2 id="Vorlagenverzeichnis-anlegen" xreflabel="Vorlagenverzeichnis anlegen"> |
1339 | 1332 |
<title>Vorlagenverzeichnis anlegen</title> |
1340 |
<para>Bei einem neuen Benutzer/Mandanten lässt sich einer dieser Vorlagensätze |
|
1341 |
als Basis für die zu druckenden Dokumente auswählen:</para> |
|
1333 |
<para>Im Administrationsbereich lässt sich bei einem Benutzer/Mandanten einer dieser Vorlagensätze als Basis für die zu |
|
1334 |
druckenden Dokumente auswählen. Rufen Sie dazu die <guimenu>Benutzerverwaltung</guimenu> auf.</para> |
|
1335 |
|
|
1336 |
<para>Wählen Sie dort einen Benutzer aus oder legen Sie einen neuen an. In der Benutzerbearbeiten-Maske müssen Sie zwei Dinge |
|
1337 |
angeben:</para> |
|
1338 |
|
|
1339 |
<orderedlist> |
|
1340 |
<listitem><para><option>Name</option>: Der Verzeichnisname für den neuen Vorlagensatz. Dieser kann im Rahmen der üblichen |
|
1341 |
Bedingungen für Verzeichnisnamen frei gewählt werden.</para></listitem> |
|
1342 |
<listitem><para><option>Vorlagen auswählen</option>: Wählen Sie hier den Vorlagensatz aus, der kopiert werden soll |
|
1343 |
(<filename>Standard</filename>, <filename>f-tex</filename> oder <filename>RB</filename>.)</para></listitem> |
|
1344 |
</orderedlist> |
|
1342 | 1345 |
|
1343 |
<para><programlisting>unter: |
|
1344 |
Administration -> Benutzerverwaltung -> [ein Benutzer] |
|
1345 |
Erzeuge Vorlagen, Name: [Name für das neue Vorlagenverzeichnis] |
|
1346 |
Vorlagen auswählen: [Default, f-tex oder RB] |
|
1347 |
-> Speichern |
|
1348 |
</programlisting></para> |
|
1349 |
<para>der gleiche Vorlagensatz kann, wenn er mal angelegt ist, bei mehreren Benutzern verwendet werden.</para> |
|
1346 |
<para>Der gleiche Vorlagensatz kann, wenn er mal angelegt ist, bei mehreren Benutzern verwendet werden.</para> |
|
1350 | 1347 |
|
1351 | 1348 |
<para>Die Abhängigkeiten kann man prüfen mit:</para> |
1352 |
<para><programlisting>/scripts/installation_check.pl -l</programlisting></para> |
|
1349 |
|
|
1350 |
<programlisting>/scripts/installation_check.pl -l</programlisting> |
|
1353 | 1351 |
|
1354 | 1352 |
</sect2> |
1355 |
<sect2 id="Standard"> |
|
1356 |
<title>Default</title>
|
|
1353 |
<sect2 id="Vorlagen-Standard">
|
|
1354 |
<title>Standard</title>
|
|
1357 | 1355 |
|
1358 |
<para>Der standard Vorlagensatz von Kivitendo. Wie unter
|
|
1359 |
<ulink url="http://demo.kivitendo.org">http://demo.kivitendo.org</ulink> zu sehen.</para>
|
|
1356 |
<para>Der Standard-Vorlagensatz von Kivitendo. Wie unter <ulink url="http://demo.kivitendo.org">http://demo.kivitendo.org</ulink> zu
|
|
1357 |
sehen.</para> |
|
1360 | 1358 |
|
1361 | 1359 |
</sect2> |
1362 | 1360 |
|
1363 | 1361 |
<sect2 id="f-tex"> |
1364 | 1362 |
<title>f-tex</title> |
1365 | 1363 |
|
1366 |
<para>Ein Vorlagensatz, der in Wenigen Minuten alle Dokumente zur stellt.</para>
|
|
1364 |
<para>Ein Vorlagensatz, der in wenigen Minuten alle Dokumente zur Verfügung stellt.</para>
|
|
1367 | 1365 |
|
1368 | 1366 |
<sect3 id="f-tex-Feature-Übersicht"> |
1369 |
<title>f-tex Feature Übersicht</title>
|
|
1367 |
<title>Feature-Übersicht</title>
|
|
1370 | 1368 |
<itemizedlist> |
1371 |
<listitem>Keine Retundanz. Es wird ein und die selbe Latex-Vorlage für alle |
|
1372 |
briefartigen Dokumente verwendet. Also Angebot, Rechnung, |
|
1373 |
Performarechnung, Lieferschein, aber eben nicht für Paketaufkleber |
|
1374 |
etc.. </listitem> |
|
1375 |
<listitem>Leichte Anpassung an das Firmen Layout durch verwendung eines Hintergrund-PDF |
|
1376 |
dieses kann leicht mit dem eigenen Lieblingsprogramm erstellt werden |
|
1377 |
(Openoffice, Inkscape, Gimp, Adobe*) |
|
1378 |
</listitem> |
|
1379 |
<listitem>Hintergrundpdf um schaltbar auf "nur erste Seite" (default) oder "alle Seiten" |
|
1380 |
(option "bgPdfFirstPageOnly" in Datei letter.lco) |
|
1381 |
</listitem> |
|
1382 |
<listitem>Hintergrundpdf für Ausdruck auf bereits bedrucktem Briefpapier Abschaltbar, |
|
1383 |
es wird dann nur bei per email versendeten Dokumenten eingebunden. |
|
1384 |
(Option "bgPdfEmailOnly" in Datei letter.lco) |
|
1385 |
</listitem> |
|
1386 |
<listitem>Nutzung der Layout-Funktionen von Latex für Seitenumbruch, |
|
1387 |
wiederholung von Kopfzeilen, Zwischensummen etc. (danke an Kai-Martin für |
|
1388 |
die Vorarbeit) |
|
1389 |
</listitem> |
|
1390 |
<listitem>Anzeige des Empfängerlandes im Adressfeld nur, wenn es vom Land des |
|
1391 |
eigenen Unternehmens abweicht (also die Rechnung das Land verlässt). |
|
1392 |
</listitem> |
|
1393 |
<listitem>Multisprachfähig leicht um weitere Sprachen zu erweitern, alle |
|
1394 |
Übersetzungen in der Datei translatinos.tex. |
|
1395 |
</listitem> |
|
1396 |
<listitem>Auflistung von Bruttopreisen für Endverbraucher. |
|
1397 |
</listitem> |
|
1369 |
<listitem><para>Keine Redundanz. Es wird ein- und dieselbe LaTeX-Vorlage für alle briefartigen Dokumente verwendet. Also |
|
1370 |
Angebot, Rechnung, Performarechnung, Lieferschein, aber eben nicht für Paketaufkleber etc..</para></listitem> |
|
1371 |
|
|
1372 |
<listitem><para>Leichte Anpassung an das Firmen-Layout durch verwendung eines Hintergrund-PDF. Dieses kann leicht mit dem |
|
1373 |
eigenen Lieblingsprogramm erstellt werden (Openoffice, Inkscape, Gimp, Adobe*)</para></listitem> |
|
1374 |
|
|
1375 |
<listitem><para>Hintergrund-PDF umschaltbar auf "nur erste Seite" (Standard) oder "alle Seiten" (Option |
|
1376 |
"<option>bgPdfFirstPageOnly</option>" in Datei <filename>letter.lco</filename>)</para></listitem> |
|
1377 |
|
|
1378 |
<listitem><para>Hintergrund-PDF für Ausdruck auf bereits bedrucktem Briefpapier abschaltbar. Es wird dann nur bei per E-Mail |
|
1379 |
versendeten Dokumenten eingebunden (Option "<option>bgPdfEmailOnly</option>" in Datei |
|
1380 |
<filename>letter.lco</filename>).</para></listitem> |
|
1381 |
|
|
1382 |
<listitem><para>Nutzung der Layout-Funktionen von LaTeX für Seitenumbruch, Wiederholung von Kopfzeilen, Zwischensummen |
|
1383 |
etc. (danke an Kai-Martin Knaak für die Vorarbeit)</para></listitem> |
|
1384 |
|
|
1385 |
<listitem><para>Anzeige des Empfängerlandes im Adressfeld nur, wenn es vom Land des eigenen Unternehmens abweicht (also die |
|
1386 |
Rechnung das Land verlässt).</para></listitem> |
|
1387 |
|
|
1388 |
<listitem><para>Multisprachfähig leicht um weitere Sprachen zu erweitern, alle Übersetzungen in der Datei |
|
1389 |
<filename>translatinos.tex</filename>.</para></listitem> |
|
1390 |
|
|
1391 |
<listitem><para>Auflistung von Bruttopreisen für Endverbraucher.</para></listitem> |
|
1398 | 1392 |
</itemizedlist> |
1399 | 1393 |
</sect3> |
1400 | 1394 |
|
1401 |
<sect3 id="f-tex-installation">
|
|
1402 |
<title>f-tex Die Installation</title>
|
|
1395 |
<sect3 id="f-tex-Installation">
|
|
1396 |
<title>Die Installation</title> |
|
1403 | 1397 |
<itemizedlist> |
1404 |
<listitem>Vorlagenverzeichnis mit Option f-tex anlegen, siehe: |
|
1405 |
<xref linkend="Vorlagenverzeichnis-anlegen"/> |
|
1406 |
Das Vorlagensystem funktioniert jetzt schon, hat allerdings noch einen |
|
1407 |
Beispiel Briefkopf |
|
1408 |
</listitem> |
|
1409 |
<listitem> |
|
1410 |
Erstelle eine pdf-Hintergrund Datei und verlinke sie nach |
|
1411 |
<programlisting>./letter_head.pdf</programlisting> |
|
1412 |
</listitem> |
|
1413 |
<listitem> |
|
1414 |
Editiere den Bereich "settings" in der datei letter.lco |
|
1415 |
</listitem> |
|
1398 |
<listitem><para>Vorlagenverzeichnis mit Option f-tex anlegen, siehe: <xref linkend="Vorlagenverzeichnis-anlegen"/>. Das |
|
1399 |
Vorlagensystem funktioniert jetzt schon, hat allerdings noch einen Beispiel-Briefkopf.</para></listitem> |
|
1400 |
|
|
1401 |
<listitem><para>Erstelle eine pdf-Hintergrund Datei und verlinke sie nach <filename>./letter_head.pdf</filename>.</para></listitem> |
|
1402 |
<listitem><para>Editiere den Bereich "<option>settings</option>" in der datei <filename>letter.lco</filename>.</para></listitem> |
|
1416 | 1403 |
</itemizedlist> |
1417 | 1404 |
|
1418 | 1405 |
<para>oder etwas Detaillierter:</para> |
1419 | 1406 |
|
1420 | 1407 |
<para> |
1421 |
Es wird eine Datei sample.lco erstellt und diese nach letter.lco verlinkt. |
|
1422 |
Eigentlich ist dies die Datei die für die Firmenspezifischen Anpassungen |
|
1423 |
gedacht ist. Da die Einstiegshürde in LaTeX nicht ganz niedrig ist, wird in |
|
1424 |
dieser Datei auf ein Hintergrundpdf verwiesen. Ich empfehle über dieses pdf |
|
1425 |
die persönlichen Layoutanpassungen vorzunehmen und sample.lco unverändert zu |
|
1426 |
lassen. Die die Anpassung über eine *.lco Datei die letztlich auf letter.lco |
|
1427 |
verlinkt ist ist aber auch möglich. |
|
1408 |
Es wird eine Datei <filename>sample.lco</filename> erstellt und diese nach <filename>letter.lco</filename> verlinkt. Eigentlich |
|
1409 |
ist dies die Datei die für die Firmenspezifischen Anpassungen gedacht ist. Da die Einstiegshürde in LaTeX nicht ganz niedrig |
|
1410 |
ist, wird in dieser Datei auf ein Hintergrundpdf verwiesen. Ich empfehle über dieses PDF die persönlichen Layoutanpassungen |
|
1411 |
vorzunehmen und <filename>sample.lco</filename> unverändert zu lassen. Die die Anpassung über eine |
|
1412 |
<filename>*.lco</filename>-Datei die letztlich auf <filename>letter.lco</filename> verlinkt ist ist aber auch möglich. |
|
1428 | 1413 |
</para> |
1414 |
|
|
1429 | 1415 |
<para> |
1430 |
Es wird eine Datei sample_head.pdf mit ausgeliefert, diese wird nach |
|
1431 |
letter_head.pdf verlinkt. Damit gibt es schon mal eine Funktionsfähige |
|
1432 |
Vorlage. Schau Dir nach Abschluss der Installation die Datei sample_haed.pdf |
|
1433 |
an und erstelle ein entsprechendes pdf passend zum Briefkopf Deiner Firma, |
|
1434 |
diese dann im Template Verzeichniss ablegen und statt sample_head.pdf nach |
|
1435 |
letter_head.pdf verlinken. |
|
1416 |
Es wird eine Datei <filename>sample_head.pdf</filename> mit ausgeliefert, diese wird nach <filename>letter_head.pdf</filename> |
|
1417 |
verlinkt. Damit gibt es schon mal eine Funktionsfähige Vorlage. Schau Dir nach Abschluss der Installation die Datei |
|
1418 |
<filename>sample_haed.pdf</filename> an und erstelle ein entsprechendes PDF passend zum Briefkopf Deiner Firma, diese dann im |
|
1419 |
Template Verzeichniss ablegen und statt <filename>sample_head.pdf</filename> nach <filename>letter_head.pdf</filename> |
|
1420 |
verlinken. |
|
1436 | 1421 |
</para> |
1422 |
|
|
1437 | 1423 |
<para> |
1438 |
letzlich muss ./letter_head.pdf auf das passende Hintergrundpdf verweisen,
|
|
1439 |
welches gewünschten Briefkopf enthält. Bei Updates oder nach erneutem
|
|
1424 |
letzlich muss <filename>letter_head.pdf</filename> auf das passende Hintergrund-PDF verweisen, welches gewünschten Briefkopf
|
|
1425 |
enthält. Bei Updates oder nach erneutem |
|
1440 | 1426 |
</para> |
1427 |
|
|
1441 | 1428 |
<para> |
1442 |
Es wird eine Datei mydata.tex.example ausgeliefert die nach mytdata.tex |
|
1443 |
verlinkt ist. Bei verwendetem Hintergrundpdf wird nur der Eintrag für das |
|
1444 |
Land verwendet die Datei muss also nicht angefasst werden. Die Anderen Werte |
|
1445 |
sind für das Modul lp (Label Print in erp - zur Zeit nicht im |
|
1446 |
öffentlichen Zweig). |
|
1429 |
Es wird eine Datei <filename>mydata.tex.example</filename> ausgeliefert, die nach <filename>mytdata.tex</filename> verlinkt |
|
1430 |
ist. Bei verwendetem Hintergrund-PDF wird nur der Eintrag für das Land verwendet. Die Datei muss also nicht angefasst |
|
1431 |
werden. Die Anderen Werte sind für das Modul 'lp' (Label Print in erp - zur Zeit nicht im öffentlichen Zweig). |
|
1447 | 1432 |
</para> |
1448 | 1433 |
<para> |
1449 |
Alle Anpassungen zum Briefkopf, Fusszeilen, Firmenlogos, etc. |
|
1450 |
sollten über die Hintergrund pdf datei oder die *.lco Datei erfolgen.
|
|
1434 |
Alle Anpassungen zum Briefkopf, Fusszeilen, Firmenlogos, etc. sollten über die Hintergrund-PDF-Datei oder die
|
|
1435 |
<filename>*.lco</filename>-Datei erfolgen.
|
|
1451 | 1436 |
</para> |
1452 | 1437 |
</sect3> |
1438 |
|
|
1453 | 1439 |
<sect3 id="f-tex-Funktionsübersicht"> |
1454 | 1440 |
<title>f-tex Funktionsübersicht</title> |
1455 | 1441 |
<para> |
1456 |
Das Konzept von kivitendo sieht vor, für jedes Dokument |
|
1457 |
(Auftragsbestätigung, Lieferschein, Rechnung, etc.) eine |
|
1458 |
Latex-Vorlage vorzuhalten, dies ist sehr Wartungsunfreundlich. Auch |
|
1459 |
das Einlesen einer einheitlichen Quelle für den Briefkopf bringt nur |
|
1460 |
bedingte Vorteile, da hier leicht die Pflege der Artikel-Tabellen aus |
|
1461 |
dem Ruder läuft. Bei dem vorliegenden Ansatz wird für alle |
|
1462 |
Briefartigen Dokumente mit Artikel-Tabellen eine einheitliche |
|
1463 |
Latexvorlage verwendet, welche über Codeweichen die Besonderheiten |
|
1464 |
der jeweiligen Dokumente Berücksichtigt |
|
1442 |
Das Konzept von kivitendo sieht vor, für jedes Dokument (Auftragsbestätigung, Lieferschein, Rechnung, etc.) eine LaTeX-Vorlage |
|
1443 |
vorzuhalten, dies ist sehr Wartungsunfreundlich. Auch das Einlesen einer einheitlichen Quelle für den Briefkopf bringt nur |
|
1444 |
bedingte Vorteile, da hier leicht die Pflege der Artikel-Tabellen aus dem Ruder läuft. Bei dem vorliegenden Ansatz wird für alle |
|
1445 |
briefartigen Dokumente mit Artikel-Tabellen eine einheitliche LaTeX-Vorlage verwendet, welche über Codeweichen die |
|
1446 |
Besonderheiten der jeweiligen Dokumente Berücksichtigt. |
|
1465 | 1447 |
</para> |
1448 |
|
|
1466 | 1449 |
<itemizedlist> |
1467 |
<listitem>Tabellen mit oder ohne Preis |
|
1468 |
</listitem> |
|
1469 |
<listitem>Sprache der Tabellenüberschriften etc. |
|
1470 |
</listitem> |
|
1471 |
<listitem>Anpassung der Bezugs-Zeile (z.B. Rechnungsnummer versus |
|
1472 |
Angebotsnummer) |
|
1473 |
</listitem> |
|
1474 |
<listitem>Darstellung von Brutto oder Netto-Preisen in der Auflistung |
|
1475 |
(Endverbraucher versus Gewerblicher Kunde) |
|
1476 |
</listitem> |
|
1450 |
<listitem><para>Tabellen mit oder ohne Preis</para></listitem> |
|
1451 |
<listitem><para>Sprache der Tabellenüberschriften etc.</para></listitem> |
|
1452 |
<listitem><para>Anpassung der Bezugs-Zeile (z.B. Rechnungsnummer versus Angebotsnummer)</para></listitem> |
|
1453 |
<listitem><para>Darstellung von Brutto oder Netto-Preisen in der Auflistung (Endverbraucher versus Gewerblicher |
|
1454 |
Kunde)</para></listitem> |
|
1477 | 1455 |
</itemizedlist> |
1478 | 1456 |
|
1479 | 1457 |
<para>Nachteil:</para> |
1458 |
|
|
1480 | 1459 |
<para> |
1481 |
Latex hat ohnehin eine sehr steile Lehrnkurve. Die Datei letter.tex |
|
1482 |
ist sehr komplex und verstärkt damit diesen Effekt noch einmal erheblich. |
|
1483 |
Wer Latex-Erfahrung hat, oder geübt ist Scriptsparachen nachzuvollziehen kann |
|
1484 |
natürlich auch innerhalb der Tabellendarstellung gut persönliche Anpassungen |
|
1485 |
vornehmen. Aber man kann sich hier bei Veränderungen sehr schnell häftig in |
|
1486 |
den Fuss schiessen. |
|
1487 |
</para> |
|
1488 |
<para>Wer nicht so tief in die Materie einsteigen will oder leicht zu |
|
1489 |
frustrieren ist, sollte sein Hintergrund PDF auf Basis der mitglieferten |
|
1490 |
Datei sample_head.pdf erstellen, und sich an der Form der dargestellten Tabellen |
|
1491 |
wie sie ausgeliefert werden, erfreuen. |
|
1460 |
LaTeX hat ohnehin eine sehr steile Lehrnkurve. Die Datei <filename>letter.tex</filename> ist sehr komplex und verstärkt damit |
|
1461 |
diesen Effekt noch einmal erheblich. Wer LaTeX-Erfahrung hat, oder geübt ist Scriptsparachen nachzuvollziehen kann natürlich |
|
1462 |
auch innerhalb der Tabellendarstellung gut persönliche Anpassungen vornehmen. Aber man kann sich hier bei Veränderungen sehr |
|
1463 |
schnell häftig in den Fuss schiessen. |
|
1492 | 1464 |
</para> |
1493 |
<para>Kleiner Tipp: |
|
1494 |
Nicht zu viel auf einmal wollen, lieber kleine kontinuierliche |
|
1495 |
Schritte gehen. |
|
1465 |
|
|
1466 |
<para>Wer nicht so tief in die Materie einsteigen will oder leicht zu frustrieren ist, sollte sein Hintergrund PDF auf Basis der |
|
1467 |
mitglieferten Datei <filename>sample_head.pdf</filename> erstellen, und sich an der Form der dargestellten Tabellen wie sie |
|
1468 |
ausgeliefert werden, erfreuen. |
|
1496 | 1469 |
</para> |
1497 | 1470 |
|
1471 |
<para>Kleiner Tipp: Nicht zu viel auf einmal wollen, lieber kleine kontinuierliche Schritte gehen.</para> |
|
1498 | 1472 |
|
1499 |
<para>Bruttopreise für Endvorbraucher</para> |
|
1500 |
<para>Der auszuweisende Bruttopreis wird innerhalb der LaTeX |
|
1501 |
Umgebung berechnet. es gibt zwar ein Feld um bei Aufträgen "alle Preise |
|
1502 |
Brutto" auszuwählen, aber:</para> |
|
1473 |
</sect3> |
|
1474 |
|
|
1475 |
<sect3 id="f-tex-Bruttopreise"> |
|
1476 |
<title>Bruttopreise für Endverbraucher</title> |
|
1477 |
|
|
1478 |
<para>Der auszuweisende Bruttopreis wird innerhalb der LaTeX-Umgebung berechnet. Es gibt zwar ein Feld, um bei Aufträgen "alle |
|
1479 |
Preise Brutto" auszuwählen, aber:</para> |
|
1503 | 1480 |
<itemizedlist> |
1504 | 1481 |
<listitem> |
1505 |
hierfür müssen die Preise auch in Brutto in der Datenbank stehen |
|
1506 |
(ja - das lässt sich über die Preisgruppen und die Zuordung einer Default-Preisgruppe |
|
1507 |
handhaben) |
|
1482 |
<para>hierfür müssen die Preise auch in Brutto in der Datenbank stehen (ja - das lässt sich über die Preisgruppen und die |
|
1483 |
Zuordung einer Default-Preisgruppe handhaben)</para> |
|
1508 | 1484 |
</listitem> |
1509 | 1485 |
<listitem> |
1510 |
man darf beim Anlegen des Vorgangs nicht vergessen Dieses Häkchen zu setzen. |
|
1511 |
(das ist in der Praxis wenn man sowohl Endverbraucher- wie Gewerbekunden beliefert |
|
1512 |
der eigentliche Knackpunkt) |
|
1486 |
<para>man darf beim Anlegen des Vorgangs nicht vergessen Dieses Häkchen zu setzen. (das ist in der Praxis wenn man sowohl |
|
1487 |
Endverbraucher- wie Gewerbekunden beliefert der eigentliche Knackpunkt)</para> |
|
1513 | 1488 |
</listitem> |
1514 | 1489 |
</itemizedlist> |
1515 | 1490 |
|
1516 | 1491 |
<para> |
1517 |
Es gibt mit f-tex eine weitere Alternative. Die Information ob Brutto oder |
|
1518 |
Nettorechnung wird mit den Zahlarten verknüpft. Zahlarten bei denen |
|
1519 |
Rechnungen, Angebote, etc, in Brutto ausgegeben werden sollen enden mit "_E" |
|
1520 |
(für Endverbraucher) Falls identische Zahlarten für Gewerbekunden und |
|
1521 |
Endverbraucher vorhanden sind legt man diese einfach doppelt an (einmal mit |
|
1522 |
der Namensendung "_E"). Gewinn:</para> |
|
1523 |
<itemizedlist> |
|
1524 |
<listitem> |
|
1525 |
die Entscheidung ob Netopreise ausgewiesen werden ist nicht mehr fix |
|
1526 |
mit einer Preisliste Verbunden. |
|
1527 |
</listitem> |
|
1528 |
<listitem> |
|
1529 |
die Default-Zahlart kann im Kundendatensatz hinterlegt werden und man |
|
1530 |
muss nicht mehr daran denken "alle Preise Netto" auszuwählen. |
|
1531 |
</listitem> |
|
1532 |
<listitem> |
|
1533 |
Die Entscheidung ob Netto/Oder Bruttopreise ausgewiesen werden kann direkt |
|
1534 |
beim Drucken reviediert werden, ohne dass sich der Auftragswert ändert. |
|
1535 |
</listitem> |
|
1536 |
</itemizedlist> |
|
1492 |
Es gibt mit f-tex eine weitere Alternative. Die Information ob Brutto oder Nettorechnung wird mit den Zahlarten |
|
1493 |
verknüpft. Zahlarten bei denen Rechnungen, Angebote, etc, in Brutto ausgegeben werden sollen, enden mit "_E" (für |
|
1494 |
Endverbraucher). Falls identische Zahlarten für Gewerbekunden und Endverbraucher vorhanden sind, legt man diese einfach doppelt |
|
1495 |
an (einmal mit der Namensendung "_E"). Gewinn:</para> |
|
1537 | 1496 |
|
1538 |
<para>Lieferadressen</para> |
|
1539 | 1497 |
<itemizedlist> |
1540 |
<listitem> |
|
1541 |
in Lieferscheinen kommen shipto* -Variablen im Adressfeld zum Einsatz |
|
1542 |
</listitem> |
|
1543 |
<listitem> |
|
1544 |
wenn die shipto*variable leer ist wird die entsprechende |
|
1545 |
Adressvariable eingesetzt. Wenn Also die Lieferadresse in Strasse, |
|
1546 |
Hausnummer und Ort abweicht, müssen auch nur diese Felder in der |
|
1547 |
Lieferadresse ausgefüllt werden. Für den Firmenname wird der Wert der |
|
1548 |
Hauptadresse angezeigt. |
|
1549 |
</listitem> |
|
1498 |
<listitem><para>Die Entscheidung, ob Netopreise ausgewiesen werden, ist nicht mehr fix mit einer Preisliste Verbunden.</para></listitem> |
|
1499 |
<listitem><para>Die Default-Zahlart kann im Kundendatensatz hinterlegt werden, und man muss nicht mehr daran denken, "alle Preise |
|
1500 |
Netto" auszuwählen.</para></listitem> |
|
1501 |
<listitem><para>Die Entscheidung, ob Netto- oder Bruttopreise ausgewiesen werden, kann direkt beim Drucken reviediert werden, |
|
1502 |
ohne dass sich der Auftragswert ändert.</para></listitem> |
|
1550 | 1503 |
</itemizedlist> |
1551 | 1504 |
</sect3> |
1552 | 1505 |
|
1506 |
<sect3 id="f-tex-lieferadressen"> |
|
1507 |
<title>Lieferadressen</title> |
|
1508 |
|
|
1509 |
<para>In Lieferscheinen kommen <varname>shipto*</varname>-Variablen im Adressfeld zum Einsatz. Wenn die |
|
1510 |
<varname>shipto*</varname>-Variable leer ist, wird die entsprechende Adressvariable eingesetzt. Wenn also die Lieferadresse in |
|
1511 |
Straße, Hausnummer und Ort abweicht, müssen auch nur diese Felder in der Lieferadresse ausgefüllt werden. Für den Firmenname wird |
|
1512 |
der Wert der Hauptadresse angezeigt. |
|
1513 |
</para> |
|
1514 |
</sect3> |
|
1553 | 1515 |
</sect2> |
1554 | 1516 |
|
1555 |
<sect2 id="RB"> |
|
1517 |
<sect2 id="Vorlagen-RB">
|
|
1556 | 1518 |
<title>RB</title> |
1557 | 1519 |
|
1558 |
<para>Vollständiger Dokumentensatz mit alternativen Design</para>
|
|
1520 |
<para>Vollständiger Dokumentensatz mit alternativem Design</para>
|
|
1559 | 1521 |
|
1560 | 1522 |
</sect2> |
1561 | 1523 |
|
1562 |
<sect2 id="Allgemeine Hinweise zu LaTeX">
|
|
1524 |
<sect2 id="allgemeine-hinweise-zu-latex">
|
|
1563 | 1525 |
<title>Allgemeine Hinweise zu LaTeX Vorlagen</title> |
1564 | 1526 |
<para>In den allermeisten Installationen sollte drucken jetzt schon |
1565 | 1527 |
funktionieren. Sollte ein Fehler auftreten wirft TeX sehr lange |
... | ... | |
1575 | 1537 |
Pakete.</para> |
1576 | 1538 |
</listitem> |
1577 | 1539 |
<listitem> |
1578 |
<para>! Package inputenc Error: Unicode char \u8:æ¡ not set up for
|
|
1540 |
<para>! Package inputenc Error: Unicode char \u8:... set up for
|
|
1579 | 1541 |
use with LaTeX. Dieser Fehler tritt auf, wenn sie versuchen mit |
1580 | 1542 |
einer Standardinstallation exotische utf8 Zeichen zu drucken. |
1581 | 1543 |
TeXLive unterstützt von Haus nur romanische Schriften und muss mit |
... | ... | |
5803 | 5765 |
<itemizedlist> |
5804 | 5766 |
<listitem><para><literal>Test::Deep</literal> (Debian-Paketname: <literal>libtest-deep-perl</literal>; Fedora Core: |
5805 | 5767 |
<literal>perl-Test-Deep</literal>; openSuSE: <literal>perl-Test-Deep</literal>)</para></listitem> |
5768 |
<listitem><para><literal>Test::Harness</literal> 3.0.0 oder höher. Dieses Modul ist ab Perl 5.10.1 Bestandteil der |
|
5769 |
Perl-Distribution und kann für frühere Versionen aus dem <ulink url="http://www.cpan.org">CPAN</ulink> bezogen |
|
5770 |
werden.</para></listitem> |
|
5806 | 5771 |
</itemizedlist> |
5807 | 5772 |
</sect2> |
5808 | 5773 |
|
doc/html/ch02s05.html | ||
---|---|---|
44 | 44 |
mod_fastcgi nicht mehr explizit eingegangen.</p><p>Als Perl Backend wird das Modul <code class="filename">FCGI.pm</code> |
45 | 45 |
verwendet.</p><div class="warning" title="Warnung" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Warning"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Warnung]" src="../../../../system/docbook-xsl/images/warning.png"></td><th align="left">Warnung</th></tr><tr><td align="left" valign="top"><p>FCGI-Versionen ab 0.69 und bis zu 0.71 inklusive sind extrem strict in der Behandlung von Unicode, und verweigern |
46 | 46 |
bestimmte Eingaben von kivitendo. Falls es Probleme mit Umlauten in Ihrere Installation gibt, muss zwingend Version 0.68 oder |
47 |
aber Version 0.72 und neuer eingesetzt werden.</p><p>Mit CPAN lässt sie sich die Vorgängerversion wie folgt
|
|
47 |
aber Version 0.72 und neuer eingesetzt werden.</p><p>Mit <a class="ulink" href="http://www.cpan.org" target="_top">CPAN</a> lässt sie sich die Vorgängerversion wie folgt
|
|
48 | 48 |
installieren:</p><pre class="programlisting">force install M/MS/MSTROUT/FCGI-0.68.tar.gz</pre></td></tr></table></div></div><div class="sect3" title="2.5.2.4. Konfiguration des Webservers"><div class="titlepage"><div><div><h4 class="title"><a name="Apache-Konfiguration.FCGI.Konfiguration"></a>2.5.2.4. Konfiguration des Webservers</h4></div></div></div><p>Bevor Sie versuchen, eine kivitendo Installation unter FCGI |
49 | 49 |
laufen zu lassen, empfliehlt es sich die Installation ersteinmal |
50 | 50 |
unter CGI aufzusetzen. FCGI macht es nicht einfach Fehler zu |
doc/html/ch02s06.html | ||
---|---|---|
29 | 29 |
Links aus einem der Runlevel-Verzeichnisse heraus in den Boot-Prozess |
30 | 30 |
einzubinden. Da das bei neueren Linux-Distributionen aber nicht |
31 | 31 |
zwangsläufig funktioniert, werden auch Start-Scripte mitgeliefert, die |
32 |
anstelle eines symbolischen Links verwendet werden können.</p><div class="sect3" title="2.6.2.1. SystemV-basierende Systeme (z.B. Debian, OpenSuSE, Fedora Core)"><div class="titlepage"><div><div><h4 class="title"><a name="d0e776"></a>2.6.2.1. SystemV-basierende Systeme (z.B. Debian, OpenSuSE, Fedora
|
|
32 |
anstelle eines symbolischen Links verwendet werden können.</p><div class="sect3" title="2.6.2.1. SystemV-basierende Systeme (z.B. Debian, OpenSuSE, Fedora Core)"><div class="titlepage"><div><div><h4 class="title"><a name="d0e779"></a>2.6.2.1. SystemV-basierende Systeme (z.B. Debian, OpenSuSE, Fedora
|
|
33 | 33 |
Core)</h4></div></div></div><p>Kopieren Sie die Datei |
34 | 34 |
<code class="filename">scripts/boot/system-v/kivitendo-server</code> |
35 | 35 |
nach <code class="filename">/etc/init.d/kivitendo-server</code>. Passen |
... | ... | |
40 | 40 |
insserv kivitendo-task-server</pre></li><li class="listitem"><p>OpenSuSE und Fedora Core:</p><pre class="programlisting">chkconfig --add kivitendo-task-server</pre></li></ul></div><p>Danach kann der Task-Server mit dem folgenden Befehl gestartet |
41 | 41 |
werden: <span class="command"><strong>/etc/init.d/kivitendo-task-server |
42 | 42 |
start</strong></span> |
43 |
</p></div><div class="sect3" title="2.6.2.2. Upstart-basierende Systeme (z.B. Ubuntu)"><div class="titlepage"><div><div><h4 class="title"><a name="d0e806"></a>2.6.2.2. Upstart-basierende Systeme (z.B. Ubuntu)</h4></div></div></div><p>Kopieren Sie die Datei
|
|
43 |
</p></div><div class="sect3" title="2.6.2.2. Upstart-basierende Systeme (z.B. Ubuntu)"><div class="titlepage"><div><div><h4 class="title"><a name="d0e809"></a>2.6.2.2. Upstart-basierende Systeme (z.B. Ubuntu)</h4></div></div></div><p>Kopieren Sie die Datei
|
|
44 | 44 |
<code class="filename">scripts/boot/upstart/kivitendo-task-server.conf</code> |
45 | 45 |
nach <code class="filename">/etc/init/kivitendo-task-server.conf</code>. |
46 | 46 |
Passen Sie in der kopierten Datei den Pfad zum Task-Server an (Zeile |
doc/html/ch02s10.html | ||
---|---|---|
1 | 1 |
<html><head> |
2 | 2 |
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
3 |
<title>2.10. Drucken mit kivitendo</title><link rel="stylesheet" type="text/css" href="style.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1-RC2"><link rel="home" href="index.html" title="kivitendo: Installation, Konfiguration, Entwicklung"><link rel="up" href="ch02.html" title="Kapitel 2. Installation und Grundkonfiguration"><link rel="prev" href="ch02s09.html" title="2.9. E-Mail-Versand aus kivitendo heraus"><link rel="next" href="ch02s11.html" title="2.11. OpenDocument-Vorlagen"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">2.10. Drucken mit kivitendo</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02s09.html">Zurück</a> </td><th width="60%" align="center">Kapitel 2. Installation und Grundkonfiguration</th><td width="20%" align="right"> <a accesskey="n" href="ch02s11.html">Weiter</a></td></tr></table><hr></div><div class="sect1" title="2.10. Drucken mit kivitendo"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Drucken-mit-kivitendo"></a>2.10. Drucken mit kivitendo</h2></div></div></div><p>Das Drucksystem von kivitendo benutzt von Haus aus LaTeX Vorlagen. |
|
4 |
Um drucken zu können, braucht der Server ein geeignetes LaTeX System. Am |
|
5 |
einfachsten ist dazu eine <code class="literal">texlive</code> Installation. Unter |
|
6 |
Debianoiden Betriebssystemen installiert man die Pakete mit:</p><p> |
|
7 |
</p><pre class="programlisting">aptitude install \ |
|
8 |
texlive-base-bin \ |
|
9 |
texlive-latex-recommended \ |
|
10 |
texlive-fonts-recommended \ |
|
11 |
texlive-latex-extra \ |
|
12 |
texlive-lang-german \ |
|
13 |
texlive-generic-extra |
|
14 |
</pre><p> |
|
15 |
</p><p>TODO: rpm Pakete.</p><p>kivitendo bringt 3 alternative Vorlagensätze mit:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">Standard</li><li class="listitem">f-tex</li><li class="listitem">RB</li></ul></div><div class="sect2" title="2.10.1. Vorlagenverzeichnis anlegen"><div class="titlepage"><div><div><h3 class="title"><a name="Vorlagenverzeichnis-anlegen"></a>2.10.1. Vorlagenverzeichnis anlegen</h3></div></div></div><p>Bei einem neuen Benutzer/Mandanten lässt sich einer dieser Vorlagensätze |
|
16 |
als Basis für die zu druckenden Dokumente auswählen:</p><p> |
|
17 |
</p><pre class="programlisting">unter: |
|
18 |
Administration -> Benutzerverwaltung -> [ein Benutzer] |
|
19 |
Erzeuge Vorlagen, Name: [Name für das neue Vorlagenverzeichnis] |
|
20 |
Vorlagen auswählen: [Default, f-tex oder RB] |
|
21 |
-> Speichern |
|
22 |
</pre><p> |
|
23 |
</p><p>der gleiche Vorlagensatz kann, wenn er mal angelegt ist, bei mehreren Benutzern verwendet werden.</p><p>Die Abhängigkeiten kann man prüfen mit:</p><p> |
|
24 |
</p><pre class="programlisting">/scripts/installation_check.pl -l</pre><p> |
|
25 |
</p></div><div class="sect2" title="2.10.2. Default"><div class="titlepage"><div><div><h3 class="title"><a name="Standard"></a>2.10.2. Default</h3></div></div></div><p>Der standard Vorlagensatz von Kivitendo. Wie unter |
|
26 |
<a class="ulink" href="http://demo.kivitendo.org" target="_top">http://demo.kivitendo.org</a> zu sehen.</p></div><div class="sect2" title="2.10.3. f-tex"><div class="titlepage"><div><div><h3 class="title"><a name="f-tex"></a>2.10.3. f-tex</h3></div></div></div><p>Ein Vorlagensatz, der in Wenigen Minuten alle Dokumente zur stellt.</p><div class="sect3" title="2.10.3.1. f-tex Feature Übersicht"><div class="titlepage"><div><div><h4 class="title"><a name="f-tex-Feature-%C3%9Cbersicht"></a>2.10.3.1. f-tex Feature Übersicht</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">Keine Retundanz. Es wird ein und die selbe Latex-Vorlage für alle |
|
27 |
briefartigen Dokumente verwendet. Also Angebot, Rechnung, |
|
28 |
Performarechnung, Lieferschein, aber eben nicht für Paketaufkleber |
|
29 |
etc.. </li><li class="listitem">Leichte Anpassung an das Firmen Layout durch verwendung eines Hintergrund-PDF |
|
30 |
dieses kann leicht mit dem eigenen Lieblingsprogramm erstellt werden |
|
31 |
(Openoffice, Inkscape, Gimp, Adobe*) |
|
32 |
</li><li class="listitem">Hintergrundpdf um schaltbar auf "nur erste Seite" (default) oder "alle Seiten" |
|
33 |
(option "bgPdfFirstPageOnly" in Datei letter.lco) |
|
34 |
</li><li class="listitem">Hintergrundpdf für Ausdruck auf bereits bedrucktem Briefpapier Abschaltbar, |
|
35 |
es wird dann nur bei per email versendeten Dokumenten eingebunden. |
|
36 |
(Option "bgPdfEmailOnly" in Datei letter.lco) |
|
37 |
</li><li class="listitem">Nutzung der Layout-Funktionen von Latex für Seitenumbruch, |
|
38 |
wiederholung von Kopfzeilen, Zwischensummen etc. (danke an Kai-Martin für |
|
39 |
die Vorarbeit) |
|
40 |
</li><li class="listitem">Anzeige des Empfängerlandes im Adressfeld nur, wenn es vom Land des |
|
41 |
eigenen Unternehmens abweicht (also die Rechnung das Land verlässt). |
|
42 |
</li><li class="listitem">Multisprachfähig leicht um weitere Sprachen zu erweitern, alle |
|
43 |
Übersetzungen in der Datei translatinos.tex. |
|
44 |
</li><li class="listitem">Auflistung von Bruttopreisen für Endverbraucher. |
|
45 |
</li></ul></div></div><div class="sect3" title="2.10.3.2. f-tex Die Installation"><div class="titlepage"><div><div><h4 class="title"><a name="f-tex-installation"></a>2.10.3.2. f-tex Die Installation</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">Vorlagenverzeichnis mit Option f-tex anlegen, siehe: |
|
46 |
<a class="xref" href="ch02s10.html#Vorlagenverzeichnis-anlegen" title="2.10.1. Vorlagenverzeichnis anlegen">Vorlagenverzeichnis anlegen</a> |
|
47 |
Das Vorlagensystem funktioniert jetzt schon, hat allerdings noch einen |
|
48 |
Beispiel Briefkopf |
|
49 |
</li><li class="listitem"> |
|
50 |
Erstelle eine pdf-Hintergrund Datei und verlinke sie nach |
|
51 |
<pre class="programlisting">./letter_head.pdf</pre></li><li class="listitem"> |
|
52 |
Editiere den Bereich "settings" in der datei letter.lco |
|
53 |
</li></ul></div><p>oder etwas Detaillierter:</p><p> |
|
54 |
Es wird eine Datei sample.lco erstellt und diese nach letter.lco verlinkt. |
|
55 |
Eigentlich ist dies die Datei die für die Firmenspezifischen Anpassungen |
|
56 |
gedacht ist. Da die Einstiegshürde in LaTeX nicht ganz niedrig ist, wird in |
|
57 |
dieser Datei auf ein Hintergrundpdf verwiesen. Ich empfehle über dieses pdf |
|
58 |
die persönlichen Layoutanpassungen vorzunehmen und sample.lco unverändert zu |
|
59 |
lassen. Die die Anpassung über eine *.lco Datei die letztlich auf letter.lco |
|
60 |
verlinkt ist ist aber auch möglich. |
|
3 |
<title>2.10. Drucken mit kivitendo</title><link rel="stylesheet" type="text/css" href="style.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1-RC2"><link rel="home" href="index.html" title="kivitendo: Installation, Konfiguration, Entwicklung"><link rel="up" href="ch02.html" title="Kapitel 2. Installation und Grundkonfiguration"><link rel="prev" href="ch02s09.html" title="2.9. E-Mail-Versand aus kivitendo heraus"><link rel="next" href="ch02s11.html" title="2.11. OpenDocument-Vorlagen"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">2.10. Drucken mit kivitendo</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02s09.html">Zurück</a> </td><th width="60%" align="center">Kapitel 2. Installation und Grundkonfiguration</th><td width="20%" align="right"> <a accesskey="n" href="ch02s11.html">Weiter</a></td></tr></table><hr></div><div class="sect1" title="2.10. Drucken mit kivitendo"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Drucken-mit-kivitendo"></a>2.10. Drucken mit kivitendo</h2></div></div></div><p>Das Drucksystem von kivitendo benutzt von Haus aus LaTeX-Vorlagen. Um drucken zu können, braucht der Server ein geeignetes |
|
4 |
LaTeX System. Am einfachsten ist dazu eine <code class="literal">texlive</code> Installation. Unter Debianoiden Betriebssystemen installiert man |
|
5 |
die Pakete mit:</p><p> |
|
6 |
</p><pre class="programlisting">aptitude install texlive-base-bin texlive-latex-recommended texlive-fonts-recommended \ |
|
7 |
texlive-latex-extra texlive-lang-german texlive-generic-extra</pre><p> |
|
8 |
</p><p>TODO: RPM-Pakete.</p><p>kivitendo bringt drei alternative Vorlagensätze mit:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Standard</p></li><li class="listitem"><p>f-tex</p></li><li class="listitem"><p>RB</p></li></ul></div><div class="sect2" title="2.10.1. Vorlagenverzeichnis anlegen"><div class="titlepage"><div><div><h3 class="title"><a name="Vorlagenverzeichnis-anlegen"></a>2.10.1. Vorlagenverzeichnis anlegen</h3></div></div></div><p>Im Administrationsbereich lässt sich bei einem Benutzer/Mandanten einer dieser Vorlagensätze als Basis für die zu |
|
9 |
druckenden Dokumente auswählen. Rufen Sie dazu die <span class="guimenu">Benutzerverwaltung</span> auf.</p><p>Wählen Sie dort einen Benutzer aus oder legen Sie einen neuen an. In der Benutzerbearbeiten-Maske müssen Sie zwei Dinge |
|
10 |
angeben:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p> |
|
11 |
<code class="option">Name</code>: Der Verzeichnisname für den neuen Vorlagensatz. Dieser kann im Rahmen der üblichen |
|
12 |
Bedingungen für Verzeichnisnamen frei gewählt werden.</p></li><li class="listitem"><p> |
|
13 |
<code class="option">Vorlagen auswählen</code>: Wählen Sie hier den Vorlagensatz aus, der kopiert werden soll |
|
14 |
(<code class="filename">Standard</code>, <code class="filename">f-tex</code> oder <code class="filename">RB</code>.)</p></li></ol></div><p>Der gleiche Vorlagensatz kann, wenn er mal angelegt ist, bei mehreren Benutzern verwendet werden.</p><p>Die Abhängigkeiten kann man prüfen mit:</p><pre class="programlisting">/scripts/installation_check.pl -l</pre></div><div class="sect2" title="2.10.2. Standard"><div class="titlepage"><div><div><h3 class="title"><a name="Vorlagen-Standard"></a>2.10.2. Standard</h3></div></div></div><p>Der Standard-Vorlagensatz von Kivitendo. Wie unter <a class="ulink" href="http://demo.kivitendo.org" target="_top">http://demo.kivitendo.org</a> zu |
|
15 |
sehen.</p></div><div class="sect2" title="2.10.3. f-tex"><div class="titlepage"><div><div><h3 class="title"><a name="f-tex"></a>2.10.3. f-tex</h3></div></div></div><p>Ein Vorlagensatz, der in wenigen Minuten alle Dokumente zur Verfügung stellt.</p><div class="sect3" title="2.10.3.1. Feature-Übersicht"><div class="titlepage"><div><div><h4 class="title"><a name="f-tex-Feature-%C3%9Cbersicht"></a>2.10.3.1. Feature-Übersicht</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Keine Redundanz. Es wird ein- und dieselbe LaTeX-Vorlage für alle briefartigen Dokumente verwendet. Also |
|
16 |
Angebot, Rechnung, Performarechnung, Lieferschein, aber eben nicht für Paketaufkleber etc..</p></li><li class="listitem"><p>Leichte Anpassung an das Firmen-Layout durch verwendung eines Hintergrund-PDF. Dieses kann leicht mit dem |
|
17 |
eigenen Lieblingsprogramm erstellt werden (Openoffice, Inkscape, Gimp, Adobe*)</p></li><li class="listitem"><p>Hintergrund-PDF umschaltbar auf "nur erste Seite" (Standard) oder "alle Seiten" (Option |
|
18 |
"<code class="option">bgPdfFirstPageOnly</code>" in Datei <code class="filename">letter.lco</code>)</p></li><li class="listitem"><p>Hintergrund-PDF für Ausdruck auf bereits bedrucktem Briefpapier abschaltbar. Es wird dann nur bei per E-Mail |
|
19 |
versendeten Dokumenten eingebunden (Option "<code class="option">bgPdfEmailOnly</code>" in Datei |
|
20 |
<code class="filename">letter.lco</code>).</p></li><li class="listitem"><p>Nutzung der Layout-Funktionen von LaTeX für Seitenumbruch, Wiederholung von Kopfzeilen, Zwischensummen |
|
21 |
etc. (danke an Kai-Martin Knaak für die Vorarbeit)</p></li><li class="listitem"><p>Anzeige des Empfängerlandes im Adressfeld nur, wenn es vom Land des eigenen Unternehmens abweicht (also die |
|
22 |
Rechnung das Land verlässt).</p></li><li class="listitem"><p>Multisprachfähig leicht um weitere Sprachen zu erweitern, alle Übersetzungen in der Datei |
|
23 |
<code class="filename">translatinos.tex</code>.</p></li><li class="listitem"><p>Auflistung von Bruttopreisen für Endverbraucher.</p></li></ul></div></div><div class="sect3" title="2.10.3.2. Die Installation"><div class="titlepage"><div><div><h4 class="title"><a name="f-tex-Installation"></a>2.10.3.2. Die Installation</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Vorlagenverzeichnis mit Option f-tex anlegen, siehe: <a class="xref" href="ch02s10.html#Vorlagenverzeichnis-anlegen" title="2.10.1. Vorlagenverzeichnis anlegen">Vorlagenverzeichnis anlegen</a>. Das |
|
24 |
Vorlagensystem funktioniert jetzt schon, hat allerdings noch einen Beispiel-Briefkopf.</p></li><li class="listitem"><p>Erstelle eine pdf-Hintergrund Datei und verlinke sie nach <code class="filename">./letter_head.pdf</code>.</p></li><li class="listitem"><p>Editiere den Bereich "<code class="option">settings</code>" in der datei <code class="filename">letter.lco</code>.</p></li></ul></div><p>oder etwas Detaillierter:</p><p> |
|
25 |
Es wird eine Datei <code class="filename">sample.lco</code> erstellt und diese nach <code class="filename">letter.lco</code> verlinkt. Eigentlich |
|
26 |
ist dies die Datei die für die Firmenspezifischen Anpassungen gedacht ist. Da die Einstiegshürde in LaTeX nicht ganz niedrig |
|
27 |
ist, wird in dieser Datei auf ein Hintergrundpdf verwiesen. Ich empfehle über dieses PDF die persönlichen Layoutanpassungen |
|
28 |
vorzunehmen und <code class="filename">sample.lco</code> unverändert zu lassen. Die die Anpassung über eine |
|
29 |
<code class="filename">*.lco</code>-Datei die letztlich auf <code class="filename">letter.lco</code> verlinkt ist ist aber auch möglich. |
|
61 | 30 |
</p><p> |
62 |
Es wird eine Datei sample_head.pdf mit ausgeliefert, diese wird nach |
|
63 |
letter_head.pdf verlinkt. Damit gibt es schon mal eine Funktionsfähige |
|
64 |
Vorlage. Schau Dir nach Abschluss der Installation die Datei sample_haed.pdf |
|
65 |
an und erstelle ein entsprechendes pdf passend zum Briefkopf Deiner Firma, |
|
66 |
diese dann im Template Verzeichniss ablegen und statt sample_head.pdf nach |
|
67 |
letter_head.pdf verlinken. |
|
31 |
Es wird eine Datei <code class="filename">sample_head.pdf</code> mit ausgeliefert, diese wird nach <code class="filename">letter_head.pdf</code> |
|
32 |
verlinkt. Damit gibt es schon mal eine Funktionsfähige Vorlage. Schau Dir nach Abschluss der Installation die Datei |
|
33 |
<code class="filename">sample_haed.pdf</code> an und erstelle ein entsprechendes PDF passend zum Briefkopf Deiner Firma, diese dann im |
|
34 |
Template Verzeichniss ablegen und statt <code class="filename">sample_head.pdf</code> nach <code class="filename">letter_head.pdf</code> |
|
35 |
verlinken. |
|
68 | 36 |
</p><p> |
69 |
letzlich muss ./letter_head.pdf auf das passende Hintergrundpdf verweisen,
|
|
70 |
welches gewünschten Briefkopf enthält. Bei Updates oder nach erneutem
|
|
37 |
letzlich muss <code class="filename">letter_head.pdf</code> auf das passende Hintergrund-PDF verweisen, welches gewünschten Briefkopf
|
|
38 |
enthält. Bei Updates oder nach erneutem |
|
71 | 39 |
</p><p> |
72 |
Es wird eine Datei mydata.tex.example ausgeliefert die nach mytdata.tex |
|
73 |
verlinkt ist. Bei verwendetem Hintergrundpdf wird nur der Eintrag für das |
|
74 |
Land verwendet die Datei muss also nicht angefasst werden. Die Anderen Werte |
|
75 |
sind für das Modul lp (Label Print in erp - zur Zeit nicht im |
|
76 |
öffentlichen Zweig). |
|
40 |
Es wird eine Datei <code class="filename">mydata.tex.example</code> ausgeliefert, die nach <code class="filename">mytdata.tex</code> verlinkt |
|
41 |
ist. Bei verwendetem Hintergrund-PDF wird nur der Eintrag für das Land verwendet. Die Datei muss also nicht angefasst |
|
42 |
werden. Die Anderen Werte sind für das Modul 'lp' (Label Print in erp - zur Zeit nicht im öffentlichen Zweig). |
|
77 | 43 |
</p><p> |
78 |
Alle Anpassungen zum Briefkopf, Fusszeilen, Firmenlogos, etc. |
|
79 |
sollten über die Hintergrund pdf datei oder die *.lco Datei erfolgen.
|
|
44 |
Alle Anpassungen zum Briefkopf, Fusszeilen, Firmenlogos, etc. sollten über die Hintergrund-PDF-Datei oder die
|
|
45 |
<code class="filename">*.lco</code>-Datei erfolgen.
|
|
80 | 46 |
</p></div><div class="sect3" title="2.10.3.3. f-tex Funktionsübersicht"><div class="titlepage"><div><div><h4 class="title"><a name="f-tex-Funktions%C3%BCbersicht"></a>2.10.3.3. f-tex Funktionsübersicht</h4></div></div></div><p> |
81 |
Das Konzept von kivitendo sieht vor, für jedes Dokument |
|
82 |
(Auftragsbestätigung, Lieferschein, Rechnung, etc.) eine |
|
83 |
Latex-Vorlage vorzuhalten, dies ist sehr Wartungsunfreundlich. Auch |
|
84 |
das Einlesen einer einheitlichen Quelle für den Briefkopf bringt nur |
|
85 |
bedingte Vorteile, da hier leicht die Pflege der Artikel-Tabellen aus |
|
86 |
dem Ruder läuft. Bei dem vorliegenden Ansatz wird für alle |
|
87 |
Briefartigen Dokumente mit Artikel-Tabellen eine einheitliche |
|
88 |
Latexvorlage verwendet, welche über Codeweichen die Besonderheiten |
|
89 |
der jeweiligen Dokumente Berücksichtigt |
|
90 |
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">Tabellen mit oder ohne Preis |
|
91 |
</li><li class="listitem">Sprache der Tabellenüberschriften etc. |
|
92 |
</li><li class="listitem">Anpassung der Bezugs-Zeile (z.B. Rechnungsnummer versus |
|
93 |
Angebotsnummer) |
|
94 |
</li><li class="listitem">Darstellung von Brutto oder Netto-Preisen in der Auflistung |
|
95 |
(Endverbraucher versus Gewerblicher Kunde) |
|
96 |
</li></ul></div><p>Nachteil:</p><p> |
|
97 |
Latex hat ohnehin eine sehr steile Lehrnkurve. Die Datei letter.tex |
|
98 |
ist sehr komplex und verstärkt damit diesen Effekt noch einmal erheblich. |
|
99 |
Wer Latex-Erfahrung hat, oder geübt ist Scriptsparachen nachzuvollziehen kann |
|
100 |
natürlich auch innerhalb der Tabellendarstellung gut persönliche Anpassungen |
|
101 |
vornehmen. Aber man kann sich hier bei Veränderungen sehr schnell häftig in |
|
102 |
den Fuss schiessen. |
|
103 |
</p><p>Wer nicht so tief in die Materie einsteigen will oder leicht zu |
|
104 |
frustrieren ist, sollte sein Hintergrund PDF auf Basis der mitglieferten |
|
105 |
Datei sample_head.pdf erstellen, und sich an der Form der dargestellten Tabellen |
|
106 |
wie sie ausgeliefert werden, erfreuen. |
|
107 |
</p><p>Kleiner Tipp: |
|
108 |
Nicht zu viel auf einmal wollen, lieber kleine kontinuierliche |
|
109 |
Schritte gehen. |
|
110 |
</p><p>Bruttopreise für Endvorbraucher</p><p>Der auszuweisende Bruttopreis wird innerhalb der LaTeX |
|
111 |
Umgebung berechnet. es gibt zwar ein Feld um bei Aufträgen "alle Preise |
|
112 |
Brutto" auszuwählen, aber:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"> |
|
113 |
hierfür müssen die Preise auch in Brutto in der Datenbank stehen |
|
114 |
(ja - das lässt sich über die Preisgruppen und die Zuordung einer Default-Preisgruppe |
|
115 |
handhaben) |
|
116 |
</li><li class="listitem"> |
|
117 |
man darf beim Anlegen des Vorgangs nicht vergessen Dieses Häkchen zu setzen. |
|
118 |
(das ist in der Praxis wenn man sowohl Endverbraucher- wie Gewerbekunden beliefert |
|
119 |
der eigentliche Knackpunkt) |
|
120 |
</li></ul></div><p> |
|
121 |
Es gibt mit f-tex eine weitere Alternative. Die Information ob Brutto oder |
|
122 |
Nettorechnung wird mit den Zahlarten verknüpft. Zahlarten bei denen |
|
123 |
Rechnungen, Angebote, etc, in Brutto ausgegeben werden sollen enden mit "_E" |
|
124 |
(für Endverbraucher) Falls identische Zahlarten für Gewerbekunden und |
|
125 |
Endverbraucher vorhanden sind legt man diese einfach doppelt an (einmal mit |
|
126 |
der Namensendung "_E"). Gewinn:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"> |
|
127 |
die Entscheidung ob Netopreise ausgewiesen werden ist nicht mehr fix |
|
128 |
mit einer Preisliste Verbunden. |
|
129 |
</li><li class="listitem"> |
|
130 |
die Default-Zahlart kann im Kundendatensatz hinterlegt werden und man |
|
131 |
muss nicht mehr daran denken "alle Preise Netto" auszuwählen. |
|
132 |
</li><li class="listitem"> |
|
133 |
Die Entscheidung ob Netto/Oder Bruttopreise ausgewiesen werden kann direkt |
|
134 |
beim Drucken reviediert werden, ohne dass sich der Auftragswert ändert. |
|
135 |
</li></ul></div><p>Lieferadressen</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"> |
|
136 |
in Lieferscheinen kommen shipto* -Variablen im Adressfeld zum Einsatz |
|
137 |
</li><li class="listitem"> |
|
138 |
wenn die shipto*variable leer ist wird die entsprechende |
|
139 |
Adressvariable eingesetzt. Wenn Also die Lieferadresse in Strasse, |
|
140 |
Hausnummer und Ort abweicht, müssen auch nur diese Felder in der |
|
141 |
Lieferadresse ausgefüllt werden. Für den Firmenname wird der Wert der |
|
142 |
Hauptadresse angezeigt. |
|
143 |
</li></ul></div></div></div><div class="sect2" title="2.10.4. RB"><div class="titlepage"><div><div><h3 class="title"><a name="RB"></a>2.10.4. RB</h3></div></div></div><p>Vollständiger Dokumentensatz mit alternativen Design</p></div><div class="sect2" title="2.10.5. Allgemeine Hinweise zu LaTeX Vorlagen"><div class="titlepage"><div><div><h3 class="title"><a name="Allgemeine Hinweise zu LaTeX"></a>2.10.5. Allgemeine Hinweise zu LaTeX Vorlagen</h3></div></div></div><p>In den allermeisten Installationen sollte drucken jetzt schon |
|
47 |
Das Konzept von kivitendo sieht vor, für jedes Dokument (Auftragsbestätigung, Lieferschein, Rechnung, etc.) eine LaTeX-Vorlage |
|
48 |
vorzuhalten, dies ist sehr Wartungsunfreundlich. Auch das Einlesen einer einheitlichen Quelle für den Briefkopf bringt nur |
|
49 |
bedingte Vorteile, da hier leicht die Pflege der Artikel-Tabellen aus dem Ruder läuft. Bei dem vorliegenden Ansatz wird für alle |
|
50 |
briefartigen Dokumente mit Artikel-Tabellen eine einheitliche LaTeX-Vorlage verwendet, welche über Codeweichen die |
|
51 |
Besonderheiten der jeweiligen Dokumente Berücksichtigt. |
|
52 |
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Tabellen mit oder ohne Preis</p></li><li class="listitem"><p>Sprache der Tabellenüberschriften etc.</p></li><li class="listitem"><p>Anpassung der Bezugs-Zeile (z.B. Rechnungsnummer versus Angebotsnummer)</p></li><li class="listitem"><p>Darstellung von Brutto oder Netto-Preisen in der Auflistung (Endverbraucher versus Gewerblicher |
|
53 |
Kunde)</p></li></ul></div><p>Nachteil:</p><p> |
|
54 |
LaTeX hat ohnehin eine sehr steile Lehrnkurve. Die Datei <code class="filename">letter.tex</code> ist sehr komplex und verstärkt damit |
|
55 |
diesen Effekt noch einmal erheblich. Wer LaTeX-Erfahrung hat, oder geübt ist Scriptsparachen nachzuvollziehen kann natürlich |
|
56 |
auch innerhalb der Tabellendarstellung gut persönliche Anpassungen vornehmen. Aber man kann sich hier bei Veränderungen sehr |
|
57 |
schnell häftig in den Fuss schiessen. |
|
58 |
</p><p>Wer nicht so tief in die Materie einsteigen will oder leicht zu frustrieren ist, sollte sein Hintergrund PDF auf Basis der |
|
59 |
mitglieferten Datei <code class="filename">sample_head.pdf</code> erstellen, und sich an der Form der dargestellten Tabellen wie sie |
|
60 |
ausgeliefert werden, erfreuen. |
|
61 |
</p><p>Kleiner Tipp: Nicht zu viel auf einmal wollen, lieber kleine kontinuierliche Schritte gehen.</p></div><div class="sect3" title="2.10.3.4. Bruttopreise für Endverbraucher"><div class="titlepage"><div><div><h4 class="title"><a name="f-tex-Bruttopreise"></a>2.10.3.4. Bruttopreise für Endverbraucher</h4></div></div></div><p>Der auszuweisende Bruttopreis wird innerhalb der LaTeX-Umgebung berechnet. Es gibt zwar ein Feld, um bei Aufträgen "alle |
|
62 |
Preise Brutto" auszuwählen, aber:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>hierfür müssen die Preise auch in Brutto in der Datenbank stehen (ja - das lässt sich über die Preisgruppen und die |
|
63 |
Zuordung einer Default-Preisgruppe handhaben)</p></li><li class="listitem"><p>man darf beim Anlegen des Vorgangs nicht vergessen Dieses Häkchen zu setzen. (das ist in der Praxis wenn man sowohl |
|
64 |
Endverbraucher- wie Gewerbekunden beliefert der eigentliche Knackpunkt)</p></li></ul></div><p> |
|
65 |
Es gibt mit f-tex eine weitere Alternative. Die Information ob Brutto oder Nettorechnung wird mit den Zahlarten |
|
66 |
verknüpft. Zahlarten bei denen Rechnungen, Angebote, etc, in Brutto ausgegeben werden sollen, enden mit "_E" (für |
|
67 |
Endverbraucher). Falls identische Zahlarten für Gewerbekunden und Endverbraucher vorhanden sind, legt man diese einfach doppelt |
|
68 |
an (einmal mit der Namensendung "_E"). Gewinn:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Die Entscheidung, ob Netopreise ausgewiesen werden, ist nicht mehr fix mit einer Preisliste Verbunden.</p></li><li class="listitem"><p>Die Default-Zahlart kann im Kundendatensatz hinterlegt werden, und man muss nicht mehr daran denken, "alle Preise |
|
69 |
Netto" auszuwählen.</p></li><li class="listitem"><p>Die Entscheidung, ob Netto- oder Bruttopreise ausgewiesen werden, kann direkt beim Drucken reviediert werden, |
|
70 |
ohne dass sich der Auftragswert ändert.</p></li></ul></div></div><div class="sect3" title="2.10.3.5. Lieferadressen"><div class="titlepage"><div><div><h4 class="title"><a name="f-tex-lieferadressen"></a>2.10.3.5. Lieferadressen</h4></div></div></div><p>In Lieferscheinen kommen <code class="varname">shipto*</code>-Variablen im Adressfeld zum Einsatz. Wenn die |
|
71 |
<code class="varname">shipto*</code>-Variable leer ist, wird die entsprechende Adressvariable eingesetzt. Wenn also die Lieferadresse in |
|
72 |
Straße, Hausnummer und Ort abweicht, müssen auch nur diese Felder in der Lieferadresse ausgefüllt werden. Für den Firmenname wird |
|
73 |
der Wert der Hauptadresse angezeigt. |
|
74 |
</p></div></div><div class="sect2" title="2.10.4. RB"><div class="titlepage"><div><div><h3 class="title"><a name="Vorlagen-RB"></a>2.10.4. RB</h3></div></div></div><p>Vollständiger Dokumentensatz mit alternativem Design</p></div><div class="sect2" title="2.10.5. Allgemeine Hinweise zu LaTeX Vorlagen"><div class="titlepage"><div><div><h3 class="title"><a name="allgemeine-hinweise-zu-latex"></a>2.10.5. Allgemeine Hinweise zu LaTeX Vorlagen</h3></div></div></div><p>In den allermeisten Installationen sollte drucken jetzt schon |
|
144 | 75 |
funktionieren. Sollte ein Fehler auftreten wirft TeX sehr lange |
145 | 76 |
Fehlerbeschreibungen, der eigentliche Fehler ist immer die erste Zeite |
146 | 77 |
die mit einem Ausrufezeichen anfängt. Häufig auftretende Fehler sind zum |
147 | 78 |
Beispiel:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>! LaTeX Error: File `eurosym.sty' not found. Die entsprechende |
148 | 79 |
LaTeX-Bibliothek wurde nicht gefunden. Das tritt vor allem bei |
149 | 80 |
Vorlagen aus der Community auf. Installieren Sie die entsprechenden |
150 |
Pakete.</p></li><li class="listitem"><p>! Package inputenc Error: Unicode char \u8:æ¡ not set up for
|
|
81 |
Pakete.</p></li><li class="listitem"><p>! Package inputenc Error: Unicode char \u8:... set up for
|
|
151 | 82 |
use with LaTeX. Dieser Fehler tritt auf, wenn sie versuchen mit |
152 | 83 |
einer Standardinstallation exotische utf8 Zeichen zu drucken. |
153 | 84 |
TeXLive unterstützt von Haus nur romanische Schriften und muss mit |
doc/html/ch03s02.html | ||
---|---|---|
556 | 556 |
<code class="varname">invdate</code> |
557 | 557 |
</span></dt><dd><p>Rechnungsdatum</p></dd><dt><span class="term"> |
558 | 558 |
<code class="varname">invnumber</code> |
559 |
</span></dt><dd><p>Rechnungsnummer</p></dd></dl></div></div></div><div class="sect2" title="3.2.10. Variablen in anderen Vorlagen"><div class="titlepage"><div><div><h3 class="title"><a name="dokumentenvorlagen-und-variablen.andere-vorlagen"></a>3.2.10. Variablen in anderen Vorlagen</h3></div></div></div><div class="sect3" title="3.2.10.1. Einführung"><div class="titlepage"><div><div><h4 class="title"><a name="d0e4241"></a>3.2.10.1. Einführung</h4></div></div></div><p>Die Variablen in anderen Vorlagen sind ähnlich wie in der
|
|
559 |
</span></dt><dd><p>Rechnungsnummer</p></dd></dl></div></div></div><div class="sect2" title="3.2.10. Variablen in anderen Vorlagen"><div class="titlepage"><div><div><h3 class="title"><a name="dokumentenvorlagen-und-variablen.andere-vorlagen"></a>3.2.10. Variablen in anderen Vorlagen</h3></div></div></div><div class="sect3" title="3.2.10.1. Einführung"><div class="titlepage"><div><div><h4 class="title"><a name="d0e4361"></a>3.2.10.1. Einführung</h4></div></div></div><p>Die Variablen in anderen Vorlagen sind ähnlich wie in der
|
|
560 | 560 |
Rechnung. Allerdings heißen die Variablen, die mit |
561 | 561 |
<code class="varname">inv</code> beginnen, jetzt anders. Bei den Angeboten |
562 | 562 |
fangen sie mit <code class="varname">quo</code> für "quotation" an: |
... | ... | |
660 | 660 |
... |
661 | 661 |
<%end%></pre><p>Eine normale "if-then"-Bedingung. Die Zeilen zwischen dem "if" |
662 | 662 |
und dem "end" werden nur ausgegeben, wenn die Variable |
663 |
<code class="varname">variablenname</code> gesetzt und ungleich 0 ist.</p><p>Die Bedingung kann auch negiert werden, indem das Wort |
|
663 |
<code class="varname">variablenname</code> gesetzt und ungleich 0 ist.</p><p>Handelt es sich bei der benannten Variable um ein Array, also um einen Variablennamen, über den man mit |
|
664 |
<span class="command"><strong><%foreach variablenname%></strong></span> iteriert, so wird mit diesem Konstrukt darauf getestet, ob das Array Elemente |
|
665 |
enthält. Somit würde im folgenden Beispiel nur dann eine Liste von Zahlungseingängen samt ihrer Überschrift "Zahlungseingänge" |
|
666 |
ausgegeben, wenn tatsächlich welche getätigt wurden:</p><pre class="programlisting"><%if payment%> |
|
667 |
Zahlungseingänge: |
|
668 |
<%foreach payment%> |
|
669 |
Am <%paymentdate%>: <%payment%> € |
|
670 |
<%end foreach%> |
|
671 |
<%end if%></pre><p>Die Bedingung kann auch negiert werden, indem das Wort |
|
664 | 672 |
<code class="function">not</code> nach dem <code class="filename">if</code> verwendet |
665 | 673 |
wird. Beispiel:</p><pre class="programlisting"><%if not cp_greeting%> |
666 | 674 |
... |
doc/html/ch04.html | ||
---|---|---|
1 | 1 |
<html><head> |
2 | 2 |
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
3 |
<title>Kapitel 4. Entwicklerdokumentation</title><link rel="stylesheet" type="text/css" href="style.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1-RC2"><link rel="home" href="index.html" title="kivitendo: Installation, Konfiguration, Entwicklung"><link rel="up" href="index.html" title="kivitendo: Installation, Konfiguration, Entwicklung"><link rel="prev" href="ch03s03.html" title="3.3. Excel-Vorlagen"><link rel="next" href="ch04s02.html" title="4.2. Entwicklung unter FastCGI"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Kapitel 4. Entwicklerdokumentation</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch03s03.html">Zurück</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ch04s02.html">Weiter</a></td></tr></table><hr></div><div class="chapter" title="Kapitel 4. Entwicklerdokumentation"><div class="titlepage"><div><div><h2 class="title"><a name="d0e4841"></a>Kapitel 4. Entwicklerdokumentation</h2></div></div></div><div class="sect1" title="4.1. Globale Variablen"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="devel.globals"></a>4.1. Globale Variablen</h2></div></div></div><div class="sect2" title="4.1.1. Wie sehen globale Variablen in Perl aus?"><div class="titlepage"><div><div><h3 class="title"><a name="d0e4847"></a>4.1.1. Wie sehen globale Variablen in Perl aus?</h3></div></div></div><p>Globale Variablen liegen in einem speziellen namespace namens
|
|
3 |
<title>Kapitel 4. Entwicklerdokumentation</title><link rel="stylesheet" type="text/css" href="style.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1-RC2"><link rel="home" href="index.html" title="kivitendo: Installation, Konfiguration, Entwicklung"><link rel="up" href="index.html" title="kivitendo: Installation, Konfiguration, Entwicklung"><link rel="prev" href="ch03s03.html" title="3.3. Excel-Vorlagen"><link rel="next" href="ch04s02.html" title="4.2. Entwicklung unter FastCGI"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Kapitel 4. Entwicklerdokumentation</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch03s03.html">Zurück</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ch04s02.html">Weiter</a></td></tr></table><hr></div><div class="chapter" title="Kapitel 4. Entwicklerdokumentation"><div class="titlepage"><div><div><h2 class="title"><a name="d0e4968"></a>Kapitel 4. Entwicklerdokumentation</h2></div></div></div><div class="sect1" title="4.1. Globale Variablen"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="devel.globals"></a>4.1. Globale Variablen</h2></div></div></div><div class="sect2" title="4.1.1. Wie sehen globale Variablen in Perl aus?"><div class="titlepage"><div><div><h3 class="title"><a name="d0e4974"></a>4.1.1. Wie sehen globale Variablen in Perl aus?</h3></div></div></div><p>Globale Variablen liegen in einem speziellen namespace namens
|
|
4 | 4 |
"main", der von überall erreichbar ist. Darüber hinaus sind bareword |
5 | 5 |
globs global und die meisten speziellen Variablen sind... |
6 | 6 |
speziell.</p><p>Daraus ergeben sich folgende Formen:</p><div class="variablelist"><dl><dt><span class="term"> |
... | ... | |
25 | 25 |
<code class="varname">$PACKAGE::form</code>.</p></dd><dt><span class="term"> |
26 | 26 |
<code class="literal">local $form</code> |
27 | 27 |
</span></dt><dd><p>Alle Änderungen an <code class="varname">$form</code> werden am Ende |
28 |
des scopes zurückgesetzt</p></dd></dl></div></div><div class="sect2" title="4.1.2. Warum sind globale Variablen ein Problem?"><div class="titlepage"><div><div><h3 class="title"><a name="d0e4948"></a>4.1.2. Warum sind globale Variablen ein Problem?</h3></div></div></div><p>Das erste Problem ist <span class="productname">FCGI</span>™.</p><p>
|
|
28 |
des scopes zurückgesetzt</p></dd></dl></div></div><div class="sect2" title="4.1.2. Warum sind globale Variablen ein Problem?"><div class="titlepage"><div><div><h3 class="title"><a name="d0e5075"></a>4.1.2. Warum sind globale Variablen ein Problem?</h3></div></div></div><p>Das erste Problem ist <span class="productname">FCGI</span>™.</p><p>
|
|
29 | 29 |
<span class="productname">SQL-Ledger</span>™ hat fast alles im globalen |
30 | 30 |
namespace abgelegt, und erwartet, dass es da auch wiederzufinden ist. |
31 | 31 |
Unter <span class="productname">FCGI</span>™ müssen diese Sachen aber wieder |
... | ... | |
39 | 39 |
dies hat, seit der Einführung, u.a. schon so manche langwierige |
40 | 40 |
Bug-Suche verkürzt. Da globale Variablen aber implizit mit Package |
41 | 41 |
angegeben werden, werden die nicht geprüft, und somit kann sich |
42 |
schnell ein Tippfehler einschleichen.</p></div><div class="sect2" title="4.1.3. Kanonische globale Variablen"><div class="titlepage"><div><div><h3 class="title"><a name="d0e4981"></a>4.1.3. Kanonische globale Variablen</h3></div></div></div><p>Um dieses Problem im Griff zu halten gibt es einige wenige
|
|
42 |
schnell ein Tippfehler einschleichen.</p></div><div class="sect2" title="4.1.3. Kanonische globale Variablen"><div class="titlepage"><div><div><h3 class="title"><a name="d0e5108"></a>4.1.3. Kanonische globale Variablen</h3></div></div></div><p>Um dieses Problem im Griff zu halten gibt es einige wenige
|
|
43 | 43 |
globale Variablen, die kanonisch sind, d.h. sie haben bestimmte |
44 | 44 |
vorgegebenen Eigenschaften, und alles andere sollte anderweitig |
45 | 45 |
umhergereicht werden.</p><p>Diese Variablen sind im Moment die folgenden neun:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> |
... | ... | |
62 | 62 |
<code class="varname">$::request</code> |
63 | 63 |
</p></li></ul></div><p>Damit diese nicht erneut als Müllhalde missbraucht werden, im |
64 | 64 |
Folgenden eine kurze Erläuterung der bestimmten vorgegebenen |
65 |
Eigenschaften (Konventionen):</p><div class="sect3" title="4.1.3.1. $::form"><div class="titlepage"><div><div><h4 class="title"><a name="d0e5045"></a>4.1.3.1. $::form</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Ist ein Objekt der Klasse
|
|
65 |
Eigenschaften (Konventionen):</p><div class="sect3" title="4.1.3.1. $::form"><div class="titlepage"><div><div><h4 class="title"><a name="d0e5172"></a>4.1.3.1. $::form</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Ist ein Objekt der Klasse
|
|
66 | 66 |
"<code class="classname">Form</code>"</p></li><li class="listitem"><p>Wird nach jedem Request gelöscht</p></li><li class="listitem"><p>Muss auch in Tests und Konsolenscripts vorhanden |
67 | 67 |
sein.</p></li><li class="listitem"><p>Enthält am Anfang eines Requests die Requestparameter vom |
68 | 68 |
User</p></li><li class="listitem"><p>Kann zwar intern über Requestgrenzen ein Datenbankhandle |
... | ... | |
110 | 110 |
push @{ $form->{TEMPLATE_ARRAYS}{number} }, $form->{"partnumber_$i"}; |
111 | 111 |
push @{ $form->{TEMPLATE_ARRAYS}{description} }, $form->{"description_$i"}; |
112 | 112 |
# ... |
113 |
}</pre></div><div class="sect3" title="4.1.3.2. %::myconfig"><div class="titlepage"><div><div><h4 class="title"><a name="d0e5129"></a>4.1.3.2. %::myconfig</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Das einzige Hash unter den globalen Variablen</p></li><li class="listitem"><p>Wird spätestens benötigt wenn auf die Datenbank
|
|
113 |
}</pre></div><div class="sect3" title="4.1.3.2. %::myconfig"><div class="titlepage"><div><div><h4 class="title"><a name="d0e5256"></a>4.1.3.2. %::myconfig</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Das einzige Hash unter den globalen Variablen</p></li><li class="listitem"><p>Wird spätestens benötigt wenn auf die Datenbank
|
|
114 | 114 |
zugegriffen wird</p></li><li class="listitem"><p>Wird bei jedem Request neu erstellt.</p></li><li class="listitem"><p>Enthält die Userdaten des aktuellen Logins</p></li><li class="listitem"><p>Sollte nicht ohne Filterung irgendwo gedumpt werden oder |
115 | 115 |
extern serialisiert werden, weil da auch der Datenbankzugriff |
116 | 116 |
für diesen user drinsteht.</p></li><li class="listitem"><p>Enthält unter anderem Listenbegrenzung vclimit, |
... | ... | |
122 | 122 |
überwiegend die Daten, die sich unter <span class="guimenu">Programm</span> |
123 | 123 |
-> <span class="guimenuitem">Einstellungen</span> befinden, bzw. die |
124 | 124 |
Informationen über den Benutzer die über die |
125 |
Administrator-Schnittstelle (admin.pl) eingegeben wurden.</p></div><div class="sect3" title="4.1.3.3. $::locale"><div class="titlepage"><div><div><h4 class="title"><a name="d0e5168"></a>4.1.3.3. $::locale</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Objekt der Klasse "Locale"</p></li><li class="listitem"><p>Wird pro Request erstellt</p></li><li class="listitem"><p>Muss auch für Tests und Scripte immer verfügbar
|
|
125 |
Administrator-Schnittstelle (admin.pl) eingegeben wurden.</p></div><div class="sect3" title="4.1.3.3. $::locale"><div class="titlepage"><div><div><h4 class="title"><a name="d0e5295"></a>4.1.3.3. $::locale</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Objekt der Klasse "Locale"</p></li><li class="listitem"><p>Wird pro Request erstellt</p></li><li class="listitem"><p>Muss auch für Tests und Scripte immer verfügbar
|
|
126 | 126 |
sein.</p></li><li class="listitem"><p>Cached intern über Requestgrenzen hinweg benutzte |
127 | 127 |
Locales</p></li></ul></div><p>Lokalisierung für den aktuellen User. Alle Übersetzungen, |
128 |
Zahlen- und Datumsformatierungen laufen über dieses Objekt.</p></div><div class="sect3" title="4.1.3.4. $::lxdebug"><div class="titlepage"><div><div><h4 class="title"><a name="d0e5186"></a>4.1.3.4. $::lxdebug</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Objekt der Klasse "LXDebug"</p></li><li class="listitem"><p>Wird global gecached</p></li><li class="listitem"><p>Muss immer verfügbar sein, in nahezu allen
|
|
128 |
Zahlen- und Datumsformatierungen laufen über dieses Objekt.</p></div><div class="sect3" title="4.1.3.4. $::lxdebug"><div class="titlepage"><div><div><h4 class="title"><a name="d0e5313"></a>4.1.3.4. $::lxdebug</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Objekt der Klasse "LXDebug"</p></li><li class="listitem"><p>Wird global gecached</p></li><li class="listitem"><p>Muss immer verfügbar sein, in nahezu allen
|
|
129 | 129 |
Funktionen</p></li></ul></div><p> |
130 | 130 |
<code class="varname">$::lxdebug</code> stellt Debuggingfunktionen |
131 | 131 |
bereit, wie "<code class="function">enter_sub</code>" und |
... | ... | |
135 | 135 |
"<code class="function">message</code>" und "<code class="function">dump</code>" mit |
136 | 136 |
denen man flott Informationen ins Log (tmp/kivitendo-debug.log) |
137 | 137 |
packen kann.</p><p>Beispielsweise so:</p><pre class="programlisting">$main::lxdebug->message(0, 'Meine Konfig:' . Dumper (%::myconfig)); |
138 |
$main::lxdebug->message(0, 'Wer bin ich? Kunde oder Lieferant:' . $form->{vc});</pre></div><div class="sect3" title="4.1.3.5. $::auth"><div class="titlepage"><div><div><h4 class="title"><a name="d0e5223"></a>4.1.3.5. $::auth</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Objekt der Klasse "SL::Auth"</p></li><li class="listitem"><p>Wird global gecached</p></li><li class="listitem"><p>Hat eine permanente DB Verbindung zur Authdatenbank</p></li><li class="listitem"><p>Wird nach jedem Request resettet.</p></li></ul></div><p>
|
|
138 |
$main::lxdebug->message(0, 'Wer bin ich? Kunde oder Lieferant:' . $form->{vc});</pre></div><div class="sect3" title="4.1.3.5. $::auth"><div class="titlepage"><div><div><h4 class="title"><a name="d0e5350"></a>4.1.3.5. $::auth</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Objekt der Klasse "SL::Auth"</p></li><li class="listitem"><p>Wird global gecached</p></li><li class="listitem"><p>Hat eine permanente DB Verbindung zur Authdatenbank</p></li><li class="listitem"><p>Wird nach jedem Request resettet.</p></li></ul></div><p>
|
|
139 | 139 |
<code class="varname">$::auth</code> stellt Funktionen bereit um die |
140 | 140 |
Rechte des aktuellen Users abzufragen. Obwohl diese Informationen |
141 | 141 |
vom aktuellen User abhängen wird das Objekt aus |
142 | 142 |
Geschwindigkeitsgründen nur einmal angelegt und dann nach jedem |
143 |
Request kurz resettet.</p></div><div class="sect3" title="4.1.3.6. $::lx_office_conf"><div class="titlepage"><div><div><h4 class="title"><a name="d0e5244"></a>4.1.3.6. $::lx_office_conf</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Objekt der Klasse
|
|
143 |
Request kurz resettet.</p></div><div class="sect3" title="4.1.3.6. $::lx_office_conf"><div class="titlepage"><div><div><h4 class="title"><a name="d0e5371"></a>4.1.3.6. $::lx_office_conf</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Objekt der Klasse
|
|
144 | 144 |
"<code class="classname">SL::LxOfficeConf</code>"</p></li><li class="listitem"><p>Global gecached</p></li><li class="listitem"><p>Repräsentation der |
145 | 145 |
<code class="filename">config/kivitendo.conf[.default]</code>-Dateien</p></li></ul></div><p>Globale Konfiguration. Configdateien werden zum Start gelesen |
146 | 146 |
und danach nicht mehr angefasst. Es ist derzeit nicht geplant, dass |
... | ... | |
150 | 150 |
file = /tmp/kivitendo-debug.log</pre><p>ist der Key <code class="varname">file</code> im Programm als |
151 | 151 |
<code class="varname">$::lx_office_conf->{debug}{file}</code> |
152 | 152 |
erreichbar.</p><div class="warning" title="Warnung" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Warning"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Warnung]" src="../../../../system/docbook-xsl/images/warning.png"></td><th align="left">Warnung</th></tr><tr><td align="left" valign="top"><p>Zugriff auf die Konfiguration erfolgt im Moment über |
153 |
Hashkeys, sind also nicht gegen Tippfehler abgesichert.</p></td></tr></table></div></div><div class="sect3" title="4.1.3.7. $::instance_conf"><div class="titlepage"><div><div><h4 class="title"><a name="d0e5280"></a>4.1.3.7. $::instance_conf</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Objekt der Klasse
|
|
153 |
Hashkeys, sind also nicht gegen Tippfehler abgesichert.</p></td></tr></table></div></div><div class="sect3" title="4.1.3.7. $::instance_conf"><div class="titlepage"><div><div><h4 class="title"><a name="d0e5407"></a>4.1.3.7. $::instance_conf</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Objekt der Klasse
|
|
154 | 154 |
"<code class="classname">SL::InstanceConfiguration</code>"</p></li><li class="listitem"><p>wird pro Request neu erstellt</p></li></ul></div><p>Funktioniert wie <code class="varname">$::lx_office_conf</code>, |
155 | 155 |
speichert aber Daten die von der Instanz abhängig sind. Eine Instanz |
156 | 156 |
ist hier eine Mandantendatenbank. Beispielsweise überprüft |
157 | 157 |
</p><pre class="programlisting">$::instance_conf->get_inventory_system eq 'perpetual'</pre><p> |
158 |
ob die berüchtigte Bestandsmethode zur Anwendung kommt.</p></div><div class="sect3" title="4.1.3.8. $::dispatcher"><div class="titlepage"><div><div><h4 class="title"><a name="d0e5301"></a>4.1.3.8. $::dispatcher</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Objekt der Klasse
|
|
158 |
ob die berüchtigte Bestandsmethode zur Anwendung kommt.</p></div><div class="sect3" title="4.1.3.8. $::dispatcher"><div class="titlepage"><div><div><h4 class="title"><a name="d0e5428"></a>4.1.3.8. $::dispatcher</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Objekt der Klasse
|
|
159 | 159 |
"<code class="varname">SL::Dispatcher</code>"</p></li><li class="listitem"><p>wird pro Serverprozess erstellt.</p></li><li class="listitem"><p>enthält Informationen über die technische Verbindung zum |
160 | 160 |
Server</p></li></ul></div><p>Der dritte Punkt ist auch der einzige Grund warum das Objekt |
161 | 161 |
global gespeichert wird. Wird vermutlich irgendwann in einem anderen |
162 |
Objekt untergebracht.</p></div><div class="sect3" title="4.1.3.9. $::request"><div class="titlepage"><div><div><h4 class="title"><a name="d0e5319"></a>4.1.3.9. $::request</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Hashref (evtl später Objekt)</p></li><li class="listitem"><p>Wird pro Request neu initialisiert.</p></li><li class="listitem"><p>Keine Unterstruktur garantiert.</p></li></ul></div><p>
|
|
162 |
Objekt untergebracht.</p></div><div class="sect3" title="4.1.3.9. $::request"><div class="titlepage"><div><div><h4 class="title"><a name="d0e5446"></a>4.1.3.9. $::request</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Hashref (evtl später Objekt)</p></li><li class="listitem"><p>Wird pro Request neu initialisiert.</p></li><li class="listitem"><p>Keine Unterstruktur garantiert.</p></li></ul></div><p>
|
|
163 | 163 |
<code class="varname">$::request</code> ist ein generischer Platz um |
164 | 164 |
Daten "für den aktuellen Request" abzulegen. Sollte nicht für action |
165 | 165 |
at a distance benutzt werden, sondern um lokales memoizing zu |
... | ... | |
172 | 172 |
<code class="varname">$::request</code> |
173 | 173 |
</p></li><li class="listitem"><p>Muss ich von anderen Teilen des Programms lesend drauf |
174 | 174 |
zugreifen? Dann <code class="varname">$::request</code>, aber Zugriff über |
175 |
Wrappermethode</p></li></ul></div></div></div><div class="sect2" title="4.1.4. Ehemalige globale Variablen"><div class="titlepage"><div><div><h3 class="title"><a name="d0e5361"></a>4.1.4. Ehemalige globale Variablen</h3></div></div></div><p>Die folgenden Variablen waren einmal im Programm, und wurden
|
|
176 |
entfernt.</p><div class="sect3" title="4.1.4.1. $::cgi"><div class="titlepage"><div><div><h4 class="title"><a name="d0e5366"></a>4.1.4.1. $::cgi</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>war nötig, weil cookie Methoden nicht als
|
|
175 |
Wrappermethode</p></li></ul></div></div></div><div class="sect2" title="4.1.4. Ehemalige globale Variablen"><div class="titlepage"><div><div><h3 class="title"><a name="d0e5488"></a>4.1.4. Ehemalige globale Variablen</h3></div></div></div><p>Die folgenden Variablen waren einmal im Programm, und wurden
|
|
176 |
entfernt.</p><div class="sect3" title="4.1.4.1. $::cgi"><div class="titlepage"><div><div><h4 class="title"><a name="d0e5493"></a>4.1.4.1. $::cgi</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>war nötig, weil cookie Methoden nicht als
|
|
177 | 177 |
Klassenfunktionen funktionieren</p></li><li class="listitem"><p>Aufruf als Klasse erzeugt Dummyobjekt was im |
178 | 178 |
Klassennamespace gehalten wird und über Requestgrenzen |
179 | 179 |
leaked</p></li><li class="listitem"><p>liegt jetzt unter |
180 | 180 |
<code class="varname">$::request->{cgi}</code> |
181 |
</p></li></ul></div></div><div class="sect3" title="4.1.4.2. $::all_units"><div class="titlepage"><div><div><h4 class="title"><a name="d0e5382"></a>4.1.4.2. $::all_units</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>war nötig, weil einige Funktionen in Schleifen zum Teil
|
|
181 |
</p></li></ul></div></div><div class="sect3" title="4.1.4.2. $::all_units"><div class="titlepage"><div><div><h4 class="title"><a name="d0e5509"></a>4.1.4.2. $::all_units</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>war nötig, weil einige Funktionen in Schleifen zum Teil
|
|
182 | 182 |
ein paar hundert mal pro Request eine Liste der Einheiten |
183 | 183 |
brauchen, und de als Parameter durch einen Riesenstack von |
184 | 184 |
Funktionen geschleift werden müssten.</p></li><li class="listitem"><p>Liegt jetzt unter |
185 | 185 |
<code class="varname">$::request->{cache}{all_units}</code> |
186 | 186 |
</p></li><li class="listitem"><p>Wird nur in |
187 | 187 |
<code class="function">AM->retrieve_all_units()</code> gesetzt oder |
188 |
gelesen.</p></li></ul></div></div><div class="sect3" title="4.1.4.3. %::called_subs"><div class="titlepage"><div><div><h4 class="title"><a name="d0e5401"></a>4.1.4.3. %::called_subs</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>wurde benutzt um callsub deep recursions
|
|
188 |
gelesen.</p></li></ul></div></div><div class="sect3" title="4.1.4.3. %::called_subs"><div class="titlepage"><div><div><h4 class="title"><a name="d0e5528"></a>4.1.4.3. %::called_subs</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>wurde benutzt um callsub deep recursions
|
|
189 | 189 |
abzufangen.</p></li><li class="listitem"><p>Wurde entfernt, weil callsub nur einen Bruchteil der |
190 | 190 |
möglichen Rekursioenen darstellt, und da nie welche |
191 | 191 |
auftreten.</p></li><li class="listitem"><p>komplette recursion protection wurde entfernt.</p></li></ul></div></div></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch03s03.html">Zurück</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="ch04s02.html">Weiter</a></td></tr><tr><td width="40%" align="left" valign="top">3.3. Excel-Vorlagen </td><td width="20%" align="center"><a accesskey="h" href="index.html">Zum Anfang</a></td><td width="40%" align="right" valign="top"> 4.2. Entwicklung unter FastCGI</td></tr></table></div></body></html> |
doc/html/ch04s05.html | ||
---|---|---|
3 | 3 |
<title>4.5. Die kivitendo-Test-Suite</title><link rel="stylesheet" type="text/css" href="style.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1-RC2"><link rel="home" href="index.html" title="kivitendo: Installation, Konfiguration, Entwicklung"><link rel="up" href="ch04.html" title="Kapitel 4. Entwicklerdokumentation"><link rel="prev" href="ch04s04.html" title="4.4. Translations and languages"><link rel="next" href="ch04s06.html" title="4.6. Stil-Richtlinien"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">4.5. Die kivitendo-Test-Suite</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch04s04.html">Zurück</a> </td><th width="60%" align="center">Kapitel 4. Entwicklerdokumentation</th><td width="20%" align="right"> <a accesskey="n" href="ch04s06.html">Weiter</a></td></tr></table><hr></div><div class="sect1" title="4.5. Die kivitendo-Test-Suite"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="devel.testsuite"></a>4.5. Die kivitendo-Test-Suite</h2></div></div></div><div class="sect2" title="4.5.1. Einführung"><div class="titlepage"><div><div><h3 class="title"><a name="devel.testsuite.intro"></a>4.5.1. Einführung</h3></div></div></div><p>kivitendo enthält eine Suite für automatisierte Tests. Sie basiert auf dem Standard-Perl-Modul <code class="literal">Test::More</code>.</p><p>Die grundlegenden Fakten sind:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Alle Tests liegen im Unterverzeichnis <code class="filename">t/</code>.</p></li><li class="listitem"><p>Ein Script (bzw. ein Test) in <code class="filename">f/</code> enthält einen oder mehrere Testfälle.</p></li><li class="listitem"><p>Alle Dateinamen von Tests enden auf <code class="literal">.t</code>. Es sind selbstständig ausführbare Perl-Scripte.</p></li><li class="listitem"><p>Die Test-Suite besteht aus der Gesamtheit aller Tests, sprich aller Scripte in <code class="filename">f/</code>, deren |
4 | 4 |
Dateiname auf <code class="literal">.t</code> endet.</p></li></ul></div></div><div class="sect2" title="4.5.2. Voraussetzungen"><div class="titlepage"><div><div><h3 class="title"><a name="devel.testsuite.prerequisites"></a>4.5.2. Voraussetzungen</h3></div></div></div><p>Für die Ausführung werden neben den für kivitendo eh schon benötigten Module noch weitere Perl-Module benötigt. Diese sind:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> |
5 | 5 |
<code class="literal">Test::Deep</code> (Debian-Paketname: <code class="literal">libtest-deep-perl</code>; Fedora Core: |
6 |
<code class="literal">perl-Test-Deep</code>; openSuSE: <code class="literal">perl-Test-Deep</code>)</p></li></ul></div></div><div class="sect2" title="4.5.3. Existierende Tests ausführen"><div class="titlepage"><div><div><h3 class="title"><a name="devel.testsuite.execution"></a>4.5.3. |
|
6 |
<code class="literal">perl-Test-Deep</code>; openSuSE: <code class="literal">perl-Test-Deep</code>)</p></li><li class="listitem"><p> |
|
7 |
<code class="literal">Test::Harness</code> 3.0.0 oder höher. Dieses Modul ist ab Perl 5.10.1 Bestandteil der |
|
8 |
Perl-Distribution und kann für frühere Versionen aus dem <a class="ulink" href="http://www.cpan.org" target="_top">CPAN</a> bezogen |
|
9 |
werden.</p></li></ul></div></div><div class="sect2" title="4.5.3. Existierende Tests ausführen"><div class="titlepage"><div><div><h3 class="title"><a name="devel.testsuite.execution"></a>4.5.3. |
|
7 | 10 |
Existierende Tests ausführen |
8 | 11 |
</h3></div></div></div><p>Es gibt mehrere Möglichkeiten zum Ausführen der Tests: entweder, man lässt alle Tests auf einmal ausführen, oder man führt |
9 | 12 |
gezielt einzelne Scripte aus. Für beide Fälle gibt es das Helferscript <code class="filename">t/test.sh</code>.</p><p>Will man die komplette Test-Suite ausführen, so muss man einfach nur <code class="filename">t/test.sh</code> ohne weitere Parameter aus |
doc/html/index.html | ||
---|---|---|
1 | 1 |
<html><head> |
2 | 2 |
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
3 |
<title>kivitendo: Installation, Konfiguration, Entwicklung</title><link rel="stylesheet" type="text/css" href="style.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1-RC2"><link rel="home" href="index.html" title="kivitendo: Installation, Konfiguration, Entwicklung"><link rel="next" href="ch01.html" title="Kapitel 1. Aktuelle Hinweise"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">kivitendo: Installation, Konfiguration, Entwicklung</th></tr><tr><td width="20%" align="left"> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ch01.html">Weiter</a></td></tr></table><hr></div><div lang="de" class="book" title="kivitendo: Installation, Konfiguration, Entwicklung"><div class="titlepage"><div><div><h1 class="title"><a name="kivitendo-documentation"></a>kivitendo: Installation, Konfiguration, Entwicklung</h1></div></div><hr></div><div class="toc"><p><b>Inhaltsverzeichnis</b></p><dl><dt><span class="chapter"><a href="ch01.html">1. Aktuelle Hinweise</a></span></dt><dt><span class="chapter"><a href="ch02.html">2. Installation und Grundkonfiguration</a></span></dt><dd><dl><dt><span class="sect1"><a href="ch02.html#Ben%C3%B6tigte-Software-und-Pakete">2.1. Benötigte Software und Pakete</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02.html#Betriebssystem">2.1.1. Betriebssystem</a></span></dt><dt><span class="sect2"><a href="ch02.html#Pakete">2.1.2. Pakete</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s02.html">2.2. Manuelle Installation des Programmpaketes</a></span></dt><dt><span class="sect1"><a href="ch02s03.html">2.3. kivitendo-Konfigurationsdatei</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s03.html#config.config-file.introduction">2.3.1. Einführung</a></span></dt><dt><span class="sect2"><a href="ch02s03.html#config.config-file.sections-parameters">2.3.2. Abschnitte und Parameter</a></span></dt><dt><span class="sect2"><a href="ch02s03.html#config.config-file.prior-versions">2.3.3. Versionen vor 2.6.3</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s04.html">2.4. Anpassung der PostgreSQL-Konfiguration</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s04.html#Zeichens%C3%A4tze-die-Verwendung-von-UTF-8">2.4.1. Zeichensätze/die Verwendung von UTF-8</a></span></dt><dt><span class="sect2"><a href="ch02s04.html#%C3%84nderungen-an-Konfigurationsdateien">2.4.2. Änderungen an Konfigurationsdateien</a></span></dt><dt><span class="sect2"><a href="ch02s04.html#Erweiterung-f%C3%BCr-servergespeicherte-Prozeduren">2.4.3. Erweiterung für servergespeicherte Prozeduren</a></span></dt><dt><span class="sect2"><a href="ch02s04.html#Datenbankbenutzer-anlegen">2.4.4. Datenbankbenutzer anlegen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s05.html">2.5. Webserver-Konfiguration</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s05.html#d0e592">2.5.1. Grundkonfiguration mittels CGI</a></span></dt><dt><span class="sect2"><a href="ch02s05.html#Apache-Konfiguration.FCGI">2.5.2. Konfiguration für FastCGI/FCGI</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s06.html">2.6. Der Task-Server</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s06.html#Konfiguration-des-Task-Servers">2.6.1. Verfügbare und notwendige Konfigurationsoptionen</a></span></dt><dt><span class="sect2"><a href="ch02s06.html#Einbinden-in-den-Boot-Prozess">2.6.2. Automatisches Starten des Task-Servers beim Booten</a></span></dt><dt><span class="sect2"><a href="ch02s06.html#Prozesskontrolle">2.6.3. Wie der Task-Server gestartet und beendet wird</a></span></dt><dt><span class="sect2"><a href="ch02s06.html#Prozesskontrolle2">2.6.4. Task-Server mit mehreren Mandanten</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s07.html">2.7. Benutzerauthentifizierung und Administratorpasswort</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s07.html#Grundlagen-zur-Benutzerauthentifizierung">2.7.1. Grundlagen zur Benutzerauthentifizierung</a></span></dt><dt><span class="sect2"><a href="ch02s07.html#Administratorpasswort">2.7.2. Administratorpasswort</a></span></dt><dt><span class="sect2"><a href="ch02s07.html#Authentifizierungsdatenbank">2.7.3. Authentifizierungsdatenbank</a></span></dt><dt><span class="sect2"><a href="ch02s07.html#Passwort%C3%BCberpr%C3%BCfung">2.7.4. Passwortüberprüfung</a></span></dt><dt><span class="sect2"><a href="ch02s07.html#Name-des-Session-Cookies">2.7.5. Name des Session-Cookies</a></span></dt><dt><span class="sect2"><a href="ch02s07.html#Anlegen-der-Authentifizierungsdatenbank">2.7.6. Anlegen der Authentifizierungsdatenbank</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s08.html">2.8. Benutzer- und Gruppenverwaltung</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s08.html#Zusammenh%C3%A4nge">2.8.1. Zusammenhänge</a></span></dt><dt><span class="sect2"><a href="ch02s08.html#Datenbanken-anlegen">2.8.2. Datenbanken anlegen</a></span></dt><dt><span class="sect2"><a href="ch02s08.html#Gruppen-anlegen">2.8.3. Gruppen anlegen</a></span></dt><dt><span class="sect2"><a href="ch02s08.html#Benutzer-anlegen">2.8.4. Benutzer anlegen</a></span></dt><dt><span class="sect2"><a href="ch02s08.html#Gruppenmitgliedschaften-verwalten">2.8.5. Gruppenmitgliedschaften verwalten</a></span></dt><dt><span class="sect2"><a href="ch02s08.html#Migration-alter-Installationen">2.8.6. Migration alter Installationen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s09.html">2.9. E-Mail-Versand aus kivitendo heraus</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s09.html#config.sending-email.sendmail">2.9.1. Versand über lokalen E-Mail-Server</a></span></dt><dt><span class="sect2"><a href="ch02s09.html#config.sending-email.smtp">2.9.2. Versand über einen SMTP-Server</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s10.html">2.10. Drucken mit kivitendo</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s10.html#Vorlagenverzeichnis-anlegen">2.10.1. Vorlagenverzeichnis anlegen</a></span></dt><dt><span class="sect2"><a href="ch02s10.html#Standard">2.10.2. Default</a></span></dt><dt><span class="sect2"><a href="ch02s10.html#f-tex">2.10.3. f-tex</a></span></dt><dt><span class="sect2"><a href="ch02s10.html#RB">2.10.4. RB</a></span></dt><dt><span class="sect2"><a href="ch02s10.html#Allgemeine Hinweise zu LaTeX">2.10.5. Allgemeine Hinweise zu LaTeX Vorlagen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s11.html">2.11. OpenDocument-Vorlagen</a></span></dt><dt><span class="sect1"><a href="ch02s12.html">2.12. Konfiguration zur Einnahmenüberschussrechnung/Bilanzierung:
|
|
3 |
<title>kivitendo: Installation, Konfiguration, Entwicklung</title><link rel="stylesheet" type="text/css" href="style.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1-RC2"><link rel="home" href="index.html" title="kivitendo: Installation, Konfiguration, Entwicklung"><link rel="next" href="ch01.html" title="Kapitel 1. Aktuelle Hinweise"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">kivitendo: Installation, Konfiguration, Entwicklung</th></tr><tr><td width="20%" align="left"> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ch01.html">Weiter</a></td></tr></table><hr></div><div lang="de" class="book" title="kivitendo: Installation, Konfiguration, Entwicklung"><div class="titlepage"><div><div><h1 class="title"><a name="kivitendo-documentation"></a>kivitendo: Installation, Konfiguration, Entwicklung</h1></div></div><hr></div><div class="toc"><p><b>Inhaltsverzeichnis</b></p><dl><dt><span class="chapter"><a href="ch01.html">1. Aktuelle Hinweise</a></span></dt><dt><span class="chapter"><a href="ch02.html">2. Installation und Grundkonfiguration</a></span></dt><dd><dl><dt><span class="sect1"><a href="ch02.html#Ben%C3%B6tigte-Software-und-Pakete">2.1. Benötigte Software und Pakete</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02.html#Betriebssystem">2.1.1. Betriebssystem</a></span></dt><dt><span class="sect2"><a href="ch02.html#Pakete">2.1.2. Pakete</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s02.html">2.2. Manuelle Installation des Programmpaketes</a></span></dt><dt><span class="sect1"><a href="ch02s03.html">2.3. kivitendo-Konfigurationsdatei</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s03.html#config.config-file.introduction">2.3.1. Einführung</a></span></dt><dt><span class="sect2"><a href="ch02s03.html#config.config-file.sections-parameters">2.3.2. Abschnitte und Parameter</a></span></dt><dt><span class="sect2"><a href="ch02s03.html#config.config-file.prior-versions">2.3.3. Versionen vor 2.6.3</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s04.html">2.4. Anpassung der PostgreSQL-Konfiguration</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s04.html#Zeichens%C3%A4tze-die-Verwendung-von-UTF-8">2.4.1. Zeichensätze/die Verwendung von UTF-8</a></span></dt><dt><span class="sect2"><a href="ch02s04.html#%C3%84nderungen-an-Konfigurationsdateien">2.4.2. Änderungen an Konfigurationsdateien</a></span></dt><dt><span class="sect2"><a href="ch02s04.html#Erweiterung-f%C3%BCr-servergespeicherte-Prozeduren">2.4.3. Erweiterung für servergespeicherte Prozeduren</a></span></dt><dt><span class="sect2"><a href="ch02s04.html#Datenbankbenutzer-anlegen">2.4.4. Datenbankbenutzer anlegen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s05.html">2.5. Webserver-Konfiguration</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s05.html#d0e592">2.5.1. Grundkonfiguration mittels CGI</a></span></dt><dt><span class="sect2"><a href="ch02s05.html#Apache-Konfiguration.FCGI">2.5.2. Konfiguration für FastCGI/FCGI</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s06.html">2.6. Der Task-Server</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s06.html#Konfiguration-des-Task-Servers">2.6.1. Verfügbare und notwendige Konfigurationsoptionen</a></span></dt><dt><span class="sect2"><a href="ch02s06.html#Einbinden-in-den-Boot-Prozess">2.6.2. Automatisches Starten des Task-Servers beim Booten</a></span></dt><dt><span class="sect2"><a href="ch02s06.html#Prozesskontrolle">2.6.3. Wie der Task-Server gestartet und beendet wird</a></span></dt><dt><span class="sect2"><a href="ch02s06.html#Prozesskontrolle2">2.6.4. Task-Server mit mehreren Mandanten</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s07.html">2.7. Benutzerauthentifizierung und Administratorpasswort</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s07.html#Grundlagen-zur-Benutzerauthentifizierung">2.7.1. Grundlagen zur Benutzerauthentifizierung</a></span></dt><dt><span class="sect2"><a href="ch02s07.html#Administratorpasswort">2.7.2. Administratorpasswort</a></span></dt><dt><span class="sect2"><a href="ch02s07.html#Authentifizierungsdatenbank">2.7.3. Authentifizierungsdatenbank</a></span></dt><dt><span class="sect2"><a href="ch02s07.html#Passwort%C3%BCberpr%C3%BCfung">2.7.4. Passwortüberprüfung</a></span></dt><dt><span class="sect2"><a href="ch02s07.html#Name-des-Session-Cookies">2.7.5. Name des Session-Cookies</a></span></dt><dt><span class="sect2"><a href="ch02s07.html#Anlegen-der-Authentifizierungsdatenbank">2.7.6. Anlegen der Authentifizierungsdatenbank</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s08.html">2.8. Benutzer- und Gruppenverwaltung</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s08.html#Zusammenh%C3%A4nge">2.8.1. Zusammenhänge</a></span></dt><dt><span class="sect2"><a href="ch02s08.html#Datenbanken-anlegen">2.8.2. Datenbanken anlegen</a></span></dt><dt><span class="sect2"><a href="ch02s08.html#Gruppen-anlegen">2.8.3. Gruppen anlegen</a></span></dt><dt><span class="sect2"><a href="ch02s08.html#Benutzer-anlegen">2.8.4. Benutzer anlegen</a></span></dt><dt><span class="sect2"><a href="ch02s08.html#Gruppenmitgliedschaften-verwalten">2.8.5. Gruppenmitgliedschaften verwalten</a></span></dt><dt><span class="sect2"><a href="ch02s08.html#Migration-alter-Installationen">2.8.6. Migration alter Installationen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s09.html">2.9. E-Mail-Versand aus kivitendo heraus</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s09.html#config.sending-email.sendmail">2.9.1. Versand über lokalen E-Mail-Server</a></span></dt><dt><span class="sect2"><a href="ch02s09.html#config.sending-email.smtp">2.9.2. Versand über einen SMTP-Server</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s10.html">2.10. Drucken mit kivitendo</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s10.html#Vorlagenverzeichnis-anlegen">2.10.1. Vorlagenverzeichnis anlegen</a></span></dt><dt><span class="sect2"><a href="ch02s10.html#Vorlagen-Standard">2.10.2. Standard</a></span></dt><dt><span class="sect2"><a href="ch02s10.html#f-tex">2.10.3. f-tex</a></span></dt><dt><span class="sect2"><a href="ch02s10.html#Vorlagen-RB">2.10.4. RB</a></span></dt><dt><span class="sect2"><a href="ch02s10.html#allgemeine-hinweise-zu-latex">2.10.5. Allgemeine Hinweise zu LaTeX Vorlagen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s11.html">2.11. OpenDocument-Vorlagen</a></span></dt><dt><span class="sect1"><a href="ch02s12.html">2.12. Konfiguration zur Einnahmenüberschussrechnung/Bilanzierung:
|
|
4 | 4 |
EUR</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s12.html#config.eur.introduction">2.12.1. Einführung</a></span></dt><dt><span class="sect2"><a href="ch02s12.html#config.eur.parameters">2.12.2. Konfigurationsparameter</a></span></dt><dt><span class="sect2"><a href="ch02s12.html#config.eur.setting-parameters">2.12.3. Festlegen der Parameter</a></span></dt><dt><span class="sect2"><a href="ch02s12.html#config.eur.inventory-system-perpetual">2.12.4. Bemerkungen zu Bestandsmethode</a></span></dt><dt><span class="sect2"><a href="ch02s12.html#config.eur.knonw-issues">2.12.5. Bekannte Probleme</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s13.html">2.13. SKR04 19% Umstellung für innergemeinschaftlichen Erwerb</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s13.html#config.skr04-update-3804.introduction">2.13.1. Einführung</a></span></dt><dt><span class="sect2"><a href="ch02s13.html#config.skr04-update-3804.create-chart">2.13.2. Konto 3804 manuell anlegen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s14.html">2.14. Einstellungen pro Mandant</a></span></dt><dt><span class="sect1"><a href="ch02s15.html">2.15. kivitendo ERP verwenden</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch03.html">3. Features und Funktionen</a></span></dt><dd><dl><dt><span class="sect1"><a href="ch03.html#features.periodic-invoices">3.1. Wiederkehrende Rechnungen</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch03.html#features.periodic-invoices.introduction">3.1.1. Einführung</a></span></dt><dt><span class="sect2"><a href="ch03.html#features.periodic-invoices.configuration">3.1.2. Konfiguration</a></span></dt><dt><span class="sect2"><a href="ch03.html#features.periodic-invoices.reports">3.1.3. Auflisten</a></span></dt><dt><span class="sect2"><a href="ch03.html#features.periodic-invoices.task-server">3.1.4. Erzeugung der eigentlichen Rechnungen</a></span></dt><dt><span class="sect2"><a href="ch03.html#features.periodic-invoices.create-for-current-month">3.1.5. Erste Rechnung für aktuellen Monat erstellen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch03s02.html">3.2. Dokumentenvorlagen und verfügbare Variablen</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch03s02.html#dokumentenvorlagen-und-variablen.einf%C3%BChrung">3.2.1. Einführung</a></span></dt><dt><span class="sect2"><a href="ch03s02.html#dokumentenvorlagen-und-variablen.variablen-ausgeben">3.2.2. Variablen ausgeben</a></span></dt><dt><span class="sect2"><a href="ch03s02.html#dokumentenvorlagen-und-variablen.verwendung-in-druckbefehlen">3.2.3. Verwendung in Druckbefehlen</a></span></dt><dt><span class="sect2"><a href="ch03s02.html#dokumentenvorlagen-und-variablen.tag-style">3.2.4. Anfang und Ende der Tags verändern</a></span></dt><dt><span class="sect2"><a href="ch03s02.html#dokumentenvorlagen-und-variablen.zuordnung-dateinamen">3.2.5. Zuordnung von den Dateinamen zu den Funktionen</a></span></dt><dt><span class="sect2"><a href="ch03s02.html#dokumentenvorlagen-und-variablen.dateinamen-erweitert">3.2.6. Sprache, Drucker und E-Mail</a></span></dt><dt><span class="sect2"><a href="ch03s02.html#dokumentenvorlagen-und-variablen.allgemeine-variablen">3.2.7. Allgemeine Variablen, die in allen Vorlagen vorhanden |
5 | 5 |
sind</a></span></dt><dt><span class="sect2"><a href="ch03s02.html#dokumentenvorlagen-und-variablen.invoice">3.2.8. Variablen in Rechnungen</a></span></dt><dt><span class="sect2"><a href="ch03s02.html#dokumentenvorlagen-und-variablen.dunning">3.2.9. Variablen in Mahnungen und Rechnungen über Mahngebühren</a></span></dt><dt><span class="sect2"><a href="ch03s02.html#dokumentenvorlagen-und-variablen.andere-vorlagen">3.2.10. Variablen in anderen Vorlagen</a></span></dt><dt><span class="sect2"><a href="ch03s02.html#dokumentenvorlagen-und-variablen.bloecke">3.2.11. Blöcke, bedingte Anweisungen und Schleifen</a></span></dt><dt><span class="sect2"><a href="ch03s02.html#dokumentenvorlagen-und-variablen.markup">3.2.12. Markup-Code zur Textformatierung innerhalb von |
6 |
Formularen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch03s03.html">3.3. Excel-Vorlagen</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch03s03.html#excel-templates.summary">3.3.1. Zusammenfassung</a></span></dt><dt><span class="sect2"><a href="ch03s03.html#excel-templates.usage">3.3.2. Bedienung</a></span></dt><dt><span class="sect2"><a href="ch03s03.html#excel-templates.syntax">3.3.3. Variablensyntax</a></span></dt><dt><span class="sect2"><a href="ch03s03.html#excel-templates.limitations">3.3.4. Einschränkungen</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="ch04.html">4. Entwicklerdokumentation</a></span></dt><dd><dl><dt><span class="sect1"><a href="ch04.html#devel.globals">4.1. Globale Variablen</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch04.html#d0e4847">4.1.1. Wie sehen globale Variablen in Perl aus?</a></span></dt><dt><span class="sect2"><a href="ch04.html#d0e4948">4.1.2. Warum sind globale Variablen ein Problem?</a></span></dt><dt><span class="sect2"><a href="ch04.html#d0e4981">4.1.3. Kanonische globale Variablen</a></span></dt><dt><span class="sect2"><a href="ch04.html#d0e5361">4.1.4. Ehemalige globale Variablen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch04s02.html">4.2. Entwicklung unter FastCGI</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch04s02.html#devel.fcgi.general">4.2.1. Allgemeines</a></span></dt><dt><span class="sect2"><a href="ch04s02.html#devel.fcgi.exiting">4.2.2. Programmende und Ausnahmen</a></span></dt><dt><span class="sect2"><a href="ch04s02.html#devel.fcgi.globals">4.2.3. Globale Variablen</a></span></dt><dt><span class="sect2"><a href="ch04s02.html#devel.fcgi.performance">4.2.4. Performance und Statistiken</a></span></dt><dt><span class="sect2"><a href="ch04s02.html#devel.fcgi.known-issues">4.2.5. Bekannte Probleme</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch04s03.html">4.3. SQL-Upgradedateien</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch04s03.html#db-upgrade-files.introduction">4.3.1. Einführung</a></span></dt><dt><span class="sect2"><a href="ch04s03.html#db-upgrade-files.format">4.3.2. Format der Kontrollinformationen</a></span></dt><dt><span class="sect2"><a href="ch04s03.html#db-upgrade-files.dbupgrade-tool">4.3.3. Hilfsscript dbupgrade2_tool.pl</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch04s04.html">4.4. Translations and languages</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch04s04.html#translations-languages.introduction">4.4.1. Introduction</a></span></dt><dt><span class="sect2"><a href="ch04s04.html#translations-languages.file-structure">4.4.2. File structure</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch04s05.html">4.5. Die kivitendo-Test-Suite</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch04s05.html#devel.testsuite.intro">4.5.1. Einführung</a></span></dt><dt><span class="sect2"><a href="ch04s05.html#devel.testsuite.prerequisites">4.5.2. Voraussetzungen</a></span></dt><dt><span class="sect2"><a href="ch04s05.html#devel.testsuite.execution">4.5.3.
|
|
6 |
Formularen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch03s03.html">3.3. Excel-Vorlagen</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch03s03.html#excel-templates.summary">3.3.1. Zusammenfassung</a></span></dt><dt><span class="sect2"><a href="ch03s03.html#excel-templates.usage">3.3.2. Bedienung</a></span></dt><dt><span class="sect2"><a href="ch03s03.html#excel-templates.syntax">3.3.3. Variablensyntax</a></span></dt><dt><span class="sect2"><a href="ch03s03.html#excel-templates.limitations">3.3.4. Einschränkungen</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="ch04.html">4. Entwicklerdokumentation</a></span></dt><dd><dl><dt><span class="sect1"><a href="ch04.html#devel.globals">4.1. Globale Variablen</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch04.html#d0e4974">4.1.1. Wie sehen globale Variablen in Perl aus?</a></span></dt><dt><span class="sect2"><a href="ch04.html#d0e5075">4.1.2. Warum sind globale Variablen ein Problem?</a></span></dt><dt><span class="sect2"><a href="ch04.html#d0e5108">4.1.3. Kanonische globale Variablen</a></span></dt><dt><span class="sect2"><a href="ch04.html#d0e5488">4.1.4. Ehemalige globale Variablen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch04s02.html">4.2. Entwicklung unter FastCGI</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch04s02.html#devel.fcgi.general">4.2.1. Allgemeines</a></span></dt><dt><span class="sect2"><a href="ch04s02.html#devel.fcgi.exiting">4.2.2. Programmende und Ausnahmen</a></span></dt><dt><span class="sect2"><a href="ch04s02.html#devel.fcgi.globals">4.2.3. Globale Variablen</a></span></dt><dt><span class="sect2"><a href="ch04s02.html#devel.fcgi.performance">4.2.4. Performance und Statistiken</a></span></dt><dt><span class="sect2"><a href="ch04s02.html#devel.fcgi.known-issues">4.2.5. Bekannte Probleme</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch04s03.html">4.3. SQL-Upgradedateien</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch04s03.html#db-upgrade-files.introduction">4.3.1. Einführung</a></span></dt><dt><span class="sect2"><a href="ch04s03.html#db-upgrade-files.format">4.3.2. Format der Kontrollinformationen</a></span></dt><dt><span class="sect2"><a href="ch04s03.html#db-upgrade-files.dbupgrade-tool">4.3.3. Hilfsscript dbupgrade2_tool.pl</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch04s04.html">4.4. Translations and languages</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch04s04.html#translations-languages.introduction">4.4.1. Introduction</a></span></dt><dt><span class="sect2"><a href="ch04s04.html#translations-languages.file-structure">4.4.2. File structure</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch04s05.html">4.5. Die kivitendo-Test-Suite</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch04s05.html#devel.testsuite.intro">4.5.1. Einführung</a></span></dt><dt><span class="sect2"><a href="ch04s05.html#devel.testsuite.prerequisites">4.5.2. Voraussetzungen</a></span></dt><dt><span class="sect2"><a href="ch04s05.html#devel.testsuite.execution">4.5.3.
|
|
7 | 7 |
Existierende Tests ausführen |
8 | 8 |
</a></span></dt><dt><span class="sect2"><a href="ch04s05.html#devel.testsuite.meaning_of_scripts">4.5.4. |
9 | 9 |
Bedeutung der verschiedenen Test-Scripte |
Auch abrufbar als: Unified diff
Doku: Updates bzgl. Stil, Rechtschreibung, XML-/Docbook-Konformität