Try ERPNext Buy Support Partners Foundation

How to add german DIN5008 - please note this thread is in German!

I will write in german, because it’s a problem for german users.

Ich möchte alle Briefe, Rechnungen etc. im DIN5008-Layout drucken (ERPnext v12).
Es gibt diese Vorlage für CSS und HTML


Gemäß @rmeyer soll der code in eine neue Druckvorlage eingefügt werden.
Hier habe ich aber nur die Möglichkeit, CSS zu hinterlegen.
Weiterhin soll ein document type angegeben werden.
Meiner Interpretation nach bezieht sich die Vorlage dann aber nur auf dieses eine Dokument?

Wie ist der richtige Weg, um DIN5008 für alle benötigten Formulare anzulegen?

Michael

Ja, das ist korrekt. Das HTML in der GitHub-Issue beinhaltet auch nur das Layout und nicht die DocType-spezifischen Inhalte.

In ERPNext sollte das in etwa so aussehen:

Falls du Hilfe bei der Einrichtung brauchst, oder das Layout auf spezifische DocTypes anpassen lassen möchtest, kannst du dich gerne bei mir melden (raffael@alyf.de).

Okay, habe die virtuelle Maschine zurückgesetzt, Steuern , Artikel etc. angelegt und hab es so eingefügt. Allerdings ist das Ergebnis, nun ja… ernüchternd (sagt der craft beer Brauer :-))

Aber ERPnext meckert auch über falsche öffnen/schliessen-Tags im HTML (sehen aber richtig aus)
Muss den screenshot separat einfügen wegen Bilderbegerenzung bei neuen usern…

“Was tun?” sprach Zeus?

Wir gesagt, das ist nur das Layout ohne Inhalt. Spontan fällt mir in deinem Screenshot ein fehlendes </table> auf.

Ja, das Layout. Und wenn ich eine Rechnung erzeuge, sollte diese das DIN5008-er -Layout haben.
Zumindest habe ich ja als Document Type Rechnung bzw. sales invoice angegeben. Oder verstehe ich hier was falsch (was durchaus sein kann :slight_smile:)

Der HTML-Code ist direkt von dir kopiert.


Ich arbeite zwar schon über 25 Jahre fast nur mit Linux, aber über mehr als rudimentäres bash ist leider nicht vorhanden.
Wo soll denn das hin?

Danke für deine Zeit und dein Engagement!

Michael

Du musst das Layout noch mit Inhalt befüllen. <p>{{ doc.name }}</p> verschafft dir zum Beispiel einen Absatz mit dem Namen bzw der ID des Dokuments.

Überall wo ich Kommentare stehen habe muss noch weiteres HTML + Jinja hin, um die Inhalte des jeweiligen DocTypes einzufügen.

Hm. Wie wäre denn ein praktikabler Weg?
Schauen, wie mit welchen Inhalten in anderen Vorlagen gearbeitet wird?
Wenn du oben schreibst, dass da noch ein table fehlt, wo fehlt dieses und fehlt woanders auch noch etwas?

Das CSS kannst du in einem Print Style hinterlegen, dann gilt das für alle Dokumente.
Das HTML ist für jeden DocType individuell. Es gibt keine Möglichkeit, per Knopfdruck alles auf DIN5008 umzustellen.

Nehmen wir an du erstellst dein Druckformat für Ausgangsrechnungen. Du entscheidest dich, die Vorlage für DIN5008 zu verwenden. Diese kümmert sich lediglich um das Layout, für den Inhalt bist du selbst verantwortlich. Dann kannst du dir überlegen, welche Felder des DocTypes Sales Invoice auf deiner Rechnung erscheinen sollen. Wenn du beispielsweise das Fälligkeitsdatum im PDF haben möchtest, fügst du an der entsprechenden Stelle im HTML {{ doc.get_formatted("due_date") }} ein. Ob das im Fließtext, oben rechts oder in der Fußzeile ist, kannst du selbst entscheiden. Auf diese Weise verfährst du mit allen Feldern, bis deine Rechnung fertig ist.

Hier gibt es ein Beispiel, wie so etwas aussehen könnte. So könnte die Tabelle der Artikel aussehen:

 <table class="table table-bordered">
    <tbody>
        <tr>
            <!--
            Pos  Artikel                  Art.Nr.   Menge        Preis     Summe
            -->
            <th>{{ _("Sr") }}</th>
            <th>{{ _("Item Name") }}</th>
            <th>{{ _("Item Code") }}</th>
            <th class="text-right">{{ _("Qty") }}</th>
            <th class="text-right">{{ _("Rate") }}</th>
            <th class="text-right">{{ _("Amount") }}</th>
        </tr>
        {%- for row in doc.items -%}
        <tr>
            <!-- 
            1  Schraube                    s123     10,00 Stk   € 0,10   € 1,00
               Halbrundkopf Kreuzschlitz
            2  ...
            -->
            <td>{{ row.idx }}</td>
            <td>
                {{ row.item_name }}<br>
                {{ row.description }}
            </td>
            <td>{{ row.item_code}}</td>
            <td class="text-right">{{ row.qty }} {{ row.uom or row.stock_uom }}</td>
            <td class="text-right">{{ row.get_formatted("rate", doc) }}</td>
            <td class="text-right">{{ row.get_formatted("amount", doc) }}</td>
        </tr>
        {%- endfor -%}
    </tbody>
   </table>

Ja, es fehlen alle Inhalte, die Vorlage gibt lediglich das Layout vor.

1 Like

Wir haben heute unsere Druckformate veröffentlicht. Viel Spaß damit!

1 Like

Danke aus der Niederlande

1 Like