コード例 #1
0
ファイル: Transaksi.aspx.cs プロジェクト: vaxtra/WMSCommerce
    private void BatalTransaksi()
    {
        try
        {
            PenggunaLogin Pengguna = (PenggunaLogin)Session["PenggunaLogin"];

            Transaksi_Class Transaksi = new Transaksi_Class(HiddenFieldIDTransaksi.Value, Pengguna.IDPengguna);

            Transaksi.IDStatusTransaksi = (int)EnumStatusTransaksi.Canceled;

            Transaksi.ConfirmTransaksi();

            if (Pengguna.PointOfSales == TipePointOfSales.Restaurant)
            {
                //PENGURANGAN BAHAN BAKU
                StokBahanBaku_Class.ProduksiByTransaksiBatal(Transaksi.IDPenggunaTransaksi, Transaksi.IDTempat, HiddenFieldIDTransaksi.Value);
            }

            LoadData();

            HiddenFieldIDTransaksi.Value = null;
        }
        catch (Exception ex)
        {
            LogError_Class LogError = new LogError_Class(ex, Request.Url.PathAndQuery);
        }
    }
コード例 #2
0
ファイル: Pemesanan.aspx.cs プロジェクト: vaxtra/WMSCommerce
    protected void DropDownListPelanggan_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (DropDownListPelanggan.SelectedValue != "0")
        {
            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                Pelanggan_Class ClassPelanggan = new Pelanggan_Class(db);

                var Pelanggan = ClassPelanggan.Cari(DropDownListPelanggan.SelectedValue.ToInt());

                if (Pelanggan != null)
                {
                    TextBoxNama.Text = Pelanggan.NamaLengkap;
                    DropDownListGrupPelanggan.SelectedValue = Pelanggan.IDGrupPelanggan.ToString();

                    if (Pelanggan.TBAlamats.Count > 0)
                    {
                        var Alamat = Pelanggan.TBAlamats.FirstOrDefault();

                        TextBoxTelepon.Text = Pelanggan.Handphone;
                        TextBoxAlamat.Text  = Alamat.AlamatLengkap;

                        Transaksi_Class Transaksi = (Transaksi_Class)ViewState["Transaksi"];
                        Transaksi.BiayaPengiriman   = Alamat.BiayaPengiriman.Value;
                        TextBoxBiayaPengiriman.Text = Pengaturan.FormatHarga(Transaksi.BiayaPengiriman);
                    }
                }
            }

            LoadDataTransaksi();
        }
    }
コード例 #3
0
ファイル: Default.aspx.cs プロジェクト: vaxtra/WMSCommerce
    protected void ButtonSemuaCanceled_Click(object sender, EventArgs e)
    {
        using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
        {
            PenggunaLogin PenggunaLogin = (PenggunaLogin)Session["PenggunaLogin"];

            foreach (RepeaterItem item in RepeaterTransaksi.Items)
            {
                CheckBox CheckBoxPilih = (CheckBox)item.FindControl("CheckBoxPilih");
                Label    LabelID       = (Label)item.FindControl("LabelID");

                if (CheckBoxPilih.Checked == true)
                {
                    Transaksi_Class Transaksi = new Transaksi_Class(LabelID.Text, PenggunaLogin.IDPengguna);
                    Transaksi.IDStatusTransaksi = (int)EnumStatusTransaksi.Canceled;
                    Transaksi.ConfirmTransaksi(db, " ", true);
                }
            }
            db.SubmitChanges();
        }

        MultiViewTransaksi.SetActiveView(ViewTransaksi);
        ButtonCetakInvoice.Visible     = false;
        ButtonCetakPackingSlip.Visible = false;

        LoadData();
    }
コード例 #4
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);
        }
    }
