protected void RepeaterDataPO_ItemCommand(object source, RepeaterCommandEventArgs e) { using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { if (e.CommandName == "Hapus") { TBPOProduksiBahanBaku poProduksiBahanBaku = db.TBPOProduksiBahanBakus.FirstOrDefault(item => item.IDPOProduksiBahanBaku == e.CommandArgument.ToString()); if (poProduksiBahanBaku.IDProyeksi != null) { foreach (var item in db.TBProyeksiKomposisis.Where(item => item.IDProyeksi == poProduksiBahanBaku.IDProyeksi && item.LevelProduksi == Request.QueryString["urutan"].ToInt() && item.BahanBakuDasar == false).OrderBy(data => data.TBBahanBaku.Nama).ToArray()) { TBPOProduksiBahanBakuDetail poProduksiBahanBakuDetail = poProduksiBahanBaku.TBPOProduksiBahanBakuDetails.FirstOrDefault(data => data.IDBahanBaku == item.IDBahanBaku); if (poProduksiBahanBakuDetail != null) { item.Sisa = item.Sisa + (poProduksiBahanBakuDetail.Jumlah * poProduksiBahanBakuDetail.TBBahanBaku.Konversi.Value); } } } db.TBPOProduksiBahanBakuBiayaTambahans.DeleteAllOnSubmit(poProduksiBahanBaku.TBPOProduksiBahanBakuBiayaTambahans); db.TBPOProduksiBahanBakuKomposisis.DeleteAllOnSubmit(poProduksiBahanBaku.TBPOProduksiBahanBakuKomposisis); db.TBPOProduksiBahanBakuDetails.DeleteAllOnSubmit(poProduksiBahanBaku.TBPOProduksiBahanBakuDetails); db.TBPOProduksiBahanBakus.DeleteOnSubmit(poProduksiBahanBaku); db.SubmitChanges(); LoadDataPO(db); } } }
protected void ButtonSimpan_Click(object sender, EventArgs e) { if (Page.IsValid) { peringatan.Visible = false; PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"]; List <POProduksiDetail_Model> ViewStateListDetail = (List <POProduksiDetail_Model>)ViewState["ViewStateListDetail"]; List <POProduksiKomposisi_Model> ViewStateListKomposisi = (List <POProduksiKomposisi_Model>)ViewState["ViewStateListKomposisi"]; List <POProduksiBiayaTambahan_Model> ViewStateListBiayaTambahan = (List <POProduksiBiayaTambahan_Model>)ViewState["ViewStateListBiayaTambahan"]; if (ViewStateListDetail.Count > 0) { string IDPOProduksiBahanBaku = string.Empty; TBPOProduksiBahanBaku produksiBahanBaku = null; bool statusBerhasil = false; try { using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { if (!string.IsNullOrEmpty(Request.QueryString["edit"])) { produksiBahanBaku = db.TBPOProduksiBahanBakus.FirstOrDefault(item => item.IDPOProduksiBahanBaku == Request.QueryString["edit"]); if (produksiBahanBaku.IDProyeksi != null) { foreach (var item in db.TBProyeksiKomposisis.Where(item => item.IDProyeksi == produksiBahanBaku.IDProyeksi && item.LevelProduksi == produksiBahanBaku.LevelProduksi && item.BahanBakuDasar == false).OrderBy(data => data.TBBahanBaku.Nama).ToArray()) { TBPOProduksiBahanBakuDetail poProduksiBahanBakuDetail = produksiBahanBaku.TBPOProduksiBahanBakuDetails.FirstOrDefault(data => data.IDBahanBaku == item.IDBahanBaku); if (poProduksiBahanBakuDetail != null) { item.Sisa = item.Sisa + (poProduksiBahanBakuDetail.Jumlah * poProduksiBahanBakuDetail.TBBahanBaku.Konversi.Value); } } } db.TBPOProduksiBahanBakuDetails.DeleteAllOnSubmit(produksiBahanBaku.TBPOProduksiBahanBakuDetails); db.TBPOProduksiBahanBakuKomposisis.DeleteAllOnSubmit(produksiBahanBaku.TBPOProduksiBahanBakuKomposisis); db.TBPOProduksiBahanBakuBiayaTambahans.DeleteAllOnSubmit(produksiBahanBaku.TBPOProduksiBahanBakuBiayaTambahans); produksiBahanBaku.TBPOProduksiBahanBakuDetails.Clear(); produksiBahanBaku.TBPOProduksiBahanBakuKomposisis.Clear(); produksiBahanBaku.TBPOProduksiBahanBakuBiayaTambahans.Clear(); produksiBahanBaku.IDTempat = pengguna.IDTempat; produksiBahanBaku.IDPengguna = pengguna.IDPengguna; produksiBahanBaku.EnumJenisProduksi = (int)PilihanEnumJenisProduksi.ProduksiSendiri; produksiBahanBaku.Tanggal = TextBoxTanggal.Text.ToDateTime().AddHours(DateTime.Now.Hour).AddMinutes(DateTime.Now.Minute); } else { db.Proc_InsertPOProduksiBahanBaku(ref IDPOProduksiBahanBaku, pengguna.IDTempat, pengguna.IDPengguna, (int)PilihanEnumJenisProduksi.ProduksiSendiri, TextBoxTanggal.Text.ToDateTime().AddHours(DateTime.Now.Hour).AddMinutes(DateTime.Now.Minute)); produksiBahanBaku = db.TBPOProduksiBahanBakus.FirstOrDefault(item => item.IDPOProduksiBahanBaku == IDPOProduksiBahanBaku); } produksiBahanBaku.IDProyeksi = TextBoxIDProyeksi.Text != string.Empty ? TextBoxIDProyeksi.Text : null; produksiBahanBaku.IDSupplier = null; produksiBahanBaku.IDPenggunaPIC = DropDownListPenggunaPIC.SelectedValue.ToInt(); produksiBahanBaku.IDPenggunaDP = null; produksiBahanBaku.IDJenisPOProduksi = null; produksiBahanBaku.IDJenisPembayaran = null; if (!string.IsNullOrEmpty(Request.QueryString["proy"])) { produksiBahanBaku.LevelProduksi = Request.QueryString["level"].ToInt(); } else if (string.IsNullOrEmpty(Request.QueryString["proy"]) && string.IsNullOrEmpty(Request.QueryString["edit"])) { produksiBahanBaku.LevelProduksi = null; } produksiBahanBaku.TanggalDownPayment = null; produksiBahanBaku.TanggalJatuhTempo = null; produksiBahanBaku.TanggalPengiriman = TextBoxTanggalPengiriman.Text.ToDateTime(); produksiBahanBaku.TBPOProduksiBahanBakuDetails.AddRange(ViewStateListDetail.Select(item => new TBPOProduksiBahanBakuDetail { IDBahanBaku = item.IDBahanBaku, IDSatuan = item.IDSatuan, HargaPokokKomposisi = item.HargaPokokKomposisi, BiayaTambahan = item.BiayaTambahan, TotalHPP = item.TotalHPP, HargaSupplier = item.Harga, PotonganHargaSupplier = item.PotonganHarga, TotalHargaSupplier = item.TotalHarga, Jumlah = item.Jumlah, Sisa = item.Sisa })); produksiBahanBaku.TotalJumlah = produksiBahanBaku.TBPOProduksiBahanBakuDetails.Sum(item => item.Jumlah); produksiBahanBaku.EnumJenisHPP = RadioButtonListStatusHPP.SelectedValue.ToInt(); produksiBahanBaku.SubtotalBiayaTambahan = produksiBahanBaku.TBPOProduksiBahanBakuDetails.Sum(item => (item.Jumlah * item.BiayaTambahan)); produksiBahanBaku.SubtotalTotalHPP = produksiBahanBaku.TBPOProduksiBahanBakuDetails.Sum(item => (item.Jumlah * item.TotalHPP)); produksiBahanBaku.SubtotalTotalHargaSupplier = produksiBahanBaku.TBPOProduksiBahanBakuDetails.Sum(item => (item.Jumlah * item.TotalHargaSupplier)); produksiBahanBaku.PotonganPOProduksiBahanBaku = 0; produksiBahanBaku.BiayaLainLain = 0; produksiBahanBaku.PersentaseTax = 0; produksiBahanBaku.Tax = 0; produksiBahanBaku.Grandtotal = produksiBahanBaku.SubtotalTotalHPP; produksiBahanBaku.DownPayment = 0; produksiBahanBaku.Keterangan = TextBoxKeterangan.Text; produksiBahanBaku.TBPOProduksiBahanBakuKomposisis.AddRange(ViewStateListKomposisi.OrderBy(item => item.BahanBaku).GroupBy(item => new { item.IDBahanBaku, item.IDSatuan, item.HargaBeli }) .Select(item => new TBPOProduksiBahanBakuKomposisi { IDBahanBaku = item.Key.IDBahanBaku, IDSatuan = item.Key.IDSatuan, HargaBeli = item.Key.HargaBeli, Kebutuhan = item.Sum(x => x.JumlahKebutuhan), Kirim = 0, Sisa = item.Sum(x => x.JumlahKebutuhan) })); produksiBahanBaku.TBPOProduksiBahanBakuBiayaTambahans.AddRange(ViewStateListBiayaTambahan.OrderBy(item => item.Nama).GroupBy(item => new { item.IDJenisBiayaProduksi }) .Select(item => new TBPOProduksiBahanBakuBiayaTambahan { IDJenisBiayaProduksi = item.Key.IDJenisBiayaProduksi, Nominal = item.Sum(x => x.SubtotalBiaya) })); if (produksiBahanBaku.IDProyeksi != null) { foreach (var item in db.TBProyeksiKomposisis.Where(item => item.IDProyeksi == produksiBahanBaku.IDProyeksi && item.LevelProduksi == produksiBahanBaku.LevelProduksi && item.BahanBakuDasar == false).OrderBy(data => data.TBBahanBaku.Nama).ToArray()) { TBPOProduksiBahanBakuDetail poProduksiBahanBakuDetail = produksiBahanBaku.TBPOProduksiBahanBakuDetails.FirstOrDefault(data => data.IDBahanBaku == item.IDBahanBaku); if (poProduksiBahanBakuDetail != null) { item.Sisa = item.Sisa - (poProduksiBahanBakuDetail.Jumlah * poProduksiBahanBakuDetail.TBBahanBaku.Konversi.Value); } } } db.SubmitChanges(); statusBerhasil = true; } } catch (Exception ex) { if (statusBerhasil != true && string.IsNullOrEmpty(Request.QueryString["edit"])) { using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { produksiBahanBaku = db.TBPOProduksiBahanBakus.FirstOrDefault(item => item.IDPOProduksiBahanBaku == IDPOProduksiBahanBaku); if (produksiBahanBaku != null) { db.TBPOProduksiBahanBakuDetails.DeleteAllOnSubmit(produksiBahanBaku.TBPOProduksiBahanBakuDetails); db.TBPOProduksiBahanBakuKomposisis.DeleteAllOnSubmit(produksiBahanBaku.TBPOProduksiBahanBakuKomposisis); db.TBPOProduksiBahanBakuBiayaTambahans.DeleteAllOnSubmit(produksiBahanBaku.TBPOProduksiBahanBakuBiayaTambahans); db.TBPOProduksiBahanBakus.DeleteOnSubmit(produksiBahanBaku); db.SubmitChanges(); IDPOProduksiBahanBaku = string.Empty; } } } LogError_Class LogError = new LogError_Class(ex, "Produksi Bahan Baku Sendiri (ButtonSimpan_Click by : " + pengguna.NamaLengkap + ")"); LabelPeringatan.Text = "Terjadi kesalahan, silahkan cek kembali data yang diinputkan"; peringatan.Visible = true; } finally { if (statusBerhasil == true) { if (!string.IsNullOrEmpty(Request.QueryString["edit"])) { Response.Redirect("Detail.aspx?id=" + produksiBahanBaku.IDPOProduksiBahanBaku); } else { Response.Redirect("Default.aspx"); } } } } else { LabelPeringatan.Text = "Tidak ada Bahan Baku yang dipilih"; peringatan.Visible = true; } } }
protected void ButtonTerima_Click(object sender, EventArgs e) { peringatan.Visible = false; bool statusBerhasil = false; PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"]; string IDPenerimaanPOProduksiBahanBaku = string.Empty; string IDTransferBahanBaku = string.Empty; TBPenerimaanPOProduksiBahanBaku penerimaan = null; try { using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { TBPOProduksiBahanBaku poProduksiBahanBaku = db.TBPOProduksiBahanBakus.FirstOrDefault(item => item.IDPOProduksiBahanBaku == DropDownListIDPOProduksi.SelectedValue); bool penerimaanSesuai = true; EntitySet <TBPenerimaanPOProduksiBahanBakuDetail> daftarDetail = new EntitySet <TBPenerimaanPOProduksiBahanBakuDetail>(); int baris = 0; foreach (RepeaterItem item in RepeaterDetail.Items) { baris++; Label LabelIDBahanBaku = (Label)item.FindControl("LabelIDBahanBaku"); TextBox TextBoxSisaPesanan = (TextBox)item.FindControl("TextBoxSisaPesanan"); TextBox TextBoxJumlahDatang = (TextBox)item.FindControl("TextBoxJumlahDatang"); TextBox TextBoxJumlahTerima = (TextBox)item.FindControl("TextBoxJumlahTerima"); TextBox TextBoxJumlahTolakKeSupplier = (TextBox)item.FindControl("TextBoxJumlahTolakKeSupplier"); if (TextBoxJumlahDatang.Text.ToDecimal() > 0) { if (TextBoxJumlahDatang.Text.ToDecimal() >= TextBoxJumlahTerima.Text.ToDecimal()) { TBPOProduksiBahanBakuDetail poProduksiBahanBakuDetail = poProduksiBahanBaku.TBPOProduksiBahanBakuDetails.FirstOrDefault(data => data.IDBahanBaku == LabelIDBahanBaku.Text.ToInt()); daftarDetail.Add(new TBPenerimaanPOProduksiBahanBakuDetail() { TBBahanBaku = poProduksiBahanBakuDetail.TBBahanBaku, TBSatuan = poProduksiBahanBakuDetail.TBSatuan, BiayaTambahan = poProduksiBahanBakuDetail.BiayaTambahan, HargaPokokKomposisi = poProduksiBahanBakuDetail.HargaPokokKomposisi, TotalHPP = poProduksiBahanBakuDetail.TotalHPP, HargaSupplier = poProduksiBahanBakuDetail.HargaSupplier, PotonganHargaSupplier = poProduksiBahanBakuDetail.PotonganHargaSupplier, TotalHargaSupplier = poProduksiBahanBakuDetail.TotalHargaSupplier, Datang = TextBoxJumlahDatang.Text.ToDecimal(), Diterima = TextBoxJumlahTerima.Text.ToDecimal(), TolakKeSupplier = TextBoxJumlahTolakKeSupplier.Text.ToDecimal(), Sisa = TextBoxJumlahTerima.Text.ToDecimal() <= TextBoxSisaPesanan.Text.ToDecimal() ? TextBoxSisaPesanan.Text.ToDecimal() - TextBoxJumlahTerima.Text.ToDecimal() : 0 }); } else { LabelPeringatan.Text = "Jumlah diterima lebih besar dari jumlah datang, baris ke-" + baris.ToString(); peringatan.Visible = true; penerimaanSesuai = false; break; } } } if (penerimaanSesuai == true) { TBStokBahanBaku[] daftarStokBahanBaku = db.TBStokBahanBakus.Where(data => data.IDTempat == pengguna.IDTempat).ToArray(); db.Proc_InsertPenerimaanPOProduksiBahanBaku(ref IDPenerimaanPOProduksiBahanBaku, poProduksiBahanBaku.IDPOProduksiBahanBaku, poProduksiBahanBaku.IDSupplier, pengguna.IDTempat, pengguna.IDPengguna, DateTime.Parse(TextBoxTanggalPenerimaan.Text).AddHours(DateTime.Now.Hour).AddMinutes(DateTime.Now.Minute)); penerimaan = db.TBPenerimaanPOProduksiBahanBakus.FirstOrDefault(item => item.IDPenerimaanPOProduksiBahanBaku == IDPenerimaanPOProduksiBahanBaku); penerimaan.IDPenggunaTerima = penerimaan.IDPenggunaDatang; penerimaan.TanggalTerima = penerimaan.TanggalDatang; penerimaan.TBPenerimaanPOProduksiBahanBakuDetails = daftarDetail; penerimaan.TotalDatang = penerimaan.TBPenerimaanPOProduksiBahanBakuDetails.Sum(item => item.Datang); penerimaan.TotalDiterima = penerimaan.TBPenerimaanPOProduksiBahanBakuDetails.Sum(item => item.Diterima); penerimaan.TotalTolakKeSupplier = penerimaan.TBPenerimaanPOProduksiBahanBakuDetails.Sum(item => item.TolakKeSupplier); penerimaan.TotalSisa = penerimaan.TBPenerimaanPOProduksiBahanBakuDetails.Sum(item => item.Sisa); penerimaan.SubtotalBiayaTambahan = penerimaan.TBPenerimaanPOProduksiBahanBakuDetails.Sum(item => item.BiayaTambahan * item.Diterima); penerimaan.SubtotalTotalHPP = penerimaan.TBPenerimaanPOProduksiBahanBakuDetails.Sum(item => item.TotalHPP * item.Diterima); penerimaan.SubtotalTotalHargaSupplier = penerimaan.TBPenerimaanPOProduksiBahanBakuDetails.Sum(item => item.TotalHargaSupplier * item.Diterima); penerimaan.Grandtotal = penerimaan.SubtotalTotalHPP + penerimaan.SubtotalTotalHargaSupplier; penerimaan.EnumStatusPenerimaan = (int)PilihanEnumStatusPenerimaanPO.Terima; penerimaan.Keterangan = TextBoxKeterangan.Text; foreach (var item in penerimaan.TBPenerimaanPOProduksiBahanBakuDetails) { TBPOProduksiBahanBakuDetail poProduksiBahanBakuDetail = poProduksiBahanBaku.TBPOProduksiBahanBakuDetails.FirstOrDefault(data => data.IDBahanBaku == item.IDBahanBaku); poProduksiBahanBakuDetail.Sisa = item.Sisa; TBStokBahanBaku stokBahanBaku = daftarStokBahanBaku.FirstOrDefault(data => data.IDBahanBaku == item.IDBahanBaku); StokBahanBaku_Class.PengaturanJumlahStokPenerimaanPOBahanBaku(db, penerimaan.TanggalTerima.Value, pengguna.IDPengguna, pengguna.IDTempat, stokBahanBaku, (item.TotalHPP + item.TotalHargaSupplier), item.TBSatuan, item.Datang, item.TolakKeSupplier, item.TBPenerimaanPOProduksiBahanBaku.TBPOProduksiBahanBaku.IDPOProduksiBahanBaku + " - #" + item.TBPenerimaanPOProduksiBahanBaku.IDPenerimaanPOProduksiBahanBaku); } poProduksiBahanBaku.TBPenerimaanPOProduksiBahanBakus.Add(penerimaan); db.SubmitChanges(); statusBerhasil = true; } else { peringatan.Visible = true; } } } catch (Exception ex) { if (statusBerhasil != true) { using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { penerimaan = db.TBPenerimaanPOProduksiBahanBakus.FirstOrDefault(item => item.IDPenerimaanPOProduksiBahanBaku == IDPenerimaanPOProduksiBahanBaku); if (penerimaan != null) { db.TBPenerimaanPOProduksiBahanBakuDetails.DeleteAllOnSubmit(penerimaan.TBPenerimaanPOProduksiBahanBakuDetails); db.TBPenerimaanPOProduksiBahanBakus.DeleteOnSubmit(penerimaan); db.SubmitChanges(); IDPenerimaanPOProduksiBahanBaku = string.Empty; } } } LogError_Class LogError = new LogError_Class(ex, "Penerimaan Produksi Ke Supplier (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"); } } }