Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 86ab982c

Von Werner Hahn vor etwa 2 Monaten hinzugefügt

  • ID 86ab982c7698522344b40782376566d8269a1e25
  • Vorgänger 87eeaa6f

Dokumentation 'Wiederkehrende Rechnung'

Unterschiede anzeigen:

doc/dokumentation.xml
4126 4126
        wiederzufinden sind.</para>
4127 4127
      </sect2>
4128 4128

  
4129
      <sect2 id="features.periodic-invoices.configuration"
4129
      <sect2 id="features.periodic-invoices.global-configuration"
4130 4130
             xreflabel="Konfiguration von wiederkehrenden Rechnungen">
4131
        <title>Konfiguration</title>
4131
        <title>Konfiguration auf Belegebene</title>
4132 4132

  
4133 4133
        <para>Um einen Auftrag für wiederkehrende Rechnung zu konfigurieren,
4134
        findet sich beim Bearbeiten des Auftrags ein neuer Knopf
4134
        findet sich beim Bearbeiten des Auftrags ein Knopf
4135 4135
        "Konfigurieren", der ein neues Fenster öffnet, in dem man die nötigen
4136
        Parameter einstellen kann. Hinter dem Knopf wird außerdem noch
4136
        Parameter einstellen kann. Zusätzlich zu dem Knopf wird noch
4137 4137
        angezeigt, ob der Auftrag als wiederkehrende Rechnung konfiguriert ist
4138
        oder nicht.</para>
4138
        oder nicht(aktiv/inaktiv).</para>
4139

  
4140
        <screenshot>
4141
          <screeninfo>Übersicht Konfigurationeinstellung</screeninfo>
4139 4142

  
4143
          <mediaobject>
4144
            <imageobject>
4145
              <imagedata contentwidth="600" fileref="images/WR_Global_Config.png"/>
4146
            </imageobject>
4147
          </mediaobject>
4148
        </screenshot>
4140 4149
        <para>Folgende Parameter kann man konfigurieren:</para>
4141 4150

  
4142 4151
        <variablelist>
......
4221 4230
              Rechnungen auch gleich ausdrucken lassen.</para>
4222 4231
            </listitem>
4223 4232
          </varlistentry>
4233

  
4234
          <varlistentry>
4235
            <term>Email verschicken</term>
4236

  
4237
            <listitem>
4238
              <para>Ist zumindest eine Emailadresse beim Kunden hinterlegt, kann die zu erstellende Rechnung als Anhang einer Mail verschickt werden.</para>
4239
            </listitem>
4240
          </varlistentry>
4224 4241
        </variablelist>
4225 4242

  
4226 4243
        <para>Nach Erstellung der Rechnungen kann eine E-Mail mit
......
4231 4248
        <varname>[periodic_invoices]</varname>.</para>
4232 4249
      </sect2>
4233 4250

  
4251
      <sect2 id="features.periodic-invoices.position-configuration"
4252
             xreflabel="Konfiguration von wiederkehrenden Rechnungen">
4253
        <title>Konfiguration auf Positionsebene</title>
4254

  
4255
        <para>Es ist möglich auf Positionsebene individuelle wiederkehrende Konfigurationen
4256
        zu haben. Diese werden nur auf die Rechnung genommen, sofern die Periodizität
4257
        zum Rechnungslauf gültig ist. So ist es mögich pro Kunde nur einen Auftrag für
4258
        wiederkehrende Rechnung zu haben. Es wird immer die jeweils gültigen Positionen
4259
        in die Rechnung übernommen.</para>
4260

  
4261
        <para>Startdatum wird wenn nicht eingetragen ist aus der global Konfigurationen
4262
        des Beleges genommen.</para>
4263

  
4264
        <screenshot>
4265
          <screeninfo>Übersicht Konfigurationeinstellung</screeninfo>
4266

  
4267
          <mediaobject>
4268
            <imageobject>
4269
              <imagedata contentwidth="600" fileref="images/WR_Position_Config.png"/>
4270
            </imageobject>
4271
          </mediaobject>
4272
        </screenshot>
4273
        <para>Folgende Parameter kann man konfigurieren:</para>
4274
        <variablelist>
4275
          <varlistentry>
4276
            <term>gekündigt</term>
4277

  
4278
            <listitem>
4279
              <para>Bei nicht gekündigten Positionen wird automatisch eine Rechnung
4280
              erstellt, wenn die Periodizität erreicht ist (z.B. am Anfang
4281
              eines neuen Monats).</para>
4282

  
4283
            </listitem>
4284
          </varlistentry>
4285

  
4286
          <varlistentry>
4287
            <term>Periodizität</term>
4288

  
4289
            <listitem>
4290
              <para>Ob monatlich, quartalsweise oder jährlich auf neue
4291
              Rechnungen überprüft werden soll. Für jede Periode seit dem
4292
              Startdatum wird überprüft, ob für die Periode (beginnend immer
4293
              mit dem ersten Tag der Periode) schon eine Rechnung erstellt
4294
              wurde. Unter Umständen können bei einem Startdatum in der
4295
              Vergangenheit aber größer als das globale Startdatum
4296
              gleich mehrere Rechnungen erstellt werden.</para>
4297
            </listitem>
4298

  
4299
          </varlistentry>
4300

  
4301
        </variablelist>
4302
        <variablelist>
4303
            <itemizedlist>
4304
              <listitem>
4305
                <para>Stimmt mit der Abrechnungsperiodizität überein:
4306
                Die globalen Daten des Beleges werden übernommen.</para>
4307
              </listitem>
4308

  
4309
              <listitem>
4310
                <para>niemals: 
4311
                wird nie auf eine Rechnung übernommen, kann als Positions für die 
4312
                Auftragsbestätigung betrachtet werden oder für eigene Hinweise.</para>
4313
              </listitem>
4314

  
4315
              <listitem>
4316
                <para>einmalig: Mit dem Startdatum wird die Position einmalig auf einer 
4317
                Rechnung ausgewiesen</para>
4318
              </listitem>
4319

  
4320
              <listitem>
4321
                <para>monatlich: Mit dem Startdatum wird die Position entspechend der 
4322
                Periodizität auf einer Rechnung ausgewiesen</para>
4323
              </listitem>
4324

  
4325
              <listitem>
4326
                <para>vierteljährlich: Mit dem Startdatum wird die Position entspechend der 
4327
                Periodizität auf einer Rechnung ausgewiesen</para>
4328
              </listitem>
4329

  
4330
              <listitem>
4331
                <para>halbjährlich: Mit dem Startdatum wird die Position entspechend der 
4332
                Periodizität auf einer Rechnung ausgewiesen</para>
4333
              </listitem>
4334

  
4335
              <listitem>
4336
                <para>jährlich: Mit dem Startdatum wird die Position entspechend der 
4337
                Periodizität auf einer Rechnung ausgewiesen</para>
4338
              </listitem>
4339
            </itemizedlist>
4340
          <varlistentry>
4341
            <term>Startdatum</term>
4342

  
4343
            <listitem>
4344
              <para>ab welchem Datum auf Rechnungserstellung geprüft werden
4345
              soll</para>
4346
            </listitem>
4347
          </varlistentry>
4348

  
4349
          <varlistentry>
4350
            <term>Enddatum</term>
4351

  
4352
            <listitem>
4353
              <para>ab wann keine Rechnungen mehr erstellt werden
4354
              sollen</para>
4355
            </listitem>
4356
          </varlistentry>
4357

  
4358
          <varlistentry>
4359
            <term>Automatische Verlängerung um x Monate</term>
4360

  
4361
            <listitem>
4362
              <para>Sollen die wiederkehrenden Rechnungen bei Erreichen des
4363
              eingetragenen Enddatums weiterhin erstellt werden, so kann man
4364
              hier die Anzahl der Monate eingeben, um die das Enddatum
4365
              automatisch nach hinten geschoben wird.</para>
4366
            </listitem>
4367
          </varlistentry>
4368
        </variablelist>
4369

  
4370
        <para>Ist ein Auftrag nicht aktiv, so werden für ihn auch keine
4371
        wiederkehrenden Rechnungen erzeugt. Stellt man nach längerer
4372
        nicht-aktiver Zeit einen Auftrag wieder auf aktiv, wird beim
