Example #1
0
    /// <summary>
    /// Login Berdasarkan IDPengguna dan IDTempat
    /// </summary>
    public PenggunaLogin(int idPengguna, int idTempat)
    {
        using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
        {
            StoreKonfigurasi_Class StoreKonfigurasi_Class = new StoreKonfigurasi_Class();

            var TipePointOfSales = StoreKonfigurasi_Class.Pengaturan(db, EnumStoreKonfigurasi.TipePointOfSales);

            var Pengguna = db.TBPenggunas
                           .FirstOrDefault(item => item.IDPengguna == idPengguna);

            var Tempat = db.TBTempats
                         .FirstOrDefault(item => item.IDTempat == idTempat);

            if (Pengguna != null)
            {
                iDGrupPengguna = Pengguna.IDGrupPengguna;
                iDPengguna     = Pengguna.IDPengguna;
                iDTempat       = Tempat.IDTempat;
                namaLengkap    = Pengguna.NamaLengkap;
                username       = Pengguna.Username;
                tempat         = Tempat.Nama;
                store          = Tempat.TBStore.Nama;
                idWMSStore     = Pengguna._IDWMSStore.Value;
                idStore        = Pengguna.TBTempat.IDStore;
                pointOfSales   = (TipePointOfSales)TipePointOfSales.ToInt();
            }
        }
    }
Example #2
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            StoreKonfigurasi_Class StoreKonfigurasi_Class = new StoreKonfigurasi_Class();

            RepeaterKonfigurasi.DataSource = StoreKonfigurasi_Class.LoadData();
            RepeaterKonfigurasi.DataBind();
        }
    }
Example #3
0
    int IDTempat = 1; //DEFAULT TEMPAT

    protected void Page_Init(object sender, EventArgs e)
    {
        #region VALIDASI FITUR ECOMMERCE
        using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
        {
            StoreKonfigurasi_Class StoreKonfigurasi_Class = new StoreKonfigurasi_Class();

            if (!bool.Parse(StoreKonfigurasi_Class.Pengaturan(db, EnumStoreKonfigurasi.FiturECommerce)))
                Response.Redirect("/WITAdministrator/Default.aspx");
        }
        #endregion

        //CEK APAKAH SESSION ADA
        if (Session["PelangganLogin"] == null)
        {
            if (Request.Cookies["WMSCommerce"] != null)
            {
                //JIKA MEMILIKI COOKIES
                //LOGIN PELANGGAN MENGGUNAKAN IDWMSPelangganEnkripsi
                PelangganLogin Pelanggan = new PelangganLogin(Request.Cookies["WMSCommerce"].Value);

                if (Pelanggan.IDPelanggan > 0)
                {
                    Session["PelangganLogin"] = Pelanggan;
                    Session.Timeout = 525000;

                    //MEMBUAT COOKIES ENCRYPT
                    Response.Cookies["WMSCommerce"].Value = Pelanggan.IDWMSPelangganEnkripsi;
                    Response.Cookies["WMSCommerce"].Expires = DateTime.Now.AddYears(1);
                }
                else
                    MembuatPelanggan(); //PELANGGAN TIDAK DITEMUKAN
            }
            else
                MembuatPelanggan(); //JIKA COOKIES TIDAK ADA

        }

        using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
        {
            PelangganLogin PelangganLogin = (PelangganLogin)Session["PelangganLogin"];
            //MENCARI TRANSAKSI SESSION
            var TransaksiECommerceDetail = db.TBTransaksiECommerceDetails
                .Where(item => item.TBTransaksiECommerce.IDPelanggan == PelangganLogin.IDPelanggan);

            LiteralTotalQuantity.Text = TransaksiECommerceDetail.Count().ToString();
        }

        Session.Timeout = 525000;

        ////////////PelangganLogin PelangganLogin = (PelangganLogin)Session["PelangganLogin"];
        ////////////Response.Write("_IDWMSPelangan : " + PelangganLogin.IDWMSPelanggan);
        ////////////Response.Write("<br/>IDPelanggan : " + PelangganLogin.IDPelanggan + "<br/><br/>");
    }
Example #4
0
    private void ReportPenjualan()
    {
        using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
        {
            StoreKonfigurasi_Class StoreKonfigurasi_Class = new StoreKonfigurasi_Class();
            string Email = StoreKonfigurasi_Class.Cari(db, EnumStoreKonfigurasi.EmailReportSales).Pengaturan;

            foreach (var Tempat in db.TBTempats.ToArray())
            {
                string Judul = "Laporan Purchase Order & Produksi " + Tempat.TBStore.Nama + " - " + Tempat.Nama;

                TBPOProduksiBahanBaku[] daftarPOProduksiBahanBaku = db.TBPOProduksiBahanBakus.Where(item => item.IDTempat == Tempat.IDTempat).ToArray();

                if (daftarPOProduksiBahanBaku.Count() > 0)
                {
                    #region Jatuh Tempo
                    string  LiteralJatuhTempo = "";
                    decimal batas             = db.TBStoreKonfigurasis.FirstOrDefault(item => item.IDStoreKonfigurasi == (int)EnumStoreKonfigurasi.JumlahHariSebelumJatuhTempo).Pengaturan.ToDecimal();

                    var hasil = daftarPOProduksiBahanBaku
                                .Where(item => item.EnumJenisProduksi != (int)PilihanEnumJenisProduksi.ProduksiSendiri && ((int)((item.TanggalJatuhTempo.Value.Date - DateTime.Now.Date).TotalDays) < batas))
                                .Select(item => new
                    {
                        item.IDPOProduksiBahanBaku,
                        item.TBSupplier.Nama,
                        item.Tanggal,
                        item.TanggalJatuhTempo,
                        Jarak = (item.TanggalJatuhTempo.Value.Date - DateTime.Now.Date).TotalDays
                    })
                                .OrderBy(item => item.Tanggal)
                                .ToArray();

                    int count = 1;
                    foreach (var item in hasil)
                    {
                        LiteralJatuhTempo += "<tr>";
                        LiteralJatuhTempo += "<td align='center'>" + count.ToString() + "</td>";
                        LiteralJatuhTempo += "<td align='left'>" + item.IDPOProduksiBahanBaku + "</td>";
                        LiteralJatuhTempo += "<td align='left'>" + item.Nama + "</td>";
                        LiteralJatuhTempo += "<td align='left'>" + item.Tanggal.ToFormatTanggal() + "</td>";
                        LiteralJatuhTempo += "<td align='left'>" + item.TanggalJatuhTempo.ToFormatTanggal() + "</td>";
                        LiteralJatuhTempo += "<td align='right'>" + item.Jarak + " Hari</td>";
                        LiteralJatuhTempo += "</tr>";

                        count++;
                    }

                    Literal1.Text = LiteralJatuhTempo;
                    #endregion
                }
            }
        }
    }
