Diskon 80% terbatas! Masukkan kupon "merdeka" di kelas apa saja

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 7 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 7 tahun yang lalu

Terimakasih kak, Alhamdulillah bisa

avatar PermataRiri
@PermataRiri

8 Kontribusi 0 Poin

Dipost 7 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 7 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 7 tahun yang lalu

Login untuk ikut Jawaban