public SuratPermintaan(string noSuratPermintaan, string keterangan, DateTime tanggal, JobOrder jobOrder) { this.noSuratPermintaan = noSuratPermintaan; this.keterangan = keterangan; this.tanggal = tanggal; this.jobOrder = jobOrder; this.listDetilSuratPermintaan = new List <DetilSuratPermintaan>(); }
// method untuk mengubah data overhead produksi saat ada barang tambahan public static string UpdateOverheadProduksi(JobOrder pJob) { string sql = "UPDATE jobOrder SET overheadProduksi = " + pJob.DirectMaterial + " where kodeJobOrder = '" + pJob.KodeJobOrder + "'"; try { Koneksi.JalankanPerintahDML(sql); return("1"); } catch (MySqlException ex) { return(ex.Message + ". Perintah sql: " + sql); } }
public static string TambahData(JobOrder pJobOrder) { using (var tranScope = new TransactionScope(TransactionScopeOption.RequiresNew)) { // perintah sql 1 = untuk menambahkan data ke tabel Job Order string sql1 = "INSERT INTO JobOrder(kodeJobOrder, quantity, directLabor, directMaterial, overheadProduksi, tglMulai, tglSelesai, kodeBarang, " + " noNotaPenjualan, status) VALUES ('" + pJobOrder.KodeJobOrder + "', " + pJobOrder.Quantity + ", " + pJobOrder.DirectLabor + ", " + pJobOrder.DirectMaterial + ", " + pJobOrder.OverheadProduksi + ", '" + pJobOrder.TglMulai.ToString("yyyy-MM-dd ") + "', '" + pJobOrder.TglSelesai.ToString("yyyy-MM-dd ") + "', '" + pJobOrder.Barang.KodeBarang + "', '" + pJobOrder.NotaPenjualan.NoNotaPenjualan + "','" + pJobOrder.Status + "')"; try { //jalankan perintah untuk menambahkan ke tabel JobOrder Koneksi.JalankanPerintahDML(sql1); //menambahkan data karyawan yang harus dibayar atau gajikaryawan yang terlibat for (int i = 0; i < pJobOrder.ListDetilJobOrder.Count; i++) { //perintah sql2 = untuk menambahkan ke tabel detiljoborder string sql2 = "INSERT INTO detilJobOrder(kodeJobOrder, idKaryawan, satuan, gajiPerSatuan) VALUES ('" + pJobOrder.KodeJobOrder + "', " + pJobOrder.ListDetilJobOrder[i].Karyawan.IdKaryawan + ", '" + pJobOrder.ListDetilJobOrder[i].Satuan + "', " + pJobOrder.ListDetilJobOrder[i].GajiPerSatuan + ")"; //menjalankan perintah untuk menambahkan ke tabel detilJobOrder Koneksi.JalankanPerintahDML(sql2); } //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 <SuratPermintaan> listSuratPermintaan) { string sql1 = ""; if (kriteria == "") { //tuliskan perintah sql1 = untuk menampilkan semua data ditabel suratpermintaan sql1 = "select SP.noSuratPermintaan, SP.tanggal, SP.keterangan, SP.kodejoborder, JO.quantity, JO.directlabor, " + " JO.directmaterial, JO.overheadproduksi, JO.status from suratpermintaan SP inner join joborder JO on SP.kodejoborder = JO.kodejoborder " + " order by noSuratPermintaan desc"; } else { sql1 = "select SP.noSuratPermintaan, SP.tanggal, SP.keterangan, SP.kodejoborder, JO.quantity, JO.directlabor, " + " JO.directmaterial, JO.overheadproduksi, JO.status from suratpermintaan SP inner join joborder JO on SP.kodejoborder = JO.kodejoborder " + " where " + kriteria + " LIKE '%" + nilaiKriteria + "%' order by noSuratPermintaan desc"; } try { //data reader 1 = memperoleh semua data di tabelsurat permintaan MySqlDataReader hasilData1 = Koneksi.JalankanPerintahQuery(sql1); listSuratPermintaan.Clear();//kosongi isi list terlebih dahulu while (hasilData1.Read()) { //mendapatkan nosurat ,dll string nomorSurat = hasilData1.GetValue(0).ToString(); DateTime tgl = DateTime.Parse(hasilData1.GetValue(1).ToString()); string ket = hasilData1.GetValue(2).ToString(); //permintaan dari job order //mendapatkan kode job order string kodeJob = hasilData1.GetValue(3).ToString(); int pquantity = int.Parse(hasilData1.GetValue(4).ToString()); int labor = int.Parse(hasilData1.GetValue(5).ToString()); int material = int.Parse(hasilData1.GetValue(6).ToString()); int over = int.Parse(hasilData1.GetValue(7).ToString()); string pStatus = hasilData1.GetValue(8).ToString(); //buat object bertipe joborder JobOrder job = new JobOrder(); //tambahkan data job.KodeJobOrder = kodeJob; job.Quantity = pquantity; job.DirectLabor = labor; job.DirectMaterial = material; job.OverheadProduksi = over; job.Status = pStatus; //Surat Permintaan //buat object surat Permintaan dan tambahkan data SuratPermintaan surat = new SuratPermintaan(nomorSurat, ket, tgl, job); //DETAIL surat permintaan //query utk detail suratpermintaan dari tiap surat //sql2 untuk mendapatkan barang yang akan di gunakan string sql2 = "SELECT DSP.kodeBarang, B.Nama, DSP.Jumlah FROM suratpermintaan SP INNER JOIN " + "detilsuratpermintaan DSP ON SP.nosuratpermintaan = DSP.nosuratpermintaan INNER JOIN Barang B ON " + "DSP.KodeBarang = B.KodeBarang WHERE SP.nosuratpermintaan = '" + nomorSurat + "'"; //memperoleh semua data barang ditabel detilsuratpermintaan MySqlDataReader hasilData2 = Koneksi.JalankanPerintahQuery(sql2); while (hasilData2.Read()) { //mendapatkan kode dan nama barang yang akan digunakan 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 DetilSuratPermintaan detilSurat = new DetilSuratPermintaan(brg, jumlah); //simpan detil barang surat.TambahDetilBarang(brg, jumlah); } //simpan ke list listSuratPermintaan.Add(surat); } return("1"); } catch (MySqlException ex) { return(ex.Message); } }
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); } }