BestPosBuch2()
BestPosBuch2() – Automatische Bestellrückstandsbuchung
Wird eine Bestell-Nr. übergeben, wird der entsprechende Bestell-Rückstand verbucht und ggf. die Restbestellung gelöscht, falls der entsprechende Parameter gesetzt wurde.
Wird keine Bestell-Nr. übergeben, wird eine Buchung ohne Rückstand durchgeführt und ggf. offene Rückstände aufgelöst, falls der entsprechende Parameter gesetzt wurde.
Parameter | Beschreibung |
---|---|
oDM:O | Datamodul |
nLiefNr:N | Lieferaten-Nummer |
nID:N | ID der DAB035 |
cArtNr:C | Artikelnummer (erforderlich, leer erlaubt, falls Bestell Nr./-Pos. übergeben wird) |
nZugMengeEK:N | Zugangsmenge Wareneingang |
nZugMengeLAG:N | Zugangsmenge Lager |
dZugDatum:D | Zugangsdatum |
cLager:C | Zugangslager, default = Default Lager für Rückstände |
cBestTermin:C | Termin (im Format TT.MM.JJ oder KW.WW.JJ); default leer |
cBestKommiss:C | Kommission; default leer |
cBelegNr:C | Belegnummer; default leer |
lRueckAufloes:L | Automatische Bestell. Rückstandsauflösung; default = false |
lRestLoesch:L | Rest-Bestellung Löschen; default = false |
lAbrufErh:L | Abruf-Bestellung um Differenz erhöhen; default = false |
lKdAuftrAuloes:L | Dialog "Kunden-Rückstände auflösen" anzeigen; default = false |
lEtikDruck:L | Artikel-Etikette drucken; default = false |
aKomissDetail:A | Detailierte Kommissionsnummer-Information (wichtig für Lagerplatzbuchung!) im Fomat {{Kommiss, Menge, Lagerplatz},..} default leer, d.h. schon gespeicherte Kommissionen in DAB035 |
dLiefDatum:D | Lieferungsdatum, default = heute |
lProdFreigabe:L | Produktions-Freigabe Dialog anzeigen; default = true |
lQuiet:L | keine Meldungen anzeigen; default = false |
lResetTableStates:L | Verwendete Tabellen nach dem Aufruf der Funktion auf ursprünglichen Stand zurück setzen; default = false |
Hinweis
lQuiet übersteuert nicht folgende Parameter welche ggf. wieder Meldungen und Dialoge anzeigen können
- lRueckAufloes - Automatische Bestell. Rückstandsauflösung; default = Dialog anzeigen
- lEtikDruck - Artikel-Etikette drucken; default = keine Etikette drucken
- lProdFreigabe - Produktions-Freigabe Dialog; default = Dialog anzeigen
Rückgabewert
Alphanumerisch - Dispo-Nr.
Beispiel
| oDM, aKommiss, oDAB035, oDab735, cBestPosNr, nLifNr, cArtNr, cTermin |
oDM := CreateObject('TBeDBget'),
cArtNr := '1.4104 X14CRMOS1 ZS',
cBestPosNr := '100000 1',
nLifNr := 700002,
cTermin := 'KW.46.21',
aKommiss := {{'171717' , 1, ''}},
oDAB735 := DBGetTable(oDM, waDab735),
oDAB035 := DBGetTable(oDM, waDab035),
oDab035.IndexName := 'DAB03B', // BESTPOSNR;LIEFNR;TERM_INDEX
if not oDab035.CbFindKey({cBestPosNr}) then
writeln('Dab035 Datensatz nicht gefunden'),
abort(true),
endif,
startseq,
DBStartTrans(oDM.ADSConnection),
BestPosBuch2(oDM, nLifNr, oDAB035:ID, cArtNr, 1, 1, Date(),
'0', cTermin, '', 'BELEG123', , , , , , aKommiss, Date()),
DBGoBottom(oDab735),
DBEdit(oDab735), // hier knallts dann "Dataset not in Edit-Mode"
oDAB735:MHD_DATUM := now(),
DBPost(odab735),
DBRollback(oDM.ADSConnection), // Änderungen zurücksetzen
//DBCommit(oDM.ADSConnection),
onerror,
DBRollBack(oDM.ADSConnection),
Meld(GetErrorText()),
stopseq,