protected void DropDownListJatuhTempo_SelectedIndexChanged(object sender, EventArgs e) { using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { decimal batas = db.TBStoreKonfigurasis.FirstOrDefault(item => item.IDStoreKonfigurasi == (int)EnumStoreKonfigurasi.JumlahHariSebelumJatuhTempo).Pengaturan.ToDecimal(); TBPOProduksiProduk[] daftarPOProduksiProduk = db.TBPOProduksiProduks.Where(item => item.IDTempat == DropDownListTempat.SelectedValue.ToInt() && item.Tanggal.Date >= DateTime.Parse(TextBoxTanggalAwal.Text).Date&& item.Tanggal.Date <= DateTime.Parse(TextBoxTanggalAkhir.Text).Date).ToArray(); var daftarJatuhTempo = daftarPOProduksiProduk .Where(item => item.EnumJenisProduksi != (int)PilihanEnumJenisProduksi.ProduksiSendiri && ((int)((item.TanggalJatuhTempo.Value.Date - DateTime.Now.Date).TotalDays) < batas)) .Select(item => new { ClassWarna = Warna((int)((item.TanggalJatuhTempo.Value.Date - DateTime.Now.Date).TotalDays), batas), Pengguna = item.TBPengguna.NamaLengkap, item.IDPOProduksiProduk, item.TBVendor.Nama, item.EnumJenisProduksi, item.Tanggal, item.TanggalJatuhTempo, Jarak = (item.TanggalJatuhTempo.Value.Date - DateTime.Now.Date).TotalDays }) .OrderBy(item => item.Jarak) .ToArray(); if (DropDownListJatuhTempo.SelectedValue == "0") { RepeaterPOProdukJatuhTempoSatu.DataSource = daftarJatuhTempo.Where(item => item.ClassWarna == "danger"); RepeaterPOProdukJatuhTempoSatu.DataBind(); RepeaterPOProdukJatuhTempoDua.DataSource = daftarJatuhTempo.Where(item => item.ClassWarna == "warning"); RepeaterPOProdukJatuhTempoDua.DataBind(); RepeaterPOProdukJatuhTempoTiga.DataSource = daftarJatuhTempo.Where(item => item.ClassWarna == string.Empty); RepeaterPOProdukJatuhTempoTiga.DataBind(); } else { RepeaterPOProdukJatuhTempoSatu.DataSource = daftarJatuhTempo.Where(item => item.ClassWarna == "danger" && item.EnumJenisProduksi == DropDownListJatuhTempo.SelectedValue.ToInt()); RepeaterPOProdukJatuhTempoSatu.DataBind(); RepeaterPOProdukJatuhTempoDua.DataSource = daftarJatuhTempo.Where(item => item.ClassWarna == "warning" && item.EnumJenisProduksi == DropDownListJatuhTempo.SelectedValue.ToInt()); RepeaterPOProdukJatuhTempoDua.DataBind(); RepeaterPOProdukJatuhTempoTiga.DataSource = daftarJatuhTempo.Where(item => item.ClassWarna == string.Empty && item.EnumJenisProduksi == DropDownListJatuhTempo.SelectedValue.ToInt()); RepeaterPOProdukJatuhTempoTiga.DataBind(); } } }
private void LoadData(bool GenerateExcel) { //DEFAULT TextBoxTanggalAwal.Text = ((DateTime)ViewState["TanggalAwal"]).ToString("d MMMM yyyy"); TextBoxTanggalAkhir.Text = ((DateTime)ViewState["TanggalAkhir"]).ToString("d MMMM yyyy"); using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { if (TextBoxTanggalAwal.Text == TextBoxTanggalAkhir.Text) { LabelPeriode.Text = TextBoxTanggalAwal.Text; } else { LabelPeriode.Text = TextBoxTanggalAwal.Text + " - " + TextBoxTanggalAkhir.Text; } TBPOProduksiProduk[] daftarPOProduksiProduk = db.TBPOProduksiProduks.Where(item => item.IDTempat == DropDownListTempat.SelectedValue.ToInt() && item.Tanggal.Date >= DateTime.Parse(TextBoxTanggalAwal.Text).Date&& item.Tanggal.Date <= DateTime.Parse(TextBoxTanggalAkhir.Text).Date).ToArray(); TBPOProduksiProdukDetail[] daftarPOProduksiProdukDetail = db.TBPOProduksiProdukDetails.Where(item => item.TBPOProduksiProduk.IDTempat == DropDownListTempat.SelectedValue.ToInt() && item.TBPOProduksiProduk.Tanggal.Date >= DateTime.Parse(TextBoxTanggalAwal.Text).Date&& item.TBPOProduksiProduk.Tanggal.Date <= DateTime.Parse(TextBoxTanggalAkhir.Text).Date).ToArray(); TBPenerimaanPOProduksiProdukDetail[] daftarPenerimaanPOProduksiProdukDetail = db.TBPenerimaanPOProduksiProdukDetails.Where(item => item.TBPenerimaanPOProduksiProduk.TBPOProduksiProduk.IDTempat == DropDownListTempat.SelectedValue.ToInt() && item.TBPenerimaanPOProduksiProduk.TanggalTerima.Value.Date >= DateTime.Parse(TextBoxTanggalAwal.Text).Date&& item.TBPenerimaanPOProduksiProduk.TanggalTerima.Value.Date <= DateTime.Parse(TextBoxTanggalAkhir.Text).Date).ToArray(); #region Purchase Order var purchaseOrder = daftarPOProduksiProduk.GroupBy(item => new { item.EnumJenisProduksi }) .Select(item => new { item.Key.EnumJenisProduksi, JenisPO = Pengaturan.JenisPOProduksi(item.Key.EnumJenisProduksi, "Produk"), Baru = item.Count(), GrandtotalBaru = item.Sum(data => data.Grandtotal), Proses = item.Count(), GrandtotalProses = item.Sum(data => data.Grandtotal), Selesai = item.Count(), GrandtotalSelesai = item.Sum(data => data.Grandtotal), Total = item.Count(), GrandtotalTotal = item.Sum(data => data.Grandtotal), Progress = Persentase(item.Count() == 0 ? -1 : ((decimal)item.Count() / (decimal)item.Count()) * 100), }).OrderBy(item => item.EnumJenisProduksi).ToArray(); RepeaterPurchaseOrder.DataSource = purchaseOrder; RepeaterPurchaseOrder.DataBind(); LabelBaru.Text = purchaseOrder.Sum(item => item.Baru).ToFormatHargaBulat(); LabelGrandtotalBaru.Text = purchaseOrder.Sum(item => item.GrandtotalBaru).ToFormatHarga(); LabelProses.Text = purchaseOrder.Sum(item => item.Proses).ToFormatHargaBulat(); LabeGrandtotalProses.Text = purchaseOrder.Sum(item => item.GrandtotalProses).ToFormatHarga(); LabelSelesai.Text = purchaseOrder.Sum(item => item.Selesai).ToFormatHargaBulat(); LabelGrandtotalSelesai.Text = purchaseOrder.Sum(item => item.GrandtotalSelesai).ToFormatHarga(); LabelTotal.Text = purchaseOrder.Sum(item => item.Total).ToFormatHargaBulat(); LabelGrandtotalTotal.Text = purchaseOrder.Sum(item => item.GrandtotalTotal).ToFormatHarga(); #endregion #region Summary LabelPotongan.Text = daftarPOProduksiProduk.Sum(item => item.PotonganPOProduksiProduk).ToFormatHarga(); LabelBiayaLainLain.Text = daftarPOProduksiProduk.Sum(item => item.BiayaLainLain).ToFormatHarga(); LabelTax.Text = daftarPOProduksiProduk.Sum(item => item.Tax).ToFormatHarga(); LabelGrandtotal.Text = daftarPOProduksiProduk.Sum(item => item.Grandtotal).ToFormatHarga(); LabelHargaKomposisiDetail.Text = daftarPOProduksiProdukDetail.Sum(item => item.Jumlah * item.HargaPokokKomposisi).ToFormatHarga(); LabelBiayaTambahanDetail.Text = daftarPOProduksiProdukDetail.Sum(item => item.Jumlah * item.BiayaTambahan).ToFormatHarga(); LabelPotonganHargaDetail.Text = daftarPOProduksiProdukDetail.Sum(item => item.Jumlah * item.PotonganHargaVendor).ToFormatHarga(); LabelJumlahProdukDetail.Text = daftarPOProduksiProdukDetail.Sum(item => item.Jumlah).ToFormatHargaBulat(); LabelHargaVendorDetail.Text = daftarPOProduksiProdukDetail.Sum(item => item.Jumlah * item.HargaVendor).ToFormatHarga(); LabelSubtotalDetail.Text = daftarPOProduksiProdukDetail.Sum(item => item.SubtotalHPP + item.SubtotalHargaVendor).ToFormatHarga(); #endregion #region Kategori RepeaterKategori.DataSource = daftarPOProduksiProdukDetail.GroupBy(item => new { Kategori = item.TBKombinasiProduk.TBProduk.TBRelasiProdukKategoriProduks.Count > 0 ? item.TBKombinasiProduk.TBProduk.TBRelasiProdukKategoriProduks.FirstOrDefault().TBKategoriProduk.Nama : "" }) .Select(item => new { item.Key.Kategori, Jumlah = item.Sum(data => data.Jumlah).ToFormatHargaBulat(), Subtotal = item.Sum(data => data.SubtotalHPP + data.SubtotalHargaVendor).ToFormatHarga() }); RepeaterKategori.DataBind(); #endregion #region //RepeaterPenerimaan.DataSource = daftarPenerimaanPOProduksiProdukDetail.GroupBy(item => new //{ // item.TBKombinasiProduk, //}).Select(item => new //{ // PemilikProduk = item.Key.TBKombinasiProduk.TBProduk.TBPemilikProduk.Nama, // Produk = item.Key.TBKombinasiProduk.Nama, // AtributProduk = item.Key.TBKombinasiProduk.TBAtributProduk.Nama, // Kategori = StokProduk_Class.GabungkanSemuaKategoriProduk(db, null, item.Key.TBKombinasiProduk), // Diterima = item.Sum(data => data.Diterima).ToFormatHargaBulat(), // Subtotal = item.FirstOrDefault().TBPenerimaanPOProduksiProduk.TBPOProduksiProduk.EnumJenisProduksi != (int)PilihanEnumJenisProduksi.ProduksiSendiri ? item.Sum(data => data.SubtotalHargaVendor).ToFormatHarga() : item.Sum(data => data.SubtotalHPP).ToFormatHarga() //}); //RepeaterPenerimaan.DataBind(); RepeaterPenerimaan.DataSource = daftarPenerimaanPOProduksiProdukDetail.GroupBy(item => new { item.TBKombinasiProduk.TBProduk.TBPemilikProduk, Kategori = StokProduk_Class.GabungkanSemuaKategoriProduk(db, null, item.TBKombinasiProduk), }).Select(item => new { PemilikProduk = item.Key.TBPemilikProduk.Nama, Kategori = item.Key.Kategori, Diterima = item.Sum(data => data.Diterima).ToFormatHargaBulat(), Subtotal = item.FirstOrDefault().TBPenerimaanPOProduksiProduk.TBPOProduksiProduk.EnumJenisProduksi != (int)PilihanEnumJenisProduksi.ProduksiSendiri ? item.Sum(data => data.SubtotalHargaVendor).ToFormatHarga() : item.Sum(data => data.SubtotalHPP).ToFormatHarga() }).OrderBy(item => item.PemilikProduk).ThenBy(item => item.Kategori); RepeaterPenerimaan.DataBind(); #endregion #region Jatuh Tempo decimal batas = db.TBStoreKonfigurasis.FirstOrDefault(item => item.IDStoreKonfigurasi == (int)EnumStoreKonfigurasi.JumlahHariSebelumJatuhTempo).Pengaturan.ToDecimal(); LabelPanelSetengahJatuhTempo.Text = "1-" + Math.Floor(batas / 2).ToFormatHargaBulat() + " Hari"; LabelPanelJatuhTempo.Text = Math.Floor(batas / 2).ToFormatHargaBulat() + "-" + batas.ToFormatHargaBulat() + " Hari"; var daftarJatuhTempo = daftarPOProduksiProduk .Where(item => item.EnumJenisProduksi != (int)PilihanEnumJenisProduksi.ProduksiSendiri && ((int)((item.TanggalJatuhTempo.Value.Date - DateTime.Now.Date).TotalDays) < batas)) .Select(item => new { ClassWarna = Warna((int)((item.TanggalJatuhTempo.Value.Date - DateTime.Now.Date).TotalDays), batas), Pengguna = item.TBPengguna.NamaLengkap, item.IDPOProduksiProduk, item.TBVendor.Nama, item.EnumJenisProduksi, item.Tanggal, item.TanggalJatuhTempo, Jarak = (item.TanggalJatuhTempo.Value.Date - DateTime.Now.Date).TotalDays }) .OrderBy(item => item.Jarak) .ToArray(); if (DropDownListJatuhTempo.SelectedValue == "0") { RepeaterPOProdukJatuhTempoSatu.DataSource = daftarJatuhTempo.Where(item => item.ClassWarna == "danger"); RepeaterPOProdukJatuhTempoSatu.DataBind(); RepeaterPOProdukJatuhTempoDua.DataSource = daftarJatuhTempo.Where(item => item.ClassWarna == "warning"); RepeaterPOProdukJatuhTempoDua.DataBind(); RepeaterPOProdukJatuhTempoTiga.DataSource = daftarJatuhTempo.Where(item => item.ClassWarna == string.Empty); RepeaterPOProdukJatuhTempoTiga.DataBind(); } else { RepeaterPOProdukJatuhTempoSatu.DataSource = daftarJatuhTempo.Where(item => item.ClassWarna == "danger" && item.EnumJenisProduksi == DropDownListJatuhTempo.SelectedValue.ToInt()); RepeaterPOProdukJatuhTempoSatu.DataBind(); RepeaterPOProdukJatuhTempoDua.DataSource = daftarJatuhTempo.Where(item => item.ClassWarna == "warning" && item.EnumJenisProduksi == DropDownListJatuhTempo.SelectedValue.ToInt()); RepeaterPOProdukJatuhTempoDua.DataBind(); RepeaterPOProdukJatuhTempoTiga.DataSource = daftarJatuhTempo.Where(item => item.ClassWarna == string.Empty && item.EnumJenisProduksi == DropDownListJatuhTempo.SelectedValue.ToInt()); RepeaterPOProdukJatuhTempoTiga.DataBind(); } #endregion } }