Willkommen im kivitendo Forum! Hier erweitern und teilen AnwenderInnen und EntwicklerInnen ihr Wissen.

Teste kivitendo!

kivitendo Demo

kivitendo Demo mit Schweizer Kontenplan und neuem Layout

Unterstützt kivitendo mit der Basis-Subskription!

0 Punkte

Hallo Allerseits,

ich habe mir gestern in meine f-tex-Vorlage denn fallweisen Druck der Lieferanschrift eingebaut. Sobald bei dem Kunden eine von der Rechnungsanschrift abweichende Lieferanschrift hinterlegt ist, soll diese auf der Rechnung ausgegeben werden. Klappt auch prima. Bei mehr als einer hinterlegten Lieferanschrift beim Kunden kann man diese ja auch schön in der Rechnungmaske auswählen.

Der Haken bei der Sache: Ich kann zwar "keine Lieferanschrift" in der Rechnungsmaske auswählen (leerer Eintrag in der Lieferadresse-Dropdownbox), trotzdem wird aber immer eine Lieferanschrift dieses Kunden an das Drucksystem übergeben( <%shiptocity%>, <%shiptozipcode%> etc).

Habs eben unter https://demo.kivitendo.de/beta/ getestet, dasselbe Verhalten.

Mir sind die Ideen ausgegangen, wer kann mir auf die Sprünge helfen?

Grüße Raimo

P.S.
https://demo.kivitendo.de/doc/html/ch03s02.html#dokumentenvorlagen-und-variablen.anmerkung-shipto habe ich gelesen.

von (1.7k Punkte)

2 Antworten

0 Punkte
 
Beste Antwort

Hallo Raimo,

schau mal hier: https://trac.kivitendo.de/ticket/2345

Es scheint so zu sein, dass immer die (erste) Lieferadresse des Kunden in die manuelle Lieferadresse eingetragen wird,
sofern in der Drop-Down-Box nichts ausgewählt wird.

Um die weg zu bekommen, kann man unten den Knopf Lieferadresse drücken und dann alle Felder leer machen.

Soweit meine Erinnerung.

Grüße
Bernd

von (6.1k Punkte)
ausgewählt von

Sollten tatsächlich "Reste" in der Lieferadresse stehen bleiben, obwohl eine leere Lieferadresse gewählt ist, reden wir aber von einer älteren kivitendo/Lx-Office-Version. In der aktuellen und der Beta werden die Felder nämlich geräumt.

Hallo Norbert,

ich habe das soeben in der beta und aktuellen unstable aus dem git nachvollzogen. Auch kann ich keinen commit finden, der das seit dem Ticket 2345 geändert haben sollte. Wir reden definitv nicht von einer älteren Version.

Allerdings gehen einige Kommentare zu dem Ticket ja davon aus, dass das Verhalten so gewollt ist. Der Meinung bin ich allerdings nicht.

Hallo Bernd,

danke, genau das ists! Moritz begründet leider nicht, warum er das aktuelle Standardverhalten für sinnvoll hält.

Hier der Vollständigkeit halber mein Lösungsansatz, mit dem ich seit heute arbeite (relevanter Auszug aus der LaTEX-Vorlage):

