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 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); AtributProduk_Class ClassAtributProduk = new AtributProduk_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" }); DropDownListCariAtributProduk.DataSource = ClassAtributProduk.Data(); DropDownListCariAtributProduk.DataTextField = "Nama"; DropDownListCariAtributProduk.DataValueField = "IDAtributProduk"; DropDownListCariAtributProduk.DataBind(); DropDownListCariAtributProduk.Items.Insert(0, new ListItem { Value = "0", Text = "- Semua -" }); DropDownListCariKategori.DataSource = db.TBKategoriProduks.ToArray(); DropDownListCariKategori.DataTextField = "Nama"; DropDownListCariKategori.DataValueField = "IDKategoriProduk"; DropDownListCariKategori.DataBind(); DropDownListCariKategori.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 DataTransferProduk = db.TBTransferProduks .FirstOrDefault(item => item.IDTransferProduk == Request.QueryString["id"]); if (DataTransferProduk != null) { //DATA TRANSFER PRODUK DITEMUKAN if (DataTransferProduk.EnumJenisTransfer == (int)PilihanJenisTransfer.TransferBatal || DataTransferProduk.EnumJenisTransfer == (int)PilihanJenisTransfer.TransferProses || DataTransferProduk.EnumJenisTransfer == (int)PilihanJenisTransfer.TransferSelesai) { //TRANSFER BATAL MAKA COPY TRANSFER PRODUK LAMA KE TRANSFER PRODUK BARU TextBoxTanggalKirim.Text = DateTime.Now.ToString("d MMMM yyyy HH:mm"); DropDownListTempatPenerima.SelectedValue = DataTransferProduk.IDTempatPenerima.ToString(); TextBoxKeterangan.Text = "Referensi Transfer #" + DataTransferProduk.IDTransferProduk + " - " + DataTransferProduk.Keterangan; #region MEMBUAT TRANSFER PRODUK BARU TransferProduk_Class TransferProduk = new TransferProduk_Class(); var TransferProdukBaru = TransferProduk.Tambah(db, Pengguna.IDPengguna, DropDownListTempatPengirim.SelectedValue.ToInt(), DropDownListTempatPenerima.SelectedValue.ToInt(), TextBoxKeterangan.Text); LabelIDTransferProduk.Text = TransferProdukBaru.IDTransferProduk; #endregion Dictionary <int, int> ListStokProdukHabis = new Dictionary <int, int>(); StokProduk_Class StokProduk_Class = new StokProduk_Class(db); //COPY DETAIL TRANSFER LAMA KE DETAIL TRANSFER BARU foreach (var item in DataTransferProduk.TBTransferProdukDetails.ToArray()) { //PENCARIAN STOK PRODUK var StokProduk = StokProduk_Class.Cari(DropDownListTempatPengirim.SelectedValue.ToInt(), item.IDKombinasiProduk); if (item.Jumlah <= StokProduk.Jumlah) { //JIKA JUMLAH PERMINTAAN LEBIH KECIL ATAU SAMA DENGAN JUMLAH STOK StokProduk_Class.BertambahBerkurang(DropDownListTempatPengirim.SelectedValue.ToInt(), Pengguna.IDPengguna, StokProduk, item.Jumlah, StokProduk.HargaBeli.Value, StokProduk.HargaJual.Value, EnumJenisPerpindahanStok.TransferStokKeluar, "Transfer #" + LabelIDTransferProduk.Text); //MENAMBAHKAN DI DETAIL TRANSFER TransferProdukBaru.TBTransferProdukDetails.Add(new TBTransferProdukDetail { //IDTRANSFERPRODUKDETAIL //IDTRANSFERPRODUK IDKombinasiProduk = item.IDKombinasiProduk, HargaBeli = StokProduk.HargaBeli.Value, HargaJual = StokProduk.HargaJual.Value, Jumlah = item.Jumlah //SUBTOTALHARGABELI //SUBTOTALHARGAJUAL }); } else //MENCATAT STOK PRODUK YANG HABIS { ListStokProdukHabis.Add(StokProduk.IDKombinasiProduk, item.Jumlah); } } //UPDATE DATA TRANSFERPRODUK TransferProdukBaru.TanggalUpdate = DateTime.Now; TransferProdukBaru.TotalJumlah = TransferProdukBaru.TBTransferProdukDetails.Sum(item2 => item2.Jumlah); TransferProdukBaru.GrandTotalHargaBeli = TransferProdukBaru.TBTransferProdukDetails.Sum(item2 => item2.Jumlah * item2.HargaBeli); TransferProdukBaru.GrandTotalHargaJual = TransferProdukBaru.TBTransferProdukDetails.Sum(item2 => item2.Jumlah * item2.HargaJual); db.SubmitChanges(); LoadDataTransferProduk(); //RESET LITERAL WARNING LiteralWarning.Text = ""; if (ListStokProdukHabis.Count > 0) { #region LIST STOK HABIS ADA MAKA MENAMPILKAN STOK APA SAJA YANG HABIS var DataStokProduk = db.TBStokProduks .AsEnumerable() .Where(item => item.IDTempat == Pengguna.IDTempat && ListStokProdukHabis.ContainsKey(item.IDKombinasiProduk)) .Select(item => new { IDStokProduk = item.IDStokProduk, Kode = item.TBKombinasiProduk.KodeKombinasiProduk, IDAtribut = item.TBKombinasiProduk.IDAtributProduk, Atribut = item.TBKombinasiProduk.TBAtributProduk.Nama, IDKategori = item.TBKombinasiProduk.TBProduk.TBRelasiProdukKategoriProduks.Count > 0 ? item.TBKombinasiProduk.TBProduk.TBRelasiProdukKategoriProduks.FirstOrDefault().IDKategoriProduk : 0, Kategori = item.TBKombinasiProduk.TBProduk.TBRelasiProdukKategoriProduks.Count > 0 ? item.TBKombinasiProduk.TBProduk.TBRelasiProdukKategoriProduks.FirstOrDefault().TBKategoriProduk.Nama : "", IDPemilikProduk = item.TBKombinasiProduk.TBProduk.IDPemilikProduk, PemilikProduk = item.TBKombinasiProduk.TBProduk.TBPemilikProduk.Nama, IDWarna = item.TBKombinasiProduk.TBProduk.IDWarna, Warna = item.TBKombinasiProduk.TBProduk.TBWarna.Nama, IDKombinasiProduk = item.IDKombinasiProduk, KombinasiProduk = item.TBKombinasiProduk.Nama, IDProduk = item.TBKombinasiProduk.IDProduk, Produk = item.TBKombinasiProduk.TBProduk.Nama, Jumlah = item.Jumlah, HargaBeli = item.HargaBeli, HargaJual = item.HargaJual }).ToArray(); RepeaterStokKombinasiProduk.DataSource = DataStokProduk; RepeaterStokKombinasiProduk.DataBind(); if (DataStokProduk.Count() > 0) { LabelTotalJumlahStok.Text = DataStokProduk.Sum(item => item.Jumlah).ToFormatHargaBulat(); } else { LabelTotalJumlahStok.Text = "0"; } #endregion #region MENGISI TEXTBOX DENGAN JUMLAH PERMINTAAN foreach (RepeaterItem item in RepeaterStokKombinasiProduk.Items) { Label LabelIDKombinasiProduk = (Label)item.FindControl("LabelIDKombinasiProduk"); TextBox TextBoxJumlahTransfer = (TextBox)item.FindControl("TextBoxJumlahTransfer"); HtmlTableRow panelStok = (HtmlTableRow)item.FindControl("panelStok"); if (ListStokProdukHabis.ContainsKey(LabelIDKombinasiProduk.Text.ToInt())) { TextBoxJumlahTransfer.Text = ListStokProdukHabis[LabelIDKombinasiProduk.Text.ToInt()].ToFormatHargaBulat(); panelStok.Attributes.Add("class", "danger"); } } #endregion LiteralWarning.Text = Alert_Class.Pesan(TipeAlert.Danger, "Stok tidak cukup, silahkan cek kembali"); MultiViewTransferProduk.ActiveViewIndex = 0; } else { //JIKA STOK PRODUK TIDAK HABIS LoadDataStokProduk(); MultiViewTransferProduk.ActiveViewIndex = 1; } } else { //TRANSFER PRODUK : PENDING LabelIDTransferProduk.Text = DataTransferProduk.IDTransferProduk; LoadDataTransferProduk(); MultiViewTransferProduk.ActiveViewIndex = 1; } } else { //TRANSFER PRODUK TIDAK DITEMUKAN MEMBUAT TRANSFER BARU MultiViewTransferProduk.ActiveViewIndex = 0; LoadDataStokProduk(); } } } else { LiteralWarning.Text = ""; } }