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); }
public static Dictionary <string, dynamic> LaporanLabaRugi(bool _excel, PenggunaLogin pengguna, string tipeLaporan, string _tgl1, string _tgl2) { Dictionary <string, dynamic> Result = new Dictionary <string, dynamic>(); using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { DateTime Tanggal1, Tanggal2; Tanggal1 = DateTime.Parse(_tgl1).Date; Tanggal2 = DateTime.Parse(_tgl2).Date; var Pemasukan = db.TBAkuns .Where(item => item.TBAkunGrup.IDAkunGrupParent == 4 && item.IDTempat == pengguna.IDTempat) .Select(item => new { item.IDAkun, item.Nama, Saldo = HitungSaldo(item.TBJurnalDetails .Where(item2 => item2.TBJurnal.Tanggal.Value.Date >= DateTime.Parse(_tgl1) && item2.TBJurnal.Tanggal.Value.Date <= DateTime.Parse(_tgl2) && item2.TBJurnal.IDTempat == pengguna.IDTempat).ToArray(), true) }).ToArray(); var Pengeluaran = db.TBAkuns .Where(item => item.TBAkunGrup.IDAkunGrupParent == 5 && item.IDTempat == pengguna.IDTempat) .Select(item => new { TBAkunGrup = item.TBAkunGrup, item.Nama, item.IDAkun, Saldo = HitungSaldo(item.TBJurnalDetails .Where(item2 => item2.TBJurnal.Tanggal.Value.Date >= DateTime.Parse(_tgl1) && item2.TBJurnal.Tanggal.Value.Date <= DateTime.Parse(_tgl2) && item2.TBJurnal.IDTempat == pengguna.IDTempat).ToArray(), true) }).ToArray(); var OPEX = Pengeluaran.Where(item => item.TBAkunGrup.Nama != "Taxation" && item.IDAkun != 404 && item.Nama != "Beban Bunga"); var PengeluaranTaxInterest = Pengeluaran.Where(item => item.TBAkunGrup.Nama == "Taxation" || item.Nama == "Beban Bunga"); decimal TotalPemasukan = Pemasukan.Sum(item => item.Saldo); decimal TotalPengeluaran = Pengeluaran.Sum(item => item.Saldo); decimal TotalLabaRugi = TotalPemasukan - TotalPengeluaran; #region MOD TEST string NamaAkunPenjualan = Pemasukan.FirstOrDefault(item => item.Nama.ToUpper() == "PENJUALAN").Nama; decimal NominalAkunPenjualan = Pemasukan.FirstOrDefault(item => item.Nama.ToUpper() == "PENJUALAN").Saldo; string NamaAkunCOGS = Pengeluaran.FirstOrDefault(item => item.Nama == "Harga Pokok Penjualan").Nama; decimal NominalCOGS = Pengeluaran.FirstOrDefault(item => item.Nama == "Harga Pokok Penjualan").Saldo; decimal NominalGrossProfit = NominalAkunPenjualan - NominalCOGS; decimal NominalOPEX = OPEX.Sum(item2 => item2.Saldo); decimal NominalEBIT = NominalGrossProfit - NominalOPEX + Pemasukan.Where(item => item.IDAkun != 388).Sum(item2 => item2.Saldo); decimal NominalNetIncome = NominalEBIT - PengeluaranTaxInterest.Sum(item => item.Saldo); Result.Add("NamaAkunPenjualan", NamaAkunPenjualan); Result.Add("NominalAkunPenjualan", NominalAkunPenjualan); Result.Add("NamaAkunCOGS", NamaAkunCOGS); Result.Add("NominalOPEX", NominalOPEX); Result.Add("NominalCOGS", NominalCOGS); Result.Add("NominalGrossProfit", NominalGrossProfit); Result.Add("NominalEBIT", NominalEBIT); Result.Add("NominalNetIncome", NominalNetIncome); #endregion Result.Add("Pemasukan", Pemasukan.Where(item => item.IDAkun != 388)); Result.Add("Pengeluaran", OPEX); Result.Add("PengeluaranTax", PengeluaranTaxInterest); Result.Add("TotalPemasukan", TotalPemasukan); Result.Add("TotalPengeluaran", TotalPengeluaran); Result.Add("TotalLabaRugi", TotalLabaRugi); if (_excel) { string periode = Tanggal1 + " - " + Tanggal2; if (tipeLaporan == "LabaRugi") { #region EXCEL LABA RUGI Excel_Class Excel_Class = new Excel_Class(pengguna, "Laba Rugi", periode, 5); ExcelWorksheet Worksheet = Excel_Class.Worksheet; using (var range = Worksheet.Cells[1, 1, 2, 2]) { range.Style.Font.Bold = true; range.Merge = true; range.Style.HorizontalAlignment = ExcelHorizontalAlignment.Center; range.Style.VerticalAlignment = ExcelVerticalAlignment.Center; } Excel_Class.Content(1, 1, "Pemasukan"); using (var range = Worksheet.Cells[1, 3, 2, 4]) { range.Style.Font.Bold = true; range.Merge = true; range.Style.HorizontalAlignment = ExcelHorizontalAlignment.Center; range.Style.VerticalAlignment = ExcelVerticalAlignment.Center; } Excel_Class.Content(1, 3, "Pengeluaran"); Worksheet.Cells[3, 1].Value = "Akun"; Worksheet.Cells[3, 2].Value = "Saldo"; Worksheet.Cells[3, 3].Value = "Akun"; Worksheet.Cells[3, 4].Value = "Saldo"; int index = 4; foreach (var item in Pemasukan) { Excel_Class.Content(index, 1, item.Nama); Excel_Class.Content(index, 2, item.Saldo); index++; } index = 4; foreach (var item in Pengeluaran) { Excel_Class.Content(index, 3, item.Nama); Excel_Class.Content(index, 4, item.Saldo); index++; } Excel_Class.Save(); linkDownload = Excel_Class.LinkDownload; #endregion } } } return(Result); }
public static Dictionary <string, dynamic> LaporanLabaRugi(string bulan, string tahun, bool _excel, PenggunaLogin pengguna, string tipeLaporan) { Dictionary <string, dynamic> Result = new Dictionary <string, dynamic>(); using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { var Pemasukan = db.TBAkuns .Where(item => item.TBAkunGrup.IDAkunGrupParent == 4) .Select(item => new { item.IDAkun, item.Nama, Saldo = HitungSaldo(item.TBJurnalDetails .Where(item2 => item2.TBJurnal.Tanggal.Value.Year == tahun.ToInt() && item2.TBJurnal.Tanggal.Value.Month == bulan.ToInt() && item2.TBJurnal.IDTempat == pengguna.IDTempat).ToArray(), true) }).ToArray(); var Pengeluaran = db.TBAkuns .Where(item => item.TBAkunGrup.IDAkunGrupParent == 5) .Select(item => new { TBAkunGrup = item.TBAkunGrup, item.Nama, item.IDAkun, Saldo = HitungSaldo(item.TBJurnalDetails .Where(item2 => item2.TBJurnal.Tanggal.Value.Year == tahun.ToInt() && item2.TBJurnal.Tanggal.Value.Month == bulan.ToInt() && item2.TBJurnal.IDTempat == pengguna.IDTempat).ToArray(), true) }).ToArray(); var OPEX = Pengeluaran.Where(item => item.TBAkunGrup.Nama != "Taxation" && item.IDAkun != 404 && item.Nama != "Beban Bunga"); var PengeluaranTaxInterest = Pengeluaran.Where(item => item.TBAkunGrup.Nama == "Taxation" || item.Nama == "Beban Bunga"); decimal TotalPemasukan = Pemasukan.Sum(item => item.Saldo); decimal TotalPengeluaran = Pengeluaran.Sum(item => item.Saldo); decimal TotalLabaRugi = TotalPemasukan - TotalPengeluaran; #region MOD TEST string NamaAkunPenjualan = Pemasukan.FirstOrDefault(item => item.Nama.ToUpper() == "PENJUALAN").Nama; decimal NominalAkunPenjualan = Pemasukan.FirstOrDefault(item => item.Nama.ToUpper() == "PENJUALAN").Saldo; string NamaAkunCOGS = Pengeluaran.FirstOrDefault(item => item.Nama == "Harga Pokok Penjualan").Nama; decimal NominalCOGS = Pengeluaran.FirstOrDefault(item => item.Nama == "Harga Pokok Penjualan").Saldo; decimal NominalGrossProfit = NominalAkunPenjualan - NominalCOGS; decimal NominalOPEX = OPEX.Sum(item2 => item2.Saldo); decimal NominalEBIT = NominalGrossProfit - NominalOPEX + Pemasukan.Where(item => item.IDAkun != 388).Sum(item2 => item2.Saldo); decimal NominalNetIncome = NominalEBIT - PengeluaranTaxInterest.Sum(item => item.Saldo); Result.Add("NamaAkunPenjualan", NamaAkunPenjualan); Result.Add("NominalAkunPenjualan", NominalAkunPenjualan); Result.Add("NamaAkunCOGS", NamaAkunCOGS); Result.Add("NominalOPEX", NominalOPEX); Result.Add("NominalCOGS", NominalCOGS); Result.Add("NominalGrossProfit", NominalGrossProfit); Result.Add("NominalEBIT", NominalEBIT); Result.Add("NominalNetIncome", NominalNetIncome); #endregion Result.Add("Pemasukan", Pemasukan.Where(item => item.IDAkun != 388)); Result.Add("Pengeluaran", OPEX); Result.Add("PengeluaranTax", PengeluaranTaxInterest); Result.Add("TotalPemasukan", TotalPemasukan); Result.Add("TotalPengeluaran", TotalPengeluaran); Result.Add("TotalLabaRugi", TotalLabaRugi); if (_excel) { string _bulan = DateTime.Parse(int.Parse(bulan) + "/" + "01" + "/" + "2016").ToString("MMMM", new CultureInfo("id-ID")); if (tipeLaporan == "LabaRugi") { #region EXCEL LABA RUGI Excel_Class Excel_Class = new Excel_Class(pengguna, "Laba Rugi", _bulan + " - " + tahun, 5); ExcelWorksheet Worksheet = Excel_Class.Worksheet; using (var range = Worksheet.Cells[1, 1, 2, 2]) { range.Style.Font.Bold = true; range.Merge = true; range.Style.HorizontalAlignment = ExcelHorizontalAlignment.Center; range.Style.VerticalAlignment = ExcelVerticalAlignment.Center; } Excel_Class.Content(1, 1, "Pemasukan"); using (var range = Worksheet.Cells[1, 3, 2, 4]) { range.Style.Font.Bold = true; range.Merge = true; range.Style.HorizontalAlignment = ExcelHorizontalAlignment.Center; range.Style.VerticalAlignment = ExcelVerticalAlignment.Center; } Excel_Class.Content(1, 3, "Pengeluaran"); Worksheet.Cells[3, 1].Value = "Akun"; Worksheet.Cells[3, 2].Value = "Saldo"; Worksheet.Cells[3, 3].Value = "Akun"; Worksheet.Cells[3, 4].Value = "Saldo"; int index = 4; foreach (var item in Pemasukan) { Excel_Class.Content(index, 1, item.Nama); Excel_Class.Content(index, 2, item.Saldo); index++; } index = 4; foreach (var item in Pengeluaran) { Excel_Class.Content(index, 3, item.Nama); Excel_Class.Content(index, 4, item.Saldo); index++; } Excel_Class.Save(); linkDownload = Excel_Class.LinkDownload; #endregion } else { var AktivaPasiva = db.TBAkuns.Where(item => item.TBAkunGrup.IDAkunGrupParent != 4 && item.TBAkunGrup.IDAkunGrupParent != 5) .ToArray() .Select(item => new { item.TBAkunGrup.EnumJenisAkunGrup, item.TBAkunGrup.EnumSaldoNormal, Grup = item.TBAkunGrup.Nama, item.Nama, Saldo = Akuntansi_Class.HitungSaldo(item.TBJurnalDetails .Where(item2 => item2.TBJurnal.Tanggal.Value.Month == bulan.ToInt() && item2.TBJurnal.Tanggal.Value.Year == tahun.ToInt() && item2.TBJurnal.IDTempat == pengguna.IDTempat).ToArray(), false) }) .Select(item => new { item.EnumJenisAkunGrup, item.EnumSaldoNormal, item.Grup, item.Nama, Saldo = (item.Saldo < 0) && item.EnumSaldoNormal == (int)PilihanDebitKredit.Kredit ? Math.Abs(item.Saldo) : item.Saldo }); var _aktiva = AktivaPasiva.Where(item => item.EnumJenisAkunGrup == (int)PilihanJenisAkunGrup.Aktiva); var _pasiva = AktivaPasiva.Where(item => item.EnumJenisAkunGrup == (int)PilihanJenisAkunGrup.Pasiva); #region EXCEL NERACA Excel_Class Excel_Class = new Excel_Class(pengguna, "Laba Rugi", _bulan + " - " + tahun, 5); ExcelWorksheet Worksheet = Excel_Class.Worksheet; using (var range = Worksheet.Cells[1, 1, 2, 3]) { range.Style.Font.Bold = true; range.Merge = true; range.Style.HorizontalAlignment = ExcelHorizontalAlignment.Center; range.Style.VerticalAlignment = ExcelVerticalAlignment.Center; } Excel_Class.Content(1, 1, "Aktiva"); using (var range = Worksheet.Cells[1, 4, 2, 6]) { range.Style.Font.Bold = true; range.Merge = true; range.Style.HorizontalAlignment = ExcelHorizontalAlignment.Center; range.Style.VerticalAlignment = ExcelVerticalAlignment.Center; } Excel_Class.Content(1, 4, "Pasiva"); Worksheet.Cells[3, 1].Value = "Tipe"; Worksheet.Cells[3, 2].Value = "Akun"; Worksheet.Cells[3, 3].Value = "Saldo"; Worksheet.Cells[3, 4].Value = "Tipe"; Worksheet.Cells[3, 5].Value = "Akun"; Worksheet.Cells[3, 6].Value = "Saldo"; int index = 4; foreach (var item in _aktiva) { Excel_Class.Content(index, 1, item.Grup); Excel_Class.Content(index, 2, item.Nama); Excel_Class.Content(index, 3, item.Saldo); index++; } index = 4; foreach (var item in _pasiva) { Excel_Class.Content(index, 4, item.Grup); Excel_Class.Content(index, 5, item.Nama); Excel_Class.Content(index, 6, item.Saldo); index++; } Excel_Class.Content(index + 1, 4, "Laba/Rugi Bulan Berjalan"); Excel_Class.Content(index + 1, 5, ""); Excel_Class.Content(index + 1, 6, TotalLabaRugi); Excel_Class.Save(); linkDownload = Excel_Class.LinkDownload; #endregion } } } return(Result); }
public static Dictionary <string, dynamic> LaporanBukuBesar(string periode1, string periode2, int _IDakun, bool _excel, PenggunaLogin pengguna) { Dictionary <string, dynamic> Result = new Dictionary <string, dynamic>(); using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { var BukuBesar = db.TBJurnalDetails.OrderBy(item => item.TBJurnal.Tanggal).ToArray() .Where(item => item.TBJurnal.Tanggal.Value.Date >= periode1.ToDateTime() && item.TBJurnal.Tanggal.Value.Date <= periode2.ToDateTime() && item.IDAkun == _IDakun && item.TBJurnal.IDTempat == pengguna.IDTempat) .Select(item => new { item.IDJurnal, item.TBJurnal.Tanggal, item.TBJurnal.Referensi, item.TBJurnal.Keterangan, Debit = item.Debit == 0 ? "-" : item.Debit.ToFormatHarga(), Kredit = item.Kredit == 0 ? "-" : item.Kredit.ToFormatHarga(), item.TBAkun.TBAkunGrup.EnumSaldoNormal, Saldo = (HitungSaldoBukuBesar((decimal)item.Debit, (decimal)item.Kredit) < 0) && item.TBAkun.TBAkunGrup.EnumSaldoNormal == (int)PilihanDebitKredit.Kredit ? Math.Abs(Saldo) : Saldo }) .OrderBy(item => item.Tanggal) .ThenBy(item => item.IDJurnal); if (_excel) { #region EXCEL BUKU BESAR Excel_Class Excel_Class = new Excel_Class(pengguna, "Buku Besar", periode1 + " - " + periode2 + " - ", 6); ExcelWorksheet Worksheet = Excel_Class.Worksheet; Worksheet.Cells[1, 1].Value = "Tanggal"; Worksheet.Cells[1, 2].Value = "No. Referensi"; Worksheet.Cells[1, 3].Value = "Keterangan"; Worksheet.Cells[1, 4].Value = "Debit"; Worksheet.Cells[1, 5].Value = "Kredit"; Worksheet.Cells[1, 6].Value = "Balance"; int index = 2; foreach (var item in BukuBesar) { Excel_Class.Content(index, 1, item.Tanggal.Value); Excel_Class.Content(index, 2, item.Referensi); Excel_Class.Content(index, 3, item.Keterangan); Excel_Class.Content(index, 4, item.Debit); Excel_Class.Content(index, 5, item.Kredit); Excel_Class.Content(index, 6, item.Saldo); index++; } Excel_Class.Save(); linkDownload = Excel_Class.LinkDownload; #endregion } } 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; } } }