Remove-DeliveryNote #
ÜBERSICHT #
Storniert einen Lieferschein via EULANDA-SP cn_LfStorno. Danach ist der Lieferschein inklusive Positionen und Folge-Datensätzen (LieferscheinDispo, LieferscheinText, Buchung etc.) aus der Datenbank entfernt.
SYNTAX #
Remove-DeliveryNote [[-DeliveryNoteId] <int>] [[-DeliveryNoteNo] <int>] [[-ResetNumber] <bool>]
[[-Conn] <__ComObject>] [[-Udl] <string>] [[-ConnStr] <string>] [<CommonParameters>]
BESCHREIBUNG #
EULANDA bietet keinen direkten DELETE-Pfad für Lieferscheine - der einzige legale Weg ist über die SP cn_LfStorno, die den kompletten Storno-Prozess abwickelt: Buchung zurückziehen, Reservierung umkehren, Dispo-Sätze aufräumen, Positions- Datensätze entfernen und schließlich den Kopf selbst löschen.
Ein direkter DELETE FROM dbo.Lieferschein schlägt wegen Foreign-Key-Constraints (insbesondere FK_lfd_LF auf LieferscheinDispo) fehl und erzeugt die kryptische *** NO CALLER STACK ***-Meldung aus dem internen Trigger-Error-Handling.
Es kann entweder die Lieferschein-ID (DeliveryNoteId) oder die Lieferscheinnummer (DeliveryNoteNo) angegeben werden. Die Verbindung erfolgt über Conn, Udl oder ConnStr.
Der Storno ist endgültig - der Lieferschein ist danach
physisch aus der DB entfernt. Wer nur den Status zurück auf
“in Bearbeitung” setzen will, nutzt Resume-DeliveryNote.PARAMETER #
-DeliveryNoteId #
Type: int
Interne ID des Lieferscheins (lf.Id). Wird bevorzugt, wenn gesetzt.
-DeliveryNoteNo #
Type: int
Lieferscheinnummer (lf.KopfNummer).
-ResetNumber #
Type: bool
Default: $true
Default $true. Bei $true (ResetNummer=1 an die SP) wird die Lieferschein-Nummer in den Nummernkreis zurückgegeben. Bei $false bleibt die Nummer verbraucht - sinnvoll wenn aus Audit-Sicht keine Lücken überschrieben werden sollen.
-Conn #
Type: __ComObject
Optional: Bereits geöffnete ADODB-Verbindung.
-Udl #
Type: string
Optional: UDL-Dateipfad zur Verbindung.
-ConnStr #
Type: string
Optional: Connection-String zur Verbindung.
BEISPIELE #
Remove-DeliveryNote -DeliveryNoteNo 1234 -Udl 'C:\Mandant.udl'
# Storno ohne Nummernkreis-Reset (Nummer 1234 bleibt verbraucht)
Remove-DeliveryNote -DeliveryNoteId 57 -ResetNumber:$false -Conn $conn