private IEnumerable <dynamic> LoadDatabase() { using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { DateTime _tanggalAwal = DateTime.Now; Server.ScriptTimeout = 1000000; //QUERY DATA string _tempPencarian = string.Empty; //ButtonPrint.OnClientClick = "return popitup('ProdukPrint.aspx" + _tempPencarian + "')"; //Stok Awal : 1 //Restok : 2 //Reject : 18 //Bertambah //Berkurang //Stok Akhir var _database = db.TBKombinasiProduks.Select(item => item); #region PRODUK if (!string.IsNullOrWhiteSpace(TextBoxProduk.Text)) { _database = _database.Where(item => item.TBProduk.Nama.Contains(TextBoxProduk.Text)); TextBoxProduk.Focus(); _tempPencarian += "&Produk=" + TextBoxProduk.Text; } #endregion #region KODE if (!string.IsNullOrWhiteSpace(TextBoxKode.Text)) { _database = _database.Where(item => item.KodeKombinasiProduk.Contains(TextBoxKode.Text)); TextBoxKode.Focus(); _tempPencarian += "&Kode=" + TextBoxKode.Text; } #endregion #region WARNA if (DropDownListWarna.SelectedValue != "-1") { _database = _database.Where(item => item.TBProduk.IDWarna == DropDownListWarna.SelectedValue.ToInt()); TextBoxProduk.Focus(); _tempPencarian += "&IDWarna=" + DropDownListWarna.SelectedValue; } #endregion #region PEMILIK PRODUK if (DropDownListPemilik.SelectedValue != "-1") { _database = _database.Where(item => item.TBProduk.IDPemilikProduk == DropDownListPemilik.SelectedValue.ToInt()); TextBoxProduk.Focus(); _tempPencarian += "&IDPemilikProduk=" + DropDownListPemilik.SelectedValue; } #endregion #region ATRIBUT if (DropDownListVarian.SelectedValue != "-1") { _database = _database.Where(item => item.IDAtributProduk == DropDownListVarian.SelectedValue.ToInt()); TextBoxProduk.Focus(); _tempPencarian += "&IDAtribut=" + DropDownListVarian.SelectedValue; } #endregion #region KATEGORI if (DropDownListKategori.SelectedValue != "-1") { if (DropDownListKategori.SelectedValue == "0") { _database = _database.Where(item => item.TBProduk.TBRelasiProdukKategoriProduks.Count == 0); } else { _database = _database.Where(item => item.TBProduk.TBRelasiProdukKategoriProduks.Count > 0 && item.TBProduk.TBRelasiProdukKategoriProduks.FirstOrDefault().IDKategoriProduk == int.Parse(DropDownListKategori.SelectedValue)); } TextBoxProduk.Focus(); _tempPencarian += "&IDKategori=" + DropDownListKategori.SelectedValue; } #endregion #region QUERY DATA var _data = _database .Select(item => new { IDProduk = item.IDProduk, IDKombinasiProduk = item.IDKombinasiProduk, Produk = item.TBProduk.Nama, Warna = item.TBProduk.TBWarna.Nama ?? "", Brand = item.TBProduk.TBPemilikProduk.Nama ?? "", Kategori = item.TBProduk.TBRelasiProdukKategoriProduks.FirstOrDefault().TBKategoriProduk.Nama ?? "", Kode = item.KodeKombinasiProduk, Varian = item.TBAtributProduk.Nama ?? "", IDVendor = item.TBStokProduks .FirstOrDefault(item2 => item2.IDTempat == int.Parse(DropDownListTempat.SelectedValue)).TBHargaVendors.FirstOrDefault().IDVendor ?? 0, Vendor = item.TBStokProduks .FirstOrDefault(item2 => item2.IDTempat == int.Parse(DropDownListTempat.SelectedValue)).TBHargaVendors.FirstOrDefault().TBVendor.Nama ?? "", StokHarga = StokHarga(item.TBStokProduks.FirstOrDefault(item2 => item2.IDTempat == int.Parse(DropDownListTempat.SelectedValue))) }); #endregion #region HARGA BELI if (!string.IsNullOrWhiteSpace(TextBoxHargaBeli.Text)) { if (TextBoxHargaBeli.Text.Contains("-")) { string[] _angka = TextBoxHargaBeli.Text.Split('-'); _data = _data.Where(item => item.StokHarga[0] >= _angka[0].ToDecimal() && item.StokHarga[0] <= _angka[1].ToDecimal()).OrderBy(item => item.StokHarga[0]); } else { _data = _data.Where(item => item.StokHarga[0] == TextBoxHargaBeli.Text.ToDecimal()); } TextBoxHargaBeli.Focus(); _tempPencarian += "&HargaBeli=" + TextBoxHargaBeli.Text; } #endregion #region HARGA JUAL if (!string.IsNullOrWhiteSpace(TextBoxHargaJual.Text)) { if (TextBoxHargaJual.Text.Contains("-")) { string[] _angka = TextBoxHargaJual.Text.Split('-'); _data = _data.Where(item => item.StokHarga[1] >= _angka[0].ToDecimal() && item.StokHarga[1] <= _angka[1].ToDecimal()).OrderBy(item => item.StokHarga[1]); } else { _data = _data.Where(item => item.StokHarga[1] == TextBoxHargaJual.Text.ToDecimal()); } TextBoxHargaJual.Focus(); _tempPencarian += "&HargaJual=" + TextBoxHargaJual.Text; } #endregion #region STOK AWAL //if (!string.IsNullOrWhiteSpace(TextBoxStokAwal.Text)) //{ // if (TextBoxStokAwal.Text.Contains("-")) // { // string[] _angka = TextBoxStokAwal.Text.Split('-'); // _data = _data.Where(item => // item.StokAwal >= _angka[0].ToDecimal() && // item.StokAwal <= _angka[1].ToDecimal()).OrderBy(item => item.StokAwal); // } // else // _data = _data.Where(item => item.StokAwal == TextBoxStokAwal.Text.ToDecimal()); // TextBoxStokAwal.Focus(); // _tempPencarian += "&StokAwal=" + TextBoxStokAwal.Text; //} #endregion #region RESTOK //if (!string.IsNullOrWhiteSpace(TextBoxRestok.Text)) //{ // if (TextBoxRestok.Text.Contains("-")) // { // string[] _angka = TextBoxRestok.Text.Split('-'); // _data = _data.Where(item => // item.Restok >= _angka[0].ToDecimal() && // item.Restok <= _angka[1].ToDecimal()).OrderBy(item => item.Restok); // } // else // _data = _data.Where(item => item.Restok == TextBoxRestok.Text.ToDecimal()); // TextBoxRestok.Focus(); // _tempPencarian += "&Restok=" + TextBoxRestok.Text; //} #endregion #region VENDOR if (DropDownListVendor.SelectedValue != "-1") { if (DropDownListVendor.SelectedValue == "0") { _data = _data.Where(item => item.IDVendor == 0); } else { _data = _data.Where(item => item.IDVendor > 0 && item.IDVendor == int.Parse(DropDownListVendor.SelectedValue)); } TextBoxProduk.Focus(); _tempPencarian += "&IDVendor=" + DropDownListVendor.SelectedValue; } #endregion if (_data.Count() > 0) { var _kombinasiProduk = _data.Select(item => item.IDKombinasiProduk).Distinct(); var _dataKombinasiProduk = db.TBPerpindahanStokProduks .Where(item => item.IDTempat == int.Parse(DropDownListTempat.SelectedValue) && _kombinasiProduk.Any(item2 => item2 == item.TBStokProduk.IDKombinasiProduk)) .GroupBy(item => new { item.TBStokProduk.IDKombinasiProduk, item.IDJenisPerpindahanStok, item.TBJenisPerpindahanStok.Status }) .Select(item => new { Key = item.Key, Jumlah = item.Sum(item2 => item2.Jumlah) }); var _newData = _data.ToList() .Select(item => new { IDProduk = item.IDProduk, Produk = item.Produk, Warna = item.Warna, Brand = item.Brand, Kategori = item.Kategori, Kode = item.Kode, Varian = item.Varian, IDVendor = item.IDVendor, Vendor = item.Vendor, HargaBeli = item.StokHarga[0], HargaJual = item.StokHarga[1], StokAkhir = item.StokHarga[2], SubtotalHargaBeli = item.StokHarga[3], SubtotalHargaJual = item.StokHarga[4], SubtotalKeuntungan = item.StokHarga[5], //PerpindahanStok = PerpindahanStok(item.IDKombinasiProduk, int.Parse(DropDownListTempat.SelectedValue)) StokAwal = _dataKombinasiProduk.Where(item2 => item2.Key.IDKombinasiProduk == item.IDKombinasiProduk && item2.Key.IDJenisPerpindahanStok == 1).Sum(item2 => item2.Jumlah), Restok = _dataKombinasiProduk.Where(item2 => item2.Key.IDKombinasiProduk == item.IDKombinasiProduk && item2.Key.IDJenisPerpindahanStok == 2).Sum(item2 => item2.Jumlah), Reject = _dataKombinasiProduk.Where(item2 => item2.Key.IDKombinasiProduk == item.IDKombinasiProduk && item2.Key.IDJenisPerpindahanStok == 18).Sum(item2 => item2.Jumlah), Bertambah = _dataKombinasiProduk.Where(item2 => item2.Key.IDKombinasiProduk == item.IDKombinasiProduk && item2.Key.IDJenisPerpindahanStok != 1 && item2.Key.IDJenisPerpindahanStok != 2 && item2.Key.Status == true).Sum(item2 => item2.Jumlah), Berkurang = _dataKombinasiProduk.Where(item2 => item2.Key.IDKombinasiProduk == item.IDKombinasiProduk && item2.Key.IDJenisPerpindahanStok != 18 && item2.Key.Status == false).Sum(item2 => item2.Jumlah), }); LabelTotalStokAkhir.Text = _newData.Sum(item => item.StokAkhir).ToFormatHargaBulat(); LabelTotalHargaBeli.Text = _newData.Sum(item => item.SubtotalHargaBeli).ToFormatHarga(); LabelTotalHargaJual.Text = _newData.Sum(item => item.SubtotalHargaJual).ToFormatHarga(); LabelTotalKeuntungan.Text = _newData.Sum(item => item.SubtotalKeuntungan).ToFormatHarga(); LabelTotalStokAkhir1.Text = LabelTotalStokAkhir.Text; LabelTotalHargaBeli1.Text = LabelTotalHargaBeli.Text; LabelTotalHargaJual1.Text = LabelTotalHargaJual.Text; LabelTotalKeuntungan1.Text = LabelTotalKeuntungan.Text; LabelTotalHeader.Text = "TOTAL"; LabelTotalFooter.Text = "TOTAL"; RepeaterLaporaKolom1.DataSource = _newData; RepeaterLaporaKolom1.DataBind(); RepeaterLaporan.DataSource = _newData; RepeaterLaporan.DataBind(); DateTime _tanggalAkhir = DateTime.Now; Response.Write(_tanggalAwal + "<br/>"); Response.Write(_tanggalAkhir + "<br/>"); Response.Write(_tanggalAkhir - _tanggalAwal); return(_newData); } else { LabelTotalStokAkhir.Text = "0"; LabelTotalHargaBeli.Text = "0"; LabelTotalHargaJual.Text = "0"; LabelTotalKeuntungan.Text = "0"; LabelTotalStokAkhir1.Text = LabelTotalStokAkhir.Text; LabelTotalHargaBeli1.Text = LabelTotalHargaBeli.Text; LabelTotalHargaJual1.Text = LabelTotalHargaJual.Text; LabelTotalKeuntungan1.Text = LabelTotalKeuntungan.Text; RepeaterLaporan.DataSource = null; RepeaterLaporan.DataBind(); return(null); } } }
private IQueryable <dynamic> LoadStokProduk() { DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext(); string _tempPencarian = string.Empty; #region TEMPAT _tempPencarian = "?IDTempat=" + DropDownListTempat.SelectedValue; IQueryable <TBStokProduk> _stokProduk; if (DropDownListTempat.SelectedValue == "0") { _stokProduk = db.TBStokProduks.Where(item => item.TBKombinasiProduk.TBProduk._IsActive); } else { _stokProduk = db.TBStokProduks .Where(item => item.IDTempat == DropDownListTempat.SelectedValue.ToInt() && item.TBKombinasiProduk.TBProduk._IsActive); } #endregion #region STATUS STOK _tempPencarian += "&IDJenisStok=" + DropDownListJenisStok.SelectedValue; if (DropDownListJenisStok.SelectedValue == "1") { _stokProduk = _stokProduk.Where(item => item.Jumlah > 0); } else if (DropDownListJenisStok.SelectedValue == "2") { _stokProduk = _stokProduk.Where(item => item.Jumlah == 0); } else if (DropDownListJenisStok.SelectedValue == "3") { _stokProduk = _stokProduk.Where(item => item.Jumlah < 0); } #endregion #region KODE if (!string.IsNullOrWhiteSpace(TextBoxKode.Text)) { _stokProduk = _stokProduk.Where(item => item.TBKombinasiProduk.KodeKombinasiProduk.Contains(TextBoxKode.Text)); TextBoxKode.Focus(); _tempPencarian += "&Kode=" + TextBoxKode.Text; } #endregion #region PRODUK if (!string.IsNullOrWhiteSpace(TextBoxProduk.Text)) { _stokProduk = _stokProduk.Where(item => item.TBKombinasiProduk.TBProduk.Nama.Contains(TextBoxProduk.Text)); TextBoxProduk.Focus(); _tempPencarian += "&Produk=" + TextBoxProduk.Text; } #endregion #region WARNA if (DropDownListWarna.SelectedValue != "-1") { _stokProduk = _stokProduk.Where(item => item.TBKombinasiProduk.TBProduk.IDWarna == DropDownListWarna.SelectedValue.ToInt()); TextBoxProduk.Focus(); _tempPencarian += "&IDWarna=" + DropDownListWarna.SelectedValue; } #endregion #region HARGA JUAL if (!string.IsNullOrWhiteSpace(TextBoxHargaJual.Text)) { if (TextBoxHargaJual.Text.Contains("-")) { string[] _angka = TextBoxHargaJual.Text.Split('-'); _stokProduk = _stokProduk.Where(item => item.HargaJual >= _angka[0].ToDecimal() && item.HargaJual <= _angka[1].ToDecimal()).OrderBy(item => item.HargaJual); } else { _stokProduk = _stokProduk.Where(item => item.HargaJual == TextBoxHargaJual.Text.ToDecimal()); } TextBoxHargaJual.Focus(); _tempPencarian += "&HargaJual=" + TextBoxHargaJual.Text; } #endregion #region STOK PRODUK if (!string.IsNullOrWhiteSpace(TextBoxStok.Text)) { if (TextBoxStok.Text.Contains("-")) { string[] _angka = TextBoxStok.Text.Split('-'); _stokProduk = _stokProduk.Where(item => item.Jumlah >= _angka[0].ToInt() && item.Jumlah <= _angka[1].ToInt()).OrderBy(item => item.Jumlah); } else { _stokProduk = _stokProduk.Where(item => item.Jumlah == TextBoxStok.Text.ToInt()); } TextBoxStok.Focus(); _tempPencarian += "&Stok=" + TextBoxStok.Text; } #endregion #region PEMILIK PRODUK if (DropDownListPemilik.SelectedValue != "-1") { _stokProduk = _stokProduk.Where(item => item.TBKombinasiProduk.TBProduk.IDPemilikProduk == DropDownListPemilik.SelectedValue.ToInt()); TextBoxProduk.Focus(); _tempPencarian += "&IDPemilikProduk=" + DropDownListPemilik.SelectedValue; } #endregion #region ATRIBUT if (DropDownListVarian.SelectedValue != "-1") { _stokProduk = _stokProduk.Where(item => item.TBKombinasiProduk.IDAtributProduk == DropDownListVarian.SelectedValue.ToInt()); TextBoxProduk.Focus(); _tempPencarian += "&IDAtribut=" + DropDownListVarian.SelectedValue; } #endregion #region KATEGORI if (DropDownListKategori.SelectedValue != "-1") { if (DropDownListKategori.SelectedValue == "0") { _stokProduk = _stokProduk.Where(item => item.TBKombinasiProduk.TBProduk.TBRelasiProdukKategoriProduks.Count == 0); } else { _stokProduk = _stokProduk.Where(item => item.TBKombinasiProduk.TBProduk.TBRelasiProdukKategoriProduks.Count > 0 && item.TBKombinasiProduk.TBProduk.TBRelasiProdukKategoriProduks.FirstOrDefault().IDKategoriProduk == int.Parse(DropDownListKategori.SelectedValue)); } TextBoxProduk.Focus(); _tempPencarian += "&IDKategori=" + DropDownListKategori.SelectedValue; } #endregion var _dataStok = _stokProduk.Select(item => new { IDProduk = item.TBKombinasiProduk.TBProduk.IDProduk, IDKombinasiProduk = item.IDKombinasiProduk, Kode = item.TBKombinasiProduk.KodeKombinasiProduk, Atribut = item.TBKombinasiProduk.TBAtributProduk.Nama, HargaJual = item.HargaJual.Value, Jumlah = item.Jumlah.Value }); ButtonPrint.OnClientClick = "return popitup('ProdukPrint.aspx" + _tempPencarian + "')"; if (_dataStok.Count() > 0) { var _dataProduk = _dataStok.Select(item => item.IDProduk).Distinct(); var _produk = db.TBProduks .Where(item => _dataProduk.Any(item2 => item2 == item.IDProduk)) .Select(item => new { ID = item.IDProduk, Produk = item.Nama, Kategori = (item.TBRelasiProdukKategoriProduks.Count > 0) ? item.TBRelasiProdukKategoriProduks.FirstOrDefault().TBKategoriProduk.Nama : "", PemilikProduk = item.TBPemilikProduk.Nama, Warna = item.TBWarna.Nama, Stok = _dataStok.Where(item2 => item2.IDProduk == item.IDProduk) }).OrderBy(item => item.Produk); RepeaterProduk.DataSource = _produk; RepeaterProduk.DataBind(); LabelTotalJumlah.Text = _dataStok.Sum(item => item.Jumlah).ToFormatHargaBulat(); LabelTotalNominal.Text = _dataStok.ToArray().Sum(item => item.Jumlah * item.HargaJual).ToFormatHarga(); return(_produk); } else { RepeaterProduk.DataSource = null; RepeaterProduk.DataBind(); LabelTotalJumlah.Text = "0"; LabelTotalNominal.Text = "0"; return(null); } }