Mahnstamm

 

Hauptmenü  Mahn-, Zahl-, Zinswesen  Stammdaten  Mahnwesen einrichten  Funktion Mahnstamm F6

Direktsprung [FIMSG].

 

Mahnstamm und Mahnsätze müssen immer gemeinsam eingerichtet werden, d.h. Wenn es zu einer Mahngruppe und Mahnstufe einen Datensatz im Mahnstamm existiert, muss für diese Kombination auch mindestens ein Eintrag in den Mahnsätzen existieren. Der Pfleger „Mahnsätze einrichten“ übernimmt dies automatisch und sollte diesem Pfleger vorgezogen werden.

 

Beschreibung

Mahngruppe

Angabe der Mahngruppe, für die die Bedingungen gelten

 

Mahnstufe

Angabe der Mahnstufe, für die die Bedingungen gelten sollen, z.B. "1" für "Mahnstufe 1"

 

Buchungstext

Ist hier ein Text eingegeben, so wird dieser bei der Übernahme der Mahngebühren in die Primanota verwendet, sonst der als Einrichterparameter hinterlegte Buchungstext „Text Hauptzeile bei Übernahme der Mahnungen in die Primanota“

 

Formular-Id

Nummer des Mahnformulars, das ausgedruckt werden soll. Es kann somit für jede Kombination aus Mahngruppe und Mahnstufe ein eigenes Formular mit unterschiedlichem Aufbau bzw. Text hinterlegt werden. Man kann aber auch für jede Stufe dasselbe Formular hinterlegen und die unterschiedlichen Mahnstufen durch den Mahntext kenntlich machen.

 

Zinsgruppe

Falls Verzugszinsen berechnet werden sollen, wird hier die Zinsgruppe angegeben, deren Werte berücksichtigt werden sollen. Bei der Berechnung der Mahnzinsen wird nur der Soll-Zinssatz herangezogen.

 

Mahnabstand

Der Mahnabstand zwischen zwei Mahnungen. Häufig wird von der Fälligkeit bis zur ersten Mahnung noch eine Schonfrist gewährt. In diesem Fall muss hier bei Mahnstufe 1 ein Zeitraum von z.B. 14 Tagen eingetragen werden, für Mahnstufe 2 und höher wird dann z.B. 10 Tage eingetragen. Somit sind auch unterschiedliche Intervalle je Stufe möglich.

 

Alle folgenden Felder erscheinen nur bei aktiver Belegversand-Lizenz

Versandprofil

Hier steht das Versandprofil aus dem Versandprofilstamm, das zur Versendung dieser Belege verwendet werden soll. Wird hier nichts angegeben, so wird für diese Mahngruppe keine Mahnung versendet.

 

Formular bei Mail-Versand

Optional. Hier kann ein vom Druckformular abweichendes Formular eingerichtet werden. Ist kein Formular angegeben, wird das Mahnformular (s.o.) verwendet.

 

Formular Mailbody

Mahnungen werden als Anhang versendet. Die eigentliche Mail kann hier als Formular definiert werden. Es stehen alle auch in der Mahnung vorhandenen Druckpositionen zu Verfügung. Die Betreffzeile der Mail kann in diesem Formular im Formularbereich „Mahnung Mail Betreffzeile“ definiert werden.

 

Anstelle des Formulars für den Mailbody können auch Datenbankprozeduren verwendet werden. Ist in dem Feld „DB-Funktion Mailbody“ etwas eingetragen, dann werden die Prozeduren verwendet und das „Formular Mailbody“ wird ignoriert

FA-Eintrag Mailbody

FA-ID des Formulararchiv-Eintrags eines HTML-Body-Templates, das mit Hilfe der Body-Funktion zu einem HTML-Body verarbeitet werden kann.

Der Eintrag hier ist optional, jedoch muss, wenn kein Template verwendet werden soll, die DB-Funktion das Dokument komplett aufbauen.

 

DB-Funktion Mailbody

