コード例 #1
0
        private void buttonSimpan_Click(object sender, EventArgs e)
        {
            FormUtama            frmUtama = (FormUtama)this.Owner.MdiParent;
            FormDaftarSuratJalan form     = (FormDaftarSuratJalan)this.Owner;
            //buat objek bertipe job order
            SuratPermintaan sp = new SuratPermintaan();

            sp.NoSuratPermintaan = comboBoxSuratPermintaan.Text;

            //buat object bertipe suratjalan
            string no     = textBoxNoSurat.Text;
            string pjenis = comboBoxJenis.Text;

            if (pjenis == "Masuk")
            {
                pjenis = "M";
            }
            else
            {
                pjenis = "K";
            }
            string     ket     = textBoxKeterangan.Text;
            DateTime   tanggal = dateTimePickerTgl.Value;
            SuratJalan surat   = new SuratJalan(no, pjenis, ket, tanggal, sp);

            //data barang diperoleh dari data gridview
            for (int i = 0; i < dataGridViewSurat.Rows.Count; i++)
            {
                //buat object bertipe barang
                Barang barang = new Barang();
                //tambahkan kode, nama, jenis, satuan
                //hati hati dalam menambahkan
                barang.KodeBarang = dataGridViewSurat.Rows[i].Cells["KodeBarang"].Value.ToString();
                barang.Nama       = dataGridViewSurat.Rows[i].Cells["NamaBarang"].Value.ToString();
                barang.Jenis      = dataGridViewSurat.Rows[i].Cells["jenis"].Value.ToString();
                barang.Satuan     = dataGridViewSurat.Rows[i].Cells["satuan"].Value.ToString();
                //simpan  data harga dan jumlah
                int jumlah = int.Parse(dataGridViewSurat.Rows[i].Cells["Jumlah"].Value.ToString());
                //buat object dan tambahkan
                DetilSuratJalan detilSurat = new DetilSuratJalan(barang, jumlah);
                //simpan detil barang ke nota
                surat.TambahDetilBarang(barang, jumlah);
            }

            string hasilTambahNota = SuratJalan.TambahData(surat);

            if (hasilTambahNota == "1") //jika berhasil maka insert jurnal dan detil jurnal
            {
                MessageBox.Show("Surat Jalan telah tersimpan", "Info");

                //tambah posting ke jurnal
                string idtrans  = "";
                string ketTrans = "";
                string idJurnal = Jurnal.GenerateIdJurnal();
                if (comboBoxJenis.Text == "Masuk")
                {
                    // barang masuk ke gudang
                    idtrans  = "007";
                    ketTrans = "Menyelesaikan produksi Job Order no 123";
                }
                else
                {
                    //barang diambil dari gudang
                    idtrans  = "004";
                    ketTrans = "PPIC menerima bahan baku dari gudang";
                }
                Transaksi trans = new Transaksi();
                trans.IdTransaksi = idtrans;
                trans.Keterangan  = ketTrans;

                //buat object bertipe jurnal
                Jurnal jurnal = new Jurnal();
                //tambahkan data
                jurnal.IdJurnal = int.Parse(idJurnal);
                jurnal.Tanggal  = dateTimePickerTgl.Value;

                jurnal.NomorBukti = textBoxNoSurat.Text;
                jurnal.Jenis      = "JU";
                jurnal.Periode    = pPeriode;
                jurnal.Transaksi  = trans;

                //isi detil jurnalnya
                int totalharga = HitungGrandTotal(); // panggil method hitung total harga untuk mendapatkan totalharga
                if (comboBoxJenis.Text == "Masuk")
                {
                    jurnal.TambahDetilJurnalPenyelesaianProduksi(totalJobCost);
                    string hasil = JobOrder.UpdateStatusJobOrder(kodeJob);
                    if (hasil == "1")
                    {
                        MessageBox.Show("Job Order : " + kodeJob + " telah selesai ");
                    }
                    else
                    {
                        MessageBox.Show(hasil);
                    }
                }
                else
                {
                    string hasil = JobOrder.UpdateDirectMaterial(kodeJob, totalharga);

                    if (hasil == "1")
                    {
                        MessageBox.Show("sudah di update " + kodeJob + ", total Direct Material RP " + totalharga.ToString("0,###"));
                    }
                    else
                    {
                        MessageBox.Show(hasil);
                    }
                    jurnal.TambahDetilJurnalMenerimaBahanBaku(totalharga);
                }
                //simpan ke tabel _jurnal
                string hasilTambahJurnal = Jurnal.TambahData(jurnal);
                if (hasilTambahJurnal == "1")
                {
                    MessageBox.Show("berhasil posting ke jurnal");
                    this.Close();
                    form.FormDaftarSuratJalan_Load(sender, e); //supaya formdaftar surat jalan menampilkan daftar terbaru
                }
                else
                {
                    MessageBox.Show("gagal posting ke jurnal" + hasilTambahJurnal);
                }
            }
            else
            {
                MessageBox.Show("Data nota jual gagal tersimpan. Pesan kesalahan : " + hasilTambahNota, "Kesalahan");
            }
        }