4373
        nächsten Periodenwechsel für alle Perioden, seit der letzten
4374
        aktiven Periode, jeweils eine Rechnung erstellt. Möchte man dies
4375
        verhindern, muss man vorher das Startdatum, sowohl in der Beleg- als auch in der 
4376
        Positionskonfiguration, neu setzen.</para>
4377

  
4378
        <para>Nicht mehr gültige und berechnete Positionen werden gelb hinterlegt und 
4379
        nicht nochmal in Rechnung gestellt</para>
4380

  
4381
        <screenshot>
4382
          <screeninfo>Schon in Rechnung gestellte und nicht mehr gültige Positionen
4383
          werden gelb markiert</screeninfo>
4384

  
4385
          <mediaobject>
4386
            <imageobject>
4387
              <imagedata contentwidth="600" fileref="images/WR_Yellow_Positions.png"/>
4388
            </imageobject>
4389
          </mediaobject>
4390
        </screenshot>
4391
      </sect2>
4392

  
4234 4393
      <sect2 id="features.periodic-invoices.variables">
4235 4394
        <title>Spezielle Variablen</title>
4236 4395

  
doc/html/ch03.html
6 6
        umgewandelt, so als ob man den Workflow benutzen würde, und auch die
7 7
        Auftragsnummer wird übernommen, sodass alle wiederkehrenden
8 8
        Rechnungen, die aus einem Auftrag erstellt wurden, später leicht
9
        wiederzufinden sind.</p></div><div class="sect2" title="3.1.2. Konfiguration"><div class="titlepage"><div><div><h3 class="title"><a name="features.periodic-invoices.configuration"></a>3.1.2. Konfiguration</h3></div></div></div><p>Um einen Auftrag für wiederkehrende Rechnung zu konfigurieren,
10
        findet sich beim Bearbeiten des Auftrags ein neuer Knopf
9
        wiederzufinden sind.</p></div><div class="sect2" title="3.1.2. Konfiguration auf Belegebene"><div class="titlepage"><div><div><h3 class="title"><a name="features.periodic-invoices.global-configuration"></a>3.1.2. Konfiguration auf Belegebene</h3></div></div></div><p>Um einen Auftrag für wiederkehrende Rechnung zu konfigurieren,
10
        findet sich beim Bearbeiten des Auftrags ein Knopf
11 11
        "Konfigurieren", der ein neues Fenster öffnet, in dem man die nötigen
12
        Parameter einstellen kann. Hinter dem Knopf wird außerdem noch
12
        Parameter einstellen kann. Zusätzlich zu dem Knopf wird noch
13 13
        angezeigt, ob der Auftrag als wiederkehrende Rechnung konfiguriert ist
14
        oder nicht.</p><p>Folgende Parameter kann man konfigurieren:</p><div class="variablelist"><dl><dt><span class="term">Status</span></dt><dd><p>Bei aktiven Rechnungen wird automatisch eine Rechnung
14
        oder nicht(aktiv/inaktiv).</p><div class="screenshot"><div class="mediaobject"><img src="images/WR_Global_Config.png"></div></div><p>Folgende Parameter kann man konfigurieren:</p><div class="variablelist"><dl><dt><span class="term">Status</span></dt><dd><p>Bei aktiven Rechnungen wird automatisch eine Rechnung
15 15
              erstellt, wenn die Periodizität erreicht ist (z.B. am Anfang
16 16
              eines neuen Monats).</p><p>Ist ein Auftrag nicht aktiv, so werden für ihn auch keine
17 17
              wiederkehrenden Rechnungen erzeugt. Stellt man nach längerer
......
33 33
              eingetragenen Enddatums weiterhin erstellt werden, so kann man
34 34
              hier die Anzahl der Monate eingeben, um die das Enddatum
35 35
              automatisch nach hinten geschoben wird.</p></dd><dt><span class="term">Drucken</span></dt><dd><p>Sind Drucker konfiguriert, so kann man sich die erstellten
36
              Rechnungen auch gleich ausdrucken lassen.</p></dd></dl></div><p>Nach Erstellung der Rechnungen kann eine E-Mail mit
36
              Rechnungen auch gleich ausdrucken lassen.</p></dd><dt><span class="term">Email verschicken</span></dt><dd><p>Ist zumindest eine Emailadresse beim Kunden hinterlegt, kann die zu erstellende Rechnung als Anhang einer Mail verschickt werden.</p></dd></dl></div><p>Nach Erstellung der Rechnungen kann eine E-Mail mit
37 37
        Informationen zu den erstellten Rechnungen verschickt werden.
38 38
        Konfiguriert wird dies in der <a class="link" href="ch02s05.html#config.config-file.sections-parameters" title="2.5.2. Abschnitte und Parameter">Konfigurationsdatei</a>
39 39
        
40 40
               <code class="filename">config/kivitendo.conf</code> im Abschnitt
41
        <code class="varname">[periodic_invoices]</code>.</p></div><div class="sect2" title="3.1.3. Spezielle Variablen"><div class="titlepage"><div><div><h3 class="title"><a name="features.periodic-invoices.variables"></a>3.1.3. Spezielle Variablen</h3></div></div></div><p>Um die erzeugten Rechnungen individualisieren zu können, werden
41
        <code class="varname">[periodic_invoices]</code>.</p></div><div class="sect2" title="3.1.3. Konfiguration auf Positionsebene"><div class="titlepage"><div><div><h3 class="title"><a name="features.periodic-invoices.position-configuration"></a>3.1.3. Konfiguration auf Positionsebene</h3></div></div></div><p>Es ist möglich auf Positionsebene individuelle wiederkehrende Konfigurationen
42
        zu haben. Diese werden nur auf die Rechnung genommen, sofern die Periodizität
43
        zum Rechnungslauf gültig ist. So ist es mögich pro Kunde nur einen Auftrag für
44
        wiederkehrende Rechnung zu haben. Es wird immer die jeweils gültigen Positionen
45
        in die Rechnung übernommen.</p><p>Startdatum wird wenn nicht eingetragen ist aus der global Konfigurationen
46
        des Beleges genommen.</p><div class="screenshot"><div class="mediaobject"><img src="images/WR_Position_Config.png"></div></div><p>Folgende Parameter kann man konfigurieren:</p><div class="variablelist"><dl><dt><span class="term">gekündigt</span></dt><dd><p>Bei nicht gekündigten Positionen wird automatisch eine Rechnung
47
              erstellt, wenn die Periodizität erreicht ist (z.B. am Anfang
48
              eines neuen Monats).</p></dd><dt><span class="term">Periodizität</span></dt><dd><p>Ob monatlich, quartalsweise oder jährlich auf neue
49
              Rechnungen überprüft werden soll. Für jede Periode seit dem
50
              Startdatum wird überprüft, ob für die Periode (beginnend immer
51
              mit dem ersten Tag der Periode) schon eine Rechnung erstellt
52
              wurde. Unter Umständen können bei einem Startdatum in der
53
              Vergangenheit aber größer als das globale Startdatum
54
              gleich mehrere Rechnungen erstellt werden.</p></dd></dl></div><div class="variablelist"><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Stimmt mit der Abrechnungsperiodizität überein:
55
                Die globalen Daten des Beleges werden übernommen.</p></li><li class="listitem"><p>niemals: 
56
                wird nie auf eine Rechnung übernommen, kann als Positions für die 
57
                Auftragsbestätigung betrachtet werden oder für eigene Hinweise.</p></li><li class="listitem"><p>einmalig: Mit dem Startdatum wird die Position einmalig auf einer 
58
                Rechnung ausgewiesen</p></li><li class="listitem"><p>monatlich: Mit dem Startdatum wird die Position entspechend der 
59
                Periodizität auf einer Rechnung ausgewiesen</p></li><li class="listitem"><p>vierteljährlich: Mit dem Startdatum wird die Position entspechend der 
60
                Periodizität auf einer Rechnung ausgewiesen</p></li><li class="listitem"><p>halbjährlich: Mit dem Startdatum wird die Position entspechend der 
61
                Periodizität auf einer Rechnung ausgewiesen</p></li><li class="listitem"><p>jährlich: Mit dem Startdatum wird die Position entspechend der 
