Hallo Thomas,
das läßt sich mit einem einfachen "Schalter" in der
Wawi leider nicht vermeiden, man kann das aber recht leicht über über einen
Workflow nachrüsten und bei der Gelegenheit kann man auch noch automatisch den Inhalt des Feldes "Sonstiges" aus dem Angebot in den Auftrag übertragen. - Here we go...
1. Leg Dir einen neuen Workflow im Bereich "Aufträge > Erstellt" an.
2. Leg keine Bedingung an, sondern nur eine Aktion "Werte setzen" und für die Variable "Auftrag\Sonstiges\Hinweis"
3. Dann klickst Du bei "Wert" auf "..." und gibst (kopierst...) folgenden Code ein...
Code:
{% capture query %}\
SELECT cText FROM tBestellHinweis \
INNER JOIN tBestellung ON tBestellHinweis.kBestellHinweis=tBestellung.kBestellHinweis \
WHERE tBestellung.cBestellNr='{{ Vorgang.Stammdaten.Auftragsnummer }}'\
{% endcapture -%}
{% assign Auftrag_Anmerkung = query | DirectQueryScalar -%}
{% if Auftrag_Anmerkung != null -%}
{{ Auftrag_Anmerkung }}
{% endif -%}
{% capture query %}\
SELECT cText FROM tBestellHinweis \
INNER JOIN tBestellung ON tBestellHinweis.kBestellHinweis=tBestellung.kBestellHinweis \
WHERE tBestellung.cBestellNr= \
(SELECT (SELECT REVERSE(SUBSTRING(REVERSE(LTRIM(RTRIM(cText))),1,(CHARINDEX(' ',REVERSE(LTRIM(RTRIM(cText)))+' ')-1)))) FROM tBestellHinweis \
INNER JOIN tBestellung ON tBestellHinweis.kBestellHinweis=tBestellung.kBestellHinweis \
WHERE tBestellung.cBestellNr='{{ Vorgang.Stammdaten.Auftragsnummer }}')\
{% endcapture -%}
{% assign Angebot_Anmerkung = query | DirectQueryScalar -%}
{% if Auftrag_Anmerkung != null -%}
{{ Angebot_Anmerkung -}}
{% endif -%}
4. Dann gibst Du dem Workflow am Besten noch einen Namen, OK klicken, Fertig.
Ok und was macht das? - Der Code führt zwei SQL Abfragen durch und liefert dem Workflow die jeweiligen Texte zum aktuellen Inhalt von "Sonstiges" im Auftrag und von "Sonstiges" im zugrundeliegenden Angebot zurück, der sie dann in das Feld "Sonstiges" des neuen Auftrags schreibt. Gibt eine oder beide Abfragen keinen Text zurück, weil keiner existiert, wird auch dem Workflow nichts übergeben, bei einem Sofortauftrag also z.B. "", sprich Nüscht.
Die erste SQL Abfrage liefert dabei tatsächlich den "Erstellt aus Angebot XXXXXXXX" Text aus der Datenbank und der Code von oben beläßt diesen Text sogar (entgegen Deinem Wunsch) im "Sonstiges" Feld des Auftrags. Der Grund dafür ist, dass dies die
EINZIGE Referenz im Auftrag auf das zugrundeliegende Angebot ist und ich würde das nie löschen wollen. Also habe ich Deinen Wunsch flugs umgemünzt in "Wie bekomme ich meinen Text aus dem Angebot in den Auftrag", sorry... - Falls Du das nicht möchtest, dann löscht Du oben im Code einfach alles bis hin zum ersten
{% endif -%}.
Achtung: Ich habe das Ganze jetzt nicht explizit mit allen Formen von Auftragserstellungen durchprobiert, also z.B. nicht mit Umtauschaufträgen, aber schon mit "Sofortaufträgen" und mit Aufträgen, die direkt aus dem Kunden heraus erstellt wurden und auch dann/dort, wo es keine Vortexte gibt, also weder ein "Erstellt aus..." noch ein Vorangebot, funktioniert der Workflow trotzdem wie gewünscht und es gibt (für mich) im Moment auch keinen Hinweis darauf, dass es irgendwelche Auftragstypen geben könnte, bei denen diese Logik nicht funktioniert.
Hinweis: Für Aufträge, die schon erstellt worden sind, funktioniert das natürlich nicht, aber was Du dafür tun kannst, ist Dir einfach den gleichen Workflow auch im Bereich "Auftrag - Manuell" anzulegen. Dann kannst Du in der Auftragsliste einen (oder auch mehrere) Aufträge auswählen und den Workflow über "Workflow ausführen..." weiter unten rechts ausführen. Da der Code übrigens immer den aktuellen Stand des Feldes "Sonstiges" im Auftrag holt, kannst Du das auch dann noch gefahrlos tun, wenn Du schon weiteren Text im Auftrag eingegeben hast.
P.S. Ich habe Dir auch einen Screenshot der Workflow Definition als Referenz angehängt.
Gruß,
Ingmar