Exemple #1
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                Tempat_Class          ClassTempat           = new Tempat_Class(db);
                JenisTransaksi_Class  ClassJenisTransaksi   = new JenisTransaksi_Class();
                StatusTransaksi_Class StatusTransaksi_Class = new StatusTransaksi_Class();
                JenisPembayaran_Class ClassJenisPembayaran  = new JenisPembayaran_Class(db);

                ClassTempat.DataListBox(ListBoxTempat);
                ClassJenisTransaksi.DataListBox(db, ListBoxJenisTransaksi);
                StatusTransaksi_Class.DataListBox(db, ListBoxStatusTransaksi);

                ListBoxStatusTransaksi.SelectedValue = "2";
                //ListBoxJenisTransaksi.Items.Add(new ListItem("- Semua Jenis Transaksi -", "0"));

                ViewState["TanggalAwal"]  = Pengaturan.HariIni()[0];
                ViewState["TanggalAkhir"] = Pengaturan.HariIni()[1];

                TextBoxTanggalAwal.Text  = ((DateTime)ViewState["TanggalAwal"]).ToString("d MMMM yyyy HH:mm");
                TextBoxTanggalAkhir.Text = ((DateTime)ViewState["TanggalAkhir"]).ToString("d MMMM yyyy HH:mm");
            }
        }
    }
Exemple #2
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                JenisPembayaran_Class ClassJenisPembayaran = new JenisPembayaran_Class(db);

                DropDownListJenisBebanBiaya.DataSource     = db.TBJenisBebanBiayas.ToArray();
                DropDownListJenisBebanBiaya.DataTextField  = "Nama";
                DropDownListJenisBebanBiaya.DataValueField = "IDJenisBebanBiaya";
                DropDownListJenisBebanBiaya.DataBind();

                DropDownListAkun.DataSource     = db.TBAkuns.Where(item => item.TBAkunGrup.EnumJenisAkunGrup == (int)PilihanAkunGrup.Aset);
                DropDownListAkun.DataTextField  = "Nama";
                DropDownListAkun.DataValueField = "IDAkun";
                DropDownListAkun.DataBind();

                var JenisPembayaran = ClassJenisPembayaran.Cari(Request.QueryString["id"].ToInt());

                if (JenisPembayaran != null && JenisPembayaran.IDJenisPembayaran != 1 && JenisPembayaran.IDJenisPembayaran != 2)
                {
                    DropDownListJenisBebanBiaya.SelectedValue = JenisPembayaran.IDJenisBebanBiaya.ToString();
                    TextBoxNama.Text = JenisPembayaran.Nama;

                    if (JenisPembayaran.IDJenisBebanBiaya == 1)
                    {
                        TextBoxPersentaseBiaya.Enabled = false;
                    }
                    else
                    {
                        TextBoxPersentaseBiaya.Enabled = true;
                    }

                    TextBoxPersentaseBiaya.Text = JenisPembayaran.PersentaseBiaya.ToFormatHarga();

                    ButtonSimpan.Text    = "Ubah";
                    LabelKeterangan.Text = "Ubah";
                }
                else
                {
                    LabelKeterangan.Text           = "Tambah";
                    ButtonSimpan.Text              = "Tambah";
                    TextBoxPersentaseBiaya.Enabled = false;
                }
            }
        }
    }
Exemple #3
0
    private void LoadData()
    {
        try
        {
            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                JenisPembayaran_Class ClassJenisPembayaran = new JenisPembayaran_Class(db);

                RepeaterJenisPembayaran.DataSource = ClassJenisPembayaran.Data().Where(item => item.IDJenisPembayaran != 1 && item.IDJenisPembayaran != 2);
                RepeaterJenisPembayaran.DataBind();
            }
        }
        catch (Exception ex)
        {
            AlertMessage_Class.ShowException(this, ex, Request.Url.PathAndQuery);
        }
    }
Exemple #4
0
    protected void ButtonSimpan_Click(object sender, EventArgs e)
    {
        using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
        {
            JenisPembayaran_Class ClassJenisPembayaran = new JenisPembayaran_Class(db);

            if (ButtonSimpan.Text == "Tambah")
            {
                ClassJenisPembayaran.Tambah(DropDownListJenisBebanBiaya.SelectedValue.ToInt(), TextBoxNama.Text, TextBoxPersentaseBiaya.Text.ToDecimal(), DropDownListAkun.SelectedValue.ToInt());
            }
            else if (ButtonSimpan.Text == "Ubah")
            {
                ClassJenisPembayaran.Ubah(Request.QueryString["id"].ToInt(), DropDownListJenisBebanBiaya.SelectedValue.ToInt(), TextBoxNama.Text, TextBoxPersentaseBiaya.Text.ToDecimal(), DropDownListAkun.SelectedValue.ToInt());
            }

            db.SubmitChanges();
        }

        Response.Redirect("Default.aspx");
    }
