/// <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(); } } }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { StoreKonfigurasi_Class StoreKonfigurasi_Class = new StoreKonfigurasi_Class(); RepeaterKonfigurasi.DataSource = StoreKonfigurasi_Class.LoadData(); RepeaterKonfigurasi.DataBind(); } }
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/>"); }
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 } } } }
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); }
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(); } }
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(); } } }
/// <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(); } } }
/// <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(); } } }
//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;\">▲" + GrowthHarian.ToFormatHarga() + "%</td>"); } else { body = body.Replace("{GrowthHarian}", "<td align=\"right\" colspan=\"1\" height=\"40\" rowspan=\"1\" width=\"275\" style=\"color:Red;\">▼" + 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;\">▲" + GrowthBulanan.ToFormatHarga() + "%</td>"); } else { body = body.Replace("{GrowthBulanan}", "<td align=\"right\" colspan=\"1\" height=\"40\" rowspan=\"1\" width=\"275\" style=\"color:Red;\">▼" + 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;\">▲" + GrowthTahunan.ToFormatHarga() + "%</td>"); } else { body = body.Replace("{GrowthTahunan}", "<td align=\"right\" colspan=\"1\" height=\"40\" rowspan=\"1\" width=\"275\" style=\"color:Red;\">▼" + 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;'> </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;'> </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;'> </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;'> </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;'> </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;'> </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;'> </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;'> </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)); } }
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)); } }
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; } }
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(); } } }