コード例 #5
0
ファイル: Default.aspx.cs プロジェクト: vaxtra/WMSCommerce
    protected void RepeaterMeja_ItemCommand(object source, RepeaterCommandEventArgs e)
    {
        if (e.CommandName == "Pilih")
        {
            if (!string.IsNullOrWhiteSpace(HiddenFieldPerintah.Value))
            {
                using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
                {
                    var Transaksi = db.TBTransaksis
                                    .FirstOrDefault(item =>
                                                    item.IDMeja == Parse.Int(e.CommandArgument.ToString()) &&
                                                    item.IDStatusTransaksi == 2);

                    if (Transaksi != null)
                    {
                        PengaturanTransaksi(db, Transaksi);
                    }
                    else if (HiddenFieldPerintah.Value == "Transfer Item")
                    {
                        if (!string.IsNullOrWhiteSpace(HiddenFieldTransaksiAwal.Value))
                        {
                            Response.Redirect("Transfer.aspx?id=" + HiddenFieldTransaksiAwal.Value + "&table=" + e.CommandArgument.ToString());
                        }
                    }
                    else if (HiddenFieldPerintah.Value == "Pindah Meja" && !string.IsNullOrWhiteSpace(HiddenFieldTransaksiAwal.Value))
                    {
                        PenggunaLogin Pengguna = (PenggunaLogin)Session["PenggunaLogin"];

                        Transaksi_Class TransaksiAwal = new Transaksi_Class(HiddenFieldTransaksiAwal.Value, Pengguna.IDPengguna);

                        var MejaTransaksi = db.TBMejas.FirstOrDefault(item => item.IDMeja == TransaksiAwal.Meja.IDMeja);

                        MejaTransaksi.IDStatusMeja = 1; //KOSONG

                        TransaksiAwal.Meja.IDMeja = Parse.Int(e.CommandArgument.ToString());

                        TransaksiAwal.ConfirmTransaksi(db);
                        db.SubmitChanges();

                        HiddenFieldPerintah.Value      = string.Empty;
                        HiddenFieldTransaksiAwal.Value = string.Empty;
                        LiteralWarning.Text            = string.Empty;

                        LoadMeja(db);
                    }
                }
            }
            else
            {
                Response.Redirect("/WITPointOfSales/Default.aspx?table=" + e.CommandArgument);
            }
        }
    }
コード例 #6
0
ファイル: Default.aspx.cs プロジェクト: vaxtra/WMSCommerce
    protected void RepeaterTransaksiKombinasiProduk_ItemCommand(object source, RepeaterCommandEventArgs e)
    {
        if (e.CommandName == "Hapus")
        {
            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                PenggunaLogin Pengguna = (PenggunaLogin)Session["PenggunaLogin"];

                Transaksi_Class Transaksi = new Transaksi_Class(LabelIDTransaksi.Text, Pengguna.IDPengguna);

                Transaksi.UbahJumlahProduk(e.CommandArgument.ToString().ToInt(), 0);

                Transaksi.ConfirmTransaksi(db);
                db.SubmitChanges();

                LoadDataTransaksiDetail();
            }
        }
    }
コード例 #7
0
ファイル: Transaksi.aspx.cs プロジェクト: vaxtra/WMSCommerce
    private void BatalTransaksi()
    {
        try
        {
            PenggunaLogin Pengguna = (PenggunaLogin)Session["PenggunaLogin"];

            Transaksi_Class Transaksi = new Transaksi_Class(HiddenFieldIDTransaksi.Value, Pengguna.IDPengguna);

            Transaksi.IDStatusTransaksi = (int)EnumStatusTransaksi.Canceled;

            Transaksi.ConfirmTransaksi();

            LoadData();

            HiddenFieldIDTransaksi.Value = null;
        }
        catch (Exception ex)
        {
            LogError_Class LogError = new LogError_Class(ex, Request.Url.PathAndQuery);
        }
    }
コード例 #8
0
ファイル: Default.aspx.cs プロジェクト: vaxtra/WMSCommerce
    protected void ButtonComplete_Click(object sender, EventArgs e)
    {
        using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
        {
            PenggunaLogin PenggunaLogin = (PenggunaLogin)Session["PenggunaLogin"];

            if (!string.IsNullOrEmpty(LabelIDTransaksi.Text))
            {
                Transaksi_Class Transaksi = new Transaksi_Class(LabelIDTransaksi.Text, PenggunaLogin.IDPengguna);
                Transaksi.TambahPembayaran(DateTime.Now, PenggunaLogin.IDPengguna, DropDownListJenisPembayaran.SelectedValue.ToInt(), Transaksi.GrandTotal, string.Empty);
                Transaksi.IDStatusTransaksi = (int)EnumStatusTransaksi.Complete;
                Transaksi.ConfirmTransaksi(db, " ", false);
            }
            else
            {
                foreach (RepeaterItem item in RepeaterTransaksi.Items)
                {
                    CheckBox CheckBoxPilih = (CheckBox)item.FindControl("CheckBoxPilih");
                    Label    LabelID       = (Label)item.FindControl("LabelID");

                    if (CheckBoxPilih.Checked == true)
                    {
                        Transaksi_Class Transaksi = new Transaksi_Class(LabelID.Text, PenggunaLogin.IDPengguna);
                        Transaksi.TambahPembayaran(DateTime.Now, PenggunaLogin.IDPengguna, DropDownListJenisPembayaran.SelectedValue.ToInt(), Transaksi.GrandTotal, string.Empty);
                        Transaksi.IDStatusTransaksi = (int)EnumStatusTransaksi.Complete;
                        Transaksi.ConfirmTransaksi(db, " ", false);
                    }
                }
            }

            db.SubmitChanges();
        }

        MultiViewTransaksi.SetActiveView(ViewTransaksi);
        ButtonCetakInvoice.Visible     = false;
        ButtonCetakPackingSlip.Visible = false;

        LoadData();
    }
