Erstellt vor 4 Jahren

Zuletzt geändert vor 4 Jahren

#1651 closed Fehler (duplicate)

Spalte Dokument im Lagerbuchungs-Bericht bleibt manchmal leer

Erstellt von: demofreak@… Verantwortlicher: m.bunkus@…
Priorität: normal Meilenstein:
Komponente: kivitendo ERP Version: 2.6.2
Schweregrad: normal Stichworte: Lager
Beobachter: information@…

Beschreibung

Wenn man beim Erfassen eines Einkaufslieferscheins sofort "Einlagern" drückt, statt vorher einmal zu "Speichern", wird im Lagerbuchungsbericht das Dokument "Lieferschein (Einkauf) <Nummer>" nicht angezeigt, die Spalte bleibt dann bei diesem Vorgang einfach leer.

Ich habe jetzt nicht erst getestet, ob das bei Verkaufslieferscheinen genauso ist, aber es ist anzunehmen. ;-)

Änderungshistorie (3)

comment:1 Geändert vor 4 Jahren durch information@…

  • Lösung auf duplicate gesetzt
  • Status von new nach closed, information@richardson-bueren.de geändert

Hi Hannes,
sehr gut beobachtet!
Ist lustigerweise ein Duplikat von #1463. Siehe hier meinen letzten Kommentar:

Ausserdem wird durch dieses Verhalten das Feld oe_id in inventory NIE gesetzt,

Problem ist, dass zuerst ausgelagert wird und DANACH der Beleg gespeichert wird. Das Verhalten müsste andersrum sein, ich kann aber die "Seiteneffekte" nicht abschätzen, deswegen hatte ich damals mich an Moritz gewandt.

comment:2 Geändert vor 4 Jahren durch demofreak@…

Hi Jan,

ich hab da bissl dran rumprobiert, weil ich in meinem jugendlichen Leichtsinn dachte, ich bekomme das mit einem simplen "Speichern, wenn noch nicht gespeichert" in transfer_(in|out) geregelt, aber das funktioniert nur halb.

Wenn man oben direkt am Beginn folgendes einfügt

save() unless $form->{donumber};

dann wird beim Drücken auf "Einlagern" statt dessen nur gespeichert und man muss dann gleich nochmal "Einlagern". War eindeutig zu simpel gedacht. :-)

comment:3 Geändert vor 4 Jahren durch information@…

Hi,
ich denke, dass Problem liegt an diesen letzten beiden Zeilen in sub save:
661 ff:

update();
::end_of_request();

Dadurch wird die Form neu geladen und die "letzte" Aktion vergessen.
Ich bin mir hier aber nicht ganz sicher, kommentier die mal aus und probier dann nochmal.

Falls das passt, könnte danach so etwas sinnvoll sein:

$form->{simple_save} = 1;

  • if(!$form->{print_and_save}) {
+ if(!$form->{print_and_save}
$form->{save_before_transfer}) {

set_headings("edit");
update();
::end_of_request();

}

Wobei dann natürlich:

$form->{save_before_transfer} in transfer_in und transfer_out gesetzt werden muss ...

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