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);
    }
Exemplo n.º 2
0
    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);
    }
Exemplo n.º 4
0
    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("&nbsp", ""));
                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;
            }
        }
    }