Meldung bei Vorkassekunden

Bei der Erstellung eines Verkaufbeleges, wäre es schön zu wissen ob der gewählte Debitor per Vorkasse zahlt oder nicht. Wir benötigen somit eine Meldung, die bei Anlage eines Verkaufbeleges erscheint und somit den Benutzer über die Vorkassen-Zahlungsbedingung des ausgewählten Debitors informiert.

Damit Navision zu einem bestimmten Zeitpunkt (etwa bei Anlage eines Verkaufsauftrages) einen Hinweis ausgeben kann, müssen wir die Möglichkeit schaffen eine Zahlungsbedingung als eine "Vorkassen"-Zahlungsbedingung zu kennzeichnen. Dazu müssen wir selbst Hand anlegen und etwas passendes programmieren.

Gehe über den Objectdesigner in den Designmodus der Tabelle Payment Terms (ID: 3). Erstelle von hieraus ein neues Feld mit der Bezeichnung "Vorkasse" und dem Typ "Boolean".

Das neue Feld erstellst du indem du eine neue Zeile anlegst. Da die zukünftigen Zahlungsbedingungen nur den Status "Vorkasse (Ja/Nein)" haben, ist hier der Typ Boolean interessant.

Nach Speicherung und Kompilierung der Tabelle musst du noch das neue Feld in das dazugehörige Formular Payment Terms (ID: 4) hinzufügen. Auch hier gehst du über den Objektdesigner in den Designmodus des Formulars.

Wie auch bei der Tabelle speicherst und kompilierst du deine gemachten Änderungen und kannst nun bequem über das "Debitor & Verkauf"-Modul und über den Menüpunkt "Einrichtung" deine Zahlungsbedingungen als "Vorkassen"-Zahlungsbedingung kennzeichnen.

Nachdem Navision nun weiß, welche der eingerichteten Zahlungsbedingungen eine "Vorkassen"-Zahlungsbedingung ist, müsste beim Anlegen eines Verkaufsbeleges eine entsprechende Prüfung mit ggf. anschließender Meldung programmiert werden. Hierzu gehst du in den Designmodus der Tabelle Sales Header (ID: 36).

Wann und was genau muss denn jetzt geprüft werden? Nachdem die Debitornummer in dem Verkaufsbeleg eingegeben wurde, muss geprüft werden, ob die Zahlungsbedingung des gewählten Debitors eine "Vorkassen"-Zahlungsbedingung ist.

Um diese Prüfung durchführen zu können, brauchst du als Datenmaterial das Feld "Payment Terms Code" aus der Tabelle Customer (ID: 18) und das neue Feld "Vorkasse" aus der Tabelle Payment Terms (ID: 3). Das Feld "Payment Terms Code" bekommst du über die Record-Variable "Cust"; die du unter "C/AL Globals" bereits findest. Auch findest du dort die Variable "PaymentTerms" worüber du das Feld "Vorkasse" bekommst.

Da die Prüfung direkt nach Eingabe der Debitornummer im Feld "Bill-to Customer No." erfolgen soll, gehst du in den OnValidate-Trigger des Feldes "Bill-to Customer No.". Es öffnet sich der C/AL Editor. Hier siehst du erst einmal viele Programmzeilen. Jetzt gilt es die richtige Stelle zu finden, wo du deine Prüfung programmierst.

Suche die folgenden Zeilen innerhalb des Triggers:

"Bill-to Customer Template Code" := '';
"Bill-to Name" := Cust.Name;
"Bill-to Name 2" := Cust."Name 2";
...

Da die o. g. Programmzeilen die Felder des Formulars anhand der eingegebenen Debitorennummer füllen, sollte deine Prüfung vorher programmiert werden. Füge vor den o. g. Programmcode ein paar leere Zeilen ein. Jetzt kannst du die Prüfung programmieren.

IF PaymentTerms.GET(Cust."Payment Terms Code") THEN
  IF PaymentTerms.Vorkasse THEN
    MESSAGE('Der Debitor %1 besitzt eine Vorkassen-Zahlungsbedingung.', Cust."No.");

In der ersten Programmzeile holst du dir die Zahlungsbedingung des Debitors in die Record-Variable "Zahlungsbedingung". Anschließend prüfst du in der zweiten Programmzeile ob diese Zahlungsbedingung eine "Vorkasse"-Zahlungsbedingung ist. Ist dies der Fall wird in der letzten Programmzeile eine entsprechende Meldung ausgegeben.


 

Zurück zur Tutorialübersicht.