protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { #region Default AtributProduk_Class ClassAtributProduk = new AtributProduk_Class(db); KategoriProduk_Class KategoriProduk_Class = new KategoriProduk_Class(); PemilikProduk_Class ClassPemilikProduk = new PemilikProduk_Class(db); 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.Items.AddRange(ClassAtributProduk.Dropdownlist()); DropDownListCariKategori.Items.AddRange(KategoriProduk_Class.Dropdownlist(db)); DropDownListCariPemilik.Items.AddRange(ClassPemilikProduk.Dropdownlist()); #endregion PenggunaLogin Pengguna = (PenggunaLogin)Session["PenggunaLogin"]; ////MENAMPILKAN MESSAGE LiteralWarning.Text = ""; var DataTransaksi = db.TBTransaksis.FirstOrDefault(item => item.IDTransaksi == Request.QueryString["id"]); if (DataTransaksi != null) { //DATA TRANSAKSI DITEMUKAN if (DataTransaksi.IDStatusTransaksi == (int)EnumStatusTransaksi.Complete || DataTransaksi.IDStatusTransaksi == (int)EnumStatusTransaksi.Canceled) { //TRANSAKSI COMPLETE ATAU CANCELED COPY KE TRANSAKSI BARU var Transaksi = new Transaksi_Model(Pengguna.IDPengguna, Pengguna.IDTempat, DateTime.Now); Transaksi.IDJenisTransaksi = (int)EnumJenisTransaksi.Wholesale; //WHOLESALE Dictionary <int, int> ListStokProdukHabis = new Dictionary <int, int>(); StokProduk_Class StokProduk_Class = new StokProduk_Class(db); int TotalTransfer = 0; string PesanTransaksi = ""; //COPY DETAIL TRANSAKSI LAMA KE DETAIL TRANSAKSI BARU foreach (var item in DataTransaksi.TBTransaksiDetails.ToArray()) { //PENCARIAN STOK PRODUK var StokProduk = StokProduk_Class.Cari(Pengguna.IDTempat, item.IDKombinasiProduk); if (item.Quantity <= StokProduk.Jumlah) { //JIKA JUMLAH YANG AKAN DI TRANSAKSI LEBIH KECIL ATAU SAMA DENGAN JUMLAH STOK Transaksi.TambahDetailTransaksi(item.IDKombinasiProduk, item.Quantity); //MESSAGE TRANSFER YANG BERHASIL TotalTransfer += item.Quantity; PesanTransaksi += "<br/>" + Pengaturan.FormatHarga(item.Quantity) + " - " + item.TBKombinasiProduk.Nama; } else //MENCATAT STOK PRODUK YANG HABIS { ListStokProdukHabis.Add(StokProduk.IDKombinasiProduk, item.Quantity); } } if (TotalTransfer > 0) { Transaksi.Keterangan = "Referensi Transaksi #" + DataTransaksi.IDTransaksi + " - " + DataTransaksi.Keterangan; LabelIDTransaksi.Text = Transaksi.ConfirmTransaksi(db); db.SubmitChanges(); LoadDataTransaksiDetail(); PesanTransaksi += "<br/><h5><b>Total : " + TotalTransfer + "</b></h5>"; LiteralWarning.Text += Alert_Class.Pesan(TipeAlert.Success, "Produk berhasil disimpan" + PesanTransaksi); } if (ListStokProdukHabis.Count > 0) { DropDownListJenisStok.SelectedValue = "2"; #region 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, IDKombinasiProduk = item.IDKombinasiProduk, Kode = item.TBKombinasiProduk.KodeKombinasiProduk, RelasiKategoriProduk = item.TBKombinasiProduk.TBProduk.TBRelasiProdukKategoriProduks, Kategori = StokProduk_Class.GabungkanSemuaKategoriProduk(db, item, null), IDPemilikProduk = item.TBKombinasiProduk.TBProduk.IDPemilikProduk, PemilikProduk = item.TBKombinasiProduk.TBProduk.TBPemilikProduk.Nama, IDAtributProduk = item.TBKombinasiProduk.IDAtributProduk, AtributProduk = item.TBKombinasiProduk.TBAtributProduk.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 = Pengaturan.FormatHarga(DataStokProduk.Sum(item => item.Jumlah)); } else { LabelTotalJumlahStok.Text = "0"; } #endregion #region MENGISI TEXTBOX DENGAN JUMLAH PERMINTAAN foreach (RepeaterItem item in RepeaterStokKombinasiProduk.Items) { Label LabelIDKombinasiProduk = (Label)item.FindControl("LabelIDKombinasiProduk"); TextBox TextBoxJumlahTransaksi = (TextBox)item.FindControl("TextBoxJumlahTransaksi"); HtmlTableRow PanelStok = (HtmlTableRow)item.FindControl("PanelStok"); if (ListStokProdukHabis.ContainsKey(LabelIDKombinasiProduk.Text.ToInt())) { TextBoxJumlahTransaksi.Text = Pengaturan.FormatHarga(ListStokProdukHabis[LabelIDKombinasiProduk.Text.ToInt()]); PanelStok.Attributes.Add("class", "danger"); } } #endregion LiteralWarning.Text += Alert_Class.Pesan(TipeAlert.Danger, "Stok tidak cukup, silahkan cek kembali"); MultiViewTransaksi.ActiveViewIndex = 0; } else { //JIKA STOK PRODUK TIDAK HABIS LoadDataStokProduk(); MultiViewTransaksi.ActiveViewIndex = 1; } } else { //STATUS TRANSAKSI SELAIN COMPLETE DAN CANCELED LabelIDTransaksi.Text = DataTransaksi.IDTransaksi; LoadDataTransaksiDetail(); MultiViewTransaksi.ActiveViewIndex = 1; } } else { //TRANSAKSI TIDAK DITEMUKAN MultiViewTransaksi.ActiveViewIndex = 0; LoadDataStokProduk(); } } } else { LiteralWarning.Text = ""; } }
private void LoadDataStokProduk() { PenggunaLogin Pengguna = (PenggunaLogin)Session["PenggunaLogin"]; using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { var DataStokProduk = db.TBStokProduks .Where(item => item.TBKombinasiProduk.TBProduk._IsActive && item.IDTempat == Pengguna.IDTempat) .Select(item => new { IDStokProduk = item.IDStokProduk, IDKombinasiProduk = item.IDKombinasiProduk, Kode = item.TBKombinasiProduk.KodeKombinasiProduk, RelasiKategoriProduk = item.TBKombinasiProduk.TBProduk.TBRelasiProdukKategoriProduks, Kategori = StokProduk_Class.GabungkanSemuaKategoriProduk(db, item, null), IDPemilikProduk = item.TBKombinasiProduk.TBProduk.IDPemilikProduk, PemilikProduk = item.TBKombinasiProduk.TBProduk.TBPemilikProduk.Nama, IDAtributProduk = item.TBKombinasiProduk.IDAtributProduk, AtributProduk = item.TBKombinasiProduk.TBAtributProduk.Nama, IDProduk = item.TBKombinasiProduk.IDProduk, Produk = item.TBKombinasiProduk.TBProduk.Nama, Jumlah = item.Jumlah, HargaBeli = item.HargaBeli, HargaJual = item.HargaJual }).ToArray(); if (DropDownListJenisStok.SelectedValue == "1") { DataStokProduk = DataStokProduk.Where(item => item.Jumlah > 0).ToArray(); } else if (DropDownListJenisStok.SelectedValue == "2") { DataStokProduk = DataStokProduk.Where(item => item.Jumlah == 0).ToArray(); } else if (DropDownListJenisStok.SelectedValue == "3") { DataStokProduk = DataStokProduk.Where(item => item.Jumlah < 0).ToArray(); } if (!string.IsNullOrWhiteSpace(TextBoxCariKode.Text)) { DataStokProduk = DataStokProduk.Where(item => item.Kode.ToLower().Contains(TextBoxCariKode.Text.ToLower())).ToArray(); TextBoxCariKode.Focus(); } if (!string.IsNullOrWhiteSpace(TextBoxCariProduk.Text)) { DataStokProduk = DataStokProduk.Where(item => item.Produk.ToLower().Contains(TextBoxCariProduk.Text.ToLower())).ToArray(); TextBoxCariProduk.Focus(); } if (DropDownListCariKategori.SelectedValue != "0") { DataStokProduk = DataStokProduk.Where(item => item.Kategori == DropDownListCariKategori.SelectedItem.Text).ToArray(); DropDownListCariKategori.Focus(); } if (DropDownListCariPemilik.SelectedValue != "0") { DataStokProduk = DataStokProduk.Where(item => item.PemilikProduk == DropDownListCariPemilik.SelectedItem.Text).ToArray(); DropDownListCariPemilik.Focus(); } RepeaterStokKombinasiProduk.DataSource = DataStokProduk; RepeaterStokKombinasiProduk.DataBind(); if (DataStokProduk.Count() > 0) { LabelTotalJumlahStok.Text = Pengaturan.FormatHarga(DataStokProduk.Sum(item => item.Jumlah)); } else { LabelTotalJumlahStok.Text = "0"; } } }
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 = ""; } }