protected void RepeaterPOProduksiDetail_ItemCommand(object source, RepeaterCommandEventArgs e) { MultiViewPerformance.SetActiveView(ViewPOProduksiDetail); using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { TBPOProduksiBahanBaku poProduksiBahanBaku = db.TBPOProduksiBahanBakus.FirstOrDefault(item => item.IDPOProduksiBahanBaku == e.CommandArgument.ToString()); TextBoxIDProyeksi.Text = poProduksiBahanBaku.IDProyeksi != null ? poProduksiBahanBaku.IDProyeksi : "-Tidak Ada Proyeksi-"; TextBoxIDPOProduksiBahanBaku.Text = poProduksiBahanBaku.IDPOProduksiBahanBaku; TextBoxStatusHPP.Text = Pengaturan.StatusJenisHPP(poProduksiBahanBaku.EnumJenisHPP.Value); TextBoxPegawaiPIC.Text = poProduksiBahanBaku.TBPengguna1.NamaLengkap; TextBoxTanggalJatuhTempo.Text = poProduksiBahanBaku.TanggalJatuhTempo != null?poProduksiBahanBaku.TanggalJatuhTempo.ToFormatTanggal() : string.Empty; TextBoxTanggalPengiriman.Text = poProduksiBahanBaku.TanggalPengiriman.ToFormatTanggal(); TextBoxPegawai.Text = poProduksiBahanBaku.TBPengguna.NamaLengkap + " / " + poProduksiBahanBaku.Tanggal.ToFormatTanggal(); if (poProduksiBahanBaku.EnumJenisProduksi != (int)PilihanEnumJenisProduksi.ProduksiSendiri) { TextBoxSupplierVendorTempat.Text = poProduksiBahanBaku.TBSupplier.Nama; TextBoxEmail.Text = poProduksiBahanBaku.TBSupplier.Email; TextBoxAlamat.Text = poProduksiBahanBaku.TBSupplier.Alamat; TextBoxTelepon1.Text = poProduksiBahanBaku.TBSupplier.Telepon1; TextBoxTelepon2.Text = poProduksiBahanBaku.TBSupplier.Telepon2; } else { TextBoxSupplierVendorTempat.Text = poProduksiBahanBaku.TBTempat.Nama; TextBoxEmail.Text = poProduksiBahanBaku.TBTempat.Email; TextBoxAlamat.Text = poProduksiBahanBaku.TBTempat.Alamat; TextBoxTelepon1.Text = poProduksiBahanBaku.TBTempat.Telepon1; TextBoxTelepon2.Text = poProduksiBahanBaku.TBTempat.Telepon2; } DetailBahanBaku.Visible = true; RepeaterPOProdusiBahanBakuDetail.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), Harga = poProduksiBahanBaku.EnumJenisProduksi == (int)PilihanEnumJenisProduksi.ProduksiSendiri ? item.TotalHPP : item.TotalHargaSupplier, item.Jumlah, Datang = item.Jumlah - item.Sisa, item.Sisa }); RepeaterPOProdusiBahanBakuDetail.DataBind(); ButtonKembali.Visible = false; ButtonKembaliPOProduksi.Visible = true; } }
private void TambahSubKomposisiBahanBaku(List <KomposisiProduk_Model> ViewStateKomposisiProduk, TBBahanBaku bahanBaku, decimal jumlahBahanWIP, TBStokBahanBaku[] daftarStokBahanBaku, int Level) { PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"]; foreach (var subItem in bahanBaku.TBKomposisiBahanBakus) { TBStokBahanBaku stokBahanBaku = daftarStokBahanBaku.FirstOrDefault(data => data.IDBahanBaku == subItem.IDBahanBaku); KomposisiProduk_Model komposisiDetail = ViewStateKomposisiProduk.FirstOrDefault(data => data.IDBahanBaku == subItem.IDBahanBaku && data.LevelProduksi == Level); if (komposisiDetail == null) { komposisiDetail = new KomposisiProduk_Model() { LevelProduksi = Level, IDBahanBaku = stokBahanBaku.IDBahanBaku.Value, IDSatuan = stokBahanBaku.TBBahanBaku.IDSatuan, Kategori = StokBahanBaku_Class.GabungkanSemuaKategoriBahanBaku(null, stokBahanBaku, null), BahanBaku = stokBahanBaku.TBBahanBaku.Nama, Satuan = stokBahanBaku.TBBahanBaku.TBSatuan.Nama, JumlahPemakaian = subItem.Jumlah.Value * jumlahBahanWIP, BahanBakuDasar = stokBahanBaku.TBBahanBaku.TBKomposisiBahanBakus.Count > 0 ? false : true }; if (komposisiDetail.BahanBakuDasar == true) { komposisiDetail.Stok = stokBahanBaku.Jumlah.Value; komposisiDetail.Kurang = stokBahanBaku.Jumlah.Value - komposisiDetail.JumlahPemakaian < 0 ? Math.Abs(stokBahanBaku.Jumlah.Value - komposisiDetail.JumlahPemakaian) : 0; } ViewStateKomposisiProduk.Add(komposisiDetail); } else { komposisiDetail.JumlahPemakaian = komposisiDetail.JumlahPemakaian + subItem.Jumlah.Value * jumlahBahanWIP; if (komposisiDetail.BahanBakuDasar == true) { komposisiDetail.Stok = stokBahanBaku.Jumlah.Value; komposisiDetail.Kurang = stokBahanBaku.Jumlah.Value - komposisiDetail.JumlahPemakaian < 0 ? Math.Abs(stokBahanBaku.Jumlah.Value - komposisiDetail.JumlahPemakaian) : 0; } } if (stokBahanBaku.TBBahanBaku.TBKomposisiBahanBakus.Count > 0) { TambahSubKomposisiBahanBaku(ViewStateKomposisiProduk, stokBahanBaku.TBBahanBaku, (subItem.Jumlah.Value * jumlahBahanWIP), daftarStokBahanBaku, Level + 1); } } }
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(); } } }
private void LoadDataTransferBahanBaku() { using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { var TransferBahanBakuDetail = db.TBTransferBahanBakuDetails .Where(item => item.IDTransferBahanBaku == LabelIDTransferBahanBaku.Text) .Select(item => new { item.IDTransferBahanBakuDetail, Kode = item.TBBahanBaku.KodeBahanBaku, item.TBBahanBaku.Nama, SatuanBesar = item.TBSatuan.Nama, Kategori = StokBahanBaku_Class.GabungkanSemuaKategoriBahanBaku(db, null, item.TBBahanBaku), item.HargaBeli, item.Jumlah, item.Subtotal }).OrderBy(item => item.Nama).ToArray(); RepeaterTransferBahanBaku.DataSource = TransferBahanBakuDetail; RepeaterTransferBahanBaku.DataBind(); LabelTotalSubtotal.Text = TransferBahanBakuDetail.Sum(item => item.Subtotal).ToFormatHarga(); } }
private void TambahKomposisi(DataClassesDatabaseDataContext db, int idKombinasiProduk, int jumlah) { PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"]; List <KomposisiProduk_Model> ViewStateKomposisiProduk = (List <KomposisiProduk_Model>)ViewState["ViewStateKomposisiProduk"]; TBKombinasiProduk[] daftarkombinasiProduk = db.TBKombinasiProduks.ToArray(); TBStokBahanBaku[] daftarStokBahanBaku = db.TBStokBahanBakus.Where(item => item.IDTempat == pengguna.IDTempat).ToArray(); TBKombinasiProduk kombinasiProduk = daftarkombinasiProduk.FirstOrDefault(data => data.IDKombinasiProduk == idKombinasiProduk); foreach (var subItem in kombinasiProduk.TBKomposisiKombinasiProduks) { TBStokBahanBaku stokBahanBaku = daftarStokBahanBaku.FirstOrDefault(data => data.IDBahanBaku == subItem.IDBahanBaku); int Level = 0; KomposisiProduk_Model komposisiDetail = ViewStateKomposisiProduk.FirstOrDefault(data => data.IDBahanBaku == subItem.IDBahanBaku && data.LevelProduksi == Level); if (komposisiDetail == null) { komposisiDetail = new KomposisiProduk_Model() { LevelProduksi = Level, IDBahanBaku = stokBahanBaku.IDBahanBaku.Value, IDSatuan = stokBahanBaku.TBBahanBaku.IDSatuan, Kategori = StokBahanBaku_Class.GabungkanSemuaKategoriBahanBaku(null, stokBahanBaku, null), BahanBaku = stokBahanBaku.TBBahanBaku.Nama, Satuan = stokBahanBaku.TBBahanBaku.TBSatuan.Nama, JumlahPemakaian = subItem.Jumlah.Value * jumlah, BahanBakuDasar = stokBahanBaku.TBBahanBaku.TBKomposisiBahanBakus.Count > 0 ? false : true }; if (komposisiDetail.BahanBakuDasar == true) { komposisiDetail.Stok = stokBahanBaku.Jumlah.Value; komposisiDetail.Kurang = stokBahanBaku.Jumlah.Value - komposisiDetail.JumlahPemakaian < 0 ? Math.Abs(stokBahanBaku.Jumlah.Value - komposisiDetail.JumlahPemakaian) : 0; } ViewStateKomposisiProduk.Add(komposisiDetail); } else { komposisiDetail.JumlahPemakaian = komposisiDetail.JumlahPemakaian + subItem.Jumlah.Value * jumlah; if (komposisiDetail.BahanBakuDasar == true) { komposisiDetail.Stok = stokBahanBaku.Jumlah.Value; komposisiDetail.Kurang = stokBahanBaku.Jumlah.Value - komposisiDetail.JumlahPemakaian < 0 ? Math.Abs(stokBahanBaku.Jumlah.Value - komposisiDetail.JumlahPemakaian) : 0; } } if (stokBahanBaku.TBBahanBaku.TBKomposisiBahanBakus.Count > 0) { TambahSubKomposisiBahanBaku(ViewStateKomposisiProduk, stokBahanBaku.TBBahanBaku, (subItem.Jumlah.Value * jumlah), daftarStokBahanBaku, Level + 1); } } ViewState["ViewStateKomposisiProduk"] = ViewStateKomposisiProduk; }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"]; TextBoxPegawai.Text = pengguna.NamaLengkap; TBProyeksi proyeksi = db.TBProyeksis.FirstOrDefault(item => item.IDProyeksi == Request.QueryString["id"]); TextBoxTanggalProyeksi.Text = proyeksi.TanggalProyeksi.ToFormatTanggal(); TextBoxTanggalTarget.Text = proyeksi.TanggalTarget.ToFormatTanggal(); #region Produk var daftarProduk = proyeksi.TBProyeksiDetails.Select(item => new { item.TBKombinasiProduk.KodeKombinasiProduk, PemilikProduk = item.TBKombinasiProduk.TBProduk.TBPemilikProduk.Nama, Produk = item.TBKombinasiProduk.TBProduk.Nama, AtributProduk = item.TBKombinasiProduk.TBAtributProduk.Nama, Kategori = StokProduk_Class.GabungkanSemuaKategoriProduk(null, null, item.TBKombinasiProduk), item.Jumlah, item.Sisa }).OrderBy(item => item.Produk).ThenBy(item => item.AtributProduk).ToArray(); RepeaterProduk.DataSource = daftarProduk; RepeaterProduk.DataBind(); if (daftarProduk.Sum(item => item.Sisa) <= 0) { ButtonProduk.Visible = false; } #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 var produksiBahanBaku = proyeksi.TBProyeksiKomposisis.Where(item => item.LevelProduksi > 0).GroupBy(item => new { item.LevelProduksi }) .Select(item => new { item.Key.LevelProduksi, SubData = item.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), StatusButton = item.Sum(data => data.Sisa) > 0 ? true : false }).OrderBy(item => item.LevelProduksi); RepeaterKomposisi.DataSource = produksiBahanBaku; RepeaterKomposisi.DataBind(); #endregion #region Komposisi Dasar //RepeaterBahanBakuDasar.DataSource = proyeksi.TBProyeksiKomposisis.Where(item => item.BahanBakuDasar == true) //.Select(item => new //{ // item.TBBahanBaku.IDBahanBaku, // item.TBSatuan.IDSatuan, // BahanBaku = item.TBBahanBaku.Nama, // Kategori = StokBahanBaku_Class.GabungkanSemuaKategoriBahanBaku(null, null, item.TBBahanBaku), // Satuan = item.TBSatuan.Nama, // item.Jumlah, //}).OrderBy(data => data.BahanBaku); //RepeaterBahanBakuDasar.DataBind(); var purchaseOrder = proyeksi.TBProyeksiKomposisis.Where(item => item.BahanBakuDasar == true).GroupBy(item => new { item.TBBahanBaku, item.TBSatuan }) .Select(item => new { item.Key.TBBahanBaku.IDBahanBaku, item.Key.TBSatuan.IDSatuan, BahanBaku = item.Key.TBBahanBaku.Nama, Kategori = StokBahanBaku_Class.GabungkanSemuaKategoriBahanBaku(null, null, item.Key.TBBahanBaku), Satuan = item.Key.TBSatuan.Nama, Jumlah = item.Sum(x => x.Jumlah), Sisa = item.Sum(x => x.Sisa) }).OrderBy(data => data.BahanBaku); RepeaterBahanBakuDasar.DataSource = purchaseOrder; RepeaterBahanBakuDasar.DataBind(); if (purchaseOrder.Sum(item => item.Sisa) <= 0) { LinkButtonPurchaseOrder.Visible = false; } #endregion } RepeaterPOProduksiBahanBaku.DataSource = proyeksi.TBPOProduksiBahanBakus.OrderBy(item => item.Tanggal).Select(item => new { item.IDPOProduksiBahanBaku, Jenis = Pengaturan.JenisPOProduksi(item.EnumJenisProduksi, "BahanBaku"), item.Tanggal, Pegawai = item.TBPengguna.NamaLengkap, Supplier = item.IDSupplier == null ? string.Empty : item.TBSupplier.Nama, item.Grandtotal }).ToArray(); RepeaterPOProduksiBahanBaku.DataBind(); RepeaterPOProduksiProduk.DataSource = proyeksi.TBPOProduksiProduks.OrderBy(item => item.Tanggal).Select(item => new { item.IDPOProduksiProduk, Jenis = Pengaturan.JenisPOProduksi(item.EnumJenisProduksi, "Produk"), item.Tanggal, Pegawai = item.TBPengguna.NamaLengkap, Vendor = item.IDVendor == null ? string.Empty : item.TBVendor.Nama, item.Grandtotal }).ToArray(); RepeaterPOProduksiProduk.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; } 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 } }
protected void ButtonExport_Click(object sender, EventArgs e) { PenggunaLogin Pengguna = (PenggunaLogin)Session["PenggunaLogin"]; string NamaWorksheet = "Bahan Baku"; #region Default string NamaFile = "Laporan " + NamaWorksheet + " " + DateTime.Now.ToString("d MMMM yyyy hh.mm.ss") + ".xlsx"; string Folder = Server.MapPath("~/file_excel/" + NamaWorksheet + "/Export/"); if (!Directory.Exists(Folder)) { Directory.CreateDirectory(Folder); } string Path = Folder + NamaFile; string Judul = "Laporan " + NamaWorksheet + " " + Pengguna.Store + " - " + Pengguna.Tempat + " " + DateTime.Now.ToString("d MMMM yyyy"); FileInfo newFile = new FileInfo(Path); #endregion using (ExcelPackage package = new ExcelPackage(newFile)) { ExcelWorksheet worksheet = package.Workbook.Worksheets.Add(NamaWorksheet); worksheet.Cells[1, 1].Value = "No."; worksheet.Cells[1, 2].Value = "Kode"; worksheet.Cells[1, 3].Value = "Bahan Baku"; worksheet.Cells[1, 4].Value = "Satuan Besar"; worksheet.Cells[1, 5].Value = "Konversi"; worksheet.Cells[1, 6].Value = "Satuan Kecil"; worksheet.Cells[1, 7].Value = "Berat"; worksheet.Cells[1, 8].Value = "Jumlah (Satuan Besar)"; worksheet.Cells[1, 9].Value = "Harga Beli per Satuan Besar"; worksheet.Cells[1, 10].Value = "Jumlah Minimum (Satuan Besar)"; worksheet.Cells[1, 11].Value = "Kategori"; worksheet.Cells[1, 12].Value = "Keterangan"; int index = 2; using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { TBStokBahanBaku[] daftarStokBahanBaku = db.TBStokBahanBakus.Where(item => item.IDTempat == Pengguna.IDTempat).ToArray(); foreach (var item in db.TBBahanBakus.OrderBy(item => item.Nama).ToArray()) { TBStokBahanBaku stokBahanBaku = daftarStokBahanBaku.FirstOrDefault(data => data.IDBahanBaku == item.IDBahanBaku); //No worksheet.Cells[index, 1].Value = index - 1; worksheet.Cells[index, 1].Style.Numberformat.Format = "@"; //Kode worksheet.Cells[index, 2].Value = item.KodeBahanBaku; worksheet.Cells[index, 2].Style.Numberformat.Format = "@"; //Bahan Baku worksheet.Cells[index, 3].Value = item.Nama; worksheet.Cells[index, 3].Style.Numberformat.Format = "@"; //Satuan Besar worksheet.Cells[index, 4].Value = item.TBSatuan1.Nama; worksheet.Cells[index, 4].Style.Numberformat.Format = "@"; //Konversi worksheet.Cells[index, 5].Value = item.Konversi.Value; if (item.Konversi.ToFormatHarga().Contains(",")) { worksheet.Cells[index, 5].Style.Numberformat.Format = "#,##0.00"; } else { worksheet.Cells[index, 5].Style.Numberformat.Format = "#,##0"; } //Satuan Kecil worksheet.Cells[index, 6].Value = item.TBSatuan.Nama; worksheet.Cells[index, 6].Style.Numberformat.Format = "@"; //Berat worksheet.Cells[index, 7].Value = item.Berat.Value; if (item.Berat.ToFormatHarga().Contains(",")) { worksheet.Cells[index, 4].Style.Numberformat.Format = "#,##0.00"; } else { worksheet.Cells[index, 4].Style.Numberformat.Format = "#,##0"; } //Jumlah decimal jumlah = stokBahanBaku != null ? (stokBahanBaku.Jumlah.Value / stokBahanBaku.TBBahanBaku.Konversi.Value) : 0; worksheet.Cells[index, 8].Value = jumlah; if (jumlah.ToFormatHarga().Contains(",")) { worksheet.Cells[index, 8].Style.Numberformat.Format = "#,##0.00"; } else { worksheet.Cells[index, 8].Style.Numberformat.Format = "#,##0"; } //Harga Beli decimal hargaBeli = stokBahanBaku != null ? (stokBahanBaku.HargaBeli.Value * stokBahanBaku.TBBahanBaku.Konversi.Value) : 0; worksheet.Cells[index, 9].Value = hargaBeli; if (hargaBeli.ToFormatHarga().Contains(",")) { worksheet.Cells[index, 9].Style.Numberformat.Format = "#,##0.00"; } else { worksheet.Cells[index, 9].Style.Numberformat.Format = "#,##0"; } //Jumlah Minimum decimal jumlahMinimum = stokBahanBaku != null ? (stokBahanBaku.JumlahMinimum.Value / stokBahanBaku.TBBahanBaku.Konversi.Value) : 0; worksheet.Cells[index, 10].Value = jumlahMinimum; if (jumlahMinimum.ToFormatHarga().Contains(",")) { worksheet.Cells[index, 10].Style.Numberformat.Format = "#,##0.00"; } else { worksheet.Cells[index, 10].Style.Numberformat.Format = "#,##0"; } //Kategori worksheet.Cells[index, 11].Value = item.TBRelasiBahanBakuKategoriBahanBakus.Count > 0 ? StokBahanBaku_Class.GabungkanSemuaKategoriBahanBaku(db, null, item) : ""; worksheet.Cells[index, 11].Style.Numberformat.Format = "@"; //Keterangan worksheet.Cells[index, 12].Value = item.Deskripsi; worksheet.Cells[index, 12].Style.Numberformat.Format = "@"; index++; } } using (var range = worksheet.Cells[1, 1, 1, 12]) { range.Style.Font.Bold = true; } #region Default worksheet.Cells.AutoFitColumns(0); worksheet.HeaderFooter.OddHeader.CenteredText = "&16&\"Tahoma,Regular Bold\"" + Judul; worksheet.HeaderFooter.OddFooter.LeftAlignedText = "Print : " + Pengguna.NamaLengkap + " - " + Pengguna.Tempat + " - " + DateTime.Now.ToString("d MMMM yyyy hh:mm"); worksheet.HeaderFooter.OddFooter.RightAlignedText = "WIT. Warehouse Management System - " + string.Format("Page {0} of {1}", ExcelHeaderFooter.PageNumber, ExcelHeaderFooter.NumberOfPages); package.Workbook.Properties.Title = NamaWorksheet; package.Workbook.Properties.Author = "WIT. Warehouse Management System"; package.Workbook.Properties.Comments = Judul; package.Workbook.Properties.Company = "WIT. Warehouse Management System"; package.Save(); #endregion } ButtonExport.Visible = false; LinkDownload.Visible = true; LinkDownload.HRef = "/file_excel/" + NamaWorksheet + "/Export/" + NamaFile; }
private void LoadData() { using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { Laporan_Class Laporan_Class = new Laporan_Class(db, (PenggunaLogin)Session["PenggunaLogin"], DateTime.Now, DateTime.Now, false); Dictionary <string, dynamic> Result = new Dictionary <string, dynamic>(); string tempPencarian = string.Empty; var ListStokBahanBaku = db.TBStokBahanBakus.Where(item => item.IDTempat == DropDownListTempat.SelectedValue.ToInt()).Select(item => new { item.IDBahanBaku, Kode = item.TBBahanBaku.KodeBahanBaku, BahanBaku = item.TBBahanBaku.Nama, Satuan = item.TBBahanBaku.TBSatuan1.Nama, RelasiKategori = item.TBBahanBaku.TBRelasiBahanBakuKategoriBahanBakus.ToArray(), Kategori = StokBahanBaku_Class.GabungkanSemuaKategoriBahanBaku(db, item, null), Jumlah = item.Jumlah / item.TBBahanBaku.Konversi, item.TBBahanBaku.IDSatuanKonversi, DropDownSatuan = CariSatuan(item.TBBahanBaku) }).OrderBy(item => item.BahanBaku).ToArray(); switch (DropDownListJenisStok.Text.ToInt()) { case 1: ListStokBahanBaku = ListStokBahanBaku.Where(item => item.Jumlah > 0).ToArray(); break; case 2: ListStokBahanBaku = ListStokBahanBaku.Where(item => item.Jumlah == 0).ToArray(); break; case 3: ListStokBahanBaku = ListStokBahanBaku.Where(item => item.Jumlah < 0).ToArray(); break; } tempPencarian += "?IDTempat=" + DropDownListTempat.SelectedValue.ToInt(); tempPencarian += "&JenisStokProduk=" + DropDownListJenisStok.Text.ToInt(); if (!string.IsNullOrWhiteSpace(TextBoxBahanBaku.Text)) { ListStokBahanBaku = ListStokBahanBaku.Where(item => item.BahanBaku.ToLower().Contains(TextBoxBahanBaku.Text.ToLower())).ToArray(); } tempPencarian += "&BahanBaku=" + TextBoxBahanBaku.Text; if (DropDownListSatuan.SelectedValue.ToInt() != 0) { ListStokBahanBaku = ListStokBahanBaku.Where(item => item.IDSatuanKonversi == DropDownListSatuan.SelectedValue.ToInt()).ToArray(); } tempPencarian += "&IDSatuan=" + DropDownListSatuan.SelectedValue.ToInt(); tempPencarian += "&SatuanBesar=true"; if (DropDownListKategori.SelectedValue.ToInt() != 0) { ListStokBahanBaku = ListStokBahanBaku.Where(item => item.RelasiKategori.FirstOrDefault(data => data.IDKategoriBahanBaku == DropDownListKategori.SelectedValue.ToInt()) != null).ToArray(); } tempPencarian += "&IDKategori=" + DropDownListKategori.SelectedValue.ToInt(); if (!string.IsNullOrWhiteSpace(TextBoxKodeBahanBaku.Text)) { ListStokBahanBaku = ListStokBahanBaku.Where(item => item.Kode.ToLower().Contains(TextBoxKodeBahanBaku.Text.ToLower())).ToArray(); } tempPencarian += "&Kode=" + TextBoxKodeBahanBaku.Text; if (!string.IsNullOrWhiteSpace(TextBoxQuantity.Text)) { if (TextBoxQuantity.Text.Contains("-")) { string[] Range = TextBoxQuantity.Text.Split('-'); ListStokBahanBaku = ListStokBahanBaku.Where(item => item.Jumlah >= Range[0].ToDecimal() && item.Jumlah <= Range[1].ToDecimal()).OrderBy(item => item.Jumlah).ToArray(); } else { ListStokBahanBaku = ListStokBahanBaku.Where(item => item.Jumlah == TextBoxQuantity.Text.ToDecimal()).ToArray(); } } tempPencarian += "&Quantity=" + TextBoxQuantity.Text; if (Request.QueryString["do"] == "opname") { Result.Add("Judul", "Stock Opname"); } else if (Request.QueryString["do"] == "waste") { Result.Add("Judul", "Pembuangan Bahan Baku Rusak"); } else if (Request.QueryString["do"] == "restock") { Result.Add("Judul", "Restock Bahan Baku"); } else if (Request.QueryString["do"] == "return") { Result.Add("Judul", "Retur ke Tempat Supplier"); } else { Result.Add("Judul", ""); } tempPencarian += "&do=" + Request.QueryString["do"]; Tempat_Class ClassTempat = new Tempat_Class(db); Result.Add("Data", ListStokBahanBaku); Result.Add("Tempat", ClassTempat.Cari(DropDownListTempat.SelectedValue.ToInt()).Nama); //PRINT LAPORAN ButtonPrint.OnClientClick = "return popitup('PengaturanPrint.aspx" + tempPencarian + "')"; RepeaterLaporan.DataSource = Result["Data"]; RepeaterLaporan.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; 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; } } }