コード例 #9
0
ファイル: Pembayaran.aspx.cs プロジェクト: vaxtra/WMSCommerce
    protected void ButtonApprove_Click(object sender, EventArgs e)
    {
        PenggunaLogin Pengguna = (PenggunaLogin)Session["PenggunaLogin"];

        try
        {
            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                LiteralWarning.Text = "";
                foreach (RepeaterItem item in RepeaterLaporan.Items)
                {
                    CheckBox CheckBoxIDTransaksi = (CheckBox)item.FindControl("CheckBoxIDTransaksi");
                    if (CheckBoxIDTransaksi.Checked == true)
                    {
                        HiddenField HiddenFieldIDTransaksi = (HiddenField)item.FindControl("HiddenFieldIDTransaksi");

                        Transaksi_Class Transaksi = new Transaksi_Class(HiddenFieldIDTransaksi.Value, Pengguna.IDPengguna);

                        if (Transaksi.GrandTotal == Transaksi.TotalPembayaran)
                        {
                            Transaksi.IDStatusTransaksi = (int)EnumStatusTransaksi.Complete;
                            Transaksi.StatusPrint       = true;
                            Transaksi.ConfirmTransaksi(db);
                        }
                        else
                        {
                            LiteralWarning.Text += Alert_Class.Pesan(TipeAlert.Danger, Transaksi.IDTransaksi);
                        }
                    }
                }
                db.SubmitChanges();
                LoadData();
            }
        }
        catch (Exception)
        {
            throw;
        }
    }
コード例 #10
0
ファイル: Transfer.aspx.cs プロジェクト: vaxtra/WMSCommerce
    private void LoadData()
    {
        Transaksi_Class TransaksiAwal   = (Transaksi_Class)ViewState["TransaksiAwal"];
        Transaksi_Class TransaksiTujuan = (Transaksi_Class)ViewState["TransaksiTujuan"];

        RepeaterTransaksiDetail.DataSource = TransaksiAwal.Detail.Select(item => new
        {
            IDDetailTransaksi = item.IDDetailTransaksi,
            IDKombinasiProduk = item.IDKombinasiProduk,
            IDStokProduk      = item.IDStokProduk,
            Nama               = item.Nama,
            JumlahProduk       = item.Quantity,
            PotonganHargaJual  = item.Discount,
            HargaJual          = item.HargaJual,
            PersentaseDiscount = item.PersentaseDiscount,
            HargaJualTampil    = item.HargaJualBersih,
            Subtotal           = item.Subtotal
        });
        RepeaterTransaksiDetail.DataBind();

        int JumlahDetail = TransaksiTujuan.Detail.Count;

        RepeaterTransaksiSplitBill.DataSource = TransaksiTujuan.Detail.Select(item => new
        {
            IDDetailTransaksi = item.IDDetailTransaksi,
            IDKombinasiProduk = item.IDKombinasiProduk,
            IDStokProduk      = item.IDStokProduk,
            Nama               = item.Nama,
            JumlahProduk       = item.Quantity,
            PotonganHargaJual  = item.Discount,
            HargaJual          = item.HargaJual,
            PersentaseDiscount = item.PersentaseDiscount,
            HargaJualTampil    = item.HargaJualBersih,
            Subtotal           = item.Subtotal,
            JumlahDetail       = JumlahDetail
        });
        RepeaterTransaksiSplitBill.DataBind();
    }
コード例 #11
0
ファイル: Default.aspx.cs プロジェクト: vaxtra/WMSCommerce
    protected void ButtonCanceled_Click(object sender, EventArgs e)
    {
        using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
        {
            PenggunaLogin PenggunaLogin = (PenggunaLogin)Session["PenggunaLogin"];

            Transaksi_Class Transaksi = new Transaksi_Class(LabelIDTransaksi.Text, PenggunaLogin.IDPengguna);
            Transaksi.IDStatusTransaksi = (int)EnumStatusTransaksi.Canceled;
            Transaksi.ConfirmTransaksi(db, " ", true);
            db.SubmitChanges();

            //KIRIM EMAIL KE CUSTOMER
            //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}", Transaksi.Pelanggan.Nama);
            //    body = body.Replace("{nomor_order}", Transaksi.IDTransaksi);
            //    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(Transaksi.Pelanggan, "Trendsetter", "Order Notification", body);
            //}
        }

        MultiViewTransaksi.SetActiveView(ViewTransaksi);
        ButtonCetakInvoice.Visible     = false;
        ButtonCetakPackingSlip.Visible = false;

        LoadData();
    }
