Beispiel #1
0
    protected void DropDownListIDPOProduksi_SelectedIndexChanged(object sender, EventArgs e)
    {
        using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
        {
            if (DropDownListIDPOProduksi.SelectedValue != "0")
            {
                PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"];

                TBPOProduksiProduk poProduksiProduk = db.TBPOProduksiProduks.FirstOrDefault(item => item.IDPOProduksiProduk == DropDownListIDPOProduksi.SelectedValue);

                var SisaDataDetailPOProduk = poProduksiProduk.TBPOProduksiProdukDetails.AsEnumerable()
                                             .Where(item => item.Sisa > 0)
                                             .Select(item => new
                {
                    item.IDKombinasiProduk,
                    Produk  = item.TBKombinasiProduk.TBProduk.Nama,
                    Atribut = item.TBKombinasiProduk.TBAtributProduk.Nama,
                    Sisa    = item.Sisa.ToFormatHargaBulat()
                });

                if (SisaDataDetailPOProduk.Count() == 0)
                {
                    ButtonTerima.Visible = false;
                }

                RepeaterDetail.DataSource = SisaDataDetailPOProduk;
                RepeaterDetail.DataBind();
            }
            else
            {
                RepeaterDetail.DataSource = null;
                RepeaterDetail.DataBind();
            }
        }
    }
Beispiel #2
0
    protected void DropDownListCariSupplier_SelectedIndexChanged(object sender, EventArgs e)
    {
        using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
        {
            RepeaterDetail.DataSource = null;
            RepeaterDetail.DataBind();

            if (DropDownListCariSupplier.SelectedValue != "0")
            {
                DropDownListIDPOProduksi.Enabled        = true;
                DropDownListIDPOProduksi.DataSource     = db.TBPOProduksiBahanBakus.Where(item => item.IDSupplier == DropDownListCariSupplier.SelectedValue.ToInt() && item.EnumJenisProduksi != (int)PilihanEnumJenisProduksi.ProduksiSendiri && item.TanggalDownPayment == null).OrderByDescending(item => item.Nomor);
                DropDownListIDPOProduksi.DataTextField  = "IDPOProduksiBahanBaku";
                DropDownListIDPOProduksi.DataValueField = "IDPOProduksiBahanBaku";
                DropDownListIDPOProduksi.DataBind();
                DropDownListIDPOProduksi.Items.Insert(0, new ListItem {
                    Value = "0", Text = "-Pilih-"
                });
            }
            else
            {
                DropDownListIDPOProduksi.SelectedValue = "0";
                DropDownListIDPOProduksi.Enabled       = false;
            }
        }
    }
Beispiel #3
0
    protected void DropDownListCariVendor_SelectedIndexChanged(object sender, EventArgs e)
    {
        using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
        {
            RepeaterDetail.DataSource = null;
            RepeaterDetail.DataBind();

            if (DropDownListCariVendor.SelectedValue != "0")
            {
                DropDownListIDPOProduksi.Enabled        = true;
                DropDownListIDPOProduksi.DataSource     = db.TBPOProduksiProduks.Where(item => item.IDVendor == DropDownListCariVendor.SelectedValue.ToInt() && item.EnumJenisProduksi == (int)PilihanEnumJenisProduksi.PurchaseOrder && item.TBPOProduksiProdukDetails.Sum(item2 => item2.Sisa) > 0).OrderByDescending(item => item.Nomor);
                DropDownListIDPOProduksi.DataTextField  = "IDPOProduksiProduk";
                DropDownListIDPOProduksi.DataValueField = "IDPOProduksiProduk";
                DropDownListIDPOProduksi.DataBind();
                DropDownListIDPOProduksi.Items.Insert(0, new ListItem {
                    Value = "0", Text = "-Pilih-"
                });
            }
            else
            {
                DropDownListIDPOProduksi.SelectedValue = "0";
                DropDownListIDPOProduksi.Enabled       = false;
            }
        }
    }
Beispiel #4
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"];

                TBStore store = db.TBStores.FirstOrDefault();

                LabelNamaStore.Text   = store.Nama;
                LabelAlamatStore.Text = store.Alamat;

                TBPengirimanPOProduksiBahanBaku pengirimanPOProduksiBahanBaku = db.TBPengirimanPOProduksiBahanBakus.FirstOrDefault(item => item.IDPengirimanPOProduksiBahanBaku == Request.QueryString["id"]);

                LabelJudul.Text = "DELIVERY RAW MATERIALS TO SUPPLIER";
                LabelIDPengirimanPOProduksiBahanBaku.Text = pengirimanPOProduksiBahanBaku.IDPengirimanPOProduksiBahanBaku;

                LabelNamaSupplier.Text   = pengirimanPOProduksiBahanBaku.TBPOProduksiBahanBaku.IDSupplier != null ? pengirimanPOProduksiBahanBaku.TBPOProduksiBahanBaku.TBSupplier.Nama : string.Empty;
                LabelAlamatSupplier.Text = pengirimanPOProduksiBahanBaku.TBPOProduksiBahanBaku.IDSupplier != null ? pengirimanPOProduksiBahanBaku.TBPOProduksiBahanBaku.TBSupplier.Alamat : string.Empty;

                LabelIDProduksi.Text   = pengirimanPOProduksiBahanBaku.IDPOProduksiBahanBaku;
                LabelIDPengiriman.Text = pengirimanPOProduksiBahanBaku.IDPengirimanPOProduksiBahanBaku;
                LabelTanggal.Text      = pengirimanPOProduksiBahanBaku.Tanggal.ToFormatTanggal();
                LabelPengirim.Text     = pengirimanPOProduksiBahanBaku.TBPengguna.NamaLengkap;

                RepeaterDetail.DataSource = pengirimanPOProduksiBahanBaku.TBPengirimanPOProduksiBahanBakuDetails.ToArray();
                RepeaterDetail.DataBind();
            }
        }
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"];

                TBStore store = db.TBStores.FirstOrDefault();

                LabelNamaStore.Text   = store.Nama;
                LabelAlamatStore.Text = store.Alamat;

                TBPenerimaanPOProduksiProduk penerimaanPOProduksiProduk = db.TBPenerimaanPOProduksiProduks.FirstOrDefault(item => item.IDPenerimaanPOProduksiProduk == Request.QueryString["id"]);

                LabelJudul.Text = "(PRODUCT)";
                LabelIDPenerimaanPOProduksiProduk.Text = penerimaanPOProduksiProduk.IDPenerimaanPOProduksiProduk;

                LabelNamaVendor.Text   = penerimaanPOProduksiProduk.TBPOProduksiProduk.IDVendor != null ? penerimaanPOProduksiProduk.TBPOProduksiProduk.TBVendor.Nama : string.Empty;
                LabelAlamatVendor.Text = penerimaanPOProduksiProduk.TBPOProduksiProduk.IDVendor != null ? penerimaanPOProduksiProduk.TBPOProduksiProduk.TBVendor.Alamat : string.Empty;

                LabelIDProduksi.Text   = penerimaanPOProduksiProduk.IDPOProduksiProduk;
                LabelIDPenerimaan.Text = penerimaanPOProduksiProduk.IDPenerimaanPOProduksiProduk;
                LabelTanggal.Text      = penerimaanPOProduksiProduk.TanggalDatang.ToFormatTanggal();
                LabelPenerima.Text     = penerimaanPOProduksiProduk.TBPengguna.NamaLengkap;

                RepeaterDetail.DataSource = penerimaanPOProduksiProduk.TBPenerimaanPOProduksiProdukDetails.ToArray();
                RepeaterDetail.DataBind();
            }
        }
    }
Beispiel #6
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                TBPenerimaanPOProduksiBahanBaku penerimaan = db.TBPenerimaanPOProduksiBahanBakus.FirstOrDefault(item => item.IDPenerimaanPOProduksiBahanBaku == Request.QueryString["id"]);

                TextBoxIDProyeksi.Text            = penerimaan.TBPOProduksiBahanBaku.IDProyeksi != null ? penerimaan.TBPOProduksiBahanBaku.IDProyeksi : "-Tidak Ada Proyeksi-";
                TextBoxIDPOProduksiBahanBaku.Text = penerimaan.IDPOProduksiBahanBaku;
                TextBoxPegawai.Text = penerimaan.TBPengguna1.NamaLengkap;
                TextBoxTanggal.Text = penerimaan.TanggalTerima.ToFormatTanggal();
                TextBoxStatus.Text  = penerimaan.TBPOProduksiBahanBakuPenagihan != null ? penerimaan.TBPOProduksiBahanBakuPenagihan.StatusPembayaran == false ? "Kontra" : "Lunas" : "Baru";
                TextBoxIDPOProduksiBahanBakuPenagihan.Text = penerimaan.TBPOProduksiBahanBakuPenagihan == null ? string.Empty : penerimaan.IDPOProduksiBahanBakuPenagihan;

                TextBoxSupplier.Text = penerimaan.TBPOProduksiBahanBaku.TBSupplier.Nama;
                TextBoxEmail.Text    = penerimaan.TBPOProduksiBahanBaku.TBSupplier.Email;
                TextBoxAlamat.Text   = penerimaan.TBPOProduksiBahanBaku.TBSupplier.Alamat;
                TextBoxTelepon1.Text = penerimaan.TBPOProduksiBahanBaku.TBSupplier.Telepon1;
                TextBoxTelepon2.Text = penerimaan.TBPOProduksiBahanBaku.TBSupplier.Telepon2;

                RepeaterDetail.DataSource = penerimaan.TBPenerimaanPOProduksiBahanBakuDetails.ToArray();
                RepeaterDetail.DataBind();

                TextBoxKeterangan.Text = penerimaan.Keterangan;
            }
        }
    }
Beispiel #7
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                TBPOProduksiProdukPenagihan poProduksiProdukPenagihan = db.TBPOProduksiProdukPenagihans.FirstOrDefault(item => item.IDPOProduksiProdukPenagihan == Request.QueryString["id"]);

                TextBoxIDPOProduksiBahanBakuPenagihan.Text = poProduksiProdukPenagihan.IDPOProduksiProdukPenagihan;
                TextBoxPegawai.Text = poProduksiProdukPenagihan.TBPengguna.NamaLengkap;
                TextBoxStatus.Text  = poProduksiProdukPenagihan.StatusPembayaran == false ? "Tagihan" : "Lunas";

                TextBoxVendor.Text   = poProduksiProdukPenagihan.TBVendor.Nama;
                TextBoxAlamat.Text   = poProduksiProdukPenagihan.TBVendor.Alamat;
                TextBoxEmail.Text    = poProduksiProdukPenagihan.TBVendor.Email;
                TextBoxTelepon1.Text = poProduksiProdukPenagihan.TBVendor.Telepon1;
                TextBoxTelepon2.Text = poProduksiProdukPenagihan.TBVendor.Telepon2;

                TextBoxKeterangan.Text = poProduksiProdukPenagihan.Keterangan;

                RepeaterDetail.DataSource = poProduksiProdukPenagihan.TBPenerimaanPOProduksiProduks.Select(item => new
                {
                    item.IDPenerimaanPOProduksiProduk,
                    item.TanggalTerima,
                    item.Grandtotal
                });
                RepeaterDetail.DataBind();
                LabelTotalPenerimaan.Text = poProduksiProdukPenagihan.TotalPenerimaan.ToFormatHarga();

                RepeaterRetur.DataSource = poProduksiProdukPenagihan.TBPOProduksiProdukReturs.Select(item => new
                {
                    item.IDPOProduksiProdukRetur,
                    item.TanggalRetur,
                    item.Grandtotal
                });
                RepeaterRetur.DataBind();
                LabelTotalRetur.Text = poProduksiProdukPenagihan.TotalRetur.ToFormatHarga();

                RepeaterDownPayment.DataSource = poProduksiProdukPenagihan.TBPenerimaanPOProduksiProduks.Select(item => item.TBPOProduksiProduk).Distinct().Where(item => item.IDPOProduksiProdukPenagihan == poProduksiProdukPenagihan.IDPOProduksiProdukPenagihan).Select(item => new
                {
                    item.IDPOProduksiProduk,
                    item.TanggalDownPayment,
                    item.DownPayment
                });
                RepeaterDownPayment.DataBind();
                LabelTotalDownPayment.Text = poProduksiProdukPenagihan.TotalDownPayment.ToFormatHarga();

                RepeaterPembayaran.DataSource = poProduksiProdukPenagihan.TBPOProduksiProdukPenagihanDetails.Select(item => new
                {
                    Pegawai = item.TBPengguna.NamaLengkap,
                    item.Tanggal,
                    JenisPembayaran = item.TBJenisPembayaran.Nama,
                    item.Bayar
                });
                RepeaterPembayaran.DataBind();
                LabelTotalBayar.Text = poProduksiProdukPenagihan.TotalBayar.ToFormatHarga();
            }
        }
    }
Beispiel #8
0
    protected void DropDownListIDPOProduksi_SelectedIndexChanged(object sender, EventArgs e)
    {
        using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
        {
            ButtonSimpan.Enabled = false;

            if (DropDownListIDPOProduksi.SelectedValue != "0")
            {
                PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"];

                TBPOProduksiBahanBaku poProduksiBahanBaku = db.TBPOProduksiBahanBakus.FirstOrDefault(item => item.IDPOProduksiBahanBaku == DropDownListIDPOProduksi.SelectedValue);

                TextBoxStatusHPP.Text         = Pengaturan.StatusJenisHPP(poProduksiBahanBaku.EnumJenisHPP.Value);
                TextBoxPegawaiPIC.Text        = poProduksiBahanBaku.TBPengguna1.NamaLengkap;
                TextBoxPembuat.Text           = poProduksiBahanBaku.TBPengguna.NamaLengkap + " / " + poProduksiBahanBaku.Tanggal.ToFormatTanggal();
                TextBoxTanggalJatuhTempo.Text = poProduksiBahanBaku.TanggalJatuhTempo.ToFormatTanggal();
                TextBoxTanggalPengiriman.Text = poProduksiBahanBaku.TanggalPengiriman.ToFormatTanggal();

                RepeaterDetail.DataSource = poProduksiBahanBaku.TBPOProduksiBahanBakuDetails.ToArray();
                RepeaterDetail.DataBind();
                LabelTotalJumlah.Text   = poProduksiBahanBaku.TotalJumlah.ToFormatHarga();
                LabelTotalSubtotal.Text = poProduksiBahanBaku.SubtotalTotalHargaSupplier.ToFormatHarga();
                LabelTotalSisa.Text     = poProduksiBahanBaku.TBPOProduksiBahanBakuDetails.Sum(data => data.Sisa).ToFormatHarga();

                TextBoxKeterangan.Text    = poProduksiBahanBaku.Keterangan;
                TextBoxBiayaLainLain.Text = poProduksiBahanBaku.BiayaLainLain.ToFormatHarga();
                TextBoxPotonganPO.Text    = poProduksiBahanBaku.PotonganPOProduksiBahanBaku.ToFormatHarga();
                LabelTax.Text             = "Tax (" + (poProduksiBahanBaku.PersentaseTax * 100).ToFormatHarga() + "%)";
                TextBoxTax.Text           = poProduksiBahanBaku.Tax.ToFormatHarga();
                TextBoxGrandtotal.Text    = poProduksiBahanBaku.Grandtotal.ToFormatHarga();

                ButtonSimpan.Enabled = true;
            }
            else
            {
                TextBoxStatusHPP.Text         = string.Empty;
                TextBoxPegawaiPIC.Text        = string.Empty;
                TextBoxPembuat.Text           = string.Empty;
                TextBoxTanggalJatuhTempo.Text = string.Empty;
                TextBoxTanggalPengiriman.Text = string.Empty;

                RepeaterDetail.DataSource = null;
                RepeaterDetail.DataBind();
                LabelTotalJumlah.Text   = "0";
                LabelTotalSubtotal.Text = "0";
                LabelTotalSisa.Text     = "0";

                TextBoxKeterangan.Text    = string.Empty;
                TextBoxBiayaLainLain.Text = "0";
                TextBoxPotonganPO.Text    = "0";
                LabelTax.Text             = "Tax (0%)";
                TextBoxTax.Text           = "0";
                TextBoxGrandtotal.Text    = "0";
            }
        }
    }