62
                Periodizität auf einer Rechnung ausgewiesen</p></li></ul></div><dl><dt><span class="term">Startdatum</span></dt><dd><p>ab welchem Datum auf Rechnungserstellung geprüft werden
63
              soll</p></dd><dt><span class="term">Enddatum</span></dt><dd><p>ab wann keine Rechnungen mehr erstellt werden
64
              sollen</p></dd><dt><span class="term">Automatische Verlängerung um x Monate</span></dt><dd><p>Sollen die wiederkehrenden Rechnungen bei Erreichen des
65
              eingetragenen Enddatums weiterhin erstellt werden, so kann man
66
              hier die Anzahl der Monate eingeben, um die das Enddatum
67
              automatisch nach hinten geschoben wird.</p></dd></dl></div><p>Ist ein Auftrag nicht aktiv, so werden für ihn auch keine
68
        wiederkehrenden Rechnungen erzeugt. Stellt man nach längerer
69
        nicht-aktiver Zeit einen Auftrag wieder auf aktiv, wird beim
70
        nächsten Periodenwechsel für alle Perioden, seit der letzten
71
        aktiven Periode, jeweils eine Rechnung erstellt. Möchte man dies
72
        verhindern, muss man vorher das Startdatum, sowohl in der Beleg- als auch in der 
73
        Positionskonfiguration, neu setzen.</p><p>Nicht mehr gültige und berechnete Positionen werden gelb hinterlegt und 
74
        nicht nochmal in Rechnung gestellt</p><div class="screenshot"><div class="mediaobject"><img src="images/WR_Yellow_Positions.png"></div></div></div><div class="sect2" title="3.1.4. Spezielle Variablen"><div class="titlepage"><div><div><h3 class="title"><a name="features.periodic-invoices.variables"></a>3.1.4. Spezielle Variablen</h3></div></div></div><p>Um die erzeugten Rechnungen individualisieren zu können, werden
42 75
        beim Umwandeln des Auftrags in eine Rechnung einige speziell
43 76
        formatierte Variablen durch für die jeweils aktuelle
44 77
        Abrechnungsperiode gültigen Werte ersetzt. Damit ist es möglich, z.B.
......
142 175
            </p><p>Beim automatischen Versand der Rechnugen via E-Mail können neben diesen speziellen Variablen auch einige Eigenschaften der
143 176
        Rechnung selber als Variablen im Betreff &amp; dem Text der E-Mails genutzt werden. Beispiele sind
144 177
        <code class="varname">&lt;%invnumber%&gt;</code> für die Rechnungsnummber oder <code class="varname">&lt;transaction_description%&gt;</code> für die
145
        Vorgangsbezeichnung. Diese Variablen stehen beim Erzeugen der Rechnung logischerweise noch nicht zur Verfügung.</p></div><div class="sect2" title="3.1.4. Auflisten"><div class="titlepage"><div><div><h3 class="title"><a name="features.periodic-invoices.reports"></a>3.1.4. Auflisten</h3></div></div></div><p>Unter Verkauf-&gt;Berichte-&gt;Aufträge finden sich zwei neue
178
        Vorgangsbezeichnung. Diese Variablen stehen beim Erzeugen der Rechnung logischerweise noch nicht zur Verfügung.</p></div><div class="sect2" title="3.1.5. Auflisten"><div class="titlepage"><div><div><h3 class="title"><a name="features.periodic-invoices.reports"></a>3.1.5. Auflisten</h3></div></div></div><p>Unter Verkauf-&gt;Berichte-&gt;Aufträge finden sich zwei neue
146 179
        Checkboxen, "Wiederkehrende Rechnungen aktiv" und "Wiederkehrende
147 180
        Rechnungen inaktiv", mit denen man sich einen Überglick über die
148
        wiederkehrenden Rechnungen verschaffen kann.</p></div><div class="sect2" title="3.1.5. Erzeugung der eigentlichen Rechnungen"><div class="titlepage"><div><div><h3 class="title"><a name="features.periodic-invoices.task-server"></a>3.1.5. Erzeugung der eigentlichen Rechnungen</h3></div></div></div><p>Die zeitliche und periodische Überprüfung, ob eine
181
        wiederkehrenden Rechnungen verschaffen kann.</p></div><div class="sect2" title="3.1.6. Erzeugung der eigentlichen Rechnungen"><div class="titlepage"><div><div><h3 class="title"><a name="features.periodic-invoices.task-server"></a>3.1.6. Erzeugung der eigentlichen Rechnungen</h3></div></div></div><p>Die zeitliche und periodische Überprüfung, ob eine
149 182
        wiederkehrende Rechnung automatisch erstellt werden soll, geschieht
150 183
        durch den <a class="link" href="ch02s08.html" title="2.8. Der Task-Server">Task-Server</a>, einen
151 184
        externen Dienst, der automatisch beim Start des Servers gestartet
152
        werden sollte.</p></div><div class="sect2" title="3.1.6. Erste Rechnung für aktuellen Monat erstellen"><div class="titlepage"><div><div><h3 class="title"><a name="features.periodic-invoices.create-for-current-month"></a>3.1.6. Erste Rechnung für aktuellen Monat erstellen</h3></div></div></div><p>Will man im laufenden Monat eine monatlich wiederkehrende
185
        werden sollte.</p></div><div class="sect2" title="3.1.7. Erste Rechnung für aktuellen Monat erstellen"><div class="titlepage"><div><div><h3 class="title"><a name="features.periodic-invoices.create-for-current-month"></a>3.1.7. Erste Rechnung für aktuellen Monat erstellen</h3></div></div></div><p>Will man im laufenden Monat eine monatlich wiederkehrende
153 186
        Rechnung inkl. des laufenden Monats starten, stellt man das Startdatum
154 187
        auf den Monatsanfang und wartet ein paar Minuten, bis der Task-Server
155 188
        den neu konfigurieren Auftrag erkennt und daraus eine Rechnung
doc/html/ch03s03.html
421 421
                     </span></dt><dd><p>Vorgangsbezeichnung</p></dd><dt><span class="term">
422 422
                        <code class="varname">transdate</code>
423 423
                     </span></dt><dd><p>Auftragsdatum wenn die Rechnung aus einem Auftrag
424
                erstellt wurde</p></dd></dl></div></div><div class="sect3" title="3.3.8.2. Variablen für die schweizer QR-Rechnung"><div class="titlepage"><div><div><h4 class="title"><a name="d0e5949"></a>3.3.8.2. Variablen für die schweizer QR-Rechnung</h4></div></div></div><p>Diese Variablen können mit dem LaTeX Modul qrbill verwendet
424
                erstellt wurde</p></dd></dl></div></div><div class="sect3" title="3.3.8.2. Variablen für die schweizer QR-Rechnung"><div class="titlepage"><div><div><h4 class="title"><a name="d0e6040"></a>3.3.8.2. Variablen für die schweizer QR-Rechnung</h4></div></div></div><p>Diese Variablen können mit dem LaTeX Modul qrbill verwendet
425 425
          werden: <a class="ulink" href="https://ctan.org/pkg/qrbill?lang=de" target="_top">https://ctan.org/pkg/qrbill?lang=de</a>
426 426
               </p><p>Für die Erstellung von QR-Rechnungen mit OpenDocument Vorlagen
427 427
          siehe: <a class="xref" href="ch02s15.html" title="2.15. OpenDocument-Vorlagen">Abschnitt&nbsp;2.15, „OpenDocument-Vorlagen“</a>
......
681 681
                        <code class="varname">invdate</code>
682 682
                     </span></dt><dd><p>Rechnungsdatum</p></dd><dt><span class="term">
683 683
                        <code class="varname">invnumber</code>
684
                     </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="d0e6911"></a>3.3.10.1. Einführung</h4></div></div></div><p>Die Variablen in anderen Vorlagen sind ähnlich wie in der
684
                     </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="d0e7002"></a>3.3.10.1. Einführung</h4></div></div></div><p>Die Variablen in anderen Vorlagen sind ähnlich wie in der
685 685
          Rechnung. Allerdings heißen die Variablen, die mit
686 686
          <code class="varname">inv</code> beginnen, jetzt anders. Bei den Angeboten