コード例 #12
0
ファイル: Transfer.aspx.cs プロジェクト: vaxtra/WMSCommerce
    protected void ButtonSimpan_Click(object sender, EventArgs e)
    {
        try
        {
            PenggunaLogin Pengguna = (PenggunaLogin)Session["PenggunaLogin"];

            Transaksi_Class TransaksiAwal   = (Transaksi_Class)ViewState["TransaksiAwal"];
            Transaksi_Class TransaksiTujuan = (Transaksi_Class)ViewState["TransaksiTujuan"];

            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                TransaksiAwal.ConfirmTransaksi(db);
                TransaksiTujuan.ConfirmTransaksi(db);
                db.SubmitChanges();
            }

            Response.Redirect("Default.aspx", false);
        }
        catch (Exception ex)
        {
            LogError_Class LogError = new LogError_Class(ex, Request.Url.PathAndQuery);
        }
    }
コード例 #13
0
ファイル: Pemesanan.aspx.cs プロジェクト: vaxtra/WMSCommerce
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            Transaksi_Class Transaksi = (Transaksi_Class)ViewState["Transaksi"];
            PenggunaLogin   Pengguna  = (PenggunaLogin)Session["PenggunaLogin"];

            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                Pelanggan_Class     ClassPelanggan      = new Pelanggan_Class(db);
                GrupPelanggan_Class GrupPelanggan_Class = new GrupPelanggan_Class(db);

                RepeaterKombinasiProduk.DataSource = db.TBStokProduks
                                                     .Where(item => item.IDTempat == Pengguna.IDTempat)
                                                     .Select(item => new
                {
                    item.TBKombinasiProduk.Urutan,
                    item.IDKombinasiProduk,
                    item.TBKombinasiProduk.Nama,
                    item.HargaJual
                })
                                                     .OrderBy(item => item.Urutan);
                RepeaterKombinasiProduk.DataBind();

                DropDownListPelanggan.Items.AddRange(ClassPelanggan.DataDropDownListNamaHandphone());
                DropDownListGrupPelanggan.Items.AddRange(GrupPelanggan_Class.DataDropDownListNamaPotongan(db));
            }

            TextBoxTanggal.Text = DateTime.Now.ToString("d MMMM yyyy");

            if (Transaksi == null)
            {
                Transaksi = new Transaksi_Class(Pengguna.IDPengguna, Pengguna.IDTempat, DateTime.Now);
                ViewState["Transaksi"] = Transaksi;
            }
        }
    }
コード例 #14
0
ファイル: Transfer.aspx.cs プロジェクト: vaxtra/WMSCommerce
    private void MembuatTransaksiBaru(PenggunaLogin Pengguna, Transaksi_Class TransaksiAwal)
    {
        //JIKA SPLIT BILL MEMBUAT OBJECT CLASS TRANSAKSI BARU
        var TransaksiTujuan = new Transaksi_Class(Pengguna.IDPengguna, Pengguna.IDTempat, DateTime.Now);

        if (!string.IsNullOrWhiteSpace(Request.QueryString["table"]))
        {
            TransaksiTujuan.Meja.IDMeja = Parse.Int(Request.QueryString["table"]); //JIKA TRANSFER KE MEJA KOSONG

            LabelKeterangan.Text = "Transfer Meja";
        }
        else
        {
            TransaksiTujuan.Meja.IDMeja = 1;
            TransaksiTujuan.Keterangan  = "Split Bill #" + TransaksiAwal.Meja.Nama + " #" + TransaksiAwal.IDTransaksi;

            LabelKeterangan.Text = "Split Bill";
        }

        LabelMejaAwal.Text   = TransaksiAwal.Meja.Nama;
        LabelMejaTujuan.Text = TransaksiTujuan.Meja.Nama;

        ViewState["TransaksiTujuan"] = TransaksiTujuan;
    }
コード例 #15
0
ファイル: Default.aspx.cs プロジェクト: vaxtra/WMSCommerce
    private void LoadDataTransaksiDetail()
    {
        using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
        {
            PenggunaLogin Pengguna = (PenggunaLogin)Session["PenggunaLogin"];

            Transaksi_Class Transaksi = new Transaksi_Class(LabelIDTransaksi.Text, Pengguna.IDPengguna);

            RepeaterTransaksiKombinasiProduk.DataSource = Transaksi.Detail
                                                          .Join(db.TBKombinasiProduks,
                                                                Detail => Detail.IDKombinasiProduk,
                                                                KombinasiProduk => KombinasiProduk.IDKombinasiProduk,
                                                                (Detail, KombinasiProduk) => new
            {
                Detail          = Detail,
                KombinasiProduk = KombinasiProduk
            })
                                                          .Select(item => new
            {
                Produk            = item.KombinasiProduk.TBProduk.Nama,
                AtributProduk     = item.KombinasiProduk.TBAtributProduk.Nama,
                Barcode           = item.Detail.Barcode,
                Kategori          = item.KombinasiProduk.TBProduk.TBRelasiProdukKategoriProduks.Count > 0 ? item.KombinasiProduk.TBProduk.TBRelasiProdukKategoriProduks.FirstOrDefault().TBKategoriProduk.Nama : "",
                PemilikProduk     = item.KombinasiProduk.TBProduk.TBPemilikProduk.Nama,
                HargaJual         = item.Detail.HargaJual,
                JumlahProduk      = item.Detail.Quantity,
                Subtotal          = item.Detail.Subtotal,
                IDDetailTransaksi = item.Detail.IDDetailTransaksi,
            })
                                                          .OrderBy(item => item.Produk);
            RepeaterTransaksiKombinasiProduk.DataBind();

            LabelTotalJumlah.Text            = Pengaturan.FormatHarga(Transaksi.JumlahProduk);
            LabelTotalSubtotalHargaJual.Text = Pengaturan.FormatHarga(Transaksi.Subtotal);
        }
    }