Beispiel #9
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                TBPOProduksiProduk poProduksiProduk = db.TBPOProduksiProduks.FirstOrDefault(item => item.IDPOProduksiProduk == Request.QueryString["id"]);

                TextBoxIDProyeksi.Text         = poProduksiProduk.IDProyeksi != null ? poProduksiProduk.IDProyeksi : "-Tidak Ada Proyeksi-";
                TextBoxIDPOProduksiProduk.Text = poProduksiProduk.IDPOProduksiProduk;
                TextBoxStatusHPP.Text          = Pengaturan.StatusJenisHPP(poProduksiProduk.EnumJenisHPP.Value);
                TextBoxPegawaiPIC.Text         = poProduksiProduk.TBPengguna1.NamaLengkap;
                TextBoxPembuat.Text            = poProduksiProduk.TBPengguna.NamaLengkap + " / " + poProduksiProduk.Tanggal.ToFormatTanggal();
                TextBoxKeterangan.Text         = poProduksiProduk.Keterangan;

                RepeaterDetail.DataSource = poProduksiProduk.TBPOProduksiProdukDetails.ToArray();
                RepeaterDetail.DataBind();
                LabelTotalJumlah.Text   = poProduksiProduk.TotalJumlah.ToFormatHargaBulat();
                LabelTotalSubtotal.Text = poProduksiProduk.SubtotalTotalHargaVendor.ToFormatHarga();
                LabelTotalSisa.Text     = poProduksiProduk.TBPOProduksiProdukDetails.Sum(data => data.Sisa).ToFormatHargaBulat();

                RepeaterKomposisi.DataSource = poProduksiProduk.TBPOProduksiProdukKomposisis.OrderBy(item => item.TBBahanBaku.Nama).ToArray();
                RepeaterKomposisi.DataBind();
                LabelTotalSubtotalKomposisi.Text = poProduksiProduk.TBPOProduksiProdukKomposisis.Sum(item => item.Subtotal).ToFormatHarga();

                RepeaterBiayaTambahan.DataSource = poProduksiProduk.TBPOProduksiProdukBiayaTambahans.OrderBy(item => item.TBJenisBiayaProduksi.Nama).ToArray();
                RepeaterBiayaTambahan.DataBind();
                LabelTotalSubtotalBiayaTambahan.Text = poProduksiProduk.TBPOProduksiProdukBiayaTambahans.Sum(item => item.Nominal).ToFormatHarga();

                RepeaterPengiriman.DataSource = db.TBPengirimanPOProduksiProduks.Where(item => item.IDPOProduksiProduk == Request.QueryString["id"]).Select(item => new
                {
                    item.IDPengirimanPOProduksiProduk,
                    item.Tanggal,
                    Pegawai = item.TBPengguna.NamaLengkap,
                    Cetak   = "return popitup('../CetakPengiriman.aspx?id=" + item.IDPengirimanPOProduksiProduk + "')"
                }).ToArray();
                RepeaterPengiriman.DataBind();

                RepeaterPenerimaan.DataSource = db.TBPenerimaanPOProduksiProduks.Where(item => item.IDPOProduksiProduk == Request.QueryString["id"]).Select(item => new
                {
                    item.IDPenerimaanPOProduksiProduk,
                    item.TanggalDatang,
                    Pegawai = item.TBPengguna.NamaLengkap,
                    Cetak   = "return popitup('../CetakPenerimaan.aspx?id=" + item.IDPenerimaanPOProduksiProduk + "')"
                });
                RepeaterPenerimaan.DataBind();

                if (poProduksiProduk.TBPenerimaanPOProduksiProduks.Count > 0 || poProduksiProduk.TBPengirimanPOProduksiProduks.Count > 0)
                {
                    ButtonEdit.Visible = false;
                }
            }
        }
    }
Beispiel #10
0
    private void LoadData()
    {
        List <POProduksiDetail_Model> ViewStateListDetail = (List <POProduksiDetail_Model>)ViewState["ViewStateListDetail"];

        RepeaterDetail.DataSource = ViewStateListDetail;
        RepeaterDetail.DataBind();

        LabelTotalSubtotal.Text = ViewStateListDetail.Sum(item => item.SubtotalHarga).ToFormatHarga();

        ViewState["ViewStateListDetail"] = ViewStateListDetail;

        HitungGrandTotal();
    }
Beispiel #11
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                TBPOProduksiProduk poProduksiProduk = db.TBPOProduksiProduks.FirstOrDefault(item => item.IDPOProduksiProduk == Request.QueryString["id"]);

                TextBoxIDProyeksi.Text         = poProduksiProduk.IDProyeksi != null ? poProduksiProduk.IDProyeksi : "-Tidak Ada Proyeksi-";
                TextBoxIDPOProduksiProduk.Text = poProduksiProduk.IDPOProduksiProduk;
                TextBoxStatusHPP.Text          = Pengaturan.StatusJenisHPP(poProduksiProduk.EnumJenisHPP.Value);
                TextBoxPegawaiPIC.Text         = poProduksiProduk.TBPengguna1.NamaLengkap;
                TextBoxPembuat.Text            = poProduksiProduk.TBPengguna.NamaLengkap + " / " + poProduksiProduk.Tanggal.ToFormatTanggal();
                TextBoxTanggalJatuhTempo.Text  = poProduksiProduk.TanggalJatuhTempo.ToFormatTanggal();
                TextBoxTanggalPengiriman.Text  = poProduksiProduk.TanggalPengiriman.ToFormatTanggal();

                TextBoxVendor.Text   = poProduksiProduk.TBVendor.Nama;
                TextBoxEmail.Text    = poProduksiProduk.TBVendor.Email;
                TextBoxAlamat.Text   = poProduksiProduk.TBVendor.Alamat;
                TextBoxTelepon1.Text = poProduksiProduk.TBVendor.Telepon1;
                TextBoxTelepon2.Text = poProduksiProduk.TBVendor.Telepon2;

                RepeaterDetail.DataSource = poProduksiProduk.TBPOProduksiProdukDetails.ToArray();
                RepeaterDetail.DataBind();
                LabelTotalJumlah.Text   = poProduksiProduk.TotalJumlah.ToFormatHargaBulat();
                LabelTotalSubtotal.Text = poProduksiProduk.SubtotalTotalHargaVendor.ToFormatHarga();
                LabelTotalSisa.Text     = poProduksiProduk.TBPOProduksiProdukDetails.Sum(data => data.Sisa).ToFormatHargaBulat();

                TextBoxKeterangan.Text    = poProduksiProduk.Keterangan;
                TextBoxBiayaLainLain.Text = poProduksiProduk.BiayaLainLain.ToFormatHarga();
                TextBoxPotonganPO.Text    = poProduksiProduk.PotonganPOProduksiProduk.ToFormatHarga();
                LabelTax.Text             = "Tax (" + (poProduksiProduk.PersentaseTax * 100).ToFormatHarga() + "%)";
                TextBoxTax.Text           = poProduksiProduk.Tax.ToFormatHarga();
                TextBoxGrandtotal.Text    = poProduksiProduk.Grandtotal.ToFormatHarga();

                RepeaterPenerimaan.DataSource = db.TBPenerimaanPOProduksiProduks.Where(item => item.IDPOProduksiProduk == Request.QueryString["id"]).Select(item => new
                {
                    item.IDPenerimaanPOProduksiProduk,
                    item.TanggalDatang,
                    Pegawai = item.TBPengguna.NamaLengkap,
                    Cetak   = "return popitup('../CetakPenerimaan.aspx?id=" + item.IDPenerimaanPOProduksiProduk + "')"
                });
                RepeaterPenerimaan.DataBind();

                if (poProduksiProduk.TBPenerimaanPOProduksiProduks.Count > 0 || poProduksiProduk.TBPengirimanPOProduksiProduks.Count > 0)
                {
                    ButtonEdit.Visible = false;
                }
            }
        }
    }
Beispiel #12
0
        protected void bindDD()
        {
            string    sql_command = " EXEC [dbo].[get_template_03_11] '" + param_projid + "'";
            DataTable dt          = ClassConfig.GetDataSQL(sql_command);

            if (dt.Rows.Count > 0)
            {
                Repeater1.DataSource = dt;
                Repeater1.DataBind();

                RepeaterDetail.DataSource = dt;
                RepeaterDetail.DataBind();
            }
        }
Beispiel #13
0
    private void LoadData()
    {
        List <StokProduk_Model> ViewStateListDetail = (List <StokProduk_Model>)ViewState["ViewStateListDetail"];

        RepeaterDetail.DataSource = ViewStateListDetail.GroupBy(item => item.IDProduk).Select(item => new
        {
            item.FirstOrDefault().Produk,
            IDProduk = item.Key,
            Body     = item.Select(item2 => new
            {
                item2.Atribut,
                item2.Jumlah
            }),
            CountDetail = item.Count()
        });
        RepeaterDetail.DataBind();
    }
Beispiel #14
0
    private void LoadData()
    {
        List <StokProduk_Model> ViewStateListDetail = (List <StokProduk_Model>)ViewState["ViewStateListDetail"];

        RepeaterDetail.DataSource = ViewStateListDetail;
        RepeaterDetail.DataBind();

        if (ViewStateListDetail.Count == 0)
        {
            LabelTotal.Text = "0";
        }
        else
        {
            LabelTotal.Text = ViewStateListDetail.Sum(item => item.SubtotalHargaBeli).ToFormatHarga();
        }

        ViewState["ViewStateListDetail"] = ViewStateListDetail;
    }
Beispiel #15
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                TBPOProduksiProduk poProduksiProduk = db.TBPOProduksiProduks.FirstOrDefault(item => item.IDPOProduksiProduk == Request.QueryString["id"]);

                TextBoxIDProyeksi.Text         = poProduksiProduk.IDProyeksi != null ? poProduksiProduk.IDProyeksi : "-Tidak Ada Proyeksi-";
                TextBoxIDPOProduksiProduk.Text = poProduksiProduk.IDPOProduksiProduk;
                TextBoxStatusHPP.Text          = Pengaturan.StatusJenisHPP(poProduksiProduk.EnumJenisHPP.Value);
                TextBoxPegawaiPIC.Text         = poProduksiProduk.TBPengguna1.NamaLengkap;
                TextBoxPembuat.Text            = poProduksiProduk.TBPengguna.NamaLengkap + " / " + poProduksiProduk.Tanggal.ToFormatTanggal();
                TextBoxTanggalJatuhTempo.Text  = poProduksiProduk.TanggalJatuhTempo.ToFormatTanggal();
                TextBoxTanggalPengiriman.Text  = poProduksiProduk.TanggalPengiriman.ToFormatTanggal();

                TextBoxVendor.Text   = poProduksiProduk.TBVendor.Nama;
                TextBoxEmail.Text    = poProduksiProduk.TBVendor.Email;
                TextBoxAlamat.Text   = poProduksiProduk.TBVendor.Alamat;
                TextBoxTelepon1.Text = poProduksiProduk.TBVendor.Telepon1;
                TextBoxTelepon2.Text = poProduksiProduk.TBVendor.Telepon2;

                RepeaterDetail.DataSource = poProduksiProduk.TBPOProduksiProdukDetails.ToArray();
                RepeaterDetail.DataBind();
                LabelTotalJumlah.Text   = poProduksiProduk.TotalJumlah.ToFormatHargaBulat();
                LabelTotalSubtotal.Text = poProduksiProduk.SubtotalTotalHargaVendor.ToFormatHarga();
                LabelTotalSisa.Text     = poProduksiProduk.TBPOProduksiProdukDetails.Sum(data => data.Sisa).ToFormatHargaBulat();

                TextBoxKeterangan.Text    = poProduksiProduk.Keterangan;
                TextBoxBiayaLainLain.Text = poProduksiProduk.BiayaLainLain.ToFormatHarga();
                TextBoxPotonganPO.Text    = poProduksiProduk.PotonganPOProduksiProduk.ToFormatHarga();
                LabelTax.Text             = "Tax (" + (poProduksiProduk.PersentaseTax * 100).ToFormatHarga() + "%)";
                TextBoxTax.Text           = poProduksiProduk.Tax.ToFormatHarga();
                TextBoxGrandtotal.Text    = poProduksiProduk.Grandtotal.ToFormatHarga();

                TextBoxPembayar.Text  = poProduksiProduk.IDPenggunaDP != null ? poProduksiProduk.TBPengguna2.NamaLengkap : string.Empty;
                TextBoxTanggalDP.Text = poProduksiProduk.TanggalDownPayment != null?poProduksiProduk.TanggalDownPayment.ToFormatTanggal() : string.Empty;

                TextBoxJenisPembayaran.Text = poProduksiProduk.IDJenisPembayaran != null ? poProduksiProduk.TBJenisPembayaran.Nama : string.Empty;
                TextBoxDownPayment.Text     = poProduksiProduk.DownPayment != null?poProduksiProduk.DownPayment.ToFormatHarga() : string.Empty;
            }
        }
    }
Beispiel #16
0
    private void LoadData()
    {
        List <POProduksiDetail_Model> ViewStateListDetail = (List <POProduksiDetail_Model>)ViewState["ViewStateListDetail"];

        RepeaterDetail.DataSource = ViewStateListDetail;
        RepeaterDetail.DataBind();

        if (ViewStateListDetail.Count == 0)
        {
            LabelTotalJumlah.Text   = "0";
            LabelTotalSubtotal.Text = "0";
        }
        else
        {
            LabelTotalJumlah.Text   = ViewStateListDetail.Sum(item => item.Jumlah).ToFormatHargaBulat();
            LabelTotalSubtotal.Text = ViewStateListDetail.Sum(item => item.SubtotalHarga).ToFormatHarga();
        }

        ViewState["ViewStateListDetail"] = ViewStateListDetail;

        HitungGrandTotal();
    }
Beispiel #17
0
    protected void DropDownListIDPOProduksi_SelectedIndexChanged(object sender, EventArgs e)
    {
        using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
        {
            if (DropDownListIDPOProduksi.SelectedValue != "0")
            {
                PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"];

                TBPOProduksiBahanBaku poProduksiBahanBaku = db.TBPOProduksiBahanBakus.FirstOrDefault(item => item.IDPOProduksiBahanBaku == DropDownListIDPOProduksi.SelectedValue);
                TextBoxIDProyeksi.Text        = poProduksiBahanBaku.IDProyeksi != null ? poProduksiBahanBaku.IDProyeksi : "-Tidak Ada Proyeksi-";
                TextBoxTanggalJatuhTempo.Text = poProduksiBahanBaku.TanggalJatuhTempo.ToFormatTanggal();
                TextBoxTanggalPengiriman.Text = poProduksiBahanBaku.TanggalPengiriman.ToFormatTanggal();

                var SisaDataDetailPOProduk = poProduksiBahanBaku.TBPOProduksiBahanBakuDetails.AsEnumerable()
                                             .Where(item => item.Sisa > 0)
                                             .Select(item => new
                {
                    item.IDBahanBaku,
                    BahanBaku = item.TBBahanBaku.Nama,
                    Satuan    = item.TBSatuan.Nama,
                    Sisa      = item.Sisa.ToFormatHarga()
                });

                if (SisaDataDetailPOProduk.Count() == 0)
                {
                    ButtonTerima.Visible = false;
                }

                RepeaterDetail.DataSource = SisaDataDetailPOProduk;
                RepeaterDetail.DataBind();
            }
            else
            {
                RepeaterDetail.DataSource = null;
                RepeaterDetail.DataBind();
            }
        }
    }
Beispiel #18
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"];
                TBStore       store    = db.TBStores.FirstOrDefault();
                LabelNamaStore.Text = store.Nama;


                TBPOProduksiBahanBakuRetur dataRetur = db.TBPOProduksiBahanBakuReturs.FirstOrDefault(item => item.IDPOProduksiBahanBakuRetur == Request.QueryString["id"]);

                var detailRetur = dataRetur.TBPOProduksiBahanBakuReturDetails.Select(item => new
                {
                    item.TBStokBahanBaku.TBBahanBaku.Nama,
                    item.HargaRetur,
                    item.Jumlah,
                    item.Subtotal,
                    Satuan = item.TBStokBahanBaku.TBBahanBaku.TBSatuan1.Nama
                });

                RepeaterDetail.DataSource = detailRetur;
                RepeaterDetail.DataBind();

                LabelIDReturBahanBaku.Text = dataRetur.IDPOProduksiBahanBakuRetur;
                LabelPengguna.Text         = dataRetur.TBPengguna.NamaLengkap;
                LabelIDPenerimaanPOProduksiBahanBaku.Text = dataRetur.IDPenerimaanPOProduksiBahanBaku == null ? "-" : dataRetur.IDPenerimaanPOProduksiBahanBaku;
                LabelSupplier.Text      = dataRetur.TBSupplier.Nama;
                LabelTanggalRetur.Text  = dataRetur.TanggalRetur.ToFormatTanggalJam();
                LabelIDPenagihan.Text   = dataRetur.IDPOProduksiBahanBakuPenagihan == null ? "-" : dataRetur.IDPOProduksiBahanBakuPenagihan;
                LabelTotalSubtotal.Text = dataRetur.Grandtotal.Value.ToFormatHarga();
                LabelStatusRetur.Text   = Pengaturan.StatusPOProduksi(dataRetur.EnumStatusRetur.Value);
                LabelKeterangan.Text    = dataRetur.Keterangan;
            }
        }
    }
