Hallo, wir verwenden ein eigenes Programm zur Sperrverwaltung (sehr säumigen Zahlern den Strom abdrehen). In der Übersichtsliste werden alle säumigen Zahler mit entsprechender Mahnstufe 2 gezeigt. Bisher wurde einfach aus der fkkmako der aktuelle Mahnsaldo für ein Vertragskonto gezogen. Dies sollte nun dahingehend erweitert werden, dass Gebühren gar nicht betrachtet werden (zahl sowieso niemand) und eine weitere Spalte hinzugefügt wird, die für die im letzten Mahn(vorschlagslauf) ermittelten Positionen den aktuellen Stand liefert.
Die Grundidee war, aus der fkkmaze (Positionen Mahnhistorie) die Belegnummern (opbel), Positionsnummern (opupk) und Wiederholungspositionsnummern (opupw) für offene Posten mit Mahnstufe 2 herauszusammeln und für diese dann den aktuellen Stand aus der dfkkop zu holen.
Jedoch gibt es einen kleinen Unterschied:
In der fkkmaze sind die Positionen immer mit opbel, opupk und opupw hinterlegt. In der dfkkop KANN das so sein, muss aber nicht. Ggf. gibt es statt für jede Wiederholungsposition jeweils einen nur einen einzelnen Eintrag und das Feld opupw ist leer.
Mögliche Varianten:
fkkmaze------------------------|-dfkkop
opbel-----------opupk opuw--|-opbel-----------opupk---opupw
41002322075---1-------1------|--41002322075---1---------1
41002322075---1-------2------|--41002322075---1---------2
41002322075---1-------3------|--41002322075---1---------2
fkkmaze------------------------|-dfkkop
opbel-----------opupk opuw--|--opbel-----------opupk---opupw
41002322075---1-------1------|---41002322075---1
41002322075---1-------2
41002322075---1-------3
Abloopen der Belegnummern und Selektieren der offenen Beträge aus der dfkkop. Zunächst mit Wiederholungspositionsnummer opupw, wird keine gefunden (sysubrc NE 0) ohne opupw. Da für jede opbel opupk opupw ein Eintrag in der fkkmaze gefunden wird, wird somit auch in Fall aus der zweiten Tabelle die korrekte Anzahl an Positionen aufaddiert. Dabei sind mittlerweile vollausgelichene Positionen auszufiltern. ( IF ls_dfkkop-augst EQ space.ADD ls_dfkkop-betrh TO lv_sum. endif.)
Code: Alles auswählen.
SELECT SUM( mbetm ) FROM fkkmaze INTO e_msalm
WHERE laufi EQ i_laufi
AND laufd EQ i_laufd
AND vkont EQ i_vkont
AND gpart EQ i_gpart
AND mahns GT 1
AND ( mahnv EQ 'MV'
OR mahnv EQ 'ML' )
AND stakz NE 'G'.
SELECT DISTINCT opbel opupw opupk FROM fkkmaze INTO CORRESPONDING FIELDS OF TABLE lt_maze
WHERE laufi EQ i_laufi
AND laufd EQ i_laufd
AND vkont EQ i_vkont
AND gpart EQ i_gpart
AND mahns GT 1
AND ( mahnv EQ 'MV'
OR mahnv EQ 'ML' )
AND stakz NE 'G'.
.
CLEAR: lv_count.
LOOP AT lt_maze INTO ls_maze.
CLEAR: lv_sum, ls_dfkkop.
SELECT SINGLE * FROM dfkkop INTO ls_dfkkop
WHERE opbel EQ ls_maze-opbel
AND opupw EQ ls_maze-opupw
AND opupk EQ ls_maze-opupk
AND gpart EQ i_gpart
AND vkont EQ i_vkont
* AND opsta NE space
* AND stakz EQ space
* AND augst EQ space
AND ( hvorg EQ 'ABS' OR hvorg EQ 'SABR' OR hvorg EQ 'TABR' ) "Abschlag, Schlussrechnung oder Turnusrechnung, GEBO wäre Mahngebühr
.
IF ls_dfkkop-augst EQ space.
ADD ls_dfkkop-betrh TO lv_sum.
endif.
if sy-subrc NE 0.
SELECT SINGLE betrh FROM dfkkop INTO lv_sum
WHERE opbel EQ ls_maze-opbel
AND opupw EQ space
AND opupk EQ ls_maze-opupk
AND gpart EQ i_gpart
AND vkont EQ i_vkont
* AND stakz EQ space
AND augst EQ space
AND opsta NE space "Falls die gemahnte Wiederholungsposition inzwischen bezahlt wurde ist das Feld hier leer.
AND ( hvorg EQ 'ABS' OR hvorg EQ 'SABR' OR hvorg EQ 'TABR' ) "Abschlag, Schlussrechnung oder Turnusrechnung, GEBO wäre Mahngebühr
Das Problem dabei:
Hat ein VK mehrere gemahnte Wiederholugnspositionen zu einem Posten, aber in unterschiedlichen Mahnstufen, während das Feld opupw in der dfkkop leer ist und gleicht er davon den mit der Mahnstufe 2 aus, so findet meine obige Abfrage dennoch den alten Stand vom Mahnvorschlagslauf. Auf der dfkkop gibt es ja immer noch nur einen Eintrag und der hat noch einen Mahnindikator (weil noch offenen Posten mit Mahnstufe 1 vorhanden sind).
Allerdings funktioniert das Ganze ja n der Kontenstandsanzeige, dort sehe ich den aktuellen Stand der Posten sowie deren Mahnstufe.
Also Kurzform:
Ich würde gern die Summe aller offenen Posten mit Mahnstufe 2 zu einem Vertragskonto auslesen.
Vielen Dank