コード例 #16
0
ファイル: Pemesanan.aspx.cs プロジェクト: vaxtra/WMSCommerce
    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);
    }
コード例 #17
0
ファイル: Pemesanan.aspx.cs プロジェクト: vaxtra/WMSCommerce
    private void Simpan(int idStatusTransaksi)
    {
        Transaksi_Class Transaksi = (Transaksi_Class)ViewState["Transaksi"];
        PenggunaLogin   Pengguna  = (PenggunaLogin)Session["PenggunaLogin"];

        if (Transaksi != null)
        {
            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                LoadDataTransaksi();

                Pelanggan_Class ClassPelanggan = new Pelanggan_Class(db);
                Alamat_Class    ClassAlamat    = new Alamat_Class();

                TBPelanggan Pelanggan;

                if (DropDownListPelanggan.SelectedValue == "0")
                {
                    Pelanggan = ClassPelanggan.Tambah(
                        IDGrupPelanggan: DropDownListGrupPelanggan.SelectedValue.ToInt(),
                        IDPenggunaPIC: Pengguna.IDPengguna,
                        NamaLengkap: TextBoxNama.Text,
                        Username: "",
                        Password: "",
                        Email: "",
                        Handphone: TextBoxTelepon.Text,
                        TeleponLain: "",
                        TanggalLahir: DateTime.Now,
                        Deposit: 0,
                        Catatan: "",
                        _IsActive: true
                        );

                    ClassAlamat.Tambah(db, 0, Pelanggan, TextBoxAlamat.Text, "", Transaksi.BiayaPengiriman, "");

                    db.SubmitChanges();
                }
                else
                {
                    Pelanggan = ClassPelanggan.Ubah(
                        IDPelanggan: DropDownListPelanggan.SelectedValue.ToInt(),
                        IDGrupPelanggan: DropDownListGrupPelanggan.SelectedValue.ToInt(),
                        NamaLengkap: TextBoxNama.Text,
                        Handphone: TextBoxTelepon.Text
                        );

                    if (Pelanggan.TBAlamats.Count > 0)
                    {
                        ClassAlamat.Ubah(db, 0, Pelanggan.TBAlamats.FirstOrDefault(), Pelanggan, TextBoxAlamat.Text, "", Transaksi.BiayaPengiriman, "");
                    }
                }

                Transaksi.PengaturanPelanggan(Pelanggan.IDPelanggan);
                Transaksi.IDStatusTransaksi = idStatusTransaksi;

                string IDTransaksi = Transaksi.ConfirmTransaksi(db);

                db.SubmitChanges();

                Response.Redirect("Default.aspx?id=" + IDTransaksi);
            }
        }
    }
コード例 #18
0
ファイル: Transfer.aspx.cs プロジェクト: vaxtra/WMSCommerce
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            if (!string.IsNullOrWhiteSpace(Request.QueryString["id"]))
            {
                PenggunaLogin Pengguna = (PenggunaLogin)Session["PenggunaLogin"];

                using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
                {
                    //MENCARI TRANSAKSI AWAL
                    var Transaksi = db.TBTransaksis
                                    .FirstOrDefault(item =>
                                                    item.IDTransaksi == Request.QueryString["id"] &&
                                                    item.IDStatusTransaksi == 2);

                    if (Transaksi != null)
                    {
                        //JIKA TRANSAKSI DITEMUKAN
                        Transaksi_Class TransaksiAwal = new Transaksi_Class(Transaksi.IDTransaksi, Pengguna.IDPengguna);

                        ViewState["TransaksiAwal"] = TransaksiAwal;

                        //JIKA SPLIT BILL ATAU TRANSFER KE MEJA BARU
                        if (string.IsNullOrWhiteSpace(Request.QueryString["and"]) || !string.IsNullOrWhiteSpace(Request.QueryString["table"]))
                        {
                            MembuatTransaksiBaru(Pengguna, TransaksiAwal);
                        }
                        else
                        {
                            //JIKA TRANSFER ITEM
                            var transaksiTujuan = db.TBTransaksis
                                                  .FirstOrDefault(item =>
                                                                  item.IDTransaksi == Request.QueryString["and"] &&
                                                                  item.IDStatusTransaksi == 2);

                            if (transaksiTujuan != null)
                            {
                                Transaksi_Class TransaksiTujuan = new Transaksi_Class(transaksiTujuan.IDTransaksi, Pengguna.IDPengguna);

                                ViewState["TransaksiTujuan"] = TransaksiTujuan;

                                //KETERANGAN
                                LabelKeterangan.Text = "Transfer Meja";
                                LabelMejaAwal.Text   = TransaksiAwal.Meja.Nama;
                                LabelMejaTujuan.Text = TransaksiTujuan.Meja.Nama;
                            }
                            else
                            {
                                MembuatTransaksiBaru(Pengguna, TransaksiAwal);
                            }
                        }

                        LoadData();
                    }
                    else
                    {
                        Response.Redirect("Default.aspx"); //JIKA TRANSAKSI TIDAK DITEMUKAN
                    }
                }
            }
            else
            {
                Response.Redirect("Default.aspx");
            }
        }
    }
