public Dictionary <string, dynamic> TEMPLATE() { Dictionary <string, dynamic> Result = new Dictionary <string, dynamic>(); var Data = db.TBTransaksis .Where(item => item.TanggalOperasional.Value >= tanggalAwal && item.TanggalOperasional.Value <= tanggalAkhir) .ToArray(); tempPencarian += "?TanggalAwal=" + tanggalAwal; tempPencarian += "&TanggalAkhir=" + tanggalAkhir; var DataResult = Data.Select(item => new { item.IDTransaksi, }); if (excel) { #region EXCEL Excel_Class Excel_Class = new Excel_Class(pengguna, "Transaksi", Periode, 27); ExcelWorksheet Worksheet = Excel_Class.Worksheet; Excel_Class.Header(1, "No."); Excel_Class.Header(2, "Transaksi"); int index = 2; foreach (var item in Data) { Excel_Class.Content(index, 1, index - 1); Excel_Class.Content(index, 2, item.IDTransaksi); index++; } Excel_Class.Save(); linkDownload = Excel_Class.LinkDownload; #endregion } Result.Add("Data", DataResult); Result.Add("JumlahTamu", Pengaturan.FormatHarga(Data.Sum(item => item.JumlahTamu))); return(Result); }
public dynamic[] TopKombinasiProduk() { string judul = "Produk dan Varian"; int JumlahKolom = 10; using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { #region DEFAULT QUERY var DetailTransaksi = db.TBTransaksiDetails .Where(item => item.TBTransaksi.TanggalOperasional.Value.Date >= tanggalAwal && item.TBTransaksi.TanggalOperasional.Value.Date <= tanggalAkhir && item.TBTransaksi.IDStatusTransaksi == (int)EnumStatusTransaksi.Complete) .ToArray(); tempPencarian += "?TanggalAwal=" + tanggalAwal; tempPencarian += "&TanggalAkhir=" + tanggalAkhir; if (idTempat > 0) { DetailTransaksi = DetailTransaksi.Where(item => item.TBTransaksi.IDTempat == idTempat).ToArray(); } tempPencarian += "&IDTempat=" + idTempat; if (idJenisTransaksi > 0) { DetailTransaksi = DetailTransaksi.Where(item => item.TBTransaksi.IDJenisTransaksi == idJenisTransaksi).ToArray(); } tempPencarian += "&IDJenisTransaksi=" + idJenisTransaksi; totalQuantity = DetailTransaksi.Sum(item => (decimal)item.Quantity); totalPenjualan = DetailTransaksi.Sum(item => item.Subtotal.Value); totalDiscount = DetailTransaksi.Sum(item => item.Discount.Value * item.Quantity); #endregion var Result = DetailTransaksi .GroupBy(item => new { Produk = item.TBKombinasiProduk.TBProduk.Nama, Varian = item.TBKombinasiProduk.TBAtributProduk.Nama, Warna = item.TBKombinasiProduk.TBProduk.TBWarna.Nama, Kategori = item.TBKombinasiProduk.TBProduk.TBRelasiProdukKategoriProduks.Count == 0 ? "" : item.TBKombinasiProduk.TBProduk.TBRelasiProdukKategoriProduks.Count == 1 ? item.TBKombinasiProduk.TBProduk.TBRelasiProdukKategoriProduks.FirstOrDefault().TBKategoriProduk.Nama : item.TBKombinasiProduk.TBProduk.TBRelasiProdukKategoriProduks.Skip(1).FirstOrDefault().TBKategoriProduk.Nama, Brand = item.TBKombinasiProduk.TBProduk.TBPemilikProduk.Nama }) .Select(item => new { Key = item.Key, Quantity = item.Sum(item2 => item2.Quantity), TotalDiscount = item.Sum(item2 => item2.Discount * item2.Quantity), TotalPenjualan = item.Sum(item2 => item2.Subtotal), Persentase = (orderBy == 1) ? item.Sum(item2 => (decimal)item2.Quantity) / totalQuantity * 100 : (orderBy == 2) ? item.Sum(item2 => item2.Discount * (decimal)item2.Quantity) / totalDiscount * 100 : (orderBy == 3) ? item.Sum(item2 => item2.Subtotal.Value) / totalPenjualan * 100 : (item.Sum(item2 => (decimal)item2.Quantity) / totalQuantity * 100) + (item.Sum(item2 => item2.Subtotal.Value) / totalPenjualan * 100) }) .OrderByDescending(item => item.Persentase) .ToArray(); tempPencarian += "&OrderBy=" + orderBy; if (excel) { #region EXCEL Excel_Class Excel_Class = new Excel_Class(pengguna, judul, Periode, JumlahKolom); ExcelWorksheet Worksheet = Excel_Class.Worksheet; Excel_Class.Header(1, "No."); Excel_Class.Header(2, "Produk"); Excel_Class.Header(3, "Varian"); Excel_Class.Header(4, "Warna"); Excel_Class.Header(5, "Kategori"); Excel_Class.Header(6, "Brand"); Excel_Class.Header(7, "Quantity"); Excel_Class.Header(8, "Total Discount"); Excel_Class.Header(9, "Total Penjualan"); Excel_Class.Header(10, "%"); int index = 2; foreach (var item in Result) { Excel_Class.Content(index, 1, index - 1); Excel_Class.Content(index, 2, item.Key.Produk); Excel_Class.Content(index, 3, item.Key.Varian); Excel_Class.Content(index, 4, item.Key.Warna); Excel_Class.Content(index, 5, item.Key.Kategori); Excel_Class.Content(index, 6, item.Key.Brand); Excel_Class.Content(index, 7, item.Quantity); Excel_Class.Content(index, 8, item.TotalDiscount); Excel_Class.Content(index, 9, item.TotalPenjualan.Value); Excel_Class.Content(index, 10, item.Persentase); index++; } Excel_Class.Save(); linkDownload = Excel_Class.LinkDownload; #endregion } if (chart) { #region CHART //MENGHITUNG JUMLAH DATA jumlahData = Result.Count(); Chart_Class Chart_Class = new Chart_Class(); Chart_Class.JudulX = judul; Chart_Class.JudulY = judul; string DataX = string.Empty; string DataY = string.Empty; foreach (var item in Result) { DataX += "\"" + item.Key.Produk + (!string.IsNullOrWhiteSpace(item.Key.Varian) ? " (" + item.Key.Varian + ")" : "") + "\","; switch (orderBy) { case 0: { Chart_Class.Tooltip = " %"; DataY += Math.Round(item.Persentase.Value, 2) + ","; } break; case 1: DataY += item.Quantity + ","; break; case 2: DataY += item.TotalDiscount + ","; break; case 3: DataY += item.TotalPenjualan + ","; break; } } Chart_Class.DataX = DataX; Chart_Class.DataY = DataY; Chart_Class.ChartHorizontal(); javascriptChart = Chart_Class.Javascript; #endregion } return(Result); } }
public Dictionary <string, dynamic> CustomerTransaksiBrandKategoriProduk(List <int> ListIDGrupPelanggan) { Dictionary <string, dynamic> Result = new Dictionary <string, dynamic>(); TBTransaksiDetail[] ListTransaksiDetail = db.TBTransaksiDetails .Where(item => item.TBTransaksi.TanggalOperasional.Value.Date >= tanggalAwal && item.TBTransaksi.TanggalOperasional.Value.Date <= tanggalAkhir && item.TBTransaksi.IDStatusTransaksi != (int)EnumStatusTransaksi.Canceled) .ToArray(); #region FILTER GRUP PELANGGAN if (ListIDGrupPelanggan.Count > 0) { JenisTransaksi_Class JenisTransaksi_Class = new JenisTransaksi_Class(); string tempListGrupPelanggan = "Grup Pelanggan : "; foreach (var item in ListIDGrupPelanggan) { tempListGrupPelanggan += db.TBGrupPelanggans.FirstOrDefault(item2 => item2.IDGrupPelanggan == item).Nama + ", "; } Result.Add("ListGrupPelanggan", tempListGrupPelanggan.Substring(0, tempListGrupPelanggan.Length - 2)); ListTransaksiDetail = ListTransaksiDetail.Where(item => ListIDGrupPelanggan.Contains(item.TBTransaksi.TBPelanggan.IDGrupPelanggan)).ToArray(); } else { Result.Add("ListGrupPelanggan", "Semua Grup Pelanggan"); } #endregion var Data = ListTransaksiDetail .GroupBy(item => new { item.TBKombinasiProduk.TBProduk.TBPemilikProduk, item.TBKombinasiProduk }) .Select(item => new { KodeKombinasiProduk = item.Key.TBKombinasiProduk.KodeKombinasiProduk, PemilikProduk = item.Key.TBPemilikProduk.Nama, Produk = item.Key.TBKombinasiProduk.TBProduk.Nama, AtributProduk = item.Key.TBKombinasiProduk.TBAtributProduk.Nama, IDPemilikProduk = item.Key.TBKombinasiProduk.TBProduk.IDPemilikProduk, IDProduk = item.Key.TBKombinasiProduk.TBProduk.IDProduk, IDAtributProduk = item.Key.TBKombinasiProduk.IDAtributProduk, RelasiKategori = item.Key.TBKombinasiProduk.TBProduk.TBRelasiProdukKategoriProduks, Kategori = item.Key.TBKombinasiProduk.TBProduk.TBRelasiProdukKategoriProduks.FirstOrDefault().TBKategoriProduk.Nama, JumlahProduk = item.Sum(item2 => item2.Quantity), HargaPokok = item.Sum(item2 => item2.HargaBeli * item2.Quantity), HargaJual = item.Sum(item2 => item2.HargaJual * item2.Quantity), PotonganHargaJual = item.Sum(item2 => item2.Discount * item2.Quantity), Subtotal = item.Sum(item2 => item2.Subtotal), PenjualanBersih = item.Sum(item2 => (item2.HargaJual - item2.Discount - item2.HargaBeli) * item2.Quantity), }).OrderBy(item => item.IDPemilikProduk).ThenBy(item => item.Produk).ThenBy(item => item.IDAtributProduk); var DataResult = db.TBPemilikProduks.AsEnumerable().Where(item => Data.Any(data => data.IDPemilikProduk == item.IDPemilikProduk)).Select(item => new { PemilikProduk = item.Nama, Body = db.TBKategoriProduks.AsEnumerable().Where(item2 => Data.Where(item3 => item3.IDPemilikProduk == item.IDPemilikProduk).Any(item3 => item3.RelasiKategori.FirstOrDefault(relasi => relasi.IDKategoriProduk == item2.IDKategoriProduk) != null)).Select(item2 => new { KategoriProduk = item2.Nama, Body = Data.Where(item3 => item3.IDPemilikProduk == item.IDPemilikProduk && item3.RelasiKategori.FirstOrDefault(relasi => relasi.IDKategoriProduk == item2.IDKategoriProduk) != null), TotalJumlahProduk = Data.Where(item3 => item3.IDPemilikProduk == item.IDPemilikProduk && item3.RelasiKategori.FirstOrDefault(relasi => relasi.IDKategoriProduk == item2.IDKategoriProduk) != null).Sum(item3 => item3.JumlahProduk), TotalHargaPokok = Data.Where(item3 => item3.IDPemilikProduk == item.IDPemilikProduk && item3.RelasiKategori.FirstOrDefault(relasi => relasi.IDKategoriProduk == item2.IDKategoriProduk) != null).Sum(item3 => item3.HargaPokok), TotalHargaJual = Data.Where(item3 => item3.IDPemilikProduk == item.IDPemilikProduk && item3.RelasiKategori.FirstOrDefault(relasi => relasi.IDKategoriProduk == item2.IDKategoriProduk) != null).Sum(item3 => item3.HargaJual), TotalPotonganHargaJual = Data.Where(item3 => item3.IDPemilikProduk == item.IDPemilikProduk && item3.RelasiKategori.FirstOrDefault(relasi => relasi.IDKategoriProduk == item2.IDKategoriProduk) != null).Sum(item3 => item3.PotonganHargaJual), TotalSubtotal = Data.Where(item3 => item3.IDPemilikProduk == item.IDPemilikProduk && item3.RelasiKategori.FirstOrDefault(relasi => relasi.IDKategoriProduk == item2.IDKategoriProduk) != null).Sum(item3 => item3.Subtotal), TotalPenjualanBersih = Data.Where(item3 => item3.IDPemilikProduk == item.IDPemilikProduk && item3.RelasiKategori.FirstOrDefault(relasi => relasi.IDKategoriProduk == item2.IDKategoriProduk) != null).Sum(item3 => item3.PenjualanBersih), }).ToArray(), TotalJumlahProduk = Data.Where(data => data.IDPemilikProduk == item.IDPemilikProduk).Sum(data => data.JumlahProduk), TotalHargaPokok = Data.Where(data => data.IDPemilikProduk == item.IDPemilikProduk).Sum(data => data.HargaPokok), TotalHargaJual = Data.Where(data => data.IDPemilikProduk == item.IDPemilikProduk).Sum(data => data.HargaJual), TotalPotonganHargaJual = Data.Where(data => data.IDPemilikProduk == item.IDPemilikProduk).Sum(data => data.PotonganHargaJual), TotalSubtotal = Data.Where(data => data.IDPemilikProduk == item.IDPemilikProduk).Sum(data => data.Subtotal), TotalPenjualanBersih = Data.Where(data => data.IDPemilikProduk == item.IDPemilikProduk).Sum(data => data.PenjualanBersih), }).ToArray(); if (excel) { #region EXCEL Excel_Class Excel_Class = new Excel_Class(pengguna, "Transaksi", Periode, 27); ExcelWorksheet Worksheet = Excel_Class.Worksheet; Excel_Class.Header(1, "No."); Excel_Class.Header(2, "Transaksi"); int index = 2; foreach (var item in ListTransaksiDetail) { Excel_Class.Content(index, 1, index - 1); Excel_Class.Content(index, 2, item.IDTransaksi); index++; } Excel_Class.Save(); linkDownload = Excel_Class.LinkDownload; #endregion } Result.Add("Data", DataResult); return(Result); }
protected void ButtonExcel_Click(object sender, EventArgs e) { using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"]; Excel_Class Excel_Class = new Excel_Class(pengguna, "Neraca", DropDownListBulan.SelectedItem.Text + " " + DropDownListTahun.SelectedItem.Text, 4); var result = new Excel_Class(pengguna, "Neraca", DropDownListBulan.SelectedItem.Text + " " + DropDownListTahun.SelectedItem.Text, 4); ExcelWorksheet Worksheet = Excel_Class.Worksheet; Excel_Class.Header(1, "No"); Excel_Class.Header(2, "Kode"); Excel_Class.Header(3, "Nama"); Excel_Class.Header(4, "Nominal"); Excel_Class.SetBackground(1, 1, Color.Black); Excel_Class.SetBackground(1, 2, Color.Black); Excel_Class.SetBackground(1, 3, Color.Black); Excel_Class.SetBackground(1, 4, Color.Black); Excel_Class.SetColor(1, 1, Color.White); Excel_Class.SetColor(1, 2, Color.White); Excel_Class.SetColor(1, 3, Color.White); Excel_Class.SetColor(1, 4, Color.White); int index = 2; foreach (var item in LoadNeraca(db)) { if (item.TBAkunGrup == null) { Excel_Class.SetBackground(index, 1, Color.LightGreen); Excel_Class.SetBackground(index, 2, Color.LightGreen); Excel_Class.SetBackground(index, 3, Color.LightGreen); Excel_Class.SetBackground(index, 4, Color.LightGreen); Excel_Class.SetColor(index, 1, Color.Black); Excel_Class.SetColor(index, 2, Color.Black); Excel_Class.SetColor(index, 3, Color.Black); Excel_Class.SetColor(index, 4, Color.Black); } else { if (item.Grup == true) { Excel_Class.SetBackground(index, 1, Color.LightYellow); Excel_Class.SetBackground(index, 2, Color.LightYellow); Excel_Class.SetBackground(index, 3, Color.LightYellow); Excel_Class.SetBackground(index, 4, Color.LightYellow); Excel_Class.SetColor(index, 1, Color.Black); Excel_Class.SetColor(index, 2, Color.Black); Excel_Class.SetColor(index, 3, Color.Black); Excel_Class.SetColor(index, 4, Color.Black); } } Excel_Class.Content(index, 1, item.Nomor.Replace(" ", "")); Excel_Class.Content(index, 2, item.Grup == true ? string.Empty : item.Kode); Excel_Class.Content(index, 3, item.Nama); Excel_Class.Content(index, 4, item.Grup == true ? string.Empty : item.Nominal.ToString()); index++; } List <ListAkun> listAkun = new List <ListAkun>(); var result2 = db.TBAkunGrups.Where(item => item.IDAkunGrupParent == null && (item.IDAkunGrup != 4 && item.IDAkunGrup != 5)).ToArray(); //CARI AKUN GRUP CariAkunGrup("1", result2, listAkun); var dataBulanIni = Akuntansi_Class.LaporanLabaRugi(DropDownListBulan.SelectedItem.Value, DropDownListTahun.SelectedItem.Value, false, pengguna, ""); var dataBulanSebelumnya = Akuntansi_Class.LaporanLabaRugi(((DropDownListBulan.SelectedItem.Value).ToInt() - 1).ToString(), DropDownListTahun.SelectedItem.Value, false, pengguna, ""); decimal LabaRugiBerjalan = dataBulanIni["TotalLabaRugi"]; decimal LabaRugiBulanSebelumnya = dataBulanSebelumnya["TotalLabaRugi"]; Excel_Class.Content(index, 1, "Laba Rugi Bulan Berjalan"); Excel_Class.Content(index, 2, ""); Excel_Class.Content(index, 3, ""); Excel_Class.Content(index, 4, LabaRugiBerjalan); Excel_Class.Content(index + 1, 1, "Laba Rugi Bulan Sebelumnya"); Excel_Class.Content(index + 1, 2, ""); Excel_Class.Content(index + 1, 3, ""); Excel_Class.Content(index + 1, 4, LabaRugiBulanSebelumnya); Excel_Class.Save(); LinkDownload.Visible = true; ButtonExcel.Visible = false; if (LinkDownload.Visible) { LinkDownload.HRef = Excel_Class.LinkDownload; } } }