public static string TambahData(SuratJalan pSuratJalan) { using (var tranScope = new TransactionScope(TransactionScopeOption.RequiresNew)) { // perintah sql 1 = untuk menambahkan data ke tabel surat Jalan string sql1 = "INSERT INTO suratJalan(noSuratJalan,jenis, tgl, keterangan, nosuratpermintaan) VALUES ('" + pSuratJalan.NoSuratJalan + "', '" + pSuratJalan.Jenis + "', '" + pSuratJalan.Tgl.ToString("yyyy-MM-dd ") + "', '" + pSuratJalan.Keterangan + "', '" + pSuratJalan.SuratPermintaan.NoSuratPermintaan + "')"; try { //jalankan perintah untuk menambahkan ke tabel suratjalan Koneksi.JalankanPerintahDML(sql1); //menambahkan semua barang yang akan di kirim, ke dalam detilsuratjalan for (int i = 0; i < pSuratJalan.ListDetilSuratJalan.Count; i++) { //perintah sql2 = untuk menambahkan barang barang yang dikirim ke tabel detilsuratjalan string sql2 = "INSERT INTO detilsuratjalan(nosuratjalan, kodebarang, jumlah) VALUES ('" + pSuratJalan.NoSuratJalan + "', '" + pSuratJalan.ListDetilSuratJalan[i].Barang.KodeBarang + "', " + pSuratJalan.ListDetilSuratJalan[i].Jumlah + ")"; //menjalankan perintah untuk menambahkan ke tabel detilsuratjalan Koneksi.JalankanPerintahDML(sql2); //ubah stok barang if (pSuratJalan.Jenis == "M") // jika barang dikirim ke gudang (job order telah selesai) { Barang.UbahStokBeli(pSuratJalan.ListDetilSuratJalan[i].Barang.KodeBarang, pSuratJalan.ListDetilSuratJalan[i].Jumlah); } else //jika barang di ambil dari gudang untuk keperluan job order { Barang.UbahStokTerjual(pSuratJalan.ListDetilSuratJalan[i].Barang.KodeBarang, pSuratJalan.ListDetilSuratJalan[i].Jumlah); } } //jika semua perinth dml berhasil dijalankan tranScope.Complete(); return("1"); } catch (Exception e) { //jika ada kegagalan perintah dml tranScope.Dispose(); return(e.Message); } } }
public static string BacaData(string kriteria, string nilaiKriteria, List <SuratJalan> listSuratJalan) { string sql1 = ""; if (kriteria == "") { //tuliskan perintah sql1 = untuk menampilkan semua data ditabel surat jalan sql1 = "select * from suratjalan order by noSuratJalan desc"; } else { sql1 = "select * from suratjalan WHERE " + kriteria + " LIKE '%" + nilaiKriteria + "%' order by noSuratJalan desc"; } try { //data reader 1 = memperoleh semua data di tabel surat jalan MySqlDataReader hasilData1 = Koneksi.JalankanPerintahQuery(sql1); listSuratJalan.Clear();//kosongi isi list terlebih dahulu while (hasilData1.Read()) { //mendapatkan nosurat ,dll string nomorSurat = hasilData1.GetValue(0).ToString(); string pJenis = hasilData1.GetValue(1).ToString(); DateTime tgl = DateTime.Parse(hasilData1.GetValue(2).ToString()); string ket = hasilData1.GetValue(3).ToString(); //permintaan seusai surat permintaan //mendapatkan no surat permintaan string noSuratPermintaan = hasilData1.GetValue(4).ToString(); //buat object bertipe surat permintaan SuratPermintaan suratPermintaan = new SuratPermintaan(); //tambahkan data suratPermintaan.NoSuratPermintaan = noSuratPermintaan; //surat jalan //buat object surat jalan dan tambahkan data SuratJalan surat = new SuratJalan(nomorSurat, pJenis, ket, tgl, suratPermintaan); //DETAIL surat Jalan //query utk detail suratJalan dari tiap surat jalan //sql2 untuk mendapatkan barang yang akan dikirim string sql2 = "SELECT DSJ.kodeBarang, B.Nama, DSJ.Jumlah FROM suratJalan SJ INNER JOIN " + "detilsuratJalan DSJ ON SJ.nosuratjalan = DSJ.nosuratjalan INNER JOIN Barang B ON " + "DSJ.KodeBarang = B.KodeBarang WHERE SJ.nosuratjalan = '" + nomorSurat + "'"; //memperoleh semua data barang nota ditabel detilsuratjalan 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 jumlah int jumlah = int.Parse(hasilData2.GetValue(2).ToString()); //buat object bertipe detilsurat dan tambahkan //ingat baik baik agar fk tidak duplicate DetilSuratJalan detilSurat = new DetilSuratJalan(brg, jumlah); //simpan detil barang surat.TambahDetilBarang(brg, jumlah); } //simpan ke list listSuratJalan.Add(surat); } return("1"); } catch (MySqlException ex) { return(ex.Message); } }