コード例 #19
0
ファイル: Transfer.aspx.cs プロジェクト: vaxtra/WMSCommerce
    protected void RepeaterTransaksiSplitBill_ItemCommand(object source, RepeaterCommandEventArgs e)
    {
        if (e.CommandName == "Pindah")
        {
            Transaksi_Class TransaksiAwal   = (Transaksi_Class)ViewState["TransaksiAwal"];
            Transaksi_Class TransaksiTujuan = (Transaksi_Class)ViewState["TransaksiTujuan"];

            //MENCARI DETAIL BERDASARKAN ID DETAIL TRANSAKSI
            var DetailTujuan = TransaksiTujuan.Detail
                               .FirstOrDefault(item => item.IDDetailTransaksi == Parse.Int(e.CommandArgument.ToString()));

            int jumlahTransaksi = 0;
            int jumlahSplitBill = 0;

            if (DetailTujuan.Quantity > 0)
            {
                jumlahSplitBill = 1;
                jumlahTransaksi = -1;
            }
            else
            {
                jumlahSplitBill = -1;
                jumlahTransaksi = 1;
            }

            //MENCARI APAKAH DETAIL ADA DI TRANSAKSI AWAL
            var DetailAwal = TransaksiAwal.Detail
                             .FirstOrDefault(item =>
                                             item.IDKombinasiProduk == DetailTujuan.IDKombinasiProduk &&
                                             item.HargaBeli == DetailTujuan.HargaBeli &&
                                             item.HargaJual == DetailTujuan.HargaJual &&
                                             item.Discount == DetailTujuan.Discount);

            if (DetailAwal == null)
            {
                //JIKA TIDAK ADA DI TRANSAKSI AWAL MEMBUAT DETAIL BARU
                DetailAwal = new TransaksiRetailDetail_Model
                {
                    IDDetailTransaksi = TransaksiAwal.IDDetailTransaksiTemp,
                    IDKombinasiProduk = DetailTujuan.IDKombinasiProduk,
                    IDStokProduk      = DetailTujuan.IDStokProduk,
                    Barcode           = DetailTujuan.Barcode,
                    Nama               = DetailTujuan.Nama,
                    Quantity           = jumlahSplitBill,
                    Berat              = DetailTujuan.Berat,
                    HargaBeliKotor     = DetailTujuan.HargaBeliKotor,
                    HargaJual          = DetailTujuan.HargaJual,
                    DiscountStore      = DetailTujuan.DiscountStore,
                    DiscountKonsinyasi = DetailTujuan.DiscountKonsinyasi,
                    Keterangan         = DetailTujuan.Keterangan
                                         //UbahQuantity
                };

                TransaksiAwal.Detail.Add(DetailAwal);
            }
            else //JIKA DI TRANSAKSI AWAL ADA DETAIL
            {
                TransaksiAwal.TambahKurangJumlahProduk(DetailAwal.IDDetailTransaksi, jumlahSplitBill);
            }

            //MELAKUKAN PENGATURAN JUMLAH DETAIL AWAL
            TransaksiTujuan.TambahKurangJumlahProduk(Parse.Int(e.CommandArgument.ToString()), jumlahTransaksi);

            LoadData();
        }
    }
コード例 #20
0
ファイル: Checkout.aspx.cs プロジェクト: vaxtra/WMSCommerce
    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);
        }
    }
