예제 #1
0
        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);
                }
            }
        }
예제 #2
0
        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);
            }
        }