public static List<TrgovanjeMjesecRok> GetTrgovanjeMjesecRokCollection(DataAccessAdapterBase adapter, int godina, TrgovanjeVrstaEnum[] trgovanjeVrstaEnumArray) { List<TrgovanjeMjesecRok> trgovanjeMjesecListRok = new List<TrgovanjeMjesecRok>(); EntityCollection<TrgovanjeStavkaEntity> trgovanjeStavkaCollection = TrgovanjeStavkaEntity.FetchTrgovanjeStavkaCollection(adapter, godina, ValutaEnum.Kn); for (int mjesec = 1; mjesec < 13; mjesec++) { TrgovanjeMjesecRok trgovanjeMjesecRok = (from ts in trgovanjeStavkaCollection where ts.ValutaId == (long)ValutaEnum.Kn && ts.TrgovanjeGlava.Datum.Month == mjesec group ts by ts.ValutaId into g select new TrgovanjeMjesecRok() { Valuta = (ValutaEnum)g.Key, Godina = godina, Mjesec = mjesec, PrometUkupno = g.Sum(ts => ts.Promet), KamatnaStopaUkupno = g.Sum(ts => ts.Promet * ts.PrometDodatak) / g.Sum(ts => ts.Promet) }).SingleOrDefault(); if (null != trgovanjeMjesecRok) { trgovanjeMjesecRok.TrgovanjeRokList = new List<TrgovanjeRok>(); foreach (TrgovanjeVrstaEnum trgovanjeVrstaEnum in trgovanjeVrstaEnumArray) { TrgovanjeRok trgovanjeRok = (from ts in trgovanjeStavkaCollection where ts.ValutaId == (long)ValutaEnum.Kn && ts.TrgovanjeGlava.Datum.Month == mjesec && ts.TrgovanjeVrstaId == (long)trgovanjeVrstaEnum && ts.Promet > 0 group ts by ts.ValutaId into g select new TrgovanjeRok() { TrgovanjeVrstaEnum = trgovanjeVrstaEnum, Promet = g.Sum(ts => ts.Promet), KamatnaStopa = g.Sum(ts => ts.Promet * ts.PrometDodatak) / g.Sum(ts => ts.Promet) }).SingleOrDefault(); if (null != trgovanjeRok) { trgovanjeMjesecRok.TrgovanjeRokList.Add(trgovanjeRok); } } trgovanjeMjesecListRok.Add(trgovanjeMjesecRok); } } return trgovanjeMjesecListRok; }
public static List<TrgovanjeMjesecRokHnb> GetTrgovanjeMjesecRokHnbCollection(DataAccessAdapterBase adapter, int godina, TrgovanjeVrstaEnum[] trgovanjeVrstaEnumArray) { List<TrgovanjeMjesecRokHnb> trgovanjeMjesecListRok = new List<TrgovanjeMjesecRokHnb>(); EntityCollection<TrgovanjeStavkaHnbEntity> trgovanjeStavkaHnbCollection = TrgovanjeStavkaHnbEntity.FetchTrgovanjeStavkaHnbCollection(adapter, godina); for (int mjesec = 1; mjesec < 13; mjesec++) { IEnumerable<TrgovanjeStavkaHnbEntity> trgovanjeStavkaHnbCollectionForMonth = trgovanjeStavkaHnbCollection.Where(ts => ts.TrgovanjeGlavaHnb.Datum.Month == mjesec); decimal prometUkupno = trgovanjeStavkaHnbCollectionForMonth.Sum(ts => ts.IznosMilijuniKn); decimal? kamatnaStopa; if (0 == prometUkupno) { kamatnaStopa = null; } else { kamatnaStopa = trgovanjeStavkaHnbCollectionForMonth.Sum(ts => ts.IznosMilijuniKn * ts.KamatnaStopa) / prometUkupno; } TrgovanjeMjesecRokHnb trgovanjeMjesecRokHnb = new TrgovanjeMjesecRokHnb() { Godina = godina, Mjesec = mjesec, PrometUkupno = prometUkupno, KamatnaStopaUkupno = kamatnaStopa }; if (trgovanjeMjesecRokHnb.PrometUkupno.HasValue && trgovanjeMjesecRokHnb.KamatnaStopaUkupno.HasValue) { trgovanjeMjesecRokHnb.TrgovanjeRokList = new List<TrgovanjeRok>(); foreach (TrgovanjeVrstaEnum trgovanjeVrstaEnum in trgovanjeVrstaEnumArray) { IEnumerable<TrgovanjeStavkaHnbEntity> trgovanjeStavkaHnbCollectionForMonthAndVrsta = trgovanjeStavkaHnbCollectionForMonth.Where(ts => ts.TrgovanjeVrstaId == (long)trgovanjeVrstaEnum); decimal prometUkupnoVrsta = trgovanjeStavkaHnbCollectionForMonthAndVrsta.Sum(ts => ts.IznosMilijuniKn); decimal? kamatnaStopaVrsta; if (0 == prometUkupnoVrsta) { kamatnaStopaVrsta = null; } else { kamatnaStopaVrsta = trgovanjeStavkaHnbCollectionForMonthAndVrsta.Sum(ts => ts.IznosMilijuniKn * ts.KamatnaStopa) / prometUkupnoVrsta; } TrgovanjeRok trgovanjeRok = new TrgovanjeRok() { TrgovanjeVrstaEnum = trgovanjeVrstaEnum, Promet = prometUkupnoVrsta, KamatnaStopa = kamatnaStopaVrsta }; if (null != trgovanjeRok) { trgovanjeMjesecRokHnb.TrgovanjeRokList.Add(trgovanjeRok); } } trgovanjeMjesecListRok.Add(trgovanjeMjesecRokHnb); } } return trgovanjeMjesecListRok; }