public static string BacaData(string kriteria, string nilaiKriteria, List <NotaPenjualan> listNotaJual) { string sql1 = ""; if (kriteria == "") { //tuliskan perintah sql1 = untuk menampilkan semua data ditabel notapenjualan sql1 = "SELECT * FROM vnotapenjualan"; } else { sql1 = "SELECT * FROM vnotapenjualan WHERE " + kriteria + " LIKE '%" + nilaiKriteria + "%'"; } try { //data reader 1 = memperoleh semua data di tabel notaPenjualan MySqlDataReader hasilData1 = Koneksi.JalankanPerintahQuery(sql1); listNotaJual.Clear();//kosongi isi list terlebih dahulu while (hasilData1.Read()) { //mendapatkan nomornota, status ,dll string nomorNota = hasilData1.GetValue(0).ToString(); double diskon = double.Parse(hasilData1.GetValue(4).ToString()); int totalHarga = int.Parse(hasilData1.GetValue(5).ToString()); DateTime tglBatasPelunasan = DateTime.Parse(hasilData1.GetValue(6).ToString()); DateTime tglBatasDiskon = DateTime.Parse(hasilData1.GetValue(7).ToString()); DateTime tglJual = DateTime.Parse(hasilData1.GetValue(8).ToString()); string status = hasilData1.GetValue(9).ToString(); string keterangan = hasilData1.GetValue(10).ToString(); //pelanggan yang melakukan transaksi //mendapatkan idpelanggan, nama, dan alamat int idPlg = int.Parse(hasilData1.GetValue(1).ToString()); string namaPlg = hasilData1.GetValue(2).ToString(); string alamatPlg = hasilData1.GetValue(3).ToString(); //buat object bertipe pelanggan Pelanggan plg = new Pelanggan(); //tambahkan 3 data dibawah plg.IdPelanggan = idPlg; plg.Nama = namaPlg; plg.Alamat = alamatPlg; //nota jual //buat object notapenjualan dan tambahkan data NotaPenjualan nota = new NotaPenjualan(nomorNota, status, keterangan, diskon, totalHarga, tglBatasPelunasan, tglBatasDiskon, tglJual, plg); //DETAIL nota jual //query utk detail nota jual dati tiap nota jual //sql2 untuk mendapatkan barang yang ada di nota (dar tabel detilnotajual) string sql2 = "SELECT DNJ.kodeBarang, B.Nama, DNJ.Jumlah , DNJ.HargaJual FROM NotaPenjualan N INNER JOIN " + "detilNotaJual DNJ ON N.noNotaPenjualan = DNJ.noNotaPenjualan INNER JOIN Barang B ON " + "DNJ.KodeBarang = B.KodeBarang WHERE N.noNotaPenjualan = '" + nomorNota + "'"; //memperoleh semua data barang nota ditabel detilnotajual MySqlDataReader hasilData2 = Koneksi.JalankanPerintahQuery(sql2); while (hasilData2.Read()) { //mendapatkan kode dan nama barang yang terjual string kodeBrg = hasilData2.GetValue(0).ToString(); string namaBrg = hasilData2.GetValue(1).ToString(); //buat object barang dan tambahkan Barang brg = new Barang(); brg.KodeBarang = kodeBrg; brg.Nama = namaBrg; //mendapatkan harga jual dan jumlah transaksi int hargaJual = int.Parse(hasilData2.GetValue(3).ToString()); int jumlah = int.Parse(hasilData2.GetValue(2).ToString()); //buat object bertipe detilnotajual dan tambahkan //ingat baik baik agar fk tidak duplicate DetilNotaJual detilNota = new DetilNotaJual(brg, jumlah, hargaJual); //simpan detil barang ke nota nota.TambahDetilBarang(brg, jumlah, hargaJual); } //simpan ke list listNotaJual.Add(nota); } return("1"); } catch (MySqlException ex) { return(ex.Message); } }
public void TambahDetilBarang(Barang pBarang, int pJumlah, int pHargaJual) { DetilNotaJual dnj = new DetilNotaJual(pBarang, pJumlah, pHargaJual); ListNotaJualDetil.Add(dnj); }