Revision 02fa01b2
Von Jan Büren vor mehr als 4 Jahren hinzugefügt
doc/dokumentation.xml | ||
---|---|---|
2189 | 2189 |
texlive-collection-latexrecommended texlive-collection-langgerman \ |
2190 | 2190 |
texlive-collection-langenglish</programlisting></para> |
2191 | 2191 |
|
2192 |
<note>kivitendo erwartet eine aktuelle TeX Live Umgebung, um PDF/A zu erzeugen. Aktuelle Distributionen von 2020 erfüllen diese. Überprüfbar ist dies mit dem Aufruf des installation_check.pl mit Parameter -l: <programlisting>scripts/installations_check.pl -l</programlisting> </note> |
|
2192 | 2193 |
<para>kivitendo bringt drei alternative Vorlagensätze mit:</para> |
2193 | 2194 |
|
2194 | 2195 |
<itemizedlist> |
2195 | 2196 |
<listitem> |
2196 | 2197 |
<para>RB</para> |
2197 | 2198 |
</listitem> |
2198 |
|
|
2199 | 2199 |
<listitem> |
2200 |
<para>f-tex</para>
|
|
2200 |
<para>marei</para>
|
|
2201 | 2201 |
</listitem> |
2202 |
|
|
2203 | 2202 |
<listitem> |
2204 | 2203 |
<para>rev-odt</para> |
2205 | 2204 |
</listitem> |
2206 | 2205 |
</itemizedlist> |
2207 | 2206 |
|
2208 |
<para>Der ehemalige Druckvorlagensatz "Standard" wurde mit der Version
|
|
2209 |
3.3 entfernt, da er nicht mehr gepflegt wurde.</para>
|
|
2207 |
<para>Der ehemalige Druckvorlagensatz "f-tex" wurde mit der Version
|
|
2208 |
3.6 entfernt, da er nicht mehr gepflegt wird.</para>
|
|
2210 | 2209 |
|
2211 | 2210 |
<sect2 id="Vorlagenverzeichnis-anlegen" |
2212 | 2211 |
xreflabel="Vorlagenverzeichnis anlegen"> |
... | ... | |
2230 | 2229 |
<listitem> |
2231 | 2230 |
<para><option>Vorlagen auswählen</option>: Wählen Sie hier den |
2232 | 2231 |
Vorlagensatz aus, der kopiert werden soll |
2233 |
(<filename>RB</filename>, <filename>f-tex</filename> oder
|
|
2232 |
(<filename>RB</filename>, <filename>marei</filename> oder
|
|
2234 | 2233 |
<filename>odt-rev</filename>.)</para> |
2235 | 2234 |
</listitem> |
2236 | 2235 |
|
... | ... | |
2288 | 2287 |
</itemizedlist> |
2289 | 2288 |
</sect2> |
2290 | 2289 |
|
2291 |
<sect2 id="f-tex"> |
|
2292 |
<title>f-tex</title> |
|
2293 |
|
|
2294 |
<para>Ein Vorlagensatz, der in wenigen Minuten alle Dokumente zur |
|
2295 |
Verfügung stellt.</para> |
|
2296 |
|
|
2297 |
<sect3 id="f-tex-Feature-Übersicht"> |
|
2298 |
<title>Feature-Übersicht</title> |
|
2299 |
|
|
2300 |
<itemizedlist> |
|
2301 |
<listitem> |
|
2302 |
<para>Keine Redundanz. Es wird ein- und dieselbe LaTeX-Vorlage |
|
2303 |
für alle briefartigen Dokumente verwendet. Also Angebot, |
|
2304 |
Rechnung, Proformarechnung, Lieferschein, aber eben nicht für |
|
2305 |
Paketaufkleber etc.</para> |
|
2306 |
</listitem> |
|
2307 |
|
|
2308 |
<listitem> |
|
2309 |
<para>Leichte Anpassung an das Firmen-Layout durch Verwendung |
|
2310 |
eines Hintergrund-PDFs. Dieses kann leicht mit dem eigenen |
|
2311 |
Lieblingsprogramm erstellt werden (Openoffice, Inkscape, Gimp, |
|
2312 |
Adobe*)</para> |
|
2313 |
</listitem> |
|
2314 |
|
|
2315 |
<listitem> |
|
2316 |
<para>Hintergrund-PDF umschaltbar auf "nur erste Seite" |
|
2317 |
(Standard) oder "alle Seiten" (Option |
|
2318 |
"<option>bgPdfFirstPageOnly</option>" in Datei |
|
2319 |
<filename>letter.lco</filename>)</para> |
|
2320 |
</listitem> |
|
2321 |
|
|
2322 |
<listitem> |
|
2323 |
<para>Hintergrund-PDF für Ausdruck auf bereits bedrucktem |
|
2324 |
Briefpapier abschaltbar. Es wird dann nur bei per E-Mail |
|
2325 |
versendeten Dokumenten eingebunden (Option |
|
2326 |
"<option>bgPdfEmailOnly</option>" in Datei |
|
2327 |
<filename>letter.lco</filename>).</para> |
|
2328 |
</listitem> |
|
2329 |
|
|
2330 |
<listitem> |
|
2331 |
<para>Nutzung der Layout-Funktionen von LaTeX für Seitenumbruch, |
|
2332 |
Wiederholung von Kopfzeilen, Zwischensummen etc. (danke an |
|
2333 |
Kai-Martin Knaak für die Vorarbeit)</para> |
|
2334 |
</listitem> |
|
2335 |
|
|
2336 |
<listitem> |
|
2337 |
<para>Anzeige des Empfängerlandes im Adressfeld nur, wenn es vom |
|
2338 |
Land des eigenen Unternehmens abweicht (also die Rechnung das |
|
2339 |
Land verlässt).</para> |
|
2340 |
</listitem> |
|
2341 |
|
|
2342 |
<listitem> |
|
2343 |
<para>Multisprachfähig leicht um weitere Sprachen zu erweitern, |
|
2344 |
alle Übersetzungen in der Datei |
|
2345 |
<filename>translatinos.tex</filename>.</para> |
|
2346 |
</listitem> |
|
2347 |
|
|
2348 |
<listitem> |
|
2349 |
<para>Auflistung von Bruttopreisen für Endverbraucher.</para> |
|
2350 |
</listitem> |
|
2351 |
</itemizedlist> |
|
2352 |
</sect3> |
|
2353 |
|
|
2354 |
<sect3 id="f-tex-Installation"> |
|
2355 |
<title>Die Installation</title> |
|
2356 |
|
|
2357 |
<itemizedlist> |
|
2358 |
<listitem> |
|
2359 |
<para>Vorlagenverzeichnis mit Option f-tex anlegen, siehe: <xref |
|
2360 |
linkend="Vorlagenverzeichnis-anlegen"/>. Das Vorlagensystem |
|
2361 |
funktioniert jetzt schon, hat allerdings noch einen |
|
2362 |
Beispiel-Briefkopf.</para> |
|
2363 |
</listitem> |
|
2364 |
|
|
2365 |
<listitem> |
|
2366 |
<para>Erstelle eine pdf-Hintergrund Datei und verlinke sie nach |
|
2367 |
<filename>./letter_head.pdf</filename>.</para> |
|
2368 |
</listitem> |
|
2369 |
|
|
2370 |
<listitem> |
|
2371 |
<para>Editiere den Bereich "<option>settings</option>" in der |
|
2372 |
datei <filename>letter.lco</filename>.</para> |
|
2373 |
</listitem> |
|
2374 |
</itemizedlist> |
|
2375 |
|
|
2376 |
<para>oder etwas detaillierter:</para> |
|
2377 |
|
|
2378 |
<para>Es wird eine Datei <filename>sample.lco</filename> erstellt |
|
2379 |
und diese nach <filename>letter.lco</filename> verlinkt. Eigentlich |
|
2380 |
ist dies die Datei die für die firmenspezifischen Anpassungen |
|
2381 |
gedacht ist. Da die Einstiegshürde in LaTeX nicht ganz niedrig ist, |
|
2382 |
wird in dieser Datei auf ein Hintergrund-PDF verwiesen. Ich empfehle |
|
2383 |
über dieses PDF die persönlichen Layoutanpassungen vorzunehmen und |
|
2384 |
<filename>sample.lco</filename> unverändert zu lassen. Die Anpassung |
|
2385 |
über eine <filename>*.lco</filename>-Datei, die letztlich auf |
|
2386 |
<filename>letter.lco</filename> verlinkt ist ist aber auch |
|
2387 |
möglich.</para> |
|
2388 |
|
|
2389 |
<para>Es wird eine Datei <filename>sample_head.pdf</filename> mit |
|
2390 |
ausgeliefert, diese wird nach <filename>letter_head.pdf</filename> |
|
2391 |
verlinkt. Damit gibt es schon mal eine funktionsfähige Vorlage. |
|
2392 |
Schau Dir nach Abschluss der Installation die Datei |
|
2393 |
<filename>sample_head.pdf</filename> an und erstelle ein |
|
2394 |
entsprechendes PDF passend zum Briefkopf Deiner Firma, diese dann im |
|
2395 |
Template Verzeichniss ablegen und statt |
|
2396 |
<filename>sample_head.pdf</filename> nach |
|
2397 |
<filename>letter_head.pdf</filename> verlinken.</para> |
|
2398 |
|
|
2399 |
<para>Letzlich muss <filename>letter_head.pdf</filename> auf das |
|
2400 |
passende Hintergrund-PDF verweisen, welches gewünschten Briefkopf |
|
2401 |
enthält.</para> |
|
2402 |
|
|
2403 |
<para>Es wird eine Datei <filename>mydata.tex.example</filename> |
|
2404 |
ausgeliefert, die nach <filename>mytdata.tex</filename> verlinkt |
|
2405 |
ist. Bei verwendetem Hintergrund-PDF wird nur der Eintrag für das |
|
2406 |
Land verwendet. Die Datei muss also nicht angefasst werden. Die |
|
2407 |
anderen Werte sind für das Modul 'lp' (Label Print in erp - zur Zeit |
|
2408 |
nicht im öffentlichen Zweig).</para> |
|
2409 |
|
|
2410 |
<para>Alle Anpassungen zum Briefkopf, Fusszeilen, Firmenlogos, etc. |
|
2411 |
sollten über die Hintergrund-PDF-Datei oder die |
|
2412 |
<filename>*.lco</filename>-Datei erfolgen.</para> |
|
2413 |
</sect3> |
|
2414 |
|
|
2415 |
<sect3 id="f-tex-Funktionsübersicht"> |
|
2416 |
<title>f-tex Funktionsübersicht</title> |
|
2417 |
|
|
2418 |
<para>Das Konzept von kivitendo sieht vor, für jedes Dokument |
|
2419 |
(Auftragsbestätigung, Lieferschein, Rechnung, etc.) eine |
|
2420 |
LaTeX-Vorlage vorzuhalten, dies ist sehr wartungsunfreundlich. Auch |
|
2421 |
das Einlesen einer einheitlichen Quelle für den Briefkopf bringt nur |
|
2422 |
bedingte Vorteile, da hier leicht die Pflege der Artikel-Tabellen |
|
2423 |
aus dem Ruder läuft. Bei dem vorliegenden Ansatz wird für alle |
|
2424 |
briefartigen Dokumente mit Artikel-Tabellen eine einheitliche |
|
2425 |
LaTeX-Vorlage verwendet, welche über Codeweichen die Besonderheiten |
|
2426 |
der jeweiligen Dokumente berücksichtigt:</para> |
|
2427 |
|
|
2428 |
<itemizedlist> |
|
2429 |
<listitem> |
|
2430 |
<para>Tabellen mit oder ohne Preis</para> |
|
2431 |
</listitem> |
|
2432 |
|
|
2433 |
<listitem> |
|
2434 |
<para>Sprache der Tabellenüberschriften etc.</para> |
|
2435 |
</listitem> |
|
2436 |
|
|
2437 |
<listitem> |
|
2438 |
<para>Anpassung der Bezugs-Zeile (z.B. Rechnungsnummer versus |
|
2439 |
Angebotsnummer)</para> |
|
2440 |
</listitem> |
|
2441 |
|
|
2442 |
<listitem> |
|
2443 |
<para>Darstellung von Brutto oder Netto-Preisen in der |
|
2444 |
Auflistung (Endverbraucher versus gewerblicher Kunde)</para> |
|
2445 |
</listitem> |
|
2446 |
</itemizedlist> |
|
2447 |
|
|
2448 |
<para>Nachteil:</para> |
|
2449 |
|
|
2450 |
<para>LaTeX hat ohnehin eine sehr steile Lehrnkurve. Die Datei |
|
2451 |
<filename>letter.tex</filename> ist sehr komplex und verstärkt damit |
|
2452 |
diesen Effekt noch einmal erheblich. Wer LaTeX-Erfahrung hat, oder |
|
2453 |
geübt ist Scriptsparachen nachzuvollziehen kann natürlich auch |
|
2454 |
innerhalb der Tabellendarstellung gut persönliche Anpassungen |
|
2455 |
vornehmen. Aber man kann sich hier bei Veränderungen sehr schnell |
|
2456 |
heftig in den Fuss schiessen.</para> |
|
2457 |
|
|
2458 |
<para>Wer nicht so tief in die Materie einsteigen will oder leicht |
|
2459 |
zu frustrieren ist, sollte sein Hintergrund-PDF auf Basis der |
|
2460 |
mitglieferten Datei <filename>sample_head.pdf</filename> erstellen, |
|
2461 |
und sich an der Form der dargestellten Tabellen, wie sie |
|
2462 |
ausgeliefert werden, erfreuen.</para> |
|
2463 |
|
|
2464 |
<para>Kleiner Tipp: Nicht zu viel auf einmal wollen, lieber kleine, |
|
2465 |
kontinuierliche Schritte gehen.</para> |
|
2466 |
</sect3> |
|
2467 |
|
|
2468 |
<sect3 id="f-tex-Bruttopreise"> |
|
2469 |
<title>Bruttopreise für Endverbraucher</title> |
|
2470 |
|
|
2471 |
<para>Der auszuweisende Bruttopreis wird innerhalb der |
|
2472 |
LaTeX-Umgebung berechnet. Es gibt zwar ein Feld, um bei Aufträgen |
|
2473 |
"alle Preise Brutto" auszuwählen, aber:</para> |
|
2474 |
|
|
2475 |
<itemizedlist> |
|
2476 |
<listitem> |
|
2477 |
<para>hierfür müssen die Preise auch in Brutto in der Datenbank |
|
2478 |
stehen (ja - das lässt sich über die Preisgruppen und die |
|
2479 |
Zuordung einer Default-Preisgruppe handhaben)</para> |
|
2480 |
</listitem> |
|
2481 |
|
|
2482 |
<listitem> |
|
2483 |
<para>man darf beim Anlegen des Vorgangs nicht vergessen, dieses |
|
2484 |
Häkchen zu setzen. (Das ist in der Praxis, wenn man sowohl |
|
2485 |
Endverbraucher als auch Gewerbekunden beliefert, der eigentliche |
|
2486 |
Knackpunkt)</para> |
|
2487 |
</listitem> |
|
2488 |
</itemizedlist> |
|
2489 |
|
|
2490 |
<para>Es gibt mit f-tex eine weitere Alternative. Die Information ob |
|
2491 |
Brutto oder Nettorechnung wird mit den Zahlarten verknüpft. |
|
2492 |
Zahlarten bei denen Rechnungen, Angebote, etc, in Brutto ausgegeben |
|
2493 |
werden sollen, enden mit "_E" (für Endverbraucher). Falls identische |
|
2494 |
Zahlarten für Gewerbekunden und Endverbraucher vorhanden sind, legt |
|
2495 |
man diese einfach doppelt an (einmal mit der Namensendung "_E"). |
|
2496 |
Gewinn:</para> |
|
2497 |
|
|
2498 |
<itemizedlist> |
|
2499 |
<listitem> |
|
2500 |
<para>Die Entscheidung, ob Nettopreise ausgewiesen werden, ist |
|
2501 |
nicht mehr fix mit einer Preisliste verbunden.</para> |
|
2502 |
</listitem> |
|
2503 |
|
|
2504 |
<listitem> |
|
2505 |
<para>Die Default-Zahlart kann im Kundendatensatz hinterlegt |
|
2506 |
werden, und man muss nicht mehr daran denken, "alle Preise |
|
2507 |
Netto" auszuwählen.</para> |
|
2508 |
</listitem> |
|
2509 |
|
|
2510 |
<listitem> |
|
2511 |
<para>Die Entscheidung, ob Netto- oder Bruttopreise ausgewiesen |
|
2512 |
werden, kann direkt beim Drucken revidiert werden, ohne dass |
|
2513 |
sich der Auftragswert ändert.</para> |
|
2514 |
</listitem> |
|
2515 |
</itemizedlist> |
|
2516 |
</sect3> |
|
2517 |
|
|
2518 |
<sect3 id="f-tex-lieferadressen"> |
|
2519 |
<title>Lieferadressen</title> |
|
2520 |
|
|
2521 |
<para>In Lieferscheinen kommen <varname>shipto*</varname>-Variablen |
|
2522 |
im Adressfeld zum Einsatz. Wenn die |
|
2523 |
<varname>shipto*</varname>-Variable leer ist, wird die entsprechende |
|
2524 |
Adressvariable eingesetzt. Wenn also die Lieferadresse in Straße, |
|
2525 |
Hausnummer und Ort abweicht, müssen auch nur diese Felder in der |
|
2526 |
Lieferadresse ausgefüllt werden. Für den Firmenname wird der Wert |
|
2527 |
der Hauptadresse angezeigt.</para> |
|
2528 |
</sect3> |
|
2529 |
</sect2> |
|
2530 |
|
|
2531 |
<sect2 id="Vorlagen-rev-odt"> |
|
2290 |
<sect2 id="Vorlagen-rev-odt"> |
|
2532 | 2291 |
<title>Der Druckvorlagensatz rev-odt</title> |
2533 | 2292 |
|
2534 | 2293 |
<para>Hierbei handelt es sich um einen Dokumentensatz der mit |
doc/html/ch02s06.html | ||
---|---|---|
121 | 121 |
sowie ferner auch die Möglichkeit nicht ausschließen, dass es in Unterverzeichnissen auch noch .git Repositories geben kann. |
122 | 122 |
Die Empfehlung für Apache 2.4 wäre damit: |
123 | 123 |
</p><pre class="programlisting"> |
124 |
<DirectoryMatch "(\.git|config)/"> |
|
124 |
<DirectoryMatch "/(\.git|config)/">
|
|
125 | 125 |
Require all denied |
126 | 126 |
</DirectoryMatch></pre><p> |
127 | 127 |
|
doc/html/ch02s12.html | ||
---|---|---|
14 | 14 |
</p><pre class="programlisting">zypper install texlive-collection-latex texlive-collection-latexextra \ |
15 | 15 |
texlive-collection-latexrecommended texlive-collection-langgerman \ |
16 | 16 |
texlive-collection-langenglish</pre><p> |
17 |
</p><p>kivitendo bringt drei alternative Vorlagensätze mit:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>RB</p></li><li class="listitem"><p>f-tex</p></li><li class="listitem"><p>rev-odt</p></li></ul></div><p>Der ehemalige Druckvorlagensatz "Standard" wurde mit der Version
|
|
18 |
3.3 entfernt, da er nicht mehr gepflegt wurde.</p><div class="sect2" title="2.12.1. Vorlagenverzeichnis anlegen"><div class="titlepage"><div><div><h3 class="title"><a name="Vorlagenverzeichnis-anlegen"></a>2.12.1. Vorlagenverzeichnis anlegen</h3></div></div></div><p>Es lässt sich ein initialer Vorlagensatz erstellen. Die
|
|
17 |
</p><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">kivitendo erwartet eine aktuelle TeX Live Umgebung, um PDF/A zu erzeugen. Aktuelle Distributionen von 2020 erfüllen diese. Überprüfbar ist dies mit dem Aufruf des installation_check.pl mit Parameter -l: <pre class="programlisting">scripts/installations_check.pl -l</pre></td></tr></table></div><p>kivitendo bringt drei alternative Vorlagensätze mit:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>RB</p></li><li class="listitem"><p>marei</p></li><li class="listitem"><p>rev-odt</p></li></ul></div><p>Der ehemalige Druckvorlagensatz "f-tex" wurde mit der Version
|
|
18 |
3.6 entfernt, da er nicht mehr gepflegt wird.</p><div class="sect2" title="2.12.1. Vorlagenverzeichnis anlegen"><div class="titlepage"><div><div><h3 class="title"><a name="Vorlagenverzeichnis-anlegen"></a>2.12.1. Vorlagenverzeichnis anlegen</h3></div></div></div><p>Es lässt sich ein initialer Vorlagensatz erstellen. Die
|
|
19 | 19 |
LaTeX-System-Abhängigkeiten hierfür kann man prüfen mit:</p><pre class="programlisting">./scripts/installation_check.pl -lv</pre><p>Der Angemeldete Benutzer muss in einer Gruppe sein, die über das |
20 | 20 |
Recht "Konfiguration -> Mandantenverwaltung" verfügt. Siehe auch |
21 | 21 |
<a class="xref" href="ch02s09.html#Gruppen-anlegen" title="2.9.4. Gruppen anlegen">Abschnitt 2.9.4, „Gruppen anlegen“</a>.</p><p>Im Userbereich lässt sich unter: "<span class="guimenu">System</span> |
... | ... | |
24 | 24 |
Druckvorlagen aus Vorlagensatz erstellen" auswählen.</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p> |
25 | 25 |
<code class="option">Vorlagen auswählen</code>: Wählen Sie hier den |
26 | 26 |
Vorlagensatz aus, der kopiert werden soll |
27 |
(<code class="filename">RB</code>, <code class="filename">f-tex</code> oder
|
|
27 |
(<code class="filename">RB</code>, <code class="filename">marei</code> oder
|
|
28 | 28 |
<code class="filename">odt-rev</code>.)</p></li><li class="listitem"><p> |
29 | 29 |
<code class="option">Neuer Name</code>: Der Verzeichnisname für den |
30 | 30 |
neuen Vorlagensatz. Dieser kann im Rahmen der üblichen Bedingungen |
... | ... | |
44 | 44 |
werden, z.B. für Kopf- und Fußzeilen, und Infos wie |
45 | 45 |
Bankdaten</p></li><li class="listitem"><p>mehrere vordefinierte Varianten für |
46 | 46 |
Logos/Hintergrundbilder</p></li><li class="listitem"><p>Berücksichtigung für Steuerzonen "EU mit USt-ID Nummer" oder |
47 |
"Außerhalb EU"</p></li></ul></div></div><div class="sect2" title="2.12.3. f-tex"><div class="titlepage"><div><div><h3 class="title"><a name="f-tex"></a>2.12.3. f-tex</h3></div></div></div><p>Ein Vorlagensatz, der in wenigen Minuten alle Dokumente zur |
|
48 |
Verfügung stellt.</p><div class="sect3" title="2.12.3.1. Feature-Übersicht"><div class="titlepage"><div><div><h4 class="title"><a name="f-tex-Feature-%C3%9Cbersicht"></a>2.12.3.1. Feature-Übersicht</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Keine Redundanz. Es wird ein- und dieselbe LaTeX-Vorlage |
|
49 |
für alle briefartigen Dokumente verwendet. Also Angebot, |
|
50 |
Rechnung, Proformarechnung, Lieferschein, aber eben nicht für |
|
51 |
Paketaufkleber etc.</p></li><li class="listitem"><p>Leichte Anpassung an das Firmen-Layout durch Verwendung |
|
52 |
eines Hintergrund-PDFs. Dieses kann leicht mit dem eigenen |
|
53 |
Lieblingsprogramm erstellt werden (Openoffice, Inkscape, Gimp, |
|
54 |
Adobe*)</p></li><li class="listitem"><p>Hintergrund-PDF umschaltbar auf "nur erste Seite" |
|
55 |
(Standard) oder "alle Seiten" (Option |
|
56 |
"<code class="option">bgPdfFirstPageOnly</code>" in Datei |
|
57 |
<code class="filename">letter.lco</code>)</p></li><li class="listitem"><p>Hintergrund-PDF für Ausdruck auf bereits bedrucktem |
|
58 |
Briefpapier abschaltbar. Es wird dann nur bei per E-Mail |
|
59 |
versendeten Dokumenten eingebunden (Option |
|
60 |
"<code class="option">bgPdfEmailOnly</code>" in Datei |
|
61 |
<code class="filename">letter.lco</code>).</p></li><li class="listitem"><p>Nutzung der Layout-Funktionen von LaTeX für Seitenumbruch, |
|
62 |
Wiederholung von Kopfzeilen, Zwischensummen etc. (danke an |
|
63 |
Kai-Martin Knaak für die Vorarbeit)</p></li><li class="listitem"><p>Anzeige des Empfängerlandes im Adressfeld nur, wenn es vom |
|
64 |
Land des eigenen Unternehmens abweicht (also die Rechnung das |
|
65 |
Land verlässt).</p></li><li class="listitem"><p>Multisprachfähig leicht um weitere Sprachen zu erweitern, |
|
66 |
alle Übersetzungen in der Datei |
|
67 |
<code class="filename">translatinos.tex</code>.</p></li><li class="listitem"><p>Auflistung von Bruttopreisen für Endverbraucher.</p></li></ul></div></div><div class="sect3" title="2.12.3.2. Die Installation"><div class="titlepage"><div><div><h4 class="title"><a name="f-tex-Installation"></a>2.12.3.2. Die Installation</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Vorlagenverzeichnis mit Option f-tex anlegen, siehe: <a class="xref" href="ch02s12.html#Vorlagenverzeichnis-anlegen" title="2.12.1. Vorlagenverzeichnis anlegen">Vorlagenverzeichnis anlegen</a>. Das Vorlagensystem |
|
68 |
funktioniert jetzt schon, hat allerdings noch einen |
|
69 |
Beispiel-Briefkopf.</p></li><li class="listitem"><p>Erstelle eine pdf-Hintergrund Datei und verlinke sie nach |
|
70 |
<code class="filename">./letter_head.pdf</code>.</p></li><li class="listitem"><p>Editiere den Bereich "<code class="option">settings</code>" in der |
|
71 |
datei <code class="filename">letter.lco</code>.</p></li></ul></div><p>oder etwas detaillierter:</p><p>Es wird eine Datei <code class="filename">sample.lco</code> erstellt |
|
72 |
und diese nach <code class="filename">letter.lco</code> verlinkt. Eigentlich |
|
73 |
ist dies die Datei die für die firmenspezifischen Anpassungen |
|
74 |
gedacht ist. Da die Einstiegshürde in LaTeX nicht ganz niedrig ist, |
|
75 |
wird in dieser Datei auf ein Hintergrund-PDF verwiesen. Ich empfehle |
|
76 |
über dieses PDF die persönlichen Layoutanpassungen vorzunehmen und |
|
77 |
<code class="filename">sample.lco</code> unverändert zu lassen. Die Anpassung |
|
78 |
über eine <code class="filename">*.lco</code>-Datei, die letztlich auf |
|
79 |
<code class="filename">letter.lco</code> verlinkt ist ist aber auch |
|
80 |
möglich.</p><p>Es wird eine Datei <code class="filename">sample_head.pdf</code> mit |
|
81 |
ausgeliefert, diese wird nach <code class="filename">letter_head.pdf</code> |
|
82 |
verlinkt. Damit gibt es schon mal eine funktionsfähige Vorlage. |
|
83 |
Schau Dir nach Abschluss der Installation die Datei |
|
84 |
<code class="filename">sample_head.pdf</code> an und erstelle ein |
|
85 |
entsprechendes PDF passend zum Briefkopf Deiner Firma, diese dann im |
|
86 |
Template Verzeichniss ablegen und statt |
|
87 |
<code class="filename">sample_head.pdf</code> nach |
|
88 |
<code class="filename">letter_head.pdf</code> verlinken.</p><p>Letzlich muss <code class="filename">letter_head.pdf</code> auf das |
|
89 |
passende Hintergrund-PDF verweisen, welches gewünschten Briefkopf |
|
90 |
enthält.</p><p>Es wird eine Datei <code class="filename">mydata.tex.example</code> |
|
91 |
ausgeliefert, die nach <code class="filename">mytdata.tex</code> verlinkt |
|
92 |
ist. Bei verwendetem Hintergrund-PDF wird nur der Eintrag für das |
|
93 |
Land verwendet. Die Datei muss also nicht angefasst werden. Die |
|
94 |
anderen Werte sind für das Modul 'lp' (Label Print in erp - zur Zeit |
|
95 |
nicht im öffentlichen Zweig).</p><p>Alle Anpassungen zum Briefkopf, Fusszeilen, Firmenlogos, etc. |
|
96 |
sollten über die Hintergrund-PDF-Datei oder die |
|
97 |
<code class="filename">*.lco</code>-Datei erfolgen.</p></div><div class="sect3" title="2.12.3.3. f-tex Funktionsübersicht"><div class="titlepage"><div><div><h4 class="title"><a name="f-tex-Funktions%C3%BCbersicht"></a>2.12.3.3. f-tex Funktionsübersicht</h4></div></div></div><p>Das Konzept von kivitendo sieht vor, für jedes Dokument |
|
98 |
(Auftragsbestätigung, Lieferschein, Rechnung, etc.) eine |
|
99 |
LaTeX-Vorlage vorzuhalten, dies ist sehr wartungsunfreundlich. Auch |
|
100 |
das Einlesen einer einheitlichen Quelle für den Briefkopf bringt nur |
|
101 |
bedingte Vorteile, da hier leicht die Pflege der Artikel-Tabellen |
|
102 |
aus dem Ruder läuft. Bei dem vorliegenden Ansatz wird für alle |
|
103 |
briefartigen Dokumente mit Artikel-Tabellen eine einheitliche |
|
104 |
LaTeX-Vorlage verwendet, welche über Codeweichen die Besonderheiten |
|
105 |
der jeweiligen Dokumente berücksichtigt:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Tabellen mit oder ohne Preis</p></li><li class="listitem"><p>Sprache der Tabellenüberschriften etc.</p></li><li class="listitem"><p>Anpassung der Bezugs-Zeile (z.B. Rechnungsnummer versus |
|
106 |
Angebotsnummer)</p></li><li class="listitem"><p>Darstellung von Brutto oder Netto-Preisen in der |
|
107 |
Auflistung (Endverbraucher versus gewerblicher Kunde)</p></li></ul></div><p>Nachteil:</p><p>LaTeX hat ohnehin eine sehr steile Lehrnkurve. Die Datei |
|
108 |
<code class="filename">letter.tex</code> ist sehr komplex und verstärkt damit |
|
109 |
diesen Effekt noch einmal erheblich. Wer LaTeX-Erfahrung hat, oder |
|
110 |
geübt ist Scriptsparachen nachzuvollziehen kann natürlich auch |
|
111 |
innerhalb der Tabellendarstellung gut persönliche Anpassungen |
|
112 |
vornehmen. Aber man kann sich hier bei Veränderungen sehr schnell |
|
113 |
heftig in den Fuss schiessen.</p><p>Wer nicht so tief in die Materie einsteigen will oder leicht |
|
114 |
zu frustrieren ist, sollte sein Hintergrund-PDF auf Basis der |
|
115 |
mitglieferten Datei <code class="filename">sample_head.pdf</code> erstellen, |
|
116 |
und sich an der Form der dargestellten Tabellen, wie sie |
|
117 |
ausgeliefert werden, erfreuen.</p><p>Kleiner Tipp: Nicht zu viel auf einmal wollen, lieber kleine, |
|
118 |
kontinuierliche Schritte gehen.</p></div><div class="sect3" title="2.12.3.4. Bruttopreise für Endverbraucher"><div class="titlepage"><div><div><h4 class="title"><a name="f-tex-Bruttopreise"></a>2.12.3.4. Bruttopreise für Endverbraucher</h4></div></div></div><p>Der auszuweisende Bruttopreis wird innerhalb der |
|
119 |
LaTeX-Umgebung berechnet. Es gibt zwar ein Feld, um bei Aufträgen |
|
120 |
"alle Preise Brutto" auszuwählen, aber:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>hierfür müssen die Preise auch in Brutto in der Datenbank |
|
121 |
stehen (ja - das lässt sich über die Preisgruppen und die |
|
122 |
Zuordung einer Default-Preisgruppe handhaben)</p></li><li class="listitem"><p>man darf beim Anlegen des Vorgangs nicht vergessen, dieses |
|
123 |
Häkchen zu setzen. (Das ist in der Praxis, wenn man sowohl |
|
124 |
Endverbraucher als auch Gewerbekunden beliefert, der eigentliche |
|
125 |
Knackpunkt)</p></li></ul></div><p>Es gibt mit f-tex eine weitere Alternative. Die Information ob |
|
126 |
Brutto oder Nettorechnung wird mit den Zahlarten verknüpft. |
|
127 |
Zahlarten bei denen Rechnungen, Angebote, etc, in Brutto ausgegeben |
|
128 |
werden sollen, enden mit "_E" (für Endverbraucher). Falls identische |
|
129 |
Zahlarten für Gewerbekunden und Endverbraucher vorhanden sind, legt |
|
130 |
man diese einfach doppelt an (einmal mit der Namensendung "_E"). |
|
131 |
Gewinn:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Die Entscheidung, ob Nettopreise ausgewiesen werden, ist |
|
132 |
nicht mehr fix mit einer Preisliste verbunden.</p></li><li class="listitem"><p>Die Default-Zahlart kann im Kundendatensatz hinterlegt |
|
133 |
werden, und man muss nicht mehr daran denken, "alle Preise |
|
134 |
Netto" auszuwählen.</p></li><li class="listitem"><p>Die Entscheidung, ob Netto- oder Bruttopreise ausgewiesen |
|
135 |
werden, kann direkt beim Drucken revidiert werden, ohne dass |
|
136 |
sich der Auftragswert ändert.</p></li></ul></div></div><div class="sect3" title="2.12.3.5. Lieferadressen"><div class="titlepage"><div><div><h4 class="title"><a name="f-tex-lieferadressen"></a>2.12.3.5. Lieferadressen</h4></div></div></div><p>In Lieferscheinen kommen <code class="varname">shipto*</code>-Variablen |
|
137 |
im Adressfeld zum Einsatz. Wenn die |
|
138 |
<code class="varname">shipto*</code>-Variable leer ist, wird die entsprechende |
|
139 |
Adressvariable eingesetzt. Wenn also die Lieferadresse in Straße, |
|
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 |
|
142 |
der Hauptadresse angezeigt.</p></div></div><div class="sect2" title="2.12.4. Der Druckvorlagensatz rev-odt"><div class="titlepage"><div><div><h3 class="title"><a name="Vorlagen-rev-odt"></a>2.12.4. Der Druckvorlagensatz rev-odt</h3></div></div></div><p>Hierbei handelt es sich um einen Dokumentensatz der mit |
|
47 |
"Außerhalb EU"</p></li></ul></div></div><div class="sect2" title="2.12.3. Der Druckvorlagensatz rev-odt"><div class="titlepage"><div><div><h3 class="title"><a name="Vorlagen-rev-odt"></a>2.12.3. Der Druckvorlagensatz rev-odt</h3></div></div></div><p>Hierbei handelt es sich um einen Dokumentensatz der mit |
|
143 | 48 |
odt-Vorlagen erstellt wurde. Es gibt in dem Verzeichnis eine |
144 | 49 |
Readme-Datei, die eventuell aktueller als die Dokumentation hier ist. |
145 | 50 |
Die odt-Vorlagen in diesem Verzeichnis "rev-odt" wurden von revamp-it, |
... | ... | |
166 | 71 |
die verrechneten Mahngebühren und Verzugszinsen.</p><p>Zur Zeit gibt es in kivitendo noch keine Möglichkeit, |
167 | 72 |
odt-Vorlagen bei Briefen und Pflichtenheften einzusetzen. |
168 | 73 |
Entsprechende Vorlagen sind deshalb nicht vorhanden.</p><p>Fehlermeldungen, Anregungen und Wünsche bitte senden an: |
169 |
empfang@revamp-it.ch</p></div><div class="sect2" title="2.12.5. Allgemeine Hinweise zu LaTeX Vorlagen"><div class="titlepage"><div><div><h3 class="title"><a name="allgemeine-hinweise-zu-latex"></a>2.12.5. Allgemeine Hinweise zu LaTeX Vorlagen</h3></div></div></div><p>In den allermeisten Installationen sollte das Drucken jetzt
|
|
74 |
empfang@revamp-it.ch</p></div><div class="sect2" title="2.12.4. Allgemeine Hinweise zu LaTeX Vorlagen"><div class="titlepage"><div><div><h3 class="title"><a name="allgemeine-hinweise-zu-latex"></a>2.12.4. Allgemeine Hinweise zu LaTeX Vorlagen</h3></div></div></div><p>In den allermeisten Installationen sollte das Drucken jetzt
|
|
170 | 75 |
schon funktionieren. Sollte ein Fehler auftreten, wirft TeX sehr lange |
171 | 76 |
Fehlerbeschreibungen, der eigentliche Fehler ist immer die erste |
172 | 77 |
Zeile, die mit einem Ausrufezeichen anfängt. Häufig auftretende Fehler |
doc/html/ch02s13.html | ||
---|---|---|
63 | 63 |
Verzeichnis umbenannt werden.</p><p>Dieses Verzeichnis, wie auch das komplette |
64 | 64 |
<code class="literal">users</code>-Verzeichnis, muss vom Webserver beschreibbar |
65 | 65 |
sein. Dieses wurde bereits erledigt (siehe <a class="xref" href="ch02s03.html" title="2.3. Manuelle Installation des Programmpaketes">Manuelle Installation des Programmpaketes</a>), kann aber erneut |
66 |
überprüft werden, wenn die Konvertierung nach PDF fehlschlägt.</p><div class="sect2" title="2.13.1. OpenDocument (odt) Druckvorlagen mit Makros"><div class="titlepage"><div><div><h3 class="title"><a name="d0e2609"></a>2.13.1. OpenDocument (odt) Druckvorlagen mit Makros</h3></div></div></div><p>OpenDocument Vorlagen können Makros enthalten, welche komplexere
|
|
66 |
überprüft werden, wenn die Konvertierung nach PDF fehlschlägt.</p><div class="sect2" title="2.13.1. OpenDocument (odt) Druckvorlagen mit Makros"><div class="titlepage"><div><div><h3 class="title"><a name="d0e2420"></a>2.13.1. OpenDocument (odt) Druckvorlagen mit Makros</h3></div></div></div><p>OpenDocument Vorlagen können Makros enthalten, welche komplexere
|
|
67 | 67 |
Aufgaben erfüllen.</p><p>Der Vorlagensatz "rev-odt" enthält solche Vorlagen mit <span class="bold"><strong>Schweizer Bank-Einzahlungsscheinen (BESR)</strong></span>. |
68 | 68 |
Diese Makros haben die Aufgabe, die in den Einzahlungsscheinen |
69 | 69 |
benötigte Referenznummer und Kodierzeile zu erzeugen. Hier eine kurze |
70 | 70 |
Beschreibung, wie die Makros aufgebaut sind, und was bei ihrer Nutzung |
71 | 71 |
zu beachten ist (<span class="bold"><strong>in fett sind nötige einmalige |
72 |
Anpassungen aufgeführt</strong></span>):</p><div class="sect3" title="2.13.1.1. Bezeichnung der Vorlagen"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2622"></a>2.13.1.1. Bezeichnung der Vorlagen</h4></div></div></div><p>Rechnung: invoice_besr.odt, Auftrag:
|
|
73 |
sales_order_besr.odt</p></div><div class="sect3" title="2.13.1.2. Vorbereitungen im Adminbereich"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2627"></a>2.13.1.2. Vorbereitungen im Adminbereich</h4></div></div></div><p>Damit beim Erstellen von Rechnungen und Aufträgen neben der
|
|
72 |
Anpassungen aufgeführt</strong></span>):</p><div class="sect3" title="2.13.1.1. Bezeichnung der Vorlagen"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2433"></a>2.13.1.1. Bezeichnung der Vorlagen</h4></div></div></div><p>Rechnung: invoice_besr.odt, Auftrag:
|
|
73 |
sales_order_besr.odt</p></div><div class="sect3" title="2.13.1.2. Vorbereitungen im Adminbereich"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2438"></a>2.13.1.2. Vorbereitungen im Adminbereich</h4></div></div></div><p>Damit beim Erstellen von Rechnungen und Aufträgen neben der
|
|
74 | 74 |
Standardvorlage ohne Einzahlungsschein weitere Vorlagen (z.B. mit |
75 | 75 |
Einzahlungsschein) auswählbar sind, muss für jedes Vorlagen-Suffix |
76 | 76 |
ein Drucker eingerichtet werden:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Druckeradministration → Drucker hinzufügen</p></li><li class="listitem"><p>Mandant wählen</p></li><li class="listitem"><p>Druckerbeschreibung → aussagekräftiger Text: wird in der |
... | ... | |
79 | 79 |
Aufträgen oder Rechnungen als odt-Datei keine Bedeutung, darf |
80 | 80 |
aber nicht leer sein)</p></li><li class="listitem"><p>Vorlagenkürzel → besr bzw. selbst gewähltes Vorlagensuffix |
81 | 81 |
(muss genau der Zeichenfolge entsprechen, die zwischen |
82 |
"invoice_" bzw. "sales_order_" und ".odt" steht.)</p></li><li class="listitem"><p>speichern</p></li></ul></div></div><div class="sect3" title="2.13.1.3. Benutzereinstellungen"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2651"></a>2.13.1.3. Benutzereinstellungen</h4></div></div></div><p>Wer den Ausdruck mit Einzahlungsschein als Standardeinstellung
|
|
82 |
"invoice_" bzw. "sales_order_" und ".odt" steht.)</p></li><li class="listitem"><p>speichern</p></li></ul></div></div><div class="sect3" title="2.13.1.3. Benutzereinstellungen"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2462"></a>2.13.1.3. Benutzereinstellungen</h4></div></div></div><p>Wer den Ausdruck mit Einzahlungsschein als Standardeinstellung
|
|
83 | 83 |
im Rechnungs- bzw. Auftragsformular angezeigt haben möchte, kann |
84 | 84 |
dies persönlich für sich bei den Benutzereinstellungen |
85 | 85 |
konfigurieren:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Programm → Benutzereinstellungen → Druckoptionen</p></li><li class="listitem"><p>Standardvorlagenformat → OpenDocument/OASIS</p></li><li class="listitem"><p>Standardausgabekanal → Bildschirm</p></li><li class="listitem"><p>Standarddrucker → gewünschte Druckerbeschreibung auswählen |
86 |
(z.B. mit Einzahlungsschein Bank xy)</p></li><li class="listitem"><p>Anzahl Kopien → leer</p></li><li class="listitem"><p>speichern</p></li></ul></div></div><div class="sect3" title="2.13.1.4. Aufbau und nötige Anpassungen der Vorlagen"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2675"></a>2.13.1.4. Aufbau und nötige Anpassungen der Vorlagen</h4></div></div></div><p>In der Vorlage sind als Modul "BESR" 4 Makros gespeichert, die
|
|
86 |
(z.B. mit Einzahlungsschein Bank xy)</p></li><li class="listitem"><p>Anzahl Kopien → leer</p></li><li class="listitem"><p>speichern</p></li></ul></div></div><div class="sect3" title="2.13.1.4. Aufbau und nötige Anpassungen der Vorlagen"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2486"></a>2.13.1.4. Aufbau und nötige Anpassungen der Vorlagen</h4></div></div></div><p>In der Vorlage sind als Modul "BESR" 4 Makros gespeichert, die
|
|
87 | 87 |
aus dem von kivitendo erzeugten odt-Dokument die korrekte |
88 | 88 |
Referenznummer inklusive Prüfziffer sowie die Kodierzeile in |
89 | 89 |
OCRB-Schrift erzeugen und am richtigen Ort ins Dokument |
... | ... | |
112 | 112 |
angepasst werden.</strong></span> Dabei ist darauf zu achten, dass |
113 | 113 |
sich die Positionen der Postkonto-Nummern der Bank, sowie der |
114 | 114 |
Zeichenfolgen dddfr, DDDREF1, DDDREF2, 609, DDDKODIERZEILE nicht |
115 |
verschieben.</p></li></ul></div><div class="screenshot"><div class="mediaobject"><img src="images/Einzahlungsschein_Makro.png"></div></div></div><div class="sect3" title="2.13.1.5. Auswahl der Druckvorlage in kivitendo beim Erzeugen einer odt-Rechnung (analog bei Auftrag)"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2739"></a>2.13.1.5. Auswahl der Druckvorlage in kivitendo beim Erzeugen einer
|
|
115 |
verschieben.</p></li></ul></div><div class="screenshot"><div class="mediaobject"><img src="images/Einzahlungsschein_Makro.png"></div></div></div><div class="sect3" title="2.13.1.5. Auswahl der Druckvorlage in kivitendo beim Erzeugen einer odt-Rechnung (analog bei Auftrag)"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2550"></a>2.13.1.5. Auswahl der Druckvorlage in kivitendo beim Erzeugen einer
|
|
116 | 116 |
odt-Rechnung (analog bei Auftrag)</h4></div></div></div><p>Im Fussbereich der Rechnungsmaske muss neben Rechnung, |
117 | 117 |
OpenDocument/OASIS und Bildschirm die im Adminbereich erstellte |
118 | 118 |
Druckerbeschreibung ausgewählt werden, falls diese nicht bereits bei |
119 | 119 |
den Benutzereinstellungen als persönlicher Standard gewählt |
120 |
wurde.</p></div><div class="sect3" title="2.13.1.6. Makroeinstellungen in LibreOffice anpassen"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2744"></a>2.13.1.6. Makroeinstellungen in LibreOffice anpassen</h4></div></div></div><p>Falls beim Öffnen einer von kivitendo erzeugten odt-Rechnung
|
|
120 |
wurde.</p></div><div class="sect3" title="2.13.1.6. Makroeinstellungen in LibreOffice anpassen"><div class="titlepage"><div><div><h4 class="title"><a name="d0e2555"></a>2.13.1.6. Makroeinstellungen in LibreOffice anpassen</h4></div></div></div><p>Falls beim Öffnen einer von kivitendo erzeugten odt-Rechnung
|
|
121 | 121 |
die Meldung kommt, dass Makros aus Sicherheitsgründen nicht |
122 | 122 |
ausgeführt werden, so müssen folgende Einstellungen in LibreOffice |
123 | 123 |
angepasst werden:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Extras → Optionen → Sicherheit → Makrosicherheit</p></li><li class="listitem"><p>Sicherheitslevel auf "Mittel" einstellen (Diese |
doc/html/ch03s03.html | ||
---|---|---|
617 | 617 |
<code class="varname">invdate</code> |
618 | 618 |
</span></dt><dd><p>Rechnungsdatum</p></dd><dt><span class="term"> |
619 | 619 |
<code class="varname">invnumber</code> |
620 |
</span></dt><dd><p>Rechnungsnummer</p></dd></dl></div></div></div><div class="sect2" title="3.3.10. Variablen in anderen Vorlagen"><div class="titlepage"><div><div><h3 class="title"><a name="dokumentenvorlagen-und-variablen.andere-vorlagen"></a>3.3.10. Variablen in anderen Vorlagen</h3></div></div></div><div class="sect3" title="3.3.10.1. Einführung"><div class="titlepage"><div><div><h4 class="title"><a name="d0e6022"></a>3.3.10.1. Einführung</h4></div></div></div><p>Die Variablen in anderen Vorlagen sind ähnlich wie in der
|
|
620 |
</span></dt><dd><p>Rechnungsnummer</p></dd></dl></div></div></div><div class="sect2" title="3.3.10. Variablen in anderen Vorlagen"><div class="titlepage"><div><div><h3 class="title"><a name="dokumentenvorlagen-und-variablen.andere-vorlagen"></a>3.3.10. Variablen in anderen Vorlagen</h3></div></div></div><div class="sect3" title="3.3.10.1. Einführung"><div class="titlepage"><div><div><h4 class="title"><a name="d0e5833"></a>3.3.10.1. Einführung</h4></div></div></div><p>Die Variablen in anderen Vorlagen sind ähnlich wie in der
|
|
621 | 621 |
Rechnung. Allerdings heißen die Variablen, die mit |
622 | 622 |
<code class="varname">inv</code> beginnen, jetzt anders. Bei den Angeboten |
623 | 623 |
fangen sie mit <code class="varname">quo</code> für "quotation" an: |
doc/html/ch03s07.html | ||
---|---|---|
1 | 1 |
<html><head> |
2 | 2 |
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
3 |
<title>3.7. Artikelklassifizierung</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 3.5.6: Installation, Konfiguration, Entwicklung"><link rel="up" href="ch03.html" title="Kapitel 3. Features und Funktionen"><link rel="prev" href="ch03s06.html" title="3.6. Schweizer Kontenpläne"><link rel="next" href="ch03s08.html" title="3.8. Dateiverwaltung (Mini-DMS)"></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">3.7. Artikelklassifizierung</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch03s06.html">Zurück</a> </td><th width="60%" align="center">Kapitel 3. Features und Funktionen</th><td width="20%" align="right"> <a accesskey="n" href="ch03s08.html">Weiter</a></td></tr></table><hr></div><div class="sect1" title="3.7. Artikelklassifizierung"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="features.part_classification"></a>3.7. Artikelklassifizierung</h2></div></div></div><div class="sect2" title="3.7.1. Übersicht"><div class="titlepage"><div><div><h3 class="title"><a name="d0e6704"></a>3.7.1. Übersicht</h3></div></div></div><p>Die Klassifizierung von Artikeln dient einer weiteren
|
|
3 |
<title>3.7. Artikelklassifizierung</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 3.5.6: Installation, Konfiguration, Entwicklung"><link rel="up" href="ch03.html" title="Kapitel 3. Features und Funktionen"><link rel="prev" href="ch03s06.html" title="3.6. Schweizer Kontenpläne"><link rel="next" href="ch03s08.html" title="3.8. Dateiverwaltung (Mini-DMS)"></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">3.7. Artikelklassifizierung</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch03s06.html">Zurück</a> </td><th width="60%" align="center">Kapitel 3. Features und Funktionen</th><td width="20%" align="right"> <a accesskey="n" href="ch03s08.html">Weiter</a></td></tr></table><hr></div><div class="sect1" title="3.7. Artikelklassifizierung"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="features.part_classification"></a>3.7. Artikelklassifizierung</h2></div></div></div><div class="sect2" title="3.7.1. Übersicht"><div class="titlepage"><div><div><h3 class="title"><a name="d0e6515"></a>3.7.1. Übersicht</h3></div></div></div><p>Die Klassifizierung von Artikeln dient einer weiteren
|
|
4 | 4 |
Gliederung, um zum Beispiel den Einkauf vom Verkauf zu trennen, |
5 | 5 |
gekennzeichnet durch eine Beschreibung (z.B. "Einkauf") und ein Kürzel |
6 | 6 |
(z.B. "E"). Für jede Klassifizierung besteht eine Beschreibung und |
7 | 7 |
eine Abkürzung die normalerweise aus einem Zeichen besteht, kann aber |
8 | 8 |
auf mehrere Zeichen erweitert werden, falls zur Unterscheidung |
9 |
notwendig. Sinnvoll sind jedoch nur maximal 2 Zeichen.</p></div><div class="sect2" title="3.7.2. Basisklassifizierung"><div class="titlepage"><div><div><h3 class="title"><a name="d0e6709"></a>3.7.2. Basisklassifizierung</h3></div></div></div><p>Als Basisklassifizierungen gibt es</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Einkauf</p></li><li class="listitem"><p>Verkauf</p></li><li class="listitem"><p>Handelsware</p></li><li class="listitem"><p>Produktion</p></li><li class="listitem"><p>- keine - (diese wird bei einer Aktualisierung für alle
|
|
9 |
notwendig. Sinnvoll sind jedoch nur maximal 2 Zeichen.</p></div><div class="sect2" title="3.7.2. Basisklassifizierung"><div class="titlepage"><div><div><h3 class="title"><a name="d0e6520"></a>3.7.2. Basisklassifizierung</h3></div></div></div><p>Als Basisklassifizierungen gibt es</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Einkauf</p></li><li class="listitem"><p>Verkauf</p></li><li class="listitem"><p>Handelsware</p></li><li class="listitem"><p>Produktion</p></li><li class="listitem"><p>- keine - (diese wird bei einer Aktualisierung für alle
|
|
10 | 10 |
existierenden Artikel verwendet und ist gültig für Verkauf und |
11 | 11 |
Einkauf)</p></li></ul></div><p>Es können weitere Klassifizierungen angelegt werden. So kann es |
12 |
z.B. für separat auszuweisende Artikel folgende Klassen geben:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Lieferung (Logistik, Transport) mit Kürzel L</p></li><li class="listitem"><p>Material (Verpackungsmaterial) mit Kürzel M</p></li></ul></div></div><div class="sect2" title="3.7.3. Attribute"><div class="titlepage"><div><div><h3 class="title"><a name="d0e6739"></a>3.7.3. Attribute</h3></div></div></div><p>Bisher haben die Klassifizierungen folgende Attribute, die auch
|
|
12 |
z.B. für separat auszuweisende Artikel folgende Klassen geben:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Lieferung (Logistik, Transport) mit Kürzel L</p></li><li class="listitem"><p>Material (Verpackungsmaterial) mit Kürzel M</p></li></ul></div></div><div class="sect2" title="3.7.3. Attribute"><div class="titlepage"><div><div><h3 class="title"><a name="d0e6550"></a>3.7.3. Attribute</h3></div></div></div><p>Bisher haben die Klassifizierungen folgende Attribute, die auch
|
|
13 | 13 |
alle gleichzeitg gültig sein können</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>gültig für Verkauf - dieser Artikel kann im Verkauf genutzt |
14 | 14 |
werden</p></li><li class="listitem"><p>gültig für Einkauf - dieser Artikel kann im Einkauf genutzt |
15 | 15 |
werden</p></li><li class="listitem"><p>separat ausweisen - hierzu gibt es zur Dokumentengenerierung |
... | ... | |
19 | 19 |
pro separat auszuweisenden Klassifizierungen die Variable<span class="bold"><strong>< %separate_X_subtotal%></strong></span>, wobei X das |
20 | 20 |
Kürzel der Klassifizierung ist.</p><p>Im obigen Beispiel wäre das für Lieferkosten <span class="bold"><strong><%separate_L_subtotal%></strong></span> und für |
21 | 21 |
Verpackungsmaterial <span class="bold"><strong> |
22 |
<%separate_M_subtotal%></strong></span>.</p></div><div class="sect2" title="3.7.4. Zwei-Zeichen Abkürzung"><div class="titlepage"><div><div><h3 class="title"><a name="d0e6770"></a>3.7.4. Zwei-Zeichen Abkürzung</h3></div></div></div><p>Der Typ des Artikels und die Klassifizierung werden durch zwei
|
|
22 |
<%separate_M_subtotal%></strong></span>.</p></div><div class="sect2" title="3.7.4. Zwei-Zeichen Abkürzung"><div class="titlepage"><div><div><h3 class="title"><a name="d0e6581"></a>3.7.4. Zwei-Zeichen Abkürzung</h3></div></div></div><p>Der Typ des Artikels und die Klassifizierung werden durch zwei
|
|
23 | 23 |
Buchstaben dargestellt. Der erste Buchstabe ist eine Lokalisierung des |
24 | 24 |
Artikel-Typs ('P','A','S'), deutsch 'W', 'E', und 'D' für Ware |
25 | 25 |
Erzeugnis oder Dienstleistung und ggf. weiterer Typen.</p><p>Der zweite Buchstabe (und ggf. auch ein dritter, falls nötig) |
doc/html/ch03s08.html | ||
---|---|---|
1 | 1 |
<html><head> |
2 | 2 |
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
3 |
<title>3.8. Dateiverwaltung (Mini-DMS)</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 3.5.6: Installation, Konfiguration, Entwicklung"><link rel="up" href="ch03.html" title="Kapitel 3. Features und Funktionen"><link rel="prev" href="ch03s07.html" title="3.7. Artikelklassifizierung"><link rel="next" href="ch03s09.html" title="3.9. Webshop-Api"></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">3.8. Dateiverwaltung (Mini-DMS)</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch03s07.html">Zurück</a> </td><th width="60%" align="center">Kapitel 3. Features und Funktionen</th><td width="20%" align="right"> <a accesskey="n" href="ch03s09.html">Weiter</a></td></tr></table><hr></div><div class="sect1" title="3.8. Dateiverwaltung (Mini-DMS)"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="features.file_managment"></a>3.8. Dateiverwaltung (Mini-DMS)</h2></div></div></div><div class="sect2" title="3.8.1. Übersicht"><div class="titlepage"><div><div><h3 class="title"><a name="d0e6782"></a>3.8.1. Übersicht</h3></div></div></div><p>Parallel zum alten WebDAV gibt es ein Datei-Management-System,
|
|
3 |
<title>3.8. Dateiverwaltung (Mini-DMS)</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 3.5.6: Installation, Konfiguration, Entwicklung"><link rel="up" href="ch03.html" title="Kapitel 3. Features und Funktionen"><link rel="prev" href="ch03s07.html" title="3.7. Artikelklassifizierung"><link rel="next" href="ch03s09.html" title="3.9. Webshop-Api"></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">3.8. Dateiverwaltung (Mini-DMS)</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch03s07.html">Zurück</a> </td><th width="60%" align="center">Kapitel 3. Features und Funktionen</th><td width="20%" align="right"> <a accesskey="n" href="ch03s09.html">Weiter</a></td></tr></table><hr></div><div class="sect1" title="3.8. Dateiverwaltung (Mini-DMS)"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="features.file_managment"></a>3.8. Dateiverwaltung (Mini-DMS)</h2></div></div></div><div class="sect2" title="3.8.1. Übersicht"><div class="titlepage"><div><div><h3 class="title"><a name="d0e6593"></a>3.8.1. Übersicht</h3></div></div></div><p>Parallel zum alten WebDAV gibt es ein Datei-Management-System,
|
|
4 | 4 |
das Dateien verschiedenen Typs verwaltet. Dies können</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>aus ERP-Daten per LaTeX Template erzeugte |
5 | 5 |
PDF-Dokumente,</p></li><li class="listitem"><p>zu bestimmten ERP-Daten gehörende Anhangdateien |
6 | 6 |
unterschiedlichen Formats,</p></li><li class="listitem"><p>per Scanner eingelesene PDF-Dateien,</p></li><li class="listitem"><p>per E-Mail empfangene Dateianhänge unterschiedlichen |
7 |
Formats,</p></li><li class="listitem"><p>sowie speziel für Artikel hochgeladene Bilder sein.</p></li></ol></div><div class="screenshot"><div class="mediaobject"><img src="images/DMS-Overview.png"></div></div></div><div class="sect2" title="3.8.2. Struktur"><div class="titlepage"><div><div><h3 class="title"><a name="d0e6809"></a>3.8.2. Struktur</h3></div></div></div><p>Über eine vom Speichermedium unabhängige Zwischenschicht werden
|
|
7 |
Formats,</p></li><li class="listitem"><p>sowie speziel für Artikel hochgeladene Bilder sein.</p></li></ol></div><div class="screenshot"><div class="mediaobject"><img src="images/DMS-Overview.png"></div></div></div><div class="sect2" title="3.8.2. Struktur"><div class="titlepage"><div><div><h3 class="title"><a name="d0e6620"></a>3.8.2. Struktur</h3></div></div></div><p>Über eine vom Speichermedium unabhängige Zwischenschicht werden
|
|
8 | 8 |
die Dateien und ihre Versionen in der Datenbank verwaltet. Darunter |
9 | 9 |
können verschiedene Implementierungen (Backends) gleichzeitig |
10 | 10 |
existieren:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Dateisystem</p></li><li class="listitem"><p>WebDAV</p></li><li class="listitem"><p>Schnittstelle zu externen |
... | ... | |
23 | 23 |
für "attachment" und "image" nur die Quelle "uploaded". Für "document" |
24 | 24 |
gibt es auf jeden Fall die Quelle "created". Die Quellen "scanner" und |
25 | 25 |
"email" müssen derzeit in der Datenbank konfiguriert werden (siehe |
26 |
<a class="xref" href="ch03s08.html#file_management.dbconfig" title="3.8.4.2. Datenbank-Konfigurierung">Datenbank-Konfigurierung</a>).</p></div><div class="sect2" title="3.8.3. Anwendung"><div class="titlepage"><div><div><h3 class="title"><a name="d0e6861"></a>3.8.3. Anwendung</h3></div></div></div><p>Die Daten werden bei den ERP-Objekten als extra Reiter
|
|
26 |
<a class="xref" href="ch03s08.html#file_management.dbconfig" title="3.8.4.2. Datenbank-Konfigurierung">Datenbank-Konfigurierung</a>).</p></div><div class="sect2" title="3.8.3. Anwendung"><div class="titlepage"><div><div><h3 class="title"><a name="d0e6672"></a>3.8.3. Anwendung</h3></div></div></div><p>Die Daten werden bei den ERP-Objekten als extra Reiter
|
|
27 | 27 |
dargestellt. Eine Verkaufsrechnung z.B. hat die Reiter "Dokumente" und |
28 | 28 |
"Dateianhänge".</p><div class="screenshot"><div class="mediaobject"><img src="images/DMS-Anhaenge.png"></div></div><p>Bei den Dateianhängen wird immer nur die aktuelle Version einer |
29 | 29 |
Datei angezeigt. Wird eine Datei mit gleichem Namen hochgeladen, so |
... | ... | |
39 | 39 |
so sind diese z.B. bei Einkaufsrechnungen sichtbar:</p><div class="screenshot"><div class="mediaobject"><img src="images/DMS-Dokumente-Scanner.png"></div></div><p>Statt des Löschens wird hier die Datei zurück zur Quelle |
40 | 40 |
verschoben. Somit kann die Datei anschließend an ein anderes |
41 | 41 |
ERP-Objekt angehängt werden.</p><p>Derzeit sind "Titel" und "Beschreibung" noch nicht genutzt. Sie |
42 |
sind bisher nur bei Bildern relevant.</p></div><div class="sect2" title="3.8.4. Konfigurierung"><div class="titlepage"><div><div><h3 class="title"><a name="d0e6904"></a>3.8.4. Konfigurierung</h3></div></div></div><div class="sect3" title="3.8.4.1. Mandantenkonfiguration"><div class="titlepage"><div><div><h4 class="title"><a name="file_management.clientconfig"></a>3.8.4.1. Mandantenkonfiguration</h4></div></div></div><div class="sect4" title="3.8.4.1.1. Reiter "Features""><div class="titlepage"><div><div><h5 class="title"><a name="d0e6910"></a>3.8.4.1.1. Reiter "Features"</h5></div></div></div><p>Unter dem Reiter <span class="bold"><strong>Features</strong></span>
|
|
42 |
sind bisher nur bei Bildern relevant.</p></div><div class="sect2" title="3.8.4. Konfigurierung"><div class="titlepage"><div><div><h3 class="title"><a name="d0e6715"></a>3.8.4. Konfigurierung</h3></div></div></div><div class="sect3" title="3.8.4.1. Mandantenkonfiguration"><div class="titlepage"><div><div><h4 class="title"><a name="file_management.clientconfig"></a>3.8.4.1. Mandantenkonfiguration</h4></div></div></div><div class="sect4" title="3.8.4.1.1. Reiter "Features""><div class="titlepage"><div><div><h5 class="title"><a name="d0e6721"></a>3.8.4.1.1. Reiter "Features"</h5></div></div></div><p>Unter dem Reiter <span class="bold"><strong>Features</strong></span>
|
|
43 | 43 |
im Abschnitt Dateimanagement ist neben dem "alten" WebDAV das |
44 | 44 |
Dateimangement generell zu- und abschaltbar, sowie die Zuordnung |
45 | 45 |
der Dateitypen zu Backends. Die Löschbarkeit von Dateien, sowie |
46 | 46 |
die maximale Uploadgröße sind Backend-unabhängig</p><div class="screenshot"><div class="mediaobject"><img src="images/DMS-ClientConfig.png"></div></div><p>Die einzelnen Backends sind einzeln einschaltbar. |
47 | 47 |
Spezifische Backend-Konfigurierungen sind hier noch |
48 |
ergänzbar.</p></div><div class="sect4" title="3.8.4.1.2. Reiter "Allgemeine Dokumentenanhänge""><div class="titlepage"><div><div><h5 class="title"><a name="d0e6926"></a>3.8.4.1.2. Reiter "Allgemeine Dokumentenanhänge"</h5></div></div></div><p>Unter dem Reiter <span class="bold"><strong>Allgemeine
|
|
48 |
ergänzbar.</p></div><div class="sect4" title="3.8.4.1.2. Reiter "Allgemeine Dokumentenanhänge""><div class="titlepage"><div><div><h5 class="title"><a name="d0e6737"></a>3.8.4.1.2. Reiter "Allgemeine Dokumentenanhänge"</h5></div></div></div><p>Unter dem Reiter <span class="bold"><strong>Allgemeine
|
|
49 | 49 |
Dokumentenanhänge</strong></span> kann für alle ERP-Dokumente ( |
50 | 50 |
Angebote, Aufträge, Lieferscheine, Rechnungen im Verkauf und |
51 | 51 |
Einkauf ) allgemeingültige Anhänge hochgeladen werden.</p><div class="screenshot"><div class="mediaobject"><img src="images/DMS-Allgemeine-Dokumentenanhaenge.png"></div></div><p>Diese Anhänge werden beim Generieren von PDF-Dateien an die |
doc/html/ch03s09.html | ||
---|---|---|
1 | 1 |
<html><head> |
2 | 2 |
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
3 |
<title>3.9. Webshop-Api</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 3.5.6: Installation, Konfiguration, Entwicklung"><link rel="up" href="ch03.html" title="Kapitel 3. Features und Funktionen"><link rel="prev" href="ch03s08.html" title="3.8. Dateiverwaltung (Mini-DMS)"><link rel="next" href="ch03s10.html" title="3.10. ZUGFeRD Rechnungen"></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">3.9. Webshop-Api</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch03s08.html">Zurück</a> </td><th width="60%" align="center">Kapitel 3. Features und Funktionen</th><td width="20%" align="right"> <a accesskey="n" href="ch03s10.html">Weiter</a></td></tr></table><hr></div><div class="sect1" title="3.9. Webshop-Api"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e6960"></a>3.9. Webshop-Api</h2></div></div></div><p>Das Shopmodul bietet die Möglichkeit Onlineshopartikel und
|
|
3 |
<title>3.9. Webshop-Api</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 3.5.6: Installation, Konfiguration, Entwicklung"><link rel="up" href="ch03.html" title="Kapitel 3. Features und Funktionen"><link rel="prev" href="ch03s08.html" title="3.8. Dateiverwaltung (Mini-DMS)"><link rel="next" href="ch03s10.html" title="3.10. ZUGFeRD Rechnungen"></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">3.9. Webshop-Api</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch03s08.html">Zurück</a> </td><th width="60%" align="center">Kapitel 3. Features und Funktionen</th><td width="20%" align="right"> <a accesskey="n" href="ch03s10.html">Weiter</a></td></tr></table><hr></div><div class="sect1" title="3.9. Webshop-Api"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e6771"></a>3.9. Webshop-Api</h2></div></div></div><p>Das Shopmodul bietet die Möglichkeit Onlineshopartikel und
|
|
4 | 4 |
Onlineshopbestellungen zu verwalten und zu bearbeiten.</p><p>Es ist Multishopfähig, d.h. Artikel können mehreren oder |
5 | 5 |
unterschiedlichen Shops zugeordnet werden. Bestellungen können aus |
6 | 6 |
mehreren Shops geholt werden.</p><p>Zur Zeit bietet das Modul nur einen Connector zur REST-Api von |
7 | 7 |
Shopware. Weitere Connectoren können dazu programmiert und eingerichtet |
8 |
werden.</p><div class="sect2" title="3.9.1. Rechte für die Webshopapi"><div class="titlepage"><div><div><h3 class="title"><a name="d0e6969"></a>3.9.1. Rechte für die Webshopapi</h3></div></div></div><p>In der Administration können folgende Rechte vergeben
|
|
9 |
werden</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Webshopartikel anlegen und bearbeiten</p></li><li class="listitem"><p>Shopbestellungen holen und bearbeiten</p></li><li class="listitem"><p>Shop anlegen und bearbeiten</p></li></ul></div></div><div class="sect2" title="3.9.2. Konfiguration"><div class="titlepage"><div><div><h3 class="title"><a name="d0e6984"></a>3.9.2. Konfiguration</h3></div></div></div><p>Unter System->Webshops können Shops angelegt und konfiguriert
|
|
10 |
werden</p><div class="mediaobject"><img src="images/Shop_Listing.png"></div></div><div class="sect2" title="3.9.3. Webshopartikel"><div class="titlepage"><div><div><h3 class="title"><a name="d0e6992"></a>3.9.3. Webshopartikel</h3></div></div></div><div class="sect3" title="3.9.3.1. Shopvariablenreiter in Artikelstammdaten"><div class="titlepage"><div><div><h4 class="title"><a name="d0e6995"></a>3.9.3.1. Shopvariablenreiter in Artikelstammdaten</h4></div></div></div><p>Mit dem Recht "Shopartikel anlegen und bearbeiten" und des
|
|
8 |
werden.</p><div class="sect2" title="3.9.1. Rechte für die Webshopapi"><div class="titlepage"><div><div><h3 class="title"><a name="d0e6780"></a>3.9.1. Rechte für die Webshopapi</h3></div></div></div><p>In der Administration können folgende Rechte vergeben
|
|
9 |
werden</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Webshopartikel anlegen und bearbeiten</p></li><li class="listitem"><p>Shopbestellungen holen und bearbeiten</p></li><li class="listitem"><p>Shop anlegen und bearbeiten</p></li></ul></div></div><div class="sect2" title="3.9.2. Konfiguration"><div class="titlepage"><div><div><h3 class="title"><a name="d0e6795"></a>3.9.2. Konfiguration</h3></div></div></div><p>Unter System->Webshops können Shops angelegt und konfiguriert
|
|
10 |
werden</p><div class="mediaobject"><img src="images/Shop_Listing.png"></div></div><div class="sect2" title="3.9.3. Webshopartikel"><div class="titlepage"><div><div><h3 class="title"><a name="d0e6803"></a>3.9.3. Webshopartikel</h3></div></div></div><div class="sect3" title="3.9.3.1. Shopvariablenreiter in Artikelstammdaten"><div class="titlepage"><div><div><h4 class="title"><a name="d0e6806"></a>3.9.3.1. Shopvariablenreiter in Artikelstammdaten</h4></div></div></div><p>Mit dem Recht "Shopartikel anlegen und bearbeiten" und des
|
|
11 | 11 |
Markers <span class="bold"><strong>"Shopartikel" in den Basisdaten |
12 | 12 |
</strong></span>zeigt sich der Reiter "Shopvariablen" in den |
13 | 13 |
Artikelstammdaten. Hier können jetzt die Artikel mit |
... | ... | |
16 | 16 |
Stelle können auch beliebig viele Bilder dem Shopartikel zugeordnet |
17 | 17 |
werden. Artikelbilder gelten für alle Shops.</p><div class="mediaobject"><img src="images/Shop_Artikel.png"></div><p>Die Artikelgruppen werden direkt vom Shopsystem geholt somit |
18 | 18 |
ist es möglich einen Artikel auch mehreren Gruppen |
19 |
zuzuordenen</p></div><div class="sect3" title="3.9.3.2. Shopartikelliste"><div class="titlepage"><div><div><h4 class="title"><a name="d0e7008"></a>3.9.3.2. Shopartikelliste</h4></div></div></div><p>Unter dem Menu Webshop->Webshop Artikel hat man nochmal
|
|
19 |
zuzuordenen</p></div><div class="sect3" title="3.9.3.2. Shopartikelliste"><div class="titlepage"><div><div><h4 class="title"><a name="d0e6819"></a>3.9.3.2. Shopartikelliste</h4></div></div></div><p>Unter dem Menu Webshop->Webshop Artikel hat man nochmal
|
|
20 | 20 |
eine Gesamtübersicht. Von hier aus ist es möglich Artikel im Stapel |
21 | 21 |
unter verschiedenen Kriterien <alles><nur Preis><nur |
22 | 22 |
Bestand><Preis und Bestand> an die jeweiligen Shops |
23 |
hochzuladen.</p><div class="mediaobject"><img src="images/Shop_Artikel_Listing.png"></div></div></div><div class="sect2" title="3.9.4. Bestellimport"><div class="titlepage"><div><div><h3 class="title"><a name="d0e7016"></a>3.9.4. Bestellimport</h3></div></div></div><p>Unter dem Menupunkt Webshop->Webshop Import öffnet sich die
|
|
23 |
hochzuladen.</p><div class="mediaobject"><img src="images/Shop_Artikel_Listing.png"></div></div></div><div class="sect2" title="3.9.4. Bestellimport"><div class="titlepage"><div><div><h3 class="title"><a name="d0e6827"></a>3.9.4. Bestellimport</h3></div></div></div><p>Unter dem Menupunkt Webshop->Webshop Import öffnet sich die
|
|
24 | 24 |
Bestellimportsliste. Hier ist sind Möglichkeiten gegeben Neue |
25 | 25 |
Bestellungen vom Shop abzuholen, geholte Bestellungen im Stapel oder |
26 | 26 |
einzeln als Auftrag zu transferieren. Die Liste kann nach |
... | ... | |
52 | 52 |
auch der Grund für die Auftragssperre sein.</p></li><li class="listitem"><p>Die Buttons "Auftrag erstellen" und "Kunde mit |
53 | 53 |
Rechnungsadresse überschreiben" zeigen sich erst, wenn ein Kunde |
54 | 54 |
aus dem Listing ausgewählt ist.</p></li><li class="listitem"><p>Es ist aber möglich die Shopbestellung zu löschen.</p></li><li class="listitem"><p>Ist eine Bestellung schon übernommen, zeigen sich an dieser |
55 |
Stelle, die dazugehörigen Belegverknüpfungen.</p></li></ul></div></div><div class="sect2" title="3.9.5. Mapping der Daten"><div class="titlepage"><div><div><h3 class="title"><a name="d0e7069"></a>3.9.5. Mapping der Daten</h3></div></div></div><p>Das Mapping der kivitendo Daten mit den Shopdaten geschieht in
|
|
55 |
Stelle, die dazugehörigen Belegverknüpfungen.</p></li></ul></div></div><div class="sect2" title="3.9.5. Mapping der Daten"><div class="titlepage"><div><div><h3 class="title"><a name="d0e6880"></a>3.9.5. Mapping der Daten</h3></div></div></div><p>Das Mapping der kivitendo Daten mit den Shopdaten geschieht in
|
|
56 | 56 |
der Datei SL/ShopConnector/<SHOPCONNECTORNAME>.pm |
57 | 57 |
z.B.:SL/ShopConnector/Shopware.pm</p><p>In dieser Datei gibt es einen Bereich wo die Bestellpostionen, |
58 | 58 |
die Bestellkopfdaten und die Artikeldaten gemapt werden. In dieser |
doc/html/ch03s10.html | ||
---|---|---|
35 | 35 |
</p></div><div class="sect2" title="3.10.3. Erstellen von ZUGFeRD Rechnungen in Kivitendo"><div class="titlepage"><div><div><h3 class="title"><a name="features.zugferd.create_zugferd_bills"></a>3.10.3. Erstellen von ZUGFeRD Rechnungen in Kivitendo</h3></div></div></div><p>Für die Erstellung von ZUGFeRD Rechnungen bedarf es in |
36 | 36 |
kivitendo zwei Dinge:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Die Erstellung muss in der Mandantenkonfiguration |
37 | 37 |
aktiviert sein</p></li><li class="listitem"><p>Beim mindestens einem Bankkonto muss die Option |
38 |
„Nutzung von ZUGFeRD“ aktiviert sein</p></li></ol></div><div class="sect3" title="3.10.3.1. Mandantenkonfiguration"><div class="titlepage"><div><div><h4 class="title"><a name="d0e7116"></a>3.10.3.1. Mandantenkonfiguration</h4></div></div></div><p>Die Einstellung für die Erstellung von ZUGFeRD Rechnungen
|
|
38 |
„Nutzung von ZUGFeRD“ aktiviert sein</p></li></ol></div><div class="sect3" title="3.10.3.1. Mandantenkonfiguration"><div class="titlepage"><div><div><h4 class="title"><a name="d0e6927"></a>3.10.3.1. Mandantenkonfiguration</h4></div></div></div><p>Die Einstellung für die Erstellung von ZUGFeRD Rechnungen
|
|
39 | 39 |
erfolgt unter „System“ → „Mandatenkonfiguration“ → „Features“. |
40 | 40 |
Im Abschnitt „Einkauf und Verkauf“ finden Sie die Einstellung |
41 | 41 |
„Verkaufsrechnungen mit ZUGFeRD-Daten erzeugen“. |
42 | 42 |
Hier besteht die Auswahl zwischen:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>ZUGFeRD-Rechnungen erzeugen</p></li><li class="listitem"><p>ZUGFeRD-Rechnungen im Testmodus erzeugen</p></li><li class="listitem"><p>Keine ZUGFeRD Rechnungen erzeugen</p></li></ul></div><p>Rechnungen die als PDF erzeugt werden, werden je nach |
43 |
Einstellung nun im ZUGFeRD Format ausgegeben.</p></div><div class="sect3" title="3.10.3.2. Konfiguration der Bankkonten"><div class="titlepage"><div><div><h4 class="title"><a name="d0e7133"></a>3.10.3.2. Konfiguration der Bankkonten</h4></div></div></div><p>Unter „System → Bankkonten“ muss bei mindestens einem
|
|
43 |
Einstellung nun im ZUGFeRD Format ausgegeben.</p></div><div class="sect3" title="3.10.3.2. Konfiguration der Bankkonten"><div class="titlepage"><div><div><h4 class="title"><a name="d0e6944"></a>3.10.3.2. Konfiguration der Bankkonten</h4></div></div></div><p>Unter „System → Bankkonten“ muss bei mindestens einem
|
|
44 | 44 |
Bankkonto die Option „Nutzung mit ZUGFeRD“ auf „Ja“ gestellt |
45 | 45 |
werden.</p></div></div><div class="sect2" title="3.10.4. Einlesen von ZUGFeRD Rechnungen in Kivitendo"><div class="titlepage"><div><div><h3 class="title"><a name="features.zugferd.read_zugferd_bills"></a>3.10.4. Einlesen von ZUGFeRD Rechnungen in Kivitendo</h3></div></div></div><p>Es lassen sich auch Rechnungen von Kreditoren, die im |
46 | 46 |
ZUGFeRD Format erstellt wurden, nach Kivitendo importieren. |
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 3.5.6: Installation, Konfiguration, Entwicklung"><link rel="up" href="index.html" title="kivitendo 3.5.6: Installation, Konfiguration, Entwicklung"><link rel="prev" href="ch03s10.html" title="3.10. ZUGFeRD Rechnungen"><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="ch03s10.html">Zurück</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ch04s02.html">Weiter</a></td></tr></table><hr></div><div class="chapter" title="Kapitel 4. Entwicklerdokumentation"><div class="titlepage"><div><div><h2 class="title"><a name="d0e7152"></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="d0e7158"></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 3.5.6: Installation, Konfiguration, Entwicklung"><link rel="up" href="index.html" title="kivitendo 3.5.6: Installation, Konfiguration, Entwicklung"><link rel="prev" href="ch03s10.html" title="3.10. ZUGFeRD Rechnungen"><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="ch03s10.html">Zurück</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ch04s02.html">Weiter</a></td></tr></table><hr></div><div class="chapter" title="Kapitel 4. Entwicklerdokumentation"><div class="titlepage"><div><div><h2 class="title"><a name="d0e6963"></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="d0e6969"></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="d0e7259"></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="d0e7070"></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="d0e7292"></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="d0e7103"></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="d0e7356"></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="d0e7167"></a>4.1.3.1. $::form</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Ist ein Objekt der Klasse
|
|
66 | 66 |
"<code class="classname">Form</code>"</p></li><li class="listitem"><p>Wird nach jedem Request gelöscht</p></li><li class="listitem"><p>Muss auch in Tests und Konsolenscripts vorhanden |
67 | 67 |
sein.</p></li><li class="listitem"><p>Enthält am Anfang eines Requests die Requestparameter vom |
68 | 68 |
User</p></li><li class="listitem"><p>Kann zwar intern über Requestgrenzen ein Datenbankhandle |
... | ... | |
110 | 110 |
push @{ $form->{TEMPLATE_ARRAYS}{number} }, $form->{"partnumber_$i"}; |
111 | 111 |
push @{ $form->{TEMPLATE_ARRAYS}{description} }, $form->{"description_$i"}; |
112 | 112 |
# ... |
113 |
}</pre></div><div class="sect3" title="4.1.3.2. %::myconfig"><div class="titlepage"><div><div><h4 class="title"><a name="d0e7440"></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="d0e7251"></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 Datumsformat dateformat und |
... | ... | |
122 | 122 |
überwiegend die Daten, die sich unter <span class="guimenu">Programm</span> |
123 | 123 |
-> <span class="guimenuitem">Einstellungen</span> befinden, bzw. die |
124 | 124 |
Informationen über den Benutzer die über die |
125 |
Administrator-Schnittstelle eingegeben wurden.</p></div><div class="sect3" title="4.1.3.3. $::locale"><div class="titlepage"><div><div><h4 class="title"><a name="d0e7479"></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 eingegeben wurden.</p></div><div class="sect3" title="4.1.3.3. $::locale"><div class="titlepage"><div><div><h4 class="title"><a name="d0e7290"></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="d0e7497"></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="d0e7308"></a>4.1.3.4. $::lxdebug</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Objekt der Klasse "LXDebug"</p></li><li class="listitem"><p>Wird global gecached</p></li><li class="listitem"><p>Muss immer verfügbar sein, in nahezu allen
|
|
129 | 129 |
Funktionen</p></li></ul></div><p> |
130 | 130 |
<code class="varname">$::lxdebug</code> stellt Debuggingfunktionen |
131 | 131 |
bereit, wie "<code class="function">enter_sub</code>" und |
... | ... | |
135 | 135 |
"<code class="function">message</code>" und "<code class="function">dump</code>" mit |
136 | 136 |
denen man flott Informationen ins Log (tmp/kivitendo-debug.log) |
137 | 137 |
packen kann.</p><p>Beispielsweise so:</p><pre class="programlisting">$main::lxdebug->message(0, 'Meine Konfig:' . Dumper (%::myconfig)); |
138 |
$main::lxdebug->message(0, 'Wer bin ich? Kunde oder Lieferant:' . $form->{vc});</pre></div><div class="sect3" title="4.1.3.5. $::auth"><div class="titlepage"><div><div><h4 class="title"><a name="d0e7534"></a>4.1.3.5. $::auth</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Objekt der Klasse "SL::Auth"</p></li><li class="listitem"><p>Wird global gecached</p></li><li class="listitem"><p>Hat eine permanente DB Verbindung zur Authdatenbank</p></li><li class="listitem"><p>Wird nach jedem Request resettet.</p></li></ul></div><p>
|
|
138 |
$main::lxdebug->message(0, 'Wer bin ich? Kunde oder Lieferant:' . $form->{vc});</pre></div><div class="sect3" title="4.1.3.5. $::auth"><div class="titlepage"><div><div><h4 class="title"><a name="d0e7345"></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 |
... | ... | |
144 | 144 |
Dessen Einstellungen können über |
145 | 145 |
<code class="literal">$::auth->client</code> abgefragt werden; Rückgabewert |
146 | 146 |
ist ein Hash mit den Werten aus der Tabelle |
147 |
<code class="literal">auth.clients</code>.</p></div><div class="sect3" title="4.1.3.6. $::lx_office_conf"><div class="titlepage"><div><div><h4 class="title"><a name="d0e7563"></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
|
|
147 |
<code class="literal">auth.clients</code>.</p></div><div class="sect3" title="4.1.3.6. $::lx_office_conf"><div class="titlepage"><div><div><h4 class="title"><a name="d0e7374"></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
|
|
148 | 148 |
"<code class="classname">SL::LxOfficeConf</code>"</p></li><li class="listitem"><p>Global gecached</p></li><li class="listitem"><p>Repräsentation der |
149 | 149 |
<code class="filename">config/kivitendo.conf[.default]</code>-Dateien</p></li></ul></div><p>Globale Konfiguration. Configdateien werden zum Start gelesen |
150 | 150 |
und danach nicht mehr angefasst. Es ist derzeit nicht geplant, dass |
... | ... | |
154 | 154 |
file_name = /tmp/kivitendo-debug.log</pre><p>ist der Key <code class="varname">file</code> im Programm als |
155 | 155 |
<code class="varname">$::lx_office_conf->{debug}{file}</code> |
156 | 156 |
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 |
157 |
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="d0e7599"></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
|
|
157 |
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="d0e7410"></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
|
|
158 | 158 |
"<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>, |
159 | 159 |
speichert aber Daten die von der Instanz abhängig sind. Eine Instanz |
160 | 160 |
ist hier eine Mandantendatenbank. Beispielsweise überprüft |
161 | 161 |
</p><pre class="programlisting">$::instance_conf->get_inventory_system eq 'perpetual'</pre><p> |
162 |
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="d0e7620"></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
|
|
162 |
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="d0e7431"></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
|
|
163 | 163 |
"<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 |
164 | 164 |
Server</p></li></ul></div><p>Der dritte Punkt ist auch der einzige Grund warum das Objekt |
165 | 165 |
global gespeichert wird. Wird vermutlich irgendwann in einem anderen |
166 |
Objekt untergebracht.</p></div><div class="sect3" title="4.1.3.9. $::request"><div class="titlepage"><div><div><h4 class="title"><a name="d0e7638"></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>
|
|
166 |
Objekt untergebracht.</p></div><div class="sect3" title="4.1.3.9. $::request"><div class="titlepage"><div><div><h4 class="title"><a name="d0e7449"></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>
|
|
167 | 167 |
<code class="varname">$::request</code> ist ein generischer Platz um |
168 | 168 |
Daten "für den aktuellen Request" abzulegen. Sollte nicht für action |
169 | 169 |
at a distance benutzt werden, sondern um lokales memoizing zu |
... | ... | |
176 | 176 |
<code class="varname">$::request</code> |
177 | 177 |
</p></li><li class="listitem"><p>Muss ich von anderen Teilen des Programms lesend drauf |
178 | 178 |
zugreifen? Dann <code class="varname">$::request</code>, aber Zugriff über |
179 |
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="d0e7680"></a>4.1.4. Ehemalige globale Variablen</h3></div></div></div><p>Die folgenden Variablen waren einmal im Programm, und wurden
|
|
180 |
entfernt.</p><div class="sect3" title="4.1.4.1. $::cgi"><div class="titlepage"><div><div><h4 class="title"><a name="d0e7685"></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
|
|
179 |
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="d0e7491"></a>4.1.4. Ehemalige globale Variablen</h3></div></div></div><p>Die folgenden Variablen waren einmal im Programm, und wurden
|
|
180 |
entfernt.</p><div class="sect3" title="4.1.4.1. $::cgi"><div class="titlepage"><div><div><h4 class="title"><a name="d0e7496"></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
|
|
181 | 181 |
Klassenfunktionen funktionieren</p></li><li class="listitem"><p>Aufruf als Klasse erzeugt Dummyobjekt was im |
182 | 182 |
Klassennamespace gehalten wird und über Requestgrenzen |
183 | 183 |
leaked</p></li><li class="listitem"><p>liegt jetzt unter |
184 | 184 |
<code class="varname">$::request->{cgi}</code> |
185 |
</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="d0e7701"></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
|
|
185 |
</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="d0e7512"></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
|
|
186 | 186 |
ein paar hundert mal pro Request eine Liste der Einheiten |
187 | 187 |
brauchen, und de als Parameter durch einen Riesenstack von |
188 | 188 |
Funktionen geschleift werden müssten.</p></li><li class="listitem"><p>Liegt jetzt unter |
189 | 189 |
<code class="varname">$::request->{cache}{all_units}</code> |
190 | 190 |
</p></li><li class="listitem"><p>Wird nur in |
191 | 191 |
<code class="function">AM->retrieve_all_units()</code> gesetzt oder |
192 |
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="d0e7720"></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
|
|
192 |
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="d0e7531"></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
|
|
193 | 193 |
abzufangen.</p></li><li class="listitem"><p>Wurde entfernt, weil callsub nur einen Bruchteil der |
194 | 194 |
möglichen Rekursioenen darstellt, und da nie welche |
195 | 195 |
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="ch03s10.html">Zurück</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="ch04s02.html">Weiter</a></td></tr><tr><td width="40%" align="left" valign="top">3.10. ZUGFeRD Rechnungen </td><td width="20%" align="center"><a accesskey="h" href="index.html">Zum Anfang</a></td><td width="40%" align="right" valign="top"> 4.2. Entwicklung unter FastCGI</td></tr></table></div></body></html> |
doc/html/index.html | ||
---|---|---|
2 | 2 |
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
3 | 3 |
<title>kivitendo 3.5.6: 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 3.5.6: 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 3.5.6: Installation, Konfiguration, |
4 | 4 |
Entwicklung</th></tr><tr><td width="20%" align="left"> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ch01.html">Weiter</a></td></tr></table><hr></div><div lang="de" class="book" title="kivitendo 3.5.6: Installation, Konfiguration, Entwicklung"><div class="titlepage"><div><div><h1 class="title"><a name="kivitendo-documentation"></a>kivitendo 3.5.6: Installation, Konfiguration, |
5 |
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#Installation-%C3%9Cbersicht">2.1. Übersicht</a></span></dt><dt><span class="sect1"><a href="ch02s02.html">2.2. Benötigte Software und Pakete</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s02.html#Betriebssystem">2.2.1. Betriebssystem</a></span></dt><dt><span class="sect2"><a href="ch02s02.html#Pakete">2.2.2. Benötigte Perl-Pakete installieren</a></span></dt><dt><span class="sect2"><a href="ch02s02.html#d0e649">2.2.3. Andere Pakete installieren</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s03.html">2.3. Manuelle Installation des Programmpaketes</a></span></dt><dt><span class="sect1"><a href="ch02s04.html">2.4. kivitendo-Konfigurationsdatei</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s04.html#config.config-file.introduction">2.4.1. Einführung</a></span></dt><dt><span class="sect2"><a href="ch02s04.html#config.config-file.sections-parameters">2.4.2. Abschnitte und Parameter</a></span></dt><dt><span class="sect2"><a href="ch02s04.html#config.config-file.prior-versions">2.4.3. Versionen vor 2.6.3</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s05.html">2.5. Anpassung der PostgreSQL-Konfiguration</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s05.html#Zeichens%C3%A4tze-die-Verwendung-von-UTF-8">2.5.1. Zeichensätze/die Verwendung von Unicode/UTF-8</a></span></dt><dt><span class="sect2"><a href="ch02s05.html#%C3%84nderungen-an-Konfigurationsdateien">2.5.2. Änderungen an Konfigurationsdateien</a></span></dt><dt><span class="sect2"><a href="ch02s05.html#Erweiterung-f%C3%BCr-servergespeicherte-Prozeduren">2.5.3. Erweiterung für servergespeicherte Prozeduren</a></span></dt><dt><span class="sect2"><a href="ch02s05.html#Erweiterung-f%C3%BCr-trigram">2.5.4. Erweiterung für Trigram Prozeduren</a></span></dt><dt><span class="sect2"><a href="ch02s05.html#Datenbankbenutzer-anlegen">2.5.5. Datenbankbenutzer anlegen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s06.html">2.6. Webserver-Konfiguration</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s06.html#d0e1129">2.6.1. Grundkonfiguration mittels CGI</a></span></dt><dt><span class="sect2"><a href="ch02s06.html#Apache-Konfiguration.FCGI">2.6.2. Konfiguration für FastCGI/FCGI</a></span></dt><dt><span class="sect2"><a href="ch02s06.html#d0e1283">2.6.3. Authentifizierung mittels HTTP Basic Authentication</a></span></dt><dt><span class="sect2"><a href="ch02s06.html#d0e1299">2.6.4. Aktivierung von mod_rewrite/directory_match für git basierte Installationen</a></span></dt><dt><span class="sect2"><a href="ch02s06.html#d0e1313">2.6.5. Weitergehende Konfiguration</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s07.html">2.7. Der Task-Server</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s07.html#Konfiguration-des-Task-Servers">2.7.1. Verfügbare und notwendige Konfigurationsoptionen</a></span></dt><dt><span class="sect2"><a href="ch02s07.html#Konfiguration-der-Mandanten-fuer-den-Task-Servers">2.7.2. Konfiguration der Mandanten für den Task-Server</a></span></dt><dt><span class="sect2"><a href="ch02s07.html#Einbinden-in-den-Boot-Prozess">2.7.3. Automatisches Starten des Task-Servers beim Booten</a></span></dt><dt><span class="sect2"><a href="ch02s07.html#Prozesskontrolle">2.7.4. Wie der Task-Server gestartet und beendet wird</a></span></dt><dt><span class="sect2"><a href="ch02s07.html#Tasks konfigurieren">2.7.5. Exemplarische Konfiguration eines Hintergrund-Jobs, der die Jahreszahl in allen Nummernkreisen zum Jahreswechsel erhöht</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s08.html">2.8. Benutzerauthentifizierung und Administratorpasswort</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s08.html#Grundlagen-zur-Benutzerauthentifizierung">2.8.1. Grundlagen zur Benutzerauthentifizierung</a></span></dt><dt><span class="sect2"><a href="ch02s08.html#Administratorpasswort">2.8.2. Administratorpasswort</a></span></dt><dt><span class="sect2"><a href="ch02s08.html#Authentifizierungsdatenbank">2.8.3. Authentifizierungsdatenbank</a></span></dt><dt><span class="sect2"><a href="ch02s08.html#Passwort%C3%BCberpr%C3%BCfung">2.8.4. Passwortüberprüfung</a></span></dt><dt><span class="sect2"><a href="ch02s08.html#Name-des-Session-Cookies">2.8.5. Name des Session-Cookies</a></span></dt><dt><span class="sect2"><a href="ch02s08.html#Anlegen-der-Authentifizierungsdatenbank">2.8.6. Anlegen der Authentifizierungsdatenbank</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s09.html">2.9. Mandanten-, Benutzer- und Gruppenverwaltung</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s09.html#Zusammenh%C3%A4nge">2.9.1. Zusammenhänge</a></span></dt><dt><span class="sect2"><a href="ch02s09.html#Mandanten-Benutzer-Gruppen">2.9.2. Mandanten, Benutzer und Gruppen</a></span></dt><dt><span class="sect2"><a href="ch02s09.html#Datenbanken-anlegen">2.9.3. Datenbanken anlegen</a></span></dt><dt><span class="sect2"><a href="ch02s09.html#Gruppen-anlegen">2.9.4. Gruppen anlegen</a></span></dt><dt><span class="sect2"><a href="ch02s09.html#Benutzer-anlegen">2.9.5. Benutzer anlegen</a></span></dt><dt><span class="sect2"><a href="ch02s09.html#Mandanten-anlegen">2.9.6. Mandanten anlegen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s10.html">2.10. Drucker- und Systemverwaltung</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s10.html#Druckeradministration">2.10.1. Druckeradministration</a></span></dt><dt><span class="sect2"><a href="ch02s10.html#System">2.10.2. System sperren / entsperren</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s11.html">2.11. E-Mail-Versand aus kivitendo heraus</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s11.html#config.sending-email.sendmail">2.11.1. Versand über lokalen E-Mail-Server</a></span></dt><dt><span class="sect2"><a href="ch02s11.html#config.sending-email.smtp">2.11.2. Versand über einen SMTP-Server</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s12.html">2.12. Drucken mit kivitendo</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s12.html#Vorlagenverzeichnis-anlegen">2.12.1. Vorlagenverzeichnis anlegen</a></span></dt><dt><span class="sect2"><a href="ch02s12.html#Vorlagen-RB">2.12.2. Der Druckvorlagensatz RB</a></span></dt><dt><span class="sect2"><a href="ch02s12.html#f-tex">2.12.3. f-tex</a></span></dt><dt><span class="sect2"><a href="ch02s12.html#Vorlagen-rev-odt">2.12.4. Der Druckvorlagensatz rev-odt</a></span></dt><dt><span class="sect2"><a href="ch02s12.html#allgemeine-hinweise-zu-latex">2.12.5. Allgemeine Hinweise zu LaTeX Vorlagen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s13.html">2.13. OpenDocument-Vorlagen</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s13.html#d0e2609">2.13.1. OpenDocument (odt) Druckvorlagen mit Makros</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s14.html">2.14. Nomenklatur</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s14.html#booking.dates">2.14.1. Datum bei Buchungen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s15.html">2.15. Konfiguration zur Einnahmenüberschussrechnung/Bilanzierung:
|
|
5 |
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#Installation-%C3%9Cbersicht">2.1. Übersicht</a></span></dt><dt><span class="sect1"><a href="ch02s02.html">2.2. Benötigte Software und Pakete</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s02.html#Betriebssystem">2.2.1. Betriebssystem</a></span></dt><dt><span class="sect2"><a href="ch02s02.html#Pakete">2.2.2. Benötigte Perl-Pakete installieren</a></span></dt><dt><span class="sect2"><a href="ch02s02.html#d0e649">2.2.3. Andere Pakete installieren</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s03.html">2.3. Manuelle Installation des Programmpaketes</a></span></dt><dt><span class="sect1"><a href="ch02s04.html">2.4. kivitendo-Konfigurationsdatei</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s04.html#config.config-file.introduction">2.4.1. Einführung</a></span></dt><dt><span class="sect2"><a href="ch02s04.html#config.config-file.sections-parameters">2.4.2. Abschnitte und Parameter</a></span></dt><dt><span class="sect2"><a href="ch02s04.html#config.config-file.prior-versions">2.4.3. Versionen vor 2.6.3</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s05.html">2.5. Anpassung der PostgreSQL-Konfiguration</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s05.html#Zeichens%C3%A4tze-die-Verwendung-von-UTF-8">2.5.1. Zeichensätze/die Verwendung von Unicode/UTF-8</a></span></dt><dt><span class="sect2"><a href="ch02s05.html#%C3%84nderungen-an-Konfigurationsdateien">2.5.2. Änderungen an Konfigurationsdateien</a></span></dt><dt><span class="sect2"><a href="ch02s05.html#Erweiterung-f%C3%BCr-servergespeicherte-Prozeduren">2.5.3. Erweiterung für servergespeicherte Prozeduren</a></span></dt><dt><span class="sect2"><a href="ch02s05.html#Erweiterung-f%C3%BCr-trigram">2.5.4. Erweiterung für Trigram Prozeduren</a></span></dt><dt><span class="sect2"><a href="ch02s05.html#Datenbankbenutzer-anlegen">2.5.5. Datenbankbenutzer anlegen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s06.html">2.6. Webserver-Konfiguration</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s06.html#d0e1129">2.6.1. Grundkonfiguration mittels CGI</a></span></dt><dt><span class="sect2"><a href="ch02s06.html#Apache-Konfiguration.FCGI">2.6.2. Konfiguration für FastCGI/FCGI</a></span></dt><dt><span class="sect2"><a href="ch02s06.html#d0e1283">2.6.3. Authentifizierung mittels HTTP Basic Authentication</a></span></dt><dt><span class="sect2"><a href="ch02s06.html#d0e1299">2.6.4. Aktivierung von mod_rewrite/directory_match für git basierte Installationen</a></span></dt><dt><span class="sect2"><a href="ch02s06.html#d0e1313">2.6.5. Weitergehende Konfiguration</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s07.html">2.7. Der Task-Server</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s07.html#Konfiguration-des-Task-Servers">2.7.1. Verfügbare und notwendige Konfigurationsoptionen</a></span></dt><dt><span class="sect2"><a href="ch02s07.html#Konfiguration-der-Mandanten-fuer-den-Task-Servers">2.7.2. Konfiguration der Mandanten für den Task-Server</a></span></dt><dt><span class="sect2"><a href="ch02s07.html#Einbinden-in-den-Boot-Prozess">2.7.3. Automatisches Starten des Task-Servers beim Booten</a></span></dt><dt><span class="sect2"><a href="ch02s07.html#Prozesskontrolle">2.7.4. Wie der Task-Server gestartet und beendet wird</a></span></dt><dt><span class="sect2"><a href="ch02s07.html#Tasks konfigurieren">2.7.5. Exemplarische Konfiguration eines Hintergrund-Jobs, der die Jahreszahl in allen Nummernkreisen zum Jahreswechsel erhöht</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s08.html">2.8. Benutzerauthentifizierung und Administratorpasswort</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s08.html#Grundlagen-zur-Benutzerauthentifizierung">2.8.1. Grundlagen zur Benutzerauthentifizierung</a></span></dt><dt><span class="sect2"><a href="ch02s08.html#Administratorpasswort">2.8.2. Administratorpasswort</a></span></dt><dt><span class="sect2"><a href="ch02s08.html#Authentifizierungsdatenbank">2.8.3. Authentifizierungsdatenbank</a></span></dt><dt><span class="sect2"><a href="ch02s08.html#Passwort%C3%BCberpr%C3%BCfung">2.8.4. Passwortüberprüfung</a></span></dt><dt><span class="sect2"><a href="ch02s08.html#Name-des-Session-Cookies">2.8.5. Name des Session-Cookies</a></span></dt><dt><span class="sect2"><a href="ch02s08.html#Anlegen-der-Authentifizierungsdatenbank">2.8.6. Anlegen der Authentifizierungsdatenbank</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s09.html">2.9. Mandanten-, Benutzer- und Gruppenverwaltung</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s09.html#Zusammenh%C3%A4nge">2.9.1. Zusammenhänge</a></span></dt><dt><span class="sect2"><a href="ch02s09.html#Mandanten-Benutzer-Gruppen">2.9.2. Mandanten, Benutzer und Gruppen</a></span></dt><dt><span class="sect2"><a href="ch02s09.html#Datenbanken-anlegen">2.9.3. Datenbanken anlegen</a></span></dt><dt><span class="sect2"><a href="ch02s09.html#Gruppen-anlegen">2.9.4. Gruppen anlegen</a></span></dt><dt><span class="sect2"><a href="ch02s09.html#Benutzer-anlegen">2.9.5. Benutzer anlegen</a></span></dt><dt><span class="sect2"><a href="ch02s09.html#Mandanten-anlegen">2.9.6. Mandanten anlegen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s10.html">2.10. Drucker- und Systemverwaltung</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s10.html#Druckeradministration">2.10.1. Druckeradministration</a></span></dt><dt><span class="sect2"><a href="ch02s10.html#System">2.10.2. System sperren / entsperren</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s11.html">2.11. E-Mail-Versand aus kivitendo heraus</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s11.html#config.sending-email.sendmail">2.11.1. Versand über lokalen E-Mail-Server</a></span></dt><dt><span class="sect2"><a href="ch02s11.html#config.sending-email.smtp">2.11.2. Versand über einen SMTP-Server</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s12.html">2.12. Drucken mit kivitendo</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s12.html#Vorlagenverzeichnis-anlegen">2.12.1. Vorlagenverzeichnis anlegen</a></span></dt><dt><span class="sect2"><a href="ch02s12.html#Vorlagen-RB">2.12.2. Der Druckvorlagensatz RB</a></span></dt><dt><span class="sect2"><a href="ch02s12.html#Vorlagen-rev-odt">2.12.3. Der Druckvorlagensatz rev-odt</a></span></dt><dt><span class="sect2"><a href="ch02s12.html#allgemeine-hinweise-zu-latex">2.12.4. Allgemeine Hinweise zu LaTeX Vorlagen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s13.html">2.13. OpenDocument-Vorlagen</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s13.html#d0e2420">2.13.1. OpenDocument (odt) Druckvorlagen mit Makros</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s14.html">2.14. Nomenklatur</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s14.html#booking.dates">2.14.1. Datum bei Buchungen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s15.html">2.15. Konfiguration zur Einnahmenüberschussrechnung/Bilanzierung:
|
|
6 | 6 |
EUR</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s15.html#config.eur.introduction">2.15.1. Einführung</a></span></dt><dt><span class="sect2"><a href="ch02s15.html#config.eur.parameters">2.15.2. Konfigurationsparameter</a></span></dt><dt><span class="sect2"><a href="ch02s15.html#config.eur.setting-parameters">2.15.3. Festlegen der Parameter</a></span></dt><dt><span class="sect2"><a href="ch02s15.html#config.eur.inventory-system-perpetual">2.15.4. Bemerkungen zur Bestandsmethode</a></span></dt><dt><span class="sect2"><a href="ch02s15.html#config.eur.knonw-issues">2.15.5. Bekannte Probleme</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s16.html">2.16. SKR04 19% Umstellung für innergemeinschaftlichen Erwerb</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s16.html#config.skr04-update-3804.introduction">2.16.1. Einführung</a></span></dt><dt><span class="sect2"><a href="ch02s16.html#config.skr04-update-3804.create-chart">2.16.2. Konto 3804 manuell anlegen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s17.html">2.17. Verhalten des Bilanzberichts</a></span></dt><dt><span class="sect1"><a href="ch02s18.html">2.18. Erfolgsrechnung</a></span></dt><dt><span class="sect1"><a href="ch02s19.html">2.19. Rundung in Verkaufsbelegen</a></span></dt><dt><span class="sect1"><a href="ch02s20.html">2.20. Einstellungen pro Mandant</a></span></dt><dt><span class="sect1"><a href="ch02s21.html">2.21. 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.variables">3.1.3. Spezielle Variablen</a></span></dt><dt><span class="sect2"><a href="ch03.html#features.periodic-invoices.reports">3.1.4. Auflisten</a></span></dt><dt><span class="sect2"><a href="ch03.html#features.periodic-invoices.task-server">3.1.5. Erzeugung der eigentlichen Rechnungen</a></span></dt><dt><span class="sect2"><a href="ch03.html#features.periodic-invoices.create-for-current-month">3.1.6. Erste Rechnung für aktuellen Monat erstellen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch03s02.html">3.2. Bankerweiterung</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch03s02.html#features.bank.introduction">3.2.1. Einführung</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch03s03.html">3.3. Dokumentenvorlagen und verfügbare Variablen</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch03s03.html#dokumentenvorlagen-und-variablen.einf%C3%BChrung">3.3.1. Einführung</a></span></dt><dt><span class="sect2"><a href="ch03s03.html#dokumentenvorlagen-und-variablen.variablen-ausgeben">3.3.2. Variablen ausgeben</a></span></dt><dt><span class="sect2"><a href="ch03s03.html#dokumentenvorlagen-und-variablen.verwendung-in-druckbefehlen">3.3.3. Verwendung in Druckbefehlen</a></span></dt><dt><span class="sect2"><a href="ch03s03.html#dokumentenvorlagen-und-variablen.tag-style">3.3.4. Anfang und Ende der Tags verändern</a></span></dt><dt><span class="sect2"><a href="ch03s03.html#dokumentenvorlagen-und-variablen.zuordnung-dateinamen">3.3.5. Zuordnung von den Dateinamen zu den Funktionen</a></span></dt><dt><span class="sect2"><a href="ch03s03.html#dokumentenvorlagen-und-variablen.dateinamen-erweitert">3.3.6. Sprache, Drucker und E-Mail</a></span></dt><dt><span class="sect2"><a href="ch03s03.html#dokumentenvorlagen-und-variablen.allgemeine-variablen">3.3.7. Allgemeine Variablen, die in allen Vorlagen vorhanden |
7 | 7 |
sind</a></span></dt><dt><span class="sect2"><a href="ch03s03.html#dokumentenvorlagen-und-variablen.invoice">3.3.8. Variablen in Rechnungen</a></span></dt><dt><span class="sect2"><a href="ch03s03.html#dokumentenvorlagen-und-variablen.dunning">3.3.9. Variablen in Mahnungen und Rechnungen über Mahngebühren</a></span></dt><dt><span class="sect2"><a href="ch03s03.html#dokumentenvorlagen-und-variablen.andere-vorlagen">3.3.10. Variablen in anderen Vorlagen</a></span></dt><dt><span class="sect2"><a href="ch03s03.html#dokumentenvorlagen-und-variablen.bloecke">3.3.11. Blöcke, bedingte Anweisungen und Schleifen</a></span></dt><dt><span class="sect2"><a href="ch03s03.html#dokumentenvorlagen-und-variablen.markup">3.3.12. Markup-Code zur Textformatierung innerhalb von |
8 |
Formularen</a></span></dt><dt><span class="sect2"><a href="ch03s03.html#dokumentenvorlagen-und-variablen.anrede">3.3.13. Hinweise zur Anrede</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch03s04.html">3.4. Excel-Vorlagen</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch03s04.html#excel-templates.summary">3.4.1. Zusammenfassung</a></span></dt><dt><span class="sect2"><a href="ch03s04.html#excel-templates.usage">3.4.2. Bedienung</a></span></dt><dt><span class="sect2"><a href="ch03s04.html#excel-templates.syntax">3.4.3. Variablensyntax</a></span></dt><dt><span class="sect2"><a href="ch03s04.html#excel-templates.limitations">3.4.4. Einschränkungen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch03s05.html">3.5. Mandantenkonfiguration Lager</a></span></dt><dt><span class="sect1"><a href="ch03s06.html">3.6. Schweizer Kontenpläne</a></span></dt><dt><span class="sect1"><a href="ch03s07.html">3.7. Artikelklassifizierung</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch03s07.html#d0e6704">3.7.1. Übersicht</a></span></dt><dt><span class="sect2"><a href="ch03s07.html#d0e6709">3.7.2. Basisklassifizierung</a></span></dt><dt><span class="sect2"><a href="ch03s07.html#d0e6739">3.7.3. Attribute</a></span></dt><dt><span class="sect2"><a href="ch03s07.html#d0e6770">3.7.4. Zwei-Zeichen Abkürzung</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch03s08.html">3.8. Dateiverwaltung (Mini-DMS)</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch03s08.html#d0e6782">3.8.1. Übersicht</a></span></dt><dt><span class="sect2"><a href="ch03s08.html#d0e6809">3.8.2. Struktur</a></span></dt><dt><span class="sect2"><a href="ch03s08.html#d0e6861">3.8.3. Anwendung</a></span></dt><dt><span class="sect2"><a href="ch03s08.html#d0e6904">3.8.4. Konfigurierung</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch03s09.html">3.9. Webshop-Api</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch03s09.html#d0e6969">3.9.1. Rechte für die Webshopapi</a></span></dt><dt><span class="sect2"><a href="ch03s09.html#d0e6984">3.9.2. Konfiguration</a></span></dt><dt><span class="sect2"><a href="ch03s09.html#d0e6992">3.9.3. Webshopartikel</a></span></dt><dt><span class="sect2"><a href="ch03s09.html#d0e7016">3.9.4. Bestellimport</a></span></dt><dt><span class="sect2"><a href="ch03s09.html#d0e7069">3.9.5. Mapping der Daten</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch03s10.html">3.10. ZUGFeRD Rechnungen</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch03s10.html#features.zugferd.preamble">3.10.1. Vorbedingung</a></span></dt><dt><span class="sect2"><a href="ch03s10.html#features.zugferd.summary">3.10.2. Übersicht</a></span></dt><dt><span class="sect2"><a href="ch03s10.html#features.zugferd.create_zugferd_bills">3.10.3. Erstellen von ZUGFeRD Rechnungen in Kivitendo</a></span></dt><dt><span class="sect2"><a href="ch03s10.html#features.zugferd.read_zugferd_bills">3.10.4. Einlesen von ZUGFeRD Rechnungen in Kivitendo</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#d0e7158">4.1.1. Wie sehen globale Variablen in Perl aus?</a></span></dt><dt><span class="sect2"><a href="ch04.html#d0e7259">4.1.2. Warum sind globale Variablen ein Problem?</a></span></dt><dt><span class="sect2"><a href="ch04.html#d0e7292">4.1.3. Kanonische globale Variablen</a></span></dt><dt><span class="sect2"><a href="ch04.html#d0e7680">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></dl></dd><dt><span class="sect1"><a href="ch04s03.html">4.3. Programmatische API-Aufrufe</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch04s03.html#dev-programmatic-api-calls.introduction">4.3.1. Einführung</a></span></dt><dt><span class="sect2"><a href="ch04s03.html#dev-programmatic-api-calls.client_selection">4.3.2. Wahl des Mandanten</a></span></dt><dt><span class="sect2"><a href="ch04s03.html#dev-programmatic-api-calls.http_basic_authentication">4.3.3. HTTP-»Basic«-Authentifizierung</a></span></dt><dt><span class="sect2"><a href="ch04s03.html#dev-programmatic-api-calls.authentication_via_parameters">4.3.4. Authentifizierung mit Parametern</a></span></dt><dt><span class="sect2"><a href="ch04s03.html#dev-programmatic-api-calls.examples">4.3.5. Beispiele</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch04s04.html">4.4. SQL-Upgradedateien</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch04s04.html#db-upgrade-files.introduction">4.4.1. Einführung</a></span></dt><dt><span class="sect2"><a href="ch04s04.html#db-upgrade-files.format">4.4.2. Format der Kontrollinformationen</a></span></dt><dt><span class="sect2"><a href="ch04s04.html#db-upgrade-files.format-perl-files">4.4.3. Format von in Perl geschriebenen
|
|
8 |
Formularen</a></span></dt><dt><span class="sect2"><a href="ch03s03.html#dokumentenvorlagen-und-variablen.anrede">3.3.13. Hinweise zur Anrede</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch03s04.html">3.4. Excel-Vorlagen</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch03s04.html#excel-templates.summary">3.4.1. Zusammenfassung</a></span></dt><dt><span class="sect2"><a href="ch03s04.html#excel-templates.usage">3.4.2. Bedienung</a></span></dt><dt><span class="sect2"><a href="ch03s04.html#excel-templates.syntax">3.4.3. Variablensyntax</a></span></dt><dt><span class="sect2"><a href="ch03s04.html#excel-templates.limitations">3.4.4. Einschränkungen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch03s05.html">3.5. Mandantenkonfiguration Lager</a></span></dt><dt><span class="sect1"><a href="ch03s06.html">3.6. Schweizer Kontenpläne</a></span></dt><dt><span class="sect1"><a href="ch03s07.html">3.7. Artikelklassifizierung</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch03s07.html#d0e6515">3.7.1. Übersicht</a></span></dt><dt><span class="sect2"><a href="ch03s07.html#d0e6520">3.7.2. Basisklassifizierung</a></span></dt><dt><span class="sect2"><a href="ch03s07.html#d0e6550">3.7.3. Attribute</a></span></dt><dt><span class="sect2"><a href="ch03s07.html#d0e6581">3.7.4. Zwei-Zeichen Abkürzung</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch03s08.html">3.8. Dateiverwaltung (Mini-DMS)</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch03s08.html#d0e6593">3.8.1. Übersicht</a></span></dt><dt><span class="sect2"><a href="ch03s08.html#d0e6620">3.8.2. Struktur</a></span></dt><dt><span class="sect2"><a href="ch03s08.html#d0e6672">3.8.3. Anwendung</a></span></dt><dt><span class="sect2"><a href="ch03s08.html#d0e6715">3.8.4. Konfigurierung</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch03s09.html">3.9. Webshop-Api</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch03s09.html#d0e6780">3.9.1. Rechte für die Webshopapi</a></span></dt><dt><span class="sect2"><a href="ch03s09.html#d0e6795">3.9.2. Konfiguration</a></span></dt><dt><span class="sect2"><a href="ch03s09.html#d0e6803">3.9.3. Webshopartikel</a></span></dt><dt><span class="sect2"><a href="ch03s09.html#d0e6827">3.9.4. Bestellimport</a></span></dt><dt><span class="sect2"><a href="ch03s09.html#d0e6880">3.9.5. Mapping der Daten</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch03s10.html">3.10. ZUGFeRD Rechnungen</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch03s10.html#features.zugferd.preamble">3.10.1. Vorbedingung</a></span></dt><dt><span class="sect2"><a href="ch03s10.html#features.zugferd.summary">3.10.2. Übersicht</a></span></dt><dt><span class="sect2"><a href="ch03s10.html#features.zugferd.create_zugferd_bills">3.10.3. Erstellen von ZUGFeRD Rechnungen in Kivitendo</a></span></dt><dt><span class="sect2"><a href="ch03s10.html#features.zugferd.read_zugferd_bills">3.10.4. Einlesen von ZUGFeRD Rechnungen in Kivitendo</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#d0e6969">4.1.1. Wie sehen globale Variablen in Perl aus?</a></span></dt><dt><span class="sect2"><a href="ch04.html#d0e7070">4.1.2. Warum sind globale Variablen ein Problem?</a></span></dt><dt><span class="sect2"><a href="ch04.html#d0e7103">4.1.3. Kanonische globale Variablen</a></span></dt><dt><span class="sect2"><a href="ch04.html#d0e7491">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></dl></dd><dt><span class="sect1"><a href="ch04s03.html">4.3. Programmatische API-Aufrufe</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch04s03.html#dev-programmatic-api-calls.introduction">4.3.1. Einführung</a></span></dt><dt><span class="sect2"><a href="ch04s03.html#dev-programmatic-api-calls.client_selection">4.3.2. Wahl des Mandanten</a></span></dt><dt><span class="sect2"><a href="ch04s03.html#dev-programmatic-api-calls.http_basic_authentication">4.3.3. HTTP-»Basic«-Authentifizierung</a></span></dt><dt><span class="sect2"><a href="ch04s03.html#dev-programmatic-api-calls.authentication_via_parameters">4.3.4. Authentifizierung mit Parametern</a></span></dt><dt><span class="sect2"><a href="ch04s03.html#dev-programmatic-api-calls.examples">4.3.5. Beispiele</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch04s04.html">4.4. SQL-Upgradedateien</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch04s04.html#db-upgrade-files.introduction">4.4.1. Einführung</a></span></dt><dt><span class="sect2"><a href="ch04s04.html#db-upgrade-files.format">4.4.2. Format der Kontrollinformationen</a></span></dt><dt><span class="sect2"><a href="ch04s04.html#db-upgrade-files.format-perl-files">4.4.3. Format von in Perl geschriebenen
|
|
9 | 9 |
Datenbankupgradescripten</a></span></dt><dt><span class="sect2"><a href="ch04s04.html#db-upgrade-files.dbupgrade-tool">4.4.4. Hilfsscript dbupgrade2_tool.pl</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch04s05.html">4.5. Translations and languages</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch04s05.html#translations-languages.introduction">4.5.1. Introduction</a></span></dt><dt><span class="sect2"><a href="ch04s05.html#translations-languages.character-set">4.5.2. Character set</a></span></dt><dt><span class="sect2"><a href="ch04s05.html#translations-languages.file-structure">4.5.3. File structure</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch04s06.html">4.6. Die kivitendo-Test-Suite</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch04s06.html#devel.testsuite.intro">4.6.1. Einführung</a></span></dt><dt><span class="sect2"><a href="ch04s06.html#devel.testsuite.prerequisites">4.6.2. Voraussetzungen</a></span></dt><dt><span class="sect2"><a href="ch04s06.html#devel.testsuite.execution">4.6.3. Existierende Tests ausführen</a></span></dt><dt><span class="sect2"><a href="ch04s06.html#devel.testsuite.meaning_of_scripts">4.6.4. Bedeutung der verschiedenen Test-Scripte</a></span></dt><dt><span class="sect2"><a href="ch04s06.html#devel.testsuite.create_new">4.6.5. Neue Test-Scripte erstellen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch04s07.html">4.7. Stil-Richtlinien</a></span></dt><dt><span class="sect1"><a href="ch04s08.html">4.8. Dokumentation erstellen</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch04s08.html#devel.build-doc.introduction">4.8.1. Einführung</a></span></dt><dt><span class="sect2"><a href="ch04s08.html#devel.build-doc.required-software">4.8.2. Benötigte Software</a></span></dt><dt><span class="sect2"><a href="ch04s08.html#devel.build-doc.build">4.8.3. PDFs und HTML-Seiten erstellen</a></span></dt><dt><span class="sect2"><a href="ch04s08.html#devel.build-doc.repository">4.8.4. Einchecken in das Git-Repository</a></span></dt></dl></dd></dl></dd></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="ch01.html">Weiter</a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"> </td><td width="40%" align="right" valign="top"> Kapitel 1. Aktuelle Hinweise</td></tr></table></div></body></html> |
scripts/installation_check.pl | ||
---|---|---|
146 | 146 |
sub check_latex { |
147 | 147 |
my ($res) = check_kpsewhich(); |
148 | 148 |
print_result("Looking for LaTeX kpsewhich", $res); |
149 |
|
|
150 |
# no pdfx -> no zugferd possible |
|
151 |
my $ret = kpsewhich('template/print/', 'sty', 'pdfx'); |
|
152 |
die "Cannot use pdfx. Please install this package first (debian: apt install texlive-latex-extra)" if $ret; |
|
153 |
# check version 2018 |
|
154 |
my $latex = $::lx_office_conf{applications}->{latex} || 'pdflatex'; |
|
155 |
my $pdfx = (system ${latex} . ' --interaction=batchmode "\documentclass{minimal} \RequirePackage{pdfx} \csname @ifpackagelater\endcsname{pdfx}{2018/12/22}{}{\show\relax} \begin{document} \end{document}"'); |
|
156 |
|
|
157 |
print_result ("Looking for pdfx version 2018 or higher", !$pdfx); |
|
158 |
push @missing_modules, \(name => 'pdfx') if $pdfx; |
|
159 |
|
|
149 | 160 |
if ($res) { |
150 | 161 |
check_template_dir($_) for SL::InstallationCheck::template_dirs($master_templates); |
151 | 162 |
} |
163 |
print STDERR <<EOL if $pdfx; |
|
164 |
+------------------------------------------------------------------------------+ |
|
165 |
Your pdfx version is too old. You cannot use ZuGFeRD or modern (2018+) |
|
166 |
templates. Please consider using a more recent LaTeX environment. |
|
167 |
Verify with: |
|
168 |
pdflatex --interaction=batchmode "\RequirePackage{pdfx}[2018/12/22]" |
|
169 |
+------------------------------------------------------------------------------+ |
|
170 |
EOL |
|
152 | 171 |
} |
153 | 172 |
|
154 | 173 |
sub check_template_dir { |
... | ... | |
160 | 179 |
|
161 | 180 |
my @sty = sort { $a cmp $b } uniq ( |
162 | 181 |
SL::InstallationCheck::classes_from_latex($path, '\usepackage'), |
163 |
qw(textcomp ulem pdfx embedfile)
|
|
182 |
qw(textcomp ulem embedfile) |
|
164 | 183 |
); |
165 | 184 |
kpsewhich($path, 'sty', $_) for @sty; |
166 | 185 |
} |
templates/print/f-tex/bin_list.html | ||
---|---|---|
1 |
<body bgcolor=ffffff> |
|
2 |
|
|
3 |
<table width=100%> |
|
4 |
<tr> |
|
5 |
<td width=10> </td> |
|
6 |
|
|
7 |
<td> |
|
8 |
<table width=100%> |
|
9 |
<tr> |
|
10 |
<td> |
|
11 |
<h4> |
|
12 |
<%company%> |
|
13 |
<br><%address%> |
|
14 |
</h4> |
|
15 |
</td> |
|
16 |
|
|
17 |
<th><img src=http://localhost/lx-erp/lx-office-erp.png border=0 width=64 height=58></th> |
|
18 |
|
|
19 |
<th align=right> |
|
20 |
<h4> |
|
21 |
Tel: <%tel%> |
|
22 |
<br>Fax: <%fax%> |
|
23 |
</h4> |
|
24 |
</td> |
|
25 |
</tr> |
|
26 |
|
|
27 |
<tr> |
|
28 |
<th colspan=3> |
|
29 |
<h4>L A G E R L I S T E</h4> |
|
30 |
</th> |
|
31 |
</tr> |
|
32 |
</table> |
|
33 |
</td> |
|
34 |
</tr> |
|
35 |
|
|
36 |
<tr> |
|
37 |
<td> </td> |
|
38 |
|
|
39 |
<td> |
|
40 |
<table width=100% cellspacing=0 cellpadding=0> |
|
41 |
<tr bgcolor=000000> |
|
42 |
<th align=left width=50%><font color=ffffff>Absender</th> |
|
43 |
<th align=left width=50%><font color=ffffff>Lieferanschrift</th> |
|
44 |
</tr> |
|
45 |
|
|
46 |
<tr valign=top> |
|
47 |
<td><%name%> |
|
48 |
<br><%street%> |
|
49 |
<br><%zipcode%> |
|
50 |
<br><%city%> |
|
51 |
<br><%country%> |
|
52 |
<br> |
|
53 |
|
|
54 |
<%if contact%> |
|
55 |
<br>Kontakt: <%contact%> |
|
56 |
<%end contact%> |
|
57 |
|
|
58 |
<%if vendorphone%> |
|
59 |
<br>Tel: <%vendorphone%> |
|
60 |
<%end vendorphone%> |
|
61 |
|
|
62 |
<%if vendorfax%> |
|
63 |
<br>Fax: <%vendorfax%> |
|
64 |
<%end vendorfax%> |
|
65 |
|
|
66 |
<%if email%> |
|
67 |
<br><%email%> |
|
68 |
<%end email%> |
|
69 |
|
|
70 |
</td> |
|
71 |
|
|
72 |
<td><%shiptoname%> |
|
73 |
<br><%shiptostreet%> |
|
74 |
<br><%shiptozipcode%> |
|
75 |
<br><%shiptocity%> |
|
76 |
<br><%shiptocountry%> |
|
77 |
|
|
78 |
<br> |
|
79 |
<%if shiptocontact%> |
|
80 |
<br>Kontakt: <%shiptocontact%> |
|
81 |
<%end shiptocontact%> |
|
82 |
|
|
83 |
<%if shiptophone%> |
|
84 |
<br>Tel: <%shiptophone%> |
|
85 |
<%end shiptophone%> |
|
86 |
|
|
87 |
<%if shiptofax%> |
|
88 |
<br>Fax: <%shiptofax%> |
|
89 |
<%end shiptofax%> |
|
90 |
</td> |
|
91 |
</tr> |
|
92 |
</table> |
|
93 |
</td> |
|
94 |
</tr> |
|
95 |
|
|
96 |
<tr height=5></tr> |
|
97 |
|
|
98 |
<tr> |
|
99 |
<td> </td> |
|
100 |
|
|
101 |
<td> |
|
102 |
<table width=100% border=1> |
|
103 |
<tr> |
|
104 |
<th width=17% align=left nowrap>BestellNr. #</th> |
|
105 |
<th width=17% align=left nowrap>Datum</th> |
|
106 |
<th width=17% align=left nowrap>Kontakt</th> |
|
107 |
<%if warehouse%> |
|
108 |
<th width=17% align=left nowrap>Lager</th> |
|
109 |
<%end warehouse%> |
|
110 |
<th width=17% align=left>Versandort</th> |
|
111 |
<th width=15% align=left>Lieferung durch</th> |
|
112 |
</tr> |
|
113 |
|
|
114 |
<tr> |
|
115 |
<td><%ordnumber%> </td> |
|
116 |
|
|
117 |
<%if shippingdate%> |
|
118 |
<td><%shippingdate%></td> |
|
119 |
<%end shippingdate%> |
|
120 |
|
|
121 |
<%if not shippingdate%> |
|
122 |
<td><%orddate%></td> |
|
123 |
<%end shippingdate%> |
|
124 |
|
|
125 |
<td><%employee%> </td> |
|
126 |
|
|
127 |
<%if warehouse%> |
|
128 |
<td><%warehouse%></td> |
|
129 |
<%end warehouse%> |
|
130 |
|
|
131 |
<td><%shippingpoint%> </td> |
|
132 |
<td><%shipvia%> </td> |
|
133 |
</tr> |
|
134 |
</table> |
|
135 |
</td> |
|
136 |
</tr> |
|
137 |
|
|
138 |
<tr> |
|
139 |
<td> </td> |
|
140 |
|
|
141 |
<td> |
|
142 |
<table width=100%> |
|
143 |
<tr bgcolor=000000> |
|
144 |
<th align=left><font color=ffffff>Pos</th> |
|
145 |
<th align=left><font color=ffffff>ArtNr.</th> |
|
146 |
<th align=left><font color=ffffff>Beschreibung</th> |
|
147 |
<th><font color=ffffff>Seriennummer</th> |
|
148 |
<th> </th> |
|
149 |
<th><font color=ffffff>Menge</th> |
|
150 |
<th><font color=ffffff>Erh</th> |
|
151 |
<th> </th> |
|
152 |
<th><font color=ffffff>Lagerplatz</th> |
|
153 |
</tr> |
|
154 |
|
|
155 |
<%foreach number%> |
|
156 |
<tr valign=top> |
|
157 |
<td><%runningnumber%></td> |
|
158 |
<td><%number%></td> |
|
159 |
<td><%description%></td> |
|
160 |
<td><%serialnumber%></td> |
|
161 |
<td><%deliverydate%></td> |
|
162 |
<td align=right><%qty%></td> |
|
163 |
<td align=right><%ship%></td> |
|
164 |
<td><%unit%></td> |
|
165 |
<td><%bin%></td> |
|
166 |
</tr> |
|
167 |
<%end number%> |
|
168 |
|
|
169 |
</table> |
|
170 |
</td> |
|
171 |
</tr> |
|
172 |
|
|
173 |
<tr> |
|
174 |
<td> </td> |
|
175 |
|
|
176 |
<td><hr noshade></td> |
|
177 |
</tr> |
|
178 |
|
|
179 |
</table> |
|
180 |
|
templates/print/f-tex/default.tex | ||
---|---|---|
1 |
% ---------------------------------------------------------- |
|
2 |
% letter.tex |
|
3 |
% Globale Vorlage fuer Briefartige Documente LX-Office 2.6 |
|
4 |
% |
|
5 |
% Changelog: see gitlog |
|
6 |
\newcommand{\ftLetterVersion}{1.2-u (05.12.2012)} |
|
7 |
% |
|
8 |
% Lizenz |
|
9 |
% http://www.gnu.de/licenses/gpl-3.0.html |
|
10 |
% |
|
11 |
% Siehe ./README |
|
12 |
% |
|
13 |
% Autor: Wulf Coulmann scripts_at_gpl.coulmann.de |
|
14 |
% Aufgebaut auf invoice.tex 0.1 kmk@lilalaser.de |
|
15 |
% |
|
16 |
% ---------------------------------------------------------- |
|
17 |
|
|
18 |
\documentclass[letter,fontsize=11pt]{scrlttr2} |
|
19 |
|
|
20 |
|
|
21 |
\begingroup |
|
22 |
\makeatletter |
|
23 |
\@latex@warning@no@line{ #### this is default.tex \ftLetterVersion #####} |
|
24 |
\endgroup |
|
25 |
|
|
26 |
|
|
27 |
\usepackage{ifpdf} |
|
28 |
\usepackage{graphicx} |
|
29 |
\usepackage{german} |
|
30 |
\usepackage{textcomp} |
|
31 |
\usepackage{lastpage} |
|
32 |
\usepackage{filecontents} |
|
33 |
\usepackage{etex} |
|
34 |
\usepackage{ltxtable} |
|
35 |
\usepackage{tabularx} |
|
36 |
\usepackage{longtable} |
|
37 |
\usepackage{booktabs} |
|
38 |
\usepackage{numprint} |
|
39 |
\usepackage{xstring} |
|
40 |
\newcommand{\leer}{} |
|
41 |
\usepackage{zwischensumme} |
|
42 |
\ifthenelse{\isundefined{\employeecountry}}{\input{mydata}}{} |
|
43 |
|
|
44 |
%% meta infos |
|
45 |
\newcommand{\docname}{<%template_meta.formname NOESCAPE%>} |
|
46 |
\newcommand{\TemplateMetaLanguageDescription}{<%template_meta.language.description NOESCAPE%>} |
|
47 |
\newcommand{\LangCode}{<%template_meta.language.template_code NOESCAPE%>} |
|
48 |
\newcommand{\TemplateMetaLanguageOutputNumberformat}{<%template_meta.language.output_numberformat NOESCAPE%>} |
|
49 |
\newcommand{\TemplateMetaLanguageOutputDateformat}{<%template_meta.language.output_dateformat NOESCAPE%>} |
|
50 |
\newcommand{\TemplateMetaFormat}{<%template_meta.format NOESCAPE%>} |
|
51 |
\newcommand{\TemplateMetaExtension}{<%template_meta.extension NOESCAPE%>} |
|
52 |
\newcommand{\TemplateMetaMedia}{<%template_meta.media NOESCAPE%>} |
|
53 |
\newcommand{\TemplateMetaPrinterDescription}{<%template_meta.printer.description NOESCAPE%>} |
|
54 |
\newcommand{\TemplateMetaPrinterTemplateCode}{<%template_meta.printer.template_code NOESCAPE%>} |
|
55 |
|
|
56 |
%%%%%%%%% Report-Variablen umsetzen, damit latex sie in lxbriefkopf.tex sieht. |
|
57 |
%%%% Die eigenen Daten |
|
58 |
\newcommand{\employeename}{<%employee_name%>} |
|
59 |
\newcommand{\employeecompany}{<%employee_company%>} |
|
60 |
\newcommand{\employeeaddress}{<%employee_address%>} |
|
61 |
\newcommand{\employeetel}{<%employee_tel%>} |
|
62 |
\newcommand{\employeefax}{<%employee_fax%>} |
|
63 |
\newcommand{\employeecoustid}{<%employee_co_ustid%>} |
|
64 |
\newcommand{\employeetaxnumber}{<%employee_taxnumber%>} |
|
65 |
\newcommand{\media}{<%media%>} |
|
66 |
|
|
67 |
|
|
68 |
%%%% Adressat |
|
69 |
\newcommand{\name}{<%name%>} |
|
70 |
\newcommand{\Shipname}{\ifthenelse{\equal{<%shiptoname%>}{\leer}}{<%name%>}{<%shiptoname%>}} |
|
71 |
\newcommand{\departmentone}{<%department_1%>} |
|
72 |
\newcommand{\departmenttwo}{<%department_2%>} |
|
73 |
\newcommand{\cpgreeting}{<%cp_greeting%>} |
|
74 |
\newcommand{\cptitle}{<%cp_title%>} |
|
75 |
\newcommand{\cpgivenname}{<%cp_givenname%>} |
|
76 |
\newcommand{\cpname}{<%cp_name%>} |
|
77 |
\newcommand{\street}{<%street%>} |
|
78 |
\newcommand{\Shipstreet}{\ifthenelse{\equal{<%shiptostreet%>}{\leer}}{<%street%>}{<%shiptostreet%>}} |
|
79 |
\newcommand{\country}{<%country%>} |
|
80 |
\newcommand{\Shipcountry}{<%shiptocountry%>} |
|
81 |
\newcommand{\UstId}{<%ustid%>} |
|
82 |
\newcommand{\zipcode}{<%zipcode%>} |
|
83 |
\newcommand{\Shipzipcode}{\ifthenelse{\equal{<%shiptozipcode%>}{\leer}}{<%zipcode%>}{<%shiptozipcode%>}} |
|
84 |
\newcommand{\city}{<%city%>} |
|
85 |
\newcommand{\Shipcity}{\ifthenelse{\equal{<%shiptocity%>}{\leer}}{<%city%>}{<%shiptocity%>}} |
|
86 |
\newcommand{\phone}{<%customerphone%>} |
|
87 |
\newcommand{\fax}{<%customerfax%>} |
|
88 |
|
|
89 |
%%%% Variablen, die sich auf das ganze Dokument beziehen |
|
90 |
\newcommand{\kundennummer}{<%customernumber%>} |
|
91 |
\newcommand{\vendornumber}{<%vendornumber%>} |
|
92 |
\newcommand{\quonumber}{<%quonumber%>} % Angebotsnummer |
|
93 |
\newcommand{\ordnumber}{<%ordnumber%>} % Auftragsnummer bei uns |
|
94 |
\newcommand{\cusordnumber}{<%cusordnumber%>} % Auftragsnummer beim Kunden |
|
95 |
\newcommand{\invnumber}{<%invnumber%>} % Rechnungsnummer |
|
96 |
\newcommand{\donumber}{<%donumber%>} % Lieferscheinnummer |
|
97 |
%\newcommand{\docnumber}{Rechnungsnummer: \invnumber} |
|
98 |
\newcommand{\quodate}{<%quodate%>} % Angebotsdatum |
|
99 |
\newcommand{\orddate}{<%orddate%>} % Auftragsdatum |
|
100 |
\newcommand{\reqdate}{<%reqdate%>} % gewuenschtes Lieferdatum |
|
101 |
\newcommand{\deliverydate}{<%deliverydate%>} % Lieferdatum |
|
102 |
\newcommand{\invdate}{<%invdate%>} % Rechnungsdatum |
|
103 |
\newcommand{\transdate}{<%transdate%>} % Lieferscheindatum |
|
104 |
\newcommand{\terms}{<%terms%>} % Zahlungsfrist |
|
105 |
\newcommand{\duedate}{<%duedate%>} % Fälligkeitsdatum |
|
106 |
\newcommand{\invtotal}{<%invtotal NOFORMAT%>} % Gesamtbetrag |
|
107 |
\newcommand{\paid}{<%paid NOFORMAT%>} % Schon bezahlt |
|
108 |
\newcommand{\total}{<%total NOFORMAT%>} % Restbetrag |
|
109 |
\newcommand{\subtotal}{<%subtotal NOFORMAT%>} % Restbetrag |
|
110 |
\newcommand{\paymentterms}{<%payment_terms%>} % Zahlungsbedingungen |
|
111 |
\newcommand{\paymentPrivatEnd}{E} % Endung bei Privatkunden |
|
112 |
\newcommand{\paymenttype}{<%payment_description%>} % name der Zahlungs-art - fuer Steuerung brutto/netto |
|
113 |
|
|
114 |
|
|
115 |
%%%% Lieferadresse |
|
116 |
\newcommand{\shiptoname}{<%shiptoname%>} |
|
117 |
\newcommand{\shiptocontact}{<%shiptocontact%>} |
|
118 |
\newcommand{\shiptodepartmentone}{<%shiptodepartment_1%>} |
|
119 |
\newcommand{\shiptodepartmenttwo}{<%shiptodepartment_2%>} |
|
120 |
\newcommand{\shiptostreet}{<%shiptostreet%>} |
|
121 |
\newcommand{\shiptocity}{<%shiptocity%>} |
|
122 |
\newcommand{\shiptocountry}{<%shiptocountry%>} |
|
123 |
\newcommand{\shiptophone}{<%shiptophone%>} |
|
124 |
\newcommand{\shiptozipcode}{<%shiptozipcode%>} |
|
125 |
\newcommand{\shiptofax}{<%shiptofax%>} |
|
126 |
|
|
127 |
%%%% Die Waehrungsvariable in Waehrunszeichen umsetzen |
|
128 |
\newcommand{\currency}{<%currency%>} |
|
129 |
\ifthenelse{\equal{\currency}{EUR}}{\let\currency\euro}{} |
|
130 |
\ifthenelse{\equal{\currency}{YEN}}{\let\currency\textyen}{} |
|
131 |
\ifthenelse{\equal{\currency}{GBP}}{\let\currency\pounds}{} |
|
132 |
\ifthenelse{\equal{\currency}{USD}}{\let\currency\$}{} |
|
133 |
|
|
134 |
%%%%%%%%%%%%% Ende Reportvariablen-Umsetzung |
|
135 |
|
|
136 |
\newcommand{\NoValue}{0} |
|
137 |
\newcommand{\Picklist}{0} |
|
138 |
\newcommand{\PurchaseOrder}{0} |
|
139 |
\newcommand{\trash}{0} |
|
140 |
\newcommand{\nonemptyline}[2]{\ifthenelse{\equal{#2}{\leer}}{}{#1#2~\\}} |
|
141 |
\newcommand{\MyAdress}{\IfStrEq{\docname}{sales_delivery_order}{\Shipname~\\ |
|
142 |
% lieferadresse wenn Lieferschein |
|
143 |
\nonemptyline{\cpgreeting{ }\cpgivenname{ }}{\cpname} |
|
144 |
\nonemptyline{}{\departmentone} |
|
145 |
\Shipstreet ~\\ |
|
146 |
\Shipzipcode{ }\Shipcity |
|
147 |
\ifthenelse{\equal{\Shipcountry}{\employeecountry}}{}{~\\ \Shipcountry} % Laenderangabe wird nur gedruckt, |
|
148 |
~ % wenn der Empfaenger nicht im eigenen Land sitzt. |
|
149 |
}{ |
|
150 |
\name~\\ |
|
151 |
\nonemptyline{\cpgreeting{ }\cpgivenname{ }}{\cpname} |
|
152 |
\nonemptyline{}{\departmentone} |
|
153 |
\street ~\\ |
|
154 |
\zipcode{ }\city |
|
155 |
\ifthenelse{\equal{\country} {\employeecountry}}{}{ |
|
156 |
\ifthenelse{\equal{\country}{\leer}}{}{ ~\\ \country} } % Laenderangabe wird nur gedruckt, |
|
157 |
~ % wenn der Empfaenger nicht im eigenen Land sitzt. |
|
158 |
} |
|
159 |
} |
|
160 |
|
|
161 |
|
|
162 |
|
|
163 |
\begin{document} |
|
164 |
|
|
165 |
%%% dei folgenden Funktionen lesen den Dokumentennamen aus und _muessen_nach_ \begin{dokument} stehen. |
|
166 |
|
|
167 |
% ==== statische Begriffe in der aktuellen Sprache einlesen |
|
168 |
\input{translations} |
|
169 |
|
|
170 |
|
|
171 |
\ifthenelse{\bgPdfEmailOnly = 1 }{ |
|
172 |
\ifthenelse{\equal{\media}{email}}{ |
|
173 |
}{ |
|
174 |
\firsthead{} |
|
175 |
\watermark{} |
|
176 |
} |
|
177 |
}{} |
|
178 |
|
|
179 |
|
|
180 |
% ==== dokumenttyp ermitteln |
|
181 |
\IfStrEq{\docname}{pick_list}{ |
|
182 |
% Sammelliste |
|
183 |
\setkomavar{backaddress}{\DeliveryAddress} |
|
184 |
\firsthead{ |
|
185 |
\hspace{-3mm} |
|
186 |
\resizebox{\useplength{firstheadwidth}-50mm}{!}{% |
|
187 |
\huge \TitlePicklist |
|
188 |
} |
|
189 |
} |
|
190 |
\renewcommand{\NoValue}{1} |
|
191 |
\renewcommand{\Picklist}{1} |
|
192 |
\newcommand{\doctype}{} |
|
193 |
\newcommand{\MyDocdate}{\transdate} |
|
194 |
\newcommand{\DocNoTitle}{\DelorderNumber} |
|
195 |
\newcommand{\docnumber}{\donumber} |
|
196 |
\renewcommand{\deliverydate}{\transdate} |
|
197 |
% 2. Documentnummer |
|
198 |
\ifthenelse{\equal{\ordnumber}{\leer}}{ |
|
199 |
% wenn keine Auftragsnummer -> Angebotsnummer |
|
200 |
\newcommand{\SecNoTitle}{\QuotationNumber} |
|
201 |
\newcommand{\secnumber}{\quonumber} |
|
202 |
}{ |
|
203 |
\newcommand{\SecNoTitle}{\OrderNumber} |
|
204 |
\newcommand{\secnumber}{\ordnumber} |
|
205 |
} |
|
206 |
}{} |
|
207 |
\IfStrEq{\docname}{sales_delivery_order}{ |
|
208 |
% Lieferschein |
|
209 |
\renewcommand{\NoValue}{1} |
|
210 |
\newcommand{\doctype}{\TitleDelorder} |
|
211 |
\newcommand{\MyDocdate}{\transdate} |
|
212 |
\newcommand{\DocNoTitle}{\DelorderNumber} |
|
213 |
\newcommand{\docnumber}{\donumber} |
|
214 |
\renewcommand{\deliverydate}{\transdate} |
|
215 |
% 2. Documentnummer |
|
216 |
\ifthenelse{\equal{\ordnumber}{\leer}}{ |
|
217 |
% wenn keine Auftragsnummer -> Angebotsnummer |
|
218 |
\newcommand{\SecNoTitle}{\QuotationNumber} |
|
219 |
\newcommand{\secnumber}{\quonumber} |
|
220 |
}{ |
|
221 |
\newcommand{\SecNoTitle}{\OrderNumber} |
|
222 |
\newcommand{\secnumber}{\ordnumber} |
|
223 |
} |
|
224 |
}{} |
|
225 |
\IfStrEq{\docname}{invoice}{ |
|
226 |
% Rechnung |
|
227 |
\newcommand{\doctype}{\TitleInv} |
|
228 |
\newcommand{\MyDocdate}{\invdate} |
|
229 |
\newcommand{\DocNoTitle}{\InvNumber} |
|
230 |
\newcommand{\docnumber}{\invnumber} |
|
231 |
% 2. Documentnummer |
|
232 |
\ifthenelse{\equal{\ordnumber}{\leer}}{ |
|
233 |
% wenn keine Auftragsnummer -> Angebotsnummer |
|
234 |
\newcommand{\SecNoTitle}{\QuotationNumber} |
|
235 |
\newcommand{\secnumber}{\quonumber} |
|
236 |
}{ |
|
237 |
\newcommand{\SecNoTitle}{\OrderNumber} |
|
238 |
\newcommand{\secnumber}{\ordnumber} |
|
239 |
} |
|
240 |
}{} |
|
241 |
\IfStrEq{\docname}{proforma}{ |
|
242 |
\newcommand{\doctype}{\TitleProforma} |
|
243 |
\newcommand{\MyDocdate}{\invdate} |
|
244 |
\newcommand{\DocNoTitle}{\InvNumber} |
|
245 |
\newcommand{\docnumber}{\invnumber} |
|
246 |
% 2. Documentnummer |
|
247 |
\ifthenelse{\equal{\ordnumber}{\leer}}{ |
|
248 |
% wenn keine Auftragsnummer -> Angebotsnummer |
|
249 |
\newcommand{\SecNoTitle}{\QuotationNumber} |
|
250 |
\newcommand{\secnumber}{\quonumber} |
|
251 |
}{ |
|
252 |
\newcommand{\SecNoTitle}{\OrderNumber} |
|
253 |
\newcommand{\secnumber}{\ordnumber} |
|
254 |
} |
|
255 |
}{} |
|
256 |
\IfStrEq{\docname}{purchase_order}{ |
|
257 |
\renewcommand{\PurchaseOrder}{1} |
|
258 |
\newcommand{\doctype}{\TitlePurchaseOrder} |
|
259 |
\newcommand{\MyDocdate}{\orddate} |
|
260 |
\newcommand{\DocNoTitle}{\RequestOrderNumber} |
|
261 |
\newcommand{\docnumber}{\ordnumber} |
|
262 |
\renewcommand{\deliverydate}{\reqdate} |
|
263 |
\renewcommand{\DelDate}{\ReqByTitle} |
|
264 |
\renewcommand{\CustomerID}{\VendorID} |
|
265 |
\renewcommand{\kundennummer}{\vendornumber} |
|
266 |
\newcommand{\SecNoTitle}{} |
|
267 |
\newcommand{\secnumber}{} |
|
268 |
}{} |
|
269 |
\IfStrEq{\docname}{credit_note}{ |
|
270 |
\newcommand{\doctype}{\TitleCreditNote} |
|
271 |
\newcommand{\MyDocdate}{\invdate} |
|
272 |
\newcommand{\DocNoTitle}{\CredNumber} |
|
273 |
\newcommand{\docnumber}{\invnumber} |
|
274 |
% keine 2. Documentnummer |
|
275 |
\newcommand{\SecNoTitle}{} |
|
276 |
\newcommand{\secnumber}{} |
|
277 |
}{} |
|
278 |
\IfStrEq{\docname}{sales_order}{ |
|
279 |
% Auftragsbestaetigung |
|
280 |
\newcommand{\doctype}{\TitleSalesOrder} |
|
281 |
\newcommand{\MyDocdate}{\orddate} |
|
282 |
\renewcommand{\deliverydate}{\reqdate} |
|
283 |
\newcommand{\DocNoTitle}{\OrderNumber} |
|
284 |
\newcommand{\docnumber}{\ordnumber} |
|
285 |
% 2. Documentnummer |
|
286 |
\ifthenelse{\equal{\ordnumber}{\leer}}{ |
|
287 |
% wenn keine Angebotsnummer -> leer |
|
288 |
\newcommand{\SecNoTitle}{} |
|
289 |
\newcommand{\secnumber}{} |
|
290 |
}{ |
|
291 |
\newcommand{\SecNoTitle}{\QuotationNumber} |
|
292 |
\newcommand{\secnumber}{\quonumber} |
|
293 |
} |
|
294 |
}{ } |
|
295 |
\IfStrEq{\docname}{sales_quotation}{ |
|
296 |
% Angebot |
|
297 |
\newcommand{\doctype}{\TitleSalesQuotation} |
|
298 |
\newcommand{\MyDocdate}{\quodate} |
|
299 |
\renewcommand{\DelDate}{\ValidUntil} |
|
300 |
\renewcommand{\deliverydate}{\reqdate} |
|
301 |
\newcommand{\DocNoTitle}{\QuotationNumber} |
|
302 |
\newcommand{\docnumber}{\quonumber} |
|
303 |
% 2. Documentnummer |
|
304 |
\newcommand{\SecNoTitle}{} |
|
305 |
\newcommand{\secnumber}{} |
|
306 |
}{ } |
|
307 |
|
|
308 |
|
|
309 |
|
|
310 |
% ==== \paid auf 0.00 falls leer |
|
311 |
\IfSubStr{\paid}{\DecimalSign}{}{\renewcommand{\paid}{0{\DecimalSign}00}} |
|
312 |
|
|
313 |
|
|
314 |
|
|
315 |
\setkomavar{date}{} |
|
316 |
|
|
317 |
|
|
318 |
\begin{letter}{{\ifthenelse{\isnamedefined{MyAdressfield}}{\MyAdressfield |
|
319 |
}{\MyAdress |
|
320 |
}} |
|
321 |
} |
|
322 |
\opening{} |
|
323 |
|
|
324 |
%========Datum und Nummern==================================================== |
|
325 |
|
|
326 |
\newcommand{\DocId}{ |
|
327 |
\begin{tabular*}{\textwidth+1em }{@{\extracolsep{\fill}}llllr} |
|
328 |
\MakeUppercase{\tiny \DocNoTitle} & |
|
329 |
\MakeUppercase{\tiny \CustomerID} & |
|
330 |
\MakeUppercase{\tiny \SecNoTitle } & |
|
331 |
\MakeUppercase{\tiny \DelDate } & |
|
332 |
\MakeUppercase{\tiny \Date}~\\ |
|
333 |
\mainfont\docnumber & |
|
334 |
\mainfont\kundennummer & |
|
335 |
\mainfont\secnumber & |
|
336 |
\mainfont\deliverydate & |
|
337 |
\mainfont\MyDocdate~\\ |
|
338 |
\end{tabular*} ~\\ |
|
339 |
} |
|
340 |
|
|
341 |
\hspace{-0.5em} \DocId |
|
342 |
|
|
343 |
|
|
344 |
|
|
345 |
|
|
346 |
\nexthead{ |
|
347 |
\ifthenelse{\bgPdfFirstPageOnly = 1 }{ |
|
348 |
\hspace{-4mm} \DocId |
|
349 |
}{} |
|
350 |
} |
|
351 |
\vspace{ 5mm} |
|
352 |
|
|
353 |
{\noindent\textbf\doctype}~\\ |
|
354 |
\IfEndWith{\paymenttype}{\paymentPrivatEnd}{\PriceInclTax }{ } |
|
355 |
|
|
356 |
|
|
357 |
%======Die eigentliche-Tabelle======================================== |
|
358 |
|
|
359 |
% temporaere Datei mit Tabelle anlegen |
|
360 |
\begin{filecontents}{<%template_meta.tmpfile NOESCAPE%>.table.tex} |
|
361 |
\mainfont |
|
362 |
\resetlaufsumme |
|
363 |
|
|
364 |
|
|
365 |
|
|
366 |
\ifthenelse{\NoValue > 0 } |
|
367 |
{ % Tabelle ohne Preisen |
|
368 |
\ifthenelse{\Picklist = 1 }{ |
|
369 |
|
|
370 |
\begin{longtable}{@{}rlX@{ }rlrrrl@{}} |
|
371 |
}{ |
|
372 |
\begin{longtable}{@{}rlX@{ }rlrr@{}} |
|
373 |
|
|
374 |
} |
|
375 |
% Kopfzeile der Tabelle |
|
376 |
|
|
377 |
{\Pos} & |
|
378 |
{\Number} & |
|
379 |
{\ItemNo} & |
|
380 |
{\Count} & |
|
381 |
{\Unit} \hspace{2mm} |
|
382 |
\ifthenelse{\Picklist = 1 }{& {\Take} & {\Storage} }{} |
|
383 |
~\\ |
|
384 |
\midrule |
|
385 |
\endfirsthead |
|
386 |
|
|
387 |
% Tabellenkopf nach dem Umbruch |
|
388 |
{\Pos} & |
|
389 |
{\Number} & |
|
390 |
{\ItemNo} & |
|
391 |
{\Count} & |
|
392 |
{\Unit} \hspace{2mm} |
|
393 |
\ifthenelse{\Picklist = 1 }{& {\Take} & {\Storage} }{} |
|
394 |
~\\ |
|
395 |
|
|
396 |
\midrule |
|
397 |
\endhead |
|
398 |
|
|
399 |
<%foreach number%> |
|
400 |
<%runningnumber%> % Laufende Positionsnummer |
|
401 |
& |
|
402 |
<%number%> % Artikelnummer |
|
403 |
& |
|
404 |
<%description%> % Kurzbeschreibung des Artikels |
|
405 |
\ifthenelse{\equal{<%longdescription%>}{\leer}}{}{ \newline <%longdescription%>} |
|
406 |
% Ein zeilenweises Auslieferdatum, wenn es gesetzt bei der Position hinterlegt ist. |
|
407 |
\ifthenelse{\equal{<%deliverydate_oe%>}{\leer}}{}{ |
|
408 |
\newline \DelDate:~<%deliverydate_oe%>} |
|
409 |
& |
|
410 |
<%qty NOFORMAT%> % Menge |
|
411 |
& |
|
412 |
<%unit%> % Einheit |
|
413 |
%\ifthenelse{\Picklist = 1 }{& {x} & {x} }{} |
|
414 |
%\ifthenelse{\Picklist = 1 }{& {x} & {x} \hhline{~~~~~--} }{~\\} |
|
415 |
\ifthenelse{\Picklist = 1 }{& {\underline{;~~~~~~~~~}} & {\underline{;~~~~~~~~~}}~\\ }{~\\} |
|
416 |
%~\\ % |
|
417 |
<%end number%> |
|
418 |
\end{longtable} % Ende der zentralen Tabelle |
|
419 |
}{ % Tabelle mit Preisen |
|
420 |
\begin{longtable}{@{}rlX@{ }rlrrr@{}} |
|
421 |
% Kopfzeile der Tabelle |
|
422 |
|
|
423 |
{\Pos} & |
|
424 |
{\Number} & |
|
425 |
{\ItemNo} & |
|
426 |
{\Count} & |
|
427 |
{\Unit} & |
|
428 |
{\Fee} & |
|
429 |
{\Dis} & |
|
430 |
{\Total} \hspace{2mm} ~\\ |
|
431 |
\midrule |
|
432 |
\endfirsthead |
|
433 |
|
|
434 |
% Tabellenkopf nach dem Umbruch |
|
435 |
{\Pos} & |
|
436 |
{\Number} & |
|
437 |
{\ItemNo} & |
|
438 |
{\Count} & |
|
439 |
{\Unit} & |
|
440 |
{\Fee} & |
|
441 |
{\Dis} & |
|
442 |
{\Total} \hspace{2mm} ~\\ |
|
443 |
\midrule |
|
444 |
\multicolumn{7}{r}{ \rule{0mm}{5mm} \TabCarry{:} \MarkZwsumPos} |
|
445 |
\endhead |
|
446 |
|
|
447 |
|
|
448 |
% Fuss der Teiltabellen |
|
449 |
\multicolumn{7}{r}{ \rule{0mm}{5mm} \TabSubTotal{:} \MarkZwsumPos } ~\\ |
|
450 |
\endfoot |
|
451 |
|
|
452 |
% Das Ende der Tabelle |
|
453 |
\midrule |
|
454 |
\multicolumn{7}{r}{ \rule{0mm}{5mm} \TabSubTotal{:} \MarkZwsumPos} ~\\ |
|
455 |
\endlastfoot |
|
456 |
|
|
457 |
<%foreach number%> |
|
458 |
<%runningnumber%> % Laufende Positionsnummer |
|
459 |
& |
|
460 |
<%number%> % Artikelnummer |
|
461 |
& |
|
462 |
<%description%> % Kurzbeschreibung des Artikels |
|
463 |
\ifthenelse{\equal{<%longdescription%>}{\leer}}{}{ \newline <%longdescription%>} |
|
464 |
% Ein zeilenweises Auslieferdatum, wenn es gesetzt ist. |
|
465 |
\ifthenelse{\equal{<%reqdate%>}{\leer}}{}{ |
|
466 |
\newline \DelDate:~<%reqdate%>} |
|
467 |
& |
|
468 |
<%qty NOFORMAT%> % Menge |
|
469 |
& |
Auch abrufbar als: Unified diff
LaTeX-Druckvorlagen f-tex entfernt, doku und installation_check
installation_check -l prüft jetzt auf pdfx und die Version
Entsprechenden Hinweis in der Doku.
f-tex entfernt, die letzten Änderungen wurden von Geoff und Jan
in 2014 gemacht, der ursprüngliche Maintainer scheint seitdem inaktiv zu sein.