protected void RepeaterProyeksi_ItemCommand(object source, RepeaterCommandEventArgs e) { if (e.CommandName == "Selesai") { using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"]; TBProyeksi[] daftarProyeksi = db.TBProyeksis.Where(item => item.EnumStatusProyeksi == (int)PilihanEnumStatusProyeksi.Proses).OrderByDescending(item => item.TanggalProyeksi).ToArray(); TBProyeksi proyeksi = daftarProyeksi.FirstOrDefault(item => item.IDProyeksi == e.CommandArgument.ToString()); proyeksi.EnumStatusProyeksi = (int)PilihanEnumStatusProyeksi.Selesai; db.SubmitChanges(); LoadData(daftarProyeksi); } } }
protected void ButtonSimpan_Click(object sender, EventArgs e) { using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"]; List <ProyeksiDetail_Model> ViewStateListDetail = (List <ProyeksiDetail_Model>)ViewState["ViewStateListDetail"]; List <KomposisiProduk_Model> ViewStateKomposisiProduk = (List <KomposisiProduk_Model>)ViewState["ViewStateKomposisiProduk"]; if (ViewStateListDetail.Count > 0) { string IDProyeksi = string.Empty; TBProyeksi proyeksi = null; try { peringatan.Visible = false; db.Proc_InsertProyeksi(ref IDProyeksi, pengguna.IDTempat, TextBoxTanggalProyeksi.Text.ToDateTime().AddHours(DateTime.Now.Hour).AddMinutes(DateTime.Now.Minute)); proyeksi = db.TBProyeksis.FirstOrDefault(item => item.IDProyeksi == IDProyeksi); proyeksi.IDPengguna = pengguna.IDPengguna; proyeksi.TanggalTarget = TextBoxTanggalTarget.Text.ToDateTime(); proyeksi.TanggalSelesai = null; proyeksi.TBProyeksiDetails.AddRange(ViewStateListDetail.OrderBy(item => item.KombinasiProduk).Select(item => new TBProyeksiDetail { IDKombinasiProduk = item.IDKombinasiProduk, HargaJual = item.HargaJual, Jumlah = item.Jumlah, Sisa = item.Jumlah })); proyeksi.TotalJumlah = proyeksi.TBProyeksiDetails.Sum(item => item.Jumlah); proyeksi.GrandTotalHargaJual = proyeksi.TBProyeksiDetails.Sum(item => item.HargaJual * item.Jumlah); proyeksi.EnumStatusProyeksi = 1; proyeksi.Keterangan = TextBoxKeterangan.Text; if (ViewStateKomposisiProduk.Count > 0) { int LevelAkhir = ViewStateKomposisiProduk.Max(item => item.LevelProduksi); proyeksi.TBProyeksiKomposisis.AddRange(ViewStateKomposisiProduk.OrderBy(item2 => item2.BahanBaku).ThenBy(item2 => item2.LevelProduksi).Select(item => new TBProyeksiKomposisi { IDBahanBaku = item.IDBahanBaku, IDSatuan = item.IDSatuan, LevelProduksi = LevelAkhir - item.LevelProduksi, BahanBakuDasar = item.BahanBakuDasar, Jumlah = item.JumlahPemakaian, Stok = item.Stok, Kurang = item.Kurang, Sisa = item.JumlahPemakaian })); } db.SubmitChanges(); } catch (Exception ex) { if (IDProyeksi != string.Empty) { proyeksi = db.TBProyeksis.FirstOrDefault(item => item.IDProyeksi == IDProyeksi); if (proyeksi != null) { db.TBProyeksiKomposisis.DeleteAllOnSubmit(proyeksi.TBProyeksiKomposisis); db.TBProyeksiDetails.DeleteAllOnSubmit(proyeksi.TBProyeksiDetails); db.TBProyeksis.DeleteOnSubmit(proyeksi); db.SubmitChanges(); IDProyeksi = string.Empty; } } LogError_Class LogError = new LogError_Class(ex, "Purchase Order Produk (ButtonSimpan_Click by : " + pengguna.NamaLengkap + ")"); LabelPeringatan.Text = "Terjadi kesalahan, silahkan cek kembali data yang diinputkan"; peringatan.Visible = true; } finally { if (IDProyeksi != string.Empty) { Response.Redirect("Default.aspx"); } } } } }
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(); } } }
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; } } }