protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { Store_Class ClassStore = new Store_Class(db); if (!string.IsNullOrWhiteSpace(Request.QueryString["id"]) && !string.IsNullOrWhiteSpace(Request.QueryString["month"]) && !string.IsNullOrWhiteSpace(Request.QueryString["year"])) { var DataStore = ClassStore.Data(); LabelNamaStore.Text = DataStore.Nama; LabelAlamatStore.Text = DataStore.Alamat; //cari kategori tempat sesuai dengan yang dicari var KategoriTempatDB = db.TBKategoriTempats.FirstOrDefault(item => item.IDKategoriTempat.ToString() == Request.QueryString["id"].ToString()); //cari forecast seluruh store dengan IDKategoriTempat yang sesuai var forecastDB = db.TBForecasts.Where(item => item.TBTempat.IDKategoriTempat == KategoriTempatDB.IDKategoriTempat).ToArray(); var hasil = db.TBTransaksis.AsEnumerable() .Where(item => item.TBTempat.TBKategoriTempat.IDKategoriTempat.ToString() == Request.QueryString["id"].ToString() && item.TanggalTransaksi.Value.Year == int.Parse(Request.QueryString["year"].ToString()) && item.TanggalTransaksi.Value.Month.ToString() == Request.QueryString["month"].ToString() && item.IDStatusTransaksi == (int)EnumStatusTransaksi.Complete) .GroupBy(item => new { IDTempat = item.IDTempat, Tempat = item.TBTempat.Nama, item.TanggalTransaksi, NamaPenggunaTransaksi = item.TBPengguna.NamaLengkap }).Select(item => new { item.Key, Qty = item.Sum(item2 => item2.JumlahProduk), ActualIncome = item.Sum(item2 => item2.GrandTotal), ForecastIncome = forecastDB.FirstOrDefault(item2 => item2.Tanggal.Date == item.Key.TanggalTransaksi.Value.Date) == null ? 0 : forecastDB.FirstOrDefault(item2 => item2.Tanggal.Date == item.Key.TanggalTransaksi.Value.Date).Nominal, ForecastQuantity = forecastDB.FirstOrDefault(item2 => item2.Tanggal.Date == item.Key.TanggalTransaksi.Value.Date) == null ? 0 : forecastDB.FirstOrDefault(item2 => item2.Tanggal.Date == item.Key.TanggalTransaksi.Value.Date).Quantity }).ToArray().OrderBy(item => item.Key.Tempat).ThenBy(item2 => item2.Key.TanggalTransaksi); RepeaterDataSales.DataSource = hasil; RepeaterDataSales.DataBind(); if (hasil != null) { LabelTotalForecastQuantity.Text = hasil.Sum(item => item.ForecastQuantity).ToFormatHargaBulat(); LabelTotalForecastIncome.Text = hasil.Sum(item => item.ForecastIncome).ToFormatHarga(); LabelTotalQty.Text = hasil.Sum(item => item.Qty).ToFormatHargaBulat(); LabelTotalActualIncome.Text = hasil.Sum(item => item.ActualIncome).ToFormatHarga(); LabelNamaKategoriTempat.Text = KategoriTempatDB.Nama.ToUpper() + " " + DataStore.Nama.ToUpper(); } } } } }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { if (!string.IsNullOrWhiteSpace(Request.QueryString["year"])) { int Year = 0; int.TryParse(Request.QueryString["year"].ToString(), out Year); var DataStore = db.TBStores.FirstOrDefault(); LabelNamaStore.Text = DataStore.Nama; LabelAlamatStore.Text = DataStore.Alamat; #region Data Header KategoriTempat RepeaterKategoriTempat.DataSource = db.TBKategoriTempats.ToArray().OrderBy(item => item.IDKategoriTempat); RepeaterKategoriTempat.DataBind(); #endregion #region Data Sales var _result = db.TBTransaksis.AsEnumerable().Where(x => x.TanggalPembayaran.Value.Year == Year && x.IDStatusTransaksi == (int)EnumStatusTransaksi.Complete).GroupBy(item => new { Bulan = item.TanggalPembayaran.Value.Month, NamaBulan = item.TanggalPembayaran.Value.ToString("MMMM") }) .Select(itemTransaksi => new { itemTransaksi.Key, NamaBulan = itemTransaksi.Key.NamaBulan, Hasil = db.TBKategoriTempats.Select(itemHasil => new { itemHasil.IDKategoriTempat, Grandtotal = db.TBTransaksis.Where(item => item.TBTempat.TBKategoriTempat.IDKategoriTempat == itemHasil.IDKategoriTempat && item.TanggalPembayaran.Value.Month == itemTransaksi.Key.Bulan).Select(item => item.IDTransaksi).Count() == 0 ? 0 : db.TBTransaksis.Where(item => item.TBTempat.TBKategoriTempat.IDKategoriTempat == itemHasil.IDKategoriTempat && item.TanggalPembayaran.Value.Month == itemTransaksi.Key.Bulan).Sum(item => item.GrandTotal) }).OrderBy(item => item.IDKategoriTempat), }); if (_result.Count() != 0) { RepeaterDataSales.DataSource = _result.OrderBy(item => item.Key.Bulan); RepeaterDataSales.DataBind(); var DataTotal = db.TBKategoriTempats.Select(itemHasil => new { GrandTotalKategoriTempat = db.TBTransaksis.Where(item => item.TBTempat.TBKategoriTempat.IDKategoriTempat == itemHasil.IDKategoriTempat).Select(item => item.IDTransaksi).Count() == 0 ? 0 : db.TBTransaksis.Where(item => item.TBTempat.TBKategoriTempat.IDKategoriTempat == itemHasil.IDKategoriTempat).Sum(item2 => item2.GrandTotal) }).ToArray(); RepeaterTotalKategoriTempat.DataSource = DataTotal; RepeaterTotalKategoriTempat.DataBind(); #region Labelling LabelTahun.Text = Request.QueryString["year"].ToString().ToUpper(); LabelGrandTotal.Text = Parse.ToFormatHarga(_result.Sum(x => x.Hasil.Sum(y => y.Grandtotal))); #endregion } #endregion } } } }