private void BatalTransaksi() { try { PenggunaLogin Pengguna = (PenggunaLogin)Session["PenggunaLogin"]; Transaksi_Model Transaksi = new Transaksi_Model(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); } }
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_Model Transaksi = (Transaksi_Model)ViewState["Transaksi"]; Transaksi.BiayaPengiriman = Alamat.BiayaPengiriman.Value; TextBoxBiayaPengiriman.Text = Pengaturan.FormatHarga(Transaksi.BiayaPengiriman); } } } LoadDataTransaksi(); } }
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_Model TransaksiAwal = new Transaksi_Model(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); } } }
protected void RepeaterTransaksiKombinasiProduk_ItemCommand(object source, RepeaterCommandEventArgs e) { if (e.CommandName == "Hapus") { using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { PenggunaLogin Pengguna = (PenggunaLogin)Session["PenggunaLogin"]; Transaksi_Model Transaksi = new Transaksi_Model(LabelIDTransaksi.Text, Pengguna.IDPengguna); Transaksi.UbahJumlahProduk(e.CommandArgument.ToString().ToInt(), 0); Transaksi.ConfirmTransaksi(db); db.SubmitChanges(); LoadDataTransaksiDetail(); } } }
private void BatalTransaksi() { try { PenggunaLogin Pengguna = (PenggunaLogin)Session["PenggunaLogin"]; Transaksi_Model Transaksi = new Transaksi_Model(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); } }
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_Model Transaksi = new Transaksi_Model(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; } }
private void LoadData() { Transaksi_Model TransaksiAwal = (Transaksi_Model)ViewState["TransaksiAwal"]; Transaksi_Model TransaksiTujuan = (Transaksi_Model)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(); }
protected void ButtonSimpan_Click(object sender, EventArgs e) { try { PenggunaLogin Pengguna = (PenggunaLogin)Session["PenggunaLogin"]; Transaksi_Model TransaksiAwal = (Transaksi_Model)ViewState["TransaksiAwal"]; Transaksi_Model TransaksiTujuan = (Transaksi_Model)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); } }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { Transaksi_Model Transaksi = (Transaksi_Model)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_Model(Pengguna.IDPengguna, Pengguna.IDTempat, DateTime.Now); ViewState["Transaksi"] = Transaksi; } } }
private void LoadDataTransaksiDetail() { using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext()) { PenggunaLogin Pengguna = (PenggunaLogin)Session["PenggunaLogin"]; Transaksi_Model Transaksi = new Transaksi_Model(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); } }
private void MembuatTransaksiBaru(PenggunaLogin Pengguna, Transaksi_Model TransaksiAwal) { //JIKA SPLIT BILL MEMBUAT OBJECT CLASS TRANSAKSI BARU var TransaksiTujuan = new Transaksi_Model(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; }
private void Simpan(int idStatusTransaksi) { Transaksi_Model Transaksi = (Transaksi_Model)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); } } }
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_Model TransaksiAwal = new Transaksi_Model(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_Model TransaksiTujuan = new Transaksi_Model(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"); } } }
private void LoadDataTransaksi() { Transaksi_Model Transaksi = (Transaksi_Model)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); }
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_Model TransaksiAwal = new Transaksi_Model(HiddenFieldTransaksiAwal.Value, Pengguna.IDPengguna); Transaksi_Model TransaksiTujuan = new Transaksi_Model(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_Model TransaksiReprint = new Transaksi_Model(Transaksi.IDTransaksi, Pengguna.IDPengguna); TransaksiReprint.PrintOrder(PilihanStatusPrint.Reprint); TransaksiReprint.StatusPrint = true; TransaksiReprint.ConfirmTransaksi(); HiddenFieldPerintah.Value = string.Empty; LiteralWarning.Text = string.Empty; } }
protected void RepeaterTransaksiSplitBill_ItemCommand(object source, RepeaterCommandEventArgs e) { if (e.CommandName == "Pindah") { Transaksi_Model TransaksiAwal = (Transaksi_Model)ViewState["TransaksiAwal"]; Transaksi_Model TransaksiTujuan = (Transaksi_Model)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(); } }
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_Model(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 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_Model Transaksi; //CLASS TRANSAKSI if (string.IsNullOrWhiteSpace(LabelIDTransaksi.Text)) { //MEMBUAT TRANSAKSI BARU Transaksi = new Transaksi_Model(Pengguna.IDPengguna, Pengguna.IDTempat, DateTime.Now); //3 : WHOLESALE Transaksi.IDJenisTransaksi = 3; } else { Transaksi = new Transaksi_Model(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); } }