public static string BacaData(string kriteria, string nilaiKriteria, List <JobOrder> listJobOrder) { string sql1 = ""; if (kriteria == "") { //tuliskan perintah sql1 = untuk menampilkan semua data ditabel JobOrder sql1 = "SELECT J.kodeJobOrder, B.kodeBarang, B.nama as Item, B.hargaBeliTerbaru, J.quantity, B.satuan, J.directMaterial, J.directLabor, " + " J.overheadProduksi, J.tglMulai, J.tglSelesai, J.noNotaPenjualan, J.status FROM notapenjualan NP inner join " + " joborder J on NP.noNotaPenjualan = J.noNotaPenjualan inner join barang B on B.kodeBarang = J.kodebarang order by kodejoborder DESC "; } else { sql1 = "SELECT J.kodeJobOrder, B.kodeBarang, B.nama as Item, B.hargaBeliTerbaru, J.quantity, B.satuan, J.directMaterial, J.directLabor, " + " J.overheadProduksi, J.tglMulai, J.tglSelesai, J.noNotaPenjualan, J.status FROM notapenjualan NP inner join " + " joborder J on NP.noNotaPenjualan = J.noNotaPenjualan inner join barang B on B.kodeBarang = J.kodebarang where " + kriteria + " LIKE '%" + nilaiKriteria + "%' order by kodejoborder DESC"; } try { //data reader 1 = memperoleh semua data di tabel job order MySqlDataReader hasilData1 = Koneksi.JalankanPerintahQuery(sql1); listJobOrder.Clear();//kosongi isi list terlebih dahulu while (hasilData1.Read()) { //mendapatkan kodeJobOrder, quantity , satuan, dll string kodeJob = hasilData1.GetValue(0).ToString(); int pQuantity = int.Parse(hasilData1.GetValue(4).ToString()); int pMaterial = int.Parse(hasilData1.GetValue(6).ToString()); int pLabor = int.Parse(hasilData1.GetValue(7).ToString()); int pOver = int.Parse(hasilData1.GetValue(8).ToString()); DateTime pMulai = DateTime.Parse(hasilData1.GetValue(9).ToString()); DateTime pSelesai = DateTime.Parse(hasilData1.GetValue(10).ToString()); string pStatus = hasilData1.GetValue(12).ToString(); //tambahkan no nota string noNota = hasilData1.GetValue(11).ToString(); NotaPenjualan nota = new NotaPenjualan(); nota.NoNotaPenjualan = noNota; //barang yang akan dibuat //mendapatkan kode barang, nama, harga string kodeBrng = hasilData1.GetValue(1).ToString(); string namaBrng = hasilData1.GetValue(2).ToString(); int harga = int.Parse(hasilData1.GetValue(3).ToString()); string pSatuan = hasilData1.GetValue(5).ToString(); //buat object bertipe barang Barang barang = new Barang(); //tambahkan 4 data dibawah barang.KodeBarang = kodeBrng; barang.Nama = namaBrng; barang.HargaBeliTerbaru = harga; barang.Satuan = pSatuan; //job order //buat object joborder dan tambahkan data JobOrder job = new JobOrder(kodeJob, pQuantity, pLabor, pMaterial, pOver, pMulai, pSelesai, pStatus, barang, nota); //DETAIL Job Order //query utk detail Job Order //sql2 untuk menghitung directlabor string sql2 = "SELECT K.idkaryawan, K.Nama, K.gender, K.notelepon, DJO.satuan, DJO.gajiPerSatuan FROM joborder JO INNER JOIN " + "detilJobOrder DJO ON JO.kodejoborder = DJO.kodejoborder INNER JOIN karyawan K ON " + "DJO.idkaryawan = K.idkaryawan WHERE JO.kodejobOrder = '" + kodeJob + "'"; //memperoleh semua data MySqlDataReader hasilData2 = Koneksi.JalankanPerintahQuery(sql2); while (hasilData2.Read()) { //mendapatkan id dan nama karyawan yang bekerja string idKary = hasilData2.GetValue(0).ToString(); string namaKary = hasilData2.GetValue(1).ToString(); string pGender = hasilData2.GetValue(2).ToString(); string noTelp = hasilData2.GetValue(3).ToString(); //buat object Karyawan dan tambahkan Karyawan K = new Karyawan(); K.IdKaryawan = idKary; K.Nama = namaKary; K.Gender = pGender; K.NoTelepon = noTelp; //mendapatkan satuan dan Gaji persatuan transaksi string pSat = hasilData2.GetValue(4).ToString(); int gajiSatuan = int.Parse(hasilData2.GetValue(5).ToString()); //buat object bertipe detilJoborder dan tambahkan //ingat baik baik agar fk tidak duplicate DetilJobOrder detilJob = new DetilJobOrder(K, pSat, gajiSatuan); //simpan job.TambahDetilJobOrder(K, pSat, gajiSatuan); } //simpan ke list listJobOrder.Add(job); } return("1"); } catch (MySqlException ex) { return(ex.Message); } }
public void TambahDetilJobOrder(Karyawan pKaryawan, string pSatuan, int pGajiPerSatuan) { DetilJobOrder djo = new DetilJobOrder(pKaryawan, pSatuan, pGajiPerSatuan); ListDetilJobOrder.Add(djo); }