private void LoadDataBahanBaku(bool GenerateExcel) { using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { PenggunaLogin Pengguna = (PenggunaLogin)Session["PenggunaLogin"]; //STOK BISA DIHITUNG Laporan_Class LaporanStok = new Laporan_Class(db, (PenggunaLogin)Session["PenggunaLogin"], DateTime.Now, DateTime.Now, GenerateExcel); Result = LaporanStok.DataStokBahanBaku(DropDownListTempat.SelectedValue.ToInt(), 0, DropDownListCariKategoriBahanBaku.SelectedValue.ToInt(), DropDownListKondisiStokBahanBaku.SelectedValue, TextBoxCariKodeBahanBaku.Text, TextBoxCariBahanBaku.Text, DropDownListCariSatuanBahanBaku.SelectedValue, DropDownListCariStatusBahanBaku.SelectedItem.Text.ToLower()); LabelSubtotal.Text = Parse.ToFormatHarga(Result["Subtotal"]); RepeaterStokBahanBaku.DataSource = Result["Data"]; RepeaterStokBahanBaku.DataBind(); ButtonCetakBahanBaku.OnClientClick = "return popitup('CetakStokBahanBaku.aspx" + LaporanStok.TempPencarian + "')"; LinkDownload.Visible = GenerateExcel; if (LinkDownload.Visible) { LinkDownload.HRef = LaporanStok.LinkDownload; } } }
private void LoadDataStokBahanBaku() { PenggunaLogin Pengguna = (PenggunaLogin)Session["PenggunaLogin"]; using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { var DataStokBahanBaku = db.TBStokBahanBakus .AsEnumerable() .Where(item => item.IDTempat == Pengguna.IDTempat) .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(); if (DropDownListJenisStok.SelectedValue == "1") { DataStokBahanBaku = DataStokBahanBaku.Where(item => item.Jumlah > 0).ToArray(); } else if (DropDownListJenisStok.SelectedValue == "2") { DataStokBahanBaku = DataStokBahanBaku.Where(item => item.Jumlah == 0).ToArray(); } else if (DropDownListJenisStok.SelectedValue == "3") { DataStokBahanBaku = DataStokBahanBaku.Where(item => item.Jumlah < 0).ToArray(); } if (!string.IsNullOrWhiteSpace(TextBoxCariKode.Text)) { DataStokBahanBaku = DataStokBahanBaku.Where(item => item.Kode.ToLower().Contains(TextBoxCariKode.Text.ToLower())).ToArray(); TextBoxCariKode.Focus(); } if (!string.IsNullOrWhiteSpace(TextBoxCariBahanBaku.Text)) { DataStokBahanBaku = DataStokBahanBaku.Where(item => item.BahanBaku.ToLower().Contains(TextBoxCariBahanBaku.Text.ToLower())).ToArray(); TextBoxCariBahanBaku.Focus(); } if (DropDownListCariSatuan.SelectedValue != "0") { DataStokBahanBaku = DataStokBahanBaku.Where(item => item.IDSatuanBesar == DropDownListCariSatuan.SelectedValue.ToInt()).ToArray(); DropDownListCariSatuan.Focus(); } if (DropDownListCariKategori.SelectedValue != "0") { DataStokBahanBaku = DataStokBahanBaku.Where(item => item.Kategori == DropDownListCariKategori.SelectedItem.Text).ToArray(); DropDownListCariKategori.Focus(); } RepeaterStokBahanBaku.DataSource = DataStokBahanBaku; RepeaterStokBahanBaku.DataBind(); } }
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 = ""; } }