Esempio n. 1
0
    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);
        }
    }
Esempio n. 2
0
    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);
    }
Esempio n. 3
0
    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 = "";
        }
    }
Esempio n. 4
0
    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);
        }
    }