Ejemplo n.º 1
0
    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();
            TBPOProduksiBahanBaku[] daftarPOProduksiBahanBaku = db.TBPOProduksiBahanBakus.Where(item => item.IDTempat == DropDownListTempat.SelectedValue.ToInt() && item.Tanggal.Date >= TextBoxTanggalAwal.Text.ToDateTime().Date&& item.Tanggal.Date <= TextBoxTanggalAkhir.Text.ToDateTime().Date).ToArray();
            var daftarJatuhTempo = daftarPOProduksiBahanBaku
                                   .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.IDPOProduksiBahanBaku,
                item.TBSupplier.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")
            {
                RepeaterPOBahanBakuJatuhTempoSatu.DataSource = daftarJatuhTempo.Where(item => item.ClassWarna == "danger");
                RepeaterPOBahanBakuJatuhTempoSatu.DataBind();
                RepeaterPOBahanBakuJatuhTempoDua.DataSource = daftarJatuhTempo.Where(item => item.ClassWarna == "warning");
                RepeaterPOBahanBakuJatuhTempoDua.DataBind();
                RepeaterPOBahanBakuJatuhTempoTiga.DataSource = daftarJatuhTempo.Where(item => item.ClassWarna == string.Empty);
                RepeaterPOBahanBakuJatuhTempoTiga.DataBind();
            }
            else
            {
                RepeaterPOBahanBakuJatuhTempoSatu.DataSource = daftarJatuhTempo.Where(item => item.ClassWarna == "danger" && item.EnumJenisProduksi == DropDownListJatuhTempo.SelectedValue.ToInt());
                RepeaterPOBahanBakuJatuhTempoSatu.DataBind();
                RepeaterPOBahanBakuJatuhTempoDua.DataSource = daftarJatuhTempo.Where(item => item.ClassWarna == "warning" && item.EnumJenisProduksi == DropDownListJatuhTempo.SelectedValue.ToInt());
                RepeaterPOBahanBakuJatuhTempoDua.DataBind();
                RepeaterPOBahanBakuJatuhTempoTiga.DataSource = daftarJatuhTempo.Where(item => item.ClassWarna == string.Empty && item.EnumJenisProduksi == DropDownListJatuhTempo.SelectedValue.ToInt());
                RepeaterPOBahanBakuJatuhTempoTiga.DataBind();
            }
        }
    }