Beispiel #19
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                TBPOProduksiBahanBakuRetur POProduksiBahanBakuRetur = db.TBPOProduksiBahanBakuReturs.FirstOrDefault(item => item.IDPOProduksiBahanBakuRetur == Request.QueryString["id"]);

                TextBoxIDPOProduksiBahanBakuRetur.Text      = POProduksiBahanBakuRetur.IDPOProduksiBahanBakuRetur;
                TextBoxIDPenerimaanPOProduksiBahanBaku.Text = POProduksiBahanBakuRetur.IDPenerimaanPOProduksiBahanBaku != null ? POProduksiBahanBakuRetur.IDPenerimaanPOProduksiBahanBaku : string.Empty;
                TextBoxPegawai.Text = POProduksiBahanBakuRetur.TBPengguna.NamaLengkap;
                TextBoxTanggal.Text = POProduksiBahanBakuRetur.TanggalRetur.ToFormatTanggal();
                TextBoxIDPOProduksiBahanBakuPenagihan.Text = POProduksiBahanBakuRetur.IDPOProduksiBahanBakuPenagihan != null ? POProduksiBahanBakuRetur.IDPOProduksiBahanBakuPenagihan : string.Empty;
                TextBoxStatus.Text = Pengaturan.StatusPOProduksi(POProduksiBahanBakuRetur.EnumStatusRetur.Value);;

                TextBoxSupplier.Text = POProduksiBahanBakuRetur.TBSupplier.Nama;
                TextBoxEmail.Text    = POProduksiBahanBakuRetur.TBSupplier.Email;
                TextBoxAlamat.Text   = POProduksiBahanBakuRetur.TBSupplier.Alamat;
                TextBoxTelepon1.Text = POProduksiBahanBakuRetur.TBSupplier.Telepon1;
                TextBoxTelepon2.Text = POProduksiBahanBakuRetur.TBSupplier.Telepon2;

                RepeaterDetail.DataSource = POProduksiBahanBakuRetur.TBPOProduksiBahanBakuReturDetails.Select(item => new
                {
                    item.TBStokBahanBaku.TBBahanBaku.Nama,
                    item.HargaRetur,
                    item.Jumlah,
                    item.Subtotal,
                    Satuan = item.TBSatuan.Nama
                });;
                RepeaterDetail.DataBind();
                LabelTotalSubtotal.Text = POProduksiBahanBakuRetur.Grandtotal.Value.ToFormatHarga();

                TextBoxKeterangan.Text = string.Empty;
            }
        }
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"];

                TBStore store = db.TBStores.FirstOrDefault();

                LabelNamaStore.Text   = store.Nama;
                LabelAlamatStore.Text = store.Alamat;

                TBPOProduksiProduk poProduksiProduk = db.TBPOProduksiProduks.FirstOrDefault(item => item.IDPOProduksiProduk == Request.QueryString["id"]);

                LabelJudul.Text = "(PRODUCT)";

                LabelNamaVendor.Text   = poProduksiProduk.IDVendor != null ? poProduksiProduk.TBVendor.Nama : string.Empty;
                LabelAlamatVendor.Text = poProduksiProduk.IDVendor != null ? poProduksiProduk.TBVendor.Alamat : string.Empty;

                LabelIDProyeksi.Text = poProduksiProduk.IDProyeksi;
                LabelIDProduksi.Text = poProduksiProduk.IDPOProduksiProduk;

                RepeaterDetail.DataSource = poProduksiProduk.TBPOProduksiProdukDetails.Select(item => new
                {
                    item.TBKombinasiProduk.KodeKombinasiProduk,
                    Produk        = item.TBKombinasiProduk.TBProduk.Nama,
                    AtributProduk = item.TBKombinasiProduk.TBAtributProduk.Nama,
                    Kategori      = StokProduk_Class.GabungkanSemuaKategoriProduk(db, null, item.TBKombinasiProduk),
                    item.Jumlah,
                    item.Sisa
                }).ToArray();
                RepeaterDetail.DataBind();
            }
        }
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"];

                TBStore store = db.TBStores.FirstOrDefault();

                LabelNamaStore.Text   = store.Nama;
                LabelAlamatStore.Text = store.Alamat;

                TBPOProduksiBahanBaku poProduksiBahanBaku = db.TBPOProduksiBahanBakus.FirstOrDefault(item => item.IDPOProduksiBahanBaku == Request.QueryString["id"]);

                LabelJudul.Text = "(RAW MATERIAL)";

                LabelNamaSupplier.Text   = poProduksiBahanBaku.IDSupplier != null ? poProduksiBahanBaku.TBSupplier.Nama : string.Empty;
                LabelAlamatSupplier.Text = poProduksiBahanBaku.IDSupplier != null ? poProduksiBahanBaku.TBSupplier.Alamat : string.Empty;

                LabelIDProyeksi.Text = poProduksiBahanBaku.IDProyeksi;
                LabelIDProduksi.Text = poProduksiBahanBaku.IDPOProduksiBahanBaku;

                RepeaterDetail.DataSource = poProduksiBahanBaku.TBPOProduksiBahanBakuDetails.Select(item => new
                {
                    item.TBBahanBaku.KodeBahanBaku,
                    BahanBaku = item.TBBahanBaku.Nama,
                    Satuan    = item.TBSatuan.Nama,
                    Kategori  = StokBahanBaku_Class.GabungkanSemuaKategoriBahanBaku(db, null, item.TBBahanBaku),
                    item.Jumlah,
                    item.Sisa
                }).ToArray();
                RepeaterDetail.DataBind();
            }
        }
    }
Beispiel #22
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"];

                TBStore store = db.TBStores.FirstOrDefault();

                LabelNamaStore.Text   = store.Nama;
                LabelAlamatStore.Text = store.Alamat;

                TBPOProduksiProdukPenagihan poProduksiProdukPenagihan = db.TBPOProduksiProdukPenagihans.FirstOrDefault(item => item.IDPOProduksiProdukPenagihan == Request.QueryString["id"]);

                LabelIDPOProduksiProdukPenagihan.Text = poProduksiProdukPenagihan.IDPOProduksiProdukPenagihan;

                LabelNamaVendor.Text   = poProduksiProdukPenagihan.TBVendor.Nama;
                LabelAlamatVendor.Text = poProduksiProdukPenagihan.TBVendor.Alamat;

                LabelPegawai.Text = poProduksiProdukPenagihan.TBPengguna.NamaLengkap;
                LabelStatus.Text  = poProduksiProdukPenagihan.StatusPembayaran == false ? "Tagihan" : "Lunas";

                LabelKeterangan.Text = poProduksiProdukPenagihan.Keterangan;

                RepeaterDetail.DataSource = poProduksiProdukPenagihan.TBPenerimaanPOProduksiProduks.Select(item => new
                {
                    item.IDPenerimaanPOProduksiProduk,
                    item.TanggalTerima,
                    item.Grandtotal
                });
                RepeaterDetail.DataBind();
                LabelTotalPenerimaan.Text = poProduksiProdukPenagihan.TotalPenerimaan.ToFormatHarga();

                RepeaterRetur.DataSource = poProduksiProdukPenagihan.TBPOProduksiProdukReturs.Select(item => new
                {
                    item.IDPOProduksiProdukRetur,
                    item.TanggalRetur,
                    item.Grandtotal
                });
                RepeaterRetur.DataBind();
                LabelTotalRetur.Text = poProduksiProdukPenagihan.TotalRetur.ToFormatHarga();

                RepeaterDownPayment.DataSource     =
                    RepeaterDownPayment.DataSource = poProduksiProdukPenagihan.TBPenerimaanPOProduksiProduks.Select(item => item.TBPOProduksiProduk).Distinct().Where(item => item.IDPOProduksiProdukPenagihan == poProduksiProdukPenagihan.IDPOProduksiProdukPenagihan).Select(item => new
                {
                    item.IDPOProduksiProduk,
                    item.TanggalDownPayment,
                    item.DownPayment
                });
                RepeaterDownPayment.DataBind();
                LabelTotalDownPayment.Text = poProduksiProdukPenagihan.TotalDownPayment.ToFormatHarga();

                RepeaterPembayaran.DataSource = poProduksiProdukPenagihan.TBPOProduksiProdukPenagihanDetails.Select(item => new
                {
                    Pegawai = item.TBPengguna.NamaLengkap,
                    item.Tanggal,
                    JenisPembayaran = item.TBJenisPembayaran.Nama,
                    item.Bayar
                });
                RepeaterPembayaran.DataBind();
                LabelTotalBayar.Text = poProduksiProdukPenagihan.TotalBayar.ToFormatHarga();
            }
        }
    }
Beispiel #23
0
    private void LoadData()
    {
        List <POProduksiDetail_Model> ViewStateListDetail = (List <POProduksiDetail_Model>)ViewState["ViewStateListDetail"];

        RepeaterDetail.DataSource = ViewStateListDetail;
        RepeaterDetail.DataBind();

        if (ViewStateListDetail.Count == 0)
        {
            LabelTotalJumlah.Text   = "0";
            LabelTotalSubtotal.Text = "0";
        }
        else
        {
            LabelTotalJumlah.Text   = ViewStateListDetail.Sum(item => item.Jumlah).ToFormatHarga();
            LabelTotalSubtotal.Text = ViewStateListDetail.Sum(item => item.SubtotalHPP).ToFormatHarga();
        }

        ViewState["ViewStateListDetail"] = ViewStateListDetail;

        List <POProduksiKomposisi_Model> ViewStateListKomposisi = (List <POProduksiKomposisi_Model>)ViewState["ViewStateListKomposisi"];

        RepeaterKomposisi.DataSource = ViewStateListKomposisi
                                       .GroupBy(item => new
        {
            item.BahanBaku,
            item.Satuan
        })
                                       .Select(item => new
        {
            item.Key.BahanBaku,
            item.Key.Satuan,
            JumlahKebutuhan   = item.Sum(x => x.JumlahKebutuhan),
            SubtotalKebutuhan = item.Sum(x => x.SubtotalKebutuhan)
        })
                                       .OrderBy(item => item.BahanBaku);
        RepeaterKomposisi.DataBind();

        if (ViewStateListKomposisi.Count == 0)
        {
            LabelTotalSubtotalKomposisi.Text = string.Empty;
        }
        else
        {
            LabelTotalSubtotalKomposisi.Text = ViewStateListKomposisi.Sum(item => item.SubtotalKebutuhan).ToFormatHarga();
        }
        ViewState["ViewStateListKomposisi"] = ViewStateListKomposisi;

        List <POProduksiBiayaTambahan_Model> ViewStateListBiayaTambahan = (List <POProduksiBiayaTambahan_Model>)ViewState["ViewStateListBiayaTambahan"];

        RepeaterBiayaTambahan.DataSource = ViewStateListBiayaTambahan
                                           .GroupBy(item => new
        {
            item.Nama
        })
                                           .Select(item => new
        {
            item.Key.Nama,
            Biaya = item.Sum(x => x.SubtotalBiaya)
        })
                                           .OrderBy(item => item.Nama);
        RepeaterBiayaTambahan.DataBind();

        if (ViewStateListBiayaTambahan.Count == 0)
        {
            LabelTotalSubtotalBiayaTambahan.Text = string.Empty;
        }
        else
        {
            LabelTotalSubtotalBiayaTambahan.Text = ViewStateListBiayaTambahan.Sum(item => item.SubtotalBiaya).ToFormatHarga();
        }
        ViewState["ViewStateListBiayaTambahan"] = ViewStateListBiayaTambahan;
    }