コード例 #21
0
ファイル: Default.aspx.cs プロジェクト: vaxtra/WMSCommerce
    private void PengaturanTransaksi(DataClassesDatabaseDataContext db, TBTransaksi Transaksi)
    {
        if (HiddenFieldPerintah.Value == "Order Check")
        {
            PrintOrderCheck(Transaksi);
        }
        else if (HiddenFieldPerintah.Value == "Pre Settlement")
        {
            PrintPreSettlement(db, Transaksi);
        }
        else if (HiddenFieldPerintah.Value == "Lihat Pesanan")
        {
            LihatPesanan(Transaksi);
        }
        else if (HiddenFieldPerintah.Value == "Split Bill")
        {
            Response.Redirect("Transfer.aspx?id=" + Transaksi.IDTransaksi);
        }
        else if (HiddenFieldPerintah.Value == "Transfer Item")
        {
            if (string.IsNullOrWhiteSpace(HiddenFieldTransaksiAwal.Value) || HiddenFieldTransaksiAwal.Value == Transaksi.IDTransaksi)
            {
                LiteralWarning.Text            = Alert_Class.Pesan(TipeAlert.Warning, "Pilih meja tujuan untuk Transfer Item Meja " + Transaksi.TBMeja.Nama);
                HiddenFieldTransaksiAwal.Value = Transaksi.IDTransaksi;
            }
            else
            {
                Response.Redirect("Transfer.aspx?id=" + HiddenFieldTransaksiAwal.Value + "&and=" + Transaksi.IDTransaksi);
            }
        }
        else if (HiddenFieldPerintah.Value == "Pindah Meja")
        {
            if (string.IsNullOrWhiteSpace(HiddenFieldTransaksiAwal.Value) || HiddenFieldTransaksiAwal.Value == Transaksi.IDTransaksi)
            {
                LiteralWarning.Text            = Alert_Class.Pesan(TipeAlert.Warning, "Pilih meja tujuan " + Transaksi.TBMeja.Nama);
                HiddenFieldTransaksiAwal.Value = Transaksi.IDTransaksi;
            }
            else
            {
                PenggunaLogin Pengguna = (PenggunaLogin)Session["PenggunaLogin"];

                Transaksi_Class TransaksiAwal   = new Transaksi_Class(HiddenFieldTransaksiAwal.Value, Pengguna.IDPengguna);
                Transaksi_Class TransaksiTujuan = new Transaksi_Class(Transaksi.IDTransaksi, Pengguna.IDPengguna);

                foreach (var item in TransaksiAwal.Detail)
                {
                    var DetailTujuan = TransaksiTujuan.Detail
                                       .FirstOrDefault(item2 =>
                                                       item2.IDKombinasiProduk == item.IDKombinasiProduk &&
                                                       item2.HargaBeli == item.HargaBeli &&
                                                       item2.HargaJual == item.HargaJual &&
                                                       item2.Discount == item.Discount);

                    if (DetailTujuan != null)
                    {
                        DetailTujuan.Quantity += item.Quantity;
                    }
                    else
                    {
                        TransaksiTujuan.Detail.Add(item);
                    }
                }

                TransaksiAwal.ResetTransaksiDetail();

                TransaksiAwal.ConfirmTransaksi(db);
                TransaksiTujuan.ConfirmTransaksi(db);
                db.SubmitChanges();

                HiddenFieldPerintah.Value      = string.Empty;
                HiddenFieldTransaksiAwal.Value = string.Empty;
                LiteralWarning.Text            = string.Empty;

                LoadMeja(db);
            }
        }
        else if (HiddenFieldPerintah.Value == "Reprint")
        {
            PenggunaLogin Pengguna = (PenggunaLogin)Session["PenggunaLogin"];

            Transaksi_Class TransaksiReprint = new Transaksi_Class(Transaksi.IDTransaksi, Pengguna.IDPengguna);

            TransaksiReprint.PrintOrder(PilihanStatusPrint.Reprint);
            TransaksiReprint.StatusPrint = true;
            TransaksiReprint.ConfirmTransaksi();

            HiddenFieldPerintah.Value = string.Empty;
            LiteralWarning.Text       = string.Empty;
        }
    }
