public static void Update(DataClassesDatabaseDataContext db, TBVendor vendor, TBStokProduk stokProduk, decimal harga) { if (vendor != null) { TBHargaVendor hargaVendor = db.TBHargaVendors.FirstOrDefault(item => item.TBVendor == vendor && item.TBStokProduk == stokProduk); if (hargaVendor == null) { hargaVendor = new TBHargaVendor { TBVendor = vendor, Tanggal = DateTime.Now, Harga = harga, TBStokProduk = stokProduk }; db.TBHargaVendors.InsertOnSubmit(hargaVendor); } else { hargaVendor.Tanggal = DateTime.Now; hargaVendor.Harga = harga; } } }
private void CariHargaSupplierVendor() { TextBoxHargaVendor.Text = "0"; TextBoxJumlah.Text = "1"; TextBoxPotonganHargaVendor.Text = "0"; using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { TBHargaVendor hargaVendor = db.TBHargaVendors.FirstOrDefault(item => item.IDVendor == DropDownListVendor.SelectedValue.ToInt() && item.IDStokProduk == DropDownListStokProduk.SelectedValue.ToInt()); if (hargaVendor != null) { TextBoxHargaVendor.Text = hargaVendor.Harga.ToFormatHarga(); } } }
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; } } }