@ -173,14 +173,53 @@ public class DialogCariBarangController extends Dialog<BarangFull> implements In
@FXML
@FXML
void tfPencarianOnKeyReleased ( KeyEvent event ) {
void tfPencarianOnKeyReleased ( KeyEvent event ) {
if ( tfPencarian . getText ( ) . length ( ) > = 3 ) {
if ( ( ( RadioButton ) tgTipe . getSelectedToggle ( ) = = rbKodeBarang
& & event . getCode ( ) = = KeyCode . ENTER ) ) {
idx = 0 ;
if ( tfPencarian . getText ( ) . length ( ) < = 9 ) {
posRx . getBarangByKodeBarang ( tfPencarian . getText ( ) ) . subscribe ( barangKodeObserver ) ;
} else {
String kodeFull = tfPencarian . getText ( ) ;
String kodeBarang = Fucout . getKodeBarangFromKodeFull ( kodeFull ) ;
String ukur = Fucout . getNomorBarangFromKodeFull ( kodeFull ) ;
if ( AmigoPosCache . getInstance ( ) . getDaftarBarang ( ) . containsKey ( kodeBarang ) ) {
Barang barang = AmigoPosCache . getInstance ( ) . getDaftarBarang ( ) . get ( kodeBarang ) ;
selectedBarangFull . setBarang ( barang ) ;
if ( AmigoPosCache . getInstance ( ) . getDaftarNoBarang ( ) . containsKey (
barang . getIdGabungan ( ) + ukur ) ) {
NoBarang noBarang = AmigoPosCache . getInstance ( ) . getDaftarNoBarang ( )
. get ( barang . getIdGabungan ( ) + ukur ) ;
selectedBarangFull . setNoBarang ( noBarang ) ;
} else {
Observable . zip ( posRx . getBarangByKodeBarang ( kodeBarang ) ,
posRx . getNoBarangByIdGabunganNomor ( barang . getIdGabungan ( ) , ukur ) ,
( b , nB ) - > new BarangFull ( b , nB ) ) . subscribe ( getBarangFullGetNoBarangFromBarangObserver ) ;
}
}
if ( ! AmigoPosCache . getInstance ( ) . getDaftarBarang ( ) . containsKey ( kodeBarang ) ) {
Observable . zip ( posRx . getBarangByKodeBarang ( kodeBarang ) ,
Observable . just ( ukur ) ,
( barang , nomor ) - > {
barang . setNomor ( nomor ) ;
return barang ;
} ) . subscribe ( getTambahBarangObserver ) ;
}
}
} else if ( ( ( RadioButton ) tgTipe . getSelectedToggle ( ) = = rbNamaBarang
& & tfPencarian . getText ( ) . length ( ) > = 3 ) ) {
compositeDisposable . clear ( ) ;
compositeDisposable . clear ( ) ;
daftarTabelBarang . clear ( ) ;
daftarTabelBarang . clear ( ) ;
idx = 0 ;
idx = 0 ;
Disposable d = posRx . getBarangByKodeNamaArtikel ( tfPencarian . getText ( ) )
Disposable d = posRx . getBarangBy NamaBarang ( tfPencarian . getText ( ) )
. subscribeWith ( getDaftarBarangObserver ( ) ) ;
. subscribeWith ( getDaftarBarangObserver ( ) ) ;
compositeDisposable . add ( d ) ;
compositeDisposable . add ( d ) ;
} else if ( tfPencarian . getText ( ) . length ( ) < 3 ) {
} else if ( ( RadioButton ) tgTipe . getSelectedToggle ( ) = = rbNamaBarang
& & tfPencarian . getText ( ) . length ( ) < 3 ) {
compositeDisposable . clear ( ) ;
compositeDisposable . clear ( ) ;
daftarTabelBarang . clear ( ) ;
daftarTabelBarang . clear ( ) ;
}
}
@ -266,11 +305,16 @@ public class DialogCariBarangController extends Dialog<BarangFull> implements In
if ( idx < daftarTabelBarang . size ( ) ) {
if ( idx < daftarTabelBarang . size ( ) ) {
TabelBarangCari tbc = daftarTabelBarang . get ( idx ) ;
TabelBarangCari tbc = daftarTabelBarang . get ( idx ) ;
String idGabungan = daftarNb . get ( 0 ) . getIdGabungan ( ) ;
String idGabungan = daftarNb . get ( 0 ) . getIdGabungan ( ) ;
// System.out.println("Barang " + (i + 1) + ": " + daftarTabelBarang.get(i).getDataBarang().getIdGabungan());
if ( tbc . getDataBarang ( ) ! = null & & tbc . getDataBarang ( ) . getIdGabungan ( ) . equals ( idGabungan ) ) {
if ( tbc . getDataBarang ( ) ! = null & & tbc . getDataBarang ( ) . getIdGabungan ( ) . equals ( idGabungan ) ) {
Barang b = tbc . getDataBarang ( ) ;
Barang b = tbc . getDataBarang ( ) ;
// System.out.println("### Ditemukan id gabungan sama dengan hasil api: " + b.getNamaBarang()
// + "(Urutan ke: " + (i + 1) + ") ###");
int j = 0 ;
int j = 0 ;
for ( NoBarang nb : daftarNb ) {
for ( NoBarang nb : daftarNb ) {
if ( j = = 0 ) {
if ( j = = 0 ) {
// System.out.println("Nomor pertama: " + nb.getNomor());
b . setNomor ( nb . getNomor ( ) ) ;
b . setNomor ( nb . getNomor ( ) ) ;
tbc . setDataNoBarang ( nb ) ;
tbc . setDataNoBarang ( nb ) ;
tbc . setUkur ( Fucout . getText ( nb . getNomor ( ) ) ) ;
tbc . setUkur ( Fucout . getText ( nb . getNomor ( ) ) ) ;
@ -278,6 +322,7 @@ public class DialogCariBarangController extends Dialog<BarangFull> implements In
tbvBarang . refresh ( ) ;
tbvBarang . refresh ( ) ;
} else {
} else {
// System.out.println("Nomor " + (j + 1) + ": " + nb.getNomor());
TabelBarangCari tbcBaru = new TabelBarangCari (
TabelBarangCari tbcBaru = new TabelBarangCari (
Fucout . getText ( b . getKodeBarang ( ) ) ,
Fucout . getText ( b . getKodeBarang ( ) ) ,
Fucout . getText ( b . getNamaBarang ( ) ) ,
Fucout . getText ( b . getNamaBarang ( ) ) ,
@ -287,9 +332,11 @@ public class DialogCariBarangController extends Dialog<BarangFull> implements In
tbcBaru . setDataNoBarang ( nb ) ;
tbcBaru . setDataNoBarang ( nb ) ;
daftarTabelBarang . add ( idx + j , tbcBaru ) ;
daftarTabelBarang . add ( idx + j , tbcBaru ) ;
}
}
// System.out.println("Masuk di urutan: " + (i + j + 1));
j + + ;
j + + ;
}
}
idx + = daftarNb . size ( ) ;
idx + = daftarNb . size ( ) ;
// System.out.println("### SELESAI ###\n");
}
}
}
}
}
}