@ -136,7 +136,7 @@ public class FormTransaksiReturController implements Initializable {
tcDisc2 . setCellValueFactory ( new PropertyValueFactory < > ( "disc2" ) ) ;
tcSubTotal . setCellValueFactory ( new PropertyValueFactory < > ( "subTotal" ) ) ;
tcPramuniaga . setCellValueFactory ( new PropertyValueFactory < > ( "fldPramuniaga" ) ) ;
tcBtnBatal . setCellValueFactory ( new PropertyValueFactory < > ( "btnBatal" ) ) ;
// tcBtnBatal.setCellValueFactory(new PropertyValueFactory<>("btnBatal"));
tbvPenjualan . setItems ( daftarTabelPenjualan ) ;
tcNoRetur . setCellValueFactory ( ( TableColumn . CellDataFeatures < TabelBarangRetur , Integer > cell ) - > {
@ -160,22 +160,21 @@ public class FormTransaksiReturController implements Initializable {
public void initData ( String noNota , boolean baru ) {
this . noNota = noNota ;
if ( ! baru ) {
if ( ! baru ) {
posRx . getDNotaReturByNoNota ( noNota ) . subscribe ( getDaftarDNotaReturObserver ) ;
}
if ( SystemValue . karyawanLogin ! = null ) {
if ( SystemValue . karyawanLogin ! = null ) {
lblKasir . setText ( Fucout . getTextColon ( SystemValue . karyawanLogin . getNama ( ) ) ) ;
}
lblNomorNota . setText ( Fucout . getTextColon ( noNota ) ) ;
}
private void refreshData ( List < DNotaTunai > daftarNotaTunai ) {
private void refreshData Penjualan ( List < DNotaTunai > daftarNotaTunai ) {
daftarTabelPenjualan . clear ( ) ;
daftarTabelRetur . clear ( ) ;
for ( DNotaTunai dNotaTunai : daftarNotaTunai ) {
//Button
//Button
Button btnBatal = ButtonUtility . generateButton ( ButtonUtility . CLOSE_ICON ) ;
btnBatal . setOnAction ( ( t ) - > {
Alert alert = AlertUtil . getAlertDialogKonfirmasi (
@ -214,7 +213,44 @@ public class FormTransaksiReturController implements Initializable {
daftarTabelPenjualan . add ( tbt ) ;
if ( ! AmigoPosCache . getInstance ( ) . getDaftarBarang ( ) . containsKey ( dNotaTunai . getKdBarang ( ) ) ) {
posRx . getBarangByKodeBarang ( dNotaTunai . getKdBarang ( ) ) . subscribe ( getBarangObserver ) ;
posRx . getBarangByKodeBarang ( dNotaTunai . getKdBarang ( ) ) . subscribe ( getBarangPenjualanObserver ) ;
}
}
}
private void refreshDataRetur ( List < DNotaRetur > daftarDNotaRetur ) {
daftarTabelRetur . clear ( ) ;
for ( DNotaRetur dNotaRetur : daftarDNotaRetur ) {
//Button
TextField fldPramuniaga = new TextField ( dNotaRetur . getKodePram ( ) ) ;
String namaBarang = "..." ;
if ( AmigoPosCache . getInstance ( ) . getDaftarBarang ( ) . containsKey ( dNotaRetur . getKdBarang ( ) ) ) {
Barang barang = AmigoPosCache . getInstance ( ) . getDaftarBarang ( )
. get ( dNotaRetur . getKdBarang ( ) ) ;
namaBarang = Fucout . getText ( barang . getNamaBarang ( ) ) ;
dNotaRetur . setBarang ( barang ) ;
}
TabelBarangRetur tbr = new TabelBarangRetur (
Fucout . getText ( dNotaRetur . getKdBarang ( ) ) ,
namaBarang ,
Fucout . getText ( dNotaRetur . getNoBarang ( ) ) ,
Fucout . getText ( String . valueOf ( dNotaRetur . getJumlah ( ) ) ) ,
Fucout . getText ( Fucout . formatRibuan ( dNotaRetur . getHargaJual ( ) ) ) ,
Fucout . getText ( Fucout . formatPersentase ( dNotaRetur . getDiskon ( ) ) ) ,
Fucout . getText ( Fucout . formatPersentase ( dNotaRetur . getDiskon2 ( ) ) ) ,
Fucout . getText ( Fucout . formatRibuan (
dNotaRetur . getHargaJual ( ) * dNotaRetur . getJumlah ( )
) ) ,
fldPramuniaga ) ;
tbr . setData ( dNotaRetur ) ;
daftarTabelRetur . add ( tbr ) ;
if ( ! AmigoPosCache . getInstance ( ) . getDaftarBarang ( ) . containsKey ( dNotaRetur . getKdBarang ( ) ) ) {
posRx . getBarangByKodeBarang ( dNotaRetur . getKdBarang ( ) ) . subscribe ( getBarangReturObserver ) ;
}
}
}
@ -393,7 +429,7 @@ public class FormTransaksiReturController implements Initializable {
@Override
public void onNext ( List < DNotaTunai > daftarDNotaTunai ) {
fldNotaPenjualan . clear ( ) ;
refreshData ( daftarDNotaTunai ) ;
refreshData Penjualan ( daftarDNotaTunai ) ;
}
@Override
@ -420,7 +456,7 @@ public class FormTransaksiReturController implements Initializable {
} ;
Observer < Barang > getBarang Observer = new Observer < > ( ) {
Observer < Barang > getBarang Penjualan Observer = new Observer < > ( ) {
@Override
public void onSubscribe ( Disposable dspsbl ) {
}
@ -461,4 +497,79 @@ public class FormTransaksiReturController implements Initializable {
}
} ;
Observer < List < DNotaRetur > > getDaftarDNotaReturObserver = new Observer < > ( ) {
@Override
public void onSubscribe ( Disposable dspsbl ) {
}
@Override
public void onNext ( List < DNotaRetur > daftarDNotaRetur ) {
refreshDataRetur ( daftarDNotaRetur ) ;
}
@Override
public void onError ( Throwable error ) {
if ( error instanceof HttpException ) {
switch ( ( ( HttpException ) error ) . code ( ) ) {
case HttpURLConnection . HTTP_NOT_FOUND :
Platform . runLater ( ( ) - > {
Alert alert = AlertUtil . getAlertError (
AlertUtil . ERROR_TIDAK_DITEMUKAN_TITLE ,
"Barang dengan kode tersebut tidak ditemukan." ) ;
alert . initOwner ( apMain . getScene ( ) . getWindow ( ) ) ;
alert . show ( ) ;
} ) ;
}
} else {
AmigoPosRx . handleGenericError ( error , apMain . getScene ( ) . getWindow ( ) ) ;
}
}
@Override
public void onComplete ( ) {
}
} ;
Observer < Barang > getBarangReturObserver = new Observer < > ( ) {
@Override
public void onSubscribe ( Disposable dspsbl ) {
}
@Override
public void onNext ( Barang b ) {
AmigoPosCache . getInstance ( ) . getDaftarBarang ( ) . put ( b . getKodeBarang ( ) , b ) ;
for ( TabelBarangRetur tbr : tbvRetur . getItems ( ) ) {
if ( tbr . getData ( ) . getKdBarang ( ) . equals ( b . getKodeBarang ( ) ) ) {
tbr . setNama ( b . getNamaBarang ( ) ) ;
tbr . getData ( ) . setBarang ( b ) ;
tbvRetur . refresh ( ) ;
}
}
}
@Override
public void onError ( Throwable error ) {
if ( error instanceof HttpException ) {
switch ( ( ( HttpException ) error ) . code ( ) ) {
case HttpURLConnection . HTTP_NOT_FOUND :
Platform . runLater ( ( ) - > {
Alert alert = AlertUtil . getAlertError (
AlertUtil . ERROR_TIDAK_DITEMUKAN_TITLE ,
"Barang dengan kode tersebut tidak ditemukan." ) ;
alert . initOwner ( apMain . getScene ( ) . getWindow ( ) ) ;
alert . show ( ) ;
} ) ;
}
} else {
AmigoPosRx . handleGenericError ( error , apMain . getScene ( ) . getWindow ( ) ) ;
}
}
@Override
public void onComplete ( ) {
}
} ;
}