Beispiel #24
0
    public void QueryData(int IDpelanggan, int searchBY, int tahun)
    {
        #region Pengaturan Label Tahun
        LabelTahunIni1.Text  = tahun.ToString();
        LabelTahunIni2.Text  = tahun.ToString();
        LabelTahunLalu1.Text = (tahun - 1).ToString();
        LabelTahunLalu2.Text = (tahun - 1).ToString();
        #endregion

        Literal LiteralChart = (Literal)this.Page.Master.FindControl("LiteralChart");
        LiteralChart.Text = string.Empty;

        using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
        {
            TBTransaksiDetail[] DetailTransaksiDB;
            var KombinasiProdukDB = db.TBKombinasiProduks.ToArray();

            #region Query perilaku belanja pelanggan [average budget, average quantity, most buy category]

            #region Master Query
            //AMBIL DATA MASTER DARI DB
            if (IDpelanggan != 0)
            {
                DetailTransaksiDB = db.TBTransaksiDetails.Where(item => item.TBTransaksi.IDPelanggan == IDpelanggan &&
                                                                item.TBTransaksi.IDStatusTransaksi == (int)EnumStatusTransaksi.Complete &&
                                                                (item.TBTransaksi.TanggalTransaksi.Value.Year == tahun || item.TBTransaksi.TanggalTransaksi.Value.Year == tahun - 1)).ToArray();
            }
            else
            {
                DetailTransaksiDB = db.TBTransaksiDetails.Where(item => item.TBTransaksi.IDStatusTransaksi == (int)EnumStatusTransaksi.Complete &&
                                                                (item.TBTransaksi.TanggalTransaksi.Value.Year == tahun || item.TBTransaksi.TanggalTransaksi.Value.Year == tahun - 1)).ToArray();
            }

            if (DetailTransaksiDB.Count() != 0)
            {
                //TAHUN INI
                var _dataDetailTransaksiTahunIni = DetailTransaksiDB
                                                   .Where(item => item.TBTransaksi.TanggalTransaksi.Value.Year == tahun)
                                                   .GroupBy(item => item.TBTransaksi.TanggalTransaksi.Value.Month)
                                                   .Select(item => new
                {
                    Key               = item.Key,
                    GrandTotal        = item.Sum(item2 => item2.Subtotal) == 0 ? 0 : item.Sum(item2 => item2.Subtotal),
                    TotalQty          = item.Sum(item2 => item2.Quantity) == 0 ? 0 : item.Sum(item2 => item2.Quantity),
                    AverageGrandTotal = item.Average(item2 => item2.TBTransaksi.GrandTotal),
                    AverageQty        = item.Average(item2 => item2.TBTransaksi.JumlahProduk)
                }).ToArray();

                var _dataDetailTransaksiTahunIniNoFilter = DetailTransaksiDB
                                                           .Where(item => item.TBTransaksi.TanggalTransaksi.Value.Year == tahun)
                                                           .GroupBy(item => item.TBTransaksi.TanggalTransaksi.Value.Month)
                                                           .Select(item => new
                {
                    Key               = item.Key,
                    GrandTotal        = item.Sum(item2 => item2.Subtotal) == 0 ? 0 : item.Sum(item2 => item2.Subtotal),
                    TotalQty          = item.Sum(item2 => item2.Quantity) == 0 ? 0 : item.Sum(item2 => item2.Quantity),
                    AverageGrandTotal = item.Average(item2 => item2.TBTransaksi.GrandTotal),
                    AverageQty        = item.Average(item2 => item2.TBTransaksi.JumlahProduk)
                }).ToArray();
                //TAHUN LALU
                var _dataDetailTransaksiTahunLalu = DetailTransaksiDB
                                                    .Where(item => item.TBTransaksi.TanggalTransaksi.Value.Year == tahun - 1)
                                                    .GroupBy(item => item.TBTransaksi.TanggalTransaksi.Value.Month)
                                                    .Select(item => new
                {
                    Key               = item.Key,
                    GrandTotal        = item.Sum(item2 => item2.Subtotal) == 0 ? 0 : item.Sum(item2 => item2.Subtotal),
                    TotalQty          = item.Sum(item2 => item2.Quantity) == 0 ? 0 : item.Sum(item2 => item2.Quantity),
                    AverageGrandTotal = item.Average(item2 => item2.TBTransaksi.GrandTotal),
                    AverageQty        = item.Average(item2 => item2.TBTransaksi.JumlahProduk)
                }).ToArray();

                var _dataDetailTransaksiTahunLaluNoFilter = DetailTransaksiDB
                                                            .Where(item => item.TBTransaksi.TanggalTransaksi.Value.Year == tahun - 1)
                                                            .GroupBy(item => item.TBTransaksi.TanggalTransaksi.Value.Month)
                                                            .Select(item => new
                {
                    Key               = item.Key,
                    GrandTotal        = item.Sum(item2 => item2.Subtotal) == 0 ? 0 : item.Sum(item2 => item2.Subtotal),
                    TotalQty          = item.Sum(item2 => item2.Quantity) == 0 ? 0 : item.Sum(item2 => item2.Quantity),
                    AverageGrandTotal = item.Average(item2 => item2.TBTransaksi.GrandTotal),
                    AverageQty        = item.Average(item2 => item2.TBTransaksi.JumlahProduk)
                }).ToArray();
                #endregion

                var averageBudget   = DetailTransaksiDB.Average(item => item.TBTransaksi.GrandTotal);
                var averageQty      = DetailTransaksiDB.Average(item => item.TBTransaksi.JumlahProduk);
                var mostBuyCategory = DetailTransaksiDB.GroupBy(item => item.TBKombinasiProduk.TBProduk.TBRelasiProdukKategoriProduks.Count == 0 ? "" : item.TBKombinasiProduk.TBProduk.TBRelasiProdukKategoriProduks.Count == 1 ? item.TBKombinasiProduk.TBProduk.TBRelasiProdukKategoriProduks.FirstOrDefault().TBKategoriProduk.Nama : item.TBKombinasiProduk.TBProduk.TBRelasiProdukKategoriProduks.Skip(1).FirstOrDefault().TBKategoriProduk.Nama)
                                      .Select(item => new
                {
                    Key            = item.Key,
                    Quantity       = item.Sum(item2 => item2.Quantity),
                    TotalPenjualan = item.Sum(item2 => item2.Subtotal)
                }).OrderByDescending(item => item.TotalPenjualan).FirstOrDefault().Key;
                #endregion

                #region Query rekomendasi [ algo people also buy, top product , dead stock ]
                List <string> ListSuggestProduk = new List <string>();

                var rekomendasiByCategory = db.TBKategoriProduks
                                            .Where(item => item.TBRekomendasiKategoriProduks.Count > 0 && item.TBRekomendasiKategoriProduks1.Count > 0)
                                            .Select(item => new
                {
                    Nama        = item.Nama,
                    Jumlah      = (item.TBRekomendasiKategoriProduks.Count > 0 ? item.TBRekomendasiKategoriProduks.Sum(item2 => item2.Jumlah) : 0) + (item.TBRekomendasiKategoriProduks1.Count > 0 ? item.TBRekomendasiKategoriProduks1.Sum(item2 => item2.Jumlah) : 0),
                    Nilai       = (item.TBRekomendasiKategoriProduks.Count > 0 ? item.TBRekomendasiKategoriProduks.Sum(item2 => item2.Nilai) : 0) + (item.TBRekomendasiKategoriProduks1.Count > 0 ? item.TBRekomendasiKategoriProduks1.Sum(item2 => item2.Nilai) : 0),
                    Rekomendasi = GabungRekomendasi(item.TBRekomendasiKategoriProduks.ToList(), item.TBRekomendasiKategoriProduks1.ToList())
                })
                                            .OrderByDescending(item => item.Jumlah)
                                            .FirstOrDefault();

                var topProduk = db.TBTransaksiDetails.Where(item => item.HargaJual <= averageBudget
                                                            ).GroupBy(item => new
                {
                    Produk   = item.TBKombinasiProduk.TBProduk.Nama,
                    Kategori = item.TBKombinasiProduk.TBProduk.TBRelasiProdukKategoriProduks.FirstOrDefault().TBKategoriProduk != null ?
                               item.TBKombinasiProduk.TBProduk.TBRelasiProdukKategoriProduks.FirstOrDefault().TBKategoriProduk.Nama : string.Empty,
                    HargaJual = item.TBKombinasiProduk.TBStokProduks.FirstOrDefault().HargaJual
                })
                                .Select(item => new
                {
                    Key            = item.Key,
                    Quantity       = item.Sum(item2 => item2.Quantity),
                    TotalDiscount  = item.Sum(item2 => item2.Discount * item2.Quantity),
                    TotalPenjualan = item.Sum(item2 => item2.Subtotal)
                }).OrderByDescending(item => item.TotalPenjualan).Take(20).ToArray();

                var DeadStockProduct = KombinasiProdukDB.Where(item => item.TBStokProduks.FirstOrDefault().HargaJual <= averageBudget)
                                       .OrderBy(item => item.TanggalDaftar).Take(20).ToArray();

                //var suggest1_TopProduk_FilteredByPeopleAlsoBuy = topProduk.Where(item => item.Key.HargaJual <= averageBudget &&
                //                                                 item.Key.Kategori == rekomendasiByCategory.Nama).Take(2);

                for (int i = 0; i < topProduk.Count(); i++)
                {
                    if (ListSuggestProduk.Count != 0)
                    {
                        if (ListSuggestProduk[i].ToString() != topProduk[i].Key.Produk)
                        {
                            ListSuggestProduk.Add(topProduk[i].Key.Produk);
                        }

                        if (ListSuggestProduk[i].ToString() != DeadStockProduct[i].Nama)
                        {
                            ListSuggestProduk.Add(DeadStockProduct[i].Nama);
                        }
                    }
                    else
                    {
                        ListSuggestProduk.Add(topProduk[i].Key.Produk);
                        ListSuggestProduk.Add(DeadStockProduct[i].Nama);
                    }
                }

                RepeaterSuggestProduct.DataSource = ListSuggestProduk.Select(item => new
                {
                    Nama = item.ToString()
                }).Take(10).ToArray();
                RepeaterSuggestProduct.DataBind();

                //var suggest1_TopProduk_FilteredByPeopleAlsoBuy = topProduk.Where(item => item.Key.HargaJual <= averageBudget).Take(2);

                //var suggest2_TopProduk = topProduk.Where(item => item.Key.HargaJual <= averageBudget).Take(2);

                //var suggest3_deadStock = KombinasiProdukDB.Where(item => item.TBProduk.TBRelasiProdukKategoriProduks.Count == 1 ?
                //    item.TBProduk.TBRelasiProdukKategoriProduks.FirstOrDefault().TBKategoriProduk.Nama == rekomendasiByCategory.Nama && item.TBStokProduks.FirstOrDefault().HargaJual <= averageBudget :
                //    item.TBProduk.TBRelasiProdukKategoriProduks.Skip(1).FirstOrDefault().TBKategoriProduk.Nama == rekomendasiByCategory.Nama && item.TBStokProduks.FirstOrDefault().HargaJual <= averageBudget)
                //    .OrderBy(item => item.TanggalDaftar).Take(2);

                var suggest3_deadStock = KombinasiProdukDB.Where(item => item.TBProduk.TBRelasiProdukKategoriProduks.Count == 1 ?
                                                                 item.TBStokProduks.FirstOrDefault().HargaJual <= averageBudget :
                                                                 item.TBStokProduks.FirstOrDefault().HargaJual <= averageBudget)
                                         .OrderBy(item => item.TanggalDaftar).Take(2);

                #endregion

                #region Line Chart - Customer Analysis Monthly (tahun ini dan tahun lalu)
                LiteralChart.Text += "<script> $(function () { var dataChart = [";

                //If searched by Penjualan
                if (searchBY == 1)
                {
                    for (int i = 1; i <= 12; i++)
                    {
                        var _transaksiTahunIni  = _dataDetailTransaksiTahunIniNoFilter.FirstOrDefault(item => item.Key == i);
                        var _transaksiTahunLalu = _dataDetailTransaksiTahunLaluNoFilter.FirstOrDefault(item => item.Key == i);

                        decimal averagePenjualanTahunIni = 0, averagePenjualanTahunLalu = 0;

                        if (_transaksiTahunIni != null)
                        {
                            averagePenjualanTahunIni = (decimal)_transaksiTahunIni.AverageGrandTotal;
                        }

                        if (_transaksiTahunLalu != null)
                        {
                            averagePenjualanTahunLalu = (decimal)_transaksiTahunLalu.AverageGrandTotal;
                        }

                        LiteralChart.Text += "{ 'y': '" + new DateTime(DropDownListTahun.SelectedValue.ToInt(), i, 1).ToString("MMM") + "', '" + (tahun - 1) + "': " + Math.Ceiling(averagePenjualanTahunLalu) + ", '" + tahun + "': " + Math.Ceiling(averagePenjualanTahunIni) + " }, ";
                    }
                }
                else //searched by Qty
                {
                    for (int i = 1; i <= 12; i++)
                    {
                        var _transaksiTahunIni  = _dataDetailTransaksiTahunIniNoFilter.FirstOrDefault(item => item.Key == i);
                        var _transaksiTahunLalu = _dataDetailTransaksiTahunLaluNoFilter.FirstOrDefault(item => item.Key == i);

                        decimal averageQtyTahunIni = 0, averageQtyTahunLalu = 0;

                        if (_transaksiTahunIni != null)
                        {
                            averageQtyTahunIni = (decimal)_transaksiTahunIni.AverageQty;
                        }

                        if (_transaksiTahunLalu != null)
                        {
                            averageQtyTahunLalu = (decimal)_transaksiTahunLalu.AverageQty;
                        }

                        LiteralChart.Text += "{ 'y': '" + new DateTime(DropDownListTahun.SelectedValue.ToInt(), i, 1).ToString("MMM") + "', '" + (tahun - 1) + "': " + Math.Ceiling(averageQtyTahunLalu) + ", '" + tahun + "': " + Math.Ceiling(averageQtyTahunIni) + " }, ";
                    }
                }

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

                LiteralChart.Text += "ykeys: ['" + (DropDownListTahun.SelectedValue.ToInt() - 1) + "','" + DropDownListTahun.SelectedValue.ToInt() + "'],";
                LiteralChart.Text += "labels: ['" + (DropDownListTahun.SelectedValue.ToInt() - 1) + "','" + DropDownListTahun.SelectedValue.ToInt() + "'],";
                LiteralChart.Text += "lineColors:['#7FC4C1','#FF625D'],";
                LiteralChart.Text += " parseTime: false}); eval(dataChart); }); </script>";
                #endregion

                #region RepeaterDetail dari Trend Analysis Monthly
                PanelDetail.Visible = true;
                //Group by Month & Year, ini digunakan untuk tampilan repeater detail
                var _dataDetail2Tahun = DetailTransaksiDB
                                        .GroupBy(item => new
                {
                    item.TBTransaksi.TanggalTransaksi.Value.Month,
                    item.TBTransaksi.TanggalTransaksi.Value.Year
                })
                                        .Select(item => new
                {
                    Key                  = item.Key,
                    GrandTotal           = item.Sum(item2 => item2.Subtotal),
                    TotalTransaksi       = item.Count(),
                    TotalNominalDiscount = item.Sum(item2 => item2.Discount) == 0 ? 0 : item.Sum(item2 => item2.Discount * item2.Quantity),
                    AverageGrandTotal    = item.Average(item2 => item2.TBTransaksi.GrandTotal),
                    AverageQty           = item.Average(item2 => item2.TBTransaksi.JumlahProduk),
                }).ToArray();

                List <int> Bulan = new List <int>();
                for (int i = 1; i <= 12; i++)
                {
                    Bulan.Add(i);
                }

                if (searchBY == 1)
                {
                    PanelReportPenjualan.Visible = true;
                    PanelReportQty.Visible       = false;

                    var Data = Bulan.Select(item => new
                    {
                        Bulan = new DateTime(DropDownListTahun.SelectedValue.ToInt(), item, 1).ToString("MMMM"),
                        TotalTransaksiTahunLalu    = _dataDetail2Tahun.Where(item2 => item2.Key.Month == item && item2.Key.Year == tahun - 1).Count() == 0 ? 0 : _dataDetail2Tahun.Where(item2 => item2.Key.Month == item && item2.Key.Year == tahun - 1).Sum(item2 => item2.TotalTransaksi),
                        TotalTransaksiTahunIni     = _dataDetail2Tahun.Where(item2 => item2.Key.Month == item && item2.Key.Year == tahun).Count() == 0 ? 0 : _dataDetail2Tahun.Where(item2 => item2.Key.Month == item && item2.Key.Year == tahun).Sum(item2 => item2.TotalTransaksi),
                        averageGrandTotalTahunLalu = _dataDetail2Tahun.Where(item2 => item2.Key.Month == item && item2.Key.Year == tahun - 1).Count() == 0 ? 0 : Math.Ceiling((decimal)_dataDetail2Tahun.Where(item2 => item2.Key.Month == item && item2.Key.Year == tahun - 1).Sum(item2 => item2.AverageGrandTotal)),
                        averageGrandTotalTahunIni  = _dataDetail2Tahun.Where(item2 => item2.Key.Month == item && item2.Key.Year == tahun).Count() == 0 ? 0 : Math.Ceiling((decimal)_dataDetail2Tahun.Where(item2 => item2.Key.Month == item && item2.Key.Year == tahun).Sum(item2 => item2.AverageGrandTotal)),
                    }).ToArray();

                    RepeaterDetail.DataSource = Data;
                    RepeaterDetail.DataBind();

                    #region Labelling
                    LabelAverageSalesTahunIni.Text         = Math.Ceiling(Data.Average(item => item.averageGrandTotalTahunIni)).ToFormatHarga();
                    LabelAverageSalesTahunLalu.Text        = Math.Ceiling(Data.Average(item => item.averageGrandTotalTahunLalu)).ToFormatHarga();
                    LabelTotalAverageSales.Text            = Pertumbuhan(Math.Ceiling(Data.Average(item => item.averageGrandTotalTahunIni - item.averageGrandTotalTahunLalu)).ToDecimal());
                    LabelTotalGrowthSalesVolumePanel1.Text = Pertumbuhan(Math.Ceiling(Data.Average(item => item.TotalTransaksiTahunIni - item.TotalTransaksiTahunLalu)).ToDecimal());
                    LabelSalesVolumeTahunIniPanel1.Text    = Math.Ceiling(Data.Average(item => item.TotalTransaksiTahunIni)).ToFormatHargaBulat();
                    LabelSalesVolumeTahunLaluPanel1.Text   = Math.Ceiling(Data.Average(item => item.TotalTransaksiTahunLalu)).ToFormatHargaBulat();
                    #endregion
                }
                else
                {
                    PanelReportPenjualan.Visible = false;
                    PanelReportQty.Visible       = true;

                    var Data = Bulan.Select(item => new
                    {
                        Bulan = new DateTime(DropDownListTahun.SelectedValue.ToInt(), item, 1).ToString("MMMM"),
                        TotalTransaksiTahunLalu    = _dataDetail2Tahun.Where(item2 => item2.Key.Month == item && item2.Key.Year == tahun - 1).Count() == 0 ? 0 : _dataDetail2Tahun.Where(item2 => item2.Key.Month == item && item2.Key.Year == tahun - 1).Sum(item2 => item2.TotalTransaksi),
                        TotalTransaksiTahunIni     = _dataDetail2Tahun.Where(item2 => item2.Key.Month == item && item2.Key.Year == tahun).Count() == 0 ? 0 : _dataDetail2Tahun.Where(item2 => item2.Key.Month == item && item2.Key.Year == tahun).Sum(item2 => item2.TotalTransaksi),
                        averageGrandTotalTahunLalu = _dataDetail2Tahun.Where(item2 => item2.Key.Month == item && item2.Key.Year == tahun - 1).Count() == 0 ? 0 : Math.Ceiling(_dataDetail2Tahun.Where(item2 => item2.Key.Month == item && item2.Key.Year == tahun - 1).Sum(item2 => item2.AverageQty).ToDecimal()),
                        averageGrandTotalTahunIni  = _dataDetail2Tahun.Where(item2 => item2.Key.Month == item && item2.Key.Year == tahun).Count() == 0 ? 0 : Math.Ceiling(_dataDetail2Tahun.Where(item2 => item2.Key.Month == item && item2.Key.Year == tahun).Sum(item2 => item2.AverageQty).ToDecimal()),
                    }).ToArray();

                    RepeaterDetailQty.DataSource = Data;
                    RepeaterDetailQty.DataBind();

                    #region Labelling
                    LabelAverageQtyTahunIni.Text           = Math.Ceiling(Data.Average(item => item.averageGrandTotalTahunIni)).ToFormatHargaBulat();
                    LabelAverageQtyTahunLalu.Text          = Math.Ceiling(Data.Average(item => item.averageGrandTotalTahunLalu)).ToFormatHargaBulat();
                    LabelTotalAvgItems.Text                = Pertumbuhan(Math.Ceiling(Data.Average(item => item.averageGrandTotalTahunIni - item.averageGrandTotalTahunLalu)).ToDecimal());
                    LabelTotalGrowthSalesVolumePanel2.Text = Pertumbuhan(Math.Ceiling(Data.Average(item => item.TotalTransaksiTahunIni - item.TotalTransaksiTahunLalu)).ToDecimal());
                    LabelSalesVolumeTahunIniPanel2.Text    = Math.Ceiling(Data.Average(item => item.TotalTransaksiTahunIni)).ToFormatHargaBulat();
                    LabelSalesVolumeTahunLaluPanel2.Text   = Math.Ceiling(Data.Average(item => item.TotalTransaksiTahunLalu)).ToFormatHargaBulat();
                    #endregion
                }
                #endregion

                #region DONUT TOP PRODUCT
                var _dataDetailTransaksiTahunIniDatabase = DetailTransaksiDB
                                                           .Where(item => item.TBTransaksi.TanggalTransaksi.Value.Year == tahun && item.TBTransaksi.IDStatusTransaksi == (int)EnumStatusTransaksi.Complete);

                var TotalQty       = _dataDetailTransaksiTahunIniDatabase.Sum(item => item.Quantity);
                var TotalPenjualan = _dataDetailTransaksiTahunIniDatabase.Sum(item => item.Subtotal);

                var _data = _dataDetailTransaksiTahunIniDatabase.GroupBy(item => new
                {
                    Kode     = item.TBKombinasiProduk.KodeKombinasiProduk,
                    Produk   = item.TBKombinasiProduk.TBProduk.Nama,
                    Varian   = item.TBKombinasiProduk.TBAtributProduk.Nama ?? string.Empty,
                    Warna    = item.TBKombinasiProduk.TBProduk.TBWarna.Nama ?? string.Empty,
                    Kategori = item.TBKombinasiProduk.TBProduk.TBRelasiProdukKategoriProduks.FirstOrDefault().TBKategoriProduk.Nama ?? string.Empty,
                    Brand    = item.TBKombinasiProduk.TBProduk.TBPemilikProduk.Nama ?? string.Empty
                })
                            .Select(item => new
                {
                    Key                 = item.Key,
                    Quantity            = item.Sum(item2 => item2.Quantity),
                    TotalDiscount       = item.Sum(item2 => item2.Discount * item2.Quantity),
                    TotalPenjualan      = item.Sum(item2 => item2.Subtotal),
                    PersentaseQty       = ((item.Sum(item2 => item2.Quantity)) * 100) / TotalQty,
                    PersentasePenjualan = ((item.Sum(item2 => item2.Subtotal)) * 100) / TotalPenjualan
                });
                //Quantity
                var _sortedDataQty = _data.OrderByDescending(item => item.Quantity).Take(10).ToArray().ToArray();
                //Penjualan
                var _sortedDataPenjualan = _data.OrderByDescending(item => item.TotalPenjualan).Take(10).ToArray().ToArray();

                LiteralChart.Text += "<script> $(function () { var dataChart = [";
                foreach (var item in _sortedDataQty)
                {
                    LiteralChart.Text += "{ 'label': '" + item.Key.Produk + "', 'value': " + item.Quantity + "}, ";
                }
                LiteralChart.Text += "]; Morris.Donut({ element: 'graph7', behaveLikeLine: true, data: dataChart, xkey: 'y', ";


                LiteralChart.Text += "colors:['#A9ED9B','#7FC4C1','#C320C4','#6168FF','#EDE18E','#73C489','#74A5FF','#FFC7FE','#00FFF7','#FFCBA0'], ";
                LiteralChart.Text += "resize:true});}); </script>";

                LiteralChart.Text += "<script> $(function () { var dataChart = [";
                foreach (var item in _sortedDataPenjualan)
                {
                    LiteralChart.Text += "{ 'label': '" + item.Key.Produk + "', 'value': " + item.TotalPenjualan + "}, ";
                }
                LiteralChart.Text += "]; Morris.Donut({ element: 'graph8', behaveLikeLine: true, data: dataChart, xkey: 'y', ";


                LiteralChart.Text += "colors:['#A9ED9B','#7FC4C1','#C320C4','#6168FF','#EDE18E','#73C489','#74A5FF','#FFC7FE','#00FFF7','#FFCBA0'], ";
                LiteralChart.Text += "resize:true});}); </script>";
                #endregion

                //#region MARKET SHARE
                //List<string> ListKota = new List<string>();
                //var KotaDB = db.TBAlamats.Select(item => item.Kota).Distinct();

                //foreach (var item in KotaDB)
                //{
                //    ListKota.Add(item);
                //}

                //var DataSalesDB = db.TBTransaksis.Where(item => item.IDStatusTransaksi == (int)EnumStatusTransaksi.Complete).GroupBy(item => new
                //                              {
                //                                  item.TBPelanggan.TBAlamats.FirstOrDefault().Kota
                //                              })
                //                              .Select(item => new
                //                              {
                //                                  Key = item.Key,
                //                                  GrandTotal = item.Sum(item2 => item2.GrandTotal),
                //                                  TotalTransaksi = item.Where(item2 => item2.IDStatusTransaksi == (int)EnumStatusTransaksi.Complete).Count(),
                //                                  TotalNominalDiscount = item.Sum(item2 => item2.TotalPotonganHargaJualDetail),
                //                                  JumlahProduk = item.Sum(item2 => item2.JumlahProduk)
                //                              }).OrderByDescending(item=> item.GrandTotal).ToArray();

                //var DataSales = ListKota.Select(item => new
                //{
                //    Kota = item,
                //    JumlahTransaksi = DataSalesDB.Where(item2 => item2.Key.Kota == item).Count() == 0 ? 0 : DataSalesDB.Where(item2 => item2.Key.Kota == item).Sum(item2 => item2.TotalTransaksi),
                //    GrandTotal = DataSalesDB.Where(item2 => item2.Key.Kota == item).Count() == 0 ? 0 : DataSalesDB.Where(item2 => item2.Key.Kota == item).Sum(item2 => item2.GrandTotal),
                //    JumlahProduk = DataSalesDB.Where(item2 => item2.Key.Kota == item).Count() == 0 ? 0 : DataSalesDB.Where(item2 => item2.Key.Kota == item).Sum(item2 => item2.JumlahProduk),
                //    SumJumlahProduk = DataSalesDB.Sum(item2 => item2.JumlahProduk),
                //    SumJumlahTransaksi = DataSalesDB.Sum(item2 => item2.TotalTransaksi),
                //    SumGrandTotal = DataSalesDB.Sum(item2 => item2.GrandTotal)
                //}).ToArray();

                //RepeaterMarketShare.DataSource = DataSales.OrderByDescending(item2 => item2.GrandTotal).ToArray();
                //RepeaterMarketShare.DataBind();

                //var Data5Kota = DataSales.OrderByDescending(item2 => item2.GrandTotal).Take(5).ToArray();
                //List<string> Top5_Kota = new List<string>();

                //for (int i = 0; i < Data5Kota.Count(); i++)
                //{
                //    Top5_Kota.Add(Data5Kota[i].Kota);
                //}

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

                //for (int i = 0; i < Top5_Kota.Count(); i++)
                //{
                //    var _transaksiTahunIni = DataSalesDB.FirstOrDefault(item => item.Key.Kota == Top5_Kota[i].ToString());
                //    //var _transaksiTahunLalu = _dataDetailTransaksiTahunLaluGroupByIDTempat.FirstOrDefault(item => item.Key.IDTempat == tempatDatabase[i].IDTempat);

                //    decimal _grandTotal = 0, _grandTotalTahunLalu = 0;

                //    if (_transaksiTahunIni != null)
                //        _grandTotal = (decimal)_transaksiTahunIni.GrandTotal;

                //    //if (_transaksiTahunLalu != null)
                //    //    _grandTotalTahunLalu = (decimal)_transaksiTahunLalu.GrandTotal;

                //    LiteralChart.Text += "{ 'y': '" + Top5_Kota[i].ToString() + "', '" + (tahun - 1) + "': " + _grandTotalTahunLalu + ", '" + tahun + "': " + _grandTotal + " }, ";
                //}
                //LiteralChart.Text += "]; Morris.Bar({ element: 'graph13', behaveLikeLine: true, data: dataChart, xkey: 'y', ";

                //LiteralChart.Text += "ykeys: ['" + (DropDownListTahun.SelectedValue.ToInt() - 1) + "','" + DropDownListTahun.SelectedValue.ToInt() + "'],";
                //LiteralChart.Text += "labels: ['" + (DropDownListTahun.SelectedValue.ToInt() - 1) + "','" + DropDownListTahun.SelectedValue.ToInt() + "'],";
                //LiteralChart.Text += "barColors:['#7FC4C1','#FF625D'],";
                //LiteralChart.Text += " parseTime: false,resize:true}); eval(dataChart); }); </script>";

                //#region Labelling
                //LabelTotalJumlahTransaksiHeader.Text = DataSales.Sum(item => item.JumlahTransaksi).ToFormatHargaBulat();
                //LabelTotalGrandTotalHeader.Text = DataSales.Sum(item => item.GrandTotal).ToFormatHarga();
                //LabelJumlahProdukHeader.Text = DataSales.Sum(item => item.JumlahProduk).ToFormatHargaBulat();

                //LabelTotalJumlahTransaksiFooter.Text = DataSales.Sum(item => item.JumlahTransaksi).ToFormatHargaBulat();
                //LabelTotalGrandTotalFooter.Text = DataSales.Sum(item => item.GrandTotal).ToFormatHarga();
                //LabelJumlahProdukFooter.Text = DataSales.Sum(item => item.JumlahProduk).ToFormatHargaBulat();
                //#endregion

                //#endregion
            }
        }
    }