Example #5
0
    private TBStokProduk MembuatBaru(int jumlahAwal, int idTempat, int idPengguna, TBKombinasiProduk kombinasiProduk, decimal hargaBeli, decimal hargaJual, decimal persentaseKonsinyasi, string keterangan, bool status)
    {
        StoreKonfigurasi_Class StoreKonfigurasi_Class = new StoreKonfigurasi_Class();

        string KonfigurasiMinimumStok = StoreKonfigurasi_Class.Cari(db, EnumStoreKonfigurasi.MinimumStok).Pengaturan;

        decimal JumlahMinimum;
        decimal JumlahStokAwal = (jumlahAwal < 0) ? 0 : jumlahAwal;

        //MENGATUR STOK MINIMUM
        if (KonfigurasiMinimumStok.Contains("%"))
        {
            JumlahMinimum = Math.Ceiling(JumlahStokAwal * KonfigurasiMinimumStok.Replace("%", "").ToDecimal() / 100);
        }
        else
        {
            JumlahMinimum = KonfigurasiMinimumStok.ToDecimal();
        }

        //MEMBUAT STOK PRODUK
        TBStokProduk StokProduk = new TBStokProduk
        {
            HargaBeli              = hargaBeli,
            HargaJual              = hargaJual,
            TBKombinasiProduk      = kombinasiProduk,
            IDTempat               = idTempat,
            Jumlah                 = 0,
            JumlahMinimum          = (int)JumlahMinimum,
            PersentaseKonsinyasi   = persentaseKonsinyasi,
            Status                 = true,
            EnumDiscountStore      = (int)EnumDiscount.TidakAda,
            DiscountStore          = 0,
            EnumDiscountKonsinyasi = (int)EnumDiscount.TidakAda,
            DiscountKonsinyasi     = 0
        };

        if (jumlahAwal > 0)
        {
            BertambahBerkurang(idTempat, idPengguna, StokProduk, jumlahAwal, StokProduk.HargaBeli.Value, StokProduk.HargaJual.Value, EnumJenisPerpindahanStok.StokOpnameBertambah, keterangan);
        }
        else
        {
            BertambahBerkurang(idTempat, idPengguna, StokProduk, jumlahAwal, StokProduk.HargaBeli.Value, StokProduk.HargaJual.Value, EnumJenisPerpindahanStok.StokOpnameBerkurang, keterangan);
        }

        return(StokProduk);
    }
Example #6
0
    protected void ButtonSimpan_Click(object sender, EventArgs e)
    {
        using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
        {
            StoreKonfigurasi_Class StoreKonfigurasi_Class = new StoreKonfigurasi_Class();

            foreach (RepeaterItem item in RepeaterKonfigurasi.Items)
            {
                Label   LabelIDStoreKonfigurasi = (Label)item.FindControl("LabelIDStoreKonfigurasi");
                TextBox TextBoxPengaturan       = (TextBox)item.FindControl("TextBoxPengaturan");

                StoreKonfigurasi_Class.UbahPengaturan(db, LabelIDStoreKonfigurasi.Text.ToInt(), TextBoxPengaturan.Text);
            }

            db.SubmitChanges();
        }
    }
Example #7
0
    public void UpdateMinimumStokProduk(DataClassesDatabaseDataContext db)
    {
        StoreKonfigurasi_Class StoreKonfigurasi_Class = new StoreKonfigurasi_Class();

        var Konfigurasi = StoreKonfigurasi_Class.Pengaturan(db, EnumStoreKonfigurasi.MinimumStok);

        //CARI STOK PRODUK YANG TIDAK MEMILIKI MINIMUM STOK
        var StokProduk = db.TBStokProduks.Where(item => item.JumlahMinimum == 0);

        foreach (var item in StokProduk)
        {
            if (Konfigurasi.Contains("%"))
            {
                item.JumlahMinimum = (int)Math.Ceiling((decimal)item.Jumlah * Konfigurasi.Replace("%", "").ToDecimal() / 100);
            }
            else
            {
                item.JumlahMinimum = Konfigurasi.ToInt();
            }
        }
    }
Example #8
0
    /// <summary>
    /// Login Berdasarkan Username dan Password
    /// </summary>
    public PenggunaLogin(string username, string password)
    {
        using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
        {
            StoreKonfigurasi_Class StoreKonfigurasi_Class = new StoreKonfigurasi_Class();

            var TipePointOfSales = StoreKonfigurasi_Class.Pengaturan(db, EnumStoreKonfigurasi.TipePointOfSales);

            var Pengguna = db.TBPenggunas
                           .FirstOrDefault(item =>
                                           item.Username == username &&
                                           item.Password == password &&
                                           item._IsActive);

            if (Pengguna != null)
            {
                //menambah LogPengguna tipe Login : 1
                db.TBLogPenggunas.InsertOnSubmit(new TBLogPengguna
                {
                    IDLogPenggunaTipe = 1,
                    TBPengguna        = Pengguna,
                    Tanggal           = DateTime.Now
                });

                db.SubmitChanges();

                iDGrupPengguna = Pengguna.IDGrupPengguna;
                iDPengguna     = Pengguna.IDPengguna;
                iDTempat       = Pengguna.IDTempat;
                namaLengkap    = Pengguna.NamaLengkap;
                this.username  = Pengguna.Username;
                tempat         = Pengguna.TBTempat.Nama;
                store          = Pengguna.TBTempat.TBStore.Nama;
                idWMSStore     = Pengguna._IDWMSStore.Value;
                idStore        = Pengguna.TBTempat.IDStore;
                pointOfSales   = (TipePointOfSales)TipePointOfSales.ToInt();
            }
        }
    }
Example #9
0
    /// <summary>
    /// Login Berdasarkan IDPengguna dan status Enkripsi
    /// </summary>
    public PenggunaLogin(string idPengguna, bool enkripsi)
    {
        using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
        {
            StoreKonfigurasi_Class StoreKonfigurasi_Class = new StoreKonfigurasi_Class();

            var TipePointOfSales = StoreKonfigurasi_Class.Pengaturan(db, EnumStoreKonfigurasi.TipePointOfSales);

            TBPengguna Pengguna;

            if (enkripsi)
            {
                Pengguna = db.TBPenggunas
                           .FirstOrDefault(item =>
                                           item.IDPengguna == EncryptDecrypt.Decrypt(idPengguna).ToInt());
            }
            else
            {
                Pengguna = db.TBPenggunas
                           .FirstOrDefault(item =>
                                           item.IDPengguna == idPengguna.ToInt());
            }

            if (Pengguna != null)
            {
                iDGrupPengguna = Pengguna.IDGrupPengguna;
                iDPengguna     = Pengguna.IDPengguna;
                iDTempat       = Pengguna.IDTempat;
                namaLengkap    = Pengguna.NamaLengkap;
                username       = Pengguna.Username;
                tempat         = Pengguna.TBTempat.Nama;
                store          = Pengguna.TBTempat.TBStore.Nama;
                idWMSStore     = Pengguna._IDWMSStore.Value;
                idStore        = Pengguna.TBTempat.IDStore;
                pointOfSales   = (TipePointOfSales)TipePointOfSales.ToInt();
            }
        }
    }
