Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision d3a086e3

Von wulf@coulmann.de vor etwa 12 Jahren hinzugefügt

  • ID d3a086e3786cb08150b3201f69fde5b7d55b3b03
  • Vorgänger b74b299f
  • Nachfolger 8efbc444

diverse Doku Aktuallisierungen
./templates/print/f-tex/README -> Onlinedoku

Unterschiede anzeigen:

doc/dokumentation.xml
14 14
        <para>im kivitendo-Forum: <ulink
15 15
        url="https://forum.kivitendo.org/">https://forum.kivitendo.org/</ulink></para>
16 16
      </listitem>
17

  
18
      <listitem>
19
        <para>im alten Lx-Office-Wiki unter Dokumentation (<ulink
20
        url="http://wiki.lx-office.org/index.php?title=Installation_Lx-Office_ERP">http://wiki.lx-office.org/index.php?title=Installation_Lx-Office_ERP</ulink>)</para>
21
      </listitem>
22 17
    </itemizedlist>
23 18
  </chapter>
24 19

  
......
42 37
        dass kivitendo auf ihnen läuft:</para>
43 38

  
44 39
        <itemizedlist>
40

  
45 41
          <listitem>
46
            <para>Ubuntu 10.04 LTS Lucid Lynx bis 12.10 Oneiric Ocelot</para>
42
            <para>Debian</para>
43
            <itemizedlist>
44
               <listitem>
45
                 <para>6.0 Squeeze (hier muss allerdings das Modul FCGI in der Version >= 0.72 compiled werden)</para>
46
               </listitem>
47
               <listitem>
48
                 <para>7.0 Wheezy</para>
49
               </listitem>
50
            </itemizedlist>
47 51
          </listitem>
48 52

  
49 53
          <listitem>
50
            <para>Debian 5.0 Lenny und 6.0 Squeeze</para>
54
            <para>Ubuntu 10.04 LTS Lucid Lynx bis 12.10 Oneiric Ocelot</para>
51 55
          </listitem>
52 56

  
53 57
          <listitem>
......
363 367
	eingreifen</para>
364 368

  
365 369
        <para>Dieses kann überprüft werden: ist das Encoding der Datenbank
366
	“template1” “UTF8”, so braucht man nichts weiteres diesbezueglich
370
	“template1” “UTF8”, so braucht man nichts weiteres diesbezüglich
367 371
	unternehmen. Zum Testen:
368 372

  
369 373
        <programlisting>su postgres
......
438 442
        anlegen. Ein Beispiel, wie Sie einen neuen Benutzer anlegen
439 443
        können:</para>
440 444

  
445
	<para>Die Frage, ob der neue User Superuser sein soll, können Sie mit nein
446
	beantworten, genauso ist die Berechtigung neue User (Roles) zu
447
	generieren nicht nötig.</para>
441 448
	      <programlisting>su - postgres
442 449
createuser -d -P kivitendo
443 450
exit</programlisting>
......
1308 1315
      <para>Das Drucksystem von kivitendo benutzt von Haus aus LaTeX Vorlagen.
1309 1316
      Um drucken zu können, braucht der Server ein geeignetes LaTeX System. Am
1310 1317
      einfachsten ist dazu eine <literal>texlive</literal> Installation. Unter
1311
      Debianoiden Betriebssystemen sind das die Pakete:</para>
1312

  
1313
      <para><literal>texlive-latex-base texlive-latex-extra
1314
      texlive-fonts-recommended</literal></para>
1318
      Debianoiden Betriebssystemen installiert man die Pakete mit:</para>
1315 1319

  
1316
      <para>Diese hinteren beiden enthalten Bibliotheken und Schriftarten die
1317
      von den Standardvorlagen verwendet werden.</para>
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>
1318 1328

  
1319 1329
      <para>TODO: rpm Pakete.</para>
1320 1330

  
1321
      <para>In den allermeisten Installationen sollte drucken jetzt schon
1322
      funktionieren. Sollte ein Fehler auftreten wirft TeX sehr lange
1323
      Fehlerbeschreibungen, der eigentliche Fehler ist immer die erste Zeite
1324
      die mit einem Ausrufezeichen anfängt. Häufig auftretende Fehler sind zum
1325
      Beispiel:</para>
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>
1326 1337

  
1327
      <itemizedlist>
1328
        <listitem>
1329
          <para>! LaTeX Error: File `eurosym.sty' not found. Die entsprechende
1330
          LaTeX-Bibliothek wurde nicht gefunden. Das tritt vor allem bei
1331
          Vorlagen aus der Community auf. Installieren Sie die entsprechenden
1332
          Pakete.</para>
1333
        </listitem>
1338
      <sect2 id="Vorlagenverzeichnis-anlegen" xreflabel="Vorlagenverzeichnis anlegen">
1339
        <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>
1334 1342

  
1335
        <listitem>
1336
          <para>! Package inputenc Error: Unicode char \u8:桜 not set up for
1337
          use with LaTeX. Dieser Fehler tritt auf, wenn sie versuchen mit
1338
          einer Standardinstallation exotische utf8 Zeichen zu drucken.
1339
          TeXLive unterstützt von Haus nur romanische Schriften und muss mit
1340
          diversen Tricks dazu gebracht werden andere Zeichen zu akzeptieren.
1341
          Adere TeX Systeme wie XeTeX schaffen hier Abhilfe.</para>
1342
        </listitem>
1343
      </itemizedlist>
1344

  
1345
      <para>Wird garkein Fehler angezeigt sondern nur der Name des Templates,
1346
      heißt das normalerweise, dass das LaTeX Binary nicht gefunden wurde.
1347
      Prüfen Sie den Namen in der Konfiguration (Standard:
1348
      <literal>pdflatex</literal>), und stellen Sie sicher, dass pdflatex
1349
      (oder das von Ihnen verwendete System) vom Webserver ausgeführt werden
1350
      darf.</para>
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>
1350

  
1351
        <para>Die Abhängigkeiten kann man prüfen mit:</para>
1352
        <para><programlisting>/scripts/installation_check.pl -l</programlisting></para>
1353

  
1354
      </sect2>
1355
      <sect2 id="Standard">
1356
        <title>Default</title>
1357

  
1358
        <para>Der standard Vorlagensatz von Kivitendo. Wie unter
1359
        <ulink url="http://demo.kivitendo.org">http://demo.kivitendo.org</ulink> zu sehen.</para>
1360

  
1361
      </sect2>
1362

  
1363
      <sect2 id="f-tex">
1364
        <title>f-tex</title>
1365

  
1366
        <para>Ein Vorlagensatz, der in Wenigen Minuten alle Dokumente zur stellt.</para>
1367

  
1368
        <sect3 id="f-tex-Feature-Übersicht">
1369
          <title>f-tex Feature Übersicht</title>
1370
          <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>
1398
          </itemizedlist>
1399
        </sect3>
1400

  
1401
        <sect3 id="f-tex-installation">
1402
          <title>f-tex Die Installation</title>
1403
          <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>
1416
          </itemizedlist>
1417

  
1418
          <para>oder etwas Detaillierter:</para>
1419

  
1420
          <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.
1428
          </para>
1429
          <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.
1436
          </para>
1437
          <para>
1438
            letzlich muss ./letter_head.pdf auf das passende Hintergrundpdf verweisen,
1439
            welches gewünschten Briefkopf enthält. Bei Updates oder nach erneutem
1440
          </para>
1441
          <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).
1447
          </para>
1448
          <para>
1449
            Alle Anpassungen zum Briefkopf, Fusszeilen, Firmenlogos, etc.
1450
            sollten über die Hintergrund pdf datei oder die *.lco Datei erfolgen.
1451
          </para>
1452
        </sect3>
1453
        <sect3 id="f-tex-Funktionsübersicht">
1454
          <title>f-tex Funktionsübersicht</title>
1455
          <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
1465
          </para>
1466
          <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>
1477
           </itemizedlist>
1478

  
1479
           <para>Nachteil:</para>
1480
           <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.
1492
           </para>
1493
           <para>Kleiner Tipp:
1494
             Nicht zu viel auf einmal wollen, lieber kleine kontinuierliche
1495
             Schritte gehen.
1496
           </para>
1497

  
1498

  
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>
1503
          <itemizedlist>
1504
            <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)
1508
            </listitem>
1509
            <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)
1513
            </listitem>
1514
          </itemizedlist>
1515

  
1516
          <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>
1537

  
1538
          <para>Lieferadressen</para>
1539
          <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>
1550
          </itemizedlist>
1551
        </sect3>
1552

  
1553
      </sect2>
1554

  
1555
      <sect2 id="RB">
1556
        <title>RB</title>
1557

  
1558
        <para>Vollständiger Dokumentensatz mit alternativen Design</para>
1559

  
1560
      </sect2>
1561

  
1562
      <sect2 id="Allgemeine Hinweise zu LaTeX">
1563
        <title>Allgemeine Hinweise zu LaTeX Vorlagen</title>
1564
        <para>In den allermeisten Installationen sollte drucken jetzt schon
1565
        funktionieren. Sollte ein Fehler auftreten wirft TeX sehr lange
1566
        Fehlerbeschreibungen, der eigentliche Fehler ist immer die erste Zeite
1567
        die mit einem Ausrufezeichen anfängt. Häufig auftretende Fehler sind zum
1568
        Beispiel:</para>
1569

  
1570
        <itemizedlist>
1571
          <listitem>
1572
            <para>! LaTeX Error: File `eurosym.sty' not found. Die entsprechende
1573
            LaTeX-Bibliothek wurde nicht gefunden. Das tritt vor allem bei
1574
            Vorlagen aus der Community auf. Installieren Sie die entsprechenden
1575
            Pakete.</para>
1576
          </listitem>
1577
          <listitem>
1578
            <para>! Package inputenc Error: Unicode char \u8:桜 not set up for
1579
            use with LaTeX. Dieser Fehler tritt auf, wenn sie versuchen mit
1580
            einer Standardinstallation exotische utf8 Zeichen zu drucken.
1581
            TeXLive unterstützt von Haus nur romanische Schriften und muss mit
1582
            diversen Tricks dazu gebracht werden andere Zeichen zu akzeptieren.
1583
            Adere TeX Systeme wie XeTeX schaffen hier Abhilfe.</para>
1584
          </listitem>
1585
        </itemizedlist>
1586

  
1587
        <para>Wird garkein Fehler angezeigt sondern nur der Name des Templates,
1588
        heißt das normalerweise, dass das LaTeX Binary nicht gefunden wurde.
1589
        Prüfen Sie den Namen in der Konfiguration (Standard:
1590
        <literal>pdflatex</literal>), und stellen Sie sicher, dass pdflatex
1591
        (oder das von Ihnen verwendete System) vom Webserver ausgeführt werden
1592
        darf.</para>
1593

  
1594
        <para>Wenn sich das Problem nicht auf Grund der ausgabe im Webbrowser verifizieren lässt:</para>
1595
        <itemizedlist>
1596
          <listitem>
1597
             <para> editiere [kivitendo-home]/config/kivitendo.conf und ändere "keep_tmp_files" auf 1</para>
1598
             <para><programlisting>keep_temp_files = 1;</programlisting></para>
1599
          </listitem>
1600
          <listitem>
1601
             <para>bei fastcgi oder mod_perl den Webserver neu Starten</para>
1602
          </listitem>
1603
          <listitem>
1604
            <para>Nochmal einen Druckversuch im Webfrontend auslösen</para>
1605
          </listitem>
1606
          <listitem>
1607
            <para>wechsele in das users Verzeichnis von kivitendo</para>
1608
            <para><programlisting>cd [kivitendo-home]/users</programlisting></para>
1609
          </listitem>
1610
          <listitem>
1611
            <para>LaTeX Suchpfad anpassen:</para>
1612
            <para><programlisting>export TEXINPUTS=".:[kivitendo-home]/templates/[aktuelles_template_verzeichniss]:"</programlisting></para>
1613
          </listitem>
1614
          <listitem>
1615
            <para>Finde herraus welche Datei kivitendo beim letzten Durchlauf erstellt hat</para>
1616
            <para><programlisting>ls -lahtr ./1*.tex</programlisting></para>
1617
            <para>Es sollte die letzte Datei ganz unten sein</para>
1618
          </listitem>
1619
          <listitem>
1620
            <para>für besseren Hinweis auf Fehler texdatei nochmals übersetzen</para>
1621
            <para><programlisting>pdflatex ./1*.tex</programlisting></para>
1622
            <para>in der *.tex datei nach dem Fehler suchen.</para>
1623
          </listitem>
1624
        </itemizedlist>
1625
      </sect2>
1351 1626
    </sect1>
1352 1627

  
1353 1628
    <sect1 id="OpenDocument-Vorlagen">
doc/html/ch01.html
1 1
<html><head>
2 2
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
3 3
   <title>Kapitel 1. Aktuelle Hinweise</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="index.html" title="kivitendo: Installation, Konfiguration, Entwicklung"><link rel="next" href="ch02.html" title="Kapitel 2. Installation und Grundkonfiguration"></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 1. Aktuelle Hinweise</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="index.html">Zurück</a>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="ch02.html">Weiter</a></td></tr></table><hr></div><div class="chapter" title="Kapitel 1. Aktuelle Hinweise"><div class="titlepage"><div><div><h2 class="title"><a name="Aktuelle-Hinweise"></a>Kapitel 1. Aktuelle Hinweise</h2></div></div></div><p>Aktuelle Installations- und Konfigurationshinweise gibt es:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>im kivitendo-Forum: <a class="ulink" href="https://forum.kivitendo.org/" target="_top">https://forum.kivitendo.org/</a>
4
            </p></li><li class="listitem"><p>im alten Lx-Office-Wiki unter Dokumentation (<a class="ulink" href="http://wiki.lx-office.org/index.php?title=Installation_Lx-Office_ERP" target="_top">http://wiki.lx-office.org/index.php?title=Installation_Lx-Office_ERP</a>)</p></li></ul></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="index.html">Zurück</a>&nbsp;</td><td width="20%" align="center">&nbsp;</td><td width="40%" align="right">&nbsp;<a accesskey="n" href="ch02.html">Weiter</a></td></tr><tr><td width="40%" align="left" valign="top">kivitendo: Installation, Konfiguration, Entwicklung&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Zum Anfang</a></td><td width="40%" align="right" valign="top">&nbsp;Kapitel 2. Installation und Grundkonfiguration</td></tr></table></div></body></html>
4
            </p></li></ul></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="index.html">Zurück</a>&nbsp;</td><td width="20%" align="center">&nbsp;</td><td width="40%" align="right">&nbsp;<a accesskey="n" href="ch02.html">Weiter</a></td></tr><tr><td width="40%" align="left" valign="top">kivitendo: Installation, Konfiguration, Entwicklung&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Zum Anfang</a></td><td width="40%" align="right" valign="top">&nbsp;Kapitel 2. Installation und Grundkonfiguration</td></tr></table></div></body></html>
doc/html/ch02.html
6 6
        bei der Auswahl der Pakete aber darauf Rücksicht genommen, dass es
7 7
        ohne große Probleme auf den derzeit aktuellen verbreiteten
8 8
        Distributionen läuft.</p><p>Mitte 2012 sind das folgende Systeme, von denen bekannt ist,
9
        dass kivitendo auf ihnen läuft:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Ubuntu 10.04 LTS Lucid Lynx bis 12.10 Oneiric Ocelot</p></li><li class="listitem"><p>Debian 5.0 Lenny und 6.0 Squeeze</p></li><li class="listitem"><p>openSUSE 11.2 und 11.3</p></li><li class="listitem"><p>SuSE Linux Enterprice Server 11</p></li><li class="listitem"><p>Fedora 13 bis 16</p></li></ul></div></div><div class="sect2" title="2.1.2. Pakete"><div class="titlepage"><div><div><h3 class="title"><a name="Pakete"></a>2.1.2. Pakete</h3></div></div></div><p>Zum Betrieb von kivitendo werden zwingend ein Webserver (meist
9
        dass kivitendo auf ihnen läuft:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Debian</p><div class="itemizedlist"><ul class="itemizedlist" type="circle"><li class="listitem"><p>6.0 Squeeze (hier muss allerdings das Modul FCGI in der Version &gt;= 0.72 compiled werden)</p></li><li class="listitem"><p>7.0 Wheezy</p></li></ul></div></li><li class="listitem"><p>Ubuntu 10.04 LTS Lucid Lynx bis 12.10 Oneiric Ocelot</p></li><li class="listitem"><p>openSUSE 11.2 und 11.3</p></li><li class="listitem"><p>SuSE Linux Enterprice Server 11</p></li><li class="listitem"><p>Fedora 13 bis 16</p></li></ul></div></div><div class="sect2" title="2.1.2. Pakete"><div class="titlepage"><div><div><h3 class="title"><a name="Pakete"></a>2.1.2. Pakete</h3></div></div></div><p>Zum Betrieb von kivitendo werden zwingend ein Webserver (meist
10 10
        Apache) und ein Datenbankserver (PostgreSQL, mindestens v8.2)
11 11
        benötigt.</p><p>Zusätzlich benötigt kivitendo die folgenden Perl-Pakete, die
12 12
        nicht Bestandteil einer Standard-Perl-Installation sind:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
doc/html/ch02s04.html
2 2
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
3 3
   <title>2.4. Anpassung der PostgreSQL-Konfiguration</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="ch02s03.html" title="2.3. kivitendo-Konfigurationsdatei"><link rel="next" href="ch02s05.html" title="2.5. Webserver-Konfiguration"></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.4. Anpassung der PostgreSQL-Konfiguration</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02s03.html">Zurück</a>&nbsp;</td><th width="60%" align="center">Kapitel 2. Installation und Grundkonfiguration</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="ch02s05.html">Weiter</a></td></tr></table><hr></div><div class="sect1" title="2.4. Anpassung der PostgreSQL-Konfiguration"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Anpassung-der-PostgreSQL-Konfiguration"></a>2.4. Anpassung der PostgreSQL-Konfiguration</h2></div></div></div><p>PostgreSQL muss auf verschiedene Weisen angepasst werden.</p><div class="sect2" title="2.4.1. Zeichensätze/die Verwendung von UTF-8"><div class="titlepage"><div><div><h3 class="title"><a name="Zeichens%C3%A4tze-die-Verwendung-von-UTF-8"></a>2.4.1. Zeichensätze/die Verwendung von UTF-8</h3></div></div></div><p>Bei aktuellen Serverinstallationen braucht man hier meist nicht
4 4
	eingreifen</p><p>Dieses kann überprüft werden: ist das Encoding der Datenbank
5
	“template1” “UTF8”, so braucht man nichts weiteres diesbezueglich
5
	“template1” “UTF8”, so braucht man nichts weiteres diesbezüglich
6 6
	unternehmen. Zum Testen:
7 7

  
8 8
        </p><pre class="programlisting">su postgres
......
41 41
\q</pre></div><div class="sect2" title="2.4.4. Datenbankbenutzer anlegen"><div class="titlepage"><div><div><h3 class="title"><a name="Datenbankbenutzer-anlegen"></a>2.4.4. Datenbankbenutzer anlegen</h3></div></div></div><p>Wenn Sie nicht den Datenbanksuperuser “postgres” zum Zugriff
42 42
        benutzen wollen, so sollten Sie bei PostgreSQL einen neuen Benutzer
43 43
        anlegen. Ein Beispiel, wie Sie einen neuen Benutzer anlegen
44
        können:</p><pre class="programlisting">su - postgres
44
        können:</p><p>Die Frage, ob der neue User Superuser sein soll, können Sie mit nein
45
	beantworten, genauso ist die Berechtigung neue User (Roles) zu
46
	generieren nicht nötig.</p><pre class="programlisting">su - postgres
45 47
createuser -d -P kivitendo
46 48
exit</pre><p>Wenn Sie später einen Datenbankzugriff konfigurieren, verändern
47 49
        Sie den evtl. voreingestellten Benutzer “postgres” auf “kivitendo” bzw.
doc/html/ch02s05.html
1 1
<html><head>
2 2
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
3
   <title>2.5. Webserver-Konfiguration</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="ch02s04.html" title="2.4. Anpassung der PostgreSQL-Konfiguration"><link rel="next" href="ch02s06.html" title="2.6. Der Task-Server"></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.5. Webserver-Konfiguration</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02s04.html">Zurück</a>&nbsp;</td><th width="60%" align="center">Kapitel 2. Installation und Grundkonfiguration</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="ch02s06.html">Weiter</a></td></tr></table><hr></div><div class="sect1" title="2.5. Webserver-Konfiguration"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Apache-Konfiguration"></a>2.5. Webserver-Konfiguration</h2></div></div></div><div class="sect2" title="2.5.1. Grundkonfiguration mittels CGI"><div class="titlepage"><div><div><h3 class="title"><a name="d0e589"></a>2.5.1. Grundkonfiguration mittels CGI</h3></div></div></div><div class="note" title="Anmerkung" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Anmerkung]" src="../../../../system/docbook-xsl/images/note.png"></td><th align="left">Anmerkung</th></tr><tr><td align="left" valign="top"><p>Für einen deutlichen Performanceschub sorgt die Ausführung
3
   <title>2.5. Webserver-Konfiguration</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="ch02s04.html" title="2.4. Anpassung der PostgreSQL-Konfiguration"><link rel="next" href="ch02s06.html" title="2.6. Der Task-Server"></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.5. Webserver-Konfiguration</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02s04.html">Zurück</a>&nbsp;</td><th width="60%" align="center">Kapitel 2. Installation und Grundkonfiguration</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="ch02s06.html">Weiter</a></td></tr></table><hr></div><div class="sect1" title="2.5. Webserver-Konfiguration"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Apache-Konfiguration"></a>2.5. Webserver-Konfiguration</h2></div></div></div><div class="sect2" title="2.5.1. Grundkonfiguration mittels CGI"><div class="titlepage"><div><div><h3 class="title"><a name="d0e592"></a>2.5.1. Grundkonfiguration mittels CGI</h3></div></div></div><div class="note" title="Anmerkung" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Anmerkung]" src="../../../../system/docbook-xsl/images/note.png"></td><th align="left">Anmerkung</th></tr><tr><td align="left" valign="top"><p>Für einen deutlichen Performanceschub sorgt die Ausführung
4 4
          mittels FastCGI/FCGI. Die Einrichtung wird ausführlich im Abschnitt
5 5
          <a class="xref" href="ch02s05.html#Apache-Konfiguration.FCGI" title="2.5.2. Konfiguration für FastCGI/FCGI">Konfiguration für FastCGI/FCGI</a> beschrieben.</p></td></tr></table></div><p>Der Zugriff auf das Programmverzeichnis muss in der Apache
6 6
        Webserverkonfigurationsdatei <code class="literal">httpd.conf</code> eingestellt
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="d0e773"></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="d0e776"></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="d0e803"></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="d0e806"></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
3 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>&nbsp;</td><th width="60%" align="center">Kapitel 2. Installation und Grundkonfiguration</th><td width="20%" align="right">&nbsp;<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 4
      Um drucken zu können, braucht der Server ein geeignetes LaTeX System. Am
5 5
      einfachsten ist dazu eine <code class="literal">texlive</code> Installation. Unter
6
      Debianoiden Betriebssystemen sind das die Pakete:</p><p>
7
            <code class="literal">texlive-latex-base texlive-latex-extra
8
      texlive-fonts-recommended</code>
9
         </p><p>Diese hinteren beiden enthalten Bibliotheken und Schriftarten die
10
      von den Standardvorlagen verwendet werden.</p><p>TODO: rpm Pakete.</p><p>In den allermeisten Installationen sollte drucken jetzt schon
11
      funktionieren. Sollte ein Fehler auftreten wirft TeX sehr lange
12
      Fehlerbeschreibungen, der eigentliche Fehler ist immer die erste Zeite
13
      die mit einem Ausrufezeichen anfängt. Häufig auftretende Fehler sind zum
14
      Beispiel:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>! LaTeX Error: File `eurosym.sty' not found. Die entsprechende
15
          LaTeX-Bibliothek wurde nicht gefunden. Das tritt vor allem bei
16
          Vorlagen aus der Community auf. Installieren Sie die entsprechenden
17
          Pakete.</p></li><li class="listitem"><p>! Package inputenc Error: Unicode char \u8:桜 not set up for
18
          use with LaTeX. Dieser Fehler tritt auf, wenn sie versuchen mit
19
          einer Standardinstallation exotische utf8 Zeichen zu drucken.
20
          TeXLive unterstützt von Haus nur romanische Schriften und muss mit
21
          diversen Tricks dazu gebracht werden andere Zeichen zu akzeptieren.
22
          Adere TeX Systeme wie XeTeX schaffen hier Abhilfe.</p></li></ul></div><p>Wird garkein Fehler angezeigt sondern nur der Name des Templates,
23
      heißt das normalerweise, dass das LaTeX Binary nicht gefunden wurde.
24
      Prüfen Sie den Namen in der Konfiguration (Standard:
25
      <code class="literal">pdflatex</code>), und stellen Sie sicher, dass pdflatex
26
      (oder das von Ihnen verwendete System) vom Webserver ausgeführt werden
27
      darf.</p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch02s09.html">Zurück</a>&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="ch02.html">Nach oben</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="ch02s11.html">Weiter</a></td></tr><tr><td width="40%" align="left" valign="top">2.9. E-Mail-Versand aus kivitendo heraus&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Zum Anfang</a></td><td width="40%" align="right" valign="top">&nbsp;2.11. OpenDocument-Vorlagen</td></tr></table></div></body></html>
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 -&gt; Benutzerverwaltung -&gt; [ein Benutzer]
19
   Erzeuge Vorlagen, Name: [Name für das neue Vorlagenverzeichnis]
20
   Vorlagen auswählen: [Default, f-tex oder RB]
21
   -&gt; 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.
61
          </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.
68
          </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
71
          </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).
77
          </p><p>
78
            Alle Anpassungen zum Briefkopf, Fusszeilen, Firmenlogos, etc.
79
            sollten über die Hintergrund pdf datei oder die *.lco Datei erfolgen.
80
          </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
144
        funktionieren. Sollte ein Fehler auftreten wirft TeX sehr lange
145
        Fehlerbeschreibungen, der eigentliche Fehler ist immer die erste Zeite
146
        die mit einem Ausrufezeichen anfängt. Häufig auftretende Fehler sind zum
147
        Beispiel:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>! LaTeX Error: File `eurosym.sty' not found. Die entsprechende
148
            LaTeX-Bibliothek wurde nicht gefunden. Das tritt vor allem bei
149
            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
151
            use with LaTeX. Dieser Fehler tritt auf, wenn sie versuchen mit
152
            einer Standardinstallation exotische utf8 Zeichen zu drucken.
153
            TeXLive unterstützt von Haus nur romanische Schriften und muss mit
154
            diversen Tricks dazu gebracht werden andere Zeichen zu akzeptieren.
155
            Adere TeX Systeme wie XeTeX schaffen hier Abhilfe.</p></li></ul></div><p>Wird garkein Fehler angezeigt sondern nur der Name des Templates,
156
        heißt das normalerweise, dass das LaTeX Binary nicht gefunden wurde.
157
        Prüfen Sie den Namen in der Konfiguration (Standard:
158
        <code class="literal">pdflatex</code>), und stellen Sie sicher, dass pdflatex
159
        (oder das von Ihnen verwendete System) vom Webserver ausgeführt werden
160
        darf.</p><p>Wenn sich das Problem nicht auf Grund der ausgabe im Webbrowser verifizieren lässt:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> editiere [kivitendo-home]/config/kivitendo.conf und ändere "keep_tmp_files" auf 1</p><p>
161
                     </p><pre class="programlisting">keep_temp_files = 1;</pre><p>
162
                  </p></li><li class="listitem"><p>bei fastcgi oder mod_perl den Webserver neu Starten</p></li><li class="listitem"><p>Nochmal einen Druckversuch im Webfrontend auslösen</p></li><li class="listitem"><p>wechsele in das users Verzeichnis von kivitendo</p><p>
163
                     </p><pre class="programlisting">cd [kivitendo-home]/users</pre><p>
164
                  </p></li><li class="listitem"><p>LaTeX Suchpfad anpassen:</p><p>
165
                     </p><pre class="programlisting">export TEXINPUTS=".:[kivitendo-home]/templates/[aktuelles_template_verzeichniss]:"</pre><p>
166
                  </p></li><li class="listitem"><p>Finde herraus welche Datei kivitendo beim letzten Durchlauf erstellt hat</p><p>
167
                     </p><pre class="programlisting">ls -lahtr ./1*.tex</pre><p>
168
                  </p><p>Es sollte die letzte Datei ganz unten sein</p></li><li class="listitem"><p>für besseren Hinweis auf Fehler texdatei nochmals übersetzen</p><p>
169
                     </p><pre class="programlisting">pdflatex ./1*.tex</pre><p>
170
                  </p><p>in der *.tex datei nach dem Fehler suchen.</p></li></ul></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch02s09.html">Zurück</a>&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="ch02.html">Nach oben</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="ch02s11.html">Weiter</a></td></tr><tr><td width="40%" align="left" valign="top">2.9. E-Mail-Versand aus kivitendo heraus&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Zum Anfang</a></td><td width="40%" align="right" valign="top">&nbsp;2.11. OpenDocument-Vorlagen</td></tr></table></div></body></html>
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="d0e4045"></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="d0e4241"></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:
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>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<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="d0e4645"></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="d0e4651"></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>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<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
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="d0e4752"></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="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>
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="d0e4785"></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="d0e4981"></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="d0e4849"></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="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
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-&gt;{TEMPLATE_ARRAYS}{number} },          $form-&gt;{"partnumber_$i"};
111 111
  push @{ $form-&gt;{TEMPLATE_ARRAYS}{description} },     $form-&gt;{"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="d0e4933"></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="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
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
          -&gt; <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="d0e4972"></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="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
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="d0e4990"></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="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
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-&gt;message(0, 'Meine Konfig:' . Dumper (%::myconfig));
138
$main::lxdebug-&gt;message(0, 'Wer bin ich? Kunde oder Lieferant:' . $form-&gt;{vc});</pre></div><div class="sect3" title="4.1.3.5. $::auth"><div class="titlepage"><div><div><h4 class="title"><a name="d0e5027"></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-&gt;message(0, 'Wer bin ich? Kunde oder Lieferant:' . $form-&gt;{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>
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="d0e5048"></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="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
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-&gt;{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="d0e5084"></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="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
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-&gt;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="d0e5105"></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="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
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="d0e5123"></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="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>
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="d0e5165"></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="d0e5170"></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="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
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-&gt;{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="d0e5186"></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="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
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-&gt;{cache}{all_units}</code>
186 186
                     </p></li><li class="listitem"><p>Wird nur in
187 187
              <code class="function">AM-&gt;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="d0e5205"></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="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
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>&nbsp;</td><td width="20%" align="center">&nbsp;</td><td width="40%" align="right">&nbsp;<a accesskey="n" href="ch04s02.html">Weiter</a></td></tr><tr><td width="40%" align="left" valign="top">3.3. Excel-Vorlagen&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Zum Anfang</a></td><td width="40%" align="right" valign="top">&nbsp;4.2. Entwicklung unter FastCGI</td></tr></table></div></body></html>
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">&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<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#d0e589">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><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">&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<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:
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#d0e4651">4.1.1. Wie sehen globale Variablen in Perl aus?</a></span></dt><dt><span class="sect2"><a href="ch04.html#d0e4752">4.1.2. Warum sind globale Variablen ein Problem?</a></span></dt><dt><span class="sect2"><a href="ch04.html#d0e4785">4.1.3. Kanonische globale Variablen</a></span></dt><dt><span class="sect2"><a href="ch04.html#d0e5165">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#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. 
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
templates/print/f-tex/README
1
README lx-office Fancy-LaTeX  (f-tex)
2

  
3
# Revision 1.1-u  (03.02.2012)
4
# Revision 1.0-u  (16.11.2011)
5
# Revision 0.9  (13.11.2011)
6
# Revision 0.8  (12.09.2011)
7
# Revision 0.7	(12.07.2011)
8
# Revision 0.6	(16.06.2011)
9
# Revision 0.5  (15.04.2011)
10
# Revision 0.4  (14.02.2011)
11
# Revision 0.3  (03.01.2011)
12
# Revision 0.2  (24.12.2010)
13
# Revision 0.1  (03.11.2009)
14

  
15

  
16

  
17
# Feature Uebersicht
18

  
19
  - einfach Nutzung durch mitgeliefertes Setup-Script
20
  - Keine Retundanz. Es wird ein und die selbe Latex-Vorlage fuer alle
21
    briefartigen Dokumente verwendet. Also Angebot, Rechnung,
22
    Performarechnung, Lieferschein, aber eben nicht fuer Paketaufkleber
23
    etc..
24
  - Leichte Anpassung an das Firmen Layout durch verwendung eines Hintergrund-PDF
25
    dieses kann leicht mit dem eigenen Lieblingsprogramm erstellt werden
26
    (Openoffice, Inkscape, Gimp, Adobe*)
27
  - Hintergrundpdf um schaltbar auf "nur erste Seite" (default) oder "alle Seiten"
28
    (option "bgPdfFirstPageOnly" in Datei letter.lco)
29
  - Hintergrundpdf fuer Ausdruck auf bereits bedrucktem Briefpapier Abschaltbar,
30
    es wird dann nur bei per email versendeten Dokumenten eingebunden.
31
    (Option "bgPdfEmailOnly" in Datei letter.lco)
32
  - Nutzung der Layout-Funktionen von Latex fuer Seitenumbruch,
33
    wiederholung von Kopfzeilen, Zwischensummen etc. (danke an Kai-Martin fuer
34
    die Vorarbeit)
35
  - Anzeige des Empfaengerlandes im Adressfeld nur, wenn es vom Land des
36
    eigenen Unternehmens abweicht (also die Rechnung das Land verlaesst).
37
  - Multisprachfaehig leicht um weitere Sprachen zu erweitern, alle
38
    Übersetzungen in der Datei translatinos.tex.
39
  - Auflistung von Bruttopreisen fuer Endverbraucher.
40

  
41

  
42

  
43

  
44
# die Installation
45

  
46
  Wenn es noch keine LaTeX installation gibt, installiere die folgenden Pakete
47
  (Debian)
48
    aptitude install \
49
      texlive-base-bin \
50
      texlive-latex-recommended \
51
      texlive-fonts-recommended \
52
      texlive-latex-extra \
53
      texlive-lang-german \
54
      texlive-generic-extra
55

  
56
  Die Abhaengigkeiten kann man mit
57
   /scripts/installation_check.pl -l pruefen (z.Z. noch nicht eingecheckt)
58

  
59
  Ein Vorlagenverzeichniss kannst Du direkt unter admin.pl Benutzeradministration erstellen:
60
    Benutze Vorlagen: f-tex
61
    Erzeuge Vorlagen, Name: <DEIN_WUNSCHNAME>
62
  Das Verzeichniss templates muss dafuer fuer den Webserver schreibbar sein.
63

  
64
  Erstelle eine pdf-Hintergrund Datei und verlinke sie nach ./letter_head.pdf
65

  
66
  Editiere den Bereich "settings" in der datei letter.lco ""
67

  
68
  # oder etwas Detaillierter:
69
  Es wird eine Datei sample.lco erstellt und diese nach letter.lco verlinkt.
70
  Eigentlich ist dies die Datei die fuer die Firmenspezifischen Anpassungen
71
  gedacht ist.  Da die Einstiegshuerde in LaTeX nicht ganz niedrig ist, wird in
72
  dieser Datei auf ein Hintergrundpdf verwiesen. Ich empfehle ueber dieses pdf
73
  die persoenlichen Layoutanpassungen vorzunehmen und sample.lco unveraendert zu
74
  lassen. Die die Anpassung ueber eine *.lco Datei die letztlich auf letter.lco
75
  verlinkt ist ist aber auch moeglich.
76

  
77
  Es wird eine Datei sample_head.pdf mit ausgeliefert, diese wird nach
78
  letter_head.pdf verlinkt. Damit gibt es schon mal eine Funktionsfaehige
79
  Vorlage. Schau Dir nach Abschluss der Installation die Datei sample_haed.pdf
80
  an und erstelle ein entsprechendes pdf passend zum Briefkopf Deiner Firma,
81
  diese dann im Template Verzeichniss ablegen und statt sample_head.pdf nach
82
  letter_head.pdf verlinken.
83

  
84
  letzlich muss ./letter_head.pdf auf das passende Hintergrundpdf verweisen,
85
  welches gewuenschten Briefkopf enthaelt. Bei Updates oder nach erneutem
86

  
87
  Es wird eine Datei mydata.tex.example ausgeliefert die nach mytdata.tex
88
  verlinkt ist. Bei verwendetem Hintergrundpdf wird nur der Eintrag fuer das
89
  Land verwendet die Datei muss  also nicht angefasst werden. Die Anderen Werte
90
  sind fuer das Modul  lp (Label Print in erp -- zur Zeit nicht im
91
  oeffentlichen Zweig).
92

  
93
  Alle Anpassungen zum Briefkopf, Fusszeilen, Firmenlogos, etc.
94
  sollten ueber die Hintergrund pdf datei oder die *.lco Datei erfolgen.
95

  
96

  
97
# einheitliche Latex-Vorlagen -- Background
98

  
99
  Das Konzept von lx-office sieht vor, fuer jedes Dokument
100
  (Auftragsbestaetigung, Lieferschein, Rechnung, etc.) eine
101
  Latex-Vorlage vorzuhalten, dies ist sehr Wartungsunfreundlich. Auch
102
  das Einlesen einer einheitlichen Quelle fuer den Briefkopf bringt nur
103
  bedingte Vorteile, da hier leicht die Pflege der Artikel-Tabellen aus
104
  dem Ruder laeuft. Bei dem vorliegenden Ansatz wird fuer alle
105
  Briefartigen Dokumente mit Artikel-Tabellen eine einheitliche
106
  Latexvorlage verwendet, welche ueber Codeweichen die Besonderheiten
107
  der jeweiligen Dokumente Beruecksichtigt
108
    - Tabellen mit oder ohne Preis
109
    - Sprache der Tabellenueberschriften etc.
110
    - Anpassung der Bezugs-Zeile (z.B. Rechnungsnummer versus
111
      Angebotsnummer)
112
    - Darstellung von Brutto oder Netto-Preisen in der Auflistung
113
      (Endverbraucher versus Gewerblicher Kunde)
114
  Seit Version 2.7 ist das ohne Kunstgriff moeglich, da im bei nicht vorhanden
115
  Dokumenten auf default.tex zurueckgegriffen wird.
116

  
117

  
118
  Nachteil:
119
  Ja, alles hat seinen Preis ...
120
  Latex hat ohnehin eine sehr steile Lehrnkurve. Die Datei letter.tex
121
  ist sehr komplex und verstaerkt damit diesen Effekt noch einmal erheblich.
122
  Wer Latex-Erfahrung hat, oder geuebt ist Scriptsparachen nachzuvollziehen kann
123
  natuerlich auch innerhalb der Tabellendarstellung gut persoenliche Anpassungen
124
  vornehmen. Aber man kann sich hier bei Veraenderungen sehr schnell haeftig in
125
  den Fuss schiessen.
126
  Wer nicht so tief in die Materie einsteigen will oder leicht zu
127
  frustrieren ist, sollte sein Hintergrund PDF auf Basis der mitglieferten
128
  Datei sample_head.pdf erstellen, und sich an der Form der dargestellten Tabellen
129
  wie sie ausgeliefert werden, erfreuen.
130
  Kleiner Tipp:
131

  
132
    Nicht zu viel auf einmal wollen, lieber kleine kontinuierliche
133
    Schritte gehen.
134

  
135
  Alternativ kann man sich natuerlich fuer die Latex-Vorlagen
136
  professionelle Hilfe hohlen.
137

  
138

  
139
Bruttopreise fuer Endvorbraucher
140
  Der auszuweisende Bruttopreis wird innerhalb der LaTeX Umgebung berechnet.
141

  
142
  - Background:
143
    es gibt zwar ein Feld um bei Auftraegen "alle Preise Brutto" auszuwaehlen,
144
    aber:
145
      - hierfuer muessen die Preise auch in Brutto in der Datenbank stehen
146
        (ja -- das laesst sich ueber die Preisgruppen und die Zuordung einer Default-Preisgruppe
147
        handhaben)
148
      - man darf beim Anlegen des Vorgangs nicht vergessen Dieses Haekchen zu setzen.
149
        (das ist in der Praxis wenn man sowohl Endverbraucher- wie Gewerbekunden beliefert
150
       der eigentliche Knackpunkt)
151

  
152
  Es gibt mit f-tex eine weitere Alternative. Die Information ob Brutto oder
153
  Nettorechnung wird mit den Zahlarten verknuepft. Zahlarten bei denen
154
  Rechnungen, Angebote, etc, in Brutto ausgegeben werden sollen enden mit "_E"
155
  (fuer Endverbraucher) Falls identische Zahlarten fuer Gewerbekunden und
156
  Endverbraucher vorhanden sind legt man diese einfach doppelt an (einmal mit
157
  der Namensendung "_E")
158
  - Gewinn:
159
    - die Entscheidung ob Netopreise ausgewiesen werden ist nicht mehr fix
160
      mit einer Preisliste Verbunden.
161
    - die Default-Zahlart kann im Kundendatensatz hinterlegt werden und man
162
      muss nicht mehr daran denken "alle Preise Netto" auszuwaehlen.
163
    - Die Entscheidung ob Netto/Oder Bruttopreise ausgewiesen werden kann direkt
164
      beim Drucken reviediert werden, ohne dass sich der Auftragswert aendert.
165

  
166
Lieferadressen
167

  
168
  - in Lieferscheinen kommen shipto* -Variablen im Adressfeld zum Einsatz
169
  - wenn die shipto*variable leer ist wird die entsprechende
170
    Adressvariable eingesetzt.  Wenn Also die Lieferadresse in Strasse,
171
    Hausnummer und Ort abweicht, muessen auch nur diese Felder in der
172
    Lieferadresse ausgefuellt werden. Fuer den Firmenname wird der Wert der
173
    Hauptadresse angezeigt.
174

  
175
Troubleshooting -- Fehler suchen:
176
  Wenn sich das Problem nicht auf Grund der ausgabe im Webbrowser verifizieren laesst:
177

  
178
    editiere [flxo-home]/config/lx_office.conf und aendere "keep_tmp_files" auf 1
179
          keep_temp_files = 1;
180

  
181
    bei fastcgi oder mod_perl den Webserver neu Starten
182

  
183
    Nochmal einen Druckversuch im Webfrontend ausloesen
184

  
185
    wechsele in das users Verzeichnis von lxo
186
      cd [lxo-home]/users
187

  
188
    LaTeX Suchpfad anpassen:
189
      export TEXINPUTS=".:[lxo-home]/templates/[aktuelles_template_verzeichniss]:"
190

  
191
    Finde herraus welche datei lxo beim letzten Durchlauf erstellt hat
192
      ls -lahtr ./1*.tex
193
    Es sollte die letzte Datei ganz unten sein
194

  
195
    fuer besseren Hinweis auf Fehler texdatei nochmals uebersetzen
196
      pdflatex ./1*.tex
197

  
198
    in der *.tex datei nach dem Fehler suchen.
199

  
200

  
201

  

Auch abrufbar als: Unified diff