protected void Repeater_ItemCommand(object source, RepeaterCommandEventArgs e) { if (e.CommandName == "Batal") { PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"]; using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { var TransferBahanBaku = db.TBTransferBahanBakus.FirstOrDefault(item => item.IDTransferBahanBaku == e.CommandArgument.ToString()); if (TransferBahanBaku != null) { TBStokBahanBaku[] daftarStokBahanBaku = db.TBStokBahanBakus.Where(item => item.IDTempat == pengguna.IDTempat).ToArray(); foreach (var item in TransferBahanBaku.TBTransferBahanBakuDetails.ToArray()) StokBahanBaku_Class.UpdateBertambahBerkurang(db, DateTime.Now, pengguna.IDPengguna, daftarStokBahanBaku.FirstOrDefault(data => data.IDBahanBaku == item.IDBahanBaku), item.Jumlah, item.HargaBeli, true, EnumJenisPerpindahanStok.TransferBatal, "Transfer Batal #" + TransferBahanBaku.IDTransferBahanBaku); TransferBahanBaku.EnumJenisTransfer = (int)PilihanJenisTransfer.TransferBatal; db.SubmitChanges(); } } LoadData(); } else if (e.CommandName == "TransferUlang") Response.Redirect("Pengaturan.aspx?id=" + e.CommandArgument); }
protected void RepeaterData_ItemCommand(object source, RepeaterCommandEventArgs e) { if (e.CommandName == "Batal") { using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"]; TBPOProduksiBahanBakuRetur poProduksiBahanBakuRetur = db.TBPOProduksiBahanBakuReturs.FirstOrDefault(item => item.IDPOProduksiBahanBakuRetur == e.CommandArgument.ToString()); poProduksiBahanBakuRetur.EnumStatusRetur = (int)EnumStatusPORetur.Batal; foreach (var item in poProduksiBahanBakuRetur.TBPOProduksiBahanBakuReturDetails) { StokBahanBaku_Class.UpdateBertambahBerkurang( db: db, tanggal: DateTime.Now, idPengguna: pengguna.IDPengguna, stokBahanBaku: item.TBStokBahanBaku, jumlahStok: item.Jumlah.Value, hargaBeli: item.HargaBeli.Value, satuanBesar: true, enumJenisPerpindahanStok: EnumJenisPerpindahanStok.TransaksiBatal, keterangan: "(" + item.TBStokBahanBaku.TBBahanBaku.Nama + ") Pembatalan Retur PO #" + e.CommandArgument.ToString()); } db.SubmitChanges(); LoadData(); } } }
protected void RepeaterTransferBahanBaku_ItemCommand(object source, RepeaterCommandEventArgs e) { if (e.CommandName == "Hapus") { using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { PenggunaLogin Pengguna = (PenggunaLogin)Session["PenggunaLogin"]; TBTransferBahanBaku transferBahanBaku = db.TBTransferBahanBakus.FirstOrDefault(item => item.IDTransferBahanBaku == LabelIDTransferBahanBaku.Text); TBTransferBahanBakuDetail transferBahanBakuDetail = transferBahanBaku.TBTransferBahanBakuDetails.FirstOrDefault(item => item.IDTransferBahanBakuDetail == e.CommandArgument.ToInt()); TBStokBahanBaku[] daftarStokBahanBaku = db.TBStokBahanBakus.Where(data => data.IDTempat == DropDownListTempatPengirim.SelectedValue.ToInt()).ToArray(); if (transferBahanBakuDetail != null) { var stokBahanBaku = daftarStokBahanBaku.FirstOrDefault(data => data.IDBahanBaku == transferBahanBakuDetail.IDBahanBaku); StokBahanBaku_Class.UpdateBertambahBerkurang(db, DateTime.Now, Pengguna.IDPengguna, stokBahanBaku, transferBahanBakuDetail.Jumlah, transferBahanBakuDetail.HargaBeli, true, EnumJenisPerpindahanStok.TransferBatal, "Transfer Batal Item #" + LabelIDTransferBahanBaku.Text); db.TBTransferBahanBakuDetails.DeleteOnSubmit(transferBahanBakuDetail); transferBahanBaku.TBTransferBahanBakuDetails.Remove(transferBahanBakuDetail); //db.SubmitChanges(); //UPDATE DATA TRANSFER BAHAN BAKU transferBahanBaku.TanggalUpdate = DateTime.Now; transferBahanBaku.TotalJumlah = transferBahanBaku.TBTransferBahanBakuDetails.Sum(item2 => item2.Jumlah); transferBahanBaku.GrandTotal = transferBahanBaku.TBTransferBahanBakuDetails.Sum(item2 => item2.Jumlah * item2.HargaBeli); db.SubmitChanges(); LoadDataTransferBahanBaku(); } } } }
protected void ButtonTerima_Click(object sender, EventArgs e) { PenggunaLogin Pengguna = (PenggunaLogin)Session["PenggunaLogin"]; try { using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { var TransferBahanBaku = db.TBTransferBahanBakus.FirstOrDefault(item => item.IDTransferBahanBaku == Request.QueryString["id"]); if (TransferBahanBaku != null && TransferBahanBaku.EnumJenisTransfer == (int)PilihanJenisTransfer.TransferProses) { TBStokBahanBaku[] daftarStokBahanBaku = db.TBStokBahanBakus.Where(item => item.IDTempat == Pengguna.IDTempat).ToArray(); foreach (var item in TransferBahanBaku.TBTransferBahanBakuDetails.ToArray()) { var stokBahanBaku = daftarStokBahanBaku.FirstOrDefault(data => data.IDBahanBaku == item.IDBahanBaku); if (stokBahanBaku != null) { StokBahanBaku_Class.UpdateBertambahBerkurang(db, DateTime.Now, Pengguna.IDPengguna, stokBahanBaku, item.Jumlah, item.HargaBeli, true, EnumJenisPerpindahanStok.TransferStokMasuk, "Transfer #" + LabelIDTransferBahanBaku.Text); } else { stokBahanBaku = StokBahanBaku_Class.InsertStokBahanBaku(db, DateTime.Now, Pengguna.IDPengguna, Pengguna.IDTempat, db.TBBahanBakus.FirstOrDefault(data => data.IDBahanBaku == item.IDBahanBaku), (item.HargaBeli / item.TBBahanBaku.Konversi.Value), 0, 0, ""); StokBahanBaku_Class.UpdateBertambahBerkurang(db, DateTime.Now, Pengguna.IDPengguna, stokBahanBaku, item.Jumlah, item.HargaBeli, true, EnumJenisPerpindahanStok.TransferStokMasuk, "Transfer #" + LabelIDTransferBahanBaku.Text); } } TransferBahanBaku.IDPenerima = Pengguna.IDPengguna; TransferBahanBaku.TanggalTerima = DateTime.Now; TransferBahanBaku.TanggalUpdate = DateTime.Now; TransferBahanBaku.EnumJenisTransfer = (int)PilihanJenisTransfer.TransferSelesai; db.SubmitChanges(); Response.Redirect("/WITWarehouse/BahanBaku/Transfer/Detail.aspx?id=" + TransferBahanBaku.IDTransferBahanBaku, false); } else { Response.Redirect("Default.aspx", false); } } } catch (Exception ex) { LiteralWarning.Text = Alert_Class.Pesan(TipeAlert.Danger, ex.Message); LogError_Class LogError_Class = new LogError_Class(ex, Request.Url.PathAndQuery); } }
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"); } } }
protected void ButtonSimpan_Click(object sender, EventArgs e) { try { if (DropDownListTempatPenerima.Items.Count == 0) { LiteralWarning.Text = Alert_Class.Pesan(TipeAlert.Danger, "Anda harus membuat lokasi tujuan transfer. <a href='/WITAdministrator/Store/Tempat/Pengaturan.aspx'>Buat lokasi baru</a>"); return; } bool StokKurang = false; string TransferBerhasil = string.Empty; using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { PenggunaLogin Pengguna = (PenggunaLogin)Session["PenggunaLogin"]; TBTransferBahanBaku DataTransferBahanBaku = null; TBStokBahanBaku[] daftarStokBahanBaku = db.TBStokBahanBakus.Where(data => data.IDTempat == DropDownListTempatPengirim.SelectedValue.ToInt()).ToArray(); TransferBahanBaku_Class TransferBahanBaku = new TransferBahanBaku_Class(); foreach (RepeaterItem item in RepeaterStokBahanBaku.Items) { Label LabelIDBahanBaku = (Label)item.FindControl("LabelIDBahanBaku"); Label LabelJumlah = (Label)item.FindControl("LabelJumlah"); TextBox TextBoxJumlahTransfer = (TextBox)item.FindControl("TextBoxJumlahTransfer"); HtmlTableRow panelStok = (HtmlTableRow)item.FindControl("panelStok"); if (TextBoxJumlahTransfer.Text.ToDecimal() > 0) { //JIKA JUMLAH TRANSFER VALID TIDAK NULL DAN TIDAK 0 decimal JumlahTransfer = TextBoxJumlahTransfer.Text.ToDecimal(); //PENCARIAN STOK BAHAN BAKU var stokBahanBaku = daftarStokBahanBaku.FirstOrDefault(data => data.IDBahanBaku == LabelIDBahanBaku.Text.ToInt()); if (JumlahTransfer <= (stokBahanBaku.Jumlah / stokBahanBaku.TBBahanBaku.Konversi)) { if (string.IsNullOrWhiteSpace(LabelIDTransferBahanBaku.Text)) { #region MEMBUAT TRANSFER BAHAN BAKU BARU DataTransferBahanBaku = TransferBahanBaku.Tambah(db, Pengguna.IDPengguna, DropDownListTempatPengirim.SelectedValue.ToInt(), DropDownListTempatPenerima.SelectedValue.ToInt(), TextBoxKeterangan.Text); LabelIDTransferBahanBaku.Text = DataTransferBahanBaku.IDTransferBahanBaku; #endregion } else { DataTransferBahanBaku = db.TBTransferBahanBakus.FirstOrDefault(item2 => item2.IDTransferBahanBaku == LabelIDTransferBahanBaku.Text); } //JIKA JUMLAH YANG AKAN DI TRANSFER LEBIH KECIL ATAU SAMA DENGAN JUMLAH STOK StokBahanBaku_Class.UpdateBertambahBerkurang(db, DateTime.Now, Pengguna.IDPengguna, stokBahanBaku, JumlahTransfer, (stokBahanBaku.HargaBeli.Value * stokBahanBaku.TBBahanBaku.Konversi.Value), true, EnumJenisPerpindahanStok.TransferStokKeluar, "Transfer #" + LabelIDTransferBahanBaku.Text); //PENGECEKAN APAKAH SUDAH ADA DI DETAIL var TransferBahanBakuDetail = DataTransferBahanBaku.TBTransferBahanBakuDetails .FirstOrDefault(item2 => item2.IDBahanBaku == stokBahanBaku.IDBahanBaku); if (TransferBahanBakuDetail == null) //DETAIL TRANSFER BAHAN BAKU TIDAK DITEMUKAN MEMBUAT BARU { DataTransferBahanBaku.TBTransferBahanBakuDetails.Add(new TBTransferBahanBakuDetail { IDBahanBaku = stokBahanBaku.IDBahanBaku.Value, IDSatuan = stokBahanBaku.TBBahanBaku.IDSatuanKonversi, HargaBeli = (stokBahanBaku.HargaBeli.Value * stokBahanBaku.TBBahanBaku.Konversi.Value), Jumlah = JumlahTransfer }); } else //JIKA SUDAH TERDAPAT DI DETAIL HANYA MENAMBAHKAN QTY { TransferBahanBakuDetail.Jumlah += JumlahTransfer; } //MENGKOSONGKAN TEXTBOX - LABEL JUMLAH DIISI DENGAN JUMLAH STOK TERBARU TextBoxJumlahTransfer.Text = string.Empty; panelStok.Attributes.Add("class", ""); LabelJumlah.Text = (LabelJumlah.Text.ToDecimal() - JumlahTransfer).ToFormatHarga(); TransferBerhasil += "<br/>" + JumlahTransfer.ToFormatHarga() + " - " + stokBahanBaku.TBBahanBaku.Nama + " " + stokBahanBaku.TBBahanBaku.TBSatuan1.Nama; //MESSAGE TRANSFER YANG BERHASIL } else { //REFRESH LABEL JUMLAH STOK LabelJumlah.Text = (stokBahanBaku.Jumlah / stokBahanBaku.TBBahanBaku.Konversi.Value).ToFormatHarga(); panelStok.Attributes.Add("class", "danger"); StokKurang = true; } } //HANDLE POSTBACK FORMAT HARGA TextBoxJumlahTransfer.Text = TextBoxJumlahTransfer.Text.ToDecimal() == 0 ? string.Empty : TextBoxJumlahTransfer.Text.ToFormatHarga(); } if (DataTransferBahanBaku != null) { //UPDATE DATA TRANSFER BAHAN BAKU DataTransferBahanBaku.TanggalUpdate = DateTime.Now; DataTransferBahanBaku.TotalJumlah = DataTransferBahanBaku.TBTransferBahanBakuDetails.Sum(item2 => item2.Jumlah); DataTransferBahanBaku.GrandTotal = DataTransferBahanBaku.TBTransferBahanBakuDetails.Sum(item2 => item2.Jumlah * item2.HargaBeli); } db.SubmitChanges(); } //MENAMPILKAN MESSAGE LiteralWarning.Text = string.Empty; if (!string.IsNullOrWhiteSpace(TransferBerhasil)) { LiteralWarning.Text += Alert_Class.Pesan(TipeAlert.Success, "Bahan Baku berhasil disimpan" + TransferBerhasil); } if (StokKurang) { LiteralWarning.Text += Alert_Class.Pesan(TipeAlert.Danger, "Stok tidak cukup, silahkan cek kembali"); } } catch (Exception ex) { LiteralWarning.Text = Alert_Class.Pesan(TipeAlert.Danger, ex.Message); LogError_Class LogError = new LogError_Class(ex, Request.Url.PathAndQuery); } }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { PenggunaLogin Pengguna = (PenggunaLogin)Session["PenggunaLogin"]; using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { Tempat_Class ClassTempat = new Tempat_Class(db); #region Default DropDownListJenisStok.Items.Insert(0, new ListItem { Value = "0", Text = "Semua" }); DropDownListJenisStok.Items.Insert(1, new ListItem { Value = "1", Text = "Ada Stok", Selected = true }); DropDownListJenisStok.Items.Insert(2, new ListItem { Value = "2", Text = "Tidak Ada Stok" }); DropDownListJenisStok.Items.Insert(3, new ListItem { Value = "3", Text = "Minus" }); DropDownListCariKategori.DataSource = db.TBKategoriBahanBakus.ToArray(); DropDownListCariKategori.DataTextField = "Nama"; DropDownListCariKategori.DataValueField = "IDKategoriBahanBaku"; DropDownListCariKategori.DataBind(); DropDownListCariKategori.Items.Insert(0, new ListItem { Value = "0", Text = "- Semua -" }); DropDownListCariSatuan.DataSource = db.TBSatuans.ToArray(); DropDownListCariSatuan.DataTextField = "Nama"; DropDownListCariSatuan.DataValueField = "IDSatuan"; DropDownListCariSatuan.DataBind(); DropDownListCariSatuan.Items.Insert(0, new ListItem { Value = "0", Text = "- Semua -" }); var ListTempat = ClassTempat.Data(); DropDownListTempatPengirim.DataSource = ListTempat; DropDownListTempatPengirim.DataTextField = "Nama"; DropDownListTempatPengirim.DataValueField = "IDTempat"; DropDownListTempatPengirim.DataBind(); DropDownListTempatPengirim.Items.Insert(0, new ListItem { Text = "- Lokasi -", Value = "0" }); DropDownListTempatPengirim.SelectedValue = Pengguna.IDTempat.ToString(); DropDownListTempatPenerima.DataSource = ListTempat.Where(item => item.IDTempat != Pengguna.IDTempat); DropDownListTempatPenerima.DataTextField = "Nama"; DropDownListTempatPenerima.DataValueField = "IDTempat"; DropDownListTempatPenerima.DataBind(); TextBoxTanggalKirim.Text = DateTime.Now.ToString("d MMMM yyyy HH:mm"); #endregion var DataTransferBahanBaku = db.TBTransferBahanBakus .FirstOrDefault(item => item.IDTransferBahanBaku == Request.QueryString["id"]); if (DataTransferBahanBaku != null) { //DATA TRANSFER BAHAN BAKU DITEMUKAN if (DataTransferBahanBaku.EnumJenisTransfer == (int)PilihanJenisTransfer.TransferBatal || DataTransferBahanBaku.EnumJenisTransfer == (int)PilihanJenisTransfer.TransferProses || DataTransferBahanBaku.EnumJenisTransfer == (int)PilihanJenisTransfer.TransferSelesai) { //TRANSFER BATAL MAKA COPY TRANSFER BAHAN BAKU LAMA KE TRANSFER BAHAN BAKU BARU TextBoxTanggalKirim.Text = DateTime.Now.ToString("d MMMM yyyy HH:mm"); DropDownListTempatPenerima.SelectedValue = DataTransferBahanBaku.IDTempatPenerima.ToString(); TextBoxKeterangan.Text = "Referensi Transfer #" + DataTransferBahanBaku.IDTransferBahanBaku + " - " + DataTransferBahanBaku.Keterangan; #region MEMBUAT TRANSFER BAHAN BAKU BARU TransferBahanBaku_Class TransferBahanBaku = new TransferBahanBaku_Class(); var TransferBahanBakuBaru = TransferBahanBaku.Tambah(db, Pengguna.IDPengguna, DropDownListTempatPengirim.SelectedValue.ToInt(), DropDownListTempatPenerima.SelectedValue.ToInt(), TextBoxKeterangan.Text); LabelIDTransferBahanBaku.Text = TransferBahanBakuBaru.IDTransferBahanBaku; #endregion Dictionary <int, decimal> ListStokBahanBakuHabis = new Dictionary <int, decimal>(); TBStokBahanBaku[] daftarStokBahanBaku = db.TBStokBahanBakus.Where(item => item.IDTempat == DropDownListTempatPengirim.SelectedValue.ToInt()).ToArray(); //COPY DETAIL TRANSFER LAMA KE DETAIL TRANSFER BARU foreach (var item in DataTransferBahanBaku.TBTransferBahanBakuDetails.ToArray()) { //PENCARIAN STOK BAHAN BAKU var stokBahanBaku = daftarStokBahanBaku.FirstOrDefault(data => data.IDBahanBaku == item.IDBahanBaku); if (item.Jumlah <= (stokBahanBaku.Jumlah / stokBahanBaku.TBBahanBaku.Konversi)) { //JIKA JUMLAH PERMINTAAN LEBIH KECIL ATAU SAMA DENGAN JUMLAH STOK StokBahanBaku_Class.UpdateBertambahBerkurang(db, DateTime.Now, Pengguna.IDPengguna, stokBahanBaku, item.Jumlah, item.HargaBeli, true, EnumJenisPerpindahanStok.TransferStokKeluar, "Transfer #" + LabelIDTransferBahanBaku.Text); //MENAMBAHKAN DI DETAIL TRANSFER TransferBahanBakuBaru.TBTransferBahanBakuDetails.Add(new TBTransferBahanBakuDetail { //IDTRANSFERPBAHANBAKUDETAIL //IDTRANSFERBAHANBAKU IDBahanBaku = item.IDBahanBaku, IDSatuan = item.TBBahanBaku.IDSatuanKonversi, HargaBeli = (stokBahanBaku.HargaBeli.Value * stokBahanBaku.TBBahanBaku.Konversi.Value), Jumlah = item.Jumlah //SUBTOTALHARGABELI }); } else //MENCATAT STOK BAHAN BAKU YANG HABIS { ListStokBahanBakuHabis.Add(stokBahanBaku.IDBahanBaku.Value, item.Jumlah); } } //UPDATE DATA TRANSFERBAHANBAKU TransferBahanBakuBaru.TanggalUpdate = DateTime.Now; TransferBahanBakuBaru.TotalJumlah = TransferBahanBakuBaru.TBTransferBahanBakuDetails.Sum(item2 => item2.Jumlah); TransferBahanBakuBaru.GrandTotal = TransferBahanBakuBaru.TBTransferBahanBakuDetails.Sum(item2 => item2.Jumlah * item2.HargaBeli); db.SubmitChanges(); LoadDataTransferBahanBaku(); //RESET LITERAL WARNING LiteralWarning.Text = ""; if (ListStokBahanBakuHabis.Count > 0) { #region LIST STOK HABIS ADA MAKA MENAMPILKAN STOK APA SAJA YANG HABIS var DataStokBahanBaku = db.TBStokBahanBakus .AsEnumerable() .Where(item => item.IDTempat == Pengguna.IDTempat && ListStokBahanBakuHabis.ContainsKey(item.IDBahanBaku.Value)) .Select(item => new { IDBahanBaku = item.TBBahanBaku.IDBahanBaku, BahanBaku = item.TBBahanBaku.Nama, Kode = item.TBBahanBaku.KodeBahanBaku, IDSatuanKecil = item.TBBahanBaku.IDSatuan, SatuanKecil = item.TBBahanBaku.TBSatuan.Nama, Konversi = item.TBBahanBaku.Konversi, IDSatuanBesar = item.TBBahanBaku.IDSatuanKonversi, SatuanBesar = item.TBBahanBaku.TBSatuan1.Nama, IDKategori = item.TBBahanBaku.TBRelasiBahanBakuKategoriBahanBakus.Count > 0 ? item.TBBahanBaku.TBRelasiBahanBakuKategoriBahanBakus.FirstOrDefault().IDKategoriBahanBaku : 0, Kategori = item.TBBahanBaku.TBRelasiBahanBakuKategoriBahanBakus.Count > 0 ? item.TBBahanBaku.TBRelasiBahanBakuKategoriBahanBakus.FirstOrDefault().TBKategoriBahanBaku.Nama : "", IDStokBahanBaku = item.IDStokBahanBaku, Jumlah = (item.Jumlah / item.TBBahanBaku.Konversi), HargaBeli = (item.HargaBeli * item.TBBahanBaku.Konversi) }).OrderBy(item => item.BahanBaku).ToArray(); RepeaterStokBahanBaku.DataSource = DataStokBahanBaku; RepeaterStokBahanBaku.DataBind(); #endregion #region MENGISI TEXTBOX DENGAN JUMLAH PERMINTAAN foreach (RepeaterItem item in RepeaterStokBahanBaku.Items) { Label LabelIDBahanBaku = (Label)item.FindControl("LabelIDBahanBaku"); TextBox TextBoxJumlahTransfer = (TextBox)item.FindControl("TextBoxJumlahTransfer"); HtmlTableRow panelStok = (HtmlTableRow)item.FindControl("panelStok"); if (ListStokBahanBakuHabis.ContainsKey(LabelIDBahanBaku.Text.ToInt())) { TextBoxJumlahTransfer.Text = ListStokBahanBakuHabis[LabelIDBahanBaku.Text.ToInt()].ToFormatHarga(); panelStok.Attributes.Add("class", "danger"); } } #endregion LiteralWarning.Text = Alert_Class.Pesan(TipeAlert.Danger, "Stok tidak cukup, silahkan cek kembali"); MultiViewTransferBahanBaku.ActiveViewIndex = 0; } else { //JIKA STOK BAHAN BAKU TIDAK HABIS LoadDataStokBahanBaku(); MultiViewTransferBahanBaku.ActiveViewIndex = 1; } } else { //TRANSFER BAHAN BAKU : PENDING LabelIDTransferBahanBaku.Text = DataTransferBahanBaku.IDTransferBahanBaku; LoadDataTransferBahanBaku(); MultiViewTransferBahanBaku.ActiveViewIndex = 1; } } else { //TRANSFER BAHAN BAKU TIDAK DITEMUKAN MEMBUAT TRANSFER BARU MultiViewTransferBahanBaku.ActiveViewIndex = 0; LoadDataStokBahanBaku(); } } } else { LiteralWarning.Text = ""; } }
protected void ButtonSimpan_Click(object sender, EventArgs e) { if (Page.IsValid) { //DateTime tanggalretur = DateTime.Parse(TextBoxTanggalRetur.Text + " " + DateTime.Now.ToString("HH:mm:ss tt")); peringatan.Visible = false; PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"]; List <StokBahanBaku_Model> ViewStateListDetail = (List <StokBahanBaku_Model>)ViewState["ViewStateListDetail"]; if (ViewStateListDetail.Count > 0) { string IDPOProduksiBahanBakuRetur = string.Empty; TBPOProduksiBahanBakuRetur POBahanBakuRetur = null; bool statusBerhasil = false; try { using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { db.Proc_InsertPOProduksiBahanBakuRetur(ref IDPOProduksiBahanBakuRetur, pengguna.IDTempat, DropDownListSupplier.SelectedValue.ToInt(), pengguna.IDPengguna, TextBoxTanggal.Text.ToDateTime().AddHours(DateTime.Now.Hour).AddMinutes(DateTime.Now.Minute)); POBahanBakuRetur = db.TBPOProduksiBahanBakuReturs.FirstOrDefault(item => item.IDPOProduksiBahanBakuRetur == IDPOProduksiBahanBakuRetur); POBahanBakuRetur.IDPenerimaanPOProduksiBahanBaku = DropDownListPenerimaan.SelectedValue != "0" ? DropDownListPenerimaan.SelectedValue : null; POBahanBakuRetur.TBPOProduksiBahanBakuReturDetails.AddRange(ViewStateListDetail.OrderBy(item => item.BahanBaku).Select(item => new TBPOProduksiBahanBakuReturDetail { TBStokBahanBaku = db.TBStokBahanBakus.FirstOrDefault(item2 => item2.IDStokBahanBaku == item.IDStokBahanBaku), IDSatuan = item.IDSatuan, HargaBeli = item.HargaBeli, HargaRetur = item.HargaSupplier, Jumlah = item.Jumlah })); POBahanBakuRetur.Grandtotal = POBahanBakuRetur.TBPOProduksiBahanBakuReturDetails.Sum(item => item.Jumlah * item.HargaRetur); POBahanBakuRetur.EnumStatusRetur = (int)EnumStatusPORetur.Baru; POBahanBakuRetur.Keterangan = TextBoxKeterangan.Text; foreach (var item in POBahanBakuRetur.TBPOProduksiBahanBakuReturDetails) { StokBahanBaku_Class.UpdateBertambahBerkurang( db: db, tanggal: DateTime.Now, idPengguna: pengguna.IDPengguna, stokBahanBaku: item.TBStokBahanBaku, jumlahStok: item.Jumlah.Value, hargaBeli: item.HargaBeli.Value, satuanBesar: true, enumJenisPerpindahanStok: EnumJenisPerpindahanStok.ReturKeTempatProduksi, keterangan: "(" + item.TBStokBahanBaku.TBBahanBaku.Nama + ") Retur PO #" + IDPOProduksiBahanBakuRetur); } db.SubmitChanges(); statusBerhasil = true; } } catch (Exception ex) { if (statusBerhasil != true) { using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { POBahanBakuRetur = db.TBPOProduksiBahanBakuReturs.FirstOrDefault(item => item.IDPOProduksiBahanBakuRetur == IDPOProduksiBahanBakuRetur); if (POBahanBakuRetur != null) { db.TBPOProduksiBahanBakuReturDetails.DeleteAllOnSubmit(POBahanBakuRetur.TBPOProduksiBahanBakuReturDetails); db.TBPOProduksiBahanBakuReturs.DeleteOnSubmit(POBahanBakuRetur); db.SubmitChanges(); IDPOProduksiBahanBakuRetur = string.Empty; } } } LogError_Class LogError = new LogError_Class(ex, "Retur PO 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"); } } } else { LabelPeringatan.Text = "Tidak ada Bahan Baku yang dipilih"; peringatan.Visible = true; } } }
protected void ButtonSimpan_Click(object sender, EventArgs e) { PenggunaLogin Pengguna = (PenggunaLogin)Session["PenggunaLogin"]; using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { bool StatusPerubahan = false; TBStokBahanBaku[] daftarStokBahanBaku = db.TBStokBahanBakus.Where(item => item.IDTempat == DropDownListTempat.SelectedValue.ToInt()).ToArray(); foreach (RepeaterItem item2 in RepeaterLaporan.Items) { Label LabelIDBahanBaku = (Label)item2.FindControl("LabelIDBahanBaku"); Label IDSatuanKonversi = (Label)item2.FindControl("IDSatuanKonversi"); TextBox TextBoxStokTerbaru = (TextBox)item2.FindControl("TextBoxStokTerbaru"); DropDownList DropDownListPilih = (DropDownList)item2.FindControl("DropDownListPilih"); if (!string.IsNullOrWhiteSpace(TextBoxStokTerbaru.Text)) { StatusPerubahan = true; TBStokBahanBaku stokBahanBaku = daftarStokBahanBaku.FirstOrDefault(data => data.IDBahanBaku == LabelIDBahanBaku.Text.ToInt()); if (DropDownListPilih.SelectedIndex == 0) { if (Request.QueryString["do"] == "opname") { StokBahanBaku_Class.UpdateStockOpname(db, DateTime.Now, Pengguna.IDPengguna, stokBahanBaku, TextBoxStokTerbaru.Text.ToDecimal(), true, ""); } else if (Request.QueryString["do"] == "waste") { StokBahanBaku_Class.UpdateBertambahBerkurang(db, DateTime.Now, Pengguna.IDPengguna, stokBahanBaku, TextBoxStokTerbaru.Text.ToDecimal(), stokBahanBaku.HargaBeli.Value, true, EnumJenisPerpindahanStok.PembuanganBarangRusak, ""); } else if (Request.QueryString["do"] == "restock") { StokBahanBaku_Class.UpdateBertambahBerkurang(db, DateTime.Now, Pengguna.IDPengguna, stokBahanBaku, TextBoxStokTerbaru.Text.ToDecimal(), stokBahanBaku.HargaBeli.Value, true, EnumJenisPerpindahanStok.RestockBarang, ""); } else if (Request.QueryString["do"] == "return") { StokBahanBaku_Class.UpdateBertambahBerkurang(db, DateTime.Now, Pengguna.IDPengguna, stokBahanBaku, TextBoxStokTerbaru.Text.ToDecimal(), stokBahanBaku.HargaBeli.Value, true, EnumJenisPerpindahanStok.ReturKeTempatProduksi, ""); } else { Response.Redirect("/WITWarehouse/BahanBaku.aspx"); } } else if (DropDownListPilih.SelectedIndex == 1) { if (Request.QueryString["do"] == "opname") { StokBahanBaku_Class.UpdateStockOpname(db, DateTime.Now, Pengguna.IDPengguna, stokBahanBaku, TextBoxStokTerbaru.Text.ToDecimal(), false, ""); } else if (Request.QueryString["do"] == "waste") { StokBahanBaku_Class.UpdateBertambahBerkurang(db, DateTime.Now, Pengguna.IDPengguna, stokBahanBaku, TextBoxStokTerbaru.Text.ToDecimal(), stokBahanBaku.HargaBeli.Value, false, EnumJenisPerpindahanStok.PembuanganBarangRusak, ""); } else if (Request.QueryString["do"] == "restock") { StokBahanBaku_Class.UpdateBertambahBerkurang(db, DateTime.Now, Pengguna.IDPengguna, stokBahanBaku, TextBoxStokTerbaru.Text.ToDecimal(), stokBahanBaku.HargaBeli.Value, false, EnumJenisPerpindahanStok.RestockBarang, ""); } else if (Request.QueryString["do"] == "return") { StokBahanBaku_Class.UpdateBertambahBerkurang(db, DateTime.Now, Pengguna.IDPengguna, stokBahanBaku, TextBoxStokTerbaru.Text.ToDecimal(), stokBahanBaku.HargaBeli.Value, false, EnumJenisPerpindahanStok.ReturKeTempatProduksi, ""); } else { Response.Redirect("/WITWarehouse/BahanBaku.aspx"); } } } TextBoxStokTerbaru.Text = string.Empty; } if (StatusPerubahan) { db.SubmitChanges(); } } LoadData(); }