Example #10
0
    //CASE 2
    private string LaporanPenjualan()
    {
        try
        {
            string path           = Server.MapPath("/WITEmail/Laporan.html");
            Guid   IDWMSStore     = Guid.NewGuid();
            var    TanggalLaporan = DateTime.Now.AddDays(-1).Date;
            bool   IsSimpan       = false;

            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                StoreKonfigurasi_Class StoreKonfigurasi_Class = new StoreKonfigurasi_Class();
                string Email = StoreKonfigurasi_Class.Cari(db, EnumStoreKonfigurasi.EmailReportSales).Pengaturan;

                foreach (var Tempat in db.TBTempats.ToArray())
                {
                    string Judul = "Laporan Penjualan " + Tempat.TBStore.Nama + " - " + Tempat.Nama + " " + TanggalLaporan.ToFormatTanggal();
                    string body  = "";

                    using (StreamReader reader = new StreamReader(path))
                    {
                        body = reader.ReadToEnd();
                    }

                    body = body.Replace("{Store}", Tempat.TBStore.Nama);
                    body = body.Replace("{Tempat}", Tempat.Nama);
                    body = body.Replace("{TanggalLaporan}", TanggalLaporan.ToFormatTanggal());

                    var ListTransaksi = db.TBTransaksis
                                        .AsEnumerable()
                                        .Where(item => item.IDTempat == Tempat.IDTempat &&
                                               item.IDStatusTransaksi == (int)EnumStatusTransaksi.Complete &&
                                               item.TanggalOperasional.Value.Date == TanggalLaporan).ToArray();

                    if (ListTransaksi.Count() > 0)
                    {
                        #region DATA
                        var ListTransaksiJenisPembayaran = db.TBTransaksiJenisPembayarans
                                                           .AsEnumerable()
                                                           .Where(item => item.TBTransaksi.IDTempat == Tempat.IDTempat &&
                                                                  item.TBTransaksi.IDStatusTransaksi == (int)EnumStatusTransaksi.Complete &&
                                                                  item.TBTransaksi.TanggalOperasional.Value.Date == TanggalLaporan).ToArray();

                        var ListTransaksiDetail = db.TBTransaksiDetails
                                                  .AsEnumerable()
                                                  .Where(item => item.TBTransaksi.IDTempat == Tempat.IDTempat &&
                                                         item.TBTransaksi.IDStatusTransaksi == (int)EnumStatusTransaksi.Complete &&
                                                         item.TBTransaksi.TanggalOperasional.Value.Date == TanggalLaporan)
                                                  .GroupBy(item => new
                        {
                            item.IDKombinasiProduk,
                            item.TBKombinasiProduk.Nama
                        })
                                                  .Select(item => new
                        {
                            item.Key,
                            Total = item.Sum(item2 => item2.Quantity)
                        })
                                                  .OrderByDescending(item => item.Total);

                        var TransaksiPerJam = ListTransaksi
                                              .GroupBy(item => item.TanggalTransaksi.Value.Hour)
                                              .Select(item => new
                        {
                            item.Key,
                            Total = item.Sum(item2 => item2.GrandTotal)
                        });

                        var ListPelanggan = ListTransaksi
                                            .GroupBy(item => new
                        {
                            item.IDPelanggan,
                            item.TBPelanggan.NamaLengkap
                        })
                                            .Select(item => new
                        {
                            item.Key,
                            Total = item.Sum(item2 => item2.GrandTotal)
                        });
                        #endregion

                        var HariIni = ListTransaksi.Sum(item => item.GrandTotal);

                        #region GROWTH HARIAN
                        body = body.Replace("{GrandTotal}", HariIni.ToFormatHarga());

                        var Kemarin = db.TBTransaksis
                                      .Where(item =>
                                             item.IDTempat == Tempat.IDTempat &&
                                             item.IDStatusTransaksi == (int)EnumStatusTransaksi.Complete &&
                                             item.TanggalOperasional.Value.Date == TanggalLaporan.Date.AddDays(-1)).Sum(item => item.GrandTotal);

                        //LAPORAN SALES KEMARIN
                        body = body.Replace("{KemarinKeterangan}", TanggalLaporan.Date.AddDays(-1).ToFormatTanggal());
                        body = body.Replace("{Kemarin}", Kemarin.ToFormatHarga());

                        if (Kemarin > 0)
                        {
                            var GrowthHarian = (HariIni - Kemarin) / Kemarin * 100;

                            if (GrowthHarian > 0)
                            {
                                body = body.Replace("{GrowthHarian}", "<td align=\"right\" colspan=\"1\" height=\"40\" rowspan=\"1\" width=\"275\" style=\"color:Green;\">&#9650;" + GrowthHarian.ToFormatHarga() + "%</td>");
                            }
                            else
                            {
                                body = body.Replace("{GrowthHarian}", "<td align=\"right\" colspan=\"1\" height=\"40\" rowspan=\"1\" width=\"275\" style=\"color:Red;\">&#9660;" + GrowthHarian.ToFormatHarga() + "%</td>");
                            }
                        }
                        else
                        {
                            body = body.Replace("{GrowthHarian}", "<td align=\"right\" colspan=\"1\" height=\"40\" rowspan=\"1\" width=\"275\"></td>");
                        }
                        #endregion

                        #region GROWTH BULANAN
                        var BulanIni = db.TBTransaksis
                                       .Where(item =>
                                              item.IDTempat == Tempat.IDTempat &&
                                              item.IDStatusTransaksi == (int)EnumStatusTransaksi.Complete &&
                                              item.TanggalOperasional.Value.Month == TanggalLaporan.Month).Sum(item => item.GrandTotal);

                        //LAPORAN SALES BULAN INI
                        body = body.Replace("{BulanIniKeterangan}", TanggalLaporan.ToString("MMMM"));
                        body = body.Replace("{BulanIni}", BulanIni.ToFormatHarga());

                        var BulanLalu = db.TBTransaksis
                                        .Where(item =>
                                               item.IDTempat == Tempat.IDTempat &&
                                               item.IDStatusTransaksi == (int)EnumStatusTransaksi.Complete &&
                                               item.TanggalOperasional.Value.Month == TanggalLaporan.AddMonths(-1).Month).Sum(item => item.GrandTotal);

                        if (BulanLalu > 0)
                        {
                            var GrowthBulanan = (BulanIni - BulanLalu) / BulanLalu * 100;

                            if (GrowthBulanan > 0)
                            {
                                body = body.Replace("{GrowthBulanan}", "<td align=\"right\" colspan=\"1\" height=\"40\" rowspan=\"1\" width=\"275\" style=\"color:Green;\">&#9650;" + GrowthBulanan.ToFormatHarga() + "%</td>");
                            }
                            else
                            {
                                body = body.Replace("{GrowthBulanan}", "<td align=\"right\" colspan=\"1\" height=\"40\" rowspan=\"1\" width=\"275\" style=\"color:Red;\">&#9660;" + GrowthBulanan.ToFormatHarga() + "%</td>");
                            }
                        }
                        else
                        {
                            body = body.Replace("{GrowthBulanan}", "<td align=\"right\" colspan=\"1\" height=\"40\" rowspan=\"1\" width=\"275\"></td>");
                        }
                        #endregion

                        #region GROWTH TAHUNAN
                        var TahunLalu = db.TBTransaksis
                                        .Where(item =>
                                               item.IDTempat == Tempat.IDTempat &&
                                               item.IDStatusTransaksi == (int)EnumStatusTransaksi.Complete &&
                                               item.TanggalOperasional.Value.Year == TanggalLaporan.AddYears(-1).Year)
                                        .Sum(item => item.GrandTotal);

                        var TahunIni = db.TBTransaksis
                                       .Where(item =>
                                              item.IDTempat == Tempat.IDTempat &&
                                              item.IDStatusTransaksi == (int)EnumStatusTransaksi.Complete &&
                                              item.TanggalOperasional.Value.Year == TanggalLaporan.Year)
                                       .Sum(item => item.GrandTotal);

                        if (TahunLalu > 0)
                        {
                            var GrowthTahunan = (TahunIni - TahunLalu) / TahunLalu * 100;

                            if (GrowthTahunan > 0)
                            {
                                body = body.Replace("{GrowthTahunan}", "<td align=\"right\" colspan=\"1\" height=\"40\" rowspan=\"1\" width=\"275\" style=\"color:Green;\">&#9650;" + GrowthTahunan.ToFormatHarga() + "%</td>");
                            }
                            else
                            {
                                body = body.Replace("{GrowthTahunan}", "<td align=\"right\" colspan=\"1\" height=\"40\" rowspan=\"1\" width=\"275\" style=\"color:Red;\">&#9660;" + GrowthTahunan.ToFormatHarga() + "%</td>");
                            }
                        }
                        else
                        {
                            body = body.Replace("{GrowthTahunan}", "<td align=\"right\" colspan=\"1\" height=\"40\" rowspan=\"1\" width=\"275\"></td>");
                        }
                        #endregion

                        body = body.Replace("{PenjualanItem}", ListTransaksi.Sum(item => item.Subtotal + item.TotalPotonganHargaJualDetail + item.PotonganTransaksi).ToFormatHargaBulat());
                        body = body.Replace("{Discount}", ListTransaksi.Sum(item => item.TotalPotonganHargaJualDetail + item.PotonganTransaksi).ToFormatHarga());
                        body = body.Replace("{Pembulatan}", ListTransaksi.Sum(item => item.Pembulatan).ToFormatHarga());

                        #region BIAYA TAMBAHAN
                        string LiteralBiayaTambahan = "";

                        var BiayaTambahan1 = ListTransaksi.Sum(item => item.BiayaTambahan1);

                        if (BiayaTambahan1 > 0)
                        {
                            LiteralBiayaTambahan += "<tr><td align='left' colspan='1' rowspan='1' width='275'>" + Tempat.KeteranganBiayaTambahan1 + "</td>";
                            LiteralBiayaTambahan += "<td align='right' colspan='1' height='40' rowspan='1' width='275'>" + BiayaTambahan1.ToFormatHarga() + "</td></tr><tr>";
                            LiteralBiayaTambahan += "<td colspan='2' height='1' rowspan='1' style='font-size: 0; line-height: 0; background-color: #EBECED;'>&nbsp;</td></tr>";
                        }

                        var BiayaTambahan2 = ListTransaksi.Sum(item => item.BiayaTambahan2);

                        if (BiayaTambahan2 > 0)
                        {
                            LiteralBiayaTambahan += "<tr><td align='left' colspan='1' rowspan='1' width='275'>" + Tempat.KeteranganBiayaTambahan2 + "</td>";
                            LiteralBiayaTambahan += "<td align='right' colspan='1' height='40' rowspan='1' width='275'>" + BiayaTambahan2.ToFormatHarga() + "</td></tr><tr>";
                            LiteralBiayaTambahan += "<td colspan='2' height='1' rowspan='1' style='font-size: 0; line-height: 0; background-color: #EBECED;'>&nbsp;</td></tr>";
                        }

                        var BiayaTambahan3 = ListTransaksi.Sum(item => item.BiayaTambahan3);

                        if (BiayaTambahan3 > 0)
                        {
                            LiteralBiayaTambahan += "<tr><td align='left' colspan='1' rowspan='1' width='275'>" + Tempat.KeteranganBiayaTambahan3 + "</td>";
                            LiteralBiayaTambahan += "<td align='right' colspan='1' height='40' rowspan='1' width='275'>" + BiayaTambahan3.ToFormatHarga() + "</td></tr><tr>";
                            LiteralBiayaTambahan += "<td colspan='2' height='1' rowspan='1' style='font-size: 0; line-height: 0; background-color: #EBECED;'>&nbsp;</td></tr>";
                        }

                        var BiayaTambahan4 = ListTransaksi.Sum(item => item.BiayaTambahan4);

                        if (BiayaTambahan4 > 0)
                        {
                            LiteralBiayaTambahan += "<tr><td align='left' colspan='1' rowspan='1' width='275'>" + Tempat.KeteranganBiayaTambahan4 + "</td>";
                            LiteralBiayaTambahan += "<td align='right' colspan='1' height='40' rowspan='1' width='275'>" + BiayaTambahan4.ToFormatHarga() + "</td></tr><tr>";
                            LiteralBiayaTambahan += "<td colspan='2' height='1' rowspan='1' style='font-size: 0; line-height: 0; background-color: #EBECED;'>&nbsp;</td></tr>";
                        }

                        body = body.Replace("{BiayaTambahan}", LiteralBiayaTambahan);
                        #endregion

                        #region JENIS PEMBAYARAN
                        string LiteralJenisPembayaran = "";

                        foreach (var item in db.TBJenisPembayarans.ToArray())
                        {
                            var Total = ListTransaksiJenisPembayaran
                                        .Where(item2 => item2.IDJenisPembayaran == item.IDJenisPembayaran)
                                        .Sum(item2 => item2.Total);

                            if (Total > 0)
                            {
                                LiteralJenisPembayaran += "<tr><td align='left' colspan='1' rowspan='1' width='275'>" + item.Nama + "</td>";
                                LiteralJenisPembayaran += "<td align='right' colspan='1' height='40' rowspan='1' width='275'>" + Total.ToFormatHarga() + "</td></tr><tr>";
                                LiteralJenisPembayaran += "<td colspan='2' height='1' rowspan='1' style='font-size: 0; line-height: 0; background-color: #EBECED;'>&nbsp;</td></tr>";
                            }
                        }

                        body = body.Replace("{JenisPembayaran}", LiteralJenisPembayaran);
                        #endregion

                        #region PELANGGAN
                        string LiteralPelanggan = "";

                        foreach (var item in ListPelanggan.OrderByDescending(item2 => item2.Total))
                        {
                            LiteralPelanggan += "<tr><td align='left' colspan='1' rowspan='1' width='275'>" + item.Key.NamaLengkap + "</td>";
                            LiteralPelanggan += "<td align='right' colspan='1' height='40' rowspan='1' width='275'>" + item.Total.ToFormatHarga() + "</td></tr><tr>";
                            LiteralPelanggan += "<td colspan='2' height='1' rowspan='1' style='font-size: 0; line-height: 0; background-color: #EBECED;'>&nbsp;</td></tr>";
                        }

                        body = body.Replace("{Pelanggan}", LiteralPelanggan);
                        #endregion

                        #region LAPORAN PER JAM
                        string LiteralLaporanPerJam = "";

                        foreach (var item in TransaksiPerJam.OrderBy(item => item.Key))
                        {
                            LiteralLaporanPerJam += "<tr><td colspan='1' rowspan='1' width='80'><table bgcolor='#f0f0f0' border='0' cellpadding='0' cellspacing='0' width='100%'>";
                            LiteralLaporanPerJam += "<tr><td align='left' colspan='1' height='42' rowspan='1' style='font-family: Verdana; font-size: 14px; line-height: 18px; font-weight: 600; color: rgb(61, 69, 76); white-space: nowrap; padding: 0 15px;' width='100%'>" + item.Key + ":00</td></tr></table></td>";
                            LiteralLaporanPerJam += "<td align='left' bgcolor='#FFFFFF' colspan='1' rowspan='1' width='500'>";
                            LiteralLaporanPerJam += "<table bgcolor='#f0f0f0' border='0' cellpadding='0' cellspacing='0' width='100%'><tr>";
                            LiteralLaporanPerJam += "<td align='right' colspan='1' height='42' rowspan='1' style='font-family: Verdana; font-size: 14px; line-height: 18px; font-weight: 600; color: rgb(61, 69, 76); white-space: nowrap; padding: 0 15px;' width='100%'>" + item.Total.ToFormatHarga() + "</td></tr></table></td></tr><tr>";
                            LiteralLaporanPerJam += "<td bgcolor='#FFFFFF' colspan='2' height='1' rowspan='1' style='font-size: 0; line-height: 0;'>&nbsp;</td></tr>";
                        }

                        body = body.Replace("{LaporanPerJam}", LiteralLaporanPerJam);
                        #endregion

                        #region TOP ITEM
                        string LiteralTopItem = "";

                        foreach (var item in ListTransaksiDetail)
                        {
                            LiteralTopItem += "<tr><td align='left' colspan='1' rowspan='1' width='275'>" + item.Key.Nama + "</td>";
                            LiteralTopItem += "<td align='right' colspan='1' height='40' rowspan='1' width='275'>" + item.Total.ToFormatHargaBulat() + "</td></tr><tr>";
                            LiteralTopItem += "<td colspan='2' height='1' rowspan='1' style='font-size: 0; line-height: 0; background-color: #EBECED;'>&nbsp;</td></tr>";
                        }

                        body = body.Replace("{TopItem}", LiteralTopItem);
                        body = body.Replace("{TotalItem}", ListTransaksi.Sum(item => item.JumlahProduk).ToFormatHargaBulat());
                        #endregion

                        #region KIRIM EMAIL
                        foreach (var item in Email.Replace(" ", "").Split(','))
                        {
                            IsSimpan = true;

                            db.TBPengirimanEmails.InsertOnSubmit(new TBPengirimanEmail
                            {
                                Judul        = Judul,
                                TanggalKirim = DateTime.Now,
                                Tujuan       = item,
                                Isi          = body.Replace("{Logo}", "<img src='" + "http://wit.systems/Logo.aspx?IDWMSStore=" + IDWMSStore + "&IDWMSEmail=" + Guid.NewGuid() + "&EmailPenerima=" + item + "&Judul=" + Judul + "' height=\"35\" />")
                            });
                        }
                        #endregion
                    }
                }

                if (IsSimpan)
                {
                    db.SubmitChanges();
                }
            }

            if (IsSimpan)
            {
                return(JsonConvert.SerializeObject(new WebServiceResult
                {
                    EnumWebService = (int)EnumWebService.Success,
                    Pesan = "[BERHASIL GENERATE] Laporan Penjualan " + TanggalLaporan.ToFormatTanggalHari() + " berhasil digenerate",
                }, Formatting.Indented));
            }
            else
            {
                return(JsonConvert.SerializeObject(new WebServiceResult
                {
                    EnumWebService = (int)EnumWebService.NoAction,
                    Pesan = "Tidak ada Laporan Penjualan " + TanggalLaporan.ToFormatTanggalHari(),
                }, Formatting.Indented));
            }
        }
        catch (Exception ex)
        {
            LogError_Class Error = new LogError_Class(ex, "WebServiceTomahawk_LaporanPenjualan");

            return(JsonConvert.SerializeObject(new WebServiceResult
            {
                EnumWebService = (int)EnumWebService.Exception,
                Pesan = ex.Message
            }, Formatting.Indented));
        }
    }