Exemple #5
0
    protected void RepeaterJenisPembayaran_ItemCommand(object source, RepeaterCommandEventArgs e)
    {
        try
        {
            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                JenisPembayaran_Class ClassJenisPembayaran = new JenisPembayaran_Class(db);

                if (e.CommandName == "Hapus")
                {
                    ClassJenisPembayaran.Hapus(e.CommandArgument.ToInt());
                    LoadData();
                }
            }
        }
        catch (Exception ex)
        {
            AlertMessage_Class.ShowException(this, ex, Request.Url.PathAndQuery);
        }
    }
Exemple #6
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            MultiViewTransaksi.SetActiveView(ViewTransaksi);
            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                TextBoxTanggalAwal.Text  = Pengaturan.HariIni()[0].ToFormatDateMedium();
                TextBoxTanggalAkhir.Text = Pengaturan.HariIni()[1].ToFormatDateMedium();


                JenisPembayaran_Class JenisPembayaran_Class = new JenisPembayaran_Class(db);
                DropDownListJenisPembayaran.DataSource     = JenisPembayaran_Class.Data();
                DropDownListJenisPembayaran.DataTextField  = "Nama";
                DropDownListJenisPembayaran.DataValueField = "IDJenisPembayaran";
                DropDownListJenisPembayaran.DataBind();
            }

            LoadData();
        }
    }
