Erstellt vor 3 Jahren

Geschlossen vor 3 Jahren

Zuletzt geändert vor 3 Jahren

#1950 closed Fehler (fixed)

Abteilung wird aus ausgelagerten Lieferscheinen nicht in Rechnung übernommen.

Erstellt von: lxo@… Verantwortlicher: t.heck@…
Priorität: normal Meilenstein:
Komponente: kivitendo ERP Version: 2.7.1 unstable
Schweregrad: normal Stichworte: Abteilung, Lieferschein, Rechnung
Beobachter:

Beschreibung

Erstellt man eine Rechnung aus einem als "Ausgelagert" markierten Lieferschein, so wird dir Abteilung nicht mit übernommen.
Betrifft sowohl Verkauf als auch Einkauf.

Vermutlich liegt es daran, dass bei aus/eingelagerten Lieferscheinen die Abteilung-Combobox deaktiviert ist und daher die department_id nicht übergeben wird.

Den Bug gibt es seit 2.6.x

Änderungshistorie (6)

comment:1 Geändert vor 3 Jahren durch lxo@…

Nachtrag: dadurch dass die Abteilung-Combobox bei ausgelieferten Lieferscheinen deaktiviert ist steht die Variable department_id auch in der Druckvorlage nicht zur Verfügung!

Workaround: in "templates/webpages/do/form_header.html"

-[% L.select_tag('department_id', L.options_for_select(ALL_DEPARTMENTS, default=department_id, title="description", with_empty=1), style='width: 250px', disabled => delivered )%]

+[% L.select_tag('department_id', L.options_for_select(ALL_DEPARTMENTS, default=department_id, title="description", with_empty=1), style='width: 250px')%]

Und da der "Speichern"-Button deaktiviert ist, ist das auch nicht weiter schlimm.

Gruß
Peter

Zuletzt geändert vor 3 Jahren von lxo@… (vorher) (Diff)

comment:2 Geändert vor 3 Jahren durch m.bunkus@…

  • Status von new nach assigned geändert
  • Verantwortlicher von m.bunkus@… nach t.heck@… geändert

Die Lösung ist nicht, die Combobox einfach wieder zu aktivieren, sondern die ID bei deaktivierter Combobox entsprechend anders mitzugeben. Sinnvoll wäre z.B., gar keine Combobox anzuzeigen sondern unr den Text der ausgewählten Abteilung und die dazugehörige ID in einem Hidden unterzubringen.

comment:3 Geändert vor 3 Jahren durch t.heck@…

Mein erster Versuch war es, L::select_tag so zu erweitern, dass -wenn readonly gesetzt ist- ein hidden-Tag mit dem default-Wert ausgegeben wird. Diese Idee musste ich dann verwerfen, da ich an eben diesen default-Wert in der L::select_tag-Methode nicht komme.

Meine derzeitige Lösung siegt so aus, dass ich im Templatte ein hidden-Feld erstelle.

comment:4 Geändert vor 3 Jahren durch Thomas Heck <theck@…>

  • Lösung auf fixed gesetzt
  • Status von assigned nach closed geändert

In 6abbd83dfd7e32ea1bf3ec209031192104ecaef8/erp:

Abteilung aus ausgelagerten Lieferscheinen in Rechnungen übernommen

fixt #1950

comment:5 Geändert vor 3 Jahren durch bibi@…

Da war ich zu langsam mit meinem Kommentar. Ich schreib ihn trotzdem noch ...

Schau mal bitte meinen Kommentar bei Bug #1836 und den Vorschlag, den L-Tags ein hidden-Attribut zu verpassen. Evtl. können wir diese Lösung nochmal diskutieren - ich fände das ganz schick.

0001-Vorschlag-f-r-1836-L-Tags-kennen-ein-hidden.patch

Grüße

Bernd

comment:6 Geändert vor 3 Jahren durch m.bunkus@…

@Bernd: Was Thomas für ein Problem meint, ist, dass L.select_tag() im Allgemeinen nur einen HTML-String mit den Optionen übergeben bekommt. Dieser HTML-String wird mit der Funktion L.options_for_select() erzeugt, und DIESE Funktion bekommt mit, welches der Standardwert ist.

Im Template sieht das dann oft so aus:

[% L.select_tag( 'employee', L.options_for_select(ALL_EMPLOYEES, default => current_employee_id) ) %]

Allerdings wäre das verhältnismäßig einfach zu lösen, indem man die beiden Funktionen schlicht fusioniert. Damit habe ich gerade Thomas beauftragt :)

Hinweis: Hilfe zur Verwendung von Tickets finden Sie in TracTickets.