Example #11
0
    public void Proses()
    {
        Context.Response.Clear();
        Context.Response.ContentType = "application/json";

        try
        {
            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                StoreKonfigurasi_Class StoreKonfigurasi_Class = new StoreKonfigurasi_Class();

                var StoreKonfigurasi = StoreKonfigurasi_Class.Cari(db, EnumStoreKonfigurasi.UrutanProsesTomahawk);

                var KonfigurasiTomahawk = db.TBKonfigurasiTomahawks.FirstOrDefault(item => item.Urutan == StoreKonfigurasi.Pengaturan.ToInt());

                #region MENYIMPAN KONFIGURASI URUTAN SELANJUTNYA
                var MaksimalUrutan = db.TBKonfigurasiTomahawks.Max(item => item.Urutan);

                if (StoreKonfigurasi.Pengaturan.ToInt() == MaksimalUrutan)
                {
                    StoreKonfigurasi_Class.UbahPengaturan(db, (int)EnumStoreKonfigurasi.UrutanProsesTomahawk, "1");
                }
                else
                {
                    StoreKonfigurasi_Class.UbahPengaturan(db, (int)EnumStoreKonfigurasi.UrutanProsesTomahawk, (StoreKonfigurasi.Pengaturan.ToInt() + 1).ToString());
                }

                db.SubmitChanges();
                #endregion

                if (KonfigurasiTomahawk != null)
                {
                    if ((DateTime.Now - KonfigurasiTomahawk.TanggalTerakhirProses).TotalMinutes > KonfigurasiTomahawk.DurasiProses)
                    {
                        switch (KonfigurasiTomahawk.Urutan)
                        {
                        case 1: Context.Response.Write(KirimEmail()); break;

                        case 2: Context.Response.Write(LaporanPenjualan()); break;

                        //case 3: Context.Response.Write(LaporanPOProduksi()); break;
                        case 4: Context.Response.Write(UpdateDiscountSelesai()); break;

                        case 5: Context.Response.Write(UpdateDiscountMulai()); break;

                        case 6: Context.Response.Write(GenerateStoreKey()); break;
                        }

                        var UpdateKonfigurasiTomahawk = db.TBKonfigurasiTomahawks.FirstOrDefault(item => item.Urutan == KonfigurasiTomahawk.Urutan);

                        UpdateKonfigurasiTomahawk.TanggalTerakhirProses = UpdateKonfigurasiTomahawk.TanggalTerakhirProses.AddMinutes(UpdateKonfigurasiTomahawk.DurasiProses);
                        db.SubmitChanges();
                    }
                    else
                    {
                        Context.Response.Write(JsonConvert.SerializeObject(new WebServiceResult
                        {
                            EnumWebService = (int)EnumWebService.NoAction,
                            Pesan          = "Tomahawk Up To Date"
                        }, Formatting.Indented));
                    }
                }
                else
                {
                    Context.Response.Write(JsonConvert.SerializeObject(new WebServiceResult
                    {
                        EnumWebService = (int)EnumWebService.NoAction,
                        Pesan          = "Konfigurasi Tomahawk Tidak Ditemukan"
                    }, Formatting.Indented));
                }
            }
        }
        catch (Exception ex)
        {
            LogError_Class Error = new LogError_Class(ex, "WebServiceTomahawk_Proses");

            Context.Response.Write(JsonConvert.SerializeObject(new WebServiceResult
            {
                EnumWebService = (int)EnumWebService.Exception,
                Pesan          = ex.Message
            }, Formatting.Indented));
        }
    }
