private void buttonSelesai_Click(object sender, EventArgs e) { //try { //Error cek dimulai if (CustomErrorMessage(textBoxNoBarangDaftar, "No Barang tidak boleh kosong", textBoxNamaBarang, "Nama barang tidak boleh kosong", textBoxHargaBeli, "Haraga beli tidak boleh kosong", textBoxHargaJual, "Harga jual tidak boleh kosong")) { return; } for (int i = 0; i < dataGridHargaJualData.Rows.Count; i++) { for (int j = 0; j < dataGridHargaJualData.Rows[i].Cells.Count; j++) { if (dataGridHargaJualData.Rows[i].Cells[j].ColumnIndex < 2) { if (j == 0) { if ((int)dataGridHargaJualData.Rows[i].Cells[j].Value <= 0) { CustomMessageBox.Show("Kolom jumlah pada tabel harga jual tidak boleh 0 ke bawah"); return; } } else { if ((ulong)dataGridHargaJualData.Rows[i].Cells[j].Value <= 0) { CustomMessageBox.Show("Kolom jumlah pada tabel harga jual tidak boleh 0 ke bawah"); return; } } if (dataGridHargaJualData.Rows[i].Cells[j].Value.ToString() == "" || dataGridHargaJualData.Rows[i].Cells[j].Value == null) { CustomMessageBox.Show("Tabel harga jual tidak boleh ada yang kosong"); return; } } } } List <string> jumlahList = new List <string>(); for (int i = 0; i < dataGridHargaJualData.Rows.Count; i++) { for (int j = 0; j < dataGridHargaJualData.Rows[i].Cells.Count; j++) { if (dataGridHargaJualData.Rows[i].Cells[j].ColumnIndex == 0) { jumlahList.Add(dataGridHargaJualData.Rows[i].Cells[j].Value.ToString()); break; } } } for (int i = 0; i < jumlahList.Count; i++) { for (int j = i + 1; j < jumlahList.Count; j++) { if (jumlahList[i] == jumlahList[j]) { CustomMessageBox.Show("Jumlah tidak boleh ada yang sama"); return; } } } string no_barang = textBoxNoBarangDaftar.Text; string nama_barang = textBoxNamaBarang.Text; string satuan_tipe = labelTipeSatuan.Text; string nama_satuan = comboBoxSatuan.Text; string nama_koleksi = koleksi.NamaKoleksi; int GetSatuanID(string satuan) { for (int i = 0; i < satuanList.Count; i++) { if (satuanList[i].SatuanName == satuan) { return(satuanList[i].Id); } } return(-1); } int satuan_id = GetSatuanID(nama_satuan); UInt64 harga_beli = UInt64.Parse(textBoxHargaBeli.Text); UInt64 harga_jual = UInt64.Parse(textBoxHargaJual.Text); if (harga_jual < harga_beli) { CustomMessageBox.Show("Harga jual tidak boleh di bawah harga beli"); return; } //error cek selesai, mulai proses data Connection con = new Connection(); //cek validasi data dan insert if (tambahBarang) { if (con.IsBarangExist(no_barang)) { CustomMessageBox.Show("Barang dengan nomor barang : " + no_barang + " telah ada, nomor barang tidak boleh sama"); return; } if (!con.IsKoleksiExist(nama_koleksi)) { CustomMessageBox.Show("KOLEKSI TIDAK DITEMUKAN. PASTIKAN NAMA KOLEKSI BENAR ATAU BUAT KOLEKSI BARU"); return; } if (con.IsSatuanExisInKoleksi(nama_koleksi, satuan_id)) { CustomMessageBox.Show("Satuan -" + nama_satuan + "- telah ada pada koleksi tersebut, gunakan satuan yang lain"); return; } object[] dataBarang = new object[] { no_barang, nama_barang, satuan_id, harga_beli, harga_jual, nama_koleksi }; con.InsertBarang(dataBarang); for (int i = 0; i < dataGridHargaJualData.Rows.Count; i++) { var dataRes = dataGridHargaJualData.Rows[i].Cells; object[] dataPotongan = new object[] { no_barang, dataRes[0].Value, dataRes[1].Value }; con.InsertBarangPotongan(dataPotongan); } CustomMessageBox.Show("Barang telah di tambah"); } //cek validasi data dan edit else { if (!con.IsBarangExist(no_barang)) { CustomMessageBox.Show("Barang dengan nomor barang : " + no_barang + " tidak ada, ada masalah BESAR, tolong hubungi Elton"); return; } if (!con.IsKoleksiExist(nama_koleksi)) { CustomMessageBox.Show("KOLEKSI TIDAK DITEMUKAN. PASTIKAN NAMA KOLEKSI BENAR ATAU BUAT KOLEKSI BARU"); return; } Barang data = new Barang(no_barang, nama_barang, harga_beli, harga_jual, satuan_id, "", satuan_tipe, nama_koleksi); con.UpdateBarang(data); AturanBarang barangBaru = new AturanBarang(data); List <AturanHargaJual> aturanHargaJual = new List <AturanHargaJual>(); for (int i = 0; i < dataGridHargaJualData.Rows.Count; i++) { aturanHargaJual.Add(new AturanHargaJual((int)dataGridHargaJualData.Rows[i].Cells[0].Value, (ulong)dataGridHargaJualData.Rows[i].Cells[1].Value)); } barangBaru.AturanHarga = aturanHargaJual; con.SimpanJumlahPotongan(barangBaru); CustomMessageBox.Show("Barang telah di edit"); } this.Close(); formIsiKoleksi.UpdateTabel(koleksi.NamaKoleksi); /* } catch(Exception ex) { * CustomMessageBox.Show("Error : " + ex.Message); * }*/ }
public AturanBarang(Barang b) { barang = b; }
public AturanBarang(Barang b, List <AturanHargaJual> aturanHarga) { barang = b; AturanHarga = aturanHarga; }
private void dataGridTransaksi_CellValueChanged(object sender, DataGridViewCellEventArgs e) { try { if (e.ColumnIndex == SATUAN && e.RowIndex >= 0) { // CustomMessageBox.Show(dataGridTransaksi[4, 0].Value + ""); int index = GetBarangTransaksiIndex(GetNoBarang(e.RowIndex)); if (index >= 0) { Barang oldBarang = barangTransaksiList[e.RowIndex].AturanBarangList[index].barang; Barang newBarang = GetAturanBarangLainDalamKoleksi(oldBarang.nama_koleksi, GetSatuanValue(e.RowIndex)); SetValueToRow(e.RowIndex, newBarang.no_barang, newBarang.nama_barang, newBarang.harga_jual, dataGridTransaksi[3, e.RowIndex].Value, newBarang.satuan_nama, 0); } } //check the jumlah and adjust the price based on potongan harga if (e.ColumnIndex >= 2 && e.RowIndex >= 0) { int jumlah = GetJumlahValue(e.RowIndex); if (jumlah < 1) { SetJumlah(e.RowIndex, 1); } // SetHargaJualTotal(e.RowIndex, GetJumlahValue(e.RowIndex) * GetHargaJualValue(e.RowIndex) - GetPotonganValue(e.RowIndex)); ulong jumlahValue = (ulong)GetJumlahValue(e.RowIndex); ulong hargaJual = GetHargaJualValue(e.RowIndex); ulong hargaPotongan = GetPotonganValue(e.RowIndex); ulong hargaAkhir = jumlahValue * hargaJual - hargaPotongan; AturanBarang ab = GetBarangTransaksiAturanBarang(GetNoBarang(e.RowIndex)); if (ab != null) { for (int i = 0; i < ab.AturanHarga.Count; i++) { int jumlahAturan = ab.AturanHarga[i].jumlah; if (jumlah == jumlahAturan) { hargaAkhir = ab.AturanHarga[i].harga_jual - hargaPotongan; // SetHargaJualTotal(e.RowIndex, ab.AturanHarga[i].harga_jual); break; } if (jumlah < jumlahAturan && i == 0) { // hargaAkhir = GetJumlahValue(e.RowIndex) * GetHargaJualValue(e.RowIndex) - GetPotonganValue(e.RowIndex); break; } if (jumlah > jumlahAturan) { int dif = jumlah - jumlahAturan; hargaAkhir = ab.AturanHarga[i].harga_jual + (ulong)dif * GetHargaJualValue(e.RowIndex) - hargaPotongan; // SetHargaJualTotal(e.RowIndex, ab.AturanHarga[i].harga_jual + dif * GetHargaJualValue(e.RowIndex)); } } } SetHargaJualTotal(e.RowIndex, hargaAkhir); HitungTotal(); // labelTotalHarga.Text = total.ToString("#,##0"); //string.Format("{#,##0}", total); // SetValueToRow(e.RowIndex, newBarang.no_barang, newBarang.nama_barang, newBarang.harga_jual, dataGridTransaksi[3, e.RowIndex].Value, newBarang.satuan_nama, 0); } } catch (Exception ex) { CustomMessageBox.Show("Error : " + ex.Message); } //set new value to row if the combo box satuan is changed }