Beispiel #25
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"];

                TBStore store = db.TBStores.FirstOrDefault();

                LabelNamaStore.Text   = store.Nama;
                LabelAlamatStore.Text = store.Alamat;

                TBPOProduksiBahanBaku poProduksiBahanBaku = db.TBPOProduksiBahanBakus.FirstOrDefault(item => item.IDPOProduksiBahanBaku == Request.QueryString["id"]);

                LabelJudul.Text = Pengaturan.JenisPOProduksi(poProduksiBahanBaku.EnumJenisProduksi, "BahanBaku");
                LabelIDPOProduksiBahanBaku.Text = poProduksiBahanBaku.IDPOProduksiBahanBaku;

                LabelNamaSupplier.Text   = poProduksiBahanBaku.IDSupplier != null ? poProduksiBahanBaku.TBSupplier.Nama : string.Empty;
                LabelAlamatSupplier.Text = poProduksiBahanBaku.IDSupplier != null ? poProduksiBahanBaku.TBSupplier.Alamat : string.Empty;

                LabelIDProyeksi.Text        = poProduksiBahanBaku.IDProyeksi != null ? poProduksiBahanBaku.IDProyeksi : string.Empty;
                LabelIDProduksi.Text        = poProduksiBahanBaku.IDPOProduksiBahanBaku;
                LabelTanggalJatuhTempo.Text = poProduksiBahanBaku.TanggalJatuhTempo.ToFormatTanggal();
                LabelTanggalPengiriman.Text = poProduksiBahanBaku.TanggalPengiriman.ToFormatTanggal();

                LabelPembuat.Text = poProduksiBahanBaku.TBPengguna.NamaLengkap + " / " + poProduksiBahanBaku.Tanggal.ToFormatTanggal();

                RepeaterDetail.DataSource = poProduksiBahanBaku.TBPOProduksiBahanBakuDetails.Select(item => new
                {
                    item.TBBahanBaku.KodeBahanBaku,
                    BahanBaku = item.TBBahanBaku.Nama,
                    Satuan    = item.TBSatuan.Nama,
                    item.HargaPokokKomposisi,
                    item.BiayaTambahan,
                    item.HargaSupplier,
                    item.PotonganHargaSupplier,
                    item.Jumlah,
                    Subtotal = item.TBPOProduksiBahanBaku.EnumJenisProduksi == (int)PilihanEnumJenisProduksi.ProduksiSendiri ? item.SubtotalHPP : item.SubtotalHargaSupplier
                }).ToArray();
                RepeaterDetail.DataBind();
                LabelTotalSubtotal.Text = poProduksiBahanBaku.EnumJenisProduksi == (int)PilihanEnumJenisProduksi.ProduksiSendiri ? poProduksiBahanBaku.SubtotalTotalHPP.ToFormatHarga() : poProduksiBahanBaku.SubtotalTotalHargaSupplier.ToFormatHarga();

                if (poProduksiBahanBaku.EnumJenisProduksi == (int)PilihanEnumJenisProduksi.ProduksiSendiri)
                {
                    headerHarga.Visible    = false;
                    headerPotongan.Visible = false;
                }
                else
                {
                    headerKomposisi.Visible = false;
                    headerBiaya.Visible     = false;
                }
                RepeaterKomposisi.DataSource = poProduksiBahanBaku.TBPOProduksiBahanBakuKomposisis.OrderBy(item => item.TBBahanBaku.Nama).ToArray();
                RepeaterKomposisi.DataBind();
                LabelTotalSubtotalKomposisi.Text = poProduksiBahanBaku.TBPOProduksiBahanBakuKomposisis.Sum(item => item.Subtotal).ToFormatHarga();

                RepeaterBiayaTambahan.DataSource = poProduksiBahanBaku.TBPOProduksiBahanBakuBiayaTambahans.OrderBy(item => item.TBJenisBiayaProduksi.Nama).ToArray();
                RepeaterBiayaTambahan.DataBind();
                LabelTotalSubtotalBiayaTambahan.Text = poProduksiBahanBaku.TBPOProduksiBahanBakuBiayaTambahans.Sum(item => item.Nominal).ToFormatHarga();
                LabelBiayaLainLain.Text = poProduksiBahanBaku.BiayaLainLain.ToFormatHarga();
                LabelPotongan.Text      = poProduksiBahanBaku.PotonganPOProduksiBahanBaku.ToFormatHarga();
                LabelJudulTax.Text      = "Tax (" + (poProduksiBahanBaku.PersentaseTax * 100).ToFormatHarga() + "%)";
                LabelTax.Text           = poProduksiBahanBaku.Tax.ToFormatHarga();
                LabelGrandtotal.Text    = poProduksiBahanBaku.Grandtotal.ToFormatHarga();

                LiteralKeterangan.Text = "<b>Keterangan :</b><br/>" + poProduksiBahanBaku.Keterangan;

                if (poProduksiBahanBaku.EnumJenisProduksi == (int)PilihanEnumJenisProduksi.PurchaseOrder)
                {
                    komposisi.Visible = false;
                }
            }
        }
    }
    protected void LoadChartKategori(int tahun, int idkategori, int idtempat, int searchby)
    {
        using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
        {
            if (searchby == 1)
            {
                PanelReportPenjualan.Visible = true;
                PanelReportQty.Visible       = false;
                //PanelSalesPerChannelPenjualan.Visible = true;
                //PanelSalesPerChannelQty.Visible = false;
            }
            else
            {
                PanelReportPenjualan.Visible = false;
                PanelReportQty.Visible       = true;
                //PanelSalesPerChannelPenjualan.Visible = false;
                //PanelSalesPerChannelQty.Visible = true;
            }

            LabelHeader.Text = "SALES TREND ANALYSIS " + tahun.ToString().ToUpper();
            //Literal LiteralChart = (Literal)this.Page.Master.FindControl("LiteralChart");
            LiteralChart.Text = string.Empty;

            var _dataDetailTransaksi2TahunDataBase = (from itemDetailTransaksi in db.TBTransaksiDetails
                                                      join itemKombinasiProduk in db.TBKombinasiProduks on itemDetailTransaksi.IDKombinasiProduk equals itemKombinasiProduk.IDKombinasiProduk
                                                      join itemProduk in db.TBProduks on itemKombinasiProduk.IDProduk equals itemProduk.IDProduk
                                                      join itemRelasiKategori in db.TBRelasiProdukKategoriProduks on itemProduk.IDProduk equals itemRelasiKategori.IDProduk
                                                      where
                                                      itemDetailTransaksi.TBTransaksi.TanggalOperasional.Value.Year >= tahun - 1
                                                      select new
            {
                Kode = itemKombinasiProduk.KodeKombinasiProduk,
                IDPelanggan = itemDetailTransaksi.TBTransaksi.IDPelanggan,
                Produk = itemKombinasiProduk.Nama,
                Warna = itemProduk.TBWarna.Nama ?? string.Empty,
                IDKategori = itemRelasiKategori.IDKategoriProduk,
                Kategori = StokProduk_Class.GabungkanSemuaKategoriProduk(db, null, itemKombinasiProduk),
                Brand = itemProduk.TBPemilikProduk.Nama ?? string.Empty,
                JumlahProduk = itemDetailTransaksi.Quantity,
                HargaPokok = itemDetailTransaksi.HargaBeli,
                HargaJual = itemDetailTransaksi.HargaJual,
                PotonganHargaJual = itemDetailTransaksi.Discount,
                Subtotal = itemDetailTransaksi.Subtotal,
                TanggalOperasional = itemDetailTransaksi.TBTransaksi.TanggalOperasional,
                IDTempat = itemDetailTransaksi.TBTransaksi.IDTempat,
                Nama = itemDetailTransaksi.TBTransaksi.TBTempat.Nama,
                Kota = itemDetailTransaksi.TBTransaksi.TBPelanggan.TBAlamats.FirstOrDefault().TBWilayah.TBWilayah1.Nama,
                TBTransaksi = itemDetailTransaksi.TBTransaksi
            }).ToArray();

            var _dataDetailTransaksi2TahunDataBaseDefault = (from itemDetailTransaksi in db.TBTransaksiDetails
                                                             join itemKombinasiProduk in db.TBKombinasiProduks on itemDetailTransaksi.IDKombinasiProduk equals itemKombinasiProduk.IDKombinasiProduk
                                                             join itemProduk in db.TBProduks on itemKombinasiProduk.IDProduk equals itemProduk.IDProduk
                                                             join itemRelasiKategori in db.TBRelasiProdukKategoriProduks on itemProduk.IDProduk equals itemRelasiKategori.IDProduk
                                                             where
                                                             itemDetailTransaksi.TBTransaksi.TanggalOperasional.Value.Year >= tahun - 1
                                                             select new
            {
                Kode = itemKombinasiProduk.KodeKombinasiProduk,
                IDPelanggan = itemDetailTransaksi.TBTransaksi.IDPelanggan,
                Produk = itemKombinasiProduk.Nama,
                Warna = itemProduk.TBWarna.Nama ?? string.Empty,
                IDKategori = itemRelasiKategori.IDKategoriProduk,
                Kategori = StokProduk_Class.GabungkanSemuaKategoriProduk(db, null, itemKombinasiProduk),
                Brand = itemProduk.TBPemilikProduk.Nama ?? string.Empty,
                JumlahProduk = itemDetailTransaksi.Quantity,
                HargaPokok = itemDetailTransaksi.HargaBeli,
                HargaJual = itemDetailTransaksi.HargaJual,
                PotonganHargaJual = itemDetailTransaksi.Discount,
                Subtotal = itemDetailTransaksi.Subtotal,
                TanggalOperasional = itemDetailTransaksi.TBTransaksi.TanggalOperasional,
                IDTempat = itemDetailTransaksi.TBTransaksi.IDTempat,
                Nama = itemDetailTransaksi.TBTransaksi.TBTempat.Nama,
                Kota = itemDetailTransaksi.TBTransaksi.TBPelanggan.TBAlamats.FirstOrDefault().TBWilayah.TBWilayah1.Nama,
                TBTransaksi = itemDetailTransaksi.TBTransaksi
            }).ToArray();

            if (idkategori != 0)
            {
                //Detail transaksi tahun ini, dan setahun yg lalu.. di seluruh tempat
                _dataDetailTransaksi2TahunDataBase = _dataDetailTransaksi2TahunDataBase.Where(item => item.IDKategori == idkategori).ToArray();
            }
            else
            {
                //Detail transaksi tahun ini, dan setahun yg lalu.. di seluruh tempat
                _dataDetailTransaksi2TahunDataBase = _dataDetailTransaksi2TahunDataBase.ToArray();
            }

            //Group by Month
            var _dataDetailTransaksiTahunIni = _dataDetailTransaksi2TahunDataBase
                                               .Where(item => item.TanggalOperasional.Value.Year == tahun)
                                               .GroupBy(item => item.TanggalOperasional.Value.Month)
                                               .Select(item => new
            {
                Key        = item.Key,
                GrandTotal = item.Sum(item2 => item2.Subtotal) == 0 ? 0 : item.Sum(item2 => item2.Subtotal),
                TotalQty   = item.Sum(item2 => item2.JumlahProduk) == 0 ? 0 : item.Sum(item2 => item2.JumlahProduk)
            }).ToArray();

            var _dataDetailTransaksiTahunIniNoFilter = _dataDetailTransaksi2TahunDataBase
                                                       .Where(item => item.TanggalOperasional.Value.Year == tahun)
                                                       .GroupBy(item => item.TanggalOperasional.Value.Month)
                                                       .Select(item => new
            {
                Key        = item.Key,
                GrandTotal = item.Sum(item2 => item2.Subtotal) == 0 ? 0 : item.Sum(item2 => item2.Subtotal),
                TotalQty   = item.Sum(item2 => item2.JumlahProduk) == 0 ? 0 : item.Sum(item2 => item2.JumlahProduk)
            }).ToArray();

            //Group by Month
            var _dataDetailTransaksiTahunLalu = _dataDetailTransaksi2TahunDataBase
                                                .Where(item => item.TanggalOperasional.Value.Year == tahun - 1)
                                                .GroupBy(item => item.TanggalOperasional.Value.Month)
                                                .Select(item => new
            {
                Key        = item.Key,
                GrandTotal = item.Sum(item2 => item2.Subtotal) == 0 ? 0 : item.Sum(item2 => item2.Subtotal),
                TotalQty   = item.Sum(item2 => item2.JumlahProduk) == 0 ? 0 : item.Sum(item2 => item2.JumlahProduk)
            }).ToArray();

            var _dataDetailTransaksiTahunLaluNoFilter = _dataDetailTransaksi2TahunDataBase
                                                        .Where(item => item.TanggalOperasional.Value.Year == tahun - 1)
                                                        .GroupBy(item => item.TanggalOperasional.Value.Month)
                                                        .Select(item => new
            {
                Key        = item.Key,
                GrandTotal = item.Sum(item2 => item2.Subtotal) == 0 ? 0 : item.Sum(item2 => item2.Subtotal),
                TotalQty   = item.Sum(item2 => item2.JumlahProduk) == 0 ? 0 : item.Sum(item2 => item2.JumlahProduk)
            }).ToArray();

            #region Line Chart - Trend Analysis Monthly (tahun ini dan tahun lalu)
            LiteralChart.Text += "<script> $(function () { var dataChart = [";
            if (idtempat == 0)
            {
                //If searched by Penjualan
                if (searchby == 1)
                {
                    for (int i = 1; i <= 12; i++)
                    {
                        var _transaksiTahunIni  = _dataDetailTransaksiTahunIniNoFilter.FirstOrDefault(item => item.Key == i);
                        var _transaksiTahunLalu = _dataDetailTransaksiTahunLaluNoFilter.FirstOrDefault(item => item.Key == i);

                        decimal _grandTotal = 0, _grandTotalTahunLalu = 0;

                        if (_transaksiTahunIni != null)
                        {
                            _grandTotal = (decimal)_transaksiTahunIni.GrandTotal;
                        }

                        if (_transaksiTahunLalu != null)
                        {
                            _grandTotalTahunLalu = (decimal)_transaksiTahunLalu.GrandTotal;
                        }

                        LiteralChart.Text += "{ 'y': '" + new DateTime(DropDownListTahun.SelectedValue.ToInt(), i, 1).ToString("MMM") + "', '" + (tahun - 1) + "': " + _grandTotalTahunLalu + ", '" + tahun + "': " + _grandTotal + " }, ";
                    }
                }
                else //searched by Qty
                {
                    for (int i = 1; i <= 12; i++)
                    {
                        var _transaksiTahunIni  = _dataDetailTransaksiTahunIniNoFilter.FirstOrDefault(item => item.Key == i);
                        var _transaksiTahunLalu = _dataDetailTransaksiTahunLaluNoFilter.FirstOrDefault(item => item.Key == i);

                        decimal _totalQty = 0, _totalQtyTahunLalu = 0;

                        if (_transaksiTahunIni != null)
                        {
                            _totalQty = (decimal)_transaksiTahunIni.TotalQty;
                        }

                        if (_transaksiTahunLalu != null)
                        {
                            _totalQtyTahunLalu = (decimal)_transaksiTahunLalu.TotalQty;
                        }

                        LiteralChart.Text += "{ 'y': '" + new DateTime(DropDownListTahun.SelectedValue.ToInt(), i, 1).ToString("MMM") + "', '" + (tahun - 1) + "': " + _totalQtyTahunLalu + ", '" + tahun + "': " + _totalQty + " }, ";
                    }
                }

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

                LiteralChart.Text += "ykeys: ['" + (DropDownListTahun.SelectedValue.ToInt() - 1) + "','" + DropDownListTahun.SelectedValue.ToInt() + "'],";
                LiteralChart.Text += "labels: ['" + (DropDownListTahun.SelectedValue.ToInt() - 1) + "','" + DropDownListTahun.SelectedValue.ToInt() + "'],";
                LiteralChart.Text += "lineColors:['#7FC4C1','#FF625D'],";
                LiteralChart.Text += " parseTime: false}); eval(dataChart); }); </script>";
            }
            else
            {
                //If searched by Penjualan
                if (searchby == 1)
                {
                    for (int i = 1; i <= 12; i++)
                    {
                        var _transaksiTahunIni  = _dataDetailTransaksiTahunIni.FirstOrDefault(item => item.Key == i);
                        var _transaksiTahunLalu = _dataDetailTransaksiTahunLalu.FirstOrDefault(item => item.Key == i);

                        decimal _grandTotal = 0, _grandTotalTahunLalu = 0;

                        if (_transaksiTahunIni != null)
                        {
                            _grandTotal = (decimal)_transaksiTahunIni.GrandTotal;
                        }

                        if (_transaksiTahunLalu != null)
                        {
                            _grandTotalTahunLalu = (decimal)_transaksiTahunLalu.GrandTotal;
                        }

                        LiteralChart.Text += "{ 'y': '" + new DateTime(DropDownListTahun.SelectedValue.ToInt(), i, 1).ToString("MMM") + "', '" + (tahun - 1) + "': " + _grandTotalTahunLalu + ", '" + tahun + "': " + _grandTotal + " }, ";
                    }
                }
                else //searched by Qty
                {
                    for (int i = 1; i <= 12; i++)
                    {
                        var _transaksiTahunIni  = _dataDetailTransaksiTahunIni.FirstOrDefault(item => item.Key == i);
                        var _transaksiTahunLalu = _dataDetailTransaksiTahunLalu.FirstOrDefault(item => item.Key == i);

                        decimal _totalQty = 0, _totalQtyTahunLalu = 0;

                        if (_transaksiTahunIni != null)
                        {
                            _totalQty = (decimal)_transaksiTahunIni.TotalQty;
                        }

                        if (_transaksiTahunLalu != null)
                        {
                            _totalQtyTahunLalu = (decimal)_transaksiTahunLalu.TotalQty;
                        }

                        LiteralChart.Text += "{ 'y': '" + new DateTime(DropDownListTahun.SelectedValue.ToInt(), i, 1).ToString("MMM") + "', '" + (tahun - 1) + "': " + _totalQtyTahunLalu + ", '" + tahun + "': " + _totalQty + " }, ";
                    }
                }

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

                LiteralChart.Text += "ykeys: ['" + (DropDownListTahun.SelectedValue.ToInt() - 1) + "','" + DropDownListTahun.SelectedValue.ToInt() + "'],";
                LiteralChart.Text += "labels: ['" + (DropDownListTahun.SelectedValue.ToInt() - 1) + "','" + DropDownListTahun.SelectedValue.ToInt() + "'],";
                LiteralChart.Text += "lineColors:['#7FC4C1','#FF625D'],";
                LiteralChart.Text += " parseTime: false}); eval(dataChart); }); </script>";
            }
            #endregion

            #region RepeaterDetail dari Trend Analysis Monthly
            PanelDetail.Visible = true;
            //Group by Month & Year, ini digunakan untuk tampilan repeater detail
            var _dataDetail2Tahun = _dataDetailTransaksi2TahunDataBase
                                    .GroupBy(item => new
            {
                item.TanggalOperasional.Value.Month,
                item.TanggalOperasional.Value.Year
            })
                                    .Select(item => new
            {
                Key                  = item.Key,
                GrandTotal           = item.Sum(item2 => item2.Subtotal),
                TotalQty             = item.Sum(item2 => item2.JumlahProduk),
                TotalNominalDiscount = item.Sum(item2 => item2.PotonganHargaJual) == 0 ? 0 : item.Sum(item2 => item2.PotonganHargaJual * item2.JumlahProduk)
            }).ToArray();

            List <int> Bulan = new List <int>();
            for (int i = 1; i <= 12; i++)
            {
                Bulan.Add(i);
            }

            if (DropDownListFilter.SelectedValue.ToInt() == 1)
            {
                var Data = Bulan.Select(item => new
                {
                    Bulan = new DateTime(DropDownListTahun.SelectedValue.ToInt(), item, 1).ToString("MMMM"),
                    GrandTotalTahunLalu           = _dataDetail2Tahun.Where(item2 => item2.Key.Month == item && item2.Key.Year == tahun - 1).Count() == 0 ? 0 : _dataDetail2Tahun.Where(item2 => item2.Key.Month == item && item2.Key.Year == tahun - 1).Sum(item2 => item2.GrandTotal),
                    GrandTotalTahunIni            = _dataDetail2Tahun.Where(item2 => item2.Key.Month == item && item2.Key.Year == tahun).Count() == 0 ? 0 : _dataDetail2Tahun.Where(item2 => item2.Key.Month == item && item2.Key.Year == tahun).Sum(item2 => item2.GrandTotal),
                    TotalNominalDiscountTahunLalu = _dataDetail2Tahun.Where(item2 => item2.Key.Month == item && item2.Key.Year == tahun - 1).Count() == 0 ? 0 : _dataDetail2Tahun.Where(item2 => item2.Key.Month == item && item2.Key.Year == tahun - 1).Sum(item2 => item2.TotalNominalDiscount),
                    TotalNominalDiscountTahunIni  = _dataDetail2Tahun.Where(item2 => item2.Key.Month == item && item2.Key.Year == tahun).Count() == 0 ? 0 : _dataDetail2Tahun.Where(item2 => item2.Key.Month == item && item2.Key.Year == tahun).Sum(item2 => item2.TotalNominalDiscount)
                }).ToArray();

                RepeaterDetail.DataSource = Data;
                RepeaterDetail.DataBind();

                LabelTotalNormalSalesTahunIni.Text  = Data.Sum(item => item.GrandTotalTahunIni + item.TotalNominalDiscountTahunIni).ToFormatHarga();
                LabelTotalDiscountTahunIni.Text     = Data.Sum(item => item.TotalNominalDiscountTahunIni).ToFormatHarga();
                LabelGrandTotalTahunIni.Text        = Data.Sum(item => item.GrandTotalTahunIni).ToFormatHarga();
                LabelTotalNormalSalesTahunLalu.Text = Data.Sum(item => item.GrandTotalTahunLalu + item.TotalNominalDiscountTahunLalu).ToFormatHarga();
                LabelTotalDiscountTahunLalu.Text    = Data.Sum(item => item.TotalNominalDiscountTahunLalu).ToFormatHarga();
                LabelGrandTotalTahunLalu.Text       = Data.Sum(item => item.GrandTotalTahunLalu).ToFormatHarga();
                LabelTotalSelisih.Text = Pertumbuhan((decimal)Data.Sum(item => item.GrandTotalTahunIni - item.GrandTotalTahunLalu));
            }
            else
            {
                var Data = Bulan.Select(item => new
                {
                    Bulan = new DateTime(DropDownListTahun.SelectedValue.ToInt(), item, 1).ToString("MMMM"),
                    GrandTotalTahunLalu           = _dataDetail2Tahun.Where(item2 => item2.Key.Month == item && item2.Key.Year == tahun - 1).Count() == 0 ? 0 : _dataDetail2Tahun.Where(item2 => item2.Key.Month == item && item2.Key.Year == tahun - 1).Sum(item2 => item2.TotalQty),
                    GrandTotalTahunIni            = _dataDetail2Tahun.Where(item2 => item2.Key.Month == item && item2.Key.Year == tahun).Count() == 0 ? 0 : _dataDetail2Tahun.Where(item2 => item2.Key.Month == item && item2.Key.Year == tahun).Sum(item2 => item2.TotalQty),
                    TotalNominalDiscountTahunLalu = _dataDetail2Tahun.Where(item2 => item2.Key.Month == item && item2.Key.Year == tahun - 1).Count() == 0 ? 0 : _dataDetail2Tahun.Where(item2 => item2.Key.Month == item && item2.Key.Year == tahun - 1).Sum(item2 => item2.TotalNominalDiscount),
                    TotalNominalDiscountTahunIni  = _dataDetail2Tahun.Where(item2 => item2.Key.Month == item && item2.Key.Year == tahun).Count() == 0 ? 0 : _dataDetail2Tahun.Where(item2 => item2.Key.Month == item && item2.Key.Year == tahun).Sum(item2 => item2.TotalNominalDiscount)
                }).ToArray();

                RepeaterDetailQty.DataSource = Data;
                RepeaterDetailQty.DataBind();

                LabelTotalQtyTahunIni.Text  = Data.Sum(item => item.GrandTotalTahunIni).ToFormatHargaBulat();
                LabelTotalQtyTahunLalu.Text = Data.Sum(item => item.GrandTotalTahunLalu).ToFormatHargaBulat();
                LabelTotalGrowthQty.Text    = Pertumbuhan((decimal)Data.Sum(item => item.GrandTotalTahunIni - item.GrandTotalTahunLalu));;
            }
            #endregion

            //#region Bar Chart - Sales per channel
            //TBTempat[] tempatDatabase = Database.db.TBTempats.ToArray();
            //List<int> datatempat = new List<int>();
            //for (int i = 0; i < tempatDatabase.Count(); i++)
            //{
            //    datatempat.Add(tempatDatabase[i].IDTempat);
            //}
            ////Detail Transaksi tahun ini, Group by Tempat
            //var _dataDetailTransaksiTahunIniGroupByIDTempat = _dataDetailTransaksi2TahunDataBase
            //                        .Where(item => item.TanggalOperasional.Value.Year == tahun)
            //                       .GroupBy(item => new
            //                       {
            //                           item.IDTempat,
            //                           item.Nama
            //                       })
            //                       .Select(item => new
            //                       {
            //                           Key = item.Key,
            //                           GrandTotal = item.Sum(item2 => item2.Subtotal) == 0 ? 0 : item.Sum(item2 => item2.Subtotal),
            //                           TotalQty = item.Sum(item2 => item2.JumlahProduk) == 0 ? 0 : item.Sum(item2 => item2.JumlahProduk),
            //                           TotalNominalDiscount = item.Sum(item2 => item2.PotonganHargaJual) == 0 ? 0 : item.Sum(item2 => item2.PotonganHargaJual * item2.JumlahProduk)
            //                       }).ToArray();

            ////Detail Transaksi tahun lalu, Group by Tempat
            //var _dataDetailTransaksiTahunLaluGroupByIDTempat = _dataDetailTransaksi2TahunDataBase
            //                       .Where(item => item.TanggalOperasional.Value.Year == tahun - 1)
            //                       .GroupBy(item => new
            //                       {
            //                           item.IDTempat,
            //                           item.Nama
            //                       })
            //                       .Select(item => new
            //                       {
            //                           Key = item.Key,
            //                           NormalSales = item.Sum(item2 => item2.HargaJual) * item.Sum(item2 => item2.JumlahProduk),
            //                           GrandTotal = item.Sum(item2 => item2.Subtotal) == 0 ? 0 : item.Sum(item2 => item2.Subtotal),
            //                           TotalQty = item.Sum(item2 => item2.JumlahProduk) == 0 ? 0 : item.Sum(item2 => item2.JumlahProduk),
            //                           TotalNominalDiscount = item.Sum(item2 => item2.PotonganHargaJual) == 0 ? 0 : item.Sum(item2 => item2.PotonganHargaJual * item2.JumlahProduk)
            //                       }).ToArray();
            //LiteralChart.Text += "<script> $(function () { var dataChart = [";

            //for (int i = 0; i < datatempat.Count(); i++)
            //{
            //    var _transaksiTahunIni = _dataDetailTransaksiTahunIniGroupByIDTempat.FirstOrDefault(item => item.Key.IDTempat == tempatDatabase[i].IDTempat);
            //    var _transaksiTahunLalu = _dataDetailTransaksiTahunLaluGroupByIDTempat.FirstOrDefault(item => item.Key.IDTempat == tempatDatabase[i].IDTempat);

            //    decimal _grandTotal = 0, _grandTotalTahunLalu = 0;

            //    if (_transaksiTahunIni != null)
            //        _grandTotal = (decimal)_transaksiTahunIni.GrandTotal;

            //    if (_transaksiTahunLalu != null)
            //        _grandTotalTahunLalu = (decimal)_transaksiTahunLalu.GrandTotal;

            //    LiteralChart.Text += "{ 'y': '" + tempatDatabase[i].Nama + "', '" + (tahun - 1) + "': " + _grandTotalTahunLalu + ", '" + tahun + "': " + _grandTotal + " }, ";
            //}
            //LiteralChart.Text += "]; Morris.Bar({ element: 'graph13', behaveLikeLine: true, data: dataChart, xkey: 'y', ";

            //LiteralChart.Text += "ykeys: ['" + (DropDownListTahun.SelectedValue.ToInt() - 1) + "','" + DropDownListTahun.SelectedValue.ToInt() + "'],";
            //LiteralChart.Text += "labels: ['" + (DropDownListTahun.SelectedValue.ToInt() - 1) + "','" + DropDownListTahun.SelectedValue.ToInt() + "'],";
            //LiteralChart.Text += "barColors:['#7FC4C1','#FF625D'],";
            //LiteralChart.Text += " parseTime: false,resize:true}); eval(dataChart); }); </script>";

            //if (DropDownListFilter.SelectedValue) == 1)
            //{
            //    var DataSalesPerChannel = datatempat.Select(item => new
            //    {
            //        NamaTempat = tempatDatabase.FirstOrDefault(item2 => item2.IDTempat == item).Nama,
            //        GrandTotalTahunLalu = _dataDetailTransaksiTahunLaluGroupByIDTempat.Where(item2 => item2.Key.IDTempat == item).Count() == 0 ? 0 : _dataDetailTransaksiTahunLaluGroupByIDTempat.Where(item2 => item2.Key.IDTempat == item).Sum(item2 => item2.GrandTotal),
            //        GrandTotalTahunIni = _dataDetailTransaksiTahunIniGroupByIDTempat.Where(item2 => item2.Key.IDTempat == item).Count() == 0 ? 0 : _dataDetailTransaksiTahunIniGroupByIDTempat.Where(item2 => item2.Key.IDTempat == item).Sum(item2 => item2.GrandTotal),
            //        TotalNominalDiscountTahunLalu = _dataDetailTransaksiTahunLaluGroupByIDTempat.Where(item2 => item2.Key.IDTempat == item).Count() == 0 ? 0 : _dataDetailTransaksiTahunLaluGroupByIDTempat.Where(item2 => item2.Key.IDTempat == item).Sum(item2 => item2.TotalNominalDiscount),
            //        TotalNominalDiscountTahunIni = _dataDetailTransaksiTahunIniGroupByIDTempat.Where(item2 => item2.Key.IDTempat == item).Count() == 0 ? 0 : _dataDetailTransaksiTahunIniGroupByIDTempat.Where(item2 => item2.Key.IDTempat == item).Sum(item2 => item2.TotalNominalDiscount)
            //    }).ToArray();

            //    RepeaterSalesPerChannel.DataSource = DataSalesPerChannel;
            //    RepeaterSalesPerChannel.DataBind();

            //    LabelTotalNormalSalesTahunLaluPerChannel.Text = DataSalesPerChannel.Sum(item => item.GrandTotalTahunLalu + item.TotalNominalDiscountTahunLalu).ToFormatHarga();
            //    LabelTotalDiscountTahunLaluPerChannel.Text = DataSalesPerChannel.Sum(item => item.TotalNominalDiscountTahunLalu).ToFormatHarga();
            //    LabelGrandTotalTahunLaluPerChannel.Text = DataSalesPerChannel.Sum(item => item.GrandTotalTahunLalu).ToFormatHarga();
            //    LabelTotalNormalSalesTahunIniPerChannel.Text = DataSalesPerChannel.Sum(item => item.GrandTotalTahunIni + item.TotalNominalDiscountTahunIni).ToFormatHarga();
            //    LabelTotalDiscountTahunIniPerChannel.Text = DataSalesPerChannel.Sum(item => item.TotalNominalDiscountTahunIni).ToFormatHarga();
            //    LabelGrandTotalTahunIniPerChannel.Text = DataSalesPerChannel.Sum(item => item.GrandTotalTahunIni).ToFormatHarga();
            //    LabelTotalSelisihPerChannel.Text = Pertumbuhan((decimal)DataSalesPerChannel.Sum(item => item.GrandTotalTahunIni - item.GrandTotalTahunLalu));
            //}
            //else
            //{
            //    var DataSalesPerChannel = datatempat.Select(item => new
            //    {
            //        NamaTempat = tempatDatabase.FirstOrDefault(item2 => item2.IDTempat == item).Nama,
            //        GrandTotalTahunLalu = _dataDetailTransaksiTahunLaluGroupByIDTempat.Where(item2 => item2.Key.IDTempat == item).Count() == 0 ? 0 : _dataDetailTransaksiTahunLaluGroupByIDTempat.Where(item2 => item2.Key.IDTempat == item).Sum(item2 => item2.TotalQty),
            //        GrandTotalTahunIni = _dataDetailTransaksiTahunIniGroupByIDTempat.Where(item2 => item2.Key.IDTempat == item).Count() == 0 ? 0 : _dataDetailTransaksiTahunIniGroupByIDTempat.Where(item2 => item2.Key.IDTempat == item).Sum(item2 => item2.TotalQty),
            //        TotalNominalDiscountTahunLalu = _dataDetailTransaksiTahunLaluGroupByIDTempat.Where(item2 => item2.Key.IDTempat == item).Count() == 0 ? 0 : _dataDetailTransaksiTahunLaluGroupByIDTempat.Where(item2 => item2.Key.IDTempat == item).Sum(item2 => item2.TotalNominalDiscount),
            //        TotalNominalDiscountTahunIni = _dataDetailTransaksiTahunIniGroupByIDTempat.Where(item2 => item2.Key.IDTempat == item).Count() == 0 ? 0 : _dataDetailTransaksiTahunIniGroupByIDTempat.Where(item2 => item2.Key.IDTempat == item).Sum(item2 => item2.TotalNominalDiscount)
            //    }).ToArray();

            //    RepeaterSalesPerChannelQty.DataSource = DataSalesPerChannel;
            //    RepeaterSalesPerChannelQty.DataBind();

            //    LabelTotalQtySalesPerChannelTahunLalu.Text = DataSalesPerChannel.Sum(item => item.GrandTotalTahunLalu).ToFormatHargaBulat();
            //    LabelTotalQtySalesPerChannelTahunIni.Text = DataSalesPerChannel.Sum(item => item.GrandTotalTahunIni).ToFormatHargaBulat();
            //    LabelTotalGrowthQtySalesPerChannel.Text = Pertumbuhan((decimal)DataSalesPerChannel.Sum(item => item.GrandTotalTahunIni - item.GrandTotalTahunLalu));
            //}

            //#endregion

            #region Sales per kota
            List <string> ListKota = new List <string>();
            var           KotaDB   = db.TBAlamats.Select(item => item.TBWilayah.TBWilayah1.Nama).Distinct();

            if (KotaDB != null)
            {
                foreach (var item in KotaDB)
                {
                    ListKota.Add(item);
                }

                var DataSalesPerKota = _dataDetailTransaksi2TahunDataBase
                                       .Where(item => item.TanggalOperasional.Value.Year == tahun &&
                                              item.IDPelanggan != 1 &&
                                              item.TBTransaksi.TBPelanggan.TBAlamats.FirstOrDefault().TBWilayah != null)
                                       .GroupBy(item => new
                {
                    Kota     = item.Kota,
                    Provinsi = item.TBTransaksi.TBPelanggan.TBAlamats.FirstOrDefault().TBWilayah.TBWilayah1.TBWilayah1.Nama,
                })
                                       .Select(item => new
                {
                    Key                  = item.Key,
                    GrandTotal           = item.Sum(item2 => item2.HargaJual * item2.JumlahProduk),
                    TotalTransaksi       = item.Where(item2 => item2.TBTransaksi.IDStatusTransaksi == 5).Count(),
                    TotalNominalDiscount = item.Sum(item2 => item2.PotonganHargaJual),
                    JumlahProduk         = item.Sum(item2 => item2.JumlahProduk)
                }).OrderByDescending(item => item.GrandTotal).ToArray();

                var DataSalesPerKotaSum = ListKota.Select(item => new
                {
                    Kota               = item,
                    Provinsi           = DataSalesPerKota.Where(item2 => item2.Key.Kota == item).Count() == 0 ? "" : DataSalesPerKota.FirstOrDefault(item2 => item2.Key.Kota == item).Key.Provinsi,
                    JumlahTransaksi    = DataSalesPerKota.Where(item2 => item2.Key.Kota == item).Count() == 0 ? 0 : DataSalesPerKota.FirstOrDefault(item2 => item2.Key.Kota == item).TotalTransaksi,
                    GrandTotal         = DataSalesPerKota.Where(item2 => item2.Key.Kota == item).Count() == 0 ? 0 : DataSalesPerKota.FirstOrDefault(item2 => item2.Key.Kota == item).GrandTotal,
                    JumlahProduk       = DataSalesPerKota.Where(item2 => item2.Key.Kota == item).Count() == 0 ? 0 : DataSalesPerKota.FirstOrDefault(item2 => item2.Key.Kota == item).JumlahProduk,
                    SumJumlahProduk    = DataSalesPerKota.Sum(item2 => item2.JumlahProduk),
                    SumJumlahTransaksi = DataSalesPerKota.Sum(item2 => item2.TotalTransaksi),
                    SumGrandTotal      = DataSalesPerKota.Sum(item2 => item2.GrandTotal)
                }).ToArray();

                RepeaterMarketShare.DataSource = DataSalesPerKotaSum.Where(item2 => item2.GrandTotal != 0)
                                                 .OrderByDescending(item2 => item2.GrandTotal).ToArray();
                RepeaterMarketShare.DataBind();

                #region Labelling
                LabelTotalJumlahTransaksiHeader.Text = DataSalesPerKotaSum.Sum(item => item.JumlahTransaksi).ToFormatHargaBulat();
                LabelTotalGrandTotalHeader.Text      = DataSalesPerKotaSum.Sum(item => item.GrandTotal).ToFormatHarga();
                LabelJumlahProdukHeader.Text         = DataSalesPerKotaSum.Sum(item => item.JumlahProduk).ToFormatHarga();

                LabelTotalJumlahTransaksiFooter.Text = DataSalesPerKotaSum.Sum(item => item.JumlahTransaksi).ToFormatHargaBulat();
                LabelTotalGrandTotalFooter.Text      = DataSalesPerKotaSum.Sum(item => item.GrandTotal).ToFormatHarga();
                LabelJumlahProdukFooter.Text         = DataSalesPerKotaSum.Sum(item => item.JumlahProduk).ToFormatHarga();
                #endregion

                var SettingGrafik = DataSalesPerKotaSum.Where(item2 => item2.GrandTotal != 0)
                                    .OrderByDescending(item2 => item2.GrandTotal)
                                    .Take(20);

                int Height = SettingGrafik.Count() * 25;

                container.Attributes.Add("style", "width: auto; height: " + (Height > 600 ? Height : 600) + "px; margin: 0 auto;");

                string Judul    = "";
                string SubJudul = "";
                string JudulX   = "Sales Per Kota";
                string DataX    = "";

                string JudulY = "Sales";

                string DataY   = "";
                string Tooltip = "";

                if (DropDownListFilter.SelectedItem.Value == "1")
                {
                    foreach (var item in SettingGrafik)
                    {
                        DataX += "'" + item.Kota + "',";
                        DataY += item.GrandTotal + ",";
                    }
                }
                else
                {
                    foreach (var item in SettingGrafik)
                    {
                        DataX += "'" + item.Kota + "',";
                        DataY += item.JumlahProduk + ",";
                    }
                }

                LiteralChart.Text += "<script type=\"text/javascript\">";
                LiteralChart.Text += "$(function () { $('#container').highcharts({";
                LiteralChart.Text += "        chart: { type: 'bar' },";
                LiteralChart.Text += "        title: { text: '" + Judul + "' },";
                LiteralChart.Text += "        subtitle: { text: '" + SubJudul + "' },";
                LiteralChart.Text += "        xAxis: { categories: [" + DataX + "] },";
                LiteralChart.Text += "        yAxis: { min: 0, title: { text: '" + JudulY + "' } },";
                LiteralChart.Text += "        tooltip: { valueSuffix: '" + Tooltip + "' },";
                LiteralChart.Text += "        legend: { reversed: true },";
                LiteralChart.Text += "        plotOptions: { series: { stacking: 'normal' } },";
                LiteralChart.Text += "        credits: { enabled: false },";
                LiteralChart.Text += "        exporting: { enabled: false },";
                LiteralChart.Text += "        series: [";
                LiteralChart.Text += "		{";
                LiteralChart.Text += "            name: '" + JudulX + "',";
                LiteralChart.Text += "            data: [" + DataY + "]";
                LiteralChart.Text += "        },";
                LiteralChart.Text += "		]";
                LiteralChart.Text += "    }); });";
                LiteralChart.Text += "</script>";

                #endregion
            }
        }
    }
