private void buttonSimpan_Click(object sender, EventArgs e) { FormUtama frmUtama = (FormUtama)this.Owner.MdiParent; FormDaftarJobOrder form = (FormDaftarJobOrder)this.Owner; //buat object bertipe notapenjualan NotaPenjualan nota = new NotaPenjualan(); nota.NoNotaPenjualan = comboBoxNoNotaJual.Text; //buat objek bertipe barang Barang br = new Barang(); br.KodeBarang = comboBoxItem.Text.Substring(0, 5); // ammil dari combo box item, karena nama berada di index ke 8, dengan panjang karakter sesuai text dikurangi 8 br.Nama = comboBoxItem.Text.Substring(8, comboBoxItem.Text.Length - 8); //buat object bertipe job order string kode = textBoxKodeJobOrder.Text; int quant = int.Parse(textBoxQuantity.Text); int material = 0; int labor = HitungGrandTotal(); int overhead = 0; DateTime pMulai = dateTimePickerMulai.Value; DateTime pSelesai = dateTimePickerSelesai.Value; string pStatus = "P"; JobOrder job = new JobOrder(kode, quant, labor, material, overhead, pMulai, pSelesai, pStatus, br, nota); //data barang diperoleh dari data gridview for (int i = 0; i < dataGridViewJobOrder.Rows.Count; i++) { //buat object bertipe karyawan Karyawan k = new Karyawan(); //tambahkan informasi karyawan //hati hati dalam menambahkan k.IdKaryawan = dataGridViewJobOrder.Rows[i].Cells["idKaryawan"].Value.ToString(); k.Nama = dataGridViewJobOrder.Rows[i].Cells["nama"].Value.ToString(); k.Gender = dataGridViewJobOrder.Rows[i].Cells["gender"].Value.ToString(); k.NoTelepon = dataGridViewJobOrder.Rows[i].Cells["noTelp"].Value.ToString(); //simpan data satuan dan gaji string pSat = dataGridViewJobOrder.Rows[i].Cells["satuan"].Value.ToString(); int pGaji = int.Parse(dataGridViewJobOrder.Rows[i].Cells["gaji"].Value.ToString()); //buat object detiljoborder dan tambahkan DetilJobOrder detilJob = new DetilJobOrder(k, pSat, pGaji); //simpan detil job job.TambahDetilJobOrder(k, pSat, pGaji); } //inser ke database joborder string hasilTambahJob = JobOrder.TambahData(job); if (hasilTambahJob == "1") //jika berhasil maka insert jurnal dan detil jurnal { MessageBox.Show("Job Order telah dibuat", "Info"); //tambah posting ke jurnal //karena pembuatan job order tidak perlu ditambahkan ke jurnal //insert jurnal pembayaran karyawan // 2 kali insert ke jurnal 1, untuk membebankan ke wip, 2, untuk pembayaran tenaga kerja string idtrans = ""; string ket = ""; string idJurnal = Jurnal.GenerateIdJurnal(); //1.membebankan ke wip idtrans = "005"; ket = "Menghitung dan membebankan biaya tenaga kerja langsung terhadap Job Order no 123"; Transaksi trans = new Transaksi(); //transaksi membebankan biaya tenaga ke Job Order (id transkasi 005); trans.IdTransaksi = idtrans; trans.Keterangan = ket; //buat object bertipe jurnal Jurnal jurnal = new Jurnal(); //tambahkan data jurnal.IdJurnal = int.Parse(idJurnal); jurnal.Tanggal = dateTimePickerMulai.Value; jurnal.NomorBukti = comboBoxNoNotaJual.Text; jurnal.Jenis = "JU"; jurnal.Periode = pPeriode; jurnal.Transaksi = trans; //isi detil jurnalnya totalGaji = HitungGrandTotal(); // panggil method untuk mendapatkan total gaji jurnal.TambahDetilJurnalMenghitungBiayaTK(totalGaji); //simpan ke tabel _jurnal string hasilTambahJurnal = Jurnal.TambahData(jurnal); if (hasilTambahJurnal == "1") { idJurnal = Jurnal.GenerateIdJurnal(); idtrans = "006"; ket = "Membayar biaya tenaga kerja langsung secara tunai"; Transaksi trans2 = new Transaksi(); //transaksi membayar secara tunai(id transkasi 006); trans2.IdTransaksi = idtrans; trans2.Keterangan = ket; //buat object bertipe jurnal Jurnal jurnal2 = new Jurnal(); //tambahkan data jurnal2.IdJurnal = int.Parse(idJurnal); jurnal2.Tanggal = dateTimePickerMulai.Value; jurnal2.NomorBukti = comboBoxNoNotaJual.Text; jurnal2.Jenis = "JU"; jurnal2.Periode = pPeriode; jurnal2.Transaksi = trans2; jurnal2.TambahDetilJurnalPembayaranTK(totalGaji); hasilTambahJurnal = Jurnal.TambahData(jurnal2); if (hasilTambahJurnal == "1") { MessageBox.Show("berhasil posting ke jurnal"); this.Close(); form.FormDaftarJobOrder_Load(sender, e); //supaya formdaftar job order menampilkan daftar terbaru } else { MessageBox.Show("gagal posting ke jurnal" + hasilTambahJurnal); } } else { MessageBox.Show("gagal posting ke jurnal" + hasilTambahJurnal); } } else { MessageBox.Show("Data nota jual gagal tersimpan. Pesan kesalahan : " + hasilTambahJob, "Kesalahan"); } }