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; TBPengirimanPOProduksiProduk pengirimanPOProduksiBahanProduk = db.TBPengirimanPOProduksiProduks.FirstOrDefault(item => item.IDPengirimanPOProduksiProduk == Request.QueryString["id"]); LabelJudul.Text = "DELIVERY RAW MATERIALS TO VENDOR"; LabelIDPengirimanPOProduksiProduk.Text = pengirimanPOProduksiBahanProduk.IDPengirimanPOProduksiProduk; LabelNamaVendor.Text = pengirimanPOProduksiBahanProduk.TBPOProduksiProduk.IDVendor != null ? pengirimanPOProduksiBahanProduk.TBPOProduksiProduk.TBVendor.Nama : string.Empty; LabelAlamatVendor.Text = pengirimanPOProduksiBahanProduk.TBPOProduksiProduk.IDVendor != null ? pengirimanPOProduksiBahanProduk.TBPOProduksiProduk.TBVendor.Alamat : string.Empty; LabelIDProduksi.Text = pengirimanPOProduksiBahanProduk.IDPOProduksiProduk; LabelIDPengiriman.Text = pengirimanPOProduksiBahanProduk.IDPengirimanPOProduksiProduk; LabelTanggal.Text = pengirimanPOProduksiBahanProduk.Tanggal.ToFormatTanggal(); LabelPengirim.Text = pengirimanPOProduksiBahanProduk.TBPengguna.NamaLengkap; RepeaterDetail.DataSource = pengirimanPOProduksiBahanProduk.TBPengirimanPOProduksiProdukDetails.ToArray(); RepeaterDetail.DataBind(); } } }
protected void ButtonSimpan_Click(object sender, EventArgs e) { peringatan.Visible = false; bool statusBerhasil = false; string IDPengirimanPOProduksiProduk = string.Empty; TBPengirimanPOProduksiProduk pengiriman = null; PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"]; try { using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { bool pengirimanSesuai = true; int baris = 0; TBPOProduksiProduk poProduksiProduk = db.TBPOProduksiProduks.FirstOrDefault(item => item.IDPOProduksiProduk == Request.QueryString["id"]); EntitySet <TBPengirimanPOProduksiProdukDetail> daftarKomposisi = new EntitySet <TBPengirimanPOProduksiProdukDetail>(); foreach (RepeaterItem item in RepeaterKomposisi.Items) { baris++; Label LabelIDBahanBaku = (Label)item.FindControl("LabelIDBahanBaku"); TextBox TextBoxSisa = (TextBox)item.FindControl("TextBoxSisa"); TextBox TextBoxStok = (TextBox)item.FindControl("TextBoxStok"); TextBox TextBoxKirim = (TextBox)item.FindControl("TextBoxKirim"); if (TextBoxKirim.Text.ToDecimal() > 0) { if (TextBoxKirim.Text.ToDecimal() <= TextBoxStok.Text.ToDecimal()) { if (TextBoxKirim.Text.ToDecimal() <= TextBoxSisa.Text.ToDecimal()) { TBPOProduksiProdukKomposisi poProduksiKomposisiKomposisi = poProduksiProduk.TBPOProduksiProdukKomposisis.FirstOrDefault(data => data.IDBahanBaku == LabelIDBahanBaku.Text.ToInt()); daftarKomposisi.Add(new TBPengirimanPOProduksiProdukDetail() { TBBahanBaku = poProduksiKomposisiKomposisi.TBBahanBaku, TBSatuan = poProduksiKomposisiKomposisi.TBSatuan, Kirim = TextBoxKirim.Text.ToDecimal() }); } else { LabelPeringatan.Text = "Jumlah kirim lebih besar dari jumlah kebutuhan, baris ke-" + baris.ToString(); peringatan.Visible = true; pengirimanSesuai = false; break; } } else { LabelPeringatan.Text = "Jumlah kirim lebih besar dari stok, baris ke-" + baris.ToString(); peringatan.Visible = true; pengirimanSesuai = false; break; } } } if (pengirimanSesuai == true) { if (daftarKomposisi.Count > 0) { TBStokBahanBaku[] daftarStokBahanBaku = db.TBStokBahanBakus.Where(item => item.IDTempat == pengguna.IDTempat).ToArray(); db.Proc_InsertPengirimanPOProduksiProduk(ref IDPengirimanPOProduksiProduk, poProduksiProduk.IDPOProduksiProduk, 0, pengguna.IDTempat, pengguna.IDPengguna, TextBoxTanggalProses.Text.ToDateTime().AddHours(DateTime.Now.Hour).AddMinutes(DateTime.Now.Minute)); pengiriman = db.TBPengirimanPOProduksiProduks.FirstOrDefault(item => item.IDPengirimanPOProduksiProduk == IDPengirimanPOProduksiProduk); foreach (var item in daftarKomposisi) { TBStokBahanBaku stokBahanBaku = daftarStokBahanBaku.FirstOrDefault(data => data.IDBahanBaku == item.IDBahanBaku); StokBahanBaku_Class.UpdateBertambahBerkurang(db, DateTime.Now, pengguna.IDPengguna, stokBahanBaku, item.Kirim, stokBahanBaku.HargaBeli.Value, false, EnumJenisPerpindahanStok.PenguranganProduksi, "In-House Production #" + poProduksiProduk.IDPOProduksiProduk); TBPOProduksiProdukKomposisi poProduksiProdukomposisi = poProduksiProduk.TBPOProduksiProdukKomposisis.FirstOrDefault(data => data.IDBahanBaku == item.IDBahanBaku); item.HargaBeli = poProduksiProdukomposisi.HargaBeli; poProduksiProdukomposisi.Kirim = poProduksiProdukomposisi.Kirim + item.Kirim; poProduksiProdukomposisi.Sisa = poProduksiProdukomposisi.Sisa - item.Kirim; } pengiriman.TBPengirimanPOProduksiProdukDetails = daftarKomposisi; pengiriman.Grandtotal = pengiriman.TBPengirimanPOProduksiProdukDetails.Sum(item => (item.Kirim * item.HargaBeli)); pengiriman.Keterangan = null; db.SubmitChanges(); statusBerhasil = true; } else { LabelPeringatan.Text = "Tidak ada bahan baku yang dikirim"; peringatan.Visible = true; pengirimanSesuai = false; } } } } catch (Exception ex) { if (statusBerhasil != true) { using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { pengiriman = db.TBPengirimanPOProduksiProduks.FirstOrDefault(item => item.IDPengirimanPOProduksiProduk == IDPengirimanPOProduksiProduk); if (pengiriman != null) { db.TBPengirimanPOProduksiProdukDetails.DeleteAllOnSubmit(pengiriman.TBPengirimanPOProduksiProdukDetails); db.TBPengirimanPOProduksiProduks.DeleteOnSubmit(pengiriman); db.SubmitChanges(); IDPengirimanPOProduksiProduk = string.Empty; } } } LogError_Class LogError = new LogError_Class(ex, "Penerimaan Produksi Sendiri Produk (ButtonSimpan_Click by : " + pengguna.NamaLengkap + ")"); LabelPeringatan.Text = "Terjadi kesalahan, silahkan cek kembali data yang diinputkan"; peringatan.Visible = true; } finally { if (statusBerhasil == true) { Response.Redirect("Default.aspx"); } } }