コード例 #22
0
ファイル: Default.aspx.cs プロジェクト: vaxtra/WMSCommerce
    protected void ButtonSimpan_Click(object sender, EventArgs e)
    {
        try
        {
            //STATUS STOK KURANG ATAU TIDAK
            bool StokKurang = false;

            int    TotalTransfer  = 0;
            string PesanTransaksi = "";

            //MENAMPILKAN MESSAGE
            LiteralWarning.Text = "";

            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                PenggunaLogin    Pengguna         = (PenggunaLogin)Session["PenggunaLogin"];
                StokProduk_Class StokProduk_Class = new StokProduk_Class(db);
                Transaksi_Class  Transaksi;

                //CLASS TRANSAKSI
                if (string.IsNullOrWhiteSpace(LabelIDTransaksi.Text))
                {
                    //MEMBUAT TRANSAKSI BARU
                    Transaksi = new Transaksi_Class(Pengguna.IDPengguna, Pengguna.IDTempat, DateTime.Now);

                    //3 : WHOLESALE
                    Transaksi.IDJenisTransaksi = 3;
                }
                else
                {
                    Transaksi = new Transaksi_Class(LabelIDTransaksi.Text, Pengguna.IDPengguna);
                }

                foreach (RepeaterItem item in RepeaterStokKombinasiProduk.Items)
                {
                    Label        LabelIDKombinasiProduk = (Label)item.FindControl("LabelIDKombinasiProduk");
                    Label        LabelJumlah            = (Label)item.FindControl("LabelJumlah");
                    TextBox      TextBoxJumlahTransaksi = (TextBox)item.FindControl("TextBoxJumlahTransaksi");
                    HtmlTableRow PanelStok       = (HtmlTableRow)item.FindControl("PanelStok");
                    int          JumlahTransaksi = (int)Pengaturan.FormatAngkaInput(TextBoxJumlahTransaksi);

                    if (JumlahTransaksi > 0)
                    {
                        //JIKA JUMLAH TRANSAKSI VALID TIDAK NULL DAN TIDAK 0

                        //PENCARIAN STOK PRODUK
                        var StokProduk = StokProduk_Class.Cari(Pengguna.IDTempat, LabelIDKombinasiProduk.Text.ToInt());

                        if (JumlahTransaksi <= StokProduk.Jumlah)
                        {
                            //JIKA JUMLAH YANG AKAN DI TRANSAKSI LEBIH KECIL ATAU SAMA DENGAN JUMLAH STOK

                            //APAKAH SUDAH ADA DI DETAIL
                            var TransaksiDetail = Transaksi.Detail.FirstOrDefault(item2 => item2.IDKombinasiProduk == LabelIDKombinasiProduk.Text.ToInt());

                            if (TransaksiDetail == null)
                            {
                                Transaksi.TambahDetailTransaksi(LabelIDKombinasiProduk.Text.ToInt(), JumlahTransaksi);
                            }
                            else
                            {
                                Transaksi.TambahKurangJumlahProduk(TransaksiDetail.IDDetailTransaksi, JumlahTransaksi);
                            }

                            //MENGKOSONGKAN TEXTBOX - LABEL JUMLAH DIISI DENGAN JUMLAH STOK TERBARU
                            TextBoxJumlahTransaksi.Text = "";
                            PanelStok.Attributes.Add("class", "");
                            LabelJumlah.Text          = Pengaturan.FormatHarga(Pengaturan.FormatAngkaInput(LabelJumlah.Text) - JumlahTransaksi);
                            LabelTotalJumlahStok.Text = Pengaturan.FormatHarga(Pengaturan.FormatAngkaInput(LabelTotalJumlahStok.Text) - JumlahTransaksi);

                            //MESSAGE TRANSFER YANG BERHASIL
                            TotalTransfer  += JumlahTransaksi;
                            PesanTransaksi += "<br/>" + Pengaturan.FormatHarga(JumlahTransaksi) + " - " + StokProduk.TBKombinasiProduk.Nama;
                        }
                        else
                        {
                            //REFRESH LABEL JUMLAH STOK
                            LabelTotalJumlahStok.Text = Pengaturan.FormatHarga(Pengaturan.FormatAngkaInput(LabelTotalJumlahStok.Text) - (Pengaturan.FormatAngkaInput(LabelJumlah.Text) - StokProduk.Jumlah));
                            LabelJumlah.Text          = Pengaturan.FormatHarga(StokProduk.Jumlah);
                            PanelStok.Attributes.Add("class", "danger");

                            StokKurang = true;
                        }
                    }

                    //HANDLE POSTBACK FORMAT HARGA
                    TextBoxJumlahTransaksi.Text = Pengaturan.FormatAngkaInput(TextBoxJumlahTransaksi.Text) == 0 ? "" : Pengaturan.FormatAngkaInput(TextBoxJumlahTransaksi.Text).ToString();
                }

                if (TotalTransfer > 0)
                {
                    LabelIDTransaksi.Text = Transaksi.ConfirmTransaksi(db);
                    db.SubmitChanges();
                }
            }

            if (TotalTransfer > 0)
            {
                PesanTransaksi      += "<br/><h5><b>Total : " + TotalTransfer + "</b></h5>";
                LiteralWarning.Text += Alert_Class.Pesan(TipeAlert.Success, "Produk berhasil disimpan" + PesanTransaksi);
            }

            if (StokKurang)
            {
                LiteralWarning.Text += Alert_Class.Pesan(TipeAlert.Danger, "Stok tidak cukup, silahkan cek kembali");
            }
        }
        catch (Exception ex)
        {
            LiteralWarning.Text = Alert_Class.Pesan(TipeAlert.Danger, ex.Message);
            LogError_Class LogError = new LogError_Class(ex, Request.Url.PathAndQuery);
        }
    }
コード例 #23
0
ファイル: Default.aspx.cs プロジェクト: vaxtra/WMSCommerce
    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 = "";
        }
    }