Skip to main content
Skip table of contents

Event "nach dem Belegdruck"

Event "nach dem Belegdruck"


Dieser Event wird nach dem erfolgreichen Druck eines Beleges aufgerufen und lässt sich auf bestimmte Ereignisgruppen festlegen:

  • Alle

  • Auftragsbestätigung

  • Lieferschein

  • Rechnung

  • Mahnung

  • Angebot

  • Bestellung

  • Paketaufkleber

  • Versandpapiere

  • Kommissionierschein

  • Preisanfrage

  • Fertigungs-Auftrag

  • Abrufeinteilung

  • Bestellmahnung

  • Versandanzeige

  • Proformarechnung- Vermiet-Lieferschein

  • Rückgabe Vermietung

  • Miet-Zwischenrechnung

  • Service-Anforderung

Hinweis

: Bei Sammelbelegen im Verkauf entspricht der Parameter nKeyNo:P4 die der Kunden-Nummer. Ansonsten entspricht dieser Parameter in Einzelbelegen im Verkauf der Auftragsnummer.

Beispiel

CODE
//------------------------------------------------------------------------------
// Nach Lieferschein-Druck wird die Rechnung freigegeben!
//------------------------------------------------------------------------------

| nEvtNo:P1, nDocArchType:P2, nDocNo:P3, nKeyNo:P4:=7770, nPersNo:P5,
  nDocSubType:P6, oDab050, oDab055|          
 // Beleg ist komplett verarbeitet und befindet sich bereits im Archiv
 // Beispiel für Belegdruck Lieferschein


// prüfen, ob alle Positionen komplett
//==============================================
function CheckPosKomplett()
   result := true,
   DBScope({oDab050:anummer},{oDab050:anummer+"999"},oDab055),
   DBFilter("abs(bmenge)>0.and.abs(bmenge)-abs(fmenge)>0",oDab055),
   DBGoTop(oDab055),
   while !EoF(oDab055) do
      if oDab055:bmenge<>oDab055:lmenge then
         result := false,  // min. einen Datensatz gefunden, der nicht komplett ist
         break,
      endif,
      DBSkip(1,oDab055),
   end,
end,


// Status des Feldes FAKTFREI (Fakturafreigabe) prüfen
//==============================================
function CheckFreigabe()
   result := true,
   if oDab050:faktfrei = "N" then
      result := false,
      //messagedlg("Auftrag " + oDab050:anummer + ": Freigabe nicht erlaubt - Freigabe im Auftrag gesperrt!",0,4),
      exit,
   endif,
   if odab050:faktfrei = "A" then
      result := false,
      //messagedlg("Auftrag " + oDab050:anummer + ": Freigabe nicht erlaubt - Nur Abschlagsrechnungen möglich!",0,4),
      exit,
   endif,
   if oDab050:faktfrei = "V" then
      if .not. CheckPosKomplett() then
         result := false,
         //messagedlg("Auftrag " + oDab050:anummer + ": Freigabe nur für kompletten Auftrag erlaubt!",0,4),
         exit,
      endif,
   endif,
end,

function main()
   oDab050 := MyGetTable(GL_oDM,waDAB050,),
   oDab055 := MyGetTable(GL_oDM,waDAB055,),
   oDab050.indexname := "DAB051",
   oDab055.indexname := "DAB056",
   startseq,
      if !DBSeek({Str(nKeyNo,6)},oDab050) then
         SetError("Auftrag wurde nicht gefunden!"),
      endif,
      if CheckFreigabe() then
         SuspendEx(oDab050,true),
         if not oDab050:fakt then
            MyEdit(oDab050),
            oDab050:fakt := true,
            MyPost(oDab050),
         endif,
      endif,
   onerror,
      //messagedlg("Auftrag " + oDab050:anummer + ": Freigabe nicht möglich - Auftrag wahrscheinlich gesperrt!",0,4),
      Meld("Fehler im Event 'nach Lfs-Druck' " + GetErrorText()),
      Meld("Auftrag wurde für Faktura NICHT freigegeben! Bitte manuell freigeben!"),
   stopseq,
   SuspendEx(oDab050,false,true),
end,

main(),
JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.