Wird hier eine Funktion hinterlegt, dann wird das „Formular Mailbody“ ignoriert und die Funktion liefert den Text der Mail. Sie erhält als Parameter die Mahnungid, die Adressid, und die auf der Druckmaske angegebenen Zahlungsdatum und Zahlungsfrist. Die Funktion muss einen Wert vom Typen long  varchar zurückgeben.

Trägt man in dem Feld einen Namen einer Prozedur ein, die noch nicht existiert, dann wird ein Template mit den korrekten Parametern angelegt und zum Bearbeiten geöffnet.

 

--

-- Funktion zum Erzeugen des Mailbodys für Mailversand - Mahnungen.

--

 CREATE FUNCTION p_mahnwesen_htmlbody(in in_mahnungid integer, in in_adressid integer, in in_zahldatum date, in in_zahlfrist date)

 returns long varchar

 BEGIN

   declare dc_return long varchar;

   declare dc_statustext long varchar;

   declare dc_fa_id integer;

 -- hier dc_return mit Inhalt füllen. Auslesen des Mailbodys aus dem Formulararchiv

   set dc_fa_id = (select VersandBodyFaId from Mahnung m

                   join MahnStamm mast on mast.Mahngrupnummer=m.Mahngrupnummer and mast.Mahnstufnummer=m.MahnStufnummer

                   where m.MahnungId= in_mahnungid );

   if (dc_fa_id != 0) then

     set dc_return = (select cast(AMICBLOB as long varchar) from amic_fa_get_from_key(dc_fa_id));

   endif;

 -- hier ggf. Platzhalter ersetzen

   return dc_return;

 exception when others then

   set dc_statustext = errormsg()||' '||traceback();

   call fehlerprotokoll(in_text = 'p_mhb1' || dc_statustext);

 -- WICHTIG: Dem System mitteilen, dass ein Fehler aufgereten ist;

   resignal;

 END

 

Wichtig: Wenn die Funktion für den Mailbody einen Fehler liefert, wird kein Maildokument versendet. Bei Verwendung des Formulars für den Mailbody wird bei Fehlern ein Standard-Body „<h1>Mahnung</h1>“ erzeugt.

 

DB-Funktion Betreff

Diese Funktion wird nur ausgeführt, wenn auch die Funktion für den Mailbody angegeben wurde. Sie erhält als Parameter die Mahnungid, die Adressid, und die auf der Druckmaske angegebenen Zahlungsdatum und Zahlungsfrist. Die Funktion muss einen Wert vom Typen „long varchar“ zurückgeben. Auch wenn der Rückgabewert ein long Varchar ist, werden nur die ersten 255 Zeichen ausgewertet. In der F3-Auswahl werden nur Funktionen angeboten, die in der Datenbank angelegt sind und die entsprechenden Parameter haben.

Gibt man den Namen einer nichtexistierenden Funktion an, um eine neue Funktion zu erstellen, dann wird ein Template mit den korrekten Parametern angelegt und zum Bearbeiten geöffnet.

Beispiel:

--

-- Funktion zum Erzeugen der Betreff-Zeile für Mailversand Mahnungen.

--

 CREATE FUNCTION p_mahnwesen_betreff (in in_mahnungid integer, in in_adressid integer, in in_zahldatum date, in in_zahlfrist date)

 returns long varchar

 BEGIN

   declare dc_return long varchar;

   declare dc_statustext long varchar;

   declare dc_fa_id integer;

 -- hier dc_return mit Inhalt füllen.

   set dc_return = (select 'Mahnung vom ' || dateformat(MahnungungDatum, 'dd.mm.yyyy') || ' für ' || kundbezeich || ' Konto ' || b.Kontonummer from mahnung b

                    join kundenstamm k on k.kontonummer=b.kontonummer

                    where b.mahnungid = in_mahnungid);

   return dc_return;

 exception when others then

   set dc_statustext = errormsg()||' '||traceback();

   call fehlerprotokoll(in_text = 'p_mhb2' || dc_statustext);

   return dc_return;

 END