예제 #1
0
    protected void LoadData(int tahun)
    {
        LabelPeriode.Text = tahun.ToString();

        //Literal LiteralChart = (Literal)this.Page.Master.FindControl("LiteralChart");

        LiteralChart.Text  = string.Empty;
        LiteralTempat.Text = string.Empty;

        using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
        {
            Tempat_Class ClassTempat = new Tempat_Class(db);

            #region TRANSAKSI TAHUN INI
            var TransaksiTahunIni = db.TBTransaksis
                                    .Where(item =>
                                           item.TanggalOperasional.Value.Year == tahun &&
                                           item.IDStatusTransaksi == 5)
                                    .ToArray();

            var TransaksiTahunIniPerBulan = TransaksiTahunIni
                                            .GroupBy(item => item.TanggalOperasional.Value.Month)
                                            .Select(item => new
            {
                Key        = item.Key,
                GrandTotal = item.Sum(item2 => item2.GrandTotal)
            })
                                            .ToArray();
            #endregion

            #region TRANSAKSI TAHUN LALU
            var TransaksiTahunLalu = db.TBTransaksis
                                     .Where(item =>
                                            item.TanggalOperasional.Value.Year == tahun - 1 &&
                                            item.IDStatusTransaksi == 5)
                                     .ToArray();

            var TransaksiTahunLaluPerBulan = TransaksiTahunLalu
                                             .GroupBy(item => item.TanggalOperasional.Value.Month)
                                             .Select(item => new
            {
                Key        = item.Key,
                GrandTotal = item.Sum(item2 => item2.GrandTotal)
            })
                                             .ToArray();
            #endregion

            #region DATA FORECASTING
            var DataForecasting = db.TBForecasts
                                  .Where(item => item.Tanggal.Year == tahun)
                                  .ToArray();
            #endregion

            #region GRAFIK SALES HISTORY
            LiteralChart.Text += "<script> $(function () { var dataChart = [";

            for (int i = 1; i <= 12; i++)
            {
                var BulanTahunIni  = TransaksiTahunIniPerBulan.FirstOrDefault(item2 => item2.Key == i);
                var BulanTahunLalu = TransaksiTahunLaluPerBulan.FirstOrDefault(item2 => item2.Key == i);

                LiteralChart.Text += "{ 'y': '" + Pengaturan.Bulan(i) + "', ";
                LiteralChart.Text += "'" + (tahun - 1) + "': " + (BulanTahunLalu != null ? BulanTahunLalu.GrandTotal : 0) + ", ";
                LiteralChart.Text += "'" + tahun + "': " + (BulanTahunIni != null ? BulanTahunIni.GrandTotal : 0) + ", ";
                LiteralChart.Text += " }, ";
            }

            LiteralChart.Text += "]; Morris.Bar({ element: 'graph', behaveLikeLine: true, data: dataChart, xkey: 'y', ";

            LiteralChart.Text += "ykeys: [";
            LiteralChart.Text += "'" + (tahun - 1) + "', ";
            LiteralChart.Text += "'" + tahun + "', ";
            LiteralChart.Text += "], ";

            LiteralChart.Text += "labels: [";
            LiteralChart.Text += "'" + (tahun - 1) + "', ";
            LiteralChart.Text += "'" + tahun + "', ";
            LiteralChart.Text += "], ";

            LiteralChart.Text += "barColors:['#7A92A3 ','#0B62A4'], ";
            LiteralChart.Text += " parseTime: false, resize:true }); eval(dataChart); }); </script>";
            #endregion

            #region SALES TEMPAT
            foreach (var item in ClassTempat.Data())
            {
                LiteralTempat.Text += "<div class='col-lg-6'><h4>" + item.TBKategoriTempat.Nama + " - " + item.Nama + "</h4><div id='graph" + item.IDTempat + "' style='width: 100%; height: 200px;'></div></div>";

                LiteralChart.Text += "<script> $(function () { var dataChart = [";

                var DataTransaksi = TransaksiTahunIni
                                    .Where(item2 => item2.IDTempat == item.IDTempat)
                                    .GroupBy(item2 => item2.TanggalOperasional.Value.Month)
                                    .Select(item2 => new
                {
                    Key        = item2.Key,
                    GrandTotal = item2.Sum(item3 => item3.GrandTotal)
                })
                                    .ToArray();

                var DataForecast = DataForecasting
                                   .Where(item2 => item2.IDTempat == item.IDTempat)
                                   .GroupBy(item2 => item2.Tanggal.Month)
                                   .Select(item2 => new
                {
                    Key        = item2.Key,
                    GrandTotal = item2.Sum(item3 => item3.Nominal)
                })
                                   .ToArray();

                for (int i = 1; i <= 12; i++)
                {
                    var TempatTransaksi = DataTransaksi.FirstOrDefault(item2 => item2.Key == i);
                    var TempatForecast  = DataForecast.FirstOrDefault(item2 => item2.Key == i);

                    LiteralChart.Text += "{ 'y': '" + Pengaturan.Bulan(i) + "', 'Forecast': " + Math.Round((TempatForecast != null ? TempatForecast.GrandTotal : 0)) + ", 'Actual Income': " + (TempatTransaksi != null ? TempatTransaksi.GrandTotal : 0) + " }, ";
                }

                LiteralChart.Text += "]; Morris.Bar({ element: 'graph" + item.IDTempat + "', behaveLikeLine: true, data: dataChart, xkey: 'y', ";

                LiteralChart.Text += "ykeys: ['Forecast','Actual Income'],";
                LiteralChart.Text += "labels: ['Forecast','Actual Income'],";
                LiteralChart.Text += "barColors:['#4DA74D','#0B62A4'],";

                LiteralChart.Text += " parseTime: false, resize:true }); eval(dataChart); }); </script>";
            }
            #endregion
        }
    }