Example #12
0
    protected void ButtonExcel_Click(object sender, EventArgs e)
    {
        using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
        {
            string NamaWorksheet = "Index Hutang";

            #region Default
            string NamaFile = "Laporan " + NamaWorksheet + " " + DateTime.Now.ToString("d MMMM yyyy hh.mm.ss") + ".xlsx";
            string Folder   = Server.MapPath("~/file_excel/" + NamaWorksheet + "/Export/");

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

            string Path  = Folder + NamaFile;
            string Judul = "Laporan " + NamaWorksheet + " " + DateTime.Now.ToString("d MMMM yyyy");


            int      indexRow = 2;
            FileInfo newFile  = new FileInfo(Path);
            #endregion

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

                StoreKonfigurasi_Class config = new StoreKonfigurasi_Class();
                var jatuhTempo = config.Cari(db, EnumStoreKonfigurasi.HariJatuhTempo);

                var totalSales = from t in db.TBTransaksis
                                 select new
                {
                    t.GrandTotal,
                    t.IDPelanggan,
                };

                var totalBayar = from t in db.TBTransaksiJenisPembayarans
                                 group t by new { t.Bayar, t.IDTransaksi } into g
                    select new
                {
                    IDTransaksi = g.Key.IDTransaksi,
                    Total       = g.Sum(i => i.Bayar)
                };

                var totalHutang = from t in db.TBTransaksis
                                  where t.IDStatusTransaksi == (int)EnumStatusTransaksi.AwaitingPayment
                                  select new
                {
                    t.IDPelanggan,
                    t.IDTransaksi,
                    t.TanggalTransaksi,
                    Sisa         = totalBayar.Where(s => s.IDTransaksi == t.IDTransaksi).Count() == 0 ? t.GrandTotal : t.GrandTotal - totalBayar.Where(s => s.IDTransaksi == t.IDTransaksi).Sum(i => i.Total),
                    HutangUnreal = totalBayar.Where(s => s.IDTransaksi == t.IDTransaksi).Count() == 0 ? t.GrandTotal * (t.TanggalTransaksi.Value.AddDays(double.Parse(jatuhTempo.Pengaturan)) < DateTime.Now ? (DateTime.Now - t.TanggalTransaksi.Value.AddDays(double.Parse(jatuhTempo.Pengaturan))).Days : 0) : (t.GrandTotal - totalBayar.Where(s => s.IDTransaksi == t.IDTransaksi).Sum(i => i.Total)) * (t.TanggalTransaksi.Value.AddDays(double.Parse(jatuhTempo.Pengaturan)) < DateTime.Now ? (DateTime.Now - t.TanggalTransaksi.Value.AddDays(double.Parse(jatuhTempo.Pengaturan))).Days : 0),
                    //TanggalJatuhTempo = t.TanggalTransaksi.Value.AddDays(double.Parse(jatuhTempo.Pengaturan)),
                    //Hari = t.TanggalTransaksi.Value.AddDays(double.Parse(jatuhTempo.Pengaturan)) < DateTime.Now ? (DateTime.Now - t.TanggalTransaksi.Value.AddDays(double.Parse(jatuhTempo.Pengaturan))).Days : 0,
                };

                worksheet.Cells[1, 1].Value = "No.";
                worksheet.Cells[1, 2].Value = "Pelanggan";
                worksheet.Cells[1, 3].Value = "Total Sales (Rp.)";
                worksheet.Cells[1, 4].Value = "Total Hutang (Rp.)";
                worksheet.Cells[1, 5].Value = "Hutang Tidak Ril (Rp.)";
                worksheet.Cells[1, 6].Value = "Index Hutang";

                if (string.IsNullOrEmpty(SearchString))
                {
                    var dataPelanggan = from item in db.TBPelanggans
                                        select new
                    {
                        Nama         = item.NamaLengkap,
                        DataSales    = totalHutang.Where(t => t.IDPelanggan == item.IDPelanggan).Sum(g => g.Sisa) == null ? 0 : totalSales.Where(t => t.IDPelanggan == item.IDPelanggan).Sum(g => g.GrandTotal),
                        DataHutang   = totalHutang.Where(t => t.IDPelanggan == item.IDPelanggan).Sum(g => g.Sisa) == null ? 0 : totalHutang.Where(t => t.IDPelanggan == item.IDPelanggan).Sum(g => g.Sisa),
                        HutangUnreal = totalHutang.Where(t => t.IDPelanggan == item.IDPelanggan).Sum(g => g.HutangUnreal) == null ? 0 : totalHutang.Where(t => t.IDPelanggan == item.IDPelanggan).Sum(g => g.HutangUnreal),
                        Index        = totalHutang.Where(t => t.IDPelanggan == item.IDPelanggan).Sum(g => g.HutangUnreal) / totalSales.Where(t => t.IDPelanggan == item.IDPelanggan).Sum(g => g.GrandTotal)
                    };


                    foreach (var itemRow in dataPelanggan)
                    {
                        //No
                        worksheet.Cells[indexRow, 1].Value = indexRow - 1;
                        worksheet.Cells[indexRow, 1].Style.Numberformat.Format = "@";

                        //Pelanggan
                        worksheet.Cells[indexRow, 2].Value = itemRow.Nama;
                        worksheet.Cells[indexRow, 2].Style.Numberformat.Format = "@";

                        //Total Sales
                        worksheet.Cells[indexRow, 3].Value = itemRow.DataSales;
                        worksheet.Cells[indexRow, 3].Style.Numberformat.Format = "@";

                        //Total Hutang
                        worksheet.Cells[indexRow, 4].Value = itemRow.DataHutang;
                        worksheet.Cells[indexRow, 4].Style.Numberformat.Format = "@";

                        //Total Hari
                        worksheet.Cells[indexRow, 5].Value = itemRow.HutangUnreal;
                        worksheet.Cells[indexRow, 5].Style.Numberformat.Format = "@";

                        //Index
                        worksheet.Cells[indexRow, 6].Value = itemRow.Index == null ? 0 : itemRow.Index;
                        worksheet.Cells[indexRow, 6].Style.Numberformat.Format = "@";

                        if (itemRow.DataSales.ToFormatHarga().Contains(","))
                        {
                            worksheet.Cells[indexRow, 3].Style.Numberformat.Format = "#,##0.00";
                        }
                        else
                        {
                            worksheet.Cells[indexRow, 3].Style.Numberformat.Format = "#,##0";
                        }

                        if (itemRow.DataHutang.ToFormatHarga().Contains(","))
                        {
                            worksheet.Cells[indexRow, 4].Style.Numberformat.Format = "#,##0.00";
                        }
                        else
                        {
                            worksheet.Cells[indexRow, 4].Style.Numberformat.Format = "#,##0";
                        }

                        if (itemRow.HutangUnreal.ToFormatHarga().Contains(","))
                        {
                            worksheet.Cells[indexRow, 5].Style.Numberformat.Format = "#,##0.00";
                        }
                        else
                        {
                            worksheet.Cells[indexRow, 5].Style.Numberformat.Format = "#,##0";
                        }

                        indexRow++;
                    }
                }
                else
                {
                    var dataPelanggan = from item in db.TBPelanggans
                                        where item.NamaLengkap.ToLower().Contains(SearchString)
                                        select new
                    {
                        Nama         = item.NamaLengkap,
                        DataSales    = totalHutang.Where(t => t.IDPelanggan == item.IDPelanggan).Sum(g => g.Sisa) == null ? 0 : totalSales.Where(t => t.IDPelanggan == item.IDPelanggan).Sum(g => g.GrandTotal),
                        DataHutang   = totalHutang.Where(t => t.IDPelanggan == item.IDPelanggan).Sum(g => g.Sisa) == null ? 0 : totalHutang.Where(t => t.IDPelanggan == item.IDPelanggan).Sum(g => g.Sisa),
                        HutangUnreal = totalHutang.Where(t => t.IDPelanggan == item.IDPelanggan).Sum(g => g.HutangUnreal) == null ? 0 : totalHutang.Where(t => t.IDPelanggan == item.IDPelanggan).Sum(g => g.HutangUnreal),
                        Index        = totalHutang.Where(t => t.IDPelanggan == item.IDPelanggan).Sum(g => g.HutangUnreal) / totalSales.Where(t => t.IDPelanggan == item.IDPelanggan).Sum(g => g.GrandTotal)
                    };

                    foreach (var itemRow in dataPelanggan)
                    {
                        //No
                        worksheet.Cells[indexRow, 1].Value = indexRow - 1;
                        worksheet.Cells[indexRow, 1].Style.Numberformat.Format = "@";

                        //Pelanggan
                        worksheet.Cells[indexRow, 2].Value = itemRow.Nama;
                        worksheet.Cells[indexRow, 2].Style.Numberformat.Format = "@";

                        //Total Sales
                        worksheet.Cells[indexRow, 3].Value = itemRow.DataSales;
                        worksheet.Cells[indexRow, 3].Style.Numberformat.Format = "@";

                        //Total Hutang
                        worksheet.Cells[indexRow, 4].Value = itemRow.DataHutang;
                        worksheet.Cells[indexRow, 4].Style.Numberformat.Format = "@";

                        //Total Hari
                        worksheet.Cells[indexRow, 5].Value = itemRow.HutangUnreal;
                        worksheet.Cells[indexRow, 5].Style.Numberformat.Format = "@";

                        //Index
                        worksheet.Cells[indexRow, 6].Value = itemRow.Index == null ? 0 : itemRow.Index;
                        worksheet.Cells[indexRow, 6].Style.Numberformat.Format = "@";

                        if (itemRow.DataSales.ToFormatHarga().Contains(","))
                        {
                            worksheet.Cells[indexRow, 3].Style.Numberformat.Format = "#,##0.00";
                        }
                        else
                        {
                            worksheet.Cells[indexRow, 3].Style.Numberformat.Format = "#,##0";
                        }

                        if (itemRow.DataHutang.ToFormatHarga().Contains(","))
                        {
                            worksheet.Cells[indexRow, 4].Style.Numberformat.Format = "#,##0.00";
                        }
                        else
                        {
                            worksheet.Cells[indexRow, 4].Style.Numberformat.Format = "#,##0";
                        }

                        if (itemRow.HutangUnreal.ToFormatHarga().Contains(","))
                        {
                            worksheet.Cells[indexRow, 5].Style.Numberformat.Format = "#,##0.00";
                        }
                        else
                        {
                            worksheet.Cells[indexRow, 5].Style.Numberformat.Format = "#,##0";
                        }

                        indexRow++;
                    }
                }

                using (var range = worksheet.Cells[1, 1, 1, 6])
                {
                    range.Style.Font.Bold = true;
                }

                #region Default
                worksheet.Cells.AutoFitColumns(0);

                worksheet.HeaderFooter.OddHeader.CenteredText    = "&16&\"Tahoma,Regular Bold\"" + Judul;
                worksheet.HeaderFooter.OddFooter.LeftAlignedText = "Print : " + 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    = NamaWorksheet;
                package.Workbook.Properties.Author   = "WIT. Warehouse Management System";
                package.Workbook.Properties.Comments = Judul;

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

            //ButtonExcel.Visible = false;
            LinkDownloadVendor.Visible = true;
            LinkDownloadVendor.HRef    = "/file_excel/" + NamaWorksheet + "/Export/" + NamaFile;
        }
    }