% Lieferadresse bei Bedarf einsetzen, bei Firmenname mit - aber unterdruecken (Fix fuer Rechnungsdruck ohne Lieferanschrift)
\ifthenelse{\equal{<%shiptoname%><%shiptostreet%><%shiptozipcode%><%shiptocity%>}{<%name%><%street%><%zipcode%><%city%>}}{
	\leer
	}{
	\ifthenelse{\equal{\shiptoname}{-}}{
		\leer
	}{
		\textbf{\underline{Lieferanschrift:}}\\
		<%shiptoname%> \\
		\ifthenelse{\isempty{\shiptocontact}}{\leer}{Ansprechpartner: \shiptocontact\\}
		<%shiptostreet%> \\
		<%shiptozipcode%> <%shiptocity%>
		\ifthenelse{\isempty{\shiptocountry}}{\leer}{\\ \shiptocountry\\}
	}
}
  • Die Druckvariablen für die Lieferadressen enthalten zu der Rechnungsadresse identische Werte, wenn bei der Rechnungsadresse keine separate Lieferadresse hinterlegt ist. Das erste \ifthenelse unterdrückt in dem Falle die Ausgabe einer Lieferanschrift, da sinnlos.

  • Sollte eine von der Rechnungsanschrift abweichende Lieferanschrift vorliegen, prüft das zweite \ifthenelse ob im Feld "Name"ein schlichter Bindestrich eingetragen ist. Wenn ja, wird die Lieferanschrift ebenfalls nicht ausgegeben.

  • Brauche ich bei einem Kunden eine Lieferanschrift , so lege ich zuerst einen Dummy-Eintrag mit Bindestrich im Feld "Name" an. Dann einen oder mehrere weitere mit der tatsächlichen Lieferanschrift. Da die Lieferanschriften im Dropdownfeld der Rechnungsmaske in der Reihenfolge der Anlage angezeigt werden, wird der Bindestrich-Eintrag immer vor einer eigentlichen Lieferadresse angezeigt und wird dadurch quasi zur Standardauswahl dieses Auswahlfeldes --> standardmäßig kein Ausdruck einer Lieferadresse auf dem Rechnungsbeleg

  • Will ich eine Standardlieferadresse für einen Kunden definieren, so lege ich die tatsächliche Lieferadresse direkt ohne Dummy-Bindestricheintrag vorab an.

  • Will ich das später ändern, muß ich die Inhalte der ersten eingetragenen Lieferanschrift in einen neu anzulegende Lieferanschriftsdatensatz kopieren und dann in der ersten angelegten Lieferanschrift alle Felder löschen und im Feld "Name" einen Bindestrich eintragen

Nicht schön, aber schön pragmatisch. :) Mit den gegebenen Mitteln eben machbar.

Frage an die Entwickler: Wie groß ist der Aufwand, die Lieferanschriftsliste alphabetisch sortiert in der Dropdownbox auszugeben? Welcher Perl-Code sorgt für die Ausgabe? Ich möchte mir das gern selbst anschauen.

Grüße Raimo

Hi Raimo,

nur kurz - ich denke das gehört dann eher in die Devel-Liste:
bin/mozilla/is.pl (für Verkaufsrechnungen). sub form_header
Die Lieferadressen werden in $TMPL_VAR{ALL_SHIPTO} geladen. Ich würde entweder dem Rose-get_all ein sort_by mitgeben oder nach dem einlesen ein Perl-sort auf das Array anwenden.

Viele Grüße
Bernd

0 Punkte

Natürlich werden die Variablen an das Drucksystem übergeben. Dass sie evtl. leer sind, muss die Vorlage lösen.

Ich habe das gerade mit der Demo und der Beta versucht und kann diesbezüglich keine Probleme feststellen. Allerdings habe ich nicht F-Tex getestet, sondern mit den Standardvorlagen.

von

Hallo Norbert,

danke für die fixe Antwort! Leider kann ich nicht wirklich den Bezug zu meiner Fragestellung erkennen.

Ich versuchs nochmal anders:
- Warum wird immer die beim Kunden hinterlegte Lieferadresse ans Drucksystem übergeben, auch wenn ich diese explizit in der Rechnungsmaske abwähle?
- Wie kann ich den Zustand "keine Lieferadresse in Rechnungsmaske ausgewählt" in der Druckvorlage detektieren?

Grüße Raimo

Meine Antwort bezog sich auf «trotzdem wird aber immer eine Lieferanschrift dieses Kunden an das Drucksystem übergeben( <%shiptocity%>, <%shiptozipcode%> etc).». Und dass man das einfangen muss. Ob F-Tex das tut, kann ich nicht beantworten, der geschilderte Fehler, dass die Lieferadresse immer übergeben würde, ist keiner. Es wird keine Lieferadresse übergeben, sondern eine leere Variable. Was auch korrekt ist, denn woher soll das System wissen, wann eine Variable geschickt werden soll oder nicht - allein der Umstand, dass sie leer ist, kann dafür kein Kriterium sein.

Dass keine Lieferadresse angegeben wurde, kann man durch Inhaltsprüfung herausfinden. Wie bereits gesagt: «Dass sie evtl. leer sind, muss die Vorlage lösen.» Womit imo ein Bezug auf die Fragestellung gegeben ist.

...