Eingangsrechnungsbuch Kost1 und Kost2 füllen neues WW2

Vorgang in rebbuchung – Diese Felder werden mit dem Wert gefüllt
0 = Projekt füllt fkprojnr
2 = Regie füllt Vorgangsnr
4 = Bestell füllt füllt fkBestellnr
5 = Wartungsauftrag füllt Vorgangsnr
9 = Sonstiges NULL

Auf Basis der Checkliste sollten die Informationen zurückkommen, wie im Eingangsrechnungsbuch bei der Datev Schnittstelle die Felder Kost1 und Kost2 gefüllt werden sollen.

select re.id,re.Bezeichnung, rb.fkKonto, rb.fkBestellNr, rb.fkProjNr, rb.vorgang, rb.VorgangsNr, rb.KstKtr,Projekt.ProjNr as pnr,Regie.ProjNr as rnr,
projekt.AbtNr, regie.AbtNr, regie.AnlagenNummer, bestellung.VorgangsNr, bestellung.VorgangsNr2,
case
when rb.vorgang = 0 and rb.fkBestellNr is null then rb.fkProjNr
when rb.Vorgang = 2 and rb.fkBestellNr is null and rb.fkProjNr is null then rb.VorgangsNr
when rB.vorgang = 4 and rb.fkBestellNr is not null then Bestellung.VorgangsNr
when rb.Vorgang = 5 and rB.fkBestellNr is null and rb.fkProjNr is null then rb.VorgangsNr
end as Kostentraeger,
case
when cast(rB.vorgang as nvarchar) = 0 and cast(rb.fkBestellNr as nvarchar) is null then cast(projekt.AbtNr as nvarchar)
when cast(rB.vorgang as nvarchar) = 2 and cast(rb.fkBestellNr as nvarchar) is null and cast(rb.fkProjNr as nvarchar) is null then cast(regie.AbtNr as nvarchar)
when cast(rB.vorgang as nvarchar) = 4 and cast(rb.fkBestellNr as nvarchar) is not null then cast(Bestellung.AbteilungsNr as nvarchar)
–when rb.Vorgang = 5 then regie.AnlagenNummer
when rb.Vorgang = 5 then regie.AbtNr

end as Kost

FROM Bestellung RIGHT OUTER JOIN rebEinRechnung as re RIGHT OUTER JOIN rebBuchung as rb
on re.pkER = rb.fkER LEFT OUTER JOIN Projekt ON rb.fkProjNr = Projekt.ProjNr LEFT OUTER JOIN Regie ON rB.VorgangsNr =
Regie.ProjNr ON Bestellung.BestellNr = rb.fkBestellNr where REDatum > ‚01.04.2024‘