Ejemplo n.º 2
0
    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;
            }

            TBPOProduksiBahanBaku[]                 daftarPOProduksiBahanBaku                 = db.TBPOProduksiBahanBakus.Where(item => item.IDTempat == DropDownListTempat.SelectedValue.ToInt() && item.Tanggal.Date >= DateTime.Parse(TextBoxTanggalAwal.Text).Date&& item.Tanggal.Date <= DateTime.Parse(TextBoxTanggalAkhir.Text).Date).ToArray();
            TBPOProduksiBahanBakuDetail[]           daftarPOProduksiBahanBakuDetail           = db.TBPOProduksiBahanBakuDetails.Where(item => item.TBPOProduksiBahanBaku.IDTempat == DropDownListTempat.SelectedValue.ToInt() && item.TBPOProduksiBahanBaku.Tanggal.Date >= DateTime.Parse(TextBoxTanggalAwal.Text).Date&& item.TBPOProduksiBahanBaku.Tanggal.Date <= DateTime.Parse(TextBoxTanggalAkhir.Text).Date).ToArray();
            TBPenerimaanPOProduksiBahanBakuDetail[] daftarPenerimaanPOProduksiBahanBakuDetail = db.TBPenerimaanPOProduksiBahanBakuDetails.Where(item => item.TBPenerimaanPOProduksiBahanBaku.TBPOProduksiBahanBaku.IDTempat == DropDownListTempat.SelectedValue.ToInt() && item.TBPenerimaanPOProduksiBahanBaku.TanggalTerima.Value.Date >= DateTime.Parse(TextBoxTanggalAwal.Text).Date&& item.TBPenerimaanPOProduksiBahanBaku.TanggalTerima.Value.Date <= DateTime.Parse(TextBoxTanggalAkhir.Text).Date).ToArray();

            #region Purchase Order
            var purchaseOrder = daftarPOProduksiBahanBaku.GroupBy(item => new
            {
                item.EnumJenisProduksi
            })
                                .Select(item => new
            {
                item.Key.EnumJenisProduksi,
                JenisPO           = Pengaturan.JenisPOProduksi(item.Key.EnumJenisProduksi, "BahanBaku"),
                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              = daftarPOProduksiBahanBaku.Sum(item => item.PotonganPOProduksiBahanBaku).ToFormatHarga();
            LabelBiayaLainLain.Text         = daftarPOProduksiBahanBaku.Sum(item => item.BiayaLainLain).ToFormatHarga();
            LabelTax.Text                   = daftarPOProduksiBahanBaku.Sum(item => item.Tax).ToFormatHarga();
            LabelGrandtotal.Text            = daftarPOProduksiBahanBaku.Sum(item => item.Grandtotal).ToFormatHarga();
            LabelHargaKomposisiDetail.Text  = daftarPOProduksiBahanBakuDetail.Sum(item => item.Jumlah * item.HargaPokokKomposisi).ToFormatHarga();
            LabelBiayaTambahanDetail.Text   = daftarPOProduksiBahanBakuDetail.Sum(item => item.Jumlah * item.BiayaTambahan).ToFormatHarga();
            LabelPotonganHargaDetail.Text   = daftarPOProduksiBahanBakuDetail.Sum(item => item.Jumlah * item.PotonganHargaSupplier).ToFormatHarga();
            LabelJumlahBahanBakuDetail.Text = daftarPOProduksiBahanBakuDetail.Sum(item => item.Jumlah).ToFormatHarga();
            LabelHargaSupplierDetail.Text   = daftarPOProduksiBahanBakuDetail.Sum(item => item.Jumlah * item.HargaSupplier).ToFormatHarga();
            LabelSubtotalDetail.Text        = daftarPOProduksiBahanBakuDetail.Sum(item => item.SubtotalHPP + item.SubtotalHargaSupplier).ToFormatHarga();
            #endregion

            #region Kategori
            RepeaterKategori.DataSource = daftarPOProduksiBahanBakuDetail.GroupBy(item => new
            {
                Kategori = item.TBBahanBaku.TBRelasiBahanBakuKategoriBahanBakus.Count > 0 ? item.TBBahanBaku.TBRelasiBahanBakuKategoriBahanBakus.FirstOrDefault().TBKategoriBahanBaku.Nama : ""
            })
                                          .Select(item => new
            {
                item.Key.Kategori,
                Jumlah   = item.Sum(data => data.Jumlah).ToFormatHarga(),
                Subtotal = item.Sum(data => data.SubtotalHPP + data.SubtotalHargaSupplier).ToFormatHarga()
            });
            RepeaterKategori.DataBind();
            #endregion

            #region
            //RepeaterPenerimaan.DataSource = daftarPenerimaanPOProduksiBahanBakuDetail.GroupBy(item => new
            //{
            //    item.TBBahanBaku,
            //    item.TBSatuan
            //}).Select(item => new
            //{
            //    BahanBaku = item.Key.TBBahanBaku.Nama,
            //    Satuan = item.Key.TBSatuan.Nama,
            //    Kategori = StokBahanBaku_Class.GabungkanSemuaKategoriBahanBaku(db, null, item.Key.TBBahanBaku),
            //    Diterima = item.Sum(data => data.Diterima).ToFormatHarga(),
            //    Subtotal = item.FirstOrDefault().TBPenerimaanPOProduksiBahanBaku.TBPOProduksiBahanBaku.EnumJenisProduksi != (int)PilihanEnumJenisProduksi.ProduksiSendiri ? item.Sum(data => data.SubtotalHargaSupplier).ToFormatHarga() : item.Sum(data => data.SubtotalHPP).ToFormatHarga()
            //});
            //RepeaterPenerimaan.DataBind();

            RepeaterPenerimaan.DataSource = daftarPenerimaanPOProduksiBahanBakuDetail.GroupBy(item => new
            {
                Kategori = StokBahanBaku_Class.GabungkanSemuaKategoriBahanBaku(db, null, item.TBBahanBaku)
            }).Select(item => new
            {
                Kategori = item.Key.Kategori,
                Diterima = item.Sum(data => data.Diterima).ToFormatHarga(),
                Subtotal = item.FirstOrDefault().TBPenerimaanPOProduksiBahanBaku.TBPOProduksiBahanBaku.EnumJenisProduksi != (int)PilihanEnumJenisProduksi.ProduksiSendiri ? item.Sum(data => data.SubtotalHargaSupplier).ToFormatHarga() : item.Sum(data => data.SubtotalHPP).ToFormatHarga()
            }).OrderBy(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 = daftarPOProduksiBahanBaku
                                   .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.IDPOProduksiBahanBaku,
                item.TBSupplier.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")
            {
                RepeaterPOBahanBakuJatuhTempoSatu.DataSource = daftarJatuhTempo.Where(item => item.ClassWarna == "danger");
                RepeaterPOBahanBakuJatuhTempoSatu.DataBind();
                RepeaterPOBahanBakuJatuhTempoDua.DataSource = daftarJatuhTempo.Where(item => item.ClassWarna == "warning");
                RepeaterPOBahanBakuJatuhTempoDua.DataBind();
                RepeaterPOBahanBakuJatuhTempoTiga.DataSource = daftarJatuhTempo.Where(item => item.ClassWarna == string.Empty);
                RepeaterPOBahanBakuJatuhTempoTiga.DataBind();
            }
            else
            {
                RepeaterPOBahanBakuJatuhTempoSatu.DataSource = daftarJatuhTempo.Where(item => item.ClassWarna == "danger" && item.EnumJenisProduksi == DropDownListJatuhTempo.SelectedValue.ToInt());
                RepeaterPOBahanBakuJatuhTempoSatu.DataBind();
                RepeaterPOBahanBakuJatuhTempoDua.DataSource = daftarJatuhTempo.Where(item => item.ClassWarna == "warning" && item.EnumJenisProduksi == DropDownListJatuhTempo.SelectedValue.ToInt());
                RepeaterPOBahanBakuJatuhTempoDua.DataBind();
                RepeaterPOBahanBakuJatuhTempoTiga.DataSource = daftarJatuhTempo.Where(item => item.ClassWarna == string.Empty && item.EnumJenisProduksi == DropDownListJatuhTempo.SelectedValue.ToInt());
                RepeaterPOBahanBakuJatuhTempoTiga.DataBind();
            }

            #endregion
        }
    }