Postingan lainnya
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);
}
0
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
1
Oh iya kak klo buat digit terakhirnya bisa berubah jadi 1 lagi tiap ganti tanggal, itu gmana ya?
0
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);
}
1