Postingan lainnya
Buku Ini Koding!
Baru!
Buku ini akan jadi teman perjalanan kamu belajar sampai dapat kerjaan di dunia programming!
membuat no. transaksi otomatis
saya membuat no. transaksi otomatis dg kodingan seperti dibawah. saat input pertama kali no. transaksi masih muncul sesuai harapan ex. N-2304186 tapi kenapa saat input yg kedua "date" pada no. transaksi muncul 2x? ex. N-2304182304187. mohon infonya. terimakasih :)
private void buatNoJual(){
Date sk = new Date();
SimpleDateFormat format1=new SimpleDateFormat("ddMMyy");
String time = format1.format(sk);
listBarang=bc.tampil();
int a=listBarang.size()-1;
int no=Integer.parseInt(listBarang.get(a).getNojual().replace("N-",""))+1;
txtnojual.setText("N-"+time+no);
txtnojual.setEnabled(false);
}
4 Jawaban:
Coba lihat bagian ini:
int no=Integer.parseInt(listBarang.get(a).getNojual().replace("N-",""))+1;
txtnojual.setText("N-"+time+no);
Agan mengambil no mulai dari "N-" maka time nya juga ikut terambil.
Solusi: gunakan Substring pada pengambilan no selanjutnya:
int no = Integer.parseInt(listBarang.get(a).getNojual().replace("N-",""))+1; //hasilnya 2304181
int no = Integer.parseInt(listBarang.get(a).getNojual().substring(8))+1; //hasilnya 1
Oh iya kak klo buat digit terakhirnya bisa berubah jadi 1 lagi tiap ganti tanggal, itu gmana ya?
Jawaban Terpilih
Bandingkan "new Date()" dengan "date di noJual-nya":
private void buatNoJual(){
Date sk = new Date();
SimpleDateFormat format1=new SimpleDateFormat("ddMMyy");
String time = format1.format(sk);
listBarang=bc.tampil();
int a=listBarang.size()-1;
int no = 0;
//kalau sama hari ini, maka angkanya ditambah
if (time == listBarang.get(a).getNojual().substring(2,8)) {
no = Integer.parseInt(listBarang.get(a).getNojual().replace("N-",""))+1;
}
else //kalau beda, maka di buat baru hari ini dari 1
{
no = 1;
}
txtnojual.setText("N-"+time+no);
txtnojual.setEnabled(false);
}