Exemplo n.º 1
0
        private void btnExport_Click(object sender, EventArgs e)
        {
            DataTable dt1 = new DataTable();

            dt1 = (DataTable)dgvHistory_GA1.DataSource;
            Excel_Class xl = new Excel_Class();

            xl.ExportToExcel(dt1);
        }
    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.º 3
0
        private void btnExport_Click(object sender, EventArgs e)
        {
            try
            {
                vo = (IPQCVo)DefaultCbmInvoker.Invoke(new AddDataCbm(), new IPQCVo
                {
                    Inspect = txtInspect.Text
                }, connectionIPQC);
            }
            catch (Framework.ApplicationException ex)
            {
                logger.Error(ex.GetMessageData());
                popUpMessage.ApplicationError(ex.GetMessageData(), Text);
            }
            string      sample  = vo.Inspect;
            string      descrip = vo.Description;
            Excel_Class xl      = new Excel_Class();

            string dtpFrom = dtpLotFrom.Value.ToString("yyyy/MM/dd");
            string dtpTo   = dtpLotTo.Value.ToString("yyyy/MM/dd");

            xl.exportExcelIPQC(txtModel.Text, cmbLine.Text, txtUser.Text, txtUsl.Text, txtLsl.Text, txtProcess.Text, txtInspect.Text, sample, descrip, dgvHistory, dtpFrom, dtpTo);
        }
Exemplo n.º 4
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);
        }
    }
Exemplo n.º 5
0
        private void export_btn_Click(object sender, EventArgs e)
        {
            Excel_Class export = new Excel_Class();

            export.Export(ref reportdowntime_dgv, "DownTime Data");
        }
    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.º 7
0
        private void exportexcel_btn_Click(object sender, EventArgs e)
        {
            Excel_Class exportexcel = new Excel_Class();

            exportexcel.exportexcel(ref draw_dgv, linksave_txt.Text, this.Text);
        }
Exemplo n.º 8
0
    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);
    }
Exemplo n.º 9
0
    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);
    }
Exemplo n.º 10
0
    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);
    }
Exemplo n.º 11
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;
            }
        }
    }