687 687
          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.9.0: 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>&nbsp;</td><th width="60%" align="center">Kapitel 3. Features und Funktionen</th><td width="20%" align="right">&nbsp;<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="d0e7593"></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.9.0: 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>&nbsp;</td><th width="60%" align="center">Kapitel 3. Features und Funktionen</th><td width="20%" align="right">&nbsp;<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="d0e7684"></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="d0e7598"></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="d0e7689"></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="d0e7628"></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="d0e7719"></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>&lt; %separate_X_subtotal%&gt;</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>&lt;%separate_L_subtotal%&gt;</strong></span> und für
21 21
        Verpackungsmaterial <span class="bold"><strong>
22
        &lt;%separate_M_subtotal%&gt;</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="d0e7659"></a>3.7.4. Zwei-Zeichen Abkürzung</h3></div></div></div><p>Der Typ des Artikels und die Klassifizierung werden durch zwei
22
        &lt;%separate_M_subtotal%&gt;</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="d0e7750"></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.9.0: 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>&nbsp;</td><th width="60%" align="center">Kapitel 3. Features und Funktionen</th><td width="20%" align="right">&nbsp;<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="d0e7671"></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.9.0: 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>&nbsp;</td><th width="60%" align="center">Kapitel 3. Features und Funktionen</th><td width="20%" align="right">&nbsp;<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="d0e7762"></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="d0e7698"></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="d0e7789"></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="d0e7750"></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="d0e7841"></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="d0e7793"></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 &#34;Features&#34;"><div class="titlepage"><div><div><h5 class="title"><a name="d0e7799"></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="d0e7884"></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 &#34;Features&#34;"><div class="titlepage"><div><div><h5 class="title"><a name="d0e7890"></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 &#34;Allgemeine Dokumentenanhänge&#34;"><div class="titlepage"><div><div><h5 class="title"><a name="d0e7815"></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 &#34;Allgemeine Dokumentenanhänge&#34;"><div class="titlepage"><div><div><h5 class="title"><a name="d0e7906"></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.9.0: 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>&nbsp;</td><th width="60%" align="center">Kapitel 3. Features und Funktionen</th><td width="20%" align="right">&nbsp;<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="d0e7849"></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.9.0: 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>&nbsp;</td><th width="60%" align="center">Kapitel 3. Features und Funktionen</th><td width="20%" align="right">&nbsp;<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="d0e7940"></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="d0e7858"></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="d0e7873"></a>3.9.2. Konfiguration</h3></div></div></div><p>Unter System-&gt;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="d0e7881"></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="d0e7884"></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="d0e7949"></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="d0e7964"></a>3.9.2. Konfiguration</h3></div></div></div><p>Unter System-&gt;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="d0e7972"></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="d0e7975"></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="d0e7897"></a>3.9.3.2. Shopartikelliste</h4></div></div></div><p>Unter dem Menu Webshop-&gt;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="d0e7988"></a>3.9.3.2. Shopartikelliste</h4></div></div></div><p>Unter dem Menu Webshop-&gt;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 &lt;alles&gt;&lt;nur Preis&gt;&lt;nur
22 22
          Bestand&gt;&lt;Preis und Bestand&gt; 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="d0e7905"></a>3.9.4. Bestellimport</h3></div></div></div><p>Unter dem Menupunkt Webshop-&gt;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="d0e7996"></a>3.9.4. Bestellimport</h3></div></div></div><p>Unter dem Menupunkt Webshop-&gt;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="d0e7958"></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="d0e8049"></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/&lt;SHOPCONNECTORNAME&gt;.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="d0e8005"></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="d0e8096"></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="d0e8022"></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="d0e8113"></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/ch03s11.html
1 1
<html><head>
2 2
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
3
   <title>3.11. Reklamationen</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.9.0: Installation, Konfiguration, Entwicklung"><link rel="up" href="ch03.html" title="Kapitel 3. Features und Funktionen"><link rel="prev" href="ch03s10.html" title="3.10. ZUGFeRD Rechnungen"><link rel="next" href="ch03s12.html" title="3.12. Dispositionsmanager/Einkaufshelfer"></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.11. Reklamationen</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch03s10.html">Zurück</a>&nbsp;</td><th width="60%" align="center">Kapitel 3. Features und Funktionen</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="ch03s12.html">Weiter</a></td></tr></table><hr></div><div class="sect1" title="3.11. Reklamationen"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="features.reclamations"></a>3.11. Reklamationen</h2></div></div></div><p> Reklamationen dienen dazu im Verkauf die Kundenzufriedenheit zu verbessern und Fehler in der Abwicklung von Aufträgen aufzuspüren und dann zu vermeiden.</p><p>Im Einkauf helfen Reklamationen beanstandete Lieferungen zu verwalten und zu kontrollieren.</p><div class="sect2" title="3.11.1. Konfiguration des Reklamationsmodul"><div class="titlepage"><div><div><h3 class="title"><a name="d0e8048"></a>3.11.1. Konfiguration des Reklamationsmodul</h3></div></div></div><p>Unter dem Menu "System-&gt;Reklamationsgründe" muss mindestens ein Reklamationsgrund erfasst werden.</p><div class="mediaobject"><img src="images/Reklamationsgruende_anlegen.png"></div><p>Aufgrund der Gründe können später in den Berichten Auswertungen gemacht werden.</p><div class="mediaobject"><img src="images/Reklamationsgruende_liste.png"></div></div><div class="sect2" title="3.11.2. Reklamation erfassen"><div class="titlepage"><div><div><h3 class="title"><a name="d0e8061"></a>3.11.2. Reklamation erfassen</h3></div></div></div><p>Aus den Belegen EK/VK Auftrag, EK/VK Lieferschein, EK/VK Rechnung kann unter "Workflow-&gt;Reklöamation erfassen" eine dem Workflow zugehörige Reklamation erfasst werden.
3
   <title>3.11. Reklamationen</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.9.0: Installation, Konfiguration, Entwicklung"><link rel="up" href="ch03.html" title="Kapitel 3. Features und Funktionen"><link rel="prev" href="ch03s10.html" title="3.10. ZUGFeRD Rechnungen"><link rel="next" href="ch03s12.html" title="3.12. Dispositionsmanager/Einkaufshelfer"></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.11. Reklamationen</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch03s10.html">Zurück</a>&nbsp;</td><th width="60%" align="center">Kapitel 3. Features und Funktionen</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="ch03s12.html">Weiter</a></td></tr></table><hr></div><div class="sect1" title="3.11. Reklamationen"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="features.reclamations"></a>3.11. Reklamationen</h2></div></div></div><p> Reklamationen dienen dazu im Verkauf die Kundenzufriedenheit zu verbessern und Fehler in der Abwicklung von Aufträgen aufzuspüren und dann zu vermeiden.</p><p>Im Einkauf helfen Reklamationen beanstandete Lieferungen zu verwalten und zu kontrollieren.</p><div class="sect2" title="3.11.1. Konfiguration des Reklamationsmodul"><div class="titlepage"><div><div><h3 class="title"><a name="d0e8139"></a>3.11.1. Konfiguration des Reklamationsmodul</h3></div></div></div><p>Unter dem Menu "System-&gt;Reklamationsgründe" muss mindestens ein Reklamationsgrund erfasst werden.</p><div class="mediaobject"><img src="images/Reklamationsgruende_anlegen.png"></div><p>Aufgrund der Gründe können später in den Berichten Auswertungen gemacht werden.</p><div class="mediaobject"><img src="images/Reklamationsgruende_liste.png"></div></div><div class="sect2" title="3.11.2. Reklamation erfassen"><div class="titlepage"><div><div><h3 class="title"><a name="d0e8152"></a>3.11.2. Reklamation erfassen</h3></div></div></div><p>Aus den Belegen EK/VK Auftrag, EK/VK Lieferschein, EK/VK Rechnung kann unter "Workflow-&gt;Reklöamation erfassen" eine dem Workflow zugehörige Reklamation erfasst werden.
4 4
          Die Reklamationsmaske ähnelt im großem die der Auftragsmaske.</p><div class="mediaobject"><img src="images/Reklamation_erfassen.png"></div><p>Es werden alle Positionen aus dem Beleg übernomen. Deswegen müssen hie die Positionen angepasst werden.