Exemple #7
0
    private void LoadDataCetakLaporan(DateTime tanggalAwal, DateTime tanggalAkhir)
    {
        PenggunaLogin Pengguna = (PenggunaLogin)Session["PenggunaLogin"];

        tanggalAwal  = tanggalAwal.Date;
        tanggalAkhir = tanggalAkhir.Date;

        LabelPrintNamaStore.Text  = Pengguna.Store;
        LabelPrintNamaLokasi.Text = Pengguna.Tempat;
        LabelPrintTanggal.Text    = Pengaturan.FormatTanggal(DateTime.Now);

        if (tanggalAwal == tanggalAkhir)
        {
            LabelPrintTanggalLaporan.Text = Pengaturan.FormatTanggalRingkas(tanggalAwal);
        }
        else
        {
            LabelPrintTanggalLaporan.Text = Pengaturan.FormatTanggalRingkas(tanggalAwal) + " - " + Pengaturan.FormatTanggalRingkas(tanggalAkhir);
        }

        using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
        {
            #region PENCARIAN DATA
            TBTransaksi[]                TransaksiKeseluruhan;
            TBTransaksiDetail[]          TransaksiDetail;
            TBTransaksiJenisPembayaran[] TransaksiJenisPembayaran;
            TBTransaksiJenisPembayaran[] TransaksiPembayaranAwaitingPayment;

            //TRANSAKSI PEMBAYARAN
            TransaksiJenisPembayaran = db.TBTransaksiJenisPembayarans
                                       .Where(item =>
                                              item.TBTransaksi.IDJenisTransaksi == 1 && //1 : POINT OF SALES
                                              item.TBTransaksi.IDTempat == Pengguna.IDTempat &&
                                              item.TBTransaksi.TanggalOperasional.Value.Date >= tanggalAwal &&
                                              item.TBTransaksi.TanggalOperasional.Value.Date <= tanggalAkhir &&
                                              item.TBTransaksi.IDStatusTransaksi == (int)EnumStatusTransaksi.Complete)
                                       .ToArray();

            //TRANSAKSI PEMBAYARAN AWAITING PAYMENT
            TransaksiPembayaranAwaitingPayment = db.TBTransaksiJenisPembayarans
                                                 .Where(item =>
                                                        item.TBTransaksi.IDJenisTransaksi == 1 && //1 : POINT OF SALES
                                                        item.TBTransaksi.IDTempat == Pengguna.IDTempat &&
                                                        item.Tanggal.Value.Date >= tanggalAwal &&
                                                        item.Tanggal.Value.Date <= tanggalAkhir &&
                                                        item.TBTransaksi.IDStatusTransaksi != (int)EnumStatusTransaksi.Canceled)
                                                 .ToArray();

            //TRANSAKSI KESELURUHAN
            TransaksiKeseluruhan = db.TBTransaksis
                                   .Where(item =>
                                          item.IDJenisTransaksi == 1 && //1 : POINT OF SALES
                                          item.IDTempat == Pengguna.IDTempat &&
                                          item.TanggalOperasional.Value >= tanggalAwal &&
                                          item.TanggalOperasional.Value <= tanggalAkhir)
                                   .ToArray();

            //DETAIL TRANSAKSI
            TransaksiDetail = db.TBTransaksiDetails
                              .Where(item =>
                                     item.TBTransaksi.IDJenisTransaksi == 1 && //1 : POINT OF SALES
                                     item.TBTransaksi.IDTempat == Pengguna.IDTempat &&
                                     item.TBTransaksi.TanggalOperasional.Value >= tanggalAwal &&
                                     item.TBTransaksi.TanggalOperasional.Value <= tanggalAkhir &&
                                     item.TBTransaksi.IDStatusTransaksi == (int)EnumStatusTransaksi.Complete)
                              .ToArray();

            if (DropDownListStatusCetak.SelectedValue == "-1")
            {
                //OPERATOR
                LabelStatusLaporan.Text = "Laporan Tutup Kasir " + Pengguna.NamaLengkap;

                //TRANSAKSI PEMBAYARAN
                TransaksiJenisPembayaran = TransaksiJenisPembayaran
                                           .Where(item => item.IDPengguna == Pengguna.IDPengguna)
                                           .ToArray();

                //TRANSAKSI PEMBAYARAN AWAITING PAYMENT
                TransaksiPembayaranAwaitingPayment = TransaksiPembayaranAwaitingPayment
                                                     .Where(item => item.IDPengguna == Pengguna.IDPengguna)
                                                     .ToArray();

                //TRANSAKSI KESELURUHAN
                TransaksiKeseluruhan = TransaksiKeseluruhan
                                       .Where(item => item.IDPenggunaPembayaran == Pengguna.IDPengguna)
                                       .ToArray();

                //DETAIL TRANSAKSI
                TransaksiDetail = TransaksiDetail
                                  .Where(item => item.TBTransaksi.IDPenggunaPembayaran == Pengguna.IDPengguna)
                                  .ToArray();
            }
            else
            {
                LabelStatusLaporan.Text = "Laporan Tutup Kasir Keseluruhan";
            }

            //TRANSAKSI COMPLETE
            var TransaksiComplete = TransaksiKeseluruhan
                                    .Where(item => item.IDStatusTransaksi == (int)EnumStatusTransaksi.Complete).ToArray();
            #endregion

            JenisPembayaran_Class ClassJenisPembayaran = new JenisPembayaran_Class(db);
            var ListJenisPembayaran = ClassJenisPembayaran.Data();

            #region JENIS PEMBAYARAN
            Dictionary <string, decimal> ListPembayaranLainnya = new Dictionary <string, decimal>();

            foreach (var item in ListJenisPembayaran)
            {
                var Pembayaran = TransaksiJenisPembayaran
                                 .Where(item2 => item2.IDJenisPembayaran == item.IDJenisPembayaran);

                if (Pembayaran.Count() > 0)
                {
                    ListPembayaranLainnya.Add(item.Nama.ToUpper(), Pembayaran.Sum(x => x.Total.Value));
                }
            }

            RepeaterTransaksiPembayaranLainnya.DataSource = ListPembayaranLainnya;
            RepeaterTransaksiPembayaranLainnya.DataBind();

            LabelTotalJenisPembayaran.Text = Pengaturan.FormatHarga(ListPembayaranLainnya.Sum(item => item.Value));
            #endregion

            #region PEMBAYARAN AWAITING PAYMENT
            Dictionary <string, decimal> ListPembayaranAwaitingPayment = new Dictionary <string, decimal>();
            Dictionary <string, decimal> ListCashDrawer = new Dictionary <string, decimal>();

            foreach (var item in ListJenisPembayaran)
            {
                var Pembayaran = TransaksiJenisPembayaran
                                 .Where(item2 => item2.IDJenisPembayaran == item.IDJenisPembayaran);

                var AwaitingPayment = TransaksiPembayaranAwaitingPayment
                                      .Where(item2 => item2.IDJenisPembayaran == item.IDJenisPembayaran);

                if (AwaitingPayment.Count() > 0)
                {
                    decimal TotalPembayaran = 0;
                    decimal TotalAwaitingPayment;

                    if (Pembayaran.Count() > 0)
                    {
                        TotalPembayaran = Pembayaran.Sum(x => x.Total.Value);
                    }

                    TotalAwaitingPayment = AwaitingPayment.Sum(x => x.Total.Value);

                    if ((TotalAwaitingPayment - TotalPembayaran) > 0)
                    {
                        ListPembayaranAwaitingPayment.Add(item.Nama.ToUpper(), (TotalAwaitingPayment - TotalPembayaran));
                    }

                    ListCashDrawer.Add(item.Nama.ToUpper(), TotalAwaitingPayment);
                }
            }

            RepeaterPembayaranAwaitingPayment.DataSource = ListPembayaranAwaitingPayment;
            RepeaterPembayaranAwaitingPayment.DataBind();

            RepeaterCashDrawer.DataSource = ListCashDrawer;
            RepeaterCashDrawer.DataBind();

            LabelTotalJenisPembayaranAwaitingPayment.Text = Pengaturan.FormatHarga(ListPembayaranAwaitingPayment.Sum(item => item.Value));
            LabelTotalCashDrawer.Text = Pengaturan.FormatHarga(ListCashDrawer.Sum(item => item.Value));

            PanelPembayaranAwaitingPayment.Visible = ListPembayaranAwaitingPayment.Count() > 0;
            PanelCashDrawer.Visible = ListCashDrawer.Count() > 0;
            #endregion

            #region TRANSAKSI SELAIN COMPLETE
            List <dynamic> TransaksiStatusLainnya = new List <dynamic>();
            foreach (var item in db.TBStatusTransaksis.Where(item2 => item2.IDStatusTransaksi != 5).OrderBy(item2 => item2.Urutan).ToArray())
            {
                var _data = TransaksiKeseluruhan
                            .Where(item2 => item2.IDStatusTransaksi == item.IDStatusTransaksi);

                if (_data.Count() > 0)
                {
                    TransaksiStatusLainnya.Add(new
                    {
                        Nama   = item.Nama.ToUpper(),
                        Jumlah = _data.Count(),
                        Total  = _data.Sum(x => x.GrandTotal)
                    });
                }
            }

            RepeaterTransaksiStatusLainnya.DataSource = TransaksiStatusLainnya;
            RepeaterTransaksiStatusLainnya.DataBind();
            #endregion

            //#region KATEGORI PRODUK
            //var DataKategori = TransaksiDetail
            //    .GroupBy(item => 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)
            //    .Select(item => new
            //    {
            //        Key = item.Key,
            //        Quantity = item.Sum(item2 => item2.JumlahProduk) ?? 0
            //    });

            //RepeaterPenjualanKategori.DataSource = DataKategori.OrderBy(item => item.Key);
            //RepeaterPenjualanKategori.DataBind();

            //LabelTotalPenjualanKategori.Text = Pengaturan.FormatHarga(DataKategori.Sum(item => item.Quantity));
            //#endregion

            #region PENJUALAN PRODUK
            var DataProduk = TransaksiDetail
                             .GroupBy(item => item.TBKombinasiProduk.Nama)
                             .Select(item => new
            {
                Key      = item.Key,
                Quantity = item.Sum(item2 => item2.Quantity)
            });

            RepeaterPenjualanProduk.DataSource = DataProduk.OrderBy(item => item.Key);
            RepeaterPenjualanProduk.DataBind();

            LabelTotalPenjualanProduk.Text = Pengaturan.FormatHarga(DataProduk.Sum(item => item.Quantity));
            LabelJumlahProduk.Text         = LabelTotalPenjualanProduk.Text;
            #endregion

            var GrandTotal                   = TransaksiComplete.Sum(item => item.GrandTotal);
            var PotonganTransaksi            = TransaksiComplete.Sum(item => item.PotonganTransaksi);
            var TotalPotonganHargaJualDetail = TransaksiComplete.Sum(item => item.TotalPotonganHargaJualDetail);
            var Discount        = PotonganTransaksi + TotalPotonganHargaJualDetail;
            var SebelumDiscount = GrandTotal + Discount;

            LabelSebelumDiscount.Text = Pengaturan.FormatHarga(SebelumDiscount);
            LabelDiscount.Text        = Pengaturan.FormatHarga(Discount);
            LabelGrandTotal.Text      = Pengaturan.FormatHarga(GrandTotal);
            LabelJumlahTransaksi.Text = Pengaturan.FormatHarga(TransaksiComplete.Count());

            LabelDiscountTransaksi.Text = Pengaturan.FormatHarga(PotonganTransaksi);
            LabelDiscountProduk.Text    = Pengaturan.FormatHarga(TotalPotonganHargaJualDetail);

            #region Addictea
            //TBPerpindahanStokProduk[] perpindahanStokProduk;

            //if (DropDownListStatusCetak.SelectedValue == "-1")
            //    perpindahanStokProduk = db.TBPerpindahanStokProduks.Where(item => item.IDPengguna == Pengguna.IDPengguna).ToArray();
            //else
            //    perpindahanStokProduk = db.TBPerpindahanStokProduks.ToArray();

            //var stok = db.TBAtributProduks.AsEnumerable().Select(itemAtribut => new
            //{
            //    NamaProduk = itemAtribut.Nama,
            //    Atribut = db.TBStokProduks.AsEnumerable().Where(itemStok => itemStok.TBKombinasiProduk.IDAtributProduk == itemAtribut.IDAtributProduk && itemStok.IDTempat == Pengguna.IDTempat).Select(data => new
            //    {
            //        Nama = data.TBKombinasiProduk.TBProduk.Nama,
            //        Restok = perpindahanStokProduk.Where(perpindahan => perpindahan.IDJenisPerpindahanStok == 30 && perpindahan.IDStokProduk == data.IDStokProduk && perpindahan.Tanggal.Date >= DateTime.Parse(TextBoxTanggalAwalCetakLaporan.Text).Date && perpindahan.Tanggal.Date <= DateTime.Parse(TextBoxTanggalAkhirCetakLaporan.Text).Date).Count() == 0 ? 0 : perpindahanStokProduk.Where(perpindahan => perpindahan.IDJenisPerpindahanStok == 30 && perpindahan.IDStokProduk == data.IDStokProduk && perpindahan.Tanggal.Date >= DateTime.Parse(TextBoxTanggalAwalCetakLaporan.Text).Date && perpindahan.Tanggal.Date <= DateTime.Parse(TextBoxTanggalAkhirCetakLaporan.Text).Date).Sum(perpindahan => perpindahan.Jumlah),
            //        JumlahJual = perpindahanStokProduk.Where(perpindahan => perpindahan.IDJenisPerpindahanStok == 4 && perpindahan.IDStokProduk == data.IDStokProduk && perpindahan.Tanggal.Date >= DateTime.Parse(TextBoxTanggalAwalCetakLaporan.Text).Date && perpindahan.Tanggal.Date <= DateTime.Parse(TextBoxTanggalAkhirCetakLaporan.Text).Date).Count() == 0 ? 0 : (perpindahanStokProduk.Where(perpindahan => perpindahan.IDJenisPerpindahanStok == 4 && perpindahan.IDStokProduk == data.IDStokProduk && perpindahan.Tanggal.Date >= DateTime.Parse(TextBoxTanggalAwalCetakLaporan.Text).Date && perpindahan.Tanggal.Date <= DateTime.Parse(TextBoxTanggalAkhirCetakLaporan.Text).Date).Sum(perpindahan => perpindahan.Jumlah) - (perpindahanStokProduk.Where(perpindahan => perpindahan.IDJenisPerpindahanStok == 5 && perpindahan.IDStokProduk == data.IDStokProduk && perpindahan.Tanggal.Date >= DateTime.Parse(TextBoxTanggalAwalCetakLaporan.Text).Date && perpindahan.Tanggal.Date <= DateTime.Parse(TextBoxTanggalAkhirCetakLaporan.Text).Date).Count() == 0 ? 0 : perpindahanStokProduk.Where(perpindahan => perpindahan.IDJenisPerpindahanStok == 5 && perpindahan.IDStokProduk == data.IDStokProduk && perpindahan.Tanggal.Date >= DateTime.Parse(TextBoxTanggalAwalCetakLaporan.Text).Date && perpindahan.Tanggal.Date <= DateTime.Parse(TextBoxTanggalAkhirCetakLaporan.Text).Date).Sum(perpindahan => perpindahan.Jumlah))),
            //        Retur = perpindahanStokProduk.Where(perpindahan => perpindahan.IDJenisPerpindahanStok == 14 && perpindahan.IDStokProduk == data.IDStokProduk && perpindahan.Tanggal.Date >= DateTime.Parse(TextBoxTanggalAwalCetakLaporan.Text).Date && perpindahan.Tanggal.Date <= DateTime.Parse(TextBoxTanggalAkhirCetakLaporan.Text).Date).Count() == 0 ? 0 : perpindahanStokProduk.Where(perpindahan => perpindahan.IDJenisPerpindahanStok == 14 && perpindahan.IDStokProduk == data.IDStokProduk && perpindahan.Tanggal.Date >= DateTime.Parse(TextBoxTanggalAwalCetakLaporan.Text).Date && perpindahan.Tanggal.Date <= DateTime.Parse(TextBoxTanggalAkhirCetakLaporan.Text).Date).Sum(perpindahan => perpindahan.Jumlah),
            //        Stok = data.Jumlah
            //    }).ToList()
            //}).ToList();

            //LabelPrintRestok.Text = stok.Count == 0 ? "0" : Pengaturan.FormatHarga(stok.Sum(item => item.Atribut.Sum(data => data.Restok)));
            //LabelPrintPenjualan.Text = stok.Count == 0 ? "0" : Pengaturan.FormatHarga(stok.Sum(item => item.Atribut.Sum(data => data.JumlahJual)));
            //LabelPrintRetur.Text = stok.Count == 0 ? "0" : Pengaturan.FormatHarga(stok.Sum(item => item.Atribut.Sum(data => data.Retur)));
            //LabelPrintStok.Text = stok.Count == 0 ? "0" : Pengaturan.FormatHarga(stok.Sum(item => item.Atribut.Sum(data => data.Stok)));

            //var dataStok = stok.Select(item => new
            //{
            //    item.NamaProduk,
            //    item.Atribut,
            //    TotalRestok = item.Atribut.Sum(item2 => item2.Restok),
            //    TotalJumlahJual = item.Atribut.Sum(item2 => item2.JumlahJual),
            //    TotalRetur = item.Atribut.Sum(item2 => item2.Retur),
            //    TotalStok = item.Atribut.Sum(item2 => item2.Stok)
            //});

            //RepeaterStokPrint.DataSource = dataStok;
            //RepeaterStokPrint.DataBind();
            #endregion
        }
    }
