public NotaPembelian(string noNotaPembelian, string status, string keterangan, double diskon, int totalHarga, DateTime tglBatasPelunasan, DateTime tglBatasDiskon, DateTime tglBeli, Supplier supplier)
 {
     this.noNotaPembelian   = noNotaPembelian;
     this.status            = status;
     this.keterangan        = keterangan;
     this.diskon            = diskon;
     this.totalHarga        = totalHarga;
     this.tglBatasPelunasan = tglBatasPelunasan;
     TglBatasDiskon         = tglBatasDiskon;
     this.tglBeli           = tglBeli;
     this.supplier          = supplier;
     ListNotaBeliDetil      = new List <DetilNotaBeli>();
 }
        public static string BacaData(string kriteria, string nilaiKriteria, List <NotaPembelian> listNotaBeli)
        {
            string sql1 = "";

            if (kriteria == "")
            {
                //tuliskan perintah sql1 = untuk menampilkan semua data  tabel nota pembelian
                sql1 = "select * from vnotapembelian";
            }
            else
            {
                sql1 = "SELECT * FROM vnotapembelian WHERE " + kriteria + " LIKE '%" + nilaiKriteria + "%'";
            }

            try
            {
                //data reader 1 = memperoleh semua data dari tabel notaPembelian
                MySqlDataReader hasilData1 = Koneksi.JalankanPerintahQuery(sql1);
                listNotaBeli.Clear();//kosongi isi list terlebih dahulu

                while (hasilData1.Read())
                {
                    //mendapatkan  nomornota, status ,dll
                    string   nomorNota         = hasilData1.GetValue(0).ToString();               // nonotapembelian
                    double   diskon            = double.Parse(hasilData1.GetValue(4).ToString()); // diskon
                    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 tglBeli           = DateTime.Parse(hasilData1.GetValue(8).ToString());
                    string   status            = hasilData1.GetValue(9).ToString();
                    string   keterangan        = hasilData1.GetValue(10).ToString();

                    //supplier yang melakukan transaksi
                    //mendapatkan idsupplier, nama, dan alamat
                    string idSup     = hasilData1.GetValue(1).ToString();
                    string namaSup   = hasilData1.GetValue(2).ToString();
                    string alamatSup = hasilData1.GetValue(3).ToString();

                    //buat object bertipe Supplier
                    Supplier spl = new Supplier();
                    //tambahkan 3 data dibawah
                    spl.IdSupplier = idSup;
                    spl.Nama       = namaSup;
                    spl.Alamat     = alamatSup;

                    //nota beli
                    //buat object notapembelian dan tambahkan data
                    NotaPembelian nota = new NotaPembelian(nomorNota, status, keterangan, diskon, totalHarga,
                                                           tglBatasPelunasan, tglBatasDiskon, tglBeli, spl);

                    //DETAIL nota Beli
                    //query utk detail nota Beli dati tiap nota beli
                    //sql2 untuk mendapatkan barang yang ada di nota  (dar tabel detilnotabeli)
                    string sql2 = "SELECT DNB.kodeBarang, B.Nama, DNB.Jumlah , DNB.HargaBeli FROM NotaPembelian N INNER JOIN " +
                                  "detilNotaBeli DNB ON N.noNotaPembelian = DNB.noNotaPembelian INNER JOIN Barang B ON " +
                                  "DNB.KodeBarang = B.KodeBarang WHERE N.noNotaPembelian = '" + nomorNota + "'";

                    //memperoleh semua data barang nota ditabel detilnotabeli
                    MySqlDataReader hasilData2 = Koneksi.JalankanPerintahQuery(sql2);

                    while (hasilData2.Read())
                    {
                        //mendapatkan  kode dan nama barang yang dibeli
                        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 beli dan jumlah transaksi
                        int hargaBeli = int.Parse(hasilData2.GetValue(3).ToString());
                        int jumlah    = int.Parse(hasilData2.GetValue(2).ToString());

                        //buat object bertipe detilnotabeli dan tambahkan
                        //ingat baik baik agar fk tidak duplicate
                        DetilNotaBeli detilNota = new DetilNotaBeli(brg, jumlah, hargaBeli);

                        //simpan detil barang ke nota
                        nota.TambahDetilBarang(brg, jumlah, hargaBeli);
                    }
                    //simpan ke list
                    listNotaBeli.Add(nota);
                }
                return("1");
            }
            catch (MySqlException ex)
            {
                return(ex.Message);
            }
        }