5
          Zusätzlich muss noch ein Reklamationsgrund angegeben werden.</p><div class="mediaobject"><img src="images/Reklamation_erfassen_grund.png"></div><p>Die Reklamationsgründe sind für spätere Auswertungen notwendig</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"><a name="reclamations.anmerkung_grund_einkauf"></a>Anmerkung</th></tr><tr><td align="left" valign="top"><p>Anmerkung: Da bei einem Auftrag, sowohl im EK als auch im VK, noch keine Ware versendet bzw. empfangen wurde, könnte hier ein Reklamationsgrund "Lieferver sein.</p></td></tr></table></div></div><div class="sect2" title="3.11.3. Reklamationen auswerten"><div class="titlepage"><div><div><h3 class="title"><a name="d0e8079"></a>3.11.3. Reklamationen auswerten</h3></div></div></div><p>Bisher gibt es nur eine Liste mit Reklamationen und deren Filtermöglichkeiten.</p><div class="mediaobject"><img src="images/Reklamation_erfassen_grund.png"></div><p>Einen individuellen Reklamationsbericht kann über einen "benutzerdefinierten Datenexport" erstellt werden</p></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>&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="ch03.html">Nach oben</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="ch03s12.html">Weiter</a></td></tr><tr><td width="40%" align="left" valign="top">3.10. ZUGFeRD Rechnungen&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Zum Anfang</a></td><td width="40%" align="right" valign="top">&nbsp;3.12. Dispositionsmanager/Einkaufshelfer</td></tr></table></div></body></html>
5
          Zusätzlich muss noch ein Reklamationsgrund angegeben werden.</p><div class="mediaobject"><img src="images/Reklamation_erfassen_grund.png"></div><p>Die Reklamationsgründe sind für spätere Auswertungen notwendig</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"><a name="reclamations.anmerkung_grund_einkauf"></a>Anmerkung</th></tr><tr><td align="left" valign="top"><p>Anmerkung: Da bei einem Auftrag, sowohl im EK als auch im VK, noch keine Ware versendet bzw. empfangen wurde, könnte hier ein Reklamationsgrund "Lieferver sein.</p></td></tr></table></div></div><div class="sect2" title="3.11.3. Reklamationen auswerten"><div class="titlepage"><div><div><h3 class="title"><a name="d0e8170"></a>3.11.3. Reklamationen auswerten</h3></div></div></div><p>Bisher gibt es nur eine Liste mit Reklamationen und deren Filtermöglichkeiten.</p><div class="mediaobject"><img src="images/Reklamation_erfassen_grund.png"></div><p>Einen individuellen Reklamationsbericht kann über einen "benutzerdefinierten Datenexport" erstellt werden</p></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>&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="ch03.html">Nach oben</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="ch03s12.html">Weiter</a></td></tr><tr><td width="40%" align="left" valign="top">3.10. ZUGFeRD Rechnungen&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Zum Anfang</a></td><td width="40%" align="right" valign="top">&nbsp;3.12. Dispositionsmanager/Einkaufshelfer</td></tr></table></div></body></html>
doc/html/ch03s12.html
3 3
   <title>3.12. Dispositionsmanager/Einkaufshelfer</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.9.0: Installation, Konfiguration, Entwicklung"><link rel="up" href="ch03.html" title="Kapitel 3. Features und Funktionen"><link rel="prev" href="ch03s11.html" title="3.11. Reklamationen"><link rel="next" href="ch03s13.html" title="3.13. Zeiterfassung"></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.12. Dispositionsmanager/Einkaufshelfer</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch03s11.html">Zurück</a>&nbsp;</td><th width="60%" align="center">Kapitel 3. Features und Funktionen</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="ch03s13.html">Weiter</a></td></tr></table><hr></div><div class="sect1" title="3.12. Dispositionsmanager/Einkaufshelfer"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="features.dispositionsmanager"></a>3.12. Dispositionsmanager/Einkaufshelfer</h2></div></div></div><p> Der Einkaufshelfer generiert Lieferantenaufträge anhand eines Warenkorbes. Der Warenkorb kann
4 4
      einzeln oder mit dem Meldebestandsbericht gefüllt werden. Mit dem Filter „Lieferant“ im
5 5
      Warenkorb werden die Artikel einem Lieferanten zugeordnet und können dann bestellt, d.h. ein
6
      Lieferantenauftragerstellt, werden.</p><div class="sect2" title="3.12.1. So kommen die Artikel in den Einkaufswarenkorb:"><div class="titlepage"><div><div><h3 class="title"><a name="d0e8094"></a>3.12.1. So kommen die Artikel in den Einkaufswarenkorb:</h3></div></div></div><p>1) Sofern ein Artikel einen oder mehrere Lieferanten hat kann dieser über den Button „Einkaufen“
6
      Lieferantenauftragerstellt, werden.</p><div class="sect2" title="3.12.1. So kommen die Artikel in den Einkaufswarenkorb:"><div class="titlepage"><div><div><h3 class="title"><a name="d0e8185"></a>3.12.1. So kommen die Artikel in den Einkaufswarenkorb:</h3></div></div></div><p>1) Sofern ein Artikel einen oder mehrere Lieferanten hat kann dieser über den Button „Einkaufen“
7 7
        in den Einkaufswarenkorn gelegt werden. Soll der Einkauf über den Mindestlagerbestand gesteuert werden sind die Felder "Mindestlagerbestand" und "Bestellmenge" auszufüllen.</p><div class="mediaobject"><img src="images/Disp-Artikel.png"></div><p>Der Button „Einkaufen“ ist deaktiviert, wenn es keinen Lieferanten zu diesem Artikel gibt oder der
8 8
        Artikel schon im Einkaufswarenkorb liegt.</p><p>2) Bericht „Meldebestand“
9 9
      Über das Menu "Einkauf-&gt;Meldebestand" kann der Meldebestand abgerufen werden</p><div class="mediaobject"><img src="images/Disp-Einkauf-meldeb.png"></div><p>Die obere Tabelle zeigt die Artikel an, die den Mindestbestand unterschritten haben und können
10 10
        sofern markiert über die Aktion "Einkaufen" in den Einkaufswarenkorb gelegt werden. Hierzu muss
11
        das Feld Mindesbestand in den Artikelstammdaten einen Wert &gt; 0 haben</p><p>Die untere Tabelle zeigt die Artikel an, die den Mindestbestand unterschritten haben aber bestellt sind.</p></div><div class="sect2" title="3.12.2. Der Einkaufswarenkorb"><div class="titlepage"><div><div><h3 class="title"><a name="d0e8113"></a>3.12.2. Der Einkaufswarenkorb</h3></div></div></div><p>Ohne Filter: der erste Lieferant ist ausgewählt. Hier kann jetzt auch ein anderer Lieferant
11
        das Feld Mindesbestand in den Artikelstammdaten einen Wert &gt; 0 haben</p><p>Die untere Tabelle zeigt die Artikel an, die den Mindestbestand unterschritten haben aber bestellt sind.</p></div><div class="sect2" title="3.12.2. Der Einkaufswarenkorb"><div class="titlepage"><div><div><h3 class="title"><a name="d0e8204"></a>3.12.2. Der Einkaufswarenkorb</h3></div></div></div><p>Ohne Filter: der erste Lieferant ist ausgewählt. Hier kann jetzt auch ein anderer Lieferant
12 12
        ausgewählt werden.</p><div class="mediaobject"><img src="images/Disp-Einkauf-wrnkrb1.png"></div><p>Wird dann nach einem Lieferanten gefiltert und dieser ist und bleibt eindeutig, kann daraus ein
13 13
        Lieferantenauftrag erstellt werden.</p><div class="mediaobject"><img src="images/Disp-Einkauf-wrnkrb.png"></div><p>Die obere Tabelle zeigt die Artikel an, die den Mindestbestand unterschritten haben, der untere Teil zeigt alle
