protected void RepeaterDataPO_ItemCommand(object source, RepeaterCommandEventArgs e) { if (e.CommandName == "Hapus") { using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { TBPOProduksiProduk poProduksiProduk = db.TBPOProduksiProduks.FirstOrDefault(item => item.IDPOProduksiProduk == e.CommandArgument.ToString()); if (poProduksiProduk.IDProyeksi != null) { foreach (var item in db.TBProyeksiDetails.Where(item => item.IDProyeksi == poProduksiProduk.IDProyeksi).OrderBy(data => data.TBKombinasiProduk.Nama).ToArray()) { TBPOProduksiProdukDetail poProduksiProdukDetail = poProduksiProduk.TBPOProduksiProdukDetails.FirstOrDefault(data => data.IDKombinasiProduk == item.IDKombinasiProduk); if (poProduksiProdukDetail != null) { item.Sisa = item.Sisa + poProduksiProdukDetail.Jumlah; } } } db.TBPOProduksiProdukBiayaTambahans.DeleteAllOnSubmit(poProduksiProduk.TBPOProduksiProdukBiayaTambahans); db.TBPOProduksiProdukKomposisis.DeleteAllOnSubmit(poProduksiProduk.TBPOProduksiProdukKomposisis); db.TBPOProduksiProdukDetails.DeleteAllOnSubmit(poProduksiProduk.TBPOProduksiProdukDetails); db.TBPOProduksiProduks.DeleteOnSubmit(poProduksiProduk); 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"]; if (ViewStateListDetail.Count > 0) { string IDPOProduksiProduk = string.Empty; TBPOProduksiProduk produksiProduk = null; bool statusBerhasil = false; try { using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { if (!string.IsNullOrEmpty(Request.QueryString["edit"])) { produksiProduk = db.TBPOProduksiProduks.FirstOrDefault(item => item.IDPOProduksiProduk == Request.QueryString["edit"]); if (produksiProduk.IDProyeksi != null) { foreach (var item in db.TBProyeksiDetails.Where(item => item.IDProyeksi == produksiProduk.IDProyeksi).OrderBy(data => data.TBKombinasiProduk.Nama).ToArray()) { TBPOProduksiProdukDetail poProduksiProdukDetail = produksiProduk.TBPOProduksiProdukDetails.FirstOrDefault(data => data.IDKombinasiProduk == item.IDKombinasiProduk); if (poProduksiProdukDetail != null) { item.Sisa = item.Sisa + poProduksiProdukDetail.Jumlah; } } } db.TBPOProduksiProdukDetails.DeleteAllOnSubmit(produksiProduk.TBPOProduksiProdukDetails); produksiProduk.TBPOProduksiProdukDetails.Clear(); produksiProduk.IDTempat = pengguna.IDTempat; produksiProduk.IDPengguna = pengguna.IDPengguna; produksiProduk.EnumJenisProduksi = (int)PilihanEnumJenisProduksi.PurchaseOrder; produksiProduk.Tanggal = TextBoxTanggal.Text.ToDateTime().AddHours(DateTime.Now.Hour).AddMinutes(DateTime.Now.Minute); } else { db.Proc_InsertPOProduksiProduk(ref IDPOProduksiProduk, pengguna.IDTempat, pengguna.IDPengguna, (int)PilihanEnumJenisProduksi.PurchaseOrder, TextBoxTanggal.Text.ToDateTime().AddHours(DateTime.Now.Hour).AddMinutes(DateTime.Now.Minute)); produksiProduk = db.TBPOProduksiProduks.FirstOrDefault(item => item.IDPOProduksiProduk == IDPOProduksiProduk); } produksiProduk.IDProyeksi = TextBoxIDProyeksi.Text != string.Empty ? TextBoxIDProyeksi.Text : null; produksiProduk.IDVendor = DropDownListVendor.SelectedValue.ToInt(); produksiProduk.IDPenggunaPIC = DropDownListPenggunaPIC.SelectedValue.ToInt(); produksiProduk.IDPenggunaDP = null; produksiProduk.IDJenisPOProduksi = null; produksiProduk.IDJenisPembayaran = null; produksiProduk.TanggalDownPayment = null; produksiProduk.TanggalJatuhTempo = TextBoxTanggalJatuhTempo.Text.ToDateTime(); produksiProduk.TanggalPengiriman = TextBoxTanggalPengiriman.Text.ToDateTime(); produksiProduk.TBPOProduksiProdukDetails.AddRange(ViewStateListDetail.OrderBy(item => item.KombinasiProduk).Select(item => new TBPOProduksiProdukDetail { IDKombinasiProduk = item.IDKombinasiProduk, HargaPokokKomposisi = item.HargaPokokKomposisi, BiayaTambahan = item.BiayaTambahan, TotalHPP = item.TotalHPP, HargaVendor = item.Harga, PotonganHargaVendor = item.PotonganHarga, TotalHargaVendor = item.TotalHarga, Jumlah = (int)item.Jumlah, Sisa = (int)item.Sisa })); produksiProduk.TotalJumlah = produksiProduk.TBPOProduksiProdukDetails.Sum(item => item.Jumlah); produksiProduk.EnumJenisHPP = (int)PilihanEnumJenisHPP.HargaSupplierVendor; produksiProduk.SubtotalBiayaTambahan = produksiProduk.TBPOProduksiProdukDetails.Sum(item => (item.Jumlah * item.BiayaTambahan)); produksiProduk.SubtotalTotalHPP = produksiProduk.TBPOProduksiProdukDetails.Sum(item => (item.Jumlah * item.TotalHPP)); produksiProduk.SubtotalTotalHargaVendor = Math.Round(produksiProduk.TBPOProduksiProdukDetails.Sum(item => (item.Jumlah * item.TotalHargaVendor)), 2, MidpointRounding.AwayFromZero); produksiProduk.PotonganPOProduksiProduk = TextBoxPotonganPO.Text.ToDecimal(); produksiProduk.BiayaLainLain = TextBoxBiayaLainLain.Text.ToDecimal(); produksiProduk.PersentaseTax = HiddenFieldTax.Value.ToInt(); decimal subtotal = produksiProduk.SubtotalTotalHargaVendor.Value + produksiProduk.BiayaLainLain.Value - produksiProduk.PotonganPOProduksiProduk.Value; produksiProduk.Tax = Math.Round((subtotal * produksiProduk.PersentaseTax.Value), 2, MidpointRounding.AwayFromZero); produksiProduk.Grandtotal = subtotal + produksiProduk.Tax; produksiProduk.DownPayment = 0; produksiProduk.Keterangan = TextBoxKeterangan.Text; if (produksiProduk.IDProyeksi != null) { foreach (var item in db.TBProyeksiDetails.Where(item => item.IDProyeksi == produksiProduk.IDProyeksi).OrderBy(data => data.TBKombinasiProduk.Nama).ToArray()) { TBPOProduksiProdukDetail poProduksiProdukDetail = produksiProduk.TBPOProduksiProdukDetails.FirstOrDefault(data => data.IDKombinasiProduk == item.IDKombinasiProduk); if (poProduksiProdukDetail != null) { item.Sisa = item.Sisa - poProduksiProdukDetail.Jumlah; } } } TBHargaVendor[] daftarHargaVendor = db.TBHargaVendors.Where(item => item.IDVendor == produksiProduk.IDVendor).ToArray(); foreach (var item in ViewStateListDetail) { TBHargaVendor hargaVendor = daftarHargaVendor.FirstOrDefault(data => data.IDStokProduk == item.IDStokProduk); if (hargaVendor == null) { db.TBHargaVendors.InsertOnSubmit(new TBHargaVendor() { IDStokProduk = item.IDStokProduk, IDVendor = produksiProduk.IDVendor, Tanggal = produksiProduk.Tanggal, Harga = item.Harga }); } else { hargaVendor.Tanggal = produksiProduk.Tanggal; hargaVendor.Harga = item.Harga; } } db.SubmitChanges(); statusBerhasil = true; } } catch (Exception ex) { if (statusBerhasil != true && string.IsNullOrEmpty(Request.QueryString["edit"])) { using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { produksiProduk = db.TBPOProduksiProduks.FirstOrDefault(item => item.IDPOProduksiProduk == IDPOProduksiProduk); if (produksiProduk != null) { db.TBPOProduksiProdukDetails.DeleteAllOnSubmit(produksiProduk.TBPOProduksiProdukDetails); db.TBPOProduksiProduks.DeleteOnSubmit(produksiProduk); db.SubmitChanges(); IDPOProduksiProduk = 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 (statusBerhasil == true) { if (!string.IsNullOrEmpty(Request.QueryString["edit"])) { Response.Redirect("Detail.aspx?id=" + produksiProduk.IDPOProduksiProduk); } else { Response.Redirect("Default.aspx"); } } } } else { LabelPeringatan.Text = "Tidak ada Produk 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 IDPenerimaanPOProduksiProduk = string.Empty; string IDTransferProduk = string.Empty; TBPenerimaanPOProduksiProduk penerimaan = null; try { using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { TBPOProduksiProduk poProduksiProduk = db.TBPOProduksiProduks.FirstOrDefault(item => item.IDPOProduksiProduk == DropDownListIDPOProduksi.SelectedValue); bool penerimaanSesuai = true; EntitySet <TBPenerimaanPOProduksiProdukDetail> daftarDetail = new EntitySet <TBPenerimaanPOProduksiProdukDetail>(); int baris = 0; foreach (RepeaterItem item in RepeaterDetail.Items) { baris++; Label LabelIDKombinasiProduk = (Label)item.FindControl("LabelIDKombinasiProduk"); TextBox TextBoxSisaPesanan = (TextBox)item.FindControl("TextBoxSisaPesanan"); TextBox TextBoxJumlahDatang = (TextBox)item.FindControl("TextBoxJumlahDatang"); TextBox TextBoxJumlahTerima = (TextBox)item.FindControl("TextBoxJumlahTerima"); TextBox TextBoxJumlahTolakKeVendor = (TextBox)item.FindControl("TextBoxJumlahTolakKeVendor"); if (TextBoxJumlahDatang.Text.ToDecimal().ToInt() > 0) { if (TextBoxJumlahDatang.Text.ToDecimal().ToInt() >= TextBoxJumlahTerima.Text.ToDecimal().ToInt()) { TBPOProduksiProdukDetail poProduksiProdukDetail = poProduksiProduk.TBPOProduksiProdukDetails.FirstOrDefault(data => data.IDKombinasiProduk == LabelIDKombinasiProduk.Text.ToInt()); daftarDetail.Add(new TBPenerimaanPOProduksiProdukDetail() { IDKombinasiProduk = poProduksiProdukDetail.IDKombinasiProduk, BiayaTambahan = poProduksiProdukDetail.BiayaTambahan, HargaPokokKomposisi = poProduksiProdukDetail.HargaPokokKomposisi, TotalHPP = poProduksiProdukDetail.TotalHPP, HargaVendor = poProduksiProdukDetail.HargaVendor, PotonganHargaVendor = poProduksiProdukDetail.PotonganHargaVendor, TotalHargaVendor = poProduksiProdukDetail.TotalHargaVendor, Datang = TextBoxJumlahDatang.Text.ToDecimal().ToInt(), Diterima = TextBoxJumlahTerima.Text.ToDecimal().ToInt(), TolakKeVendor = TextBoxJumlahTolakKeVendor.Text.ToDecimal().ToInt(), Sisa = TextBoxJumlahTerima.Text.ToDecimal().ToInt() <= TextBoxSisaPesanan.Text.ToDecimal().ToInt() ? TextBoxSisaPesanan.Text.ToDecimal().ToInt() - TextBoxJumlahTerima.Text.ToDecimal().ToInt() : 0 }); } else { LabelPeringatan.Text = "Jumlah diterima lebih besar dari jumlah datang, baris ke-" + baris.ToString(); peringatan.Visible = true; penerimaanSesuai = false; break; } } } if (penerimaanSesuai == true) { StokProduk_Class StokProduk_Class = new StokProduk_Class(db); TBStokProduk[] daftarStokProduk = db.TBStokProduks.Where(item => item.IDTempat == Pengguna.IDTempat).ToArray(); db.Proc_InsertPenerimaanPOProduksiProduk(ref IDPenerimaanPOProduksiProduk, poProduksiProduk.IDPOProduksiProduk, poProduksiProduk.IDVendor, Pengguna.IDTempat, Pengguna.IDPengguna, TextBoxTanggalPenerimaan.Text.ToDateTime().AddHours(DateTime.Now.Hour).AddMinutes(DateTime.Now.Minute)); penerimaan = db.TBPenerimaanPOProduksiProduks.FirstOrDefault(item => item.IDPenerimaanPOProduksiProduk == IDPenerimaanPOProduksiProduk); penerimaan.IDPenggunaTerima = penerimaan.IDPenggunaDatang; penerimaan.TanggalTerima = penerimaan.TanggalDatang; penerimaan.TBPenerimaanPOProduksiProdukDetails = daftarDetail; penerimaan.TotalDatang = penerimaan.TBPenerimaanPOProduksiProdukDetails.Sum(item => item.Datang); penerimaan.TotalDiterima = penerimaan.TBPenerimaanPOProduksiProdukDetails.Sum(item => item.Diterima); penerimaan.TotalTolakKeVendor = penerimaan.TBPenerimaanPOProduksiProdukDetails.Sum(item => item.TolakKeVendor); penerimaan.TotalSisa = penerimaan.TBPenerimaanPOProduksiProdukDetails.Sum(item => item.Sisa); penerimaan.SubtotalBiayaTambahan = penerimaan.TBPenerimaanPOProduksiProdukDetails.Sum(item => item.BiayaTambahan * item.Diterima); penerimaan.SubtotalTotalHPP = penerimaan.TBPenerimaanPOProduksiProdukDetails.Sum(item => item.TotalHPP * item.Diterima); penerimaan.SubtotalTotalHargaVendor = penerimaan.TBPenerimaanPOProduksiProdukDetails.Sum(item => item.TotalHargaVendor * item.Diterima); penerimaan.Grandtotal = penerimaan.SubtotalTotalHPP + penerimaan.SubtotalTotalHargaVendor; penerimaan.EnumStatusPenerimaan = (int)PilihanEnumStatusPenerimaanPO.Terima; penerimaan.Keterangan = TextBoxKeterangan.Text; foreach (var item in penerimaan.TBPenerimaanPOProduksiProdukDetails) { var POProduksiProdukDetail = poProduksiProduk.TBPOProduksiProdukDetails.FirstOrDefault(data => data.IDKombinasiProduk == item.IDKombinasiProduk); POProduksiProdukDetail.Sisa = item.Sisa; TBStokProduk StokProduk = daftarStokProduk.FirstOrDefault(data => data.IDTempat == Pengguna.IDTempat && data.IDKombinasiProduk == item.IDKombinasiProduk); StokProduk_Class.PengaturanJumlahStokPenerimaanPOProduk(penerimaan.TanggalTerima.Value, Pengguna.IDPengguna, Pengguna.IDTempat, StokProduk, item.TotalHargaVendor, item.Datang, item.TolakKeVendor, item.TBPenerimaanPOProduksiProduk.TBPOProduksiProduk.IDPOProduksiProduk + " - #" + item.TBPenerimaanPOProduksiProduk.IDPenerimaanPOProduksiProduk); } poProduksiProduk.TBPenerimaanPOProduksiProduks.Add(penerimaan); #region arie - INPUT JURNAL ////////////var KonfigurasiAkun = db.TBKonfigurasiAkuns.Where(item => item.IDTempat == 1); ////////////if (KonfigurasiAkun != null) ////////////{ //////////// #region Pembuatan Jurnal Penerimaan PO YG Belum Bayar //////////// TBJurnal Jurnal = new TBJurnal //////////// { //////////// IDTempat = Pengguna.IDTempat, //////////// Tanggal = penerimaan.TanggalTerima, //////////// Keterangan = penerimaan.Keterangan, //////////// IDPengguna = penerimaan.IDPenggunaTerima, //////////// Referensi = penerimaan.IDPenerimaanPOProduksiProduk //////////// }; //////////// #region JOURNAL ENTRY //////////// //DEBIT : PERSEDIAAN //////////// //KREDIT : HUTANG DAGANG //////////// //PERSEDIAAN //////////// Jurnal.TBJurnalDetails.Add(new TBJurnalDetail //////////// { //////////// IDAkun = KonfigurasiAkun.FirstOrDefault(item => item.Nama == "PERSEDIAAN").IDAkun, //////////// Debit = penerimaan.Grandtotal, //////////// Kredit = 0 //////////// }); //////////// //HUTANG DAGANG //////////// Jurnal.TBJurnalDetails.Add(new TBJurnalDetail //////////// { //////////// IDAkun = KonfigurasiAkun.FirstOrDefault(item => item.Nama == "HUTANG DAGANG").IDAkun, //////////// Debit = 0, //////////// Kredit = penerimaan.Grandtotal //////////// }); //////////// #endregion //////////// db.TBJurnals.InsertOnSubmit(Jurnal); //////////// #endregion ////////////} #endregion db.SubmitChanges(); statusBerhasil = true; } else { peringatan.Visible = true; } } } catch (Exception ex) { if (statusBerhasil != true) { using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { penerimaan = db.TBPenerimaanPOProduksiProduks.FirstOrDefault(item => item.IDPenerimaanPOProduksiProduk == IDPenerimaanPOProduksiProduk); if (penerimaan != null) { db.TBPenerimaanPOProduksiProdukDetails.DeleteAllOnSubmit(penerimaan.TBPenerimaanPOProduksiProdukDetails); db.TBPenerimaanPOProduksiProduks.DeleteOnSubmit(penerimaan); db.SubmitChanges(); IDPenerimaanPOProduksiProduk = 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"); } } }
protected void ButtonSimpan_Click(object sender, EventArgs e) { if (Page.IsValid) { 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 IDPOProduksiProduk = string.Empty; TBPOProduksiProduk produksiProduk = null; bool statusBerhasil = false; try { using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { peringatan.Visible = false; if (!string.IsNullOrEmpty(Request.QueryString["edit"])) { produksiProduk = db.TBPOProduksiProduks.FirstOrDefault(item => item.IDPOProduksiProduk == Request.QueryString["edit"]); if (produksiProduk.IDProyeksi != null) { foreach (var item in db.TBProyeksiDetails.Where(item => item.IDProyeksi == produksiProduk.IDProyeksi).OrderBy(data => data.TBKombinasiProduk.Nama).ToArray()) { TBPOProduksiProdukDetail poProduksiProdukDetail = produksiProduk.TBPOProduksiProdukDetails.FirstOrDefault(data => data.IDKombinasiProduk == item.IDKombinasiProduk); if (poProduksiProdukDetail != null) { item.Sisa = item.Sisa + poProduksiProdukDetail.Jumlah; } } } db.TBPOProduksiProdukDetails.DeleteAllOnSubmit(produksiProduk.TBPOProduksiProdukDetails); db.TBPOProduksiProdukKomposisis.DeleteAllOnSubmit(produksiProduk.TBPOProduksiProdukKomposisis); db.TBPOProduksiProdukBiayaTambahans.DeleteAllOnSubmit(produksiProduk.TBPOProduksiProdukBiayaTambahans); produksiProduk.TBPOProduksiProdukDetails.Clear(); produksiProduk.TBPOProduksiProdukKomposisis.Clear(); produksiProduk.TBPOProduksiProdukBiayaTambahans.Clear(); produksiProduk.IDTempat = pengguna.IDTempat; produksiProduk.IDPengguna = pengguna.IDPengguna; produksiProduk.EnumJenisProduksi = (int)PilihanEnumJenisProduksi.ProduksiSendiri; produksiProduk.Tanggal = TextBoxTanggal.Text.ToDateTime().AddHours(DateTime.Now.Hour).AddMinutes(DateTime.Now.Minute); } else { db.Proc_InsertPOProduksiProduk(ref IDPOProduksiProduk, pengguna.IDTempat, pengguna.IDPengguna, (int)PilihanEnumJenisProduksi.ProduksiSendiri, TextBoxTanggal.Text.ToDateTime().AddHours(DateTime.Now.Hour).AddMinutes(DateTime.Now.Minute)); produksiProduk = db.TBPOProduksiProduks.FirstOrDefault(item => item.IDPOProduksiProduk == IDPOProduksiProduk); } produksiProduk.IDProyeksi = TextBoxIDProyeksi.Text != string.Empty ? TextBoxIDProyeksi.Text : null; produksiProduk.IDVendor = null; produksiProduk.IDPenggunaPIC = DropDownListPenggunaPIC.SelectedValue.ToInt(); produksiProduk.IDPenggunaDP = null; produksiProduk.IDJenisPOProduksi = null; produksiProduk.IDJenisPembayaran = null; produksiProduk.TanggalDownPayment = null; produksiProduk.TanggalJatuhTempo = null; produksiProduk.TanggalPengiriman = TextBoxTanggalPengiriman.Text.ToDateTime(); produksiProduk.TBPOProduksiProdukDetails.AddRange(ViewStateListDetail.Select(item => new TBPOProduksiProdukDetail { IDKombinasiProduk = item.IDKombinasiProduk, HargaPokokKomposisi = item.HargaPokokKomposisi, BiayaTambahan = item.BiayaTambahan, TotalHPP = item.TotalHPP, HargaVendor = item.Harga, PotonganHargaVendor = item.PotonganHarga, TotalHargaVendor = item.TotalHarga, Jumlah = (int)item.Jumlah, Sisa = (int)item.Sisa })); produksiProduk.TotalJumlah = produksiProduk.TBPOProduksiProdukDetails.Sum(item => item.Jumlah); produksiProduk.EnumJenisHPP = RadioButtonListStatusHPP.SelectedValue.ToInt(); produksiProduk.SubtotalBiayaTambahan = produksiProduk.TBPOProduksiProdukDetails.Sum(item => (item.Jumlah * item.BiayaTambahan)); produksiProduk.SubtotalTotalHPP = produksiProduk.TBPOProduksiProdukDetails.Sum(item => (item.Jumlah * item.TotalHPP)); produksiProduk.SubtotalTotalHargaVendor = produksiProduk.TBPOProduksiProdukDetails.Sum(item => (item.Jumlah * item.TotalHargaVendor)); produksiProduk.PotonganPOProduksiProduk = 0; produksiProduk.BiayaLainLain = 0; produksiProduk.PersentaseTax = 0; produksiProduk.Tax = 0; produksiProduk.Grandtotal = produksiProduk.SubtotalTotalHPP; produksiProduk.DownPayment = 0; produksiProduk.Keterangan = TextBoxKeterangan.Text; produksiProduk.TBPOProduksiProdukKomposisis.AddRange(ViewStateListKomposisi.OrderBy(item => item.BahanBaku).GroupBy(item => new { item.IDBahanBaku, item.IDSatuan, item.HargaBeli }) .Select(item => new TBPOProduksiProdukKomposisi { 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) })); produksiProduk.TBPOProduksiProdukBiayaTambahans.AddRange(ViewStateListBiayaTambahan.OrderBy(item => item.Nama).GroupBy(item => new { item.IDJenisBiayaProduksi }) .Select(item => new TBPOProduksiProdukBiayaTambahan { IDJenisBiayaProduksi = item.Key.IDJenisBiayaProduksi, Nominal = item.Sum(x => x.SubtotalBiaya) })); if (produksiProduk.IDProyeksi != null) { foreach (var item in db.TBProyeksiDetails.Where(item => item.IDProyeksi == produksiProduk.IDProyeksi).OrderBy(data => data.TBKombinasiProduk.Nama).ToArray()) { TBPOProduksiProdukDetail poProduksiProdukDetail = produksiProduk.TBPOProduksiProdukDetails.FirstOrDefault(data => data.IDKombinasiProduk == item.IDKombinasiProduk); if (poProduksiProdukDetail != null) { item.Sisa = item.Sisa - poProduksiProdukDetail.Jumlah; } } } db.SubmitChanges(); statusBerhasil = true; } } catch (Exception ex) { if (statusBerhasil != true && string.IsNullOrEmpty(Request.QueryString["edit"])) { using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { produksiProduk = db.TBPOProduksiProduks.FirstOrDefault(item => item.IDPOProduksiProduk == IDPOProduksiProduk); if (produksiProduk != null) { db.TBPOProduksiProdukDetails.DeleteAllOnSubmit(produksiProduk.TBPOProduksiProdukDetails); db.TBPOProduksiProdukKomposisis.DeleteAllOnSubmit(produksiProduk.TBPOProduksiProdukKomposisis); db.TBPOProduksiProdukBiayaTambahans.DeleteAllOnSubmit(produksiProduk.TBPOProduksiProdukBiayaTambahans); db.TBPOProduksiProduks.DeleteOnSubmit(produksiProduk); db.SubmitChanges(); IDPOProduksiProduk = string.Empty; } } } LogError_Class LogError = new LogError_Class(ex, "Produksi Produk 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=" + produksiProduk.IDPOProduksiProduk); } else { Response.Redirect("Default.aspx"); } } } } else { LabelPeringatan.Text = "Tidak ada Produk yang dipilih"; peringatan.Visible = true; } } }