Aktive Buchhaltungskonten trotz erreichter Befristung

Sofern alle bewilligten Leistungen in den Buchhaltungsstammdaten bzw. Budgetdetailsätzen eines Beteiligten beendet sind (Bis-Datum ist erreicht), ist es ratsam, die Buchhaltungsstammdaten dieses Beteiligten auf "Inaktiv" zu setzen, also das Häcken "Konto ist Aktiv" zu entfernen. 

So erreicht man u.a.,

  • dass in einem Fall die noch aktiven Buchhaltungsempfänger zuerst angezeigt werden,

  • das Programm bei Auto-Läufen nicht in vermeintlich aktiven Buchhaltungsstammdaten versuchen muss, irgendwelche Leistungen zu berechnen und erst an beendeten Festwerten o.ä. feststellt, dass keine Sollstellungen oder Ansprüche zu erzeugen sind

  • das Setzen eines Archivierungs- oder Löschdatums nicht an vermeintlich aktiven Buchhaltungsstammdaten scheitert.

Gleichwohl wird das Deaktiveren von Buchhaltungsstammdaten manchmal vergessen. Das nachfolgende SQL-Script listet die betroffenen Vorgänge und Beteiligten auf:

 

SQL Code für MS SQL Server

select   v.bereich as "Bereich",
         br.bb as "Bereichsname",
         v.aktenzeichen as "Aktenzeichen",
         isnull(u.name,'') as "Sachbearbeiter",

         a.nachname as "Nachname JM",
         a.vorname as "Vorname JM",
         convert(char(10),p.geburtsdatum,104) as "GebDat JM",

         ba2.bezeichnung as "Beteiligtenart",
         a2.nachname as "Nachname Beteiligter",
         isnull(a2.vorname,'')  as "Vorname Beteiligter",

         convert(char(10),h.datbis,104) as "BisDat BuchhStamm Beteiligter",

         case ascii(h.typ) when 69 then 'Empfänger (aktiv)'
                           when 101 then 'Empfänger (inaktiv)'
                           when 85 then 'Pflichtiger (aktiv)'
                           when 117 then 'Pflichtiger (inaktiv)'
                           else h.typ
         end as "BuchhKonto Beteiligter"

from     n_vorgang v
         inner join bere br on v.bereich = br.brs
         left join n_benutzer u on v.sachbearbeiter = u.lfdnr
        
         inner join n_vorgbeteiligte b on v.vorgangsnummer = b.vorgang
         inner join n_adressen a on b.adresse = a.adressnummer
         inner join n_personendaten p on b.adresse = p.zuordnungsnummer

         inner join hebuch h on v.muendelnr_alt = h.mnr and v.bereich = h.bereich
         inner join n_vorgbeteiligte b2 on h.n_vorgbet_fk = b2.beteiligtennummer
         inner join n_beteiligtenarten ba2 on b2.beteiligtenart = ba2.betnummer
         inner join n_adressen a2 on b2.adresse = a2.adressnummer


where    br.bsg < 6
and      b.beteiligtenart = 7
and      h.datbis <= getdate()
and      ascii(h.typ) in (69,85)

order by 1, 5, 6, p.geburtsdatum, 7, 8, 9

 

SQL Code für ORACLE

select   v.bereich as "Bereich",
         br.bb as "Bereichsname",
         v.aktenzeichen as "Aktenzeichen",
         nvl(u.name,'') as "Sachbearbeiter",

         a.nachname as "Nachname JM",
         a.vorname as "Vorname JM",
         to_char(p.geburtsdatum,'dd.mm.yyyy') as "GebDat JM",

         ba2.bezeichnung as "Beteiligtenart",
         a2.nachname as "Nachname Beteiligter",
         nvl(a2.vorname,'')  as "Vorname Beteiligter",

         to_char(h.datbis,'dd.mm.yyyy') as "BisDat BuchhStamm Beteiligter",

         case h.typ        when 'E' then 'Empfänger (aktiv)'
                           when 'e' then 'Empfänger (inaktiv)'
                           when 'U' then 'Pflichtiger (aktiv)'
                           when 'u' then 'pflichtiger (inaktiv)'
                           else h.typ
         end as "BuchhKonto Beteiligter"

from     n_vorgang v
         inner join bere br on v.bereich = br.brs
         left join n_benutzer u on v.sachbearbeiter = u.lfdnr
        
         inner join n_vorgbeteiligte b on v.vorgangsnummer = b.vorgang
         inner join n_adressen a on b.adresse = a.adressnummer
         inner join n_personendaten p on b.adresse = p.zuordnungsnummer

         inner join hebuch h on v.muendelnr_alt = h.mnr and v.bereich = h.bereich
         inner join n_vorgbeteiligte b2 on h.n_vorgbet_fk = b2.beteiligtennummer
         inner join n_beteiligtenarten ba2 on b2.beteiligtenart = ba2.betnummer
         inner join n_adressen a2 on b2.adresse = a2.adressnummer


where    br.bsg < 6
and      b.beteiligtenart = 7
and      h.datbis <= sysdate
and      h.typ in ('E','U')

order by 1, 5, 6, p.geburtsdatum, 7, 8, 9