14 14
        Artikel des Lieferanten an, somit ist es möglich diese Artikel auszuwählen und gleich mitzubestellen</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch03s11.html">Zurück</a>&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="ch03.html">Nach oben</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="ch03s13.html">Weiter</a></td></tr><tr><td width="40%" align="left" valign="top">3.11. Reklamationen&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Zum Anfang</a></td><td width="40%" align="right" valign="top">&nbsp;3.13. Zeiterfassung</td></tr></table></div></body></html>
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.9.0: Installation, Konfiguration, Entwicklung"><link rel="up" href="index.html" title="kivitendo 3.9.0: Installation, Konfiguration, Entwicklung"><link rel="prev" href="ch03s13.html" title="3.13. Zeiterfassung"><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="ch03s13.html">Zurück</a>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="ch04s02.html">Weiter</a></td></tr></table><hr></div><div class="chapter" title="Kapitel 4. Entwicklerdokumentation"><div class="titlepage"><div><div><h2 class="title"><a name="d0e8432"></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="d0e8438"></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.9.0: Installation, Konfiguration, Entwicklung"><link rel="up" href="index.html" title="kivitendo 3.9.0: Installation, Konfiguration, Entwicklung"><link rel="prev" href="ch03s13.html" title="3.13. Zeiterfassung"><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="ch03s13.html">Zurück</a>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="ch04s02.html">Weiter</a></td></tr></table><hr></div><div class="chapter" title="Kapitel 4. Entwicklerdokumentation"><div class="titlepage"><div><div><h2 class="title"><a name="d0e8523"></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="d0e8529"></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="d0e8539"></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="d0e8630"></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="d0e8572"></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="d0e8663"></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="d0e8636"></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="d0e8727"></a>4.1.3.1. $::form</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Ist ein Objekt der Klasse
66 66
              "<code class="classname">Form</code>"</p></li><li class="listitem"><p>Wird nach jedem Request gelöscht</p></li><li class="listitem"><p>Muss auch in Tests und Konsolenscripts vorhanden
67 67
              sein.</p></li><li class="listitem"><p>Enthält am Anfang eines Requests die Requestparameter vom
68 68
              User</p></li><li class="listitem"><p>Kann zwar intern über Requestgrenzen ein Datenbankhandle
......
110 110
  push @{ $form-&gt;{TEMPLATE_ARRAYS}{number} },          $form-&gt;{"partnumber_$i"};
111 111
  push @{ $form-&gt;{TEMPLATE_ARRAYS}{description} },     $form-&gt;{"description_$i"};
112 112
  # ...
113
}</pre></div><div class="sect3" title="4.1.3.2. %::myconfig"><div class="titlepage"><div><div><h4 class="title"><a name="d0e8720"></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="d0e8811"></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
          -&gt; <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="d0e8759"></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="d0e8850"></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="d0e8777"></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="d0e8868"></a>4.1.3.4. $::lxdebug</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Objekt der Klasse "LXDebug"</p></li><li class="listitem"><p>Wird global gecached</p></li><li class="listitem"><p>Muss immer verfügbar sein, in nahezu allen
129 129
              Funktionen</p></li></ul></div><p>
130 130
                  <code class="varname">$::lxdebug</code> stellt Debuggingfunktionen
131 131
          bereit, wie "<code class="function">enter_sub</code>" und
......
135 135
          "<code class="function">message</code>" und "<code class="function">dump</code>" mit
136 136
          denen man flott Informationen ins Log (tmp/kivitendo-debug.log)
137 137
          packen kann.</p><p>Beispielsweise so:</p><pre class="programlisting">$main::lxdebug-&gt;message(0, 'Meine Konfig:' . Dumper (%::myconfig));
