/// <summary> /// Mendapatkan daftar barang /// </summary> private void GetDaftarBarang() { /* Jika kalian ingin membuat sebuah method * yang dipanggil melalui system threading. * Maka Anda harus menginvoke UI-UI yang akan * dieksekusi terlebih dahulu * */ Invoke((MethodInvoker) delegate { barang = new BarangDataHelper(); dataGridBarang.Rows.Clear(); for (int i = 0; i < barang.GetID().Count; i++) { dataGridBarang.Rows.Add(new object[] { barang.GetID()[i], barang.GetKode()[i], barang.GetNama()[i], barang.GetJenis()[i], barang.GetSupplier()[i], barang.GetStock()[i], "Rp" + barang.GetHargaJual()[i].ToString("N0"), "Rp" + barang.GetHargaBeli()[i].ToString("N0"), "Rp" + barang.GetBiayaProduksi()[i].ToString("N0"), barang.GetTerjual()[i], "Rp" + barang.Keuntungan(barang.GetHargaJual()[i] , barang.GetHargaBeli()[i], barang.GetBiayaProduksi()[i] , barang.GetTerjual()[i]).ToString("N0") }); } }); }
/// <summary> /// Menghapus barang dari database /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnHapus_Click(object sender, EventArgs e) { barang = new BarangDataHelper(); utils = new Ultilities(); if (indexBarang != string.Empty) { try { barang.RemoveBarang(indexBarang); utils.ShowMessage("Barang berhasil terhapus!", "Hapus Barang Sukses", MessageBoxButtons.OK, MessageBoxIcon.Information); //Melakukan refresh UI ClearText(); indexBarang = string.Empty; /* Menjalankan method di background * hal ini mencegah terjadinya crash jika melakukan * load barang dalam jumlah gede * */ Thread daftar = new Thread(() => GetDaftarBarang()); daftar.Start(); } catch (Exception ex) { utils.ShowMessage(ex.Message, "Eror", MessageBoxButtons.OK, MessageBoxIcon.Error); } } }
/// <summary> /// Menambah barang baru /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnTambah_Click(object sender, EventArgs e) { barang = new BarangDataHelper(); utils = new Ultilities(); if (txtKode.Text != string.Empty && txtNamaBarang.Text != string.Empty && comboJenisBarang.Text != string.Empty && txtSupplier.Text != string.Empty && txtStock.Text != string.Empty && txtHargaJual.Text != string.Empty && txtHargaBeli.Text != string.Empty && txtBiayaProduksi.Text != string.Empty) { if (!barang.isBarangExists(txtNamaBarang.Text) && !barang.isKodeExists(txtKode.Text)) { try { int terjual = 0; barang.AddBarang(txtKode.Text , txtNamaBarang.Text , comboJenisBarang.Text , txtSupplier.Text , int.Parse(txtStock.Text) , int.Parse(txtHargaJual.Text) , int.Parse(txtHargaBeli.Text) , int.Parse(txtBiayaProduksi.Text) , terjual); utils.ShowMessage("Berhasil menambah barang", "Tambah Barang Sukses", MessageBoxButtons.OK, MessageBoxIcon.Information); //Clear Textbox ClearText(); /* Menjalankan method di background * hal ini mencegah terjadinya crash jika melakukan * load barang dalam jumlah gede * */ Thread daftar = new Thread(() => GetDaftarBarang()); daftar.Start(); } catch (Exception ex) { utils.ShowMessage(ex.Message, "Eror", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else { utils.ShowMessage("Barang tersebut sudah ada!", "Gagal Tambah Barang", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else { utils.ShowMessage("Silahkan isi semua bagian", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning); } }
/// <summary> /// Mendapatkan seluruh barang yang /// ada dan menambahkannya ke dalam combobox /// </summary> private void GetDaftarBarang() { barang = new BarangDataHelper(); comboBarang.Items.Clear(); foreach (string name in barang.GetNama()) { comboBarang.Items.Add(name); } }
private void btnAdd_Click(object sender, EventArgs e) { barang = new BarangDataHelper(); utils = new Ultilities(); if (txtJumlah.Text != string.Empty) { if (txtStock.Text == "0") { utils.ShowMessage("Stock barang telah habis!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } listKeranjang.Items.Clear(); if (comboDiskon.Text == string.Empty) { comboDiskon.SelectedIndex = 0; } int hargaBarang = int.Parse(txtHargaBarang.Text); if (int.Parse(comboDiskon.Text.Replace("%", "")) > 0) { int subt = hargaBarang * int.Parse(comboDiskon.Text.Replace("%", "")) / 100; hargaBarang -= subt; } AddKeranjang(comboBarang.Text, int.Parse(txtJumlah.Text), hargaBarang, int.Parse(comboDiskon.Text.Replace("%", ""))); //Menambah biaya AddTotalBiaya(hargaBarang, int.Parse(txtJumlah.Text)); AddDetails(comboBarang.Text, txtKode.Text, txtJenisBarang.Text, hargaBarang, int.Parse(txtJumlah.Text)); for (int i = 0; i < _name.Count; i++) { rows[0] = "Rp" + _harga[i].ToString("N0"); rows[1] = _jumlah[i].ToString(); listKeranjang.Items.Add(_name[i], 0).SubItems.AddRange(rows); } //Refresh UI comboBarang.SelectedIndex = -1; comboDiskon.SelectedIndex = -1; utils.ClearTextBox(txtKode, string.Empty); utils.ClearTextBox(txtJenisBarang, string.Empty); utils.ClearTextBox(txtSupplier, string.Empty); utils.ClearTextBox(txtStock, string.Empty); utils.ClearTextBox(txtHargaBarang, string.Empty); utils.ClearTextBox(txtJumlah, string.Empty); } else { utils.ShowMessage("Masukkan jumlah belanja", "Penambahan Gagal", MessageBoxButtons.OK, MessageBoxIcon.Warning); } }
/// <summary> /// Mencari barang sesuai keyword dari database /// </summary> /// <param name="keyword"></param> private void searchSomething(string keyword) { myDb = new DatabaseHelper(); utils = new Ultilities(); barang = new BarangDataHelper(); using (SQLiteConnection con = new SQLiteConnection(myDb.GetConnection())) { using (SQLiteCommand cmd = new SQLiteCommand("SELECT * FROM barang_list WHERE [Nama Barang] LIKE '%" + keyword + "%'", con)) { con.Open(); SQLiteDataReader reader = cmd.ExecuteReader(); int count = 0; while (reader.Read()) { dataGridBarang.Rows.Clear(); count++; string obj = reader.GetValue(reader.GetOrdinal("Harga Jual")).ToString(); string obj2 = reader.GetValue(reader.GetOrdinal("Harga Beli")).ToString(); string obj3 = reader.GetValue(reader.GetOrdinal("Biaya Produksi")).ToString(); string obj4 = reader.GetValue(reader.GetOrdinal("Terjual")).ToString(); int untung = barang.Keuntungan(int.Parse(obj), int.Parse(obj2), int.Parse(obj3), int.Parse(obj4)); dataGridBarang.Rows.Add(new object[] { reader.GetValue(reader.GetOrdinal("ID")), reader.GetValue(reader.GetOrdinal("Kode Barang")), reader.GetValue(reader.GetOrdinal("Nama Barang")), reader.GetValue(reader.GetOrdinal("Jenis Barang")), reader.GetValue(reader.GetOrdinal("Supplier")), reader.GetValue(reader.GetOrdinal("Stock Barang")), "Rp" + int.Parse(obj).ToString("N0"), "Rp" + int.Parse(obj2).ToString("N0"), "Rp" + int.Parse(obj3).ToString("N0"), obj4, "Rp" + untung.ToString("N0") }); } if (count < 1) { utils.ShowMessage("Pencarian tidak ditemukan!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); search = false; txtCari.Text = string.Empty; btnSearch.Text = "Search"; //Mengembalikan keadaan semula Thread daftar = new Thread(() => GetDaftarBarang()); daftar.Start(); } con.Close(); } } }
/// <summary> /// Mendapatkan daftar Jenis Barang yang tersedia dalam Database /// </summary> public void GetJenisData() { barang = new BarangDataHelper(); //Menghapus seluruh item di daftar jenis agar tidak terjadi duplikasi data comboDaftarJenis.Items.Clear(); //Melakukan looping dari seluruh jenis barang yang terdapat dalam database foreach (string jenis in barang.GetJenisBarang()) { //Memasukkan data tersebut ke dalam comboBox comboDaftarJenis.Items.Add(jenis); } }
/// <summary> /// Proses pemilihan barang dari combobox /// lalu sistem akan otomatis menginput details /// barang tersebut ke dalam textbox /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void comboBarang_SelectedIndexChanged(object sender, EventArgs e) { barang = new BarangDataHelper(); for (int i = 0; i < barang.GetID().Count; i++) { if (barang.GetNama()[i] == comboBarang.Text) { txtKode.Text = barang.GetKode()[i]; txtJenisBarang.Text = barang.GetJenis()[i]; txtSupplier.Text = barang.GetSupplier()[i]; txtStock.Text = barang.GetStock()[i].ToString(); txtHargaBarang.Text = barang.GetHargaJual()[i].ToString(); } } }
/// <summary> /// Mendapatkan profit penjualan berdasarkan /// barang yang terjual /// </summary> /// <returns></returns> public int GetProfit() { barang = new BarangDataHelper(); int untung = 0; //Loop semua data id barang pada database for (int i = 0; i < barang.GetID().Count; i++) { /* Lalu melakukan perhitungan keuntungan * dari tiap barang, dan menjumlahkan totalnya * hingga menjadi bilangan profit utuh * */ untung += barang.Keuntungan(barang.GetHargaJual()[i] , barang.GetHargaBeli()[i] , barang.GetBiayaProduksi()[i] , barang.GetTerjual()[i]); } return(untung); }
/// <summary> /// Menambah Jenis Barang baru /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnTambah_Click(object sender, EventArgs e) { barang = new BarangDataHelper(); utils = new Ultilities(); if (txtJenis.Text != string.Empty) { if (!barang.isJenisExists(txtJenis.Text)) { try { //Menambahkan jenis barang baru barang.AddJenisBarang(txtJenis.Text); txtJenis.Text = string.Empty; utils.ShowMessage("Berhasil menambah jenis barang!", "Tambah Jenis Sukses", MessageBoxButtons.OK, MessageBoxIcon.Information); /* Setiap data yang dimasukkan, harus direfresh menggunakan * method ini agar data yang ditambahkan ke database akan langsung * bisa terlihat * */ GetJenisData(); } catch (Exception ex) { utils.ShowMessage(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else { utils.ShowMessage("Jenis tersebut sudah ada!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else { utils.ShowMessage("Silahkan masukkan jenis barang!", "Masukkan Jenis Barang", MessageBoxButtons.OK, MessageBoxIcon.Warning); } }
/// <summary> /// Melakukan perubahan data pada barang ke data baru /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnSimpan_Click(object sender, EventArgs e) { barang = new BarangDataHelper(); utils = new Ultilities(); if (indexBarang != string.Empty) { try { barang.UpdateBarang(txtKode.Text , txtNamaBarang.Text , comboJenisBarang.Text , txtSupplier.Text , int.Parse(txtStock.Text) , int.Parse(txtHargaJual.Text) , int.Parse(txtHargaBeli.Text) , int.Parse(txtBiayaProduksi.Text)); utils.ShowMessage("Berhasil mengubah data!", "Edit Barang Sukses", MessageBoxButtons.OK, MessageBoxIcon.Information); //Melakukan refresh UI ClearText(); indexBarang = string.Empty; /* Menjalankan method di background * hal ini mencegah terjadinya crash jika melakukan * load barang dalam jumlah gede * */ Thread daftar = new Thread(() => GetDaftarBarang()); daftar.Start(); } catch (Exception ex) { utils.ShowMessage(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } }
/// <summary> /// Menghapus Jenis Barang yang sudah ada /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnHapus_Click(object sender, EventArgs e) { barang = new BarangDataHelper(); utils = new Ultilities(); /* Untuk menghapus beberapa jenis barang, * kita hanya perlu memilih jensi barang yang * sudah ada melalui combobox * */ if (comboDaftarJenis.Text != string.Empty) { try { barang.RemoveJenisBarang(comboDaftarJenis.Text); utils.ShowMessage("Berhasil menghapus jenis barang!", "Hapus Jenis Sukses", MessageBoxButtons.OK, MessageBoxIcon.Information); GetJenisData(); } catch (Exception ex) { utils.ShowMessage(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } }
private void btnBayar_Click(object sender, EventArgs e) { utils = new Ultilities(); barang = new BarangDataHelper(); tss = new Transaksi(); string tanggal = DateTime.Now.ToString("dd-MM-yyyy"); if (_kode.Count > 0) { Cash _cash = new Cash(); _cash.ShowDialog(); //Mengambil input nominal dari form cash cash = int.Parse(_cash.txtCash.Text); //Jika nominal lebih besar / sama dengan dari total biaya if (cash >= TotalBiaya) { int newTotalTrans; //Mengupdate total transaksi newTotalTrans = tss.GetTotalTransaksi(); newTotalTrans += 1; tss.UpdateTotalTransaksi(newTotalTrans); //Mengambil data pada keranjang belanja for (int i = 0; i < _kode.Count; i++) { /* Mengambil value stock pada barang * di keranjang belanja untuk langsung * dikurangi dengan jumlah pembelian. * */ int newStock = 0, newTerjual = 0; for (int b = 0; b < barang.GetNama().Count; b++) { if (barang.GetNama()[b] == _name[i]) { newStock = barang.GetStock()[b]; newTerjual = barang.GetTerjual()[b]; } } //Mengupdate jumlah stock barang tersebut newStock -= _jumlah[i]; barang.UpdateStock(_name[i], newStock); //Mengupdate barang terjual newTerjual += _jumlah[i]; barang.UpdateTerjual(_name[i], newTerjual); //Mendapatkan ID Transaksi string IDTransaksi = "TR" + tss.GetTotalTransaksi().ToString("00000"); //Menambah data transaksi ke dalam database tss.AddTransaksi(IDTransaksi, _name[i], _kode[i], _jenis[i], _stock[i], _jumlah[i], _rawHarga[i], tanggal, username, _diskon[i], _harga[i]); } //Membersihkan keranjang belanja ClearKeranjang(); //Mendapatkan data transaksi GetTransaksi(); //Mendapatkan total Stock GetTotalStock(); //Mendapatkan total profit GetProfit(); //Mendapatkan total nominal transaksi GetTotalPay(); //Mendapatkan barang terlaris GetBarangTerlaris(); lblDetailTotalBiaya.Text = "Rp0"; } else { utils.ShowMessage("Nominal cash tidak mencukupi", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else { utils.ShowMessage("Keranjang Belanjang kosong!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning); } }
/// <summary> /// Mendapatkan total stock barang /// </summary> public void GetTotalStock() { barang = new BarangDataHelper(); lblTotalStock.Text = barang.GetTotalStock().ToString(); }