Exemple #8
0
    private void LoadData(bool excel)
    {
        if (divTabel.Visible == true)
        {
            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                #region DEFAULT
                TextBoxTanggalAwal.Text  = ((DateTime)ViewState["TanggalAwal"]).ToString("d MMMM yyyy");
                TextBoxTanggalAkhir.Text = ((DateTime)ViewState["TanggalAkhir"]).ToString("d MMMM yyyy");

                if (ViewState["TanggalAwal"].ToString() == ViewState["TanggalAkhir"].ToString())
                {
                    LabelPeriode.Text = ViewState["TanggalAwal"].ToFormatTanggal();
                }
                else
                {
                    LabelPeriode.Text = ViewState["TanggalAwal"].ToFormatTanggal() + " - " + ViewState["TanggalAkhir"].ToFormatTanggal();
                }

                string Pencarian = "";
                #endregion

                var DataJenisPembayaran = db.TBTransaksiJenisPembayarans
                                          .Where(item =>
                                                 item.TBTransaksi.IDStatusTransaksi == (int)EnumStatusTransaksi.Complete &&
                                                 item.Tanggal.Value.Date >= (DateTime)ViewState["TanggalAwal"] &&
                                                 item.Tanggal.Value.Date <= (DateTime)ViewState["TanggalAkhir"])
                                          .ToArray();

                Pencarian += "?Awal=" + ViewState["TanggalAwal"];
                Pencarian += "&Akhir=" + ViewState["TanggalAkhir"];

                #region FILTER
                if (DropDownListTempat.SelectedValue != "0")
                {
                    DataJenisPembayaran = DataJenisPembayaran
                                          .Where(item => item.TBTransaksi.IDTempat == DropDownListTempat.SelectedValue.ToInt()).ToArray();

                    Pencarian += "&IDTempat=" + DropDownListTempat.SelectedValue;
                }

                if (DropDownListJenisTransaksi.SelectedValue != "0")
                {
                    DataJenisPembayaran = DataJenisPembayaran
                                          .Where(item => item.TBTransaksi.IDJenisTransaksi == DropDownListJenisTransaksi.SelectedValue.ToInt()).ToArray();

                    Pencarian += "&IDJenisPembayaran=" + DropDownListJenisTransaksi.SelectedValue;
                }
                #endregion

                var ListJenisPembayaran = DataJenisPembayaran
                                          .GroupBy(item => new
                {
                    IDJenisPembayaran = item.IDJenisPembayaran,
                    Tanggal           = item.Tanggal.Value.Date
                })
                                          .Select(item => new
                {
                    Key   = item.Key,
                    Total = item.Sum(item2 => item2.Total)
                });

                //ButtonPrint.OnClientClick = "return popitup('JenisPembayaranPrint.aspx" + _tempPencarian + "')";

                JenisPembayaran_Class ClassJenisPembayaran = new JenisPembayaran_Class(db);
                var JenisPembayaran = ClassJenisPembayaran.Data();

                #region USER INTERFACE
                LiteralHeaderTabel.Text = string.Empty;
                LiteralLaporan.Text     = string.Empty;

                foreach (var item in JenisPembayaran)
                {
                    LiteralHeaderTabel.Text += "<th class='text-right'>" + item.Nama + "</th>";
                }

                LiteralHeaderTabel.Text += "<th class='text-right'>TOTAL</th>";

                int index = 1;

                #region SUMARY
                string JumlahTotal = string.Empty;
                JumlahTotal += "<tr>";
                JumlahTotal += "<td class='text-right' colspan='3'></td>";

                foreach (var item in JenisPembayaran)
                {
                    JumlahTotal += "<td class='text-right success' style='font-size: 12px;'><b>" + ListJenisPembayaran.Where(item2 => item2.Key.IDJenisPembayaran == item.IDJenisPembayaran).Sum(item2 => item2.Total).ToFormatHarga() + "</b></td>";
                }

                JumlahTotal += "<td class='text-right success' style='font-size: 12px;'><b>" + ListJenisPembayaran.Sum(item2 => item2.Total).ToFormatHarga() + "</b></td>";
                JumlahTotal += "</tr>";

                LiteralLaporan.Text += JumlahTotal;
                #endregion

                #region PERSENTASE
                string  JumlahPersentase = string.Empty;
                decimal GrandTotal       = ListJenisPembayaran.Sum(item => item.Total.Value);

                if (GrandTotal > 0)
                {
                    JumlahPersentase += "<tr>";
                    JumlahPersentase += "<td class='text-right' colspan='3'></td>";

                    decimal TotalPersentase = 0;

                    foreach (var item in JenisPembayaran)
                    {
                        decimal Persentase = ListJenisPembayaran.Where(item2 => item2.Key.IDJenisPembayaran == item.IDJenisPembayaran).Sum(item2 => item2.Total.Value) / GrandTotal * 100;
                        JumlahPersentase += "<td class='text-right active' style='font-size: 10px;'><b>" + Persentase.ToFormatHarga() + " %</b></td>";

                        TotalPersentase += Persentase;
                    }

                    JumlahPersentase += "<td class='text-right active' style='font-size: 10px;'><b>" + TotalPersentase.ToFormatHarga() + " %</b></td>";
                    JumlahPersentase += "</tr>";
                }

                LiteralLaporan.Text += JumlahPersentase;
                #endregion

                #region JENIS PEMBAYARAN
                for (DateTime i = (DateTime)ViewState["TanggalAwal"]; i <= (DateTime)ViewState["TanggalAkhir"]; i = i.AddDays(1))
                {
                    LiteralLaporan.Text += "<tr>";

                    LiteralLaporan.Text += "<td>" + index++ + "</td>";
                    LiteralLaporan.Text += "<td>" + i.ToString("dddd") + "</td>";
                    LiteralLaporan.Text += "<td>" + i.ToFormatTanggal() + "</td>";

                    decimal Total = 0;

                    foreach (var item in JenisPembayaran)
                    {
                        var Pembayaran = ListJenisPembayaran.FirstOrDefault(item2 => item2.Key.Tanggal == i.Date && item2.Key.IDJenisPembayaran == item.IDJenisPembayaran);

                        if (Pembayaran != null)
                        {
                            LiteralLaporan.Text += "<td class='text-right'>" + Pembayaran.Total.ToFormatHarga() + "</td>";
                            Total += Pembayaran.Total.Value;
                        }
                        else
                        {
                            LiteralLaporan.Text += "<td></td>";
                        }
                    }

                    LiteralLaporan.Text += "<td class='text-right warning'><b>" + (Total > 0 ? Total.ToFormatHarga() : "") + "</b></td>";

                    LiteralLaporan.Text += "</tr>";
                }
                #endregion

                LiteralLaporan.Text += JumlahPersentase;
                LiteralLaporan.Text += JumlahTotal;
                #endregion

                #region EXCEL
                if (excel)
                {
                    PenggunaLogin Pengguna = (PenggunaLogin)Session["PenggunaLogin"];

                    string FileNama   = "Laporan Jenis Pembayaran " + DateTime.Now.ToString("d MMMM yyyy hh.mm.ss") + ".xlsx";
                    string FolderPath = Server.MapPath("~/file_excel/Jenis Pembayaran/Export/");

                    if (!Directory.Exists(FolderPath))
                    {
                        Directory.CreateDirectory(FolderPath);
                    }

                    string FilePath      = FolderPath + FileNama;
                    string WorksheetNama = "Laporan Jenis Pembayaran";
                    string Judul         = "Laporan Jenis Pembayaran " + Pengguna.Store + " - " + Pengguna.Tempat + " " + DateTime.Now.ToString("d MMMM yyyy");

                    FileInfo newFile = new FileInfo(FilePath);

                    using (ExcelPackage package = new ExcelPackage(newFile))
                    {
                        ExcelWorksheet worksheet = package.Workbook.Worksheets.Add(WorksheetNama);

                        worksheet.Cells[1, 1].Value = "No.";
                        worksheet.Cells[1, 2].Value = "Hari";
                        worksheet.Cells[1, 3].Value = "Tanggal";

                        int Kolom = 4;

                        foreach (var item in JenisPembayaran)
                        {
                            worksheet.Cells[1, Kolom++].Value = item.Nama;
                        }

                        worksheet.Cells[1, Kolom].Value = "TOTAL";

                        index = 2;

                        for (DateTime i = (DateTime)ViewState["TanggalAwal"]; i <= (DateTime)ViewState["TanggalAkhir"]; i = i.AddDays(1))
                        {
                            worksheet.Cells[index, 1].Value = index - 1;
                            worksheet.Cells[index, 1].Style.Numberformat.Format = "@";

                            worksheet.Cells[index, 2].Value = i.ToString("dddd");
                            worksheet.Cells[index, 2].Style.Numberformat.Format = "@";

                            worksheet.Cells[index, 3].Value = i;
                            worksheet.Cells[index, 3].Style.Numberformat.Format = "d MMMM yyyy";

                            decimal Total  = 0;
                            int     index2 = 4;

                            foreach (var item in JenisPembayaran)
                            {
                                var Pembayaran = ListJenisPembayaran.FirstOrDefault(item2 => item2.Key.Tanggal == i.Date && item2.Key.IDJenisPembayaran == item.IDJenisPembayaran);

                                if (Pembayaran != null)
                                {
                                    worksheet.Cells[index, index2].Value = Pembayaran.Total.Value;
                                    if (Pembayaran.Total.Value.ToFormatHarga().Contains(","))
                                    {
                                        worksheet.Cells[index, index2].Style.Numberformat.Format = "#,##0.00";
                                    }
                                    else
                                    {
                                        worksheet.Cells[index, index2].Style.Numberformat.Format = "#,##0";
                                    }

                                    Total += Pembayaran.Total.Value;
                                }
                                else
                                {
                                    worksheet.Cells[index, index2].Value = 0;
                                    if (Parse.ToFormatHarga(0).Contains(","))
                                    {
                                        worksheet.Cells[index, index2].Style.Numberformat.Format = "#,##0.00";
                                    }
                                    else
                                    {
                                        worksheet.Cells[index, index2].Style.Numberformat.Format = "#,##0";
                                    }
                                }

                                index2++;
                            }

                            worksheet.Cells[index, index2].Value = Total;
                            if (Total.ToFormatHarga().Contains(","))
                            {
                                worksheet.Cells[index, index2].Style.Numberformat.Format = "#,##0.00";
                            }
                            else
                            {
                                worksheet.Cells[index, index2].Style.Numberformat.Format = "#,##0";
                            }

                            index++;
                        }

                        using (var range = worksheet.Cells[1, 1, 1, Kolom])
                        {
                            range.Style.Font.Bold        = true;
                            range.Style.Fill.PatternType = ExcelFillStyle.Solid;
                            range.Style.Fill.BackgroundColor.SetColor(Color.Black);
                            range.Style.Font.Color.SetColor(Color.White);
                        }

                        worksheet.Cells.AutoFitColumns(0);

                        worksheet.HeaderFooter.OddHeader.CenteredText    = "&16&\"Tahoma,Regular Bold\"" + Judul;
                        worksheet.HeaderFooter.OddFooter.LeftAlignedText = "Print : " + Pengguna.NamaLengkap + " - " + Pengguna.Tempat + " - " + DateTime.Now.ToString("d MMMM yyyy hh:mm");

                        worksheet.HeaderFooter.OddFooter.RightAlignedText = "WIT. Warehouse Management System - " + string.Format("Page {0} of {1}", ExcelHeaderFooter.PageNumber, ExcelHeaderFooter.NumberOfPages);

                        package.Workbook.Properties.Title    = WorksheetNama;
                        package.Workbook.Properties.Author   = "WIT. Warehouse Management System";
                        package.Workbook.Properties.Comments = Judul;

                        package.Workbook.Properties.Company = "WIT. Warehouse Management System";
                        package.Save();
                    }

                    LinkDownload.Visible = true;
                    LinkDownload.HRef    = "/file_excel/Jenis Pembayaran/Export/" + FileNama;
                }
                #endregion
            }
        }
        else if (divChart.Visible == true)
        {
            #region DEFAULT
            TextBoxTanggalAwal.Text  = ((DateTime)ViewState["TanggalAwal"]).ToString("d MMMM yyyy");
            TextBoxTanggalAkhir.Text = ((DateTime)ViewState["TanggalAkhir"]).ToString("d MMMM yyyy");

            if (ViewState["TanggalAwal"].ToString() == ViewState["TanggalAkhir"].ToString())
            {
                LabelPeriode.Text = ViewState["TanggalAwal"].ToFormatTanggal();
            }
            else
            {
                LabelPeriode.Text = ViewState["TanggalAwal"].ToFormatTanggal() + " - " + ViewState["TanggalAkhir"].ToFormatTanggal();
            }
            #endregion

            //Literal LiteralChart = (Literal)Page.Master.FindControl("LiteralChart");
            LiteralChart.Text = string.Empty;

            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                var DataJenisPembayaran = db.TBTransaksiJenisPembayarans
                                          .Where(item =>
                                                 item.TBTransaksi.IDStatusTransaksi == (int)EnumStatusTransaksi.Complete &&
                                                 item.Tanggal.Value.Date >= (DateTime)ViewState["TanggalAwal"] &&
                                                 item.Tanggal.Value.Date <= (DateTime)ViewState["TanggalAkhir"])
                                          .ToArray();

                #region FILTER
                if (DropDownListTempat.SelectedValue != "0")
                {
                    DataJenisPembayaran = DataJenisPembayaran.Where(item => item.TBTransaksi.IDTempat == DropDownListTempat.SelectedValue.ToInt()).ToArray();
                }

                if (DropDownListJenisTransaksi.SelectedValue != "0")
                {
                    DataJenisPembayaran = DataJenisPembayaran.Where(item => item.TBTransaksi.IDJenisTransaksi == DropDownListJenisTransaksi.SelectedValue.ToInt()).ToArray();
                }
                #endregion

                var JenisPembayaran = DataJenisPembayaran
                                      .GroupBy(item => new
                {
                    item.IDJenisPembayaran,
                    item.TBJenisPembayaran.Nama
                })
                                      .Select(item => new
                {
                    item.Key,
                    Total = item.Sum(item2 => item2.Total)
                })
                                      .OrderByDescending(item => item.Total)
                                      .ToArray();

                int Height = JenisPembayaran.Count() * 30;
                divChart.Attributes.Add("style", "width: auto; height: " + (Height > 600 ? Height : 600) + "px; margin: 0 auto;");

                string Judul    = "";
                string SubJudul = "";
                string JudulX   = "Jenis Pembayaran";
                string DataX    = "";

                string JudulY = "Total Jenis Pembayaran";

                string DataY   = "";
                string Tooltip = "";

                foreach (var item in JenisPembayaran)
                {
                    DataX += "'" + item.Key.Nama + "',";
                    DataY += item.Total + ",";
                }

                LiteralChart.Text += "<script type=\"text/javascript\">";
                LiteralChart.Text += "$(function () { $('#divChart').highcharts({";
                LiteralChart.Text += "        chart: { type: 'bar' },";
                LiteralChart.Text += "        title: { text: '" + Judul + "' },";
                LiteralChart.Text += "        subtitle: { text: '" + SubJudul + "' },";
                LiteralChart.Text += "        xAxis: { categories: [" + DataX + "] },";
                LiteralChart.Text += "        yAxis: { min: 0, title: { text: '" + JudulY + "' } },";
                LiteralChart.Text += "        tooltip: { valueSuffix: '" + Tooltip + "' },";
                LiteralChart.Text += "        legend: { reversed: true },";
                LiteralChart.Text += "        plotOptions: { series: { stacking: 'normal' } },";
                LiteralChart.Text += "        credits: { enabled: false },";
                LiteralChart.Text += "        exporting: { enabled: false },";
                LiteralChart.Text += "        series: [";
                LiteralChart.Text += "		{";
                LiteralChart.Text += "            name: '" + JudulX + "',";
                LiteralChart.Text += "            data: [" + DataY + "]";
                LiteralChart.Text += "        },";
                LiteralChart.Text += "		]";
                LiteralChart.Text += "    }); });";
                LiteralChart.Text += "</script>";
            }
        }
    }