Example #13
0
    protected void ButtonCari_Click(object sender, EventArgs e)
    {
        LinkDownloadVendor.Visible = false;
        SearchString = TextBoxCari.Text;

        using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
        {
            StoreKonfigurasi_Class config = new StoreKonfigurasi_Class();
            var jatuhTempo = config.Cari(db, EnumStoreKonfigurasi.HariJatuhTempo);

            var totalSales = from t in db.TBTransaksis
                             select new
            {
                t.GrandTotal,
                t.IDPelanggan,
            };

            var totalBayar = from t in db.TBTransaksiJenisPembayarans
                             group t by new { t.Bayar, t.IDTransaksi } into g
                select new
            {
                IDTransaksi = g.Key.IDTransaksi,
                Total       = g.Sum(i => i.Bayar)
            };

            var totalHutang = from t in db.TBTransaksis
                              where t.IDStatusTransaksi == (int)EnumStatusTransaksi.AwaitingPayment
                              select new
            {
                t.IDPelanggan,
                t.IDTransaksi,
                t.TanggalTransaksi,
                Sisa         = totalBayar.Where(s => s.IDTransaksi == t.IDTransaksi).Count() == 0 ? t.GrandTotal : t.GrandTotal - totalBayar.Where(s => s.IDTransaksi == t.IDTransaksi).Sum(i => i.Total),
                HutangUnreal = totalBayar.Where(s => s.IDTransaksi == t.IDTransaksi).Count() == 0 ? t.GrandTotal * (t.TanggalTransaksi.Value.AddDays(double.Parse(jatuhTempo.Pengaturan)) < DateTime.Now ? (DateTime.Now - t.TanggalTransaksi.Value.AddDays(double.Parse(jatuhTempo.Pengaturan))).Days : 0) : (t.GrandTotal - totalBayar.Where(s => s.IDTransaksi == t.IDTransaksi).Sum(i => i.Total)) * (t.TanggalTransaksi.Value.AddDays(double.Parse(jatuhTempo.Pengaturan)) < DateTime.Now ? (DateTime.Now - t.TanggalTransaksi.Value.AddDays(double.Parse(jatuhTempo.Pengaturan))).Days : 0),
                //TanggalJatuhTempo = t.TanggalTransaksi.Value.AddDays(double.Parse(jatuhTempo.Pengaturan)),
                //Hari = t.TanggalTransaksi.Value.AddDays(double.Parse(jatuhTempo.Pengaturan)) < DateTime.Now ? (DateTime.Now - t.TanggalTransaksi.Value.AddDays(double.Parse(jatuhTempo.Pengaturan))).Days : 0,
            };


            if (string.IsNullOrEmpty(SearchString))
            {
                var dataPelanggan = from item in db.TBPelanggans
                                    select new
                {
                    Nama         = item.NamaLengkap,
                    DataSales    = totalSales.Where(t => t.IDPelanggan == item.IDPelanggan).Sum(g => g.GrandTotal) == null ? 0 : totalSales.Where(t => t.IDPelanggan == item.IDPelanggan).Sum(g => g.GrandTotal),
                    DataHutang   = totalHutang.Where(t => t.IDPelanggan == item.IDPelanggan).Sum(g => g.Sisa) == null ? 0 : totalHutang.Where(t => t.IDPelanggan == item.IDPelanggan).Sum(g => g.Sisa),
                    HutangUnreal = totalHutang.Where(t => t.IDPelanggan == item.IDPelanggan).Sum(g => g.HutangUnreal) == null ? 0 : totalHutang.Where(t => t.IDPelanggan == item.IDPelanggan).Sum(g => g.HutangUnreal),
                    Index        = totalHutang.Where(t => t.IDPelanggan == item.IDPelanggan).Sum(g => g.HutangUnreal) / totalSales.Where(t => t.IDPelanggan == item.IDPelanggan).Sum(g => g.GrandTotal)
                };

                RepeaterIndexHutang.DataSource = dataPelanggan;
                RepeaterIndexHutang.DataBind();
            }
            else
            {
                var dataPelanggan = from item in db.TBPelanggans
                                    where item.NamaLengkap.ToLower().Contains(SearchString)
                                    select new
                {
                    Nama         = item.NamaLengkap,
                    DataSales    = totalHutang.Where(t => t.IDPelanggan == item.IDPelanggan).Sum(g => g.Sisa) == null ? 0 : totalSales.Where(t => t.IDPelanggan == item.IDPelanggan).Sum(g => g.GrandTotal),
                    DataHutang   = totalHutang.Where(t => t.IDPelanggan == item.IDPelanggan).Sum(g => g.Sisa) == null ? 0 : totalHutang.Where(t => t.IDPelanggan == item.IDPelanggan).Sum(g => g.Sisa),
                    HutangUnreal = totalHutang.Where(t => t.IDPelanggan == item.IDPelanggan).Sum(g => g.HutangUnreal) == null ? 0 : totalHutang.Where(t => t.IDPelanggan == item.IDPelanggan).Sum(g => g.HutangUnreal),
                    Index        = totalHutang.Where(t => t.IDPelanggan == item.IDPelanggan).Sum(g => g.HutangUnreal) / totalSales.Where(t => t.IDPelanggan == item.IDPelanggan).Sum(g => g.GrandTotal)
                };

                RepeaterIndexHutang.DataSource = dataPelanggan;
                RepeaterIndexHutang.DataBind();
            }
        }
    }