Beispiel #27
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                TBPOProduksiProdukPenagihan poProduksiProdukPenagihan = db.TBPOProduksiProdukPenagihans.FirstOrDefault(item => item.IDPOProduksiProdukPenagihan == Request.QueryString["id"]);

                TextBoxIDPOProduksiProdukPenagihan.Text = poProduksiProdukPenagihan.IDPOProduksiProdukPenagihan;
                TextBoxPegawai.Text    = poProduksiProdukPenagihan.TBPengguna.NamaLengkap;
                TextBoxTanggal.Text    = Pengaturan.FormatTanggalRingkas(poProduksiProdukPenagihan.Tanggal);
                TextBoxVendor.Text     = poProduksiProdukPenagihan.TBVendor.Nama;
                TextBoxKeterangan.Text = poProduksiProdukPenagihan.Keterangan;

                RepeaterDetail.DataSource = poProduksiProdukPenagihan.TBPenerimaanPOProduksiProduks.Select(item => new
                {
                    item.IDPenerimaanPOProduksiProduk,
                    item.TanggalTerima,
                    item.Grandtotal
                });
                RepeaterDetail.DataBind();
                LabelTotalPenerimaan.Text = poProduksiProdukPenagihan.TotalPenerimaan.ToFormatHarga();

                RepeaterRetur.DataSource = poProduksiProdukPenagihan.TBPOProduksiProdukReturs.Select(item => new
                {
                    item.IDPOProduksiProdukRetur,
                    item.TanggalRetur,
                    item.Grandtotal
                });
                RepeaterRetur.DataBind();
                LabelTotalRetur.Text = poProduksiProdukPenagihan.TotalRetur.ToFormatHarga();

                RepeaterDownPayment.DataSource = poProduksiProdukPenagihan.TBPenerimaanPOProduksiProduks.Select(item => item.TBPOProduksiProduk).Distinct().Where(item => item.IDPOProduksiProdukPenagihan == poProduksiProdukPenagihan.IDPOProduksiProdukPenagihan).Select(item => new
                {
                    item.IDPOProduksiProduk,
                    item.TanggalDownPayment,
                    item.DownPayment
                });
                RepeaterDownPayment.DataBind();
                LabelTotalDownPayment.Text = poProduksiProdukPenagihan.TotalDownPayment.ToFormatHarga();

                RepeaterPembayaran.DataSource = poProduksiProdukPenagihan.TBPOProduksiProdukPenagihanDetails.Select(item => new
                {
                    Pegawai = item.TBPengguna.NamaLengkap,
                    item.Tanggal,
                    JenisPembayaran = item.TBJenisPembayaran.Nama,
                    item.Bayar
                });
                RepeaterPembayaran.DataBind();
                LabelTotalBayar.Text = poProduksiProdukPenagihan.TotalBayar.ToFormatHarga();

                TextBoxTotalSisaTagihan.Text               = (poProduksiProdukPenagihan.TotalTagihan - poProduksiProdukPenagihan.TotalBayar).ToFormatHarga();
                TextBoxTanggalBayar.Text                   = DateTime.Now.ToString("d MMMM yyyy");
                DropDownListJenisPembayaran.DataSource     = db.TBJenisPembayarans.Where(item => item.IDJenisPembayaran != 2).Select(item => new { item.IDJenisPembayaran, item.Nama });
                DropDownListJenisPembayaran.DataTextField  = "Nama";
                DropDownListJenisPembayaran.DataValueField = "IDJenisPembayaran";
                DropDownListJenisPembayaran.DataBind();

                //ButtonSimpan.OnClientClick = "window.open('Cetak.aspx?id=" + Request.QueryString["id"] + "', 'Cetak');";
            }
        }
    }
