Beispiel #1
0
        public Task <IEnumerable <SpezialkontoDisplayItem> > GetSpezialkontenOfLeistung(int faLeistungId, BgSpezkontoTyp typ, bool nurAktive)
        {
            var query = new SpezialkontenQuery {
                FaLeistungId = faLeistungId, Typ = typ, NurAktive = nurAktive
            };

            return(_mediator.Process(query));
        }
Beispiel #2
0
 public override async Task <IEnumerable <SpezialkontoDisplayItem> > Handle(SpezialkontenQuery query)
 {
     return(await _displayItems
            .AsNoTracking()
            .FromSql(@"SELECT SSK.*,
                           Saldo                 = dbo.fnBgSpezkonto(SSK.BgSpezkontoID, 3, default, default),
                           DatumVonJahr          = year(SSK.DatumVon),
                           DatumVonMonat         = month(SSK.DatumVon),
                           DatumBisJahr          = year(SSK.DatumBis),
                           DatumBisMonat         = month(SSK.DatumBis),
                           GueltigVon            = dbo.fnXKurzMonatJahr(SSK.DatumVon),
                           GueltigBis            = dbo.fnXKurzMonatJahr(SSK.DatumBis),
                           InstitutionName       = INS.Name,
                           BewilligungStatusCode = CASE
                                                     WHEN SSK.Inaktiv = 0 THEN 5
                                                     WHEN SSK.Inaktiv = 1 AND BUC.FreigegebenePositionenVorhanden = 1 THEN 9
                                                     ELSE 1
                                                   END,
                           ProPerson             = BPA.ProPerson,
                           ProUE                 = BPA.ProUE
                     FROM BgSpezkonto            SSK
                       LEFT JOIN BgKostenart     FLK ON FLK.BgKostenartID    = SSK.BgKostenartID
                       LEFT JOIN BgPositionsart  BPA ON BPA.BgPositionsartID = SSK.BgPositionsartID
                       LEFT JOIN vwInstitution   INS ON INS.BaInstitutionID  = SSK.BaInstitutionID
                       LEFT JOIN (SELECT BPO.BgSpezkontoID, FreigegebenePositionenVorhanden = CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END
                                  FROM vwBgPosition     BPO
                                    INNER JOIN BgBudget BBG ON BBG.BgBudgetID   = BPO.BgBudgetID
                                                           AND BBG.MasterBudget = 0
                                  WHERE BBG.BgBewilligungStatusCode >= 5 -- grün oder gesperrt
                                  GROUP BY BPO.BgSpezkontoID) BUC ON BUC.BgSpezkontoID = SSK.BgSpezkontoID
                     WHERE SSK.FaLeistungID       = {0}
                       AND SSK.BgSpezkontoTypCode = {1}
                       AND ({2} = 0 OR (dbo.fnDateOf(ISNULL(SSK.DatumBis, {3})) >= dbo.fnDateOf({3}) AND SSK.Inaktiv = 0))
                     ORDER BY SSK.DatumVon DESC, SSK.NameSpezkonto", query.FaLeistungId, query.Typ, query.NurAktive, _dateTimeProvider.Now)
            .ToListAsync());
 }