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; TBPengirimanPOProduksiBahanBaku pengirimanPOProduksiBahanBaku = db.TBPengirimanPOProduksiBahanBakus.FirstOrDefault(item => item.IDPengirimanPOProduksiBahanBaku == Request.QueryString["id"]); LabelJudul.Text = "DELIVERY RAW MATERIALS TO SUPPLIER"; LabelIDPengirimanPOProduksiBahanBaku.Text = pengirimanPOProduksiBahanBaku.IDPengirimanPOProduksiBahanBaku; LabelNamaSupplier.Text = pengirimanPOProduksiBahanBaku.TBPOProduksiBahanBaku.IDSupplier != null ? pengirimanPOProduksiBahanBaku.TBPOProduksiBahanBaku.TBSupplier.Nama : string.Empty; LabelAlamatSupplier.Text = pengirimanPOProduksiBahanBaku.TBPOProduksiBahanBaku.IDSupplier != null ? pengirimanPOProduksiBahanBaku.TBPOProduksiBahanBaku.TBSupplier.Alamat : string.Empty; LabelIDProduksi.Text = pengirimanPOProduksiBahanBaku.IDPOProduksiBahanBaku; LabelIDPengiriman.Text = pengirimanPOProduksiBahanBaku.IDPengirimanPOProduksiBahanBaku; LabelTanggal.Text = pengirimanPOProduksiBahanBaku.Tanggal.ToFormatTanggal(); LabelPengirim.Text = pengirimanPOProduksiBahanBaku.TBPengguna.NamaLengkap; RepeaterDetail.DataSource = pengirimanPOProduksiBahanBaku.TBPengirimanPOProduksiBahanBakuDetails.ToArray(); RepeaterDetail.DataBind(); } } }
protected void ButtonSimpan_Click(object sender, EventArgs e) { peringatan.Visible = false; bool statusBerhasil = false; string IDPengirimanPOProduksiBahanBaku = string.Empty; TBPengirimanPOProduksiBahanBaku pengiriman = null; PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"]; try { using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { bool pengirimanSesuai = true; int baris = 0; TBPOProduksiBahanBaku poProduksiBahanBaku = db.TBPOProduksiBahanBakus.FirstOrDefault(item => item.IDPOProduksiBahanBaku == Request.QueryString["id"]); EntitySet <TBPengirimanPOProduksiBahanBakuDetail> daftarKomposisi = new EntitySet <TBPengirimanPOProduksiBahanBakuDetail>(); 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()) { TBPOProduksiBahanBakuKomposisi poProduksiBahanBakuKomposisi = poProduksiBahanBaku.TBPOProduksiBahanBakuKomposisis.FirstOrDefault(data => data.IDBahanBaku == LabelIDBahanBaku.Text.ToInt()); daftarKomposisi.Add(new TBPengirimanPOProduksiBahanBakuDetail() { TBBahanBaku = poProduksiBahanBakuKomposisi.TBBahanBaku, TBSatuan = poProduksiBahanBakuKomposisi.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_InsertPengirimanPOProduksiBahanBaku(ref IDPengirimanPOProduksiBahanBaku, poProduksiBahanBaku.IDPOProduksiBahanBaku, poProduksiBahanBaku.IDSupplier, pengguna.IDTempat, pengguna.IDPengguna, DateTime.Parse(TextBoxTanggalProses.Text).AddHours(DateTime.Now.Hour).AddMinutes(DateTime.Now.Minute)); pengiriman = db.TBPengirimanPOProduksiBahanBakus.FirstOrDefault(item => item.IDPengirimanPOProduksiBahanBaku == IDPengirimanPOProduksiBahanBaku); foreach (var item in daftarKomposisi) { TBStokBahanBaku stokBahanBaku = daftarStokBahanBaku.FirstOrDefault(data => data.IDBahanBaku == item.IDBahanBaku); StokBahanBaku_Class.UpdateBertambahBerkurang(db, pengiriman.Tanggal, pengguna.IDPengguna, stokBahanBaku, item.Kirim, stokBahanBaku.HargaBeli.Value, false, EnumJenisPerpindahanStok.PenguranganProduksi, "Production to Supplier #" + poProduksiBahanBaku.IDPOProduksiBahanBaku); TBPOProduksiBahanBakuKomposisi poProduksiBahanBakuKomposisi = poProduksiBahanBaku.TBPOProduksiBahanBakuKomposisis.FirstOrDefault(data => data.IDBahanBaku == item.IDBahanBaku); item.HargaBeli = poProduksiBahanBakuKomposisi.HargaBeli; poProduksiBahanBakuKomposisi.Kirim = poProduksiBahanBakuKomposisi.Kirim + item.Kirim; poProduksiBahanBakuKomposisi.Sisa = poProduksiBahanBakuKomposisi.Sisa - item.Kirim; } pengiriman.TBPengirimanPOProduksiBahanBakuDetails = daftarKomposisi; pengiriman.Grandtotal = pengiriman.TBPengirimanPOProduksiBahanBakuDetails.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.TBPengirimanPOProduksiBahanBakus.FirstOrDefault(item => item.IDPengirimanPOProduksiBahanBaku == IDPengirimanPOProduksiBahanBaku); if (pengiriman != null) { db.TBPengirimanPOProduksiBahanBakuDetails.DeleteAllOnSubmit(pengiriman.TBPengirimanPOProduksiBahanBakuDetails); db.TBPengirimanPOProduksiBahanBakus.DeleteOnSubmit(pengiriman); db.SubmitChanges(); IDPengirimanPOProduksiBahanBaku = string.Empty; } } } LogError_Class LogError = new LogError_Class(ex, "Penerimaan Purchase Order Bahan Baku (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"); } } }