Beispiel #28
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"];

                TBStore store = db.TBStores.FirstOrDefault();

                LabelNamaStore.Text   = store.Nama;
                LabelAlamatStore.Text = store.Alamat;

                TBProyeksi proyeksi = db.TBProyeksis.FirstOrDefault(item => item.IDProyeksi == Request.QueryString["id"]);

                LabelIDProyeksi.Text      = proyeksi.IDProyeksi;
                LabelPegawai.Text         = proyeksi.TBPengguna.NamaLengkap;
                LabelTempat.Text          = proyeksi.TBTempat.Nama;
                LabelTanggalProyeksi.Text = proyeksi.TanggalProyeksi.ToFormatTanggal();
                LabelTanggalTarget.Text   = proyeksi.TanggalTarget.ToFormatTanggal();
                LabelStatusProyeksi.Text  = Pengaturan.StatusProyeksi(proyeksi.EnumStatusProyeksi.Value);

                var varian = proyeksi.TBProyeksiDetails.Select(item => new { item.TBKombinasiProduk.IDAtributProduk, item.TBKombinasiProduk.TBAtributProduk.Nama }).OrderBy(item => item.Nama).Distinct();
                RepeaterVarian.DataSource = varian;
                RepeaterVarian.DataBind();

                KolomVarian.Attributes.Add("colspan", varian.Count().ToString());

                #region Produk
                RepeaterDetail.DataSource = proyeksi.TBProyeksiDetails.GroupBy(item => new
                {
                    item.TBKombinasiProduk.TBProduk
                }).Select(item => new
                {
                    PemilikProduk = item.Key.TBProduk.TBPemilikProduk.Nama,
                    Kategori      = StokProduk_Class.GabungkanSemuaKategoriProduk(null, null, item.FirstOrDefault().TBKombinasiProduk),
                    Produk        = item.Key.TBProduk.Nama,
                    Warna         = item.Key.TBProduk.TBWarna.Nama,
                    AtributProduk = varian.Select(data => new
                    {
                        Jumlah = item.FirstOrDefault(x => x.TBKombinasiProduk.IDAtributProduk == data.IDAtributProduk) != null ? item.FirstOrDefault(x => x.TBKombinasiProduk.IDAtributProduk == data.IDAtributProduk).Jumlah : 0
                    }),
                    Total = item.Sum(x => x.Jumlah)
                }).ToArray();
                RepeaterDetail.DataBind();
                #endregion

                if (proyeksi.TBProyeksiKomposisis.Count == 0)
                {
                    PanelKomposisi.Visible = false;

                    RepeaterKomposisi.DataSource = null;
                    RepeaterKomposisi.DataBind();

                    RepeaterBahanBakuDasar.DataSource = null;
                    RepeaterBahanBakuDasar.DataBind();
                }
                else
                {
                    PanelKomposisi.Visible = true;

                    #region Komposisi
                    RepeaterKomposisi.DataSource = proyeksi.TBProyeksiKomposisis.Where(item => item.LevelProduksi > 1).GroupBy(item => new
                    {
                        item.LevelProduksi
                    })
                                                   .Select(item => new
                    {
                        item.Key,
                        SubData = proyeksi.TBProyeksiKomposisis.Where(data => data.LevelProduksi == item.Key.LevelProduksi && data.BahanBakuDasar == false).Select(data => new
                        {
                            data.IDBahanBaku,
                            data.IDSatuan,
                            BahanBaku = data.TBBahanBaku.Nama,
                            Kategori  = StokBahanBaku_Class.GabungkanSemuaKategoriBahanBaku(null, null, data.TBBahanBaku),
                            Satuan    = data.TBSatuan.Nama,
                            data.Jumlah
                        }).OrderBy(data => data.BahanBaku)
                    }).OrderBy(item => item.Key.LevelProduksi);
                    RepeaterKomposisi.DataBind();
                    #endregion

                    #region Komposisi Dasar
                    RepeaterBahanBakuDasar.DataSource = proyeksi.TBProyeksiKomposisis.Where(data => data.BahanBakuDasar == true).Select(data => new
                    {
                        data.IDBahanBaku,
                        data.IDSatuan,
                        BahanBaku = data.TBBahanBaku.Nama,
                        Kategori  = StokBahanBaku_Class.GabungkanSemuaKategoriBahanBaku(null, null, data.TBBahanBaku),
                        Satuan    = data.TBSatuan.Nama,
                        data.Jumlah,
                        data.Stok,
                        data.Kurang
                    }).OrderBy(data => data.BahanBaku);
                    RepeaterBahanBakuDasar.DataBind();
                    #endregion
                }

                LabelKeterangan.Text = proyeksi.Keterangan != null ? proyeksi.Keterangan : string.Empty;
            }
        }
    }
    protected void LoadChartProduk(int tahun, int idbahanbaku, int idtempat)
    {
        using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
        {
            LabelHeader.Text = "RAW MATERIAL TREND ANALYSIS " + tahun.ToString().ToUpper();
            //Literal LiteralChart = (Literal)this.Page.Master.FindControl("LiteralChart");
            LiteralChart.Text = string.Empty;
            TBHargaSupplier[] _dataHargaSupplierDataBase;
            TBHargaSupplier[] _dataHargaSupplierDataBaseDefault;

            if (idbahanbaku != 0)
            {
                //Data Harga Bahan Baku 2 tahun, sesuai dropdown
                _dataHargaSupplierDataBase = db.TBHargaSuppliers
                                             .Where(item => item.Tanggal.Value.Year >= tahun - 1 &&
                                                    item.TBStokBahanBaku.TBBahanBaku.IDBahanBaku == idbahanbaku).AsEnumerable().ToArray();
            }
            else
            {
                //Data Harga Bahan Baku 2 tahun, sesuai dropdown
                _dataHargaSupplierDataBase = db.TBHargaSuppliers
                                             .Where(item => item.Tanggal.Value.Year >= tahun - 1).AsEnumerable().ToArray();
            }

            //Detail transaksi tahun ini & tahun - 1, FILTERING tempat
            if (idtempat != 0)
            {
                _dataHargaSupplierDataBaseDefault = _dataHargaSupplierDataBase; //Digunakan untuk sales per channel
                _dataHargaSupplierDataBase        = _dataHargaSupplierDataBase.Where(item => item.IDSupplier == idtempat).ToArray();
            }
            else
            {
                _dataHargaSupplierDataBaseDefault = _dataHargaSupplierDataBase; //Digunakan untuk sales per channel
            }
            //Group by Month
            var _dataHargaSupplierTahunIni = _dataHargaSupplierDataBase
                                             .Where(item => item.Tanggal.Value.Year == tahun)
                                             .GroupBy(item => item.Tanggal.Value.Month)
                                             .Select(item => new
            {
                Key        = item.Key,
                GrandTotal = item.Sum(item2 => item2.Harga) == 0 ? 0 : item.Sum(item2 => item2.Harga) / _dataHargaSupplierDataBase.Where(item2 => item2.Tanggal.Value.Month == item.Key).Count()
            }).ToArray();


            //Group by Month
            var _dataHargaSupplierTahunLalu = _dataHargaSupplierDataBase
                                              .Where(item => item.Tanggal.Value.Year == tahun - 1)
                                              .GroupBy(item => item.Tanggal.Value.Month)
                                              .Select(item => new
            {
                Key        = item.Key,
                GrandTotal = item.Sum(item2 => item2.Harga) == 0 ? 0 : item.Sum(item2 => item2.Harga) / _dataHargaSupplierDataBase.Where(item2 => item2.Tanggal.Value.Month == item.Key).Count()
            }).ToArray();


            #region Line Chart - Trend Analysis Monthly (tahun ini dan tahun lalu)
            LiteralChart.Text += "<script> $(function () { var dataChart = [";

            //If searched by Penjualan
            for (int i = 1; i <= 12; i++)
            {
                var _transaksiTahunIni  = _dataHargaSupplierTahunIni.FirstOrDefault(item => item.Key == i);
                var _transaksiTahunLalu = _dataHargaSupplierTahunLalu.FirstOrDefault(item => item.Key == i);

                decimal _grandTotal = 0, _grandTotalTahunLalu = 0;

                if (_transaksiTahunIni != null)
                {
                    _grandTotal = (decimal)_transaksiTahunIni.GrandTotal;
                }

                if (_transaksiTahunLalu != null)
                {
                    _grandTotalTahunLalu = (decimal)_transaksiTahunLalu.GrandTotal;
                }

                LiteralChart.Text += "{ 'y': '" + new DateTime(DropDownListTahun.SelectedValue.ToInt(), i, 1).ToString("MMM") + "', '" + (tahun - 1) + "': " + _grandTotalTahunLalu + ", '" + tahun + "': " + _grandTotal + " }, ";
            }


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

            LiteralChart.Text += "ykeys: ['" + (DropDownListTahun.SelectedValue.ToInt() - 1) + "','" + DropDownListTahun.SelectedValue.ToInt() + "'],";
            LiteralChart.Text += "labels: ['" + (DropDownListTahun.SelectedValue.ToInt() - 1) + "','" + DropDownListTahun.SelectedValue.ToInt() + "'],";
            LiteralChart.Text += "lineColors:['#7FC4C1','#FF625D'],";
            LiteralChart.Text += " parseTime: false}); eval(dataChart); }); </script>";
            #endregion

            #region RepeaterDetail dari Trend Analysis Monthly
            PanelDetail.Visible = true;
            //Group by Month & Year, ini digunakan untuk tampilan repeater detail
            var _dataDetail2Tahun = _dataHargaSupplierDataBase
                                    .GroupBy(item => new
            {
                item.Tanggal.Value.Month,
                item.Tanggal.Value.Year
            })
                                    .Select(item => new
            {
                Key        = item.Key,
                GrandTotal = item.Sum(item2 => item2.Harga) == 0 ? 0 : item.Sum(item2 => item2.Harga) / _dataHargaSupplierDataBase.Where(item2 => item2.Tanggal.Value.Month == item.Key.Month).Count()
            }).ToArray();

            List <int> Bulan = new List <int>();
            for (int i = 1; i <= 12; i++)
            {
                Bulan.Add(i);
            }

            var Data = Bulan.Select(item => new
            {
                Bulan = new DateTime(DropDownListTahun.SelectedValue.ToInt(), item, 1).ToString("MMMM"),
                GrandTotalTahunLalu = _dataDetail2Tahun.Where(item2 => item2.Key.Month == item && item2.Key.Year == tahun - 1).Count() == 0 ? 0 : _dataDetail2Tahun.Where(item2 => item2.Key.Month == item && item2.Key.Year == tahun - 1).Sum(item2 => item2.GrandTotal),
                GrandTotalTahunIni  = _dataDetail2Tahun.Where(item2 => item2.Key.Month == item && item2.Key.Year == tahun).Count() == 0 ? 0 : _dataDetail2Tahun.Where(item2 => item2.Key.Month == item && item2.Key.Year == tahun).Sum(item2 => item2.GrandTotal),
            }).ToArray();

            RepeaterDetail.DataSource = Data;
            RepeaterDetail.DataBind();

            LabelGrandTotalTahunIni.Text  = (Data.Sum(item => item.GrandTotalTahunIni) / 12).ToFormatHarga();
            LabelGrandTotalTahunLalu.Text = (Data.Sum(item => item.GrandTotalTahunLalu) / 12).ToFormatHarga();
            LabelTotalSelisih.Text        = Pertumbuhan((decimal)Data.Sum(item => item.GrandTotalTahunIni - item.GrandTotalTahunLalu));

            #endregion

            //#region Bar Chart - Sales per channel
            //TBTempat[] tempatDatabase = Database.db.TBTempats.ToArray();
            //List<int> datatempat = new List<int>();
            //for (int i = 1; i <= tempatDatabase.Count(); i++)
            //{
            //    datatempat.Add(i);
            //}
            ////Detail Transaksi tahun ini, Group by Tempat
            //var _dataDetailTransaksiTahunIniGroupByIDTempat = _dataHargaSupplierDataBaseDefault
            //                        .Where(item => item.Tanggal.Value.Year == tahun)
            //                       .GroupBy(item => new
            //                       {
            //                           item.TBTransaksi.TBTempat.IDTempat,
            //                           item.TBTransaksi.TBTempat.Nama
            //                       })
            //                       .Select(item => new
            //                       {
            //                           Key = item.Key,
            //                           GrandTotal = item.Sum(item2 => item2.Subtotal) == 0 ? 0 : item.Sum(item2 => item2.Subtotal),
            //                           TotalQty = item.Sum(item2 => item2.JumlahProduk) == 0 ? 0 : item.Sum(item2 => item2.JumlahProduk),
            //                           TotalNominalDiscount = item.Sum(item2 => item2.PotonganHargaJual) == 0 ? 0 : item.Sum(item2 => item2.PotonganHargaJual * item2.JumlahProduk)
            //                       }).ToArray();

            ////Detail Transaksi tahun lalu, Group by Tempat
            //var _dataDetailTransaksiTahunLaluGroupByIDTempat = _dataHargaSupplierDataBaseDefault
            //                       .Where(item => item.TBTransaksi.TanggalTransaksi.Value.Year == tahun - 1)
            //                       .GroupBy(item => new
            //                       {
            //                           item.TBTransaksi.TBTempat.IDTempat,
            //                           item.TBTransaksi.TBTempat.Nama
            //                       })
            //                       .Select(item => new
            //                       {
            //                           Key = item.Key,
            //                           NormalSales = item.Sum(item2 => item2.HargaJual) * item.Sum(item2 => item2.JumlahProduk),
            //                           GrandTotal = item.Sum(item2 => item2.Subtotal) == 0 ? 0 : item.Sum(item2 => item2.Subtotal),
            //                           TotalQty = item.Sum(item2 => item2.JumlahProduk) == 0 ? 0 : item.Sum(item2 => item2.JumlahProduk),
            //                           TotalNominalDiscount = item.Sum(item2 => item2.PotonganHargaJual) == 0 ? 0 : item.Sum(item2 => item2.PotonganHargaJual * item2.JumlahProduk)
            //                       }).ToArray();
            //LiteralChart.Text += "<script> $(function () { var dataChart = [";

            //for (int i = 0; i < datatempat.Count(); i++)
            //{
            //    var _transaksiTahunIni = _dataDetailTransaksiTahunIniGroupByIDTempat.FirstOrDefault(item => item.Key.IDTempat == tempatDatabase[i].IDTempat);
            //    var _transaksiTahunLalu = _dataDetailTransaksiTahunLaluGroupByIDTempat.FirstOrDefault(item => item.Key.IDTempat == tempatDatabase[i].IDTempat);

            //    decimal _grandTotal = 0, _grandTotalTahunLalu = 0;

            //    if (_transaksiTahunIni != null)
            //        _grandTotal = (decimal)_transaksiTahunIni.GrandTotal;

            //    if (_transaksiTahunLalu != null)
            //        _grandTotalTahunLalu = (decimal)_transaksiTahunLalu.GrandTotal;

            //    LiteralChart.Text += "{ 'y': '" + tempatDatabase[i].Nama + "', '" + (tahun - 1) + "': " + _grandTotalTahunLalu + ", '" + tahun + "': " + _grandTotal + " }, ";
            //}
            //LiteralChart.Text += "]; Morris.Bar({ element: 'graph13', behaveLikeLine: true, data: dataChart, xkey: 'y', ";

            //LiteralChart.Text += "ykeys: ['" + (DropDownListTahun.SelectedValue.ToInt() - 1) + "','" + DropDownListTahun.SelectedValue.ToInt() + "'],";
            //LiteralChart.Text += "labels: ['" + (DropDownListTahun.SelectedValue.ToInt() - 1) + "','" + DropDownListTahun.SelectedValue.ToInt() + "'],";
            //LiteralChart.Text += "barColors:['#7FC4C1','#FF625D'],";
            //LiteralChart.Text += " parseTime: false,resize:true}); eval(dataChart); }); </script>";

            //if (DropDownListFilter.SelectedValue) == 1)
            //{
            //    var DataSalesPerChannel = datatempat.Select(item => new
            //    {
            //        NamaTempat = tempatDatabase.FirstOrDefault(item2 => item2.IDTempat == item).Nama,
            //        GrandTotalTahunLalu = _dataDetailTransaksiTahunLaluGroupByIDTempat.Where(item2 => item2.Key.IDTempat == item).Count() == 0 ? 0 : _dataDetailTransaksiTahunLaluGroupByIDTempat.Where(item2 => item2.Key.IDTempat == item).Sum(item2 => item2.GrandTotal),
            //        GrandTotalTahunIni = _dataDetailTransaksiTahunIniGroupByIDTempat.Where(item2 => item2.Key.IDTempat == item).Count() == 0 ? 0 : _dataDetailTransaksiTahunIniGroupByIDTempat.Where(item2 => item2.Key.IDTempat == item).Sum(item2 => item2.GrandTotal),
            //        TotalNominalDiscountTahunLalu = _dataDetailTransaksiTahunLaluGroupByIDTempat.Where(item2 => item2.Key.IDTempat == item).Count() == 0 ? 0 : _dataDetailTransaksiTahunLaluGroupByIDTempat.Where(item2 => item2.Key.IDTempat == item).Sum(item2 => item2.TotalNominalDiscount),
            //        TotalNominalDiscountTahunIni = _dataDetailTransaksiTahunIniGroupByIDTempat.Where(item2 => item2.Key.IDTempat == item).Count() == 0 ? 0 : _dataDetailTransaksiTahunIniGroupByIDTempat.Where(item2 => item2.Key.IDTempat == item).Sum(item2 => item2.TotalNominalDiscount)
            //    }).ToArray();

            //    RepeaterSalesPerChannel.DataSource = DataSalesPerChannel;
            //    RepeaterSalesPerChannel.DataBind();

            //    LabelTotalNormalSalesTahunLaluPerChannel.Text = DataSalesPerChannel.Sum(item => item.GrandTotalTahunLalu + item.TotalNominalDiscountTahunLalu).ToFormatHarga();
            //    LabelTotalDiscountTahunLaluPerChannel.Text = DataSalesPerChannel.Sum(item => item.TotalNominalDiscountTahunLalu).ToFormatHarga();
            //    LabelGrandTotalTahunLaluPerChannel.Text = DataSalesPerChannel.Sum(item => item.GrandTotalTahunLalu).ToFormatHarga();
            //    LabelTotalNormalSalesTahunIniPerChannel.Text = DataSalesPerChannel.Sum(item => item.GrandTotalTahunIni + item.TotalNominalDiscountTahunIni).ToFormatHarga();
            //    LabelTotalDiscountTahunIniPerChannel.Text = DataSalesPerChannel.Sum(item => item.TotalNominalDiscountTahunIni).ToFormatHarga();
            //    LabelGrandTotalTahunIniPerChannel.Text = DataSalesPerChannel.Sum(item => item.GrandTotalTahunIni).ToFormatHarga();
            //    LabelTotalSelisihPerChannel.Text = Pertumbuhan((decimal)DataSalesPerChannel.Sum(item => item.GrandTotalTahunIni - item.GrandTotalTahunLalu));
            //}
            //else
            //{
            //    var DataSalesPerChannel = datatempat.Select(item => new
            //    {
            //        NamaTempat = tempatDatabase.FirstOrDefault(item2 => item2.IDTempat == item).Nama,
            //        GrandTotalTahunLalu = _dataDetailTransaksiTahunLaluGroupByIDTempat.Where(item2 => item2.Key.IDTempat == item).Count() == 0 ? 0 : _dataDetailTransaksiTahunLaluGroupByIDTempat.Where(item2 => item2.Key.IDTempat == item).Sum(item2 => item2.TotalQty),
            //        GrandTotalTahunIni = _dataDetailTransaksiTahunIniGroupByIDTempat.Where(item2 => item2.Key.IDTempat == item).Count() == 0 ? 0 : _dataDetailTransaksiTahunIniGroupByIDTempat.Where(item2 => item2.Key.IDTempat == item).Sum(item2 => item2.TotalQty),
            //        TotalNominalDiscountTahunLalu = _dataDetailTransaksiTahunLaluGroupByIDTempat.Where(item2 => item2.Key.IDTempat == item).Count() == 0 ? 0 : _dataDetailTransaksiTahunLaluGroupByIDTempat.Where(item2 => item2.Key.IDTempat == item).Sum(item2 => item2.TotalNominalDiscount),
            //        TotalNominalDiscountTahunIni = _dataDetailTransaksiTahunIniGroupByIDTempat.Where(item2 => item2.Key.IDTempat == item).Count() == 0 ? 0 : _dataDetailTransaksiTahunIniGroupByIDTempat.Where(item2 => item2.Key.IDTempat == item).Sum(item2 => item2.TotalNominalDiscount)
            //    }).ToArray();

            //    RepeaterSalesPerChannel.DataSource = DataSalesPerChannel;
            //    RepeaterSalesPerChannel.DataBind();

            //    LabelTotalNormalSalesTahunLaluPerChannel.Text = DataSalesPerChannel.Sum(item => item.GrandTotalTahunLalu + item.TotalNominalDiscountTahunLalu).ToFormatHarga();
            //    LabelTotalDiscountTahunLaluPerChannel.Text = DataSalesPerChannel.Sum(item => item.TotalNominalDiscountTahunLalu).ToFormatHarga();
            //    LabelGrandTotalTahunLaluPerChannel.Text = DataSalesPerChannel.Sum(item => item.GrandTotalTahunLalu).ToFormatHarga();
            //    LabelTotalNormalSalesTahunIniPerChannel.Text = DataSalesPerChannel.Sum(item => item.GrandTotalTahunIni + item.TotalNominalDiscountTahunIni).ToFormatHarga();
            //    LabelTotalDiscountTahunIniPerChannel.Text = DataSalesPerChannel.Sum(item => item.TotalNominalDiscountTahunIni).ToFormatHarga();
            //    LabelGrandTotalTahunIniPerChannel.Text = DataSalesPerChannel.Sum(item => item.GrandTotalTahunIni).ToFormatHarga();
            //    LabelTotalSelisihPerChannel.Text = Pertumbuhan((decimal)DataSalesPerChannel.Sum(item => item.GrandTotalTahunIni - item.GrandTotalTahunLalu));
            //}

            //#endregion

            //#region Donut Chart - Annual Sales
            //LiteralChart.Text += "<script> $(function () { var dataChart = [";

            //if (DropDownListFilter.SelectedValue.ToInt() == 1)
            //{
            //    for (int i = tahun - 1; i <= tahun; i++)
            //    {
            //        if (i == tahun - 1)
            //            LiteralChart.Text += "{ 'label': '" + 2014 + "', 'value': " + _dataDetailTransaksiTahunLaluNoFilter.Sum(item => item.GrandTotal) + "}, ";
            //        else
            //            LiteralChart.Text += "{ 'label': '" + 2015 + "', 'value': " + _dataDetailTransaksiTahunIniNoFilter.Sum(item => item.GrandTotal) + "}, ";
            //    }
            //}
            //else
            //{
            //    for (int i = tahun - 1; i <= tahun; i++)
            //    {
            //        if (i == tahun - 1)
            //            LiteralChart.Text += "{ 'label': '" + 2014 + "', 'value': " + _dataDetailTransaksiTahunLaluNoFilter.Sum(item => item.TotalQty) + "}, ";
            //        else
            //            LiteralChart.Text += "{ 'label': '" + 2015 + "', 'value': " + _dataDetailTransaksiTahunIniNoFilter.Sum(item => item.TotalQty) + "}, ";
            //    }
            //}

            //LiteralChart.Text += "]; Morris.Donut({ element: 'graph12', behaveLikeLine: true, data: dataChart, xkey: 'y', ";
            //LiteralChart.Text += "colors:['#7FC4C1','#FF625D'], ";
            //LiteralChart.Text += "resize:true});}); </script>";
            //#endregion
        }
    }