protected void ButtonProsesPemesanan_Click(object sender, EventArgs e) { if (RadioButtonListJenisPembayaran.SelectedValue == "") { LiteralWarningPilihMetodePembayaran.Text = "Metode Pembayaran belum dipilih"; return; } else { LiteralWarningPilihMetodePembayaran.Text = ""; } using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { //VALIDASI STOK PRODUK ValidasiStokProdukTransaksi(db); PelangganLogin Pelanggan = (PelangganLogin)Session["PelangganLogin"]; //MENCARI TRANSAKSI SESSION var TransaksiECommerce = db.TBTransaksiECommerces .FirstOrDefault(item => item.IDPelanggan == Pelanggan.IDPelanggan); //INSERT TRANSAKSI Transaksi_Class Transaksi = new Transaksi_Class((int)EnumPengguna.RendyHerdiawan, 1, DateTime.Now); Transaksi.IDJenisTransaksi = (int)EnumJenisTransaksi.ECommerce; foreach (var item in TransaksiECommerce.TBTransaksiECommerceDetails) { int IDDetailTransaksi = Transaksi.TambahDetailTransaksi(item.TBStokProduk.IDKombinasiProduk, item.Quantity); if (item.TBStokProduk.DiscountStore != 0) { Transaksi.UbahPotonganHargaJualProduk(IDDetailTransaksi, item.TBStokProduk.DiscountStore.ToFormatHarga()); } } Transaksi.PengaturanPelanggan(Pelanggan.IDPelanggan); Transaksi.BiayaPengiriman = 0; Transaksi.IDStatusTransaksi = (int)EnumStatusTransaksi.AwaitingPayment; Transaksi.StatusPrint = true; Transaksi.ConfirmTransaksi(db); //MENGHAPUS DATA TRANSAKSI ECOMMERCE db.TBTransaksiECommerceDetails.DeleteAllOnSubmit(TransaksiECommerce.TBTransaksiECommerceDetails); db.TBTransaksiECommerces.DeleteOnSubmit(TransaksiECommerce); db.SubmitChanges(); Response.Redirect("Thankyou.aspx?order=" + Transaksi.IDWMSTransaksi); } }
private void LoadDataTransaksi() { Transaksi_Class Transaksi = (Transaksi_Class)ViewState["Transaksi"]; decimal Persentase = 0; using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { GrupPelanggan_Class GrupPelanggan_Class = new GrupPelanggan_Class(db); var PelangganGrup = GrupPelanggan_Class.Cari(db, Parse.Int(DropDownListGrupPelanggan.SelectedValue)); Persentase = PelangganGrup.Persentase.Value; } //RESET DETAIL TRANSAKSI Transaksi.Detail.Clear(); foreach (RepeaterItem item in RepeaterKombinasiProduk.Items) { HiddenField HiddenFieldIDKombinasiProduk = (HiddenField)item.FindControl("HiddenFieldIDKombinasiProduk"); TextBox TextBoxJumlahProduk = (TextBox)item.FindControl("TextBoxJumlahProduk"); TextBox TextBoxHarga = (TextBox)item.FindControl("TextBoxHarga"); TextBox TextBoxDiscount = (TextBox)item.FindControl("TextBoxDiscount"); TextBox TextBoxSubtotal = (TextBox)item.FindControl("TextBoxSubtotal"); if (!string.IsNullOrWhiteSpace(TextBoxJumlahProduk.Text) && Pengaturan.FormatAngkaInput(TextBoxJumlahProduk.Text) > 0) { int idTransaksiDetail = Transaksi.TambahDetailTransaksi(Parse.Int(HiddenFieldIDKombinasiProduk.Value), (int)Pengaturan.FormatAngkaInput(TextBoxJumlahProduk.Text)); if (!string.IsNullOrWhiteSpace(TextBoxDiscount.Text)) { Transaksi.UbahPotonganHargaJualProduk(idTransaksiDetail, TextBoxDiscount.Text); } Transaksi.UbahPotonganHargaJualProduk(idTransaksiDetail, Pengaturan.FormatHarga(Persentase) + "%"); var TransaksiDetail = Transaksi.Detail.FirstOrDefault(item2 => item2.IDDetailTransaksi == idTransaksiDetail); TextBoxDiscount.Text = Pengaturan.FormatHarga(TransaksiDetail.Discount); TextBoxSubtotal.Text = Pengaturan.FormatHarga(TransaksiDetail.Subtotal); } else { TextBoxDiscount.Text = ""; TextBoxSubtotal.Text = ""; } } if (DateTime.Now.Date == Parse.dateTime(TextBoxTanggal.Text).Date) { Transaksi.TanggalTransaksi = DateTime.Now; } else { Transaksi.TanggalTransaksi = Parse.dateTime(TextBoxTanggal.Text); } Transaksi.BiayaPengiriman = Pengaturan.FormatAngkaInput(TextBoxBiayaPengiriman.Text); TextBoxBiayaPengiriman.Text = Transaksi.BiayaPengiriman.ToString(); LabelSubtotal.Text = Pengaturan.FormatHarga(Transaksi.Subtotal); LabelDiscount.Text = Pengaturan.FormatHarga(Transaksi.PotonganTransaksi + Transaksi.TotalPotonganHargaJualDetail + Transaksi.TotalDiscountVoucher); LabelGrandTotal.Text = Pengaturan.FormatHarga(Transaksi.GrandTotal); }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { #region Default AtributProduk_Class ClassAtributProduk = new AtributProduk_Class(db); KategoriProduk_Class KategoriProduk_Class = new KategoriProduk_Class(); PemilikProduk_Class ClassPemilikProduk = new PemilikProduk_Class(db); DropDownListJenisStok.Items.Insert(0, new ListItem { Value = "0", Text = "Semua" }); DropDownListJenisStok.Items.Insert(1, new ListItem { Value = "1", Text = "Ada Stok", Selected = true }); DropDownListJenisStok.Items.Insert(2, new ListItem { Value = "2", Text = "Tidak Ada Stok" }); DropDownListJenisStok.Items.Insert(3, new ListItem { Value = "3", Text = "Minus" }); DropDownListCariAtributProduk.Items.AddRange(ClassAtributProduk.Dropdownlist()); DropDownListCariKategori.Items.AddRange(KategoriProduk_Class.Dropdownlist(db)); DropDownListCariPemilik.Items.AddRange(ClassPemilikProduk.Dropdownlist()); #endregion PenggunaLogin Pengguna = (PenggunaLogin)Session["PenggunaLogin"]; ////MENAMPILKAN MESSAGE LiteralWarning.Text = ""; var DataTransaksi = db.TBTransaksis.FirstOrDefault(item => item.IDTransaksi == Request.QueryString["id"]); if (DataTransaksi != null) { //DATA TRANSAKSI DITEMUKAN if (DataTransaksi.IDStatusTransaksi == (int)EnumStatusTransaksi.Complete || DataTransaksi.IDStatusTransaksi == (int)EnumStatusTransaksi.Canceled) { //TRANSAKSI COMPLETE ATAU CANCELED COPY KE TRANSAKSI BARU var Transaksi = new Transaksi_Class(Pengguna.IDPengguna, Pengguna.IDTempat, DateTime.Now); Transaksi.IDJenisTransaksi = (int)EnumJenisTransaksi.Wholesale; //WHOLESALE Dictionary <int, int> ListStokProdukHabis = new Dictionary <int, int>(); StokProduk_Class StokProduk_Class = new StokProduk_Class(db); int TotalTransfer = 0; string PesanTransaksi = ""; //COPY DETAIL TRANSAKSI LAMA KE DETAIL TRANSAKSI BARU foreach (var item in DataTransaksi.TBTransaksiDetails.ToArray()) { //PENCARIAN STOK PRODUK var StokProduk = StokProduk_Class.Cari(Pengguna.IDTempat, item.IDKombinasiProduk); if (item.Quantity <= StokProduk.Jumlah) { //JIKA JUMLAH YANG AKAN DI TRANSAKSI LEBIH KECIL ATAU SAMA DENGAN JUMLAH STOK Transaksi.TambahDetailTransaksi(item.IDKombinasiProduk, item.Quantity); //MESSAGE TRANSFER YANG BERHASIL TotalTransfer += item.Quantity; PesanTransaksi += "<br/>" + Pengaturan.FormatHarga(item.Quantity) + " - " + item.TBKombinasiProduk.Nama; } else //MENCATAT STOK PRODUK YANG HABIS { ListStokProdukHabis.Add(StokProduk.IDKombinasiProduk, item.Quantity); } } if (TotalTransfer > 0) { Transaksi.Keterangan = "Referensi Transaksi #" + DataTransaksi.IDTransaksi + " - " + DataTransaksi.Keterangan; LabelIDTransaksi.Text = Transaksi.ConfirmTransaksi(db); db.SubmitChanges(); LoadDataTransaksiDetail(); PesanTransaksi += "<br/><h5><b>Total : " + TotalTransfer + "</b></h5>"; LiteralWarning.Text += Alert_Class.Pesan(TipeAlert.Success, "Produk berhasil disimpan" + PesanTransaksi); } if (ListStokProdukHabis.Count > 0) { DropDownListJenisStok.SelectedValue = "2"; #region MENAMPILKAN STOK APA SAJA YANG HABIS var DataStokProduk = db.TBStokProduks .AsEnumerable() .Where(item => item.IDTempat == Pengguna.IDTempat && ListStokProdukHabis.ContainsKey(item.IDKombinasiProduk)) .Select(item => new { IDStokProduk = item.IDStokProduk, IDKombinasiProduk = item.IDKombinasiProduk, Kode = item.TBKombinasiProduk.KodeKombinasiProduk, RelasiKategoriProduk = item.TBKombinasiProduk.TBProduk.TBRelasiProdukKategoriProduks, Kategori = StokProduk_Class.GabungkanSemuaKategoriProduk(db, item, null), IDPemilikProduk = item.TBKombinasiProduk.TBProduk.IDPemilikProduk, PemilikProduk = item.TBKombinasiProduk.TBProduk.TBPemilikProduk.Nama, IDAtributProduk = item.TBKombinasiProduk.IDAtributProduk, AtributProduk = item.TBKombinasiProduk.TBAtributProduk.Nama, IDProduk = item.TBKombinasiProduk.IDProduk, Produk = item.TBKombinasiProduk.TBProduk.Nama, Jumlah = item.Jumlah, HargaBeli = item.HargaBeli, HargaJual = item.HargaJual }).ToArray(); RepeaterStokKombinasiProduk.DataSource = DataStokProduk; RepeaterStokKombinasiProduk.DataBind(); if (DataStokProduk.Count() > 0) { LabelTotalJumlahStok.Text = Pengaturan.FormatHarga(DataStokProduk.Sum(item => item.Jumlah)); } else { LabelTotalJumlahStok.Text = "0"; } #endregion #region MENGISI TEXTBOX DENGAN JUMLAH PERMINTAAN foreach (RepeaterItem item in RepeaterStokKombinasiProduk.Items) { Label LabelIDKombinasiProduk = (Label)item.FindControl("LabelIDKombinasiProduk"); TextBox TextBoxJumlahTransaksi = (TextBox)item.FindControl("TextBoxJumlahTransaksi"); HtmlTableRow PanelStok = (HtmlTableRow)item.FindControl("PanelStok"); if (ListStokProdukHabis.ContainsKey(LabelIDKombinasiProduk.Text.ToInt())) { TextBoxJumlahTransaksi.Text = Pengaturan.FormatHarga(ListStokProdukHabis[LabelIDKombinasiProduk.Text.ToInt()]); PanelStok.Attributes.Add("class", "danger"); } } #endregion LiteralWarning.Text += Alert_Class.Pesan(TipeAlert.Danger, "Stok tidak cukup, silahkan cek kembali"); MultiViewTransaksi.ActiveViewIndex = 0; } else { //JIKA STOK PRODUK TIDAK HABIS LoadDataStokProduk(); MultiViewTransaksi.ActiveViewIndex = 1; } } else { //STATUS TRANSAKSI SELAIN COMPLETE DAN CANCELED LabelIDTransaksi.Text = DataTransaksi.IDTransaksi; LoadDataTransaksiDetail(); MultiViewTransaksi.ActiveViewIndex = 1; } } else { //TRANSAKSI TIDAK DITEMUKAN MultiViewTransaksi.ActiveViewIndex = 0; LoadDataStokProduk(); } } } else { LiteralWarning.Text = ""; } }
protected void ButtonProsesPemesanan_Click(object sender, EventArgs e) { if (RadioButtonListJenisPembayaran.SelectedValue == "") { LiteralWarningPilihMetodePembayaran.Text = "Metode Pembayaran belum dipilih"; PembayaranValidasi.Visible = true; return; } else { LiteralWarningPilihMetodePembayaran.Text = ""; PembayaranValidasi.Visible = false; } using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { //VALIDASI STOK PRODUK ValidasiStokProdukTransaksi(db); PelangganLogin Pelanggan = (PelangganLogin)Session["PelangganLogin"]; //MENCARI TRANSAKSI SESSION var TransaksiECommerce = db.TBTransaksiECommerces .FirstOrDefault(item => item.IDPelanggan == Pelanggan.IDPelanggan); //INSERT TRANSAKSI Transaksi_Class Transaksi = new Transaksi_Class((int)EnumPengguna.RendyHerdiawan, 1, DateTime.Now); Transaksi.IDJenisTransaksi = (int)EnumJenisTransaksi.ECommerce; foreach (var item in TransaksiECommerce.TBTransaksiECommerceDetails) { int IDDetailTransaksi = Transaksi.TambahDetailTransaksi(item.TBStokProduk.IDKombinasiProduk, item.Quantity); if (item.TBStokProduk.DiscountStore != 0) { Transaksi.UbahPotonganHargaJualProduk(IDDetailTransaksi, item.TBStokProduk.DiscountStore.ToFormatHarga()); } } Transaksi.PengaturanPelanggan(Pelanggan.IDPelanggan); Transaksi.BiayaPengiriman = RadioButtonListKurir.SelectedValue.ToDecimal(); Transaksi.IDStatusTransaksi = (int)EnumStatusTransaksi.AwaitingPayment; Transaksi.StatusPrint = true; Transaksi.ConfirmTransaksi(db); //KIRIM EMAIL NOTIFIKASI using (StreamReader reader = new StreamReader(HttpContext.Current.Server.MapPath("/frontend/assets/email-template/awaiting-payment.html"))) { string body = ""; string listProduk = ""; body = reader.ReadToEnd(); body = body.Replace("{nama_customer}", TransaksiECommerce.TBPelanggan.NamaLengkap); body = body.Replace("{nomor_order}", Transaksi.IDTransaksi); foreach (var item in TransaksiECommerce.TBTransaksiECommerceDetails) { listProduk += "<tr><td>" + item.TBStokProduk.TBKombinasiProduk.Nama + "</td><td>" + item.TBStokProduk.HargaJual.ToFormatHarga() + "</td><td>" + item.Quantity + "</td><td style='text-align:right;'>" + (item.Quantity * item.TBStokProduk.HargaJual).ToFormatHarga() + "</td></tr>"; } body = body.Replace("{list_produk}", listProduk); body = body.Replace("{subtotal}", Transaksi.Subtotal.ToFormatHarga()); body = body.Replace("{biaya_pengiriman}", Transaksi.BiayaPengiriman.ToString().ToFormatHarga()); body = body.Replace("{grand_total}", Transaksi.GrandTotal.ToFormatHarga()); body = body.Replace("{nama_toko}", "Trendsetter"); body = body.Replace("{logo_email}", "http://ecommerce.wit.co.id/assets/images/email_logo/email_logo.png"); body = body.Replace("{url_konfirmasi}", "http://wit.co.id"); body = body.Replace("{url_website}", "http://localhost:54517/"); SendEmail(TransaksiECommerce.TBPelanggan.Email, "Trendsetter", "Order Notification", body); } //MENGHAPUS DATA TRANSAKSI ECOMMERCE db.TBTransaksiECommerceDetails.DeleteAllOnSubmit(TransaksiECommerce.TBTransaksiECommerceDetails); db.TBTransaksiECommerces.DeleteOnSubmit(TransaksiECommerce); db.SubmitChanges(); Response.Redirect("Thankyou.aspx?order=" + Transaksi.IDWMSTransaksi); } }