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);
    }
avatar PermataRiri
@PermataRiri

8 Kontribusi 0 Poin

Diperbarui 6 tahun yang lalu

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

avatar keccikun
@keccikun

368 Kontribusi 197 Poin

Dipost 6 tahun yang lalu

Terimakasih kak, Alhamdulillah bisa

avatar PermataRiri
@PermataRiri

8 Kontribusi 0 Poin

Dipost 6 tahun yang lalu

Oh iya kak klo buat digit terakhirnya bisa berubah jadi 1 lagi tiap ganti tanggal, itu gmana ya?

avatar PermataRiri
@PermataRiri

8 Kontribusi 0 Poin

Dipost 6 tahun yang lalu

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);
    }

avatar keccikun
@keccikun

368 Kontribusi 197 Poin

Dipost 6 tahun yang lalu

Login untuk ikut Jawaban