138
$main::lxdebug-&gt;message(0, 'Wer bin ich? Kunde oder Lieferant:' . $form-&gt;{vc});</pre></div><div class="sect3" title="4.1.3.5. $::auth"><div class="titlepage"><div><div><h4 class="title"><a name="d0e8814"></a>4.1.3.5. $::auth</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Objekt der Klasse "SL::Auth"</p></li><li class="listitem"><p>Wird global gecached</p></li><li class="listitem"><p>Hat eine permanente DB Verbindung zur Authdatenbank</p></li><li class="listitem"><p>Wird nach jedem Request resettet.</p></li></ul></div><p>
138
$main::lxdebug-&gt;message(0, 'Wer bin ich? Kunde oder Lieferant:' . $form-&gt;{vc});</pre></div><div class="sect3" title="4.1.3.5. $::auth"><div class="titlepage"><div><div><h4 class="title"><a name="d0e8905"></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-&gt;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="d0e8843"></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="d0e8934"></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-&gt;{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="d0e8879"></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="d0e8970"></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-&gt;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="d0e8900"></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="d0e8991"></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="d0e8918"></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="d0e9009"></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="d0e8960"></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="d0e8965"></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="d0e9051"></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="d0e9056"></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-&gt;{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="d0e8981"></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="d0e9072"></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-&gt;{cache}{all_units}</code>
190 190
                     </p></li><li class="listitem"><p>Wird nur in
191 191
              <code class="function">AM-&gt;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="d0e9000"></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="d0e9091"></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="ch03s13.html">Zurück</a>&nbsp;</td><td width="20%" align="center">&nbsp;</td><td width="40%" align="right">&nbsp;<a accesskey="n" href="ch04s02.html">Weiter</a></td></tr><tr><td width="40%" align="left" valign="top">3.13. Zeiterfassung&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Zum Anfang</a></td><td width="40%" align="right" valign="top">&nbsp;4.2. Entwicklung unter FastCGI</td></tr></table></div></body></html>
doc/html/index.html
3 3
   <title>kivitendo 3.9.0: 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.9.0: 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.9.0: Installation, Konfiguration,
4 4
  Entwicklung</th></tr><tr><td width="20%" align="left">&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="ch01.html">Weiter</a></td></tr></table><hr></div><div lang="de" class="book" title="kivitendo 3.9.0: Installation, Konfiguration, Entwicklung"><div class="titlepage"><div><div><h1 class="title"><a name="kivitendo-documentation"></a>kivitendo 3.9.0: Installation, Konfiguration,
5 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#d0e749">2.2.3. Andere Pakete installieren</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s03.html">2.3. Installation mittels Ansible auf Ubuntu 22.04</a></span></dt><dt><span class="sect1"><a href="ch02s04.html">2.4. Manuelle Installation des Programmpaketes</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s04.html#Installation-mit-git">2.4.1. Installation mit git</a></span></dt><dt><span class="sect2"><a href="ch02s04.html#Installation_mit_Github">2.4.2. Installation über die Github Website</a></span></dt><dt><span class="sect2"><a href="ch02s04.html#restliche-Verzeichnisse-erstellen-und-Besitzer-%C3%A4ndern">2.4.3. Restliche Verzeichnisse ändern und bearbeiten</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s05.html">2.5. kivitendo-Konfigurationsdatei</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s05.html#config.config-file.introduction">2.5.1. Einführung</a></span></dt><dt><span class="sect2"><a href="ch02s05.html#config.config-file.sections-parameters">2.5.2. Abschnitte und Parameter</a></span></dt><dt><span class="sect2"><a href="ch02s05.html#config.config-file.prior-versions">2.5.3. Versionen vor 2.6.3</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s06.html">2.6. Anpassung der PostgreSQL-Konfiguration</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s06.html#Zeichens%C3%A4tze-die-Verwendung-von-UTF-8">2.6.1. Zeichensätze/die Verwendung von Unicode/UTF-8</a></span></dt><dt><span class="sect2"><a href="ch02s06.html#%C3%84nderungen-an-Konfigurationsdateien">2.6.2. Änderungen an Konfigurationsdateien</a></span></dt><dt><span class="sect2"><a href="ch02s06.html#Erweiterung-f%C3%BCr-servergespeicherte-Prozeduren">2.6.3. Erweiterung für servergespeicherte Prozeduren</a></span></dt><dt><span class="sect2"><a href="ch02s06.html#Erweiterung-f%C3%BCr-trigram">2.6.4. Erweiterung für Trigram Prozeduren</a></span></dt><dt><span class="sect2"><a href="ch02s06.html#Datenbankbenutzer-anlegen">2.6.5. Datenbankbenutzer anlegen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s07.html">2.7. Webserver-Konfiguration</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s07.html#d0e1293">2.7.1. Grundkonfiguration mittels CGI</a></span></dt><dt><span class="sect2"><a href="ch02s07.html#Apache-Konfiguration.FCGI">2.7.2. Konfiguration für FastCGI/FCGI</a></span></dt><dt><span class="sect2"><a href="ch02s07.html#d0e1447">2.7.3. Authentifizierung mittels HTTP Basic Authentication</a></span></dt><dt><span class="sect2"><a href="ch02s07.html#d0e1463">2.7.4. Aktivierung von mod_rewrite/directory_match für git basierte Installationen</a></span></dt><dt><span class="sect2"><a href="ch02s07.html#d0e1477">2.7.5. Weitergehende Konfiguration</a></span></dt><dt><span class="sect2"><a href="ch02s07.html#d0e1488">2.7.6. Aktivierung von Apache2 modsecurity</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s08.html">2.8. Der Task-Server</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s08.html#Konfiguration-des-Task-Servers">2.8.1. Verfügbare und notwendige Konfigurationsoptionen</a></span></dt><dt><span class="sect2"><a href="ch02s08.html#Konfiguration-der-Mandanten-fuer-den-Task-Servers">2.8.2. Konfiguration der Mandanten für den Task-Server</a></span></dt><dt><span class="sect2"><a href="ch02s08.html#Einbinden-in-den-Boot-Prozess">2.8.3. Automatisches Starten des Task-Servers beim Booten</a></span></dt><dt><span class="sect2"><a href="ch02s08.html#Prozesskontrolle">2.8.4. Wie der Task-Server gestartet und beendet wird</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s09.html">2.9. Konfiguration der Hintergrund-Jobs</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s09.html#Hintergrund-Job SetNumberRange">2.9.1. SetNumberRange</a></span></dt><dt><span class="sect2"><a href="ch02s09.html#Hintergrund-Job ImportRecordEmails">2.9.2. ImportRecordEmails</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s10.html">2.10. Benutzerauthentifizierung und Administratorpasswort</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s10.html#Grundlagen-zur-Benutzerauthentifizierung">2.10.1. Grundlagen zur Benutzerauthentifizierung</a></span></dt><dt><span class="sect2"><a href="ch02s10.html#Administratorpasswort">2.10.2. Administratorpasswort</a></span></dt><dt><span class="sect2"><a href="ch02s10.html#Authentifizierungsdatenbank">2.10.3. Authentifizierungsdatenbank</a></span></dt><dt><span class="sect2"><a href="ch02s10.html#Passwort%C3%BCberpr%C3%BCfung">2.10.4. Passwortüberprüfung</a></span></dt><dt><span class="sect2"><a href="ch02s10.html#Name-des-Session-Cookies">2.10.5. Name des Session-Cookies</a></span></dt><dt><span class="sect2"><a href="ch02s10.html#Anlegen-der-Authentifizierungsdatenbank">2.10.6. Anlegen der Authentifizierungsdatenbank</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s11.html">2.11. Mandanten-, Benutzer- und Gruppenverwaltung</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s11.html#Zusammenh%C3%A4nge">2.11.1. Zusammenhänge</a></span></dt><dt><span class="sect2"><a href="ch02s11.html#Mandanten-Benutzer-Gruppen">2.11.2. Mandanten, Benutzer und Gruppen</a></span></dt><dt><span class="sect2"><a href="ch02s11.html#Datenbanken-anlegen">2.11.3. Datenbanken anlegen</a></span></dt><dt><span class="sect2"><a href="ch02s11.html#Gruppen-anlegen">2.11.4. Gruppen anlegen</a></span></dt><dt><span class="sect2"><a href="ch02s11.html#Benutzer-anlegen">2.11.5. Benutzer anlegen</a></span></dt><dt><span class="sect2"><a href="ch02s11.html#Mandanten-anlegen">2.11.6. Mandanten anlegen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s12.html">2.12. Drucker- und Systemverwaltung</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s12.html#Druckeradministration">2.12.1. Druckeradministration</a></span></dt><dt><span class="sect2"><a href="ch02s12.html#System">2.12.2. System sperren / entsperren</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s13.html">2.13. E-Mail</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s13.html#config.sending-email">2.13.1. E-Mail-Versand aus kivitendo heraus</a></span></dt><dt><span class="sect2"><a href="ch02s13.html#config.sent_emails_in_imap">2.13.2. Versendete E-Mails über IMAP exportieren</a></span></dt><dt><span class="sect2"><a href="ch02s13.html#config.imap_client">2.13.3. E-Mails in kivitendo importieren</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s14.html">2.14. Drucken mit kivitendo</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s14.html#Vorlagenverzeichnis-anlegen">2.14.1. Vorlagenverzeichnis anlegen</a></span></dt><dt><span class="sect2"><a href="ch02s14.html#Aufbau des marei Vorlagensatzes">2.14.2. Der Druckvorlagensatz marei</a></span></dt><dt><span class="sect2"><a href="ch02s14.html#Vorlagen-RB">2.14.3. Der Druckvorlagensatz RB</a></span></dt><dt><span class="sect2"><a href="ch02s14.html#Vorlagen-rev-odt">2.14.4. Der Druckvorlagensatz rev-odt</a></span></dt><dt><span class="sect2"><a href="ch02s14.html#allgemeine-hinweise-zu-latex">2.14.5. Allgemeine Hinweise zu LaTeX Vorlagen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s15.html">2.15. OpenDocument-Vorlagen</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s15.html#d0e3081">2.15.1. Grundeinstellung</a></span></dt><dt><span class="sect2"><a href="ch02s15.html#d0e3098">2.15.2. Direkte Erzeugung von PDF-Dateien</a></span></dt><dt><span class="sect2"><a href="ch02s15.html#d0e3149">2.15.3. Vorbereitungen</a></span></dt><dt><span class="sect2"><a href="ch02s15.html#d0e3205">2.15.4. Schweizer QR-Rechnung mit OpenDocument Vorlagen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s16.html">2.16. Nomenklatur</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s16.html#booking.dates">2.16.1. Datum bei Buchungen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s17.html">2.17. Konfiguration zur Einnahmenüberschussrechnung/Bilanzierung:
6
      EUR</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s17.html#config.eur.introduction">2.17.1. Einführung</a></span></dt><dt><span class="sect2"><a href="ch02s17.html#config.eur.parameters">2.17.2. Konfigurationsparameter</a></span></dt><dt><span class="sect2"><a href="ch02s17.html#config.eur.setting-parameters">2.17.3. Festlegen der Parameter</a></span></dt><dt><span class="sect2"><a href="ch02s17.html#config.eur.inventory-system-perpetual">2.17.4. Bemerkungen zur Bestandsmethode</a></span></dt><dt><span class="sect2"><a href="ch02s17.html#config.eur.knonw-issues">2.17.5. Bekannte Probleme</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s18.html">2.18. SKR04 19% Umstellung für innergemeinschaftlichen Erwerb</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s18.html#config.skr04-update-3804.introduction">2.18.1. Einführung</a></span></dt><dt><span class="sect2"><a href="ch02s18.html#config.skr04-update-3804.create-chart">2.18.2. Konto 3804 manuell anlegen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s19.html">2.19. Verhalten des Bilanzberichts</a></span></dt><dt><span class="sect1"><a href="ch02s20.html">2.20. Jahresabschluss</a></span></dt><dt><span class="sect1"><a href="ch02s21.html">2.21. Erfolgsrechnung</a></span></dt><dt><span class="sect1"><a href="ch02s22.html">2.22. Rundung in Verkaufsbelegen</a></span></dt><dt><span class="sect1"><a href="ch02s23.html">2.23. Einstellungen pro Mandant</a></span></dt><dt><span class="sect1"><a href="ch02s24.html">2.24. 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
6
      EUR</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s17.html#config.eur.introduction">2.17.1. Einführung</a></span></dt><dt><span class="sect2"><a href="ch02s17.html#config.eur.parameters">2.17.2. Konfigurationsparameter</a></span></dt><dt><span class="sect2"><a href="ch02s17.html#config.eur.setting-parameters">2.17.3. Festlegen der Parameter</a></span></dt><dt><span class="sect2"><a href="ch02s17.html#config.eur.inventory-system-perpetual">2.17.4. Bemerkungen zur Bestandsmethode</a></span></dt><dt><span class="sect2"><a href="ch02s17.html#config.eur.knonw-issues">2.17.5. Bekannte Probleme</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s18.html">2.18. SKR04 19% Umstellung für innergemeinschaftlichen Erwerb</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02s18.html#config.skr04-update-3804.introduction">2.18.1. Einführung</a></span></dt><dt><span class="sect2"><a href="ch02s18.html#config.skr04-update-3804.create-chart">2.18.2. Konto 3804 manuell anlegen</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02s19.html">2.19. Verhalten des Bilanzberichts</a></span></dt><dt><span class="sect1"><a href="ch02s20.html">2.20. Jahresabschluss</a></span></dt><dt><span class="sect1"><a href="ch02s21.html">2.21. Erfolgsrechnung</a></span></dt><dt><span class="sect1"><a href="ch02s22.html">2.22. Rundung in Verkaufsbelegen</a></span></dt><dt><span class="sect1"><a href="ch02s23.html">2.23. Einstellungen pro Mandant</a></span></dt><dt><span class="sect1"><a href="ch02s24.html">2.24. 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.global-configuration">3.1.2. Konfiguration auf Belegebene</a></span></dt><dt><span class="sect2"><a href="ch03.html#features.periodic-invoices.position-configuration">3.1.3. Konfiguration auf Positionsebene</a></span></dt><dt><span class="sect2"><a href="ch03.html#features.periodic-invoices.variables">3.1.4. Spezielle Variablen</a></span></dt><dt><span class="sect2"><a href="ch03.html#features.periodic-invoices.reports">3.1.5. Auflisten</a></span></dt><dt><span class="sect2"><a href="ch03.html#features.periodic-invoices.task-server">3.1.6. Erzeugung der eigentlichen Rechnungen</a></span></dt><dt><span class="sect2"><a href="ch03.html#features.periodic-invoices.create-for-current-month">3.1.7. 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#d0e7593">3.7.1. Übersicht</a></span></dt><dt><span class="sect2"><a href="ch03s07.html#d0e7598">3.7.2. Basisklassifizierung</a></span></dt><dt><span class="sect2"><a href="ch03s07.html#d0e7628">3.7.3. Attribute</a></span></dt><dt><span class="sect2"><a href="ch03s07.html#d0e7659">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#d0e7671">3.8.1. Übersicht</a></span></dt><dt><span class="sect2"><a href="ch03s08.html#d0e7698">3.8.2. Struktur</a></span></dt><dt><span class="sect2"><a href="ch03s08.html#d0e7750">3.8.3. Anwendung</a></span></dt><dt><span class="sect2"><a href="ch03s08.html#d0e7793">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#d0e7858">3.9.1. Rechte für die Webshopapi</a></span></dt><dt><span class="sect2"><a href="ch03s09.html#d0e7873">3.9.2. Konfiguration</a></span></dt><dt><span class="sect2"><a href="ch03s09.html#d0e7881">3.9.3. Webshopartikel</a></span></dt><dt><span class="sect2"><a href="ch03s09.html#d0e7905">3.9.4. Bestellimport</a></span></dt><dt><span class="sect2"><a href="ch03s09.html#d0e7958">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><dt><span class="sect1"><a href="ch03s11.html">3.11. Reklamationen</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch03s11.html#d0e8048">3.11.1. Konfiguration des Reklamationsmodul</a></span></dt><dt><span class="sect2"><a href="ch03s11.html#d0e8061">3.11.2. Reklamation erfassen</a></span></dt><dt><span class="sect2"><a href="ch03s11.html#d0e8079">3.11.3. Reklamationen auswerten</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch03s12.html">3.12. Dispositionsmanager/Einkaufshelfer</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch03s12.html#d0e8094">3.12.1. So kommen die Artikel in den Einkaufswarenkorb:</a></span></dt><dt><span class="sect2"><a href="ch03s12.html#d0e8113">3.12.2. Der Einkaufswarenkorb</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch03s13.html">3.13. Zeiterfassung</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch03s13.html#features.timerecording.config">3.13.1. Konfiguration</a></span></dt><dt><span class="sect2"><a href="ch03s13.html#features.timerecording.add">3.13.2. Erfassen</a></span></dt><dt><span class="sect2"><a href="ch03s13.html#features.timerecording.report">3.13.3. Bericht</a></span></dt><dt><span class="sect2"><a href="ch03s13.html#features.timerecording.conversion">3.13.4. Konvertierung zu Lieferscheinen</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#d0e8438">4.1.1. Wie sehen globale Variablen in Perl aus?</a></span></dt><dt><span class="sect2"><a href="ch04.html#d0e8539">4.1.2. Warum sind globale Variablen ein Problem?</a></span></dt><dt><span class="sect2"><a href="ch04.html#d0e8572">4.1.3. Kanonische globale Variablen</a></span></dt><dt><span class="sect2"><a href="ch04.html#d0e8960">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#d0e7684">3.7.1. Übersicht</a></span></dt><dt><span class="sect2"><a href="ch03s07.html#d0e7689">3.7.2. Basisklassifizierung</a></span></dt><dt><span class="sect2"><a href="ch03s07.html#d0e7719">3.7.3. Attribute</a></span></dt><dt><span class="sect2"><a href="ch03s07.html#d0e7750">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#d0e7762">3.8.1. Übersicht</a></span></dt><dt><span class="sect2"><a href="ch03s08.html#d0e7789">3.8.2. Struktur</a></span></dt><dt><span class="sect2"><a href="ch03s08.html#d0e7841">3.8.3. Anwendung</a></span></dt><dt><span class="sect2"><a href="ch03s08.html#d0e7884">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#d0e7949">3.9.1. Rechte für die Webshopapi</a></span></dt><dt><span class="sect2"><a href="ch03s09.html#d0e7964">3.9.2. Konfiguration</a></span></dt><dt><span class="sect2"><a href="ch03s09.html#d0e7972">3.9.3. Webshopartikel</a></span></dt><dt><span class="sect2"><a href="ch03s09.html#d0e7996">3.9.4. Bestellimport</a></span></dt><dt><span class="sect2"><a href="ch03s09.html#d0e8049">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><dt><span class="sect1"><a href="ch03s11.html">3.11. Reklamationen</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch03s11.html#d0e8139">3.11.1. Konfiguration des Reklamationsmodul</a></span></dt><dt><span class="sect2"><a href="ch03s11.html#d0e8152">3.11.2. Reklamation erfassen</a></span></dt><dt><span class="sect2"><a href="ch03s11.html#d0e8170">3.11.3. Reklamationen auswerten</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch03s12.html">3.12. Dispositionsmanager/Einkaufshelfer</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch03s12.html#d0e8185">3.12.1. So kommen die Artikel in den Einkaufswarenkorb:</a></span></dt><dt><span class="sect2"><a href="ch03s12.html#d0e8204">3.12.2. Der Einkaufswarenkorb</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch03s13.html">3.13. Zeiterfassung</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch03s13.html#features.timerecording.config">3.13.1. Konfiguration</a></span></dt><dt><span class="sect2"><a href="ch03s13.html#features.timerecording.add">3.13.2. Erfassen</a></span></dt><dt><span class="sect2"><a href="ch03s13.html#features.timerecording.report">3.13.3. Bericht</a></span></dt><dt><span class="sect2"><a href="ch03s13.html#features.timerecording.conversion">3.13.4. Konvertierung zu Lieferscheinen</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#d0e8529">4.1.1. Wie sehen globale Variablen in Perl aus?</a></span></dt><dt><span class="sect2"><a href="ch04.html#d0e8630">4.1.2. Warum sind globale Variablen ein Problem?</a></span></dt><dt><span class="sect2"><a href="ch04.html#d0e8663">4.1.3. Kanonische globale Variablen</a></span></dt><dt><span class="sect2"><a href="ch04.html#d0e9051">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">&nbsp;</td><td width="20%" align="center">&nbsp;</td><td width="40%" align="right">&nbsp;<a accesskey="n" href="ch01.html">Weiter</a></td></tr><tr><td width="40%" align="left" valign="top">&nbsp;</td><td width="20%" align="center">&nbsp;</td><td width="40%" align="right" valign="top">&nbsp;Kapitel 1. Aktuelle Hinweise</td></tr></table></div